VM虚拟客机磁盘碎片整理提高了性能,神话还是现实?

在运行虚拟Vmware或Hyper-V guest虚拟机时,通常会给出build议,以便对主机和虚拟磁盘映像进行碎片整理,从而提高性能。

cmd: vmware-vdiskmanager -d <file.vmdk> works great.

然而,我无法find任何build议虚拟内部虚拟机提高性能的证据。 有没有人有任何build议或证据,不是来自商业碎片整理的白皮书,暗示内部客户碎片整理帮助?

这取决于您的存储性能和应用程序的性能。 目前的虚拟化主机面临的挑战是每个guest虚拟机只能获得1个主机总线适配器(HBA)的吞吐量给任何给定的LUN。 (唯一的例外是最新的VMware vSphere v4.0 – 授权的最高级别让您有机会运行EMC的多path软件。)因此,如果您的吞吐量瓶颈是单个HBA,即使没有其他客户使用存储,碎片通常不会成为虚拟链中最薄弱的环节。

另外,折腾几个虚拟客人通常共享相同的SAN伦。 如果三台服务器同时访问其驱动器,并且它们共享相同的物理arrays,则所有的访问都是随机的。

我唯一需要考虑对虚拟磁盘进行碎片整理的方法是,如果每个guest虚拟机都有自己的专用SANarrays,并且HBA吞吐量不是瓶颈。

我的理解是,虚拟磁盘文件是一个像物理磁盘一样的文件。 所以我认为问题是,vdiskmanager是否真的了解这个磁盘上的文件系统。 我认为这不是,这就是为什么操作系统中的碎片整理应该有所帮助。

既然你提到vmware和hyper-v客人,我会假设你没有运行vmware的ESX版本,并且正在使用更多的托pipe模型。 整理主机操作系统是一个好主意。

在客人内部整理碎片可能是不好的。 我只有vmware的产品经验,而不是hyper-v,但是如果你有一个有快照的guest虚拟机,磁盘碎片整理会导致你使用大量的磁盘空间。

快照是从父磁盘文件所做更改的增量。 当您更新来宾中的块时,增量的大小会增加。 如果碎片整理涉及每个块,则快照的大小将增加,以便消耗与原始虚拟硬盘相同数量的磁盘空间。 只是要注意的事情。

布伦特的答案当然是明智的。 今天早上我在研究这个话题时遇到了几个链接,build议你应该像物理服务器那样对虚拟机进行碎片整理。

http://itknowledgeexchange.techtarget.com/virtualization-pro/defragmenting-virtual-machine-disk-files/

http://www.vmware.com/support/gsx3/doc/disks_defrag_shrink_gsx.html

http://www.dciginc.com/2008/10/the-physical-challenges-of-disk-defragmentati.html

如果我们假设有多个虚拟机同时访问LUN,那么碎片整理将会像Brent所说的那样具有有限的价值。 但是,同时访问LUN并不总是如此,所以VM磁盘的内部碎片整理仍然会提供一些价值?