10.4. コマンドラインインターフェイスを使用した仮想マシンの移行


仮想マシンの現在のホストが不安定な場合や使用できない場合や、ホストワークロードを再分散する場合は、仮想マシンを別の KVM ホストに移行できます。ライブ移行 または オフライン移行を 実行できます。2 つのシナリオの違いについては、仮想マシンの移行の仕組み を参照してください。

前提条件

  • ハイパーバイザー: ソースホストと宛先ホストの両方が KVM ハイパーバイザーを使用します。
  • ネットワーク接続: 送信元ホストと宛先ホストはネットワーク経由で相互にアクセスできます。ping ユーティリティーを使用してこれを確認します。
  • 開いているポート: 宛先ホストで次のポートが開いていることを確認します。

    • ポート 22 は、SSH を使用して宛先ホストに接続するために必要です。
    • ポート 16509 は、TLS を使用して宛先ホストに接続するために必要です。
    • ポート 16514 は、TCP を使用して宛先ホストに接続するために必要です。
    • ポート 49152 - 49215 は、QEMU がメモリーおよびディスク移行データを転送するために必要です。
  • ホスト: 移行が Red Hat でサポートされるためには、ソースホストと宛先ホストで特定のオペレーティングシステムとマシンタイプを使用している必要があります。これを確認するには、Supported hosts for virtual machine migration を参照してください。
  • CPU: 仮想マシンは、宛先ホストの CPU 機能と互換性がある必要があります。これを確認するには、仮想マシン移行のホスト CPU の互換性の確認 を参照してください。
  • ストレージ: 移行される仮想マシンのディスクイメージは、ソースホストと宛先ホストの両方からアクセスできます。オフラインマイグレーションの場合は任意ですが、実行中の仮想マシンの移行に必要になります。両方のホストのストレージアクセスを確保するには、次のいずれかに該当している必要があります。

    • ストレージエリアネットワーク (SAN) 論理ユニット (LUN) を使用している。
    • Ceph Storage クラスター を使用している。
    • ソース仮想マシンディスクと同じ形式とサイズの ディスクイメージを作成し、仮想マシンを移行するときに --copy-storage-all パラメーターを使用します。
    • ディスクイメージが別のネットワーク上の場所にある。このような仮想マシンの共有ストレージを設定する手順は、Sharing virtual machine disk images with other hosts を参照してください。
  • ネットワーク帯域幅: 実行中の仮想マシンを移行する場合、ネットワーク帯域幅は仮想マシンがダーティーメモリーページを生成する速度よりも高くする必要があります。

    ライブマイグレーションを開始する前に仮想マシンのダーティーページ速度を取得するには、次の手順を実行します。

    • 短期間、仮想マシンのダーティーページ生成速度を監視します。

      # virsh domdirtyrate-calc <example_VM> 30
    • 監視が終了したら、結果を取得します。

      # virsh domstats <example_VM> --dirtyrate
      Domain: 'example-VM'
        dirtyrate.calc_status=2
        dirtyrate.calc_start_time=200942
        dirtyrate.calc_period=30
        dirtyrate.megabytes_per_second=2

      この例では、仮想マシンが 1 秒あたり 2MB のダーティーメモリーページを生成しています。帯域幅が 2MB/s 以下のネットワーク上でこのような仮想マシンをライブマイグレーションしようとすると、仮想マシンを一時停止したり、ワークロードを低くしたりしないと、ライブマイグレーションが進行しません。

      ライブマイグレーションが正常に終了するように、Red Hat では、ネットワークの帯域幅が仮想マシンのダーティーページの生成速度を大幅に上回ることを推奨しています。

      注記

      calc_period オプションの値は、ワークロードとダーティーページ速度により異なる場合があります。いくつかの calc_period 値を試して、環境のダーティーページ速度に合わせた最適な期間を決定できます。

  • ブリッジタップネットワークの詳細: パブリックブリッジタップネットワーク内の既存の仮想マシンを移行する場合、ソースホストと宛先ホストは同じネットワーク上に配置されている必要があります。そうでない場合は、移行後に仮想マシンのネットワークが機能しなくなります。
  • libvirtd: libvirtd サービスが有効になっていて実行されていることを確認します。

    # systemctl enable --now libvirtd.service

手順

仮想マシンをあるホストから別のホストに移行するには、virsh migrate コマンドを使用します。

オフラインマイグレーション

  • 次のコマンドは、SSH トンネルを使用して、シャットオフされた example- 仮想マシン 仮想マシンをローカルホストから example-destination ホストのシステム接続に移行します。

    # virsh migrate --offline --persistent <example_VM> qemu+ssh://example-destination/system

ライブマイグレーション

  1. 次のコマンドは、SSH トンネルを使用して、example- 仮想マシン 仮想マシンをローカルホストから example-destination ホストのシステム接続に移行します。仮想マシンは移行中も稼働し続けます。

    # virsh migrate --live --persistent <example_VM> qemu+ssh://example-destination/system
  2. 移行が完了するまで待ちます。ネットワーク帯域幅、システム負荷、仮想マシンのサイズによっては、このプロセスに時間がかかる場合があります。virsh migrate--verbose オプションが使用されていないと、CLI はエラー以外の進捗インジケーターを表示しません。

    移行中は、virsh domjobinfo ユーティリティーを使用して移行の統計を表示できます。

マルチ FD ライブマイグレーション

  • ライブマイグレーション中に、宛先ホストへの複数の並列接続を使用できます。これは、複数のファイル記述子 (マルチ FD) の移行とも呼ばれます。マルチ FD 移行では、移行プロセスに利用可能なネットワーク帯域幅をすべて利用することで、移行を高速化できます。

    # virsh migrate --live --persistent --parallel --parallel-connections 4 <example_VM> qemu+ssh://<example-destination>/system

    この例では、4 つのマルチ FD チャネルを使用して <example_VM> 仮想マシンを移行します。利用可能なネットワーク帯域幅 10 Gbps ごとに 1 つのチャネルを使用することを推奨します。デフォルト値は 2 チャネルです。

ダウンタイム制限を延長したライブマイグレーション

  • ライブマイグレーションの信頼性を向上させるには、ライブマイグレーション中に仮想マシンを一時停止できる最大時間 (ミリ秒単位) を指定する maxdowntime パラメーターを設定できます。ダウンタイムを長く設定すると、移行が正常に完了するようになります。

    # virsh migrate-setmaxdowntime <example_VM> <time_interval_in_milliseconds>

Post-copy migration

  • 仮想マシンのメモリーフットプリントが大きい場合は、コピー後の 移行を実行できます。これにより、まずソース仮想マシンの CPU 状態が転送され、移行された仮想マシンが宛先ホスト上ですぐに起動されます。移行された仮想マシンが宛先ホスト上ですでに実行された後に、ソース仮想マシンのメモリーページが転送されます。このため、コピー後の 移行では、移行された仮想マシンのダウンタイムが短くなる可能性があります。

    ただし、宛先ホスト上で実行中の仮想マシンがまだ転送されていないメモリーページにアクセスしようとする可能性があり、ページフォールトが 発生します。移行中に ページフォールト が多すぎると、移行された仮想マシンのパフォーマンスが大幅に低下する可能性があります。

    コピー後 の移行が複雑になる可能性があることを考慮すると、標準のライブ移行を開始し、指定された時間内にライブ移行を完了できない場合は コピー後の 移行に切り替える次のコマンドを使用することを推奨します。

    # virsh migrate --live --persistent --postcopy --timeout <time_interval_in_seconds> --timeout-postcopy <example_VM> qemu+ssh://<example-destination>/system

自動収束ライブマイグレーション

  • 仮想マシンのメモリー負荷が高い場合は、--auto-converge オプションを使用できます。このオプションは、仮想マシンの CPU の実行速度を自動的に低下させます。その結果、この CPU スロットリングはメモリー書き込み速度を低下させるのに役立ち、メモリー負荷の高い仮想マシンでもライブマイグレーションが成功する可能性があります。

    ただし、CPU スロットリングは、メモリー書き込みが CPU 実行速度に直接関係しないワークロードの解決には役立たず、ライブマイグレーション中に仮想マシンのパフォーマンスに悪影響を与える可能性があります。

    # virsh migrate --live --persistent --auto-converge <example_VM> qemu+ssh://<example-destination>/system

検証

  • オフライン 移行の場合:

    • 移行先ホストで、利用可能な仮想マシンをリスト表示して、仮想マシンが正常に移行されたことを確認します。

      # virsh list --all
      Id      Name             State
      ----------------------------------
      10    example-VM-1      shut off
  • ライブ マイグレーションの場合:

    • 宛先ホストで、利用可能な仮想マシンをリスト表示して、宛先仮想マシンの状態を確認します。

      # virsh list --all
      Id      Name             State
      ----------------------------------
      10    example-VM-1      running

      仮想マシンの状態が 実行 中と表示されている場合、移行が完了したことを意味します。ただし、ライブマイグレーションがまだ進行中の場合、宛先仮想マシンの状態は 一時停止 として表示されます。

  • コピー後の 移行の場合:

    1. ソースホストで、利用可能な仮想マシンをリスト表示して、ソース仮想マシンの状態を確認します。

      # virsh list --all
      Id      Name             State
      ----------------------------------
      10    example-VM-1      shut off
    2. 宛先ホストで、使用可能な仮想マシンをリスト表示して、宛先仮想マシンの状態を確認します。

      # virsh list --all
      Id      Name             State
      ----------------------------------
      10    example-VM-1      running

      ソース仮想マシンの状態が shut off として表示され、宛先仮想マシンの状態が running として表示されている場合、移行は完了していることを意味します。

関連情報

  • virsh migrate --help コマンド
  • システム上の virsh (1) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.