【VMWare ESXi】図解 Storage vMotionの概要

音声で聞く

読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。

Storage vMotion は、稼働中の仮想マシン(VM)のファイルを、VM を止めずに別のデータストアへ移す VMware vSphere の機能です。ストレージのメンテナンスや容量の調整を、サービスを止めずに行えます。

この記事では、Storage vMotion のしくみ、共有ストレージがない環境での移行、メリットと前提条件を図で整理します。

この記事でわかること
  1. Storage vMotion のしくみと、vMotion との違い
  2. 共有ストレージがない環境で、ホストとデータストアを同時に移す方法
  3. Storage vMotion のメリットと前提条件

Storage vMotionのしくみ

Storage vMotion で移るのは、VM のファイルを置いているデータストアです。VM を実行する ESXi ホストは変わりません。一方、vMotion は VM を実行する ESXi ホストを移す機能で、ここが大きな違いです。

機能移るもの変わらないもの
vMotionVM を実行する ESXi ホストデータストア
Storage vMotionVM のファイルを置くデータストアESXi ホスト

稼働中の VM を ESXi ホスト間で移す vMotion については、次の記事を参考にしてください。

>> 参考記事:【VMware ESXi】図解 vMotionの概要

データストアについては、次の記事を参考にしてください。

>> 参考記事:【VMware ESXi】図解 仮想ストレージ(仮想ディスク、データストア)の概要

移行前:VM のファイルはデータストアAにある

ESXi ホスト上で VM が1台動いていて、VM の実体ファイル(構成ファイルの .vmx、仮想ディスクの .vmdk など)がデータストアAに保存されているとします。

ESXiホストデータストアAデータストアBvmx / vmdkなどVM
図1 移行前。VM のファイルはデータストアAにある

移行後:ファイルだけがデータストアBへ移る

データストアAの容量が足りなくなったときや、ストレージのメンテナンスが必要なときは、Storage vMotion で VM を止めずに、VM のファイルをデータストアBへ移せます。ESXi ホストは移行の前後で同じです。

ESXiホストデータストアAデータストアBvmx / vmdkなど移行(コピー)VM
図2 移行後。ファイルはデータストアBへ移り、ESXi ホストは変わらない

コピー中の書き込みは両方のデータストアへ

Storage vMotion は、VM のファイルを移行元から移行先へコピーします。ディスクが大きいほど、コピーには時間がかかります。

VM は動いたままなので、コピーの間にもディスクへの書き込みが発生します。vSphere 5.0 以降の Storage vMotion では、ミラードライバがこの書き込みを移行元と移行先の両方に書き込み、両方の書き込みが終わってから VM に完了を返します。これと並行して、ディスクを先頭から1回で一括コピーします。コピーが終わった時点で移行元と移行先の内容がそろっているので、VM は短い一時停止のあと移行先のファイルで動き始め、移行元のファイルは削除されます。

VMVMの書き込みミラードライバvmx / vmdkなどコピー中一括コピー(1回)データストアA(移行元)データストアB(移行先)
図3 コピー中の書き込みは、ミラードライバが移行元と移行先の両方に書き込む
補足

移行中にエラーが起きた場合、VM は移行前の状態と場所に戻ります。移行に失敗しても、移行元のファイルで動き続けます。

このように Storage vMotion は、サービスを止めずに、データストア間で VM のファイルを移行(ライブマイグレーション)できます。

共有ストレージのない環境でのvMotion

Storage vMotion では、VM を実行している ESXi ホストから、移行元と移行先の両方のデータストアにアクセスできる必要があります。

ところが、移行先のデータストアが共有ストレージではなく、今の ESXi ホストからはアクセスできない場合があります。次の図のように、ESXi ホストA・データストアAにある VM を、ESXi ホストB・データストアBへ移したいとします。ESXi ホストAからデータストアBにはアクセスできません。

