是否应在虚拟机映像中使用LVM分区?


45

创建VM映像(例如KVM映像)时,是否应将LVM用于分区?如果要在主机上安装qcow2映像(如果该映像具有LVM分区),则似乎增加了复杂性。

另一方面,LVM分区的优势在VM映像上似乎并不那么重要,因为使VM脱机并调整分区大小比物理系统要容易得多。


您是否想将LV用作整个磁盘或分区,进而将其用作VM中的磁盘?
尼尔斯

@Nils我在说LV是组成磁盘的分区。例如,将“ /”分区和交换分区作为卷组内的逻辑卷。
Lorin Hochstein 2012年

只是为了澄清一下,似乎您是在询问在来宾端使用LVM。如果在主机端使用LVM,传递一个或两个磁盘并在客户机上不进行任何分区的情况下使用它们,则管理起来要容易得多。
东武

LVM开销在10e-9秒的范围内。
伊曼纽尔

Answers:


21

“这取决于。”

如果您在自己控制的环境(vmware或kvm或其他)上,并且可以对磁盘性能QoS做出自己的决定,则建议不要在VM内使用LVM。它并不能为您带来在虚拟机管理程序级别上无法获得的灵活性。

请记住,管理程序已经在有效地执行这些任务。如果您希望能够任意调整文件系统的大小(一个好主意),只需为每个文件系统创建一个单独的虚拟磁盘。

走这条路,您可能会想到一件事。您甚至不必以这种方式在虚拟磁盘上放置分区。例如,您可以为创建虚拟磁盘/home;它/dev/vdc在您的虚拟机内。创建文件系统时,只需执行类似操作即可,mke2fs -j /dev/vdc而不是指定分区。

这是个好主意,但是...大多数工具(以及您之后的其他管理员)都希望看到每个磁盘上的分区。我建议只在磁盘上放置一个分区,然后完成它。不过,这确实意味着调整文件系统大小时需要再执行一步。并且不要忘记正确对齐分区-从1MB开始的第一个分区是一个很好的经验法则。

话虽如此-在虚拟机管理程序级别执行所有操作意味着您可能必须重新引导VM才能调整分区大小。使用LVM将允许您热添加虚拟磁盘(假设您的hypervisor / OS组合允许这样做),并且无需重启即可扩展文件系统。这绝对是一个加号。


同时,如果您使用的是云提供商,那么它会更加微妙。

我对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。


7

逻辑卷更易于即时创建,调整大小和删除。
“是否使用LVM”问题始终有相同的答案,这取决于 :)
如果您需要磁盘,分区级别的灵活性,这是有意义的。
如果您不需要LVM提供的灵活性或不想利用其他LVM功能,这没有多大意义。


5

我实际上喜欢使用LV,因为它们不容易从virt服务器访问。因此,这些文件不容易被偶然破坏/移动。

LV的其他重要功能:

  • 您可以制作快照
  • 您可以基于LV(iostat)分析磁盘IO
  • 易于调整大小
  • 通过使用快照,您可以对正在运行的系统进行一致的克隆

为了降低复杂性,我使用LV作为磁盘(而不是分区)。缺点是我只能轻松调整“磁盘”的最后一个分区的大小-但是我的标准VM-disk-layout考虑了这一点(所以最后一个分区包含重要的应用程序数据)。


2

除了灵活性之外,基于LVM的VM映像的开销可能更少,因为它们无法通过文件系统进行访问。另一方面,它消除了轻松移动图像的方法,就像处理文件一样。并非没有,但更为复杂


1
那是对另一个问题的答案。这里的问题是关于在来宾中使用LVM,而不是在主机上使用LVM(LV用于存储VM磁盘)。
斯特凡Chazelas

1
不,问题是关于将LVM用于来宾,而不是用于来宾。
HDave

2

我自己的经验。

我想将逻辑卷(lv)与lvm2一起用于ext4文件系统。不是作为磁盘,而是简单地作为fs的未分区原始磁盘。

我发现,VM的启动将在initrd阶段停止;如果我注释掉该/etc/fstab条目,机器将启动。让/etc/fstab条目留下评论不是我乐于接受的解决方案。因此,我创建了一个普通的磁盘映像(仍然是逻辑卷),使用一个分区对其进行了分区,fdisk并在其上创建了文件系统。没有其他问题。

我的相关坐骑/etc/fstab正在使用UUID。

我考虑过使用文件或文件系统,但决定反对。

就我而言,我正在使用基于Debian Jessie的系统Devuan


1

实际上,我仅将LVM用于虚拟机管理程序级别的后备存储,图像文件用于存储鸟类。我也建议您在来宾级别使用它们。的确,您不会从池中存储不同的存储源中受益,也不会发现增加可用的总磁盘空间更容易(因为您可以通过调整虚拟机管理程序所呈现的内容的大小来轻松获得磁盘空间),但是有时您会为一个文件系统分配过多资源。您可能想要一种简单的方法来从/ opt中获取1 gig并将其分配给/ var(例如)。如果要在VM本身中进行常规分区,那么调整大小方面就变得困难得多。


1

除了这里的其他好答案之外,在VM中使用LVM的唯一真正好的理由是您希望测试环境进行试验并获得有关LVM的实践经验。

您可以阅读各种HOWTO和教程,练习常见(但不常见)的LVM管理任务,设置各种失败方案,并学习如何处理它们。

即作为一种自我教学的帮助。


0

编辑:以下不再是正确的。将LVM提供的精简配置用于VM磁盘映像的价值可能是视情况而定;

您是否在笔记本电脑上运行开发VM?那么使用QCow2可能会更好。

管理可能跨多个磁盘使用大量存储的VM场?LVM可能是管理该存储的好方法。


使用lvm的原因之一是您不能使用lvm过量使用存储。如果创建10个具有100GB存储空间的VM,则需要1000 GB的实际磁盘,即使10个VM中的9个仅使用20 GB的文件系统。稀疏磁盘映像或qcow2格式映像可能意味着仅需要将来宾实际使用的存储分配给它们。

这对您实际上是否有用取决于您需要从存储中获取什么。


2
实际上,您可以使用lvm快照过量使用存储。不过,它有开销。
derobert 2012年

3
实际上,较新版本的LVM支持“精简池”,该精简池过量使用了快照快照。
derobert 2012年

这是一个正确的观点,尽管不正确。值得指出的是,使用LVM分区/磁盘的“标准” /即时方法会导致上述情况。但是,答案可以更改以反映它会增加学习路径的复杂性。
ILMostro_7 '02
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.