KVM 虚拟机冷/热迁移

  • 在进行迁移之前需要准备一台与KVM01配置相同的机器KVM02,部署好kvm环境。

  • 设备:
       192.168.22.136   kvm01
       192.168.22.137   kvm02

一、虚拟机冷迁移

1、在kvm01、 kvm02 中安装 kvm 组件

[root@kvm01/2 ~]# yum install libvirt* virt-* qemu-kvm* -y

2、配置桥接网络

[root@kvm01/2 ~]# virsh iface-bridge eth0 br0

3、将虚拟机kvm01关机,导出配置文件

[root@kvm01 ~]# virsh dumpxml centos7.0 > centos7.0.xml

4、将虚拟机配置文件传输到kvm02上

1、传输配置文件
[root@kvm01 ~]# scp -rp  centos7.0.xml  192.168.22.137:/root/
2、传输磁盘文件
[root@kvm01 ~]# scp -rp  /var/lib/libvirt/images/centos7.0.qcow2 192.168.22.137:/var/lib/libvirt/images/

5、kvm02中导入配置文件

[root@kvm02 ~]# virsh define centos7.0.xml

6、启动虚拟机

[root@kvm02 ~]# virsh start centos7.0

7、查看虚拟机状态

[root@kvm02 ~]# virsh list --all 
 Id    名称                         状态
----------------------------------------------------
 1     centos7.0                          running

  至此,完成了一次KVM冷迁移

二、virt-manager 和 kvm 虚拟机热迁移

  • 实现kvm虚拟机热迁移核心:共享存储,在这里使用的是NFS共享存储。

1、NFS(存储端kvm01)

[root@kvm01 ~]# vim /etc/hosts
192.168.22.136  kvm01
192.168.22.137  kvm02
​
[root@kvm01 ~]# yum -y install nfs-utils rpcbind   #安装nfs服务
[root@kvm01 ~]# mkdir /data                        #创建共享文件夹
​
[root@kvm01 ~]# vim /etc/exports
#不压制root权限(当client端使用root挂载时,也有root权限),使该网段共享该文件夹
/data    192.168.22.0/24(rw,sync,no_root_squash)
[root@kvm01 ~]# systemctl start nfs-server
[root@kvm01 ~]# systemctl enable nfs-server
[root@kvm01 ~]# exportfs -v
/data     192.168.22.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

2、nfs 客户端(kvm02)

[root@kvm02 ~]# vim /etc/hosts
192.168.22.136  kvm01
192.168.22.137  kvm02
​
[root@kvm02 ~]# yum -y install nfs-utils rpcbind
1. 查看存储端共享 
   [root@kvn02 ~]# showmount -e kvm01   #这里写ip或主机名均可
   Export list for nas:
   /data 192.168.22.0/24
2. 手动挂载
   [root@kvm02 ~]# mount -t nfs kvm01:/data /data
   [root@kvm02 ~]# umount /data          #如果取消挂载可用该命令
3. 自动挂载到网站主目录
   [root@kvm02 ~]# vim /etc/fstab
   nas:/data      /data           nfs     defaults        0 0
   [root@kvm02 ~]# mount -a              #如果取消挂载可用该命令
4. 查看挂载
   [root@kvm02 ~]# df
   kvm01:/data     7923136 692416   6821568  10% /data
   注意:远程挂载考虑到挂载失败的问题,生产环境建议设置开机启动挂载
5. 加入开机自启动
   [root@kvm02 ~]# echo  'mount.nfs 192.168.22.136:/data /data' >>/etc/rc.local
   [root@kvm02 ~]# chmod +x /etc/rc.d/rc.local

3、共享镜像配置(存储端kvm01)

(1)将/var目录下的源磁盘镜像拷贝到共享目录/data下

[root@kvm02 ~]# cp /var/lib/libvirt/images/centos7.0.qcow2 /data/

(2)用virsh edit将源虚拟机配置路径改到/data下

[root@kvm02 ~]# virsh edit centos7.0
改前:<source file='/var/lib/libvirt/images/centos7.0-clone.qcow2'/>
改后:<source file='/data/centos7.0-clone.qcow2'/>

(3)启动被迁移虚拟机,用virt-manager工具迁移

[root@kvm02 ~]# virt-manager

4、virt-manager工具进行迁移

(1)ssh方式添加连接(kvm01与kvm02做相同步骤可实现互相迁移,这里以kvm01添加kvm02为例)

(2)两次弹框,依次输入“yes”和对方密码(这里以kvm02添加kvm01的情况为例)

(3)启动要迁移的虚拟机centos7.0,之后会在kvm01的virt-manager上观察这台机器状态为running,且运行位置为kvm01

(4)选择centos7.0,右键选择迁移,并且选中高级选项里的第一项(这里是后来又换机做了实验,153应该对应原来的137)

(5)之后观察kvm02的virt-manager发现,运行的centos7.0迁移到了kvm02上

(6)在kvm02上查看虚拟机列表

[root@kvm02 ~]# virsh list --all 
 Id    名称                         状态
----------------------------------------------------
 1     centos7.0                          running

  至此,完成一次热迁移

 

猜你喜欢

转载自www.cnblogs.com/lz-200/p/13368545.html