LVM Linux
介绍LVM
LVM是逻辑卷管理器的缩写。它是Linux上的设备映射框架,在Linux内核中提供逻辑卷管理。几乎每个最新的Linux发行版都支持LVM,其中包括根文件系统在逻辑卷中。
1988年,Heinz Mauelshagen在操作Sistina Software时指定了实际的LVM代码,考虑到其设计的主要指导方针来自HP-UX的卷管理器。
LVM的用途
LVM用于以下目的:
- 创建两个或多个物理卷或整个硬盘的单独逻辑卷,允许调整动态卷的大小。
- 管理大型硬盘阵列,通过支持热插拔,允许添加和替换硬盘而无需服务或停机中断。
- 与在安装期间需要估计小型系统分区大小不同,LVM允许根据需要轻松调整文件系统的大小。
- 通过考虑逻辑卷快照实现一致的备份。
- 使用单个密码对两个或多个物理分区进行加密。
LVM可以看作是软件顶部的一个薄层,位于分区和硬盘之上,使得硬盘备份、重新分区和替换的管理变得易于使用和连续。
LVM的特性
基本功能
- 可以通过吸收PV(物理卷)或删除现有卷在线调整VG(卷组)的大小。
- 逻辑卷可以在物理卷之间移动。
- 可以通过将范围添加到逻辑卷或从逻辑卷中裁剪范围来在线调整逻辑卷的大小。
- LVM1可以建立LV(逻辑卷)的只读快照,利用一个特性,即写时拷贝(或CoW),或者读/写快照(LVM2)。
- 在卷组不跨越分裂的情况下,可以将卷组分裂和合并。此时,完整的逻辑卷可以从离线存储迁移,也可以从离线存储迁移到新的卷组。
- 卷组和逻辑卷因为基本设备使用lvmetad守护程序而运行。
- 可以为管理方便性命名LVM对象。
高级功能
- 可以使用dm-cache目标创建混合卷。它允许一个或多个快速存储设备(如基于闪存的SSD)作为一个或多个较慢的硬盘驱动器的缓存。
- LVM是使用其他设备映射器开发的,足以避免在conf上设置devices/multipath_component_detection=1的新版设备映射器返回dm-multipath设备的单个路径。这可以防止LVM在单个路径上运行卷而不是多路径设备。
- 可以从池中提供薄逻辑卷。
RAID
- 可以建立逻辑卷以包含RAID功能,例如RAID 1、5和6。
- 整个逻辑卷或其组成部分可以在多个物理卷之间进行条带化,类似于RAID 0。
- 可以使用lvchange –raidminrecoveryrate和lvchange –raidmaxrecoveryrate限制恢复速度,以在重建包含RAID功能的逻辑卷时管理适当的I/O性能。
- 可以将RAID 1的后端设备设置为”写入优先”,这意味着在不必要的情况下,对这些设备的读取将被忽略。
CLVM
分布式锁管理器用于经纪并发LVM的元数据访问。每当任何集群节点需要更改LVM元数据时,它都必须通过其本地的clvmd保护权限。在群集中,它与许多clvmd守护进程保持持续联系,并可以传达希望在特定对象集上获得锁定的愿望。
高可用性
此外,LVM在共享存储集群中运行,其中保存物理卷的磁盘在多个主机系统之间共享,但可能需要额外的守护程序来通过锁定进行元数据访问。
HA-LVM
群集感知性交由提供高可用性方面的应用程序处理。对于LVM的一部分,HA-LVM可以使用CLVM作为锁定机制,也可以继续使用默认的文件锁定机制,并通过限制访问包含正确标签的LVM对象来减少“冲突”。由于这种简单的解决方案忽略了内容而不是缓解了它,因此不允许并发访问,因此HA-LVM仅适用于主动-备份配置。
Lvmlockd
截至2017年,LVM的一个稳定组件被设计为通过使LVM对象锁定对整个LVM是透明的来取代clvmd,而不依赖于分布式锁管理器。在2016年,它得到了广泛的开发。
上述机制仅解决了LVM存储访问的问题。选择放置在逻辑卷之上的文件系统必须通过自身支持集群或仅由单个集群节点挂载。