移行元移行先ESXiホストAESXiホストBデータストアAデータストアBvmx / vmdkなどアクセスできないVM
図4 移行元の ESXi ホストAからは、データストアBにアクセスできない

この場合は、ホストとデータストアを同時に移します。vMotion で移行先の ESXi ホストBへ VM の実行状態(メモリなど)をコピーすると同時に、Storage vMotion で移行先のデータストアBへ VM のファイルをすべてコピーします。コピーが終わると、VM は移行先の ESXi ホストBで動き始めます。

移行元移行先ESXiホストAESXiホストBデータストアAデータストアBvmx / vmdkなどvMotion実行状態をコピーStorage vMotionファイルをコピーVM
図5 実行状態はホストBへ、ファイルはデータストアBへ同時にコピーする

この方法では、移行先の ESXi ホストBから移行先のデータストアBにアクセスできれば移行できます(ESXi 5.1 以降)。地理的に離れた拠点のホストへ移すときや、別のストレージアレイを使う新しいデータセンターへ移すときに便利です。

移行のしかた変わるものストレージの条件
vMotion(ホストだけ)ESXi ホスト移行元と移行先のホストが、同じデータストアにアクセスできる(共有ストレージ)
Storage vMotion(データストアだけ)データストアVM を実行しているホストが、移行元と移行先の両方のデータストアにアクセスできる
ホストとデータストアを同時にESXi ホストとデータストア移行先のホストが、移行先のデータストアにアクセスできる

Storage vMotionのメリット

1つ目のメリットは、ダウンタイムなしにデータストア間で VM を移せることです。移行中も、ユーザーはアプリケーションやデータを使い続けられます。ストレージ装置のメンテナンスや更改の前に、VM をほかのデータストアへ逃がす使い方ができます。

2つ目は、ストレージの負荷分散です。VM や仮想ディスクを別のデータストアへ移すことで、容量や I/O の偏りをならし、特定のデータストアが過負荷になるのを防げます。データストアクラスタで Storage DRS を使うと、この移行を推奨(または自動実行)してくれますが、その移行にも Storage vMotion が使われます。

Storage vMotionの前提条件

Storage vMotion は、vCenter Server で管理している環境で、vSphere Client から実行します。VM を右クリックして 移行(Migrate)を選び、移行タイプで「ストレージのみ変更します」(Change storage only)を選ぶと Storage vMotion になります。ホストとデータストアを同時に移すときは、コンピューティングリソースとストレージの両方を変更する移行タイプ(Change both compute resource and storage)を選びます。

主な前提条件と制限は次のとおりです。

項目内容
データストアへのアクセスVM を実行しているホストが、移行元と移行先の両方のデータストアにアクセスできること
ディスクモード仮想ディスクが「永続(persistent)」モードか、RDM(Raw Device Mapping)であること。物理互換モードの RDM は、マッピングファイルだけを移行できる
VMware ToolsVMware Tools のインストール中は移行できない
ライセンスVM を実行しているホストのライセンスに、Storage vMotion が含まれていること

そのほかの前提条件は、次のドキュメントを参照してください。

>> 参考:Storage vMotion Requirements and Limitations(Broadcom TechDocs)

現在の状況

この記事を書いた時点では VMware のドキュメントサイト(docs.vmware.com)の「Storage vMotion での移行」を参照していました。現在、VMware のドキュメントは Broadcom の TechDocs(techdocs.broadcom.com)で公開されています。上のリンクは vSphere 9.0 の英語版です。

まとめ

項目ポイント
移るものVM のファイル(データストア)。ESXi ホストは変わらない
しくみファイルを一括コピーし、コピー中の書き込みは移行元と移行先の両方に書く
共有ストレージがない場合vMotion と組み合わせ、ホストとデータストアを同時に移す
メリットVM を止めずにストレージのメンテナンスや負荷分散ができる
前提vCenter Server の管理下で実行し、ホストから両方のデータストアにアクセスできること

コメント