今回の記事では、VMware vSphereのESXiを稼働させている筐体をリプレイスするようなケースで、vCenterに新しくESXiホストを追加して、不要となるESXiホストをvCenter管理下から外す一連の手順を紹介します。
尚、今回の記事では、ESXiの新ホストと旧ホストのメジャーバージョンは同じ構成でホストを入れ替える想定の内容になっています。
また、既存のクラスタ環境に新しくESXiホストを追加するようなケースでも、作業手順は当記事の内容と同じであり(最後のvCenterからホストを外す作業が無いだけ)、同様に参考にしていただけます。
当記事で紹介する作業手順のいくつかは、過去に当ブログの別の記事で紹介した内容を含んでおりますため、作業内容によっては、その記事のリンクを参照していただくようにお願いします。
当記事の作業概要
今回の記事では、以下のような仮想基盤を想定しています。
- ESXi(vSphere)のバージョンは6.5。
- ESXiのメジャーバージョンは変更せずに筐体を入れ替える。
- データストアへの変更は無し。
- 仮想マシンは無停止で作業を行う。
- クラスタのEVCは無効。
当記事では6.5と古いバージョンを使用していますが、7.0などのバージョンでも手順は同じだと思います。
作業前の構成イメージ図は以下です。
新しい物理筐体を入れ替える作業です。
作業の流れは以下になります。
- 新しい筐体にESXiをインストールし初期設定。
- 新しいESXiホストを既存のvCenterに追加。
- 新しいESXiホストの仮想スイッチとポートグループ登録。
- 新しいESXiホストのデータストアをマウント
- 新しいESXiホストを既存のクラスタに追加。
- 古いESXiホスト上の仮想マシンを新ESXiホストへvMotion。
- 古いESXiホスト上の仮想マシンがすべて移動したらvCenterから削除
作業後の構成イメージは以下です。
当記事では、新しい筐体にESXiのインストールと初期設定が済んでいることを前提として、それ以降の作業手順を紹介しつつ、作業時に手間取るポイントや注意するべきポイントも紹介していきます。
既存のvCenter環境に新規ESXiホストを追加する手順
当項では、vSphere Clientを操作して、既存のvCenter環境に、新しく用意した同じバージョンのESXiホストを追加する一連の手順を紹介していきます。
vCenterで新規ESXiホストを追加
vSphere Clientの画面左側のインベントリ内のデータセンター(※当記事ではDatacenterと命名されているのがデータセンターです)を選択し、画面中央上部の「アクション」をクリックします。
表示されるメニュー内から「ホスト」の追加を選択します。
ホストの追加ウィザードが開始されます。
以降の流れは、当ブログで過去に掲載した以下のリンク先の記事をご参照ください。
ESXiホスト追加後にホストがメンテナンスモードのままであれば、vSphere Clientのインベントリ内の対象のホストを右クリックして[メンテナンスモード]→[メンテナンスモードの終了]をしておきます。
新規ホスト追加時の注意点
紹介した記事のリンク先では言及しておりませんが、新規ホスト追加時の注意点があります。
ホスト追加ウィザードの最初に、追加対象のESXiホストをホスト名かIPアドレスで指定します。
ESXiホストをIPアドレスで指定した場合は、インベントリ内の表示名もIPアドレスが使われます。
ホスト名を指定した場合は、インベントリ内の表示名もホスト名が使われます。
インベントリ内に表示される際の名前にIPアドレスが使われようが、ホスト名が使われようがシステム的に支障はありませんが、できれば既存のホストで使われている表示名の体系と合わせておいたほうが無難です。
ホスト追加後に表示名を直そうとしても、vSphere Clientの操作では変更出来無さそうなので、いったんインベントリから削除して登録し直すといったことが必要そうです。
仮想スイッチとポートグループの登録
通常はvCenterに登録する前に仮想スイッチを作成したり、ポートグループを登録しておきますが、vSphere Clientからも登録できます。
vSphere Clientから仮想スイッチやポートグループの登録をする場合は、以下の画面操作から設定画面を表示できます。
仮想スイッチやポートグループ登録時の注意点
当項では、仮想スイッチやポートグループを登録する際に、注意しておく方が良い点などを簡単に紹介しておきます。
「ポートグループ」の設定項目のなかには「無差別モード(promiscuous mode)」があります。
ESXiでは、物理的なネットワークと同様に、各仮想マシンから見て自分宛ではない(異なるMACアドレス宛て)のフレームは受け取らないのが既定の動作ですが、ルーターなどの仮想ネットワークアプライアンスなどを使用している場合や、ネットワークキャプチャをする場合は、自分宛て以外のフレームも受け取る必要があります。
その場合にポートグループ設定の「無差別モード」を有効にします。
異なるESXiホストへ仮想マシンを停止することなく移動させるVMwareの機能を「vMotion」と言いますが、これを使うには、VMkernelポート内のセキュリティ設定で、vMotionを明示的に許可しておく必要があります。
「VMkernelポート」はvCenterがESXiホストを管理するための通信で使用するポートグループですが、vMotionでも使用します。
ただ、既定の設定ではvMotionは許可されていないため、忘れずに許可しておく必要があります。
尚、VMkernelポートに対してvMotionを明示的に許可しておかないと、vMotionを実行しようとしてもエラーになります。
VMkernelポートへのvMotionの許可設定については、以下の記事でも言及しています。
既存データストアを新規ESXiホストへマウント
vCenterへ追加した直後のESXiホストは、自身のローカルストレージしか参照できません。
共有ストレージを利用して、ESXiのデータストアとして使用している場合は、新しいESXiホストでも既存のデータストアをマウントしてあげる必要があります。
vSphere ClientでESXiホストに対してデータストアをマウントする場合は、画面左のインベントリ上部で「ストレージ」アイコンを選択し、マウントさせるデータストアをインベントリ内で選択します。
選択後に、画面中央上部の「アクション」を開き、表示されたメニュー内の「追加ホストへのデータストアのマウント」を選択します。
対象のデータストアをマウントしていないESXiホストが存在する場合は、対象のホストがリストに表示されます。
リストから対象のホストを選択して、画面を先に進めていきます。
新規ESXiホストをクラスタに追加
vCenterでクラスタを利用している場合は、新しく追加したESXiホストをクラスタに追加します。
クラスタを利用していない場合は当作業は不要です。
ESXiホストをクラスタに追加するには、vSphere Client画面のインベントリ内で対象のホストを含めたいクラスタへ「ドラッグアンドドロップ」します。
クラスタへの追加処理には多少時間が掛かります。
当環境ではドラッグアンドドロップ後、インベントリ内のクラスタ配下にホストが移動するのに1分程度掛かりました。
また、当方の環境では、クラスタへ移動後、ホストのアイコンにエクスクラメーションマークが表示されておりました。
この場合は、インベントリ内の対象のホストを選択し、画面中央の「監視」→「ハードウェアの健全性」を選択してその情報を表示することで、エクスクラメーションマークが消えました。
仮想マシンを新しいESXiホストへ移動
既存のESXiホスト上で稼働している仮想マシン群を、新しくvCenterに追加したESXiホストへ移動します。
vSphereの「vMotion」を使用することで、仮想マシンを停止することなく新しいESXiホストへ移動できます。
vMotionの具体的な手順は当ブログで過去に公開した以下の記事で解説しています。
【重要】ESXiホスト追加後のvMotionにおける注意点
vMotionでは仮想マシンを停止することなく、異なるESXiホストへ仮想マシンを移動できますが、仮想マシンを止めることなくvMotionを行うには、幾つか条件があります。
その条件のなかでも、ESXiホスト追加後に気を付けるべきは、そのホストの筐体に搭載しているCPUの世代差です。
更なる前提条件として、ESXiホストに搭載されるCPUは、IntelやAMDなどの基本となるアーキテクチャを統一させておくことが必要ですが、アーキテクチャは統一できていても、そのCPUの世代が異なる場合は命令セットも異なるため、vMotionにも支障がでます。
具体的には、古い世代のCPUを搭載したESXiホスト上の仮想マシンを新しい世代のホストへvMotionする分には問題はないが、新しい世代のCPUを搭載したESXiホスト上の仮想マシンを、古い世代のホストにvMotionしようとすると、互換性チェックで弾かれて移動できません。
以下のようなイメージです。
尚、仮想マシンを停止させてvMotionをすれば、移動先のCPU世代が古くても移動できます。
vMotion実行時の互換性チェックでエラーが出るケースのスクリーンショットも貼っておきます。
エラーの文面は以下です。
ターゲット ホストは仮想マシンの現在のハードウェア要件をサポートしていません。
CPU の非互換性を解決するには、Enhanced vMotion Compatibility (EVC) を有効にしたクラスタを使用してください。ナレッジベースの記事 1003212 を参照してください。
com.vmware.vim.vmfeature.misc.rsba_no
com.vmware.vim.vmfeature.misc.rdcl_no
com.vmware.vim.vmfeature.misc.mds_no
com.vmware.vim.vmfeature.misc.ibrs_all
Supervisor Mode Access Prevention (SMAP) はサポートされていません。
RDSEED はサポートされていません。
Multi-Precision Add-Carry Instruction Extensions (ADX) はサポートされていません。
3DNow! PREFETCH および PREFETCHW はサポートされていません。
ESXiサーバーのリプレイスなどによって、一時的に異なるCPU世代が混在する状況であれば、旧→新へのvMotionさえ動作すれば事足りますが、長期間や永続的に混在するのであれば、片方向からしかvMotionできないのは支障があります。
ESXiでは、異なる世代のCPUが混在する環境でも相互の互換性を確保してくれる機能として「EVC(Enhanced vMotion Compatibility)」があります。
これは各仮想マシンの互換性設定をそのホスト内の最も古いバージョンに合わせる機能です。
この機能が有効になっていれば、古い世代のESXiホストから新しい世代のESXiホストへのvMotionも可能です。
但し、後からクラスタの「EVC」を有効にする手順は以下のVMware社のドキュメントをご確認ください。
尚、このドキュメントでは以下のように記載されています。
- vSphere インベントリでクラスタを選択します。
- EVCモードよりも優れた機能セットを持つホスト上で、すべての仮想マシンをパワーオフします。
- [構成] タブをクリックして VMware EVC を選択し、[編集] をクリックします。
- クラスタのホストに該当する CPU ベンダーと機能セットの EVC を有効にして、[OK] をクリックします。
- クラスタ内の仮想マシンをパワーオンして EVC を適用します。
ポイントは、「EVCモードよりも優れた機能セットを持つホスト上で、すべての仮想マシンをパワーオフします。」です。
EVCでは、CPUの世代を指定しますが、その世代より新しいホストで稼働している仮想マシンを停止させる必要があるということは、逆に読めば、その新しい世代のホストで仮想マシンが稼働しておらず、旧ホスト上でのみ仮想マシンが稼働している状態であれば、仮想マシンを停止することなくEVCを有効にできると言えます。
ただ、このあたりの操作は試していないので、また検証できたら報告しようと思います。
↑検証しました。次項で追記しています。
【追加検証】後からEVCを有効化する場合の挙動や仮想マシンの停止有無について
実際にEVCの有効化の検証をしてみましたが、やはり想定通りでした。
具体的には、CPUの世代が新しいESXiホストを新しく追加した場合、仮想マシンを旧ホストに置いたままであれば、仮想マシンを停止することなくEVCを有効化することができました。
また、仮想マシンを新ホストにvMotionで移動させたあとにEVCを有効にしようとしても、EVCを有効にする際に行われる整合性チェックでエラーになり有効化はできません。
いったん新ホスト上にvMotionで動かしてしまっても、旧ホストに再度戻せば、上記と同様に仮想マシンを停止することなくEVCを有効化できます。
後、仮想マシンを新ホストに移動させて後に、そのホスト上で仮想マシンを再起動してしまうと、仮想マシンごとに持つCPU互換設定が新しい世代で上書きされることで、vMotionで古いESXiホストに戻せなくなり、EVCを有効にするためには仮想マシンを停止させることが必要になります。
旧ESXiホストをvCenterから削除
前項までの作業で、vCenterに新しいESXiホストが追加され、すべての仮想マシンは新しいESXiホスト上で稼働している状態になっていると思います。
次は、不要となった旧ESXiホストをvCenterから削除していきます。
尚、当ブログでは過去にESXiホストをvCenterから削除する際の一連の手順を紹介した記事を公開しております。
詳細な手順は以下の記事をご参照ください。
尚、この記事ではクラスタを作成していない環境でESXiホストを削除する手順になっています。
クラスタの配下にあるESXiホストを削除する場合は、まず削除対象のホストを「メンテナンスモード」に変更し、クラスタ配下から移動させたあとに作業をしていきます。
また、分散スイッチ(VDS)を使用している場合は、先に分散スイッチを構成するESXiホストから削除予定のホストを外しておくことも必要です。
リンク先の記事の通りにvCenterから削除できても、あくまでvCenterの管理対象ホストから外れただけであり、そのESXiホスト自体は実存しているため、あとは必要によって対象のホストを物理的に削除してください。
これで一連の作業は終了です。
お疲れ様でした。
最後に
今回の記事では、VMware vSphereで稼働している環境で、新しくESXiホストを追加して、以前使用していたESXiホストをvCenter管理下から切り離す一連の手順を紹介しました。
細かい作業手順などは、VMware社が公開しているドキュメントを確認しながら実施していただく必要がありますが、大まかな作業の流れや注意すべきポイントは、当記事を読んでいただければ大丈夫じゃないかと思います。
是非ESXiホストのリプレイス作業の参考にしてください。
今回も読んでいただきましてありがとうございました。
それでは皆さまご機嫌よう!