vMotionのための基本となる動作原理[訳]標準(原則として、仮想マシンのライブマイグレーション)

VMware vSphereのvMotionの機能は、今日の仮想インフラストラクチャの1最も重要な機能です。2002年の設立以来、それは別の物理ESXiホストから移行たちは、アクティブな仮想マシンにすることができますので、2003年にリリース。今日では、シームレスに仮想マシンを移行する機能は、ほぼすべての仮想化の展開の重要な部分です。ワークロードの移植は使用することができ、ハイブリッドクラウドの経験の本当の基盤であるVMwareのハイブリッドクラウドの拡張機能(HCX)の内部およびパブリッククラウドの間でそれらを移動すること。vSphereのvMotionののIT産業は最も重要なゲームチェンジャーの一つです。

長年にわたり、私たちは、新しい技術をサポートするために、内部のvMotionテクノロジーの数を開発しました。

このブログ記事は、標準のvMotionターゲットESXiホストを計算するために、ソースからアクティブな状態遷移である標準のvMotion、に焦点を当てます。標準のvMotionと併用した場合、我々はまた、Storage VMotionの実行を行うことができ、VMotionを強化していると考えられます。長距離およびクロスクラスタのvMotionのvMotionの他のタイプは、それらが主のvCenter vMotionの端のESXi Serverオペレーティング・プロセス上にあります。

vMotionのプロセス

仮想マシンの移行を開始した後、vCenter Serverのインスタンスは、移行に対処するために、いわゆる長時間実行移行タスクを実行します。最初のステップは、互換性チェックを実行することです。あなたは、宛先ホスト上の仮想マシンを実行することはできますか?可能な制約がライブマイグレーションを妨げる可能性が考えてみましょう。次は、ESXiは何が起こったのかをホストし、ソースとターゲットを伝えることです。次の情報を移行タスクを作成するには:

  • それは、仮想マシンを移行されているかどうか
  • 仮想マシン(仮想ハードウェア、VMオプション、など)の構成であるかどうか
  • コンプライアンスのためのソースESXiホスト
  • ターゲットESXiは、コンプライアンスのためのホスト
  • VMotionネットワーク関連の問題

ソースおよびターゲットのESXiホストESXiホスト共有移行プラクティスにvCenter Serverインスタンスは、マイグレーション・プロセスを開始するために必要なすべての情報の交換を確実にします。使用のvCenter Serverの仮想プロビジョニングXデーモン(のvpxd)は、仮想プロビジョニングXエージェント(VPXA)はESXiホスト上で実行されている呼び出し、ESXiホストと通信します。hostdを移行仕様を受信し、VMXプロセスに渡すことにより、リスナーからVPXAのvpxdメッセージ。ホストデーモン(hostdを)VMstateと他の仮想マシンテレメトリを含むホストの情報と管理に特定のアクセスを維持します。移行を開始すると、それは、移行中の仮想マシンの構成を変更することはできませんので、hostdを仮想マシンは、状態の中央に配置されます。

仮想マシンモニタ(VMM)は、仮想マシンのメモリと仮想マシンのストレージとVMkernelへのネットワークIO要求のプロセスを管理する責任があります。他のすべての性能に依存しないIO要求は、VMM VMXに転送されます。重要でないIOデバイスの性能に責任VM拡張子のVMkernel中(VMX)プロセスが実行、。これが配置されているアクティブな仮想マシンのメモリの場所があるので、VMMは、移行中にソースESXiホスト上で使用されている、注意してください。

これが行われると、VMkernelのESXiのマイグレーション・ソース・モジュールは、ESXiホスト設定された目標と通信するためにネットワークをイネーブルのvMotionのソケットを開きます。

事前コピー相に準備段階

これまでのところ、すべてのプロセスとの通信経路は、チケットラインのリアルタイムへの移行準備が整いました。目的は、事前にコンピューティングリソースを移行するために、ターゲットESXiホストの仮想マシンのための準備段階を確保することです。また、仮想マシンがターゲットホスト上で作成されましたが、それがマスクされています。

