创建VM映像(例如KVM映像)时,是否应将LVM用于分区?如果要在主机上安装qcow2映像(如果该映像具有LVM分区),则似乎增加了复杂性。
另一方面,LVM分区的优势在VM映像上似乎并不那么重要,因为使VM脱机并调整分区大小比物理系统要容易得多。
创建VM映像(例如KVM映像)时,是否应将LVM用于分区?如果要在主机上安装qcow2映像(如果该映像具有LVM分区),则似乎增加了复杂性。
另一方面,LVM分区的优势在VM映像上似乎并不那么重要,因为使VM脱机并调整分区大小比物理系统要容易得多。
Answers:
“这取决于。”
如果您在自己控制的环境(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。
除了灵活性之外,基于LVM的VM映像的开销可能更少,因为它们无法通过文件系统进行访问。另一方面,它消除了轻松移动图像的方法,就像处理文件一样。并非没有,但更为复杂
我自己的经验。
我想将逻辑卷(lv)与lvm2一起用于ext4文件系统。不是作为磁盘,而是简单地作为fs的未分区原始磁盘。
我发现,VM的启动将在initrd阶段停止;如果我注释掉该/etc/fstab
条目,机器将启动。让/etc/fstab
条目留下评论不是我乐于接受的解决方案。因此,我创建了一个普通的磁盘映像(仍然是逻辑卷),使用一个分区对其进行了分区,fdisk
并在其上创建了文件系统。没有其他问题。
我的相关坐骑/etc/fstab
正在使用UUID。
我考虑过使用文件或文件系统,但决定反对。
就我而言,我正在使用基于Debian Jessie的系统Devuan
编辑:以下不再是正确的。将LVM提供的精简配置用于VM磁盘映像的价值可能是视情况而定;
您是否在笔记本电脑上运行开发VM?那么使用QCow2可能会更好。
管理可能跨多个磁盘使用大量存储的VM场?LVM可能是管理该存储的好方法。
不使用lvm的原因之一是您不能使用lvm过量使用存储。如果创建10个具有100GB存储空间的VM,则需要1000 GB的实际磁盘,即使10个VM中的9个仅使用20 GB的文件系统。稀疏磁盘映像或qcow2格式映像可能意味着仅需要将来宾实际使用的存储分配给它们。
这对您实际上是否有用取决于您需要从存储中获取什么。