12.2.2. 負荷の高いワークロード向けのライブマイグレーション設定
データベース処理などの負荷の高いワークロードを実行している仮想マシンを移行する場合、メモリーのダーティー率が高いと、移行が完了しない可能性があります。この問題を解決するには、コピー後モードを有効にすると、コピー前フェーズが収束しない場合でも移行を完了させることができます。
openshift-cnv 名前空間内の HyperConverged カスタムリソース (CR) を更新することで、負荷の高いワークロード向けのライブマイグレーションを設定します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
HyperConvergedCR を編集し、負荷の高いワークロードを移行するために必要なパラメーターを追加します。$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv設定ファイルの例:
apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: liveMigrationConfig: bandwidthPerMigration: 0Mi completionTimeoutPerGiB: 150 parallelMigrationsPerCluster: 5 parallelOutboundMigrationsPerNode: 1 progressTimeout: 150 allowPostCopy: trueここでは、以下のようになります。
bandwidthPerMigration-
各移行の帯域幅をバイト/秒単位で指定します。デフォルトは
0で、無制限です。 completionTimeoutPerGiB-
メモリー 1GiB あたり、移行が完了していない場合に移行がキャンセルされ、ポストコピーモードが有効になっている場合はそのモードがトリガーされるまでの時間 (秒単位) を指定します。移行プロセスの早い段階でポストコピーモードをトリガーするには、
completionTimeoutPerGiBを減らします。また、移行プロセスの後半でポストコピーモードをトリガーするには、completionTimeoutPerGiBを増やします。 parallelMigrationsPerCluster-
クラスター内で並行して実行されるマイグレーションの数を指定します。デフォルトは
5です。負荷の高いワークロードを移行する場合は、parallelMigrationsPerCluster設定を低くします。 parallelOutboundMigrationsPerNode- ノードごとの送信マイグレーションの最大数を指定します。負荷の高いワークロード用に、ノードごとに仮想マシンを 1 つ設定します。
progressTimeout- メモリーコピーの処理が進まなかった場合に、移行がキャンセルされるまでの時間を秒単位で指定します。大きなメモリーサイズで負荷の高いワークロードを実行する場合は、このパラメーターを増やします。
allowPostCopy- 投稿コピーモードが有効になっているかどうかを指定します。ポストコピーモードを有効にすると、仮想マシンが高負荷なワークロードを実行していてメモリーのダーティー率が高すぎる場合でも、あるノードから別のノードへの移行を収束させることができます。投稿コピーモードを有効にするには、allowPostCopy を true に設定してください。
オプション: メインネットワークがビジー状態で移行できない場合は、移行専用のセカンダリーネットワークを設定します。
注記ポストコピーモードは転送中のパフォーマンスに影響を与える可能性があるため、重要なデータや不安定なネットワークでは使用しないでください。