创建VM映像(例如KVM映像)时是否应该使用LVM作为分区?如果您想在主机中安装 qcow2 映像(如果该映像具有 LVM 分区),这似乎会增加复杂性。
另一方面,LVM 分区的优势在 VM 映像上似乎并不那么重要,因为与物理系统相比,使 VM 脱机并调整分区大小要容易得多。
答案1
“这取决于。”
如果您处于自己控制的环境中(vmware 或 kvm 或其他),并且可以自行决定磁盘性能 QoS,那么我建议不要在虚拟机中使用 LVM。它不会为您带来在虚拟机管理程序级别无法获得的灵活性。
请记住,虚拟机管理程序已经在有效地执行这些任务。如果您希望能够任意调整文件系统的大小(一个好主意),只需为每个文件系统创建一个单独的虚拟磁盘即可。
当你走这条路时,你可能会想到一件事。您甚至不一定需要以这种方式在虚拟磁盘上放置分区。例如,您可以为 ; 创建虚拟磁盘/home
;它/dev/vdc
在你的虚拟机内部。创建文件系统时,只需执行类似操作mke2fs -j /dev/vdc
,而不是指定分区。
这是一个好主意,但是......大多数工具(以及在您之后的其他管理员)都希望看到每个磁盘上的分区。我建议只在磁盘上放置一个分区并完成它。不过,这确实意味着在调整文件系统大小时又多了一步。并且不要忘记正确对齐分区 - 从 1MB 开始第一个分区是一个很好的经验法则。
话虽如此,在虚拟机管理程序级别执行这一切意味着您可能必须重新启动虚拟机才能调整分区大小。使用 LVM 将允许您热添加虚拟磁盘(假设您的虚拟机管理程序/操作系统组合允许这样做),并且无需重新启动即可扩展文件系统。这绝对是一个优点。
同时,如果您使用云提供商,那就更微妙了。
我对 Azure、GCP 或任何较小的参与者不太了解,所以我无法提供帮助。
使用 AWS,您可以遵循我上面的建议,通常情况下您会没事的。您(现在)可以即时增加 EBS 卷(虚拟磁盘)的大小,并调整分区大小等。
然而,在一般情况下,将所有内容放在一个大 EBS 卷上并使用 LVM(或者我认为是普通分区)可能是有意义的。 Amazon 为每个卷提供 IOPS 限制。默认情况下,此限制随着卷的大小而变化。例如,对于gp2
卷,每 GiB 可获得 3 IOPS(至少 100 IOPS)。看https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
对于大多数工作负载,您将希望所有可用 IOPS 可用于任何文件系统,具体取决于当前的需求。因此,创建一个大的 EBS 卷、将所有 IOPS 放入一个存储桶中,然后对其进行分区/LVM 是有意义的。
例子:
3 个具有独立文件系统/交换区域的磁盘,每个磁盘大小 100GB。每个获得 300 IOPS。每个磁盘上的性能限制为 300 IOPS。
1 个磁盘,大小 300GB。磁盘上的 LVM 分区每个 100GB。磁盘获得 900 IOPS。任何分区都可以使用全部 900 IOPS。
答案2
逻辑卷更容易动态创建、调整大小和删除。
“是否使用 LVM”这个问题总是有相同的答案,这取决于:)
如果您需要磁盘、分区级别的灵活性,那么这是有意义的。
如果你不需要LVM提供的灵活性或者不想利用其他的优势,那么它就没有多大意义。LVM特性
答案3
我实际上喜欢使用 LV,因为它们不容易从虚拟服务器访问。因此,这些文件不会轻易被偶然破坏/移动。
LV 的其他重要特征:
- 您可以制作快照
- 可以根据LV来分析磁盘IO(
iostat
) - 易于调整大小
- 通过使用快照,您可以对正在运行的系统进行一致的克隆
为了降低复杂性,我使用 LV 作为磁盘(而不是分区)。缺点是我只能轻松调整“磁盘”的最后一个分区的大小 - 但我的标准虚拟机磁盘布局考虑到了这一点(因此最后一个分区包含重要的应用程序数据)。
答案4
实际上,我只使用 LVM 作为虚拟机管理程序级别的后备存储,图像文件是给小鸟用的。我还建议在客人级别也使用它们。确实,您不会从池化不同的存储源中受益,也不会发现增加可用总磁盘空间更容易(因为您可以通过调整虚拟机管理程序所提供的内容的大小来轻松获得这一点),但有时您会为一个文件系统分配太多空间。您可能想要一种简单的方法来从 /opt 获取 1 gig 并将其提供给 /var(例如)。如果您在虚拟机本身内部进行常规分区,那么调整大小方面就会变得更加困难。