#はじめに
SoftLayer上にVMware ESXiをインストールしたベアメタルを立てて、社内のVMware環境からvMotionで行き来させてみたい、というのは、よくある話だと思います。
それに加え、vMotionの手順はわかっているのだが、SoftLayer上で動かす時の注意点を知りたいという話もよく聞くので、いくつかTipsを紹介できればと思います。
#vMotion 要件
一般的な準備の中でどのように進めれば良いか見ていきます。
##VMkernel ポートグループの設定
まずは各ホストで、vMotion 用に VMkernel ポートグループを構成します。
以下の選択肢があります。
###1. vmk0 の vMotion トラフィックを ON にする
こちらはvMotion時にNW帯域が逼迫するため、VMwareによると非推奨となっています。試す分にはこれでも問題ないかと思います。
「ホスト」->「管理」->「ネットワーク」->「VMkernel アダプタ」から設定できます。
###2. 新規VLAN上にvmk1を新規に作成する
事前にSoftLayerでVLANのオーダー・準備が必要です。
(参考:【VMware@SoftLayer】ネットワーク準備編)
デフォルトで与えられるVLANが「タグなしVLAN(Native VLAN)」であるのに対して、追加オーダーしてトランクしたVLANは「タグありVLAN」であることに注意する必要があります。
タグつきのトラフィックをトランクポートを通じて流すためには、タグありVLAN上でポートグループを作成するときに、VLAN IDを入力する必要があります。(タグなしVLAN(Native VLAN)のトラフィックに対しては、VLAN IDは「0」となります。)
その後、VMkernel ポートグループの追加は、「ホスト」->「管理」->「ネットワーク」->「VMkernel アダプタ」->「ネットワークの追加」から設定できます。
この設定が未完了の場合は、以下のようなエラーが出ます。
##TCP/IP スタックの設定
こちらを利用すること管理トラフィックのゲートウェイとは異なるデフォルトゲートウェイを使用して、トラフィックを隔離できます。また、通常の管理トラフィックを受け持つ vmk0 とは別にルーティングテーブルを持つことができます。
ESXi ホストの vMotion TCP/IP スタックへの vMotion トラフィックの配置
SoftLayerでは、Portable Private IPを使って、割り当てます。
「ホスト」->「管理」->「ネットワーク」->「TCP/IP 構成」->「TCP/IP スタック構成の編集」から設定できます。
#ジャンボフレーム
下記のベストプラクティスにも記載があるように、パフォーマンス改善にジャンボフレームを使用します。
vSphere vMotion のネットワークのベスト プラクティス
最高の vMotion パフォーマンスを得るには、ジャンボフレームを使用します。
物理 NIC、物理スイッチ、および仮想スイッチを含む vMotion パスにあるすべてのネットワーク デバイスでジャンボ フレームが有効になっていることを確認します。
SoftLayerのベアメタルはジャンボフレームに対応しているので、SoftLayer内のESXiベアメタルホスト間のvMotionであれば、恩恵にあずかることができます。
「ホスト」->「管理」->「ネットワーク」->「VMkernel アダプタ」->「設定の編集」->「NIC 設定」から設定できます。
ここでMTUを9000に設定します。
##疎通確認
ホストにsshログイン後、ESXiコマンドにて確認します。
(参考:vmkping コマンドを使用した VMkernel ネットワーク接続のテスト (2033190) | VMware KB)
VMkernel アダプタの確認
#ホスト1
[root@ibmesx01:~] esxcfg-vmknic -l
Interface Port Group/DVPort/Opaque Network IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type NetStack
vmk0 7 IPv4 10.xxx.xx.xxx 255.255.255.192 10.xxx.xx.xxx 00:25:90:fa:9c:62 9000 65535 true STATIC defaultTcpipStack
vmk4 vmservice-vmknic-pg IPv4 169.254.1.1 255.255.255.0 169.254.1.255 00:50:56:6d:b1:1c 1500 65535 true STATIC defaultTcpipStack
vmk2 106 IPv4 10.xxx.xxx.xxx 255.255.255.192 10.xxx.xxx.xxx 00:50:56:63:b1:c8 9000 65535 true STATIC vxlan
vmk3 87 IPv4 10.333.333.333 255.255.255.192 10.xxx.xxx.xxx 00:50:56:64:15:80 9000 65535 true STATIC vmotion
#ホスト2
[root@ibmesx02:~] esxcfg-vmknic -l
Interface Port Group/DVPort/Opaque Network IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type NetStack
vmk0 6 IPv4 10.yyy.yy.yyy 255.255.255.192 10.yyy.yy.yyy 00:25:90:fa:a6:be 9000 65535 true STATIC defaultTcpipStack
vmk3 vmservice-vmknic-pg IPv4 169.254.1.1 255.255.255.0 169.254.1.255 00:50:56:6a:86:81 9000 65535 true STATIC defaultTcpipStack
vmk2 108 IPv4 10.yyy.yyy.yyy 255.255.255.192 10.yyy.yyy.yyy 00:50:56:6a:a1:06 9000 65535 true STATIC vxlan
vmk1 85 IPv4 10.111.111.111 255.255.255.192 10.yyy.yyy.yyy 00:50:56:61:a2:ca 9000 65535 true STATIC vmotion
VMkernelアダプタ同士のping 送信の応答を確認します。
- ホスト1からホスト2
[root@ibmesx01:~] vmkping ++netstack=vmotion 10.111.111.111
PING 10.111.111.111 (10.111.111.111): 56 data bytes
64 bytes from 10.111.111.111: icmp_seq=0 ttl=64 time=0.237 ms
64 bytes from 10.111.111.111: icmp_seq=1 ttl=64 time=0.222 ms
64 bytes from 10.111.111.111: icmp_seq=2 ttl=64 time=0.212 ms
--- 10.111.111.111 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.212/0.224/0.237 ms
[root@ibmesx01:~] vmkping ++netstack=vmotion 10.111.111.111 -d -s 8972
PING 10.111.111.111 (10.111.111.111): 8972 data bytes
8980 bytes from 10.111.111.111: icmp_seq=0 ttl=64 time=0.334 ms
8980 bytes from 10.111.111.111: icmp_seq=1 ttl=64 time=0.365 ms
8980 bytes from 10.111.111.111: icmp_seq=2 ttl=64 time=0.378 ms
--- 10.111.111.111 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.334/0.359/0.378 ms
- ホスト2からホスト1
[root@ibmesx02:~] vmkping ++netstack=vmotion 10.333.333.333
PING 10.333.333.333 (10.333.333.333): 56 data bytes
64 bytes from 10.333.333.333: icmp_seq=0 ttl=64 time=0.217 ms
64 bytes from 10.333.333.333: icmp_seq=1 ttl=64 time=0.211 ms
64 bytes from 10.333.333.333: icmp_seq=2 ttl=64 time=0.222 ms
--- 10.333.333.333 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.211/0.217/0.222 ms
[root@ibmesx02:~] vmkping ++netstack=vmotion 10.333.333.333 -d -s 8972
PING 10.333.333.333 (10.333.333.333): 8972 data bytes
8980 bytes from 10.333.333.333: icmp_seq=0 ttl=64 time=0.301 ms
8980 bytes from 10.333.333.333: icmp_seq=1 ttl=64 time=0.344 ms
8980 bytes from 10.333.333.333: icmp_seq=2 ttl=64 time=0.315 ms
--- 10.333.333.333 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.301/0.320/0.344 ms
#CPU互換性に関する注意
実際にvMotionを行う際に、CPU互換性のチェックが入るところがあります。
そこでAES-NIの設定のON/OFFが異なるホストの場合は、チェックでエラーとなります。
vMotion/EVC incompatibility issues due to AES/PCLMULQDQ (1034926) | VMware KB
SoftLayerのベアメタルは、デフォルトでAES-NIが有効化されているはずですが、OFFとなっていた場合は設定の統一が必要です。
ただ、SoftLayerベアメタルのBIOSにはパスワードがかけられており、ユーザーはアクセスできません。
AES-NI設定を確認したい場合は、チケットで聞くことになりますが、その際に再起動をともなうため、ホストを事前にメンテナンスモードにするなど、ご注意ください。
設定確認とともに、設定変更もお願いすると、変更された状態で起動します。
再起動せずにBIOSの設定を確認したい場合は、このリンクの手順にしたがってください。
ShinobiLayer: SoftLayerのSupermicroのBIOS設定をテキスト形式で取得する方法 - Qiita
#複数NIC
また、vMotionに複数NICを使用したい場合は、以下が参考になります。
vSphere における複数 NIC の vMotion (2014840) | VMware KB
#Cross-vCenter vMotion の要件
2つのvCenterがあるかたまりに対して、以下の要件になります。
- 双方でvCenter 6.0以降 (vCenter5.5ではESXi6.0はサポート外)
- 双方で同一バージョンのみ本機能をサポート
- 両方ESXiが6.0以降 (6.0からの新機能です)
- vSphere Enterprise plusライセンスが必要
- vCenter同士が拡張リンクモードで同一のSSOドメイン(必須ではありません)
- 拡張リンクモードの場合、GUIが利用可能
- 拡張リンクモードでない場合、CLIで実行可能
#参考
vMotionに必要なライセンス
vSphere with Operations Management 6 および vSphere 6 のエディション