準備フェーズの完了後、プロセスはこの段階では、ESXiホストを対象とするソースからのメモリ転送を事前コピーフェーズに入ります。すべてのあなたは、ESXiホスト上のソースの仮想マシンのメモリページを追跡する必要があります。それはこれらのメモリページターゲットホストに再送信される必要があるため、この方法では、vMotionのプロセスは、メモリのソース仮想マシンのページがカバーまたは移行中に(ダーティページとして知られている)に変更されている知っています。

ページの追跡

在预复制阶段,虚拟机正在使用的vCPU会被短暂停顿,以安装页面跟踪器。VMkernel迁移模块现在要求VMM启动页面跟踪,因为VMM拥有虚拟机的内存页表状态。下图显示了guest虚拟机操作系统在vMotion期间将数据写入内存时发生的情况:

迭代内存预复制

页面跟踪是一个连续的循环。它将通过使用多次迭代来实现内存预复制收敛。第一次迭代(预拷贝阶段-1)复制虚拟机内存。以下迭代(预拷贝阶段0到n)用于复制脏内存页面。举个例子,这就是我们实时迁移具有24GB内存的虚拟机时迭代的样子:

阶段-1:复制24GB的虚拟机内存和跟踪页面。当我们发送内存时,它会带来8GB的污染。
阶段0:重新传输脏污的8GB。在这个过程中,内存污染另外3GB。
阶段1:发送3GB。当转移发生时,虚拟机又会污染1GB。
阶段2:发送剩余的1GB。

当内存页面从源复制到目标ESXi主机时,我们需要确定何时能够完成预复制,所以VMM会在每次迭代复制后询问VMkernel是否已完成预复制。当只有将所有内存更改(脏页)复制到目标主机时,才可以执行后续操作。迭代内存预拷贝算法的一部分是将所有目标内存页面与其源匹配。从第0页开始一直到最大或最后一个内存页码,依次检查所有内存页以查看目标页是否与源页同步。

要确定我们是否可以终止预复制,我们需要验证是否可以在<500ms的窗口中完成最后一次内存页面复制。我们可以使用迁移开销中的信息来计算:

  • 迁移传输速率; 以什么速度(GbE)我们在主机之间复制内存数据?
  • 脏页率(GB / s); 客户操作系统覆盖了多少内存页面?
  • 我们还有多少页要传输到目标主机?

如果不是,则发生下一次迭代。如果结果为是,则VMkernel迁移模块将终止预复制过程。

现在,如果脏页率高于迁移传输速率会发生什么?如果是这种情况,那么进行另一次迭代是没有意义的,因为我们永远无法实现内存预复制的收敛,并且迁移将停止。这就是我们在vSphere 5.0中引入Stun页面发送(SDPS)的原因。基本上,SDPS是VMkernel告诉VMM不运行预定指令但是引入非常短的“睡眠”的一种方式。这可能听起来像是对工作负载性能的影响,但这种情况发生在细粒度级别。正是由于这些非常小的微秒级别的时间窗口,我们可以将vMotion预复制收敛,并完成vMotion工作。

如果脏页面速率>传输速率,则每次迭代执行SDPS。后续迭代仅复制在上一次迭代期间修改的脏内存页。迭代的持续时间越短,客户OS就越不能修改或弄脏其存储页面,从而缩短了下一次预复制迭代。虽然产生一些性能开销,但SDPS通常不会对工作负载造成影响。这些开销对客户操作系统来说是可以忽略不计的。

切换

由VMM终止内存预复制后,所有内存页都驻留在目标ESXi主机上。VMM现在向VMX发送远程过程调用(RPC),它可以挂起源虚拟机。VMX将进入检查点阶段,暂停虚拟机并将检查点数据发送到目标ESXi主机。

在此过程中,目标ESXi主机上的虚拟机将被解除屏蔽,并使用源虚拟机的检查点数据恢复状态。基本流程是:启动目标虚拟机、中断启动过程、再把状态指向迁移过来的源虚拟机内存页,完成启动。所有这些通常发生在100-200ms,这是虚拟机处于不可访问的一个时间,这取决于主机硬件性能、动态的访问负载等各种因素。

到此,虚拟机的vMotion完成。

原文:https://blogs.vmware.com/vsphere/2019/07/the-vmotion-process-under-the-hood.html

おすすめ

転載: www.cnblogs.com/xddsq/p/11299049.html