どうも、Tです。
vSphereでクラスタを作成したらEVC(Enhanced vMotion Compatibility)有効化は個人的に必須と考えています。後々ホスト追加するときに問題になることがあり、途中でEVCを有効化する場合、仮想マシンの停止が必要になり大掛かりな作業になるためです。
で、そして構築初期でもクラスタの中にvcsaがあると簡単にEVC有効化ができません。いつもなんとなくやっちゃってますが、ちゃんと手順を残しておきます。
調べると複数のKBがありますが、今回はKB2147821を参考に進めていきます。
目次
やりたいこと
vcsaが所属しているクラスタのEVCを有効にしたい。
環境
- vCenterServer:7.0.2 17958471
- vSphere ESXi: 7.0.2 17867351
問題
vCenterが所属している状態でEVCを有効にしようとすると互換性でエラーになり、このままOKをクリックするとエラーで失敗します。
じゃあvCenterをない状態でEVCを有効化したいところですが、EVCはvCenterがないと設定できません。
事前確認
注意事項
これからKB2147821を参考に進めますが、この手順はvDS、vSAN環境では使えませんのでご注意ください。今回の検証環境は両方とも使用していないので無視して進めます。
Impact / RisksCaution: VMware does not recommend using these steps for a vCenter Server virtual machine that is running on a Virtual Distributed Switch (VDS). Move the vCenter Server virtual machine to a standard vSwitch before completing the steps outlined in this article.
Caution: These steps cannot be run if the cluster in question is a vSAN enabled cluster.
vDSがある場合は、vCenterをvDSからVSS(標準仮想スイッチ)に変更してください。
vSANクラスタの場合は、下記KBが公開されています。
Retreat・HA・DRS無効化
本手順では、新しいクラスタを追加したりします。KBにはありませんが、作業中にvCLSがうろうろ動かれると面倒なのとエラーが出ても面倒なので、作業中はRetreatモード・HA・DRSを無効化しておき、正しい環境になったとに有効化します。本番環境ではHAアドミッションコントロールやDRSの絡みもあるので、クラスタ内のホスト数を考慮してどのようにするか検討ください。
Retreatモードについては、下記をご参照ください。
EVC有効化手順
新規クラスタ作成、EVC有効化
新規クラスタを作成して、新規クラスタのEVCを有効化します。
データセンターを右クリックして「新規クラスタ」をクリックします。
クラスタ名を入力し「次へ」をクリックします。※ここではHA DRS設定は無効のまま進めます。
「完了」をクリックします。
作成したクラスタの「設定」->「VMware EVC」->「編集」をクリックします。
適時EVCのCPUモードを選択し「OK」をクリックします。。検証環境では、Intel(R) Xeon(R) CPU E5-2603を使っていたので、Sandyを設定しました。
ホストがサポートする最大EVCベースラインは、CPU型番からアーキテクチャを調べることもできますが、PowerCLIから取得することもできます。
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
新規クラスタでEVCが有効になりました。
本検証では、このあとに新規クラスタのRetreatモードを無効化しています。
既存クラスタから新規クラスタへホスト移動
既存クラスタの1台のホストの仮想マシンを別ホストへ移動し、メンテナスモードにします。メンテナンスモード後に、新規クラスタにドラッグアンドドロップします。
新規クラスタに移動したらメンテナスモードを解除します。これでEVCモードが有効なクラスタにホストが所属できました。
vCenterのインベントリ変更
vCenterのインベントリを既存クラスタのホストから新規クラスタのホストへ変更します。
vCenterを選択し所属しているホストをメモしておきます。
vCenterの所属するホストのHost Clientに接続します。vCenterを右クリックして「設定の編集」をクリックします。
「仮想マシンオプション」->「一般オプション」から「仮想マシン構成ファイル」のパスをメモして、「キャンセル」をクリックしてウインドウを閉じます。このパスは、vCenterが配置されているデータストアとvmxファイル(定義ファイル)までのパスを示しています。
vCenterのシャットダウンします。
シャットダウン後、vCenterを右クリックし「登録解除」をクリックします。
「はい」をクリックします。
vCenterのインベントリがなくなりました。
ここからは、新規クラスタに所属しているホストにHost Clientで直接接続しての作業になります。
新規クラスタに所属しているホストにHost Clientで接続して「ストレージ」->「vCenterがあるデータストア」->「データストアブラウザ」をクリックします。
vCenterのフォルダからvmxファイルを探し、vmxファイルを右クリックし「仮想マシンの登録」をクリックします。
新規クラスタのホストにvCenter仮想マシンのインベントリが登録されました。「パワーオン」をクリックし起動します。
vCenterが起動しました。
vSphere Clientから見ると、新規クラスタにvCenterが移動できたことがわかります。
既存クラスタから新規クラスタへ仮想マシン移動
既存クラスタから新規クラスタへの仮想マシン移動(vMotion)にはパワーオンしたまま移動できるパターンと、シャットダウン(もしくはパワーオフ)後に移動できるパターンがあります。
パワーオンのまま仮想マシンの移行
パワーオンのまま移動できるのは、仮想マシンのEVCモードが、移動先のEVCモードより下位で動いている場合です。新規クラスタは、EVCモードをSandyにしましたが、下記の仮想マシンのEVCはSandyよりしたのWestmereで動いています。この場合、ドラッグアンドドロップすることで移動を行えます。(vMotionの実施手順は割愛します。)
パワーオンのまま新クラスタに移動することができました。
仮想マシンのEVCが新クラスタより上のEVCで動いている場合、vMotion手順の互換性の確認でエラーがでます。このまま続けてもエラーとなり移動が行えません。
パワーオフして仮想マシンの移行
次にパワーオフしなければいけない場合ですが、仮想マシンEVCが新クラスタより上のモードで動いている場合です。下記の場合では、Sandyより上のIvyで動いているため仮想マシンの停止が必要になります。
仮想マシンのEVCは、デフォルトで無効になっていますが、起動を行うと無効から画像のようにモードが自動的に設定されます。
検証環境では、ホストのCPUはSandyだったのですが、仮想マシンはそれより上のIvyに自動設定されていました・・・・これは謎現象なので、また余力あれば調べます・・・。
仮想マシンを停止すると仮想マシンEVCを手動で設定していなければ、無効状態になります。この状態でドラッグアンドドロップすれば移動が行えます。(vMotionの手順は割愛します。)
パワーオフ状態の仮想マシンの移動が行えました。
仮想マシン単位のEVCモードを知る方法
仮想マシンのEVCモードを1つ1つ調べるのは大変ですが、下記のコマンドで確認することができます。
Get-VM | Select Name,HardwareVersion, >> @{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}}, >> @{Name='Cluster_Name';Expression={$_.VMHost.Parent}}, >> @{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
testvcsaは、新クラスタに移動している状態のためSandyで動いていますが、その他の既存クラスタにある仮想マシンはivyで動いています。
VM_EVCが空白で出力される場合があります。これは、仮想マシンが停止しておりかつ仮想マシンのEVCを設定していない場合は、デフォルト無効のため、空白表示されます。停止していても仮想マシンのEVCを手動で設定している場合は、表示されます。
既存クラスタから新規クラスタへホスト移動
仮想マシンの移動を行うことによって、空のホストができたらホストの移動を行います。
「仮想マシンがないホストを右クリック」->「接続」->「切断」をクリックします。
「OK」をクリックします。
切断状態のホストを新クラスタへドラッグアンドドロップします。
新クラスタへ移動後に「ホストを右クリック」->「接続」->「接続」を行います。
Retreactモード・HA・DRS設定
これで新クラスタ(EVCが有効)へ仮想マシンとホストの移動が完了しました。
あとは、既存クラスタの削除、Retreactモードの有効化、HA・DRSの設定をしておしまいになります。
ここ気を付けておこう
Retreactモードの設定パラメーターは1度設定すると削除する方法がありません(2021年8月時点)
削除予定のクラスタで設定してしまうと判断をつけるのが難しくなってしまうので、最終的に使うクラスタ分の設定だけいれるのがよいですね。
参考
まとめ
この手順以外でvCenterをEVC有効のクラスタに移動する方法はないと思います。で、KBには特に記載がないんですが、この手順は各ESXiホストから接続できる共有ストレージがある前提なんですよね・・・・。
vCenterがある場合、基本的に共有ストレージはあることがほとんどですが、たまに共有ストレージがなかったり、構築中で後付けされることもあるので初期段階でEVCを有効化しようと思うと一時的に共有ストレージ用意するのが面倒なのがちょっと辛い・・・・。