はじめに
この投稿はアイスタイル Advent Calendar 2023の16日目の記事です。
アイスタイルでインフラ業務をやっている片桐です。
アイスタイルでは、主にAWSを使用したオートスケール環境でシステムが運用されていますが、まだ一部のシステムはオンプレミス環境で動作しています。
今回はオンプレミス環境で稼働しているサーバーが、物理サーバ間で移設する際に利用している「vMotion」についてお話させていただこうと思います。
vMotionって何?
VMware vSphere3.5以降の機能で、仮想環境上で稼働中のOSやユーザセッションを停止させることなく、複数の物理サーバ間で仮想マシンを移動させる機能です。
この機能により、システムを停止させる事なく物理サーバをメンテナンスすることが可能になります。
本番環境など稼働している仮想マシンの移設の場合、連携している他の仮想マシンにエラー通知されてしまうなどの影響があることから、なるべく仮想マシンのシャットダウンはしたくないところだと思います。
vMotionを初めて知ったとき、仮想マシンを停止せずに物理サーバ間で移設できることが便利だと感じました。
便利ではありますが、何でも移設できるというわけではありません。
vMotionで仮想マシンの要件および注意事項
vMotion を使用して仮想マシンを移行するには、様々な条件を満たしている必要があります。
いくつか紹介します。
- ソースとターゲットの管理ネットワーク IP アドレス ファミリが一致する必要があります。
移設先に同じアドレス帯の設定が無いと移設できません。
(移設メニュー選択時の互換性チェックで警告が出ます) - 冗長構成を組む場合には同一の筐体への仮想マシンの移設は推奨できません。
せっかく冗長構成を組んでも、筐体が故障した場合に一度に故障となるので別筐体が望ましいです。 - 仮想マシンが、クライアント コンピューターのデバイスで補助されている仮想デバイスを使用している場合、vMotion で移行することはできません。
(仮想マシンのCD/DVDのドライブが接続されていると移設メニュー選択時の互換性チェックで警告が出ます)
自分でvMotionを操作してみて引っかかった箇所は上記になります。
このほかにも以下のような要件、制限事項があるようです。
今後、新たに移設先の物理サーバを用意する際にはこれらの要件も気にするようにしたいと思います。
- vMotion ネットワークに 1 GbE ネットワーク アダプタを使用すると、vGPU プロファイルが大きい仮想マシンを移行する場合に移行に失敗することがあります。
- 仮想 CPU パフォーマンス カウンタが有効になっている場合、移行できるのは、互換性のある CPU パフォーマンス カウンタを持つホストのみです。
- vMotion は、ターゲット ホストからアクセスできないデバイスで補助されている仮想デバイスを使う仮想マシンの移行には使用できません。
- 特定のネットワーク、ホスト、およびデータストアのリソース コストで、複数の仮想マシンを同時に移行できます。
vMotionはどんな処理をしているのか?
vMotionでの移行は次の3段階の処理で実行されます。
- vMotion での移行が要求されると、vCenter Server は既存の仮想マシンが現在のホストで安定状態にあることを確認します。
- 仮想マシンの状態情報 (メモリ、レジスタ、ネットワーク接続) がターゲット ホストにコピーされます。
- 新しいホスト上で仮想マシンがアクティビティをレジュームします。
※移行中にエラーが発生した場合、仮想マシンは元の状態および場所に戻されます。
移設元の仮想マシンのメモリやシステム状態すべてを移設先の仮想マシンにコピーし、移設先の仮想マシンでレジュームしているんですね。
vMotionを扱ってみて
これまでの自分の経験上、稼働しているサービスを停止することなくサーバを移設するには冗長化した環境で、縮退運転にした状態でサーバを移設するのが当たり前だと思っていました。
vMotionできる条件さえ整えておけば特に難しい操作を必要とせず、移設したい仮想マシンと移設先サーバを選択することで無停止で移設できるのは利便性が高いと思いました。
実際に移設作業を行った際、本当に通信断が発生していないか?pingコマンドで通信断がないか確認しましたが、途切れることはありませんでした。
最後に
vMotionについて簡単ではありますが書き綴ってみました。
興味を惹く内容であれば幸いです。
参考
vmware vMotionでの移行
vmware vMotionの仮想マシンの要件および制限事項
NETWORLD vMotion