在创建VM的时候,有一步是指定VMDK的类型。对于一个全新的VM而言 - 创建好了装系统,本文所讲的东东没有什么意义。本文指的是利用已有的VMDK创建VM - Use an existing virtual disk

VM的virtual disk类型 - dependent, indepe_的

在这一步,面临三个选择:
什么也不选 - Dependent disk
Independent - Persistent or Nonpersistent

要想明白上面三种选择的区别,首先要了解VM的snapshot,直接上例子:
~ # vim-cmd vmsvc/snapshot.get 6 (6 is vm vid)
(Here, the base VMDK is hidden)
Get Snapshot:
|-ROOT
--Snapshot Name 

       : InitialVersion
--Snapshot Desciption  :
--Snapshot Created On  : 4/1/2011 3:22:12
--Snapshot State       : powered on
--|-CHILD
----Snapshot Name        : WithDBVersion
----Snapshot Desciption  :
----Snapshot Created On  : 5/9/2011 9:15:29
----Snapshot State       : powered on

Snapshot说白了可以看作一块硬盘(***-delta.vmdk),这块硬盘记载了从某个点开始的所有改变。若干snapshot一起组成一个类 似与tree的结构,后面的更改依赖于前面的数据。以上面的输出为例,InitialVersion这个snapshot基于原始vmdk创建出来,用了 一段时间后,于5/9/2011创建了一个新的snapshot WithDBVersion.在创建这个新snapshot之前对VM做的所有更改 - 设置,写文件,内存等等,都存在了InitialVersion上.之后的更改自然写在WithDBVersion上了.

明白了这个基本概念后,再来讨论硬盘的三种形式:
1. Dependent
完全利用整个tree : base vmdk, snapshot 1, snapshot 2, ...

2. Independent - Persistent
任何对VM的更改会马上写回base vmdk,这样的话,snapshot这个功能就完全无法用了,想想tree的结构就明白了:)

3. Independent - Nonpersistent
任何对VM的更改在VM power off后自动丢弃,有点像个CD/DVD:)