12.2. ライブマイグレーションの設定
ライブマイグレーション設定を行い、移行プロセスがクラスターに負荷を与えないようにすることができます。
ライブマイグレーションポリシーを設定して、さまざまな移行設定を仮想マシンのグループに適用できます。
12.2.1. ライブマイグレーションの制限およびタイムアウトの設定 リンクのコピーリンクがクリップボードにコピーされました!
openshift-cnv namespace にある HyperConverged カスタムリソース (CR) を更新して、クラスターのライブマイグレーションの制限およびタイムアウトを設定します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
HyperConvergedCR を編集し、必要なライブマイグレーションパラメーターを追加します。oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルのサンプル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 各マイグレーションの帯域幅制限。値は 1 秒あたりのバイト数です。たとえば、値
2048Miは 2048 MiB/s を意味します。デフォルト:0(無制限)。 - 2
- 移行がこの時間内に終了しない場合 (単位はメモリーの GiB あたりの秒数)、移行は取り消されます。たとえば、6 GiB メモリーを搭載した仮想マシンは、4800 秒以内に移行が完了しないとタイムアウトになります。
Migration MethodがBlockMigrationの場合、移行するディスクのサイズは計算に含められます。 - 3
- クラスターで並行して実行される移行の数。デフォルトは
5です。 - 4
- ノードごとのアウトバウンド移行の最大数。デフォルトは
2です。 - 5
- メモリーのコピーの進捗がこの時間内 (秒単位) に見られない場合に、移行は取り消されます。デフォルトは
150です。 - 6
- 仮想マシンが負荷の高いワークロードを実行しており、メモリーのダーティー率が高すぎる場合、あるノードから別のノードへの移行が収束しない可能性があります。これを防ぐには、ポストコピーモードを有効にします。デフォルトでは、
allowPostCopyはfalseに設定されています。
キー/値のペアを削除し、ファイルを保存して、spec.liveMigrationConfig フィールドのデフォルト値を復元できます。たとえば、progressTimeout: <value> を削除してデフォルトの progressTimeout: 150 を復元します。
12.2.2. 負荷の高いワークロード向けのライブマイグレーション設定 リンクのコピーリンクがクリップボードにコピーされました!
メモリーのダーティー率が高く、負荷の高いワークロード (データベース処理など) を実行している仮想マシンを移行する場合、移行を完了するにはより高い帯域幅が必要です。
ダーティー率が高すぎる場合、あるノードから別のノードへの移行は収束しません。これを防ぐには、ポストコピーモードを有効にします。
ポストコピーモードは、定義されたタイムアウト内に最初のプレコピーフェーズが完了しない場合にトリガーされます。ポストコピーの期間において、必要最小限のメモリーページの転送中に仮想マシン CPU はソースホスト上で一時停止します。その後、仮想マシン CPU が宛先ホスト上でアクティブになり、実行時に残りのメモリーページが宛先ノードに転送されます。
openshift-cnv namespace にある HyperConverged カスタムリソース (CR) を更新して、負荷の高いワークロードのライブマイグレーションを設定します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
HyperConvergedCR を編集し、負荷の高いワークロードを移行するために必要なパラメーターを追加します。oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルのサンプル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 各マイグレーションの帯域幅制限。値は 1 秒あたりのバイト数です。デフォルトは
0で、無制限です。 - 2
- この時間内に完了しない移行はキャンセルされ、ポストコピーが有効な場合はポストコピーモードがトリガーされます。この値は、メモリー 1 GiB あたりの秒数で測定されます。移行プロセスの早い段階でポストコピーモードをトリガーするには、
completionTimeoutPerGiBを減らします。また、移行プロセスの後半でポストコピーモードをトリガーするには、completionTimeoutPerGiBを増やします。 - 3
- クラスターで並行して実行される移行の数。デフォルトは
5です。負荷の高いワークロードを移行する場合は、parallelMigrationsPerCluster設定を低くします。 - 4
- ノードごとのアウトバウンド移行の最大数。負荷の高いワークロード用に、ノードごとに仮想マシンを 1 つ設定します。
- 5
- この時間内 (秒単位) にメモリーコピーが進捗しない場合、移行は取り消されます。この値は秒単位で測定されます。大きなメモリーサイズで負荷の高いワークロードを実行する場合は、このパラメーターを増やします。
- 6
- メモリーのダーティー率が高い場合は、移行が確実に収束するように、ポストコピーモードを使用します。ポストコピーモードを有効にするには、
allowPostCopyをtrueに設定します。
- オプション: メインネットワークがビジー状態で移行できない場合は、移行専用のセカンダリーネットワークを設定します。
ポストコピーモードは転送中のパフォーマンスに影響を与える可能性があるため、重要なデータや不安定なネットワークでは使用しないでください。
12.2.4. ライブマイグレーションポリシー リンクのコピーリンクがクリップボードにコピーされました!
ライブマイグレーションポリシーを作成して、仮想マシンまたはプロジェクトラベルによって定義された仮想マシンのグループにさまざまな移行設定を適用できます。
OpenShift Container Platform Web コンソールを使用して、ライブマイグレーションポリシーを作成できます。
12.2.4.1. CLI を使用したライブマイグレーションポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用してライブマイグレーションポリシーを作成できます。KubeVirt は、任意のラベルの組み合わせを使用して、選択した仮想マシン (VM) にライブマイグレーションポリシーを適用します。
-
size、os、gpuなどの仮想マシンラベル -
priority、bandwidth、またはhpc-workloadなどのプロジェクトラベル
ポリシーを特定の仮想マシングループに適用するには、仮想マシングループのすべてのラベルがポリシーのラベルと一致する必要があります。
複数のライブマイグレーションポリシーが仮想マシンに適用される場合は、一致するラベルの数が最も多いポリシーが優先されます。
複数のポリシーがこの基準を満たす場合、ポリシーは一致するラベルキーのアルファベット順に並べ替えられ、その順序の最初のポリシーが優先されます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
ライブマイグレーションポリシーを適用する仮想マシンオブジェクトを編集し、対応する仮想マシンラベルを追加します。
リソースの YAML 設定を開きます。
oc edit vm <vm_name>
$ oc edit vm <vm_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定の
.spec.template.metadata.labelsセクションで必要なラベル値を調整します。たとえば、移行ポリシーの目的で仮想マシンをproduction仮想マシンとしてマークするには、kubevirt.io/environment: production行を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定を保存して終了します。
対応するラベルを使用して
MigrationPolicyオブジェクトを設定します。次の例では、productionというラベルが付けられたすべての仮想マシンに適用されるポリシーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、移行ポリシーを作成します。
oc create -f <migration_policy>.yaml
$ oc create -f <migration_policy>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow