LVM 会影响性能吗?

Pab*_*blo 97 virtual-machine lvm virtualization

我必须将几台服务器迁移到 Linux,我需要评估的一个重要方面是我的新主机系统必须具有弹性存储容量。当然,在做一些基础研究时,我遇到了 LVM。

使用lvm有任何性能损失吗?如果是这样,我该如何衡量?

我现在正在考虑的是将 Linux 作为主机操作系统,并在其上运行 LVM 和虚拟化 Linux 机器(我是否也应该在来宾操作系统上添加 LVM?)。

mat*_*tdm 115

LVM 的设计方式使其不会真正成为障碍。从用户空间的角度来看,它看起来像是磁盘顶部的另一层“虚拟东西”,并且很自然地想象所有的 I/O 现在必须通过它才能到达或离开真实硬件。

但事实并非如此。内核已经需要有一个映射(或实际上是几层映射),它将诸如“将其写入文件”之类的高级操作连接到设备驱动程序,而设备驱动程序又连接到磁盘上的实际块。

使用 LVM 时,查找会更改,但仅此而已。(因为无论如何它都必须发生,所以稍微改变一下对性能的影响可以忽略不计。)当涉及到实际写入文件时,这些位会像其他方式一样直接访问物理介质。

在某些情况下,LVM 会导致性能问题。您希望确保 LVM 块与底层系统正确对齐,这应该在现代发行版中自动发生。并确保您没有使用受此类错误影响的旧内核。哦,使用 LVM 快照会降低性能(每个活动快照也会越来越多)。但大多数情况下,影响应该非常小。

至于最后一个:你怎么测试?标准的磁盘基准测试工具是bonnie++。使用 LVM 创建一个分区,对其进行测试,然后将其删除(在同一位置,以保持其他因素相同)再次创建一个普通文件系统和基准测试。它们应该接近相同。

  • 感谢您的良好解释。一项更新:通过 LVM 精简配置,(精简)快照对性能的影响已大大降低。请参阅[此页](http://www.ilsistemista.net/index.php/linux-a-unix/46-lvm-thin-volume-explained.html?limitstart=0)以获得很好的总结 (2认同)

Dav*_*osh 19

LVM 和其他一切一样,是喜忧参半。

在性能方面,LVM 会有点阻碍您,因为它是另一层抽象,必须在位命中(或可以从)磁盘读取之前解决。在大多数情况下,这种性能影响实际上是无法衡量的。

LVM 的优点包括您可以向现有文件系统添加更多存储,而无需四处移动数据。大多数人喜欢它的这个优势。

以这种方式使用的 LVM 的一个缺点是,如果您的额外存储跨越磁盘(即涉及多个磁盘),则会增加磁盘故障导致数据损失的可能性。如果您的文件系统跨越两个磁盘,并且其中一个出现故障,您可能会迷路。对于大多数人来说,这是一个可以接受的风险,由于空间VS-成本的原因(例如,如果这是非常重要的会有一个预算做是正确的) -因为,正如他们所说,备份好的,对吧?

对我来说,不使用 LVM 的唯一原因是灾难恢复没有(或至少没有)明确定义。一个带有 LVM 卷的磁盘,上面有一个乱码的操作系统,不能轻易地连接到另一台计算机上,并从中恢复数据;许多用于恢复 LVM 卷的说明似乎都包括诸如回到过去并运行 vgcfgbackup,然后将生成的 /etc/lvmconf 文件复制到托管您的软管卷的系统等步骤。希望自从我上次不得不看这件事以来的三四年里情况发生了变化,但就我个人而言,出于这个原因,我从未使用过 LVM。

那说。

在您的情况下,我认为与主机系统相比,虚拟机将相对较小。这对我来说意味着您以后更有可能想要扩展 VM 中的存储;这最好通过向 VM 添加另一个虚拟磁盘,然后增加受影响的 VM 文件系统来完成。您没有跨多个磁盘漏洞,因为虚拟磁盘很可能位于主机系统上的同一物理设备上。

如果虚拟机对您来说真的很重要,那么您将以某种方式对主机系统进行 RAID,这将降低以后增加存储的灵活性。所以可能不需要 LVM 的灵活性。

所以我假设您不会在主机系统上使用 LVM,但会安装 VM 以使用 LVM。

  • @DM - 您似乎没有提到 LVM2 物理卷可以是任何块设备,包括 md-RAID。IE: pvcreate /dev/md0 不管底层 RAID 类型 /dev/md0 是什么。因此,如果您的 /dev/md0 恰好是镜像物理磁盘的 RAID 阵列......丢失单个物理驱动器会影响您的 LVM2 组有点困难。另外:在创建 RAID 阵列时,您可以使用 LVM2 逻辑卷作为媒体端。两者都在设备映射器级别运行,都是设备输入/设备输出层。 (7认同)
  • 这就像说刀不好,因为你在玩杂耍时可能会割伤自己......不这样做怎么样?将它们用于它们更适合的任务,例如切蔬菜。 (4认同)

aki*_*ira 5

一般来说:如果添加新的复杂性层(“又名更多要做的事情”),那么速度不会更快。注意:您只能添加工作,而不能“更改”工作的完成方式。

你如何测量一些东西?好吧,您创建一个带 LVM 的分区和一个不带 LVM 的分区,然后使用正常的基准测试并运行它。就像人们在

http://www.umiacs.umd.edu/~toaster/lvm-testing/

看起来,对速度只有轻微的影响。这似乎与其他运行基准测试的人的发现是同步的:

“使用 LVM 的 ext4 比不使用 LVM 的速度更快,以及其他文件系统基准测试”Linux 内核邮件列表线程

但是,您只需自行对其进行基准测试,看看您想要使用的硬件和操作系统的行为是否相同,以及您是否可以忽略为您提供弹性存储的额外复杂层的(可能轻微的)影响。

您是否应该将 LVM 添加到来宾操作系统:这取决于您是否需要来宾操作系统也具有弹性存储,不是吗?您的需求决定了您必须部署的内容。