HapInS Developers Blog

HapInSが提供するエンジニアリングの情報サイト

VMware EOS対応:Advanced Cross vCenter vMotionで移行できない場合の解決策

初めまして、HapInS株式会社の山崎と申します。 10年弱インフラエンジニアとして運用保守から設計構築まで幅広く経験しております。

2021~2022にかけてVMwareのEOSに伴い、現行環境からのリプレイスとして、新環境の設計構築からゲストOSの移行まで行うプロジェクトを担当しました。 その際に技術的な課題が多く非常に興味深い経験となったため、備忘録も兼ねて今回ご紹介します。

※あまり絵心ないですが、簡単な図解もつけております。

また、インフラエンジニアにとってEOSは切っても切り離せない重要なテーマとなるため 本記事を通してどのように移行するか。の例の一つになると幸いです。

背景

ESXi 6.0/vCenter 6.0のEOSと物理ハードの老朽化に伴い、サーバ、ストレージを一新し、新しい環境としてESXi 7.0/vCenter 7.0を導入することにした。

現行環境のイメージ ちなみに、ESXiのA~DはゲストOSで、ストレージ側のA~Dが実体ファイルとなります。

計画

以下のような計画を立てました。

  1. 新環境を構築後、現行環境とFCSW経由で接続

  2. 現行、新環境のESXiにて、CPUの世代差があるとゲストOSを移行できないため、EVCというCPUの世代差をマスキングして同じ世代に見せる技術を利用

  3. ESXi 6.0/vCenter 6.0で利用しているゲストOSをまるっとAdvanced Cross vCenter vMotionを利用して世代間を超えた移行(ライブマイグレーション)を行う

しかし、利用していたバージョン(vSphere 6.0 U1)では、ESXi 7.0/vCenter 7.0に対して Advanced Cross vCenter vMotionを利用することができないという問題に直面しました。

参考文献 knowledge.broadcom.com

そもそも、Advanced Cross vCenter vMotionとは?

Advanced Cross vCenter vMotionは、異なるvCenter Serverインスタンス間で仮想マシンをライブマイグレーションできる機能です。 これにより、物理的に別のデータセンターやクラウド環境、世代の異なるvCenter間でもゲストOSの停止を伴わず移行できる、はずでした。。

どうやってゲストOSを移行するか

Advanced Cross vCenter vMotionが利用できない以上、別の移行手段を検討する必要がありました。 そこで、ストレージの接続方法を変えることでの移行を計画し、結果としてゲストOSを一時的に停止してしまいますが 現行環境から新環境にゲストOSを移行することができました。

具体的には以下の通りです。

インベントリからの削除

現行環境(ESXi/vCenter 6.0)でゲストOSを停止後にインベントリから削除。

→この時点で、データ(実体ファイル)はストレージに保持されている状態。

ストレージの接続

現行環境のストレージを新しいESXi 7.0環境へFCSWを介して接続。

→新環境側のvCenterでストレージを認識させる。

ゲストOSの再登録と起動

新しいvCenter/ESXi 7.0環境に仮想マシンをインベントリとして再登録し、ゲストOSを起動。

→現行環境のストレージに存在する実体ファイルを利用して、新環境でゲストOSを稼働している。

Storage vMotionによる最終移行

現行環境のストレージから新環境のストレージへStorage vMotionを実施。

→これで実体ファイルも新環境のストレージへ移行されるため、現行環境からの完全な移行が完了。

さいごに

世代差によってAdvanced Cross vCenter vMotionが利用できない場合でもストレージ経由でのインベントリ再登録やStorage vMotionを活用することで ゲストOSの停止を伴ってしまいますが新環境への移行を実現することができました。

今回は新環境へ乗り換える必要があったため上記のような対応ができましたが、そうでない場合はゲストOSを一時的に別のESXiへ移動し、 対象のESXiを空の状態にした上で、1台ずつ順番にアップデートを実施することでダウンタイムを抑えつつ安全に更新する(ローリングアップデート)等、別口のアプローチも可能そうです。

ただ、利用環境がN+1以上でないと実現できない可能性もあるため、設計段階でどこまで考慮できるかが重要になってくるかと思います。 EOSを迎えたときのことを考慮できているか、できていない場合はどのように問題をクリアしていくか等、設計・構築を行っていく上で意識いただけると幸いです。