标题虽然是ERP系统迁移实践,但本文其实记录的是esx虚拟机的vmotion迁移。我们的erp生产系统目前运行在vmware esx4.0的虚机上,因为原来的esx主机比较老了,性能方面存在瓶颈,所以计划迁移到新的物理主机上,因为使用的是esx平台,所以vmotion是一个最佳的选择。

vmotion是一个相当成熟的功能了,出现问题的几率是比较小的,但我们要迁的是生产系统,稍有疏忽就真实环境的压力会让你欲哭无泪啊,所以一定要遵守变更的流程,计划和准备工作一定要完整细致。最好做一个execl,把操作步骤列出来,做一项勾一项。

1. 环境描述

待迁移的数据中心(DC1、VC1):主机为sun x6240,三个网卡(1个10Gb,2个1Gb),vmkernel采用active(10Gb)/backup(1Gb)模式,service console和生产网络共有第三个网卡(1Gb),cpu为amd的2435,配置了集群和HA

新的数据中心(DC2、VC2):主机为dell m605,四个1Gb网卡,cpu为amd的2425

需要迁移的虚机有:ERP测试系统、ERP生产系统、VDR、DNS。VC不做迁移,使用新数据中心的VC来管理。

2. 因为迁移前后的物理主机cpu都是amd的2435,型号相同,所以采用在线vmotion迁移,前期测试时发生过需要把amd迁移到intel上面,因为是两个不同厂商的产品,不兼容,所以只能关闭虚拟采用冷迁移的方式。从vmotion的原理上讲,迁移的过程中不会影响到系统的可用性,但因为ERP系统的owner还是非常担心迁移前后数据的一致性,所以我们关闭了ERP应用,只保持操作系统开机的状态。

3. 迁移步骤

  • 从VC2中移除即将用于迁移的dell esx主机。
  • 将上面移除的主机添加到VC1中,不加入原有的集群,也不建立新的集群。原因在于迁移完成后需要把这些主机重新注册到VC2中,如果加入集群的话从集群中退出的esx主机需要进入维护模式,主机上面的虚机需要关闭。
  • 将ERP系统虚拟机使用的存储添加到dell的esx主机上,确保要进行迁移的宿主机之间共享存储。
  • 配置dell esx主机的网络设置和待迁移主机的网络配置一致(保证虚拟机端口组标签要一致,即VMnetwork标签要一致,否则迁移时的一致性检查会报错,console和vmkernel的配置可以不同,但迁移前后的主机都要有vmotion网络)。
  • 迁移前migrate向导会强制检查兼容性,如有报错会终止继续迁移,可以按照提示信息修复错误。如兼容性检查通过,先迁移测试系统和管理系统(VC1不迁移,DNS、VDR)。
  • 把ERP生产系统从sun的esx主机上迁移到dell的esx主机,因为ERP系统比较大,资源消耗比较多,所以每台虚拟机各单独在一台esx主机上。
  • 配置生产系统网络,两个网卡做bonding,用于vmkernel以及service console,另外一组也做bonding用于虚拟机端口组。后期会调整vlan,可以把存储设备和console划分到私有网段去,增加存储的安全性,同时也可以减少网络广播。
  • 从VC1中删除dell esx主机
  • 在VC2中中注册迁移后的dell esx主机。
  • 为ERP生产系统创建集群,并为该集群启用HA,配置一台冗余节点,不启用DRS。
  • 为erp系统创建警报。  

 

4. 迁移完成。

5. 迁移过程中可能遇到的问题

  • 由于未知原因造成的vmotion迁移卡在迁移的过程中,我在做storage vmotion测试的时候遇到过这种情况。其实vmotion的过程中不会对存储文件做操作,只是内存状态的一个拷贝,所以不太可能出现这种情况,之所以列出来只是防患于未然。
  • 解决方案:将源主机从清单中删除,这样可以强制中断迁移过程(也可以登录esx主机,重启vpxa进程,这个进程用于维护和vc的通信),重新注册以后关闭虚拟机,采用离线迁移方式。如还有问题,可以直接把虚拟机从VC1的清单中删除,在新主机上注册VMDK文件,需要先把lock文件删掉。

最后总结一下vmotion中需要注意的几个问题:

1. 源主机和目标主机的cpu要兼容。不兼容的cpu如果是同一个厂商的如果代数相差不大可以启用EVC功能来确保vmotion的兼容性,因为集群配置EVC的时候需要关闭所有的虚机,所以最好在新建集群的时候就决定要不要使用EVC功能。amd和intel的cpu是没有办法做vmotion的,只能关机冷迁移了。下面是vmware官方给出的兼容性查询网站:

http://www.vmware.com/resources/compatibility/search.php

关于intel CPU的VMotion兼容性,参考如下链接:
http://kb.vmware.com/kb/1991
有关AMD CPU的兼容性,参考如下链接:
http://kb.vmware.com/kb/1992

2. 虚拟机的VMDK文件要在共享存储上,并且源主机和目标主机都要能访问这个存储

3. 源主机和目标主机都要启用带有vmotion的kernel网络

4. 源主机和目标主机上虚拟机使用的生产网络的网络标签要一致。