小川 大地、飯島 徹
日本ヒューレット・パッカード

 Storage VMotionは仮想マシンを二つのストレージ間で稼働させたまま移行させる技術で、VMware ESX 3.5から実装されている。ESXがバージョン4.0になったvSphereでは移行の仕組みが改善され、より高速に移行できるようになった。ここでは、それぞれの技術の仕組みと利用方法を解説したい。

 VMotionは「仮想マシンを稼働させたまま別のESXホストへ移行する技術」だが、Storage VMotionは「仮想マシンを稼働させたまま別のストレージに移行する技術」である(図1)。

図1●Storage VMotionは仮想マシンを稼働させたまま別のストレージに移行する技術である
[画像のクリックで拡大表示]

 Storage VMotionは、ストレージ装置のメンテナンス時や買い替え時に威力を発揮する。従来、こういったケースでは、仮想マシンをいったん停止する「コールド・マイグレーション」で新しいストレージに移行するしかなかった。しかし、Storage VMotionを用いれば、仮想マシンを稼働させたままストレージを移行できる。サービスのダウンタイムは無いに等しい。

 このほか、各仮想マシンをディスクI/Oの負荷に応じて、適切なストレージに再配置するといった、柔軟な使い方も可能だ。仮想マシンが増えて、1台のストレージに多数の仮想マシンがアクセスするようになると、ストレージがパフォーマンスのボトルネックになりがちである。こうした場合にStorage VMotionによる動的な再配置が役立つ。

Storage VMotionの動作の流れ

 Storage VMotionの仕組みを説明しよう(図2)。vSphereが備えるESX 4.0のStorage VMotionは、機能自体は以前とほぼ同じであるが、内部処理が変わっている。以前のESX 3.5のStorage VMotionは、Self-VMotionという処理を内部で行っていた。そのため、移行対象の仮想マシンが、処理中は二つに増加するというオーバーヘッドが生じていた。

図2●ESX 4.0のStorage VMotionは内部処理が変わっている
[画像のクリックで拡大表示]

 ESX 4.0ではこの仕組みが一新され、オーバーヘッドが最小化されている。また、移行にかかる時間についても、従来の3分の1程度に短縮されているとのことだ(参考資料)。具体的には以下のような処理を行っている。

  • (1)仮想マシンの「ホームディレクトリ」の中から、仮想ディスク(VMDKファイル)以外のファイルを移行先のストレージにコピーする。ホームディレクトリには仮想マシンの構成情報やログなどがあるが、それぞれのサイズが小さいため、コピーはすぐに完了する。

  • (2)続けて仮想ディスクをコピーする。仮想マシンが稼働しているオンラインでの移行のため、コピー中の書き込みへの対応が必要だ。ESX 4.0のStorage VMotionでは、仮想ディスクのコピー中にロック処理を行わない。つまり、コピーと同時に通常の書き込みを行っている。コピー中に変更が発生したブロックについては、メモリー上に用意される仮想ディスクの「ビットマップ・テーブル」に記録する。これが、ロック処理なしにコピーを行えるカラクリだ。

  • (3)ビットマップ・テーブルを参照し、コピー中に変更が発生したブロックを部分的に再コピーする。再度変更が発生した場合は、同様の処理を繰り返す。

  • (4)移行元と移行先の仮想ディスクが同期したところで、アクセスする仮想ディスクを実際に切り換える。この際、仮想ディスクの接続情報を更新するために、仮想マシンは瞬間的にサスペンド状態となることに注意してほしい。VMotionと同様にゲストOS上にFTPサーバーを構築し、Storage VMotionの実行中にクライアントPCからFTP転送を行ってみたところ、TCPの再送を数回確認できた。このテストではTCPの再送でカバーされたため、実際のFTP通信には影響がなかったが、ディスクへの書き込みが激しい状態でのStorage VMotionは、念のため避けた方がよいと考えられる。

  • (5)正常に切り換わると、移行元のストレージ内に残っている旧データを削除してStorage VMotionは完了となる。

 このように正常終了するまで、元データは残される設計となっているため、万一処理中にエラーが発生しても安心だ。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら