10.2. ライブマイグレーションの設定


ライブマイグレーション設定を行い、移行プロセスがクラスターに負荷を与えないようにすることができます。

ライブマイグレーションポリシーを設定して、さまざまな移行設定を仮想マシンのグループに適用できます。

10.2.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 MethodBlockMigration の場合、移行するディスクのサイズは計算に含められます。
    3
    クラスターで並行して実行される移行の数。デフォルトは 5 です。
    4
    ノードごとのアウトバウンドの移行の最大数。デフォルトは 2 です。
    5
    メモリーのコピーの進捗がこの時間内 (秒単位) に見られない場合に、移行は取り消されます。デフォルトは 150 です。
注記

キー/値のペアを削除し、ファイルを保存して、spec.liveMigrationConfig フィールドのデフォルト値を復元できます。たとえば、progressTimeout: <value> を削除してデフォルトの progressTimeout: 150 を復元します。

10.2.2. ライブマイグレーションポリシー

ライブマイグレーションポリシーを作成して、仮想マシンまたはプロジェクトラベルによって定義された仮想マシンのグループにさまざまな移行設定を適用できます。

ヒント

ライブマイグレーションポリシーは、OpenShift Virtualization Web コンソールを使用して作成できます。

10.2.2.1. コマンドラインを使用したライブマイグレーションポリシーの作成

コマンドラインを使用してライブマイグレーションポリシーを作成できます。KubeVirt は、任意のラベルの組み合わせを使用して、選択した仮想マシン (VM) にライブマイグレーションポリシーを適用します。

  • sizeosgpu などの仮想マシンラベル
  • prioritybandwidth、または hpc-workload などのプロジェクトラベル

ポリシーを特定の仮想マシングループに適用するには、仮想マシングループのすべてのラベルがポリシーのラベルと一致する必要があります。

注記

複数のライブマイグレーションポリシーが仮想マシンに適用される場合は、一致するラベルの数が最も多いポリシーが優先されます。

複数のポリシーがこの基準を満たす場合、ポリシーは一致するラベルキーのアルファベット順に並べ替えられ、その順序の最初のポリシーが優先されます。

手順

  1. ライブマイグレーションポリシーを適用する仮想マシンオブジェクトを編集し、対応する仮想マシンラベルを追加します。

    1. リソースの YAML 設定を開きます。

      $ oc edit vm <vm_name>
    2. 設定の .spec.template.metadata.labels セクションで必要なラベル値を調整します。たとえば、移行ポリシーの目的で仮想マシンを production 仮想マシンとしてマークするには、kubevirt.io/environment: production 行を追加します。

      apiVersion: migrations.kubevirt.io/v1alpha1
      kind: VirtualMachine
      metadata:
        name: <vm_name>
        namespace: default
        labels:
          app: my-app
          environment: production
      spec:
        template:
          metadata:
            labels:
              kubevirt.io/domain: <vm_name>
              kubevirt.io/size: large
              kubevirt.io/environment: production
      # ...
    3. 設定を保存して終了します。
  2. 対応するラベルを使用して MigrationPolicy オブジェクトを設定します。次の例では、production というラベルが付けられたすべての仮想マシンに適用されるポリシーを設定します。

    apiVersion: migrations.kubevirt.io/v1alpha1
    kind: MigrationPolicy
    metadata:
      name: <migration_policy>
    spec:
      selectors:
        namespaceSelector: 1
          hpc-workloads: "True"
          xyz-workloads-type: ""
        virtualMachineInstanceSelector: 2
          kubevirt.io/environment: "production"
    1
    プロジェクトラベルを指定します。
    2
    仮想マシンラベルを指定します。
  3. 次のコマンドを実行して、移行ポリシーを作成します。

    $ oc create migrationpolicy -f <migration_policy>.yaml

10.2.3. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.