FAQ:VMWarevMotionを使用した仮想マシンのライブマイグレーション
vMotion 実行中のVMWare仮想マシンを、動作を中断したりサービスを停止したりすることなく、ある物理ESXiホストから別の物理ESXiホストに移行できます。この記事では、VMWare vMotionの機能について説明します。vMotionの仕組み、存在するvMotionタイプ、ESXiホストまたはストレージ間で仮想マシンを手動で移行する方法です。また、vMotionの最適化とトラブルシューティングの一般的な方法についても検討します。
すでに述べたように、 vMotion ライブマイグレーションを実行できます ダウンタイムやユーザーの作業の中断なしに仮想マシンのvMotionは、VMの高可用性を提供する方法として位置付けられていません。まず、物理サーバーをインストール済みのESXiハイパーバイザーまたはストレージアレイで保守/更新/交換する必要がある場合に、生産性の高いVMを移動するためのシンプルで便利なツールです。また、 DRS (Dynamic Resource Scheduler)は、物理サーバーの負荷を分散(分散)できるテクノロジーであり、vMotionに基づいています。
Hyper-Vホスト間でVMを移行するための同様のMicrosoftテクノロジは、Hyper-Vライブ移行と呼ばれます。
VMWarevMotionの仕組み
vMotionを使用して物理ホスト間でVMを移行するには、次のVMWareコンポーネントを使用します。
- VMWare vCenter 管理サーバー;
- 共有ストレージ (ファイバーチャネル、iSCSI、またはNASを使用して接続)、仮想マシンファイルを保存します。共有ストレージにより、複数の物理ESXiホストがSAN内の同じVMのファイルにアクセスできます。
- 共有高速ネットワーク ソースとターゲットのESXiホスト間(少なくとも1GBイーサネット)。 VMを移行する場合、VMは元のMACアドレスを保持し、vMotionは仮想マシンのMACアドレスの場所が変更されたことをネットワークスイッチに通知します。アクティブなネットワーク接続を維持できます。
- CPUの互換性 ホスト上で、または有効な拡張vMotion互換性(EVC)オプション。
vMotionはライブマイグレーションをどのように実行しますか? 最初に、(VMXファイルからの)同じ構成のソースVMのシャドウクローンがターゲットホスト上に作成されます。クローンVMは、共有ストレージ上のすべてのVMファイルを参照します。 RAMの内容と実行中のVMの状態は、ネットワークを介してソースからターゲットのESXiホストに転送されます。 vMotionはVMメモリのスナップショットを作成し、ネットワーク経由でターゲットサーバーにコピーします。同時に、vMotionはメモリページの変更を追跡し、変更されたメモリセグメントのみをコピーします(コピーされるデータが少なくなり、時間がかからないたびに、複数の段階で発生する可能性があります)。
ある時点で、ソースVMの状態がフリーズし、変更されたメモリセグメントとCPU命令がコピーされ、VMがターゲットESXiホストで開始されます。 1/10 GBイーサネットネットワーク上の中規模のVMの場合、プロセス全体に数秒かかります。
VMwarevMotionタイプ
vMotionとは、VMWareとは、実行中のVMをホスト、ストレージアレイ、都市間、またはオンプレミスとクラウドインフラストラクチャ間でオンザフライで移動できるようにするさまざまなテクノロジーのスタック全体を意味します。
vMotionタイプ:
- 標準のvMotion –ESXiホスト間で実行中のVMの移行。
- ストレージvMotion –データストア間で仮想マシンファイルをオンラインで移動する(SANストレージアレイ、NAS、vVol、NFSなど)。
- シェアードナッシングvMotion –共有ストレージを使用せずにネットワーク内のESXiサーバー間でVMを移行する(L2ネットワークが必要)。
- 長距離vMotion –リモートサイト間のVMの移行(最大ラウンドトリップ時間は、L3ネットワークも含めて最大150ミリ秒です)。 vSphere6.0で導入されました;
- 暗号化されたvSpherevMotion –ネットワーク経由でVMを転送するときにVMを暗号化できます(vSphere 6.5で利用可能)。
- クロスクラウドのコールドおよびホットマイグレーション –オンプレミスインフラストラクチャとクラウドインフラストラクチャ間のオンラインまたはオフラインの移行。
VMwareStoragevMotionの機能
すでに述べたように、 Storage vMotion 実行中の仮想マシンのファイル(vmdk仮想ディスクと構成ファイル)を、VMを停止せずに別のVMFS / NFS / vVolデータストア(LUN、ストレージアレイ)に移動できます。
Storage vMotionを正常に実行するための要件:
- VMディスクのタイプは永続的またはRDMである必要があります;
- VMwareToolsのインストール中のVMの移行はサポートされていません。
- データストアのVMFSバージョンは移行にとって重要です。たとえば、2TBを超えるvmdkファイルをVMFS5からVMFS3に移動することはできません。
- ESXiホストのライセンス;
- VMが実行されているホストは、ソースデータストアとターゲットデータストアの両方にアクセスできる必要があります。
- 仮想マシンディスクをコピーするときに、Changed Block Tracking(CBT)テクノロジが使用されます。変更されたデータブロックを追跡してコピーすることができます。
VMWareの拡張vMotion互換性(EVC)
拡張vMotion互換性(EVC) VMware HA / DRSクラスターのモードは、クラスターが異なる世代のCPUを搭載したホストに基づいている場合に使用されます(メーカーではありません!!!)。クラスターに対してEVCを有効にすると、ハイパーバイザーは、すべてのホストでサポートされていないCPU命令のマスキングを開始します。 EVCを有効にすると、クラスタ内のESXiホストのすべてのCPU機能が、vSphere管理者がクラスタ設定で設定した基本的な最小プロセッサ命令セットと互換性を持つようになります。
したがって、EVCのおかげで、サポートされているプロセッサ命令のセットが異なるホスト間でVMを移行できます。
同じvSphereクラスター内で、IntelやAMDなどの異なるプロセッサーベンダーのホストを混在させないでください。 EVCを使用すると、同じベンダーのプロセッサ間の互換性を実現できます。クラスタレベルでVMWareEVCを有効にできます。 構成に移動します ->構成 -> VMWare EVC 編集をクリックします 。
クラスタでEVCを有効にする場合は、EVCモード(AMDまたはIntelホストの場合)を選択し、ドロップダウンリストからVMWareクラスタで取得したこのベンダーによる最小CPU生成を選択する必要があります。
VMWareは、クラスタ内のホストに関係なく、常にEVCを有効にすることをお勧めします。クラスタを拡張したい場合は、それを行うのが簡単になります。 VMがCPU命令の完全なセットを使用していなくても、ホストのパフォーマンスに影響を与えないことを証明する別のKB記事もあります。
VMware vSphere 6.7は、クラウドとオンプレミス間の移行テクノロジー(クロスクラウドコールドおよびホット移行)を導入します。 VMをクラウドに移行するために、VMごとのEVCを有効にできるようになりました。 VM設定(ハードウェアバージョン14のvSphere 6.7で使用可能)
PowerCLIを使用して、クラスター内のVMに設定されたベースラインEVCレベルを取得できます。
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
サポートされている最大のEVCモードを取得するには:
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
VMWarevSphereでvMotionを有効にする方法
VMWarevSphere6.7でvMotionを有効にして構成する方法を見てみましょう。 vMotionを使用するには、EssentialsPlusVMWareライセンスがあれば十分です。
vMotionはVMkernelで有効になっています ESXiホスト仮想スイッチのレベル。ホストを選択し、構成に移動します ->ネットワーキング ->VMkernelアダプター 。
VMkernelアダプターを選択し、[編集]をクリックします 。
vmkポートのプロパティで、 vMotionを有効にします 有効なサービス セクション。
私の例では、VMWare HAクラスターはすでに作成されており、vSphere Distributed Switch(VDS)が使用されています。
vMotionを使用してホスト間でVMを移行する方法
実行中のVMを2つのESXiホスト間で移行するには、vSphere Clientを開き、移動するVMを右クリックして、[移行]を選択します。 。
使用する移行タイプを選択します:
- コンピューティングリソースのみを変更する —VMを別のESXiホストに移行します。
- ストレージのみを変更 —これは、Storage vMotion(VMファイルが配置されているデータストアを変更する)を意味します。
- コンピューティングリソースとストレージの両方を変更する —共有ストレージのない移行モード(共有ストレージのないvMotion /シェアードナッシング)、VMファイルはネットワークを介してホスト間でコピーされます
最初のオプションを選択しました。
移行ウィザードでは、仮想マシンの移動先となるホスト、クラスター、リソースプール、またはvAppを選択できます。ホストを選択します。 vMotionが正しく構成されていて、競合が見つからない場合は、互換性チェックが成功しましたと表示されます。 互換性のメッセージ セクション。
[互換性]タブにエラーが表示された場合は、それらを徹底的に調べて修正してください。[次へ]をクリックします。
VM移行ウィザードにより、VMのvNICをターゲットホストに配置するネットワークを選択するように求められます。移行後にVMを使用できるようにする場合は、VMをソースホストと同じネットワークセグメント(VLAN)に配置します。標準のvSphereスイッチを使用している場合は、すべてのESXiホストに同じポートグループを作成します。 VDSを使用する場合、すべてのクラスターホストのポートグループは同じです。
最後のステップで、vMotionタスクの優先度を選択します。デフォルトでは、最高の優先度が使用されます(優先度の高いvMotionをスケジュールする )。いつも使っています。
次に、[次へ]をクリックします ->終了 別のホストへのVMの移行が開始されます。 最近のタスクで移行ステータスを追跡できます パネル(仮想マシンの再配置 タスク)。私の場合、10GBイーサネットを介したvMotionを使用したVMの移行には約3秒かかりました。
VMが別のESXiホストで実行されていることを確認してください。
Move-VM を使用して、実行中のVMをPowerCLIの別のホストに移行できます。 PowerShellコマンドレット。たとえば、すべてのVMをmun-esxi01からmun-esxi02に移動します:
Get-VMHost mun-esxi01|Get-Vm| Move-VM –Destination (Get-VMHost mun-esxi02)
VMWare vMotionが機能しないのはなぜですか?
vMotionが失敗したり、VMの移行が非常に遅くなったりする一般的な理由のリストは次のとおりです。
- CPUの非互換性(EVC /拡張vMotion互換モードを有効にする);
- VMkernelインターフェイスでvMotionが有効になっていません;
- ESXiホストまたは仮想スイッチのネットワーク設定が正しくない、ポートグループ(ジャンボフレームが正しく構成されていない、vMotionネットワークでIPアドレスが競合している、vSwitch設定が正しくない、ネットワークが遅い、パケット損失)。
- 共有ストレージなし(vSphereバージョン5.1以前の場合)。 vSphere 5.1以降では、シェアードナッシングVMotionは利用できません。
- CD/DVDまたはISOイメージはターゲットホストで利用できません。
- アンチアフィニティルールを有効にしました;
- VMWareツールがゲストOSにインストールされています;
- ゲストOSがRAMの内容を積極的に変更している場合、vMotionは、変更されたデータをネットワーク経由で別のホスト上のVMコピーに移動するのに遅れる可能性があります。
- ターゲットホストにシャドウVMを作成するのに十分なCPUまたはRAMリソースがない場合、vMotionはエラーで失敗します。
VMを迅速に移行するためにvMotion速度を改善/最適化する方法は?
いくつかの方法で仮想マシンの移行を高速化できます。
- まず、2つのESXiホスト間で最高のパフォーマンスを発揮するネットワークを使用することをお勧めします。少なくとも10GBのネットワークを使用します。25GBがさらに優れています(ESXiサーバーのネットワークアダプターと物理スイッチがこのモードをサポートしている必要があります)。
- vMotionトラフィックにさまざまな物理インターフェースを使用します。
- vMotionの移行では、スレッド(別名ストリーム)を使用します。 vMotionが有効になっているVMkernelごとに1つのスレッドが作成されます。ただし、このスレッドは1つのプロセッサコアしか使用できません。
vMotionプロセスに複数のCPUコアを提供するには、複数のVMkernelインターフェイスを作成し、それらに対してvMotionを有効にして、それらを1つのNICインターフェイスにリンクします。 vMotionスレッドの平均スループットは約15GbEであるため、100 GbEをロードするには、6つのスレッドが必要です。
また、 Migration.VMotionStreamHelpers を使用して、VMkernelインターフェイスのvMotionスレッドの数を増やすことができます。 詳細システム設定のオプション。-
仮想マシンでの 3D アクセラレーション - パート 2:VirtualBox &OpenGL - チュートリアル
これは、仮想マシンでの 3D 仮想化の構成と使用に特化した 3 つの記事の 2 番目です。今日は、Windows または Linux ホストにインストールされた VirtualBox で実行されている Windows 仮想マシンの OpenGL アプリケーション (およびゲーム) の 3D アクセラレーションを有効にする方法を学習します。 最初の記事では、VMware 製品を使用して、Windows で DirectX プログラムの 3D アクセラレーションを有効にする方法について説明しました。ホスト プラットフォームの選択は問題ではありませんでした。 Windows ホストと Linux
-
仮想マシンでの 3D アクセラレーション - パート 1:VMware &DirectX - チュートリアル
仮想化されたオペレーティング システムを既存のホスト上で実行することは、優れたアイデアです。楽しく、クールで、実際のプラットフォームにコミットする前にソフトウェアを試すことができ、通常はあえてしないことを行うことができ、非常に大きな柔軟性が得られ、展開のコストが大幅に削減されます。 しかし、ほとんどの仮想化ソフトウェアに欠けているのは、ゲスト オペレーティング システムの 3D アクセラレーションです。または不足していた...仮想マシンでの 3D アクセラレーションが現実のものになりました。 はじめに この一連の記事では、ゲスト OS で 3D アクセラレーションを有効にする