KVM虚拟机迁移

近期因涉及到物理机的切换,需要将旧的物理服务器上的虚拟机迁移到新的虚拟机上,在这将对过程做下记录。

1.实验环境

  • 旧物理服务器

    • 操作系统
      • CentOS7.5
    • kvm版本
      • 根 据 库 编 译 : libvirt 4.5.0
      • 使 用 库 : libvirt 4.5.0
      • 使 用 的 API: QEMU 4.5.0
      • 运 行 管 理 程 序 : QEMU 2.0.0
  • 新物理服务器

    • 操作系统

      • CentOS7.9
    • kvm版本

      • 根 据 库 编 译 : libvirt 4.5.0

        使 用 库 : libvirt 4.5.0

        使 用 的 API: QEMU 4.5.0

        运 行 管 理 程 序 : QEMU 2.0.0

2.KVM虚拟机静态迁移

2.1 确定虚拟机关闭状态

[root@server-01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     kingdee-mssql                  关闭

2.2 迁移虚拟机

  • 查看该虚拟机配置文件的磁盘文件
[root@server-01 ~]# virsh domblklist kingdee-mssql
目标     源
------------------------------------------------
vda        /var/lib/libvirt/images/kingdee-mssql-c.qcow2
vdb        /var/lib/libvirt/images/kingdee-mssql-d.img

2.3 导入虚拟机配置文件

[root@server-01 ~]# virsh dumpxml kingdee-mssql > /opt/kingdee-mssql.xml
[root@server-01 ~]# ll /opt
总用量 8
-rw-r--r-- 1 root root 5573 1218 10:23 kingdee-mssql.xml

2.4 拷贝配置文件到新物理主机上

[root@server-01 ~]# scp /opt/kingdee-mssql.xml 172.16.50.2:/etc/libvirt/qemu/

2.5 查看虚拟机磁盘配置文件并拷贝到目标虚拟主机

[root@server-01 ~]# ll /var/lib/libvirt/images/
-rw-------. 1 qemu qemu  107390828544 1218 10:24 kingdee-mssql-c.qcow2
-rw-r--r--. 1 qemu qemu 1073741824000 1218 10:25 kingdee-mssql-d.img
[root@server-01 ~]# scp kingdee-mssql-c.qcow2 172.16.50.2:/var/lib/libvirt/images/
[root@server-01 ~]# scp kingdee-mssql-d.img 172.16.50.2:/var/lib/libvirt/images/

2.6 目标虚拟机主机配置

2.6.1 查看目标虚拟主机环境

[root@server-02 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 16    WebVirtMgr                     running

2.6.2 定义注册虚拟主机

[root@server-02 ~]# cd /var/lib/libvirt/images/
[root@server-02 ~]# virsh define /etc/libvirt/qemu/kingdee-mssql.xml

2.6.3 启动虚拟主机并确认

[root@server-02 ~]# virsh list --all
[root@server-02 ~]# virsh start kingdee-mssql
[root@server-02 ~]# virsh console kingdee-mssql