proxmox 迁移

一、迁移概述

迁移,顾名思义,即将一台虚拟机从A物理机迁到B物理机。其作用就是:但A物理机需要进行停机检修的时候,那么可以事先将A物理机上的虚拟机迁移到B物理机上,这样A物理机停机之后,原先A上面的虚拟机还可以被访问,不受影响。

在我所接触的虚拟化中(RHEV、vsphere、proxmox),迁移都分为两种,一种迁移为冷迁移,另一种为热迁移。


二、冷迁移

冷迁移,即关机状态下的迁移,这种迁移方式最简单。

  • 冷迁移要注意一点,如果虚拟机上挂载着本地iso文件,那么迁移会失败。

proxmox迁移详解_proxmox
  • 尝试迁移

proxmox迁移详解_proxmox_02
  • 可以看到,迁移失败。

proxmox迁移详解_proxmox_03
  • 去掉iso,迁移

proxmox迁移详解_proxmox_04
  • 可以看迁移成功

proxmox迁移详解_proxmox_05

三、热迁移

1) 概述

热迁移,即开机状态下的迁移,热迁移比冷迁移需要的条件更加复杂,一下列出主要的几点:

  • 存储:迁移的虚拟机一定是存在共享存储的,而且该共享存储定同时能被迁移的源端和目标端所访问。

  • 网络:迁移前后的物理服务器必须有该虚拟机所属的网络。假如一个虚拟的网卡在A服务器上所属的网路是vmbr10,而B服务器没有vmbr10的网络,这时候虚拟机迁移过去就会很懵逼了,我该使用哪个网卡?….

  • cpu:热迁移对CPU有一定的要求,比如A服务器是英特尔的CPU,而B服务器是AMD的,这时候迁移也可能会出现问题。

热迁移最大的好处就是,迁移的过程对用户基本上是透明的。即在迁移的时候,用户是无感的。

  • 没有共享存储的情况下热迁移

proxmox迁移详解_proxmox_06
proxmox迁移详解_proxmox_07
  • 报错如下

proxmox迁移详解_proxmox_08

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界面选择添加存储

proxmox迁移详解_proxmox_09
  • 填写相关信息,注意【id】必须以字母开头,并【id】不小于两位

proxmox迁移详解_proxmox_10

3) 虚拟机迁移

  • 先将一个已经存在的虚拟机磁盘移动到共享存储

proxmox迁移详解_proxmox_11
  • 选择共享存储,然后移动磁盘

proxmox迁移详解_proxmox_12
  • 磁盘移动完毕,这就相当于这个虚拟机的数据在共享存储中了,如果这时候进行冷迁移会特别快。

proxmox迁移详解_proxmox_13
  • 冷迁移

proxmox迁移详解_proxmox_14
  • 热迁移,热迁移需要记录和复制内存中的信息和虚拟机的状态,所以会比冷迁移慢很多,但是迁移的过程中不影响使用。

proxmox迁移详解_proxmox_15
  • 迁移完毕之后,可以看到虚拟机从proxmox2到了proxmox1

proxmox迁移详解_proxmox_16
proxmox迁移详解_proxmox_17

测试迁移过程中虚拟机是否可以被访问

  • 迁移前的访问情况

proxmox迁移详解_proxmox_18
  • 迁移中的访问情况

proxmox迁移详解_proxmox_19
  • 迁移结束的访问情况,可以看到会有一两个丢包,不影响正常使用,迁移完成后,控制台会重新加载。

proxmox迁移详解_proxmox_20
  • 以上就是迁移的全部内容啦!感谢大家观看

公众号~运维少年  欢迎关注哦~