上周在盘点和整理服务器信息时,发现一台去年上线的临时服务器(POS查货系统)还运行在PC机上。看样子公司是不打算换新服务器了,为防止出意外打算迁移到VMware虚拟机上。现有vSphere环境可利用资源不多,遂打算把前年更换的A8服务器(已更换OA系统,但原数据要保留3年以上供查询。硬件资源使用率不到一半)重装成vSphere环境,再迁移POS系统到A8服务器上。实施步骤:

一、P2V迁移A8系统到vCenter6.5(ESXI主机为5.5,IBMx3650M2兼容性问题不建议升级),迁移过程比较顺利,由于需修改配置而使用文件级数据迁移,在文件较多的情况下,速度较慢;

二、停止原A8系统,把加密狗插到ESXI主机上,编辑虚拟机设置,新增Host USB Device设备,并选择识别到的加密狗。启动迁移后的虚拟机,安装vmware tools。

三、重启后A8服务无法启动,检查后发现加密狗绑定了网卡的MAC地址,在迁移时没有修改MAC地址,导致MAC地址变更后加载加密狗时报错。

修改虚拟机MAC地址为原物理机MAC地址,解决办法:

1、关闭vm虚拟机,并从清单中移除虚拟机;

2、开启ESXI主机的SSH服务,使用Putty登录到ESXI主机,并进入到虚拟机目录,如下:

# cd /vmfs/volumes/DatastoreName/VMFolderName

wKiom1lUc_rBY0taAAAxytdQOsM339.jpg

3、备份原vmname.vmx文件,并修改.vmx文件

# cp vmname.vmx vmname.vmx.old

# vi vmname.vmx 修改或添加以下内容:

ethernetN.checkMACAddress = "false"
ethernetN.addressType = "static"
ethernetN.Address = "XX:XX:XX:XX:XX:XX"

wKioL1lUd4axJCdLAADCINrs1bM327.jpg

其中 XX:XX:XX:XX:XX:XX 是虚拟机的新 MAC 地址。将 ethernetN 中的 N 改为网络适配器值。例如:
网络适配器 1 -> ethernet0
网络适配器 2 -> ethernet1

注意:

修改MAC地址时,也可以在编辑虚拟机设置里,修改网络连接,并指定MAC地址为手动,输入新的MAC地址保存即可。如下图:

wKioL1lUggiQ9tIeAAAoXt82Q3s291.jpg

但修改完成后,启动虚拟机时会报错:Invalid Ethernet address

wKiom1lUexeBkE94AAAhxIg1zIw144.jpg

此时需要检查ethernetN.checkMACAddress = "false"是否设置,虚拟网卡类型(Adapter Type)是否为"vmxnet3"。如果为E1000类型,可以删除后重新添加网卡并选择网卡类型为"VMXNET 3"。否则即使修改了.vmx文件,一样会报以上错误。

一开始没有注意到网卡类型的问题,测试修改几次都无法开机。

4、在存储中找到虚拟机vmx文件,并注册虚拟机

wKioL1lUeWWjafZsAABQnJLhFI8781.jpg

5、启动虚拟机即可。

参考:迁移到 VMware vCenter Server 5.x 后打开虚拟机电源失败并显示错误:指定的 MAC 地址无效 (2102096)

四、重装原A8服务器为ESXI6.0(Dell R710兼容性最高支持6.0),并加入vCenter6.5。在线迁移A8系统回到原服务器上。

五、P2V迁移POS系统到原A8服务器上,淘汰PC机。