迁移,顾名思义,即将一台虚拟机从A物理机迁到B物理机。其作用就是:但A物理机需要进行停机检修的时候,那么可以事先将A物理机上的虚拟机迁移到B物理机上,这样A物理机停机之后,原先A上面的虚拟机还可以被访问,不受影响。
在我所接触的虚拟化中(RHEV、vsphere、proxmox),迁移都分为两种,一种迁移为冷迁移,另一种为热迁移。
冷迁移,即关机状态下的迁移,这种迁移方式最简单。
冷迁移要注意一点,如果虚拟机上挂载着本地iso文件,那么迁移会失败。
尝试迁移
可以看到,迁移失败。
去掉iso,迁移
可以看迁移成功
1) 概述
热迁移,即开机状态下的迁移,热迁移比冷迁移需要的条件更加复杂,一下列出主要的几点:
存储:迁移的虚拟机一定是存在共享存储的,而且该共享存储定同时能被迁移的源端和目标端所访问。
网络:迁移前后的物理服务器必须有该虚拟机所属的网络。假如一个虚拟的网卡在A服务器上所属的网路是vmbr10,而B服务器没有vmbr10的网络,这时候虚拟机迁移过去就会很懵逼了,我该使用哪个网卡?….
cpu:热迁移对CPU有一定的要求,比如A服务器是英特尔的CPU,而B服务器是AMD的,这时候迁移也可能会出现问题。
热迁移最大的好处就是,迁移的过程对用户基本上是透明的。即在迁移的时候,用户是无感的。
没有共享存储的情况下热迁移
报错如下
2) 创建共享存储
何为共享存储?可以理解为大家够可以访问和操作的存储就是共享存储,比如常见共享方式有nfs、iscsi、ftp、samba等等….
一下我以nfs为例,后续会增加ceph的方式,因为proxmox很好的集成了ceph。
任意一主机安装nfs服务
root@proxmox3:~# apt-get install nfs* -y
创建一个目录
root@proxmox3:/# mkdir vmdata
修改目录权限
root@proxmox3:/# chmod 777 vmdata/ -R
修改/etc/exports文件
root@proxmox3:/# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/vmdata *(rw,sync)
参数说明
/vmdata:为需要共享的目录
*:为所有的主机都能访问,也可以192.168.108.0/24这种方式去控制
rw:读写权限
数据同步
重启服务并查看状态
root@proxmox3:/# service nfs-server restart
root@proxmox3:/# service nfs-server status
查看nfs共享是否成功(所有主机)
root@proxmox2:~# showmount -e 192.168.108.202
Export list for 192.168.108.202:
/vmdata *
root@proxmox2:~#
在web界面选择添加存储
填写相关信息,注意【id】必须以字母开头,并【id】不小于两位
3) 虚拟机迁移
先将一个已经存在的虚拟机磁盘移动到共享存储
选择共享存储,然后移动磁盘
磁盘移动完毕,这就相当于这个虚拟机的数据在共享存储中了,如果这时候进行冷迁移会特别快。
冷迁移
热迁移,热迁移需要记录和复制内存中的信息和虚拟机的状态,所以会比冷迁移慢很多,但是迁移的过程中不影响使用。
迁移完毕之后,可以看到虚拟机从proxmox2到了proxmox1
测试迁移过程中虚拟机是否可以被访问
迁移前的访问情况
迁移中的访问情况
迁移结束的访问情况,可以看到会有一两个丢包,不影响正常使用,迁移完成后,控制台会重新加载。
以上就是迁移的全部内容啦!感谢大家观看
公众号~运维少年 欢迎关注哦~