読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。
稼働中の仮想マシン(VM)を、ある ESXi ホストから別の ESXi ホストへ移すことを vMotion といいます。vMotion の間も VM は止まらず、サービスを続けたまま移動できます。
たとえば、VM が動いている ESXi ホストの CPU やメモリが足りなくなったときや、メンテナンスのためにホストを止めたいときに、VM を別のホストへ移します。
- vMotion に必要なネットワークとストレージの構成
- vMotion の内部動作(メモリのコピーと切り替え)
- vMotion が失敗する、よくある互換性の問題
vMotionの前提構成
ESXi ホスト1で VM が動いていて、この VM を ESXi ホスト2へ vMotion するとします。このとき、ネットワークとストレージは次の構成が前提になります。
| 項目 | 前提 |
|---|---|
| 管理 | ESXi ホスト1、2 がどちらも vCenter Server で管理されている。各ホストのライセンスに vMotion が含まれている |
| ストレージ | VM の実体である仮想ディスク(VMDK ファイルなど)が、外部の共有ストレージ上のデータストアに保存されている。つまり、ESXi ホスト1、2 のどちらからも、そのデータストアの仮想ディスクにアクセスできる必要がある |
| vMotion 用のネットワーク | 各ホストの仮想スイッチに、vMotion を有効にした VMkernel ポート(VMkernel アダプタ)があり、ホスト間で上位の物理スイッチ経由で通信できる |
| VM 用のネットワーク | ESXi ホスト1、2 の仮想スイッチに、同じ VLAN のポートグループが同じ名前(ネットワークラベル)で作られている。移行後の VM は、移行前の IP アドレスと MAC アドレスをそのまま使う |
共有ストレージがない環境でも、ホストとデータストアを同時に移す方法(vMotion と Storage vMotion の組み合わせ)で移行できます。詳しくは Storage vMotion の記事 を参照してください。この記事では、共有ストレージを使う基本の vMotion を扱います。
仮想ネットワークやデータストアについては、次の記事を参考にしてください。
>> 参考記事:図解 仮想ストレージ(仮想ディスク、データストア)の概要
vMotionの動作概要
vMotion を実行すると、内部では次の順に処理が進みます。仮想ディスクは共有ストレージにあるので、ホスト間でコピーするのは主に VM のメモリと状態です。
メモリのコピー
vCenter Server が、移行先ホストで VM を動かせるかを確認し、移行先の ESXi ホスト2に VM を受け入れる準備をします。そのうえで、稼働中の VM のメモリの内容を、VMkernel(vMotion ネットワーク)から上位スイッチ経由で ESXi ホスト2へコピーします。
コピー中に変更されたメモリの記録
コピーしている間も、VM は動き続けてメモリを書き換えます。そこで、コピーを始める前にメモリの書き込みを追跡する仕組みを入れ、コピー中に書き換えられたページ(変更分)を記録します。
変更分のコピーを繰り返す
1回目のコピーが終わったら、その間に記録した変更分だけをもう一度コピーします。このコピーの間にも変更は起きるので、変更分のコピーを何回か繰り返します。回を重ねるごとに、コピーする量は小さくなっていきます。
残りの変更分が、ごく短い時間(約0.5秒未満)でコピーし終えられる量になったら、繰り返しをやめて次の切り替えに進みます。
移行元VMの一時停止
残りの変更分が十分に小さくなると、移行元である ESXi ホスト1上の VM を一時停止します。シャットダウンではなく、VM の実行を短時間止める(stun)だけです。
残りの変更分と状態のコピー
VM を一時停止したあと、残りのメモリの変更分と、CPU やデバイスの状態を移行先ホストへコピーします。
移行先ホストのVMが稼働
移行先の VM は、コピーした状態から実行を再開します。仮想ディスクは同じデータストアのものを使い続け、ネットワークも同じポートグループにつながります。移行先ホストは RARP を送って、上位の物理スイッチに VM の MAC アドレスの新しい位置を知らせます。これで vMotion が完了します。
VM が止まるのは STEP 4〜6 の切り替えの間だけで、通常は1秒に満たない時間です。そのため、ダウンタイムはほぼない状態で VM を移動できます。
vMotionの移行要件
移行元と移行先の ESXi ホストの間で構成に互換性がないと、vMotion が失敗することがあります。移行の互換性に関するエラーについては、次の記事を確認してください。
>> 参考:Overview of migration compatibility error messages(Broadcom)
よくある互換性の問題を2つ紹介します。
CPUの互換性
vMotion では、ESXi ホスト間で CPU に互換性が必要です。CPU は同じベンダー(Intel 同士、AMD 同士)でなければならず、Intel の CPU から AMD の CPU へは vMotion できません。
同じベンダーでも、移行先の CPU が VM に同じ命令セットを提供できる必要があります。クロック周波数、キャッシュサイズ、コア数は違っていてもかまいません。世代の違う CPU が混在するクラスタでは、EVC(Enhanced vMotion Compatibility)を有効にすると、クラスタ内のホストが VM に見せる CPU の機能をそろえられます。
移行元ホストのローカルデバイスを参照
VM が移行元ホストのローカルにあるファイルやデバイスを参照していると、移行先ホストからはそのファイルやデバイスにアクセスできないため、vMotion は失敗します。
たとえば、移行元ホストのローカルにある ISO ファイルを仮想 CD/DVD ドライブにつないだ VM を vMotion すると、移行先ホストから ISO ファイルを参照できず、vMotion が失敗します。移行の前に、こうしたデバイスの接続を外してください。
まとめ
| 項目 | ポイント |
|---|---|
| vMotion とは | 稼働中の VM を、止めずに別の ESXi ホストへ移す |
| 前提構成 | vCenter Server で管理、共有ストレージ、vMotion 用の VMkernel ポート、同じ VM 用ポートグループ |
| 動作 | メモリをコピーし、変更分のコピーを繰り返したあと、一時停止して残りと状態をコピーし、移行先で再開する |
| 失敗しやすい例 | CPU の互換性がない(Intel と AMD など)、移行元ホストのローカルのファイルやデバイスを参照している |
コメント