12.3. 使用 virsh 进行实时 KVM 迁移

使用 virsh 命令可将客户端迁移到另一台主机中。migrate 命令接受以下格式的参数:

  1. # virsh migrate --live GuestName DestinationURL

The GuestName parameter represents the name of the guest which you want to migrate.

The DestinationURL parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt running.

Once the command is entered you will be prompted for the root password of the destination system.

示例:使用 virsh 进行实时迁移

这个示例是从 test1.bne.redhat.com 迁移至 test2.bne.redhat.com。请为您的环境更改主机名。这个示例迁移了名为 CentOS4test 的虚拟机。

This example assumes you have fully configured shared storage and meet all the prerequisites (listed here: 迁移要求).

  1. 确定客户端正在运行

    在源系统 test1.bne.redhat.com 中确定 CentOS4test 正在运行:

    1. [root@test1 ~]# virsh list
    2. Id Name State
    3. ----------------------------------
    4. 10 CentOS4 running
  2. 迁移客户端

    执行以下命令实时将客户端迁移至目的地 test2.bne.redhat.com。在目的地 URL 结尾添加 /system 告知 libvirt 您需要完全访问权限。

    1. # virsh migrate --live CentOS4test qemu+ssh://test2.bne.redhat.com/system

    Once the command is entered you will be prompted for the root password of the destination system.

  3. 等待

    根据负载和客户端的大小,迁移可能需要一些时间。virsh 只报告出错信息。客户端仍将在源主机中继续运行直至全部迁移完成。

  4. 确定客户端已到达目的主机

    在目的系统 test2.bne.redhat.com 中确认 CentOS4test 正在运行:

    1. [root@test2 ~]# virsh list
    2. Id Name State
    3. ----------------------------------
    4. 10 CentOS4 running

实时迁移完成。

其它联网方法

libvirt supports a variety of networking methods including TLS/SSL, unix sockets, SSH, and unecrypted TCP. Refer to 第 13 章 虚拟客户端的远程管理 for more information on using other methods.