精简配置 Linux 服务器的最佳实践(在 VMware 上)

tuo*_*alo 10 linux lvm

我设置了大约 20 台 Linux 机器,每台机器都有大约 30-150 GB 的客户数据。可能某些机器上的数据大小增长速度会比其他机器快得多。这些是 VMware vSphere 群集上的虚拟机。磁盘映像存储在 SAN 系统上。

我试图找到一种解决方案,它可以节省使用磁盘空间,同时仍然允许轻松增长单个机器。

理论上,我只会为每台机器创建大磁盘并使用精简配置。每个磁盘将根据需​​要增长。然而,似乎只有 50 GB 数据和相当低的写入次数的 500 GB ext3 文件系统仍然可以轻松地将磁盘映像增长到例如。随着时间的推移 250 GB。或者也许我在这里做错了什么?(我很惊讶我在 Google 上发现的关于这个主题的内容如此之少。顺便说一句,serverfault.com 上甚至没有精简配置标签。)

目前我正计划创建大型、精简配置的磁盘 - 但它们上有一个小的 LVM 卷。例如:500 GB 磁盘上的 100 GB 卷。这样我就可以更轻松地根据需要增加 LVM 卷和文件系统大小,甚至在线。

现在对于实际问题:

有没有更好的方法来做到这一点?(即,在不停机的情况下根据需要增加数据大小。)

可能的解决方案包括:

  • 使用精简配置友好的文件系统,尝试一遍又一遍地占据相同的位置,从而不会增加图像大小。

  • 找到一种简单的方法来回收分区上的可用空间(重新精简?)

  • 还有什么?

一个额外的问题:如果我采用当前的计划,您是否建议在磁盘上创建分区(pvcreate /dev/sdX1vs pvcreate /dev/sdX)?我认为使用没有分区的原始磁盘是违反惯例的,但是如果需要的话,它会使增加磁盘变得更容易一些。这只是品味问题,对吧?

mti*_*erg 7

如果我正确理解精简配置,那么如果您没有密切监视 VMFS 文件系统的增长并允许 VMDK 填满您的 VMFS 卷,它确实可能会导致问题。您在测试中已经看到,精简配置的磁盘往往会快速增长以填充其可用空间,并且它们无法回收操作系统内部可能空闲的空间。

另一种选择是创建足够大的 VMDK 文件来处理您当前的使用情况和预期的增长高峰,并随着应用程序数据使用量的增长添加更多 VMDK 文件。新的 VMDK 文件可以实时添加到 VM,您只需重新扫描(回显“- - -”> /sys/class/scsi_host/host?/scan)。您可以对新磁盘进行分区,将其添加到 LVM 并实时扩展文件系统。通过这种方式,您始终知道分配给每个 VM 的空间有多少,并且您不会意外地从来宾内部运行 VMFS 空间不足。

至于如果磁盘只供LVM使用,是否要分区,我总是分区。对磁盘进行分区可以防止在机器启动时出现任何关于虚假分区表的警告,并明确表示磁盘已分配。这有点像巫毒教,但我也确保从 64 开始分区,以帮助确保分区和文件系统与底层存储块对齐。很难检测和分类,因为您通常没有可以轻松比较的东西,但是如果 OS 文件系统没有与底层存储正确对齐,那么您最终可能需要额外的 IOPS 来为跨块边界的请求提供服务底层存储。