我们有一个包含 3 台主机的 Citrix XenServer 池,使用共享的 NFS 存储库来存储我们的虚拟机。
SR 托管在 Windows 2003 存储服务器刀片上,该刀片包含在我们的 3000 系列 HP 刀片机箱中。
我刚刚查看了存储服务器,发现包含 NFS 共享的磁盘非常碎片化。
我有几个问题。
运行标准 Windows 碎片整理程序是否足以解决这个问题?
是否有其他人运行类似的设置,遇到过类似的问题,您做了什么?我计划自动化该过程,并且想知道在碎片整理过程中是否需要暂停或关闭虚拟机。
为什么会发生这种情况?在配置新的虚拟机时我可以采取哪些具体措施来防止这种情况发生?
欢迎任何想法。
谢谢,
路加
答案1
在线对驱动器进行碎片整理应该没问题,因为 Xen 磁盘映像和其他文件一样。您应该尝试在非工作时间进行此操作,因为碎片整理期间性能可能会受到很大影响。
您看到高碎片率的原因是 VDI 是稀疏磁盘映像。即使您指定虚拟机分配了(例如)100 GB 的空间,磁盘映像最初也只会分配最小量的空间。然后它会根据需要增长,直到达到分配的大小的最大值。这种方法的问题在于,如果您在同一存储设备上有很多虚拟机,并且它们的磁盘都在不同时间增长,那么磁盘映像文件就无法在磁盘上连续,因此会变得非常碎片化。
解决这个问题的方法是不使用稀疏图像,但不幸的是,从 XenServer 5.0 开始,您可以制作的唯一 VDI 类型是稀疏的。
我马上想到了几个选项:* 如果可能,请使用 LVM 格式的原始块设备。我对 Windows 2003 Storage Server 不太熟悉,不知道这是否可行。如果它允许您创建卷并通过 iSCSI 或 FC 导出它们,则一切就绪。否则,您可能需要考虑更改为其他共享存储设置或其他设置。* 预先分配 VHD 中的所有磁盘空间。本质上,这意味着在安装操作系统之前,只需填满卷中的所有可用空间。您可以启动 Linux LiveCD 或其他东西,然后dd
在整个磁盘上写入零。这将导致 XenServer 将磁盘映像文件扩展到最大大小,并且希望其中大部分是连续的,因为所有这些都是一次性完成的。
您所看到的碎片问题对于使用基于稀疏文件的虚拟机存储来说并不少见,这正是我更喜欢使用 SAN 上的 LUN 作为虚拟机存储的原因。