本文给出基于最新版的VCSA6.7实现虚拟机业务从当前运行的ESXI主机不停机无缝迁移至另外一台ESXI主机的相关内容。该功能是VMware公司相当惊艳的一个技术,在某几种业务场景都非常需要此类需求。
(1)例如多台服务器ESXI主机分别位于局域网的不同物理位置,例如不同楼层,不同数据中心,那么按以往物理机业务迁移,显然需要把当前物理机所有业务代码和存储数据拷贝在另外一台物理服务器上,把新物理服务器跑起来,两者做lvs负载均衡后,把原物理机停掉,以此达到“业务不中断,且把服务器从一个物理位置换到另外一个物理位置”
(2)再或者采用简单粗暴的迁移方式,直接停掉当前物理机,当然业务会中断,把该物理机搬运至到其他物理位置,再跑起来
显然以上两种方式在当下IT技术看来,显得不够smart。接下来要介绍的是使用“不中断、不用搬运物理机”方式,将原业务服务“迁移”到新物理位置的服务器上(原业务非虚拟化环境,可先处理为虚拟化,解决方案自行处理,并不复杂。)。此类功能的配置,在很多文章也有提到,但个人看来还是比较浅薄,大多文章只给出配置成功的过程,却不分享配置过程出错的原因分析。
在VCSA管理中心(IP地址简单标示为:43),在其数据中心分组的一个主机集群,已经添加两台ESXI主机,一台为跑着业务的ESXI主机39(取IP地址最后两位作为标示),一台为接纳迁移虚拟机的ESXI主机40
(1)第一次迁移,对话框初步校验失败,提示目标主机40 Vmotion接口未配置,无法进行下一步操作
这是因为ESXI39主机的VMkernel 虚拟网卡和 ESXI40主机的VMkernel虚拟网卡设置中,没有容许“V motion”报文通过,如下图所示:
只有两台主机的VMkernel端口设置一致且打开Vmotion服务,可通过“迁移”的第一步的测试条件。这里不再贴图。
(2)解决第一个问题后,重写再操作迁移,走了几步后,发现又出现迁移条件测试不通过的提示:
“当前已连接的网络接口”“Network adapter 1”无法使用网络“VM Network”,因为 “在目标主机上为目标网络配置的卸载或安全策略不同于在源主机上为源网络配置的卸载或安全策略”
这个提示,是指目标ESXi主机40的“VM Network”模块配置的内容与ESXi主机39的不同,导致无法传输Vmotion数据包
这里的VM Network是指什么?对应下图内容:
原理是ESXi主机内的网络模块:虚拟交换机下的某个端口组,这里有两个端口组,一个是管理network,一个是虚拟机的network。
查看40主机的VMnetwork属性(所有属性),如下图,在上面网络接口出错的关键字“安全策略”,就是对应VMnetwork的设置里的安全选项和策略选项,对比主机39,发现40的安全项目里:含杂模式设为拒绝,而39的设置为接受。所以两台主机的VM network 配置参数不一致,无法通过vmotion的校验。
综上,但这些问题或者设置都搞清楚后,在千兆局域网内,迁移一个几十G内存+1TB的虚拟机到另外一台ESXI主机上,仅需10分钟左右,全过程不停机,仅出现几次丢包。