如果有人了解 LVM 的工作原理,可以告诉我一个粗略的估计,使用 LVM(带有软件 RAID1)会慢多少,我将不胜感激。
(如果 LVM 卷当前处于快照模式执行写时复制,我不想知道 LVM 会慢多少)。我只需要粗略估计 LVM 在正常操作场景中会减慢读写速度。
任何链接也非常感谢我找不到关于这个问题的任何良好的性能基准。
Sea*_*der 19
LVM 对于普通卷(例如,没有快照)来说是相当轻量级的。这实际上只是在一个相当小的表中查找表,块 X 实际上是设备 Z 上的块 Y。我从未做过任何基准测试,但我从未注意到 LVM 与仅使用原始设备之间的任何性能差异。这是磁盘 I/O 上的一些小的额外 CPU 开销,所以我真的不希望有太大的不同。
我的直觉反应是没有基准测试的原因是 LVM 中没有那么多开销。
LVM 的便利性,以及能够切片和添加更多驱动器,恕我直言,远远超过可能存在的微小(如果有)性能差异。
Mik*_*e S 12
我正在安装 48T 戴尔 MD-1200,我对这个问题很好奇。MD1200 连接到设置为 RAID-6 的硬件 RAID 卡,因此它在 Linux 中看起来就像一个(大)驱动器。我测试了 LVM 物理卷上的 XFS 文件系统与直接磁盘分区上的 XFS 文件系统。我使用了一台带有两个 E5-2699 CPU 的戴尔 R630 机器。该系统是为性能而设置的;我在 BIOS 中可以找到的所有节能功能都已关闭。
我在上面安装了 CentOS 6.7。内核是 2.6.32-573.el6.x86_64(对于老内核很抱歉,但这是我生产所需的)。LVM 是版本 2.02.118。
我让 CentOS 在构建过程中创建一个 XFS 分区。大小为1T。然后我在磁盘上创建了另一个 1T 分区并创建了一个逻辑卷:
vgcreate vol_grp1 /dev/sdb1
lvcreate -l 100%FREE -n lv_vol1 vol_grp1
mkfs.xfs /dev/vol_grp1/lv_vol1
Run Code Online (Sandbox Code Playgroud)
我的 XFS-only 文件系统被称为/data_xfs. LVM 支持的 XFS 文件系统被称为/data_lvm. 我使用 bonnie++ v 1.03e 进行了测试。
命令是:bonnie++ -u 0:0 -d /FILESYSTEM -s 400G -n 0 -m xfsspeedtest -f -b其中 FILESYSTEM 是 /data_xfs 或 /data_lvm 。结果总结如下:
Test XFS on Partition XFS on LVM
Sequential Output, Block 1467995 K/S, 94% CPU 1459880 K/s, 95% CPU
Sequential Output, Rewrite 457527 K/S, 33% CPU 443076 K/S, 33% CPU
Sequential Input, Block 899382 K/s, 35% CPU 922884 K/S, 32% CPU
Random Seeks 415.0 /sec. 411.9 /sec.
Run Code Online (Sandbox Code Playgroud)
在我看来,结果似乎具有可比性。在 Sequential Input 测试中,LVM 实际上似乎表现要好一些。
Borislav Djordjevic 和 Valentina Timcenko 于 2015 年发表了一篇简短的论文,其中使用了几个使用 EXT3 的 7200RPM 80GB 西部数据驱动器,并使用 PostMark 软件进行了测试,该软件“模拟加载互联网邮件服务器”和 Linux 内核 2.6.27。他们发现过去的研究只关注bonnie或dd单独测试,结果各不相同。
测试似乎表明,与不使用 LVM 时相比,LVM 的性能下降可能从 15% 到 45%。当在一个 LVM 设置中使用两个物理分区时,他们发现降幅更大。他们得出的结论是,最大的性能影响是 LVM 的使用及其使用的复杂性。
https://www.researchgate.net/publication/284897601_LVM_in_the_Linux_environment_Performance_examination http://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=216661
这是一个老问题,但值得一个最新的答案。
简短的回答:经典/线性 LVM 命令的开销最小(几乎为零),并且可以在没有性能问题的情况下使用,除非使用快照(因为它们会破坏写入速度)。默认情况下,精简卷的速度稍慢,但快照速度更快,为经典文件系统提供现代 CoW(和精简配置)。其他 LVM 段类型具有不同的开销,具体取决于它们执行的数据转换。
长答案:核心技术仍然是设备映射器- 一个在不同设备上映射(可能经过转换)块的框架。不同的设备映射器目标提供不同的功能和不同的性能开销。LVM 本身构建在设备映射器上:可以将 LVM 视为设备映射器和其他相关工具的 CLI/包装器。
最常见的目标是:
linear:基本 LVM 目标。在不使用/涉及 RAID 的情况下在不同的块设备上扩展单个卷非常简单但非常有用(旧的mirrorLVM 段类型已被弃用并删除)。它的开销最小,并且 RHEL 默认使用它作为根文件系统。通过此目标拍摄的快照(即:经典的“胖”快照)写入速度非常慢,如果多个并发快照“活动”,情况会变得更糟,因此它们应该仅用于备份数据并在完成后立即销毁;thin:它是一个现代 CoW 目标,支持快速滚动快照和卷克隆。缺点是与胖/线性卷相比,基本性能有所降低(即:当不存在快照时)。快照写入性能影响是恒定的,通常限制在最大 50% 左右(通常要小得多)。我使用薄卷作为生产数据,将/(根)保留在经典的胖卷上;vdo:它是一个提供数据压缩和重复数据删除的新目标。写入性能受到显着影响,可以通过使用支持 BBU 的 HW RAID 卡来限制写入性能;cache:性能增强目标,支持较慢设备的读取和写入缓存(即:基于 HDD 的主存储池的 SSD 缓存);raid:另一个性能/可靠性增强目标,桥接 Linuxmdraidintegrity:它提供了用于检测数据损坏的 SAS T-10 标准的纯软件实现。journal模式是最安全的,但它的写入监听率很高。正如您所看到的,没有任何“LVM 开销”。相反,根据目标和预期使用情况,开销范围可以从零到 >90%。因此,请务必在 LVM 设置之前准确模拟您的工作负载。
| 归档时间: |
|
| 查看次数: |
27487 次 |
| 最近记录: |