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


9

我安装了大约20台Linux机器,每台机器大约有30-150 GB的客户数据。在某些计算机上,数据大小的增长可能会明显快于其他计算机。这些是VMware vSphere群集上的虚拟机。磁盘映像存储在SAN系统上。

我正在尝试找到一种可以节省磁盘空间的解决方案,同时仍然可以轻松扩展单个计算机。

从理论上讲,我只会为每台计算机创建大磁盘并使用精简配置。每个磁盘将根据需​​要增长。但是,似乎500 GB的ext3文件系统仅具有50 GB的数据和相当低的写入次数,仍然很容易将磁盘映像扩展到例如。随时间增加250 GB。也许我在这里做错了什么?(令我惊讶的是,我在Google上发现的问题很少。顺便说一句,serverfault.com上甚至没有精简配置标签。)

目前,我正计划创建大型的精简配置磁盘-但其中的LVM容量较小。例如:500 GB磁盘上的100 GB卷。这样,我可以更轻松地根据需要(甚至在线)增加LVM卷和文件系统大小。

现在针对实际问题:

有更好的方法可以做到这一点吗?(也就是说,在不停机的情况下根据需要增加数据大小。)

可能的解决方案包括:

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

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

  • 还有吗

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

Answers:


7

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

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

至于是否要分区(如果磁盘仅由LVM使用),我总是进行分区。对磁盘进行分区可防止在计算机引导时出现有关虚假分区表的任何警告,并明确分配了磁盘。有点巫毒,但我还要确保从64开始启动分区,以确保分区和文件系统与底层存储块对齐。由于您通常没有容易比较的东西,因此很难进行检测和分类,但是如果OS文件系统与基础存储未正确对齐,则最终可能需要额外的IOPS来处理跨越块边界的请求。基础存储。


1
感谢您添加新的vmdk文件(而不是仅增加现有文件)的想法。
tuomassalo 2010年

3

我能想到的最佳建议是创建一个具有物理卷,卷组和逻辑卷的LVM设置,然后通过iSCSI将这些逻辑卷作为VM的文件系统挂载。

这将使您能够调整逻辑卷的大小,然后重新启动iscsi守护程序和虚拟机软件,并检查其是否具有新的size参数,然后重新调整guest虚拟机的文件系统的大小以匹配大小。

分区将像使用标准硬盘一样工作,因为这就是LV在虚拟机客户机上的显示方式。

编辑:没关系,我给您的错误印象是您在linux下运行vmware,而不是在vmware下运行linux。



1

不同的建议:设置一个文件服务器,它将保存您的所有用户数据。

当然,应使用LVM来管理该文件服务器,以进行在线容量管理。

如果愿意,可以使用SAN中文件服务器的一个副本和外部或类似的第二个副本来创建ha-setup(drbd +心跳)。(对于偏执狂)

由于您的客户端基于Linux,因此您可以使用NFS,据说它比Samba更快。FileServer将为您提供集中式备份策略以及集中式存储使用情况监视。关于您的精简配置问题:

根据需要创建LVM设置(在示例中,在500gb PV上的100gb LV中,只需更改与虚拟机所需的存储总和相匹配的数字即可)。如您计划分别在每个VM中执行的操作,请在需要时扩展此LV。但是只需在文件服务器上执行一次即可。每次VM减少其存储使用量时,所有VM都将有可用空间;-)

如果需要或希望在文件服务器上使用配额,以防止单个VM填满文件服务器。


1

您是否可以在不关闭使用虚拟机的情况下扩展其容量?我通常这样做,但是我不知道您的存储设置是什么样的,也不知道VMware如何使事情复杂化。如果可以的话,我会做的是

1)不要精简配置。将每个卷设置为您认为需要的大小。2)不要使用分区。使每个文件系统都有自己的卷。3)监视文件系统的增长,以便您可以主动调整卷大小。

当需要增加音量时

1)在您的SAN或VMware中,执行任何需要扩展卷的操作。2)在linux中,运行echo 1 > /sys/block/EXAMPLE/device/rescan,其中EXAMPLE是/ sys / block /下的设备名称。3)在linux中,运行resize2fs /dev/EXAMPLE,其中EXAMPLE是/ dev下的设备名称。

这种方法对我来说效果很好。我确实考虑过您的使用自动精简配置和LVM的方法,并且我认为它也会起作用。

如果您决定采用LVM路由,建议不要对磁盘进行分区。如您所说,没有分区表可以更轻松地扩展虚拟磁盘。没有分区表,您只需运行pvresize,Linux就会意识到物理卷已经增加。对于分区表,您必须卸载所有文件系统,删除分区表,重新创建分区表,然后运行pvresize。这需要做很多工作,并且需要停机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.