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