10.2. ライブマイグレーションの設定
ライブマイグレーション設定を行い、移行プロセスがクラスターに負荷を与えないようにすることができます。
ライブマイグレーションポリシーを設定して、さまざまな移行設定を仮想マシンのグループに適用できます。
10.2.1. ライブマイグレーション設定
次のライブマイグレーション設定を設定できます。
10.2.1.1. ライブマイグレーションの制限およびタイムアウトの設定
openshift-cnv
namespace にある HyperConverged
カスタムリソース (CR) を更新して、クラスターのライブマイグレーションの制限およびタイムアウトを設定します。
手順
HyperConverged
CR を編集し、必要なライブマイグレーションパラメーターを追加します。$ 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: 64Mi 1 completionTimeoutPerGiB: 800 2 parallelMigrationsPerCluster: 5 3 parallelOutboundMigrationsPerNode: 2 4 progressTimeout: 150 5
- 1
- 各マイグレーションの帯域幅制限。値は 1 秒あたりのバイト数です。たとえば、値
2048Mi
は 2048 MiB/s を意味します。デフォルト:0
(無制限)。 - 2
- 移行がこの時間内に終了しない場合 (単位はメモリーの GiB あたりの秒数)、移行は取り消されます。たとえば、6 GiB メモリーを搭載した仮想マシンは、4800 秒以内に移行が完了しないとタイムアウトになります。
Migration Method
がBlockMigration
の場合、移行するディスクのサイズは計算に含められます。 - 3
- クラスターで並行して実行される移行の数。デフォルトは
5
です。 - 4
- ノードごとのアウトバウンドの移行の最大数。デフォルトは
2
です。 - 5
- メモリーのコピーの進捗がこの時間内 (秒単位) に見られない場合に、移行は取り消されます。デフォルトは
150
です。
キー/値のペアを削除し、ファイルを保存して、spec.liveMigrationConfig
フィールドのデフォルト値を復元できます。たとえば、progressTimeout: <value>
を削除してデフォルトの progressTimeout: 150
を復元します。
10.2.2. ライブマイグレーションポリシー
ライブマイグレーションポリシーを作成して、仮想マシンまたはプロジェクトラベルによって定義された仮想マシンのグループにさまざまな移行設定を適用できます。
Web コンソール を使用してライブマイグレーションポリシーを作成できます。
10.2.2.1. コマンドラインを使用したライブマイグレーションポリシーの作成
コマンドラインを使用してライブマイグレーションポリシーを作成できます。ライブマイグレーションポリシーは、ラベルの任意の組み合わせを使用して、選択した仮想マシンに適用されます。
-
size
、os
、gpu
などの仮想マシンラベル -
priority
、bandwidth
、またはhpc-workload
などのプロジェクトラベル
ポリシーを特定の仮想マシングループに適用するには、仮想マシングループのすべてのラベルがポリシーのラベルと一致する必要があります。
複数のライブマイグレーションポリシーが仮想マシンに適用される場合は、一致するラベルの数が最も多いポリシーが優先されます。
複数のポリシーがこの基準を満たす場合、ポリシーは一致するラベルキーのアルファベット順に並べ替えられ、その順序の最初のポリシーが優先されます。
手順
次の例のように
MigrationPolicy
オブジェクトを作成します。apiVersion: migrations.kubevirt.io/v1alpha1 kind: MigrationPolicy metadata: name: <migration_policy> spec: selectors: namespaceSelector: 1 hpc-workloads: "True" xyz-workloads-type: "" virtualMachineInstanceSelector: 2 workload-type: "db" operating-system: ""
次のコマンドを実行して、移行ポリシーを作成します。
$ oc create migrationpolicy -f <migration_policy>.yaml