2012-04-17 17:10:03
免费版的VMWare ESXi非常强大,但是遗憾的是它的客户端vSphere Client不提供克隆虚拟机的功能。其实它的命令行工具已经支持克隆,我们可以手动的方式完成这项工作。
首先,复制虚拟机配置文件:
- 进入vSphere Client:在左侧选择主机->右侧标签页上选择摘要->在存储器项上单击右建->运行浏览数据存储
- 在数据存储浏览器里创建新虚拟机的文件夹,然后把要克隆的虚拟机文件夹中的.vmx文件复制过来(可以改名为新的名字)
然后,用命令行执行克隆:
- 进入命令行界面: 可以用putty等通过SSH远程,前提是主机有开SSH的功能。
- 使用命令创建克隆虚拟机磁盘文件:
- vmkfstools -i /vmfs/volumes/datastore/BaseVM/BaseVM.vmdk /vmfs/volumes/datastore/NewVM/newvm.vmdk
- 这个命令会显示进度,如果文件大的话时间会比较长。 这个命令是支持克隆快照的。如果要克隆某个快照(Snapshot)的话,以上BaseVM.vmdk就换成要克隆的那个Snapshot文件,如BaseVM-000008.vmdk,vmkfstools会最动生成合并的新文件。
在管理界面重新配置新虚拟机:
- 回到Datastore Browser界面,右键点击.vmx文件,选择添加到清单,把这个新虚拟机加入管理界面。
- 在vSphere里面修改新虚拟机的配置:删除原来的Hard Disk,因为它是指向旧的虚拟机的磁盘文件,然后新加一个Hard Disk,并选择使用已有的磁盘文件,选择刚用命令行创建的那个文件。
- 启动新的虚拟机,完成。
至此,你就获得了一个一模一样的虚拟机。要注意的是,这个新的虚拟机与原虚拟机是完全一样的,包括硬盘里已经有的内容、配置等,因此如果同时开户有可能会有问题,如IP,主机名冲突等。
本人在克隆centos 5.7的时候发现以下问题 (在SQL SERVER 2008则无此问题):
打开克隆出来的虚拟机,发现有两个网卡eth0和eth0.bak。删除eth0.bak的办法:
/etc/sysconfig/networking/devices,将ifcfg-eth0.bak删除
/etc/sysconfig/networking/profiles/default,将ifcfg-eth0.bak删除
/etc/sysconfig/network-scripts/,将ifcfg-eth0.bak删除
重新配置eth0,修改主机名。