VMWare ESXi虚拟机克隆

VMWare ESXi虚拟机克隆

十月 22, 2018

VMWare ESXi虚拟机克隆

免费版的VMWare ESXi非常强大,但是遗憾的是它的客户端vSphere Client不提供克隆虚拟机的功能。其实它的命令行工具已经支持克隆,我们可以手动的方式完成这项工作。

首先,复制虚拟机配置文件:

进入vSphere Client:在左侧选择主机->右侧标签页上选择摘要->在存储器项上单击右建->运行浏览数据存储
在数据存储浏览器里创建新虚拟机的文件夹,然后把要克隆的虚拟机文件夹中的.vmx文件复制过来(可以改名为新的名字)

然后,用命令行执行克隆:

进入命令行界面: 可以用putty等通过SSH远程,前提是主机有开SSH的功能。
使用命令创建克隆虚拟机磁盘文件:

1
vmkfstools -i /vmfs/volumes/datastore1/Redhat模板/Redhat.vmdk /vmfs/volumes/datastore1/Docker-master/Docker-master.vmdk

这个命令会显示进度,如果文件大的话时间会比较长。
这个命令是支持克隆快照的。如果要克隆某个快照(Snapshot)的话,以上BaseVM.vmdk就换成要克隆的那个Snapshot文件,如BaseVM-000008.vmdk,vmkfstools会最动生成合并的新文件。

在管理界面重新配置新虚拟机:

回到Datastore Browser界面,右键点击.vmx文件,选择添加到清单,把这个新虚拟机加入管理界面。
在vSphere里面修改新虚拟机的配置:删除原来的Hard Disk,因为它是指向旧的虚拟机的磁盘文件,然后新加一个Hard Disk,并选择使用已有的磁盘文件,选择刚用命令行创建的那个文件。

启动新的虚拟机,完成。

至此,你就获得了一个一模一样的虚拟机。要注意的是,这个新的虚拟机与原虚拟机是完全一样的,包括硬盘里已经有的内容、配置等,因此如果同时开户有可能会有问题,如IP,主机名冲突等。

Linux网卡问题

故障背景:

在ESX中了完全克隆了一个已经存在的CentOS的虚拟机,启动之后发现网卡没有启动。于是重启一下network服务,发现提示错误信息“Device eth0 does not seem to be present, delaying initialization.”

故障产生的原因:

由于克隆虚拟机,ESX只是修改了虚拟机的名字等信息,并没有修改虚拟硬盘中的任何信息,导致克隆后网卡的MAC地址和操作系统中记录的mac地址不符,导致eth0启动不起来。操作系统记录了一个新网卡的添加,新网卡的名字eth1,mac地址就是ESX分配给的新的mac地址

解决方法:

  • 方法一:
    修改 /etc/udev/rules.d/70-persistent-net.rules 文件
    删除掉 关于 eth0 的信息。修改 第二条 eth1 的网卡的名字为 eth0.
    修改 /etc/sysconfig/network-scripts/ifcfg-eth0 中mac地址为 /etc/udev/rules.d/70-persistent-net.rules 修改后的eth0的mac地址。
    重启服务器。
  • 方法二:
    查看 /etc/udev/rules.d/70-persistent-net.rules文件,找出新建虚拟机上MAC地址所使用的是eth(几)
    mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth(几)
    vi /etc/sysconfig/network-scripts/ifcfg-eth(几) ,修改DEVICE=eth0 HWADDR=00:50:56:80:93:c0 为 DEVICE=eth(几) HWADDR=真实MAC地址