Storage vMotion:ダウンタイムなしで仮想マシンを「引っ越し」させる究極のテクニック

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

ピーク時にvCenterで真っ赤なアラートが発生:あなたならどうする?

このような光景は、管理者にとって非常に馴染み深いものでしょう。チケットの処理に集中している最中、監視システムが赤色の警告を発します。「Datastore Production_LUN_01 の空き容量が不足しています(空き容量5%未満)」。ここは、会社全体のERPシステムを支えるデータベースサーバーのディスクが配置されている場所です。もしディスクがいっぱいになれば、データベースはロックされ、数百人の従業員が業務を停止せざるを得なくなります。

私が管理している8台のESXiホストと200台以上の仮想マシンを抱えるインフラでは、このような状況は日常茶飯事です。開発チームがログのローテーションを忘れたり、データ需要が予想以上に急増したりすることが原因です。以前は、上司に「夜間に2時間のシステム停止」を申請し、仮想マシンをシャットダウンしてファイルをコピーするしか方法がありませんでした。しかし現在、ECサイトのダウンタイムは1時間あたり数万ドルの損失を招く可能性があります。「容量不足」という理由だけで顧客を待たせることは、もはや許されません。

データ移行のために仮想マシンを停止させる代償

仮想マシンの停止(Cold Migration)は一見安全に思えますが、実は想像以上のリスクを孕んでいます。安定稼働しているサーバーを停止させると、以下のような問題に直面します:

  • サービスの中断: 実行中のすべてのセッションが即座にキャンセルされます。
  • 「再起動できない」リスク: 再起動時のファイルシステムエラーやサービスの競合は、よくあるトラブルです。
  • 時間のプレッシャー: 1Gbpsのネットワーク経由で2TBのVMDKファイルを移動すると、5時間以上かかる場合があります。それほど長い間、システムをオフラインにすることはできません。

問題の本質は、仮想マシンのデータがSANやNAS上の物理的な場所に固定されていることです。サービスをオンラインに保ったままこの問題を根本的に解決するには、「ライブ」でデータを移行するメカニズムが必要です。

Storage vMotion – 中断のない移行ソリューション

Storage vMotionは、仮想マシンを停止することなく、構成ファイル全体と仮想ディスク(VMDK)を新しいデータストアに移行できるテクノロジーです。ゲストOS(Guest OS)は継続して動作し、エンドユーザーはインフラ層で大規模なメンテナンスが行われていることさえ気づきません。

この仕組みはIOミラーリング(IO Mirroring)技術に基づいています。移行が開始されると、新しい書き込みデータはソース(移行元)とターゲット(移行先)の両方のディスクに同時に書き込まれます。古いデータのコピーが完了すると、vSphereは瞬時に切り替え(switchover)を行い、元の場所のデータを削除します。

「移行」ボタンを押す前のチェックリスト

クラスター上での移行プロセスをスムーズに進めるために、以下の条件を確認してください:

  • vSphereのライセンスがStandardエディション以上であること。
  • ESXiホストが移行元と移行先の両方のデータストアに同時に接続されていること。
  • 古いスナップショットは削除しておくことを推奨します。スナップショットが残っていると移行時間が長くなり、ディスクレイテンシが50msを超える原因になります。
  • ストレージネットワークの帯域幅が安定していること。10Gbpsカードの使用が理想的です。

vSphere Clientでの実行手順

HTML5インターフェースでの操作は非常に直感的です:

  1. 仮想マシンを右クリックし、[移行](Migrate)を選択します。
  2. [ストレージのみ変更](Change storage only)オプションを選択します。
  3. ターゲットデータストアを選択: パフォーマンスを確保するため、SSDまたは空き容量が20%以上あるLUNを優先します。
  4. フォーマットの変換(必要な場合): この機会にThick ProvisionからThin Provisionに変換して、余分なディスクスペースを回収することも可能です。
  5. [完了](Finish)をクリックし、[最近のタスク](Recent Tasks)タブで進捗を確認します。

移行中にping -tを実行してみてください。最終的な切り替えの瞬間に、1〜2個のパケットロスが発生するだけで済むことがわかります。

大規模システム向けのPowerCLIによる最適化

数十台の仮想マシンを含むストレージアレイ(Storage Array)全体のメンテナンスが必要な場合、手動でクリックするのは非常に時間がかかります。私は効率化のためにPowerCLIスクリプトをよく使用します。

# vCenterに接続
Connect-VIServer -Server vcenter.congty.com

# 仮想マシン「SRV-DB-PROD」をデータストア「SAN_SSD_NEW」に移行
Move-VM -VM "SRV-DB-PROD" -Datastore "SAN_SSD_NEW" -RunAsync

-RunAsyncパラメータは非常に重要です。これにより、前のタスクの終了を待たずに連続してコマンドを発行できます。vCenterは自動的にタスクをキューに入れ、順番に実行します。

システムの「ハングアップ」を防ぐための実践的な注意点

Storage vMotionは非常に強力ですが、油断は禁物です。長年の運用経験から得た3つの教訓を紹介します:

  • ピーク時間を避ける: データコピープロセスは大量のI/Oを消費します。バックアップの集中時間帯やユーザーアクセスが多い時間帯に実行すると、アプリケーションに顕著な遅延が発生します。
  • 15%ルール: 移行後のターゲットデータストアの空き容量が15%(使用率85%)を下回らないようにしてください。残りのスペースは、仮想マシンのスワップファイルや一時的なスナップショットを作成するために必要です。
  • vMotionネットワークカードの確認: ストレージの移行と同時に仮想マシンを別のホストに移動する場合は、vMotionトラフィックを専用のVLANに分離し、最高速度(10Gbpsネットワークで約400〜600GB/時)が出るようにしてください。

Storage vMotionをマスターすることで、ストレージリソースの管理を完全にコントロールできるようになります。ディスク容量不足の警告や、急なハードウェアメンテナンスに頭を悩ませることはもうありません。

Share: