19.3. virsh を使用した ライブ KVM 移行

virsh コマンドを使用してゲストを別のホストに移行することが できます。migrate コマンドは 以下の形式のパラメータを 受け付けます:
# virsh migrate --live GuestName DestinationURL
GuestName パラメータは、移行したいゲストの 名前を表すものです。
DestinationURL パラメータは目的地システムの URL かホスト名です。目的地システムは Red Hat Enterprise Linux の同じバージョンを 実行しなければならず、同じ hypervisor を使用して、libvirt が 稼働している必要があります。
コマンドが入力されると、目的地システムの root パスワードを催促されます。
例: virsh を使用したライブ移行

この例では、test1.example.com から test2.example.com へ移行をします。ご自分の 環境に適したホスト名に変更して下さい。この例は RHEL4test と言う 仮想マシンを移行します。

この例では、ユーザーが共有ストレージを完全に設定していて、全ての 前提事項を満たしていると想定します(移行の要件 に一覧表示)。
  1. ゲストが稼働していることを確認します

    送信元のシステム test1.example.com から RHEL4test が稼働していることを確認します:
    [root@test1 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 RHEL4                running
    
  2. ゲストを移行

    以下のコマンドを実行して、ゲストを目的地、test2.example.com に ライブ移行します。/system を目的地の URL の末尾に追記することで全面的アクセスが 必要であることを libvirt に伝えます。
    # virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system
    コマンドが入力されると、目的地システムの root パスワードを催促されます。
  3. 待ち時間

    この移行はゲスト上の負荷とそのサイズによりいくらかの時間がかかります。virsh は エラーを報告するだけです。このゲストは完全に移行が終了するまで送信元のホストで稼働し続けます。
  4. ゲストが目的地のホストに到着したことを確認

    目的地のシステム、test2.example.com から、 RHEL4test が稼働していることを確認します:
    [root@test2 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 RHEL4                running
    
ライブ移行はこれで完了しました。

注記

libvirt は、TLS/SSL、unix sockets、SSH、及び暗号化の無い TCP を含む各種の ネットワーキングメソッドをサポートします。これらのメソッドの使用法に関する 詳細には、20章仮想化ゲストのリモート管理 を参照して下さい。