VMware为虚拟机文件存储提供了三种虚拟磁盘类型。不过你如何知道哪一种类型适合虚拟机?答案是不确定的,因为每种磁盘类型提供了不同的好处:例如第一种在初始磁盘写入过程中提供了更好的性能,第二种更安全,第三种在节省磁盘空间时是最佳选择。

  本文将定义虚拟磁盘,解释三种主要类型的虚拟磁盘以及介绍在何时该使用何种磁盘。

  A虚拟磁盘有a .vmdk扩展,并由两个文件组成:包括磁盘配置参数的小型文本磁盘描述符文件和包括虚拟磁盘原始数据的大型数据文件。关于虚拟机磁盘文件的更多详细信息请参见文章“VMware ESX主机上虚拟机文件介绍”。

  ESX主要有三种主要的虚拟磁盘文件类型可用:thick、thin和raw。

  Raw disk(原始磁盘)

原始磁盘指的是原始设备影射(RDM),可以让虚拟机在存储区域网络(SAN)上直接访问逻辑单元号(LUN)。这意味着虚拟机的磁盘数据文件不宿主在虚拟机文件系统(VMFS)卷上。相反,小型磁盘描述符文件是为VMFS卷上虚拟机工作目录里的虚拟磁盘而创建的。

  RDM能配置成两种不同的模式:虚拟兼容模式或物理兼容模式。虚拟兼容模式虚拟影射的设备,一般来说对子操作系统是透明的。这种模式也提供了一些VMFS卷的优势,如创建快照的功能。物理兼容模式提供最小化的影射设备SCSI虚拟化,并且VMkernel直接传输几乎所有的SCSI命令到设备。

  Thick disk(厚磁盘)

  Thick disk——在创建的过程中分配给所有空间,在物理媒介上可能包括陈旧的数据。这些磁盘不×××全,因为它们的(组成磁盘的)磁盘块没有清除以前的数据。

  Zeroed thick disk——在创建时分配给所有空间,也清除了以前的数据。由于使用了所有空间,数据是零,不过只是在第一次写入磁盘块是如此。当使用VMware Infrastructure Client(VI Client)创建VMFS卷虚拟磁盘时,这是默认的磁盘类型。Zeroed thick disk也叫做lazy zeroed thick disk。由于磁盘在第一次写入时必须清空,这些类型的磁盘在第一次磁盘块写入时也有轻微的I/O性能瓶颈。

  Eager zeroed thick disk——在创建时,分配给所有空间,在物理媒介上清除了以前的数据。另外,在创建磁盘时,与创建其他类型的磁盘相比较,所有数据都需要调到0,花费更多时间。这样的磁盘是最安全的,因为磁盘块已经清除了以前的数据,在第一次写入数据到磁盘块时有较好的性能。

  Thin disk(薄磁盘)

  随着磁盘写入块的创建,Thin disk开始很小,然后增长到预先设置的最大值。如果你创建了一台拥有10GB Thin disk的虚拟机,开始大小可能是1MB,随着时间推移,达到10GB的最大值。随着增长,Thin disk可能有轻微的性能损失,因为空间按需分配。同样,第一次对磁盘块的写入是0,这造成额外的性能损失。一旦磁盘增长,其块是0,不过thin disk与其他类型的磁盘表现差不多。

  thin disk对保存VMFS卷上的磁盘空间是有用的,不过如果你不能控制其增长将会产生问题。thin disk通常是网络文件系统(NFS)数据存储的默认选择。不过是否使用它们由NFS服务器的分配策略决定,而不是VMware ESX服务器。使用thin disk时,大概使用VI Client数据存储浏览器时,你只能看见一个磁盘的实际大小。如果使用不同的方法,如命令行Ls命令,这个命令将显示磁盘的最大值而不是其目前大小。

  2GBsparse

  此外,有一个叫做2GBsparse的特殊格式。2GBsparse将磁盘分割成多个磁盘,每个磁盘的最大值是2GB。例如,有20GB磁盘空间的虚拟机可以划分为10个2GB的磁盘。VMware Workstation和VMware Server可以使用这种格式,不过除非你第一次输入thick或thin disk格式,否则不能在ESX主机上以这种格式启动虚拟机。这种格式有时用于将较大的VMware ESX磁盘分解成较小的磁盘,利于复制到其他ESX主机或物理媒介,因此这样的磁盘能交付到任何地方。

  决定磁盘类型

  因此你的虚拟机该使用何种磁盘?如果你关注VMFS上的磁盘空间,就使用thin disk。如果你关注安全,也想在初次磁盘写入时性能较好就使用eager zeroed thick disk。注意,一旦完成对新磁盘块的初次写入,所有类型的磁盘性能都一样。如果你在虚拟机里运行的应用是感知SAN的,并且需要直接访问SAN LUN,或如果你使用像Microsoft Clustering Server这样的需要两个虚拟机的集群解决方案访问相同的磁盘文件,就使用RDM。

  使用不同的磁盘类型创建新虚拟机

  如果你想使用一个不是默认的磁盘文件类型,你必须使用vmkfstools服务控制台工具应用。

  使用不同磁盘类型创建虚拟机的最快方式是不创建磁盘,不过只有在你使用VMware ESX 3.5的时候才可以这样做。(在创建硬盘时,确定选择的是自定义而不是典型的虚拟机配置)如果你运行VMware ESX 3.0,你可以使用任何硬盘创建虚拟机,以后再修改。

虚拟磁盘

  1.登录服务控制台并修改虚拟机目录。使用vmkfstools命令创建硬盘。在下面的例子中,我们使用命令vmkfstools –c <disk size> -d thin <disk file name>:

  vmkfstools –c 10G –d thin magenta.vmdk

  为虚拟机“magenta”创建一个thin disk。

  注意,Ls命令显示了磁盘的最大值10GB,而不是目前的值1MB。数据存储浏览器显示了目前的大小。

ESX主机

虚拟机

  2.编辑虚拟机并添加虚拟硬盘。选择使用现有的磁盘并在虚拟机目录里浏览新创建的虚拟磁盘。现在就能启动虚拟机并安装操作系统了。如果稍后检查虚拟机磁盘大小,注意,它随着额外的数据输入而增大。

  在现有虚拟机里更改磁盘类型

  如果你想更改现有的磁盘格式,必须使用vmkfstools命令。确保关闭虚拟机并且没有运行快照。以下是命令列表及其作用。

  • vmkfstools –j <磁盘文件名>:这个命令使thin disk增长到其最大值,并删除以前的数据,就把thin disk更改成eager zeroed thick disk。现有的数据仍然是完整的,这是由于只有新磁盘块是0开始或重定格式。
  • vmkfstools –w <磁盘文件名>:这个命令完全清除虚拟磁盘文件,所有现有的数据都将被删除。这个命令只能用于新创建的没有数据的虚拟磁盘。
  • vmkfstools –i <原始磁盘文件名><目标磁盘文件名>-d thin:这个命令转换现有的thick disk到其他thick disk。完成转换后,你必须移除现有磁盘,添加新磁盘并浏览目标磁盘文件。一旦确保虚拟机启动不出错,就能使用数据存储浏览器删除原始磁盘文件。注意,thick disk的大小能变化,可能与虚拟机使用的磁盘空间不匹配。如果写在操作系统里的数据突然被删除,ESX主机仍然认为使用了空间。