我一直在虚拟机上尝试使用 LVM。到目前为止,我发现它只具有优势,我打算下次全新安装时在真实机器上使用它。
我从未在“现实生活”场景中使用过它,因此是否存在我必须注意的缺点,例如性能损失或更难的管理(例如:备份和恢复)?
答案1
有很多文献:
https://unix.stackexchange.com/questions/7122/does-lvm-impact-performance
结果是:在几乎所有情况下,LVM 都会为您提供更大的灵活性和易于维护性。即使在恢复的情况下,经常提到的“天哪,当一个磁盘坏了,一切都会丢失”的问题也比许多 RAID 设置更容易处理。只要您在磁盘空间中留出一些空闲空间,您就可以在系统运行的情况下将损坏的磁盘换成新磁盘。相当不错。
第二个担忧是:由于额外的虚拟层而导致的性能下降对于大多数场景来说也不是问题:吞吐量与传统的直接分区一样好。
但是,由于您的设置细节不明确,所有这些都是相当模糊的陈述。因此,要找出答案,您需要提供更多关于使用场景等的信息。即便如此,最好的选择还是进行一些基准测试(例如邦尼++)。顺便说一句,使用虚拟机执行这些操作不会有帮助。但这是一个很好的练习设置的方法,虽然最初看起来有点麻烦。
编辑:如何处理备份:
如果您习惯使用 dd 备份系统硬盘,那么您可以继续使用逻辑卷 (LV)。请记住,LV 也是可以应用 dd 的块设备。块设备的底层组织对于 dd 的接收者是隐藏的(您可以将分区转储到文件中的一个原因:dd if=/dev/hda1 of=/tmp/part_a1
但是,在正在运行的系统上使用 dd 是比较冒险的,因为在执行备份时磁盘可能会发生变化(一种保护措施是挂载只读)。但是,使用 LVM,这一切都不是必需的,因为您现在可以访问出色的新功能:快照!
以前,您可以直接备份“分区”,并且这仍然有效:
dd if=/dev/mapper/VolGroup00-LogVol00 of=...
现在您可以对正在运行的系统进行快照(只要有一定的空间,您可能必须添加磁盘并扩展卷组。这一切都非常容易......)
lvcreate -s -L 64M -n mysnapshot /dev/VolGroup00/LogVol00
您可以将其添加到图像中,以确保它不会改变,从而保证安全。
总而言之,只要多做一些工作(需要了解工具),您就可以更灵活地在许多情况下完成您想要实现的目标(包括备份问题)
答案2
在虚拟机上,所有内容都存储在系统上的文件中,因此没有真正的性能原因将虚拟磁盘分成几部分(交换等)。
如果您可以通过符号链接将交换磁盘放置到不同的驱动器(ssd),那么这是有意义的,但是您宁愿使用单独的虚拟磁盘。