2012-04-17 17:10:03

标签: ESXi 克隆 虚拟机


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

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

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

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

  1. 进入命令行界面: 可以用putty等通过SSH远程,前提是主机有开SSH的功能。
  2. 使用命令创建克隆虚拟机磁盘文件:
  1. vmkfstools -i /vmfs/volumes/datastore/BaseVM/BaseVM.vmdk /vmfs/volumes/datastore/NewVM/newvm.vmdk
  1. 这个命令会显示进度,如果文件大的话时间会比较长。    这个命令是支持克隆快照的。如果要克隆某个快照(Snapshot)的话,以上BaseVM.vmdk就换成要克隆的那个Snapshot文件,如BaseVM-000008.vmdk,vmkfstools会最动生成合并的新文件。

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

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

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