使用存储精简配置回收未使用的VMDK空间

vSphere 4.0系列测试版开始,我已经尝试使用虚拟机磁盘格式(VMDK)精简配置,因为我没有太多的存储空间备用。
通常,当一个50GB的VMDK被创建,它会立即在虚拟机文件系统(VMFS)卷上占用掉50GB的磁盘空间。由于应用管理员往往需要比他们真正需要的空间更多的空间,这里有很多昂贵的存储区域网络(SAN)磁盘容量被用于这些将永远不会被使用的应用。当你简单创建一个VMDK磁盘时 ,存储不分配给VMDK空间,除非它是真的会被使用到的。50GB磁盘空间中只有仅仅10GB的空间被使用,那么只要有10GB的空间就可以了。
只有当磁盘被写入了数据,50GB的空间才可以说被使用了,这是非常合乎逻辑的。但是在存储上回收那些已经被删除的数据的空间是不可能的。一旦精简配置磁盘增长,它就绝不会收缩。这不是因为在储存上或者vSphere级别的限制,而是因为储存和vSphere没有收到这些区块是空的信息。当你删除它时,Windows不会删除文件,它只是更新了主文件表和登记这些区块从X变更为Y,即这些区块现在可以被再次写入,但空间并不是空的。这就是vSphere和存储块都不知道区块是可以被回收的原因。
但是,一些存储厂商,已经使用过特殊的驱动程序,这可以与客户的操作系统相互通信,并告诉存储,当客户删除文件时,它可以收回这些区块。
使用Storage VMotion收回空间
当我第一次听说精简配置是在2009年戛纳的VMworld上,我立即想到,在没有停机时间前提下,我将如何获得我客户现有的基础架构。幸运的是,在vCenter迁移向导中,有一个问题,改变数据存储,为一个VMDK或一个虚拟机(VM)上所有的VMDK,并立即更改磁盘类型从厚到薄的配置。你可以使用Storage VMotion功能在VMDK上并用这样的方式收回未使用的空间,但请记住,只有以前未曾被客户操作系统写入的空闲空间才可以回收。
作为测试,我进行了如下的操作:
增加10GB的精简配置VMDK到一台Windows 2003的虚拟机。
用数据填补了VMDK,稍后删除该数据。
在vCenter里,看到磁盘现在使用的空间是10GB 。正如预期的那样,通过在Windows中删去它,没有在存储级别将数据所占空间释放。
使用Storage VMotion迁移这个VMDK到不同的数据存储上。但是,这个过程没有释放掉存储上的空间。如果在向导中我选择保持磁盘格式或“更改为薄配置磁盘”,结果是没有差别的。
这证明,删除文件并不能收回未使用的区块。这仍然是相当的浪费,这些区块不能再次被回收了,所以我考虑其他方式收回这个空间。

曲奇  发表于: 2010-01-23

我要回答

电子邮件地址不会被公开。 必填项已用*标注

敬请读者进行回答,本站保留删除与本问题无关和不雅内容的权力。

相关推荐