Linked Clone这个功能是VMware View通过Composer技术批量生成存储轻量级虚拟机的手段,那么,有没有可能在没有View Composer支持的情况下,通过LinkedClone类似的方式实现存储轻量级虚拟机呢?答案是显而易见的,可以,不过这个实现方式,需要Snapshot支持,而实际上View Composer采用的也是快照啦,通过一个ParentVM生成一个Replicate VM,然后在这个只读的ReplicateVM基础上,大量生成想要的虚拟机。如何实现?

1、首先ParentVM是必须的,因此,我们需要先创建一个Parent VM并且将其磁盘模式选为ThinProvisioning(存储轻量级的意思在这里我们定义为省空间);

2、为它命名,这个名字嘛,自己定,不过,由于它是一个模板机,因此,命名时最好规划好;

3、按照常规流程安装好这台虚拟机,然后为它安装好VMwareTools,如果需要实现Customization,则还应该运行一下Sysprep程序,之后,关掉它;

4、关掉之后,通过vSphereClient打开虚拟机的Snapshot Manager或者命令行,创建一个快照,类似下图所示:

5、点击ESXi主机 -> Configuration -> Storage,右击Datastore-> Browse Datastore,打开这台Parent VM的目录,本例中的“don_touch”,拷贝*.vmx和*-000001.vmdk文件;

6、把这两个拷贝的文件下载到方便编辑的位置,例如,我们自己的本子:

7、然后,用文本编辑器打开*-000001.vmdk文件,类似如下内容:

  1. # Disk
  2. DescriptorFile version=1
  3. encoding="UTF-8"
  4. CID=fa3d08b7
  5. parentCID=fa3d08b7
  6. createType="vmfsSparse"
  7. parentFileNameHint="dont_touch.vmdk"
  8. # Extent description RW25165824 VMFSSPARSE "dont_touch-000001-delta.vmdk"
  9. # The Disk Data Base
  10. #DDB ddb.longContentID= "9b8da3d63cda1e5dbea7c0f4fa3d08b7"

复制代码

8、把其中的parentFileNameHint这个字段的内容由相对路径改为绝对路径,类似如下:

  1. # Disk
  2. DescriptorFile version=1
  3. encoding="UTF-8"
  4. CID=fa3d08b7
  5. parentCID=fa3d08b7
  6. createType="vmfsSparse"
  7. parentFileNameHint="/vmfs/volumes/4ba3aca0-eca4fd60-312d-f4ce46af50b6/dont_touch/dont_touch.vmdk"
  8. # Extent description RW25165824 VMFSSPARSE "dont_touch-000001-delta.vmdk"
  9. # The Disk Data Base
  10. #DDB ddb.longContentID= "9b8da3d63cda1e5dbea7c0f4fa3d08b7"

复制代码

9、为即将新创建选用Linked Clone模式生成的虚拟机修改vmx文件,在里面添加如下内容:

  1. sched.swap.derivedName ="/vmfs/volumes/4ba3aca0-eca4fd60-312d-f4ce46af50b6/dont_touch/dont_touch-aafe8f9c.vswp"

复制代码

10、创建多个vmx文件,修改diaplayName=xxxx,改为自定义的新的VMs的名字,例如下图所示:

11、然后,在ESXi上创建若干新的Folder,把前面拷贝的文件上传上去:

12、打开目录后,把前面所修改好的vmx文件和vmdk文件,上传到指定的文件夹目录即可,如下图所示:

13、然后右击虚拟机目录下的*.vmx文件,点击Add To Inventory,系统会提示如下图所示,选择I_copiedit即可:

14、最后就是马照跑舞照跳啰。