2.3. LVM 逻辑卷

在 LVM 中是将卷组分为逻辑卷。以下小节论述了逻辑卷的不同类型。

2.3.1. 线性卷

线性卷是将一个或者多个物理卷整合为一个逻辑卷。例如:如果有两个 60GB 的磁盘,则可以创建一个 120GB 的逻辑卷。其物理存储是连续的。
创建线性卷可按顺序为逻辑卷的区域分配物理扩展范围。例如:如 图 2.2 “扩展映射” 所述,逻辑扩展 1 到 99 可与一个物理卷对映,逻辑扩展 99 到 198 可与第二个物理卷对映。从应用程序的角度来看,就是有一个大小为 198 个扩展的设备。
扩展映射

图 2.2. 扩展映射

组成逻辑卷的物理卷不一定要一样大小。图 2.3 “物理卷大小不同的线性卷” 演示了物理扩展为 4MB 的卷组 VG1。这个卷组包括两个物理卷,分别名为 PV1PV2。该物理卷可分为 4MB 的单元,因为这是扩展的大小。在这个示例中,PV1 大小为 200 个扩展(800MB),PV2 大小为 100 个扩展(400MB)。您可以创建大小在 1 到 300 个扩展(4MB 到 1200MB)之间的任意线性卷。在这个示例中,该线性卷名为 LV1,大小为 300 个扩展。
物理卷大小不同的线性卷

图 2.3. 物理卷大小不同的线性卷

可以使用物理扩展池创建一个以上任意大小的线性逻辑卷。图 2.4 “多逻辑卷” 演示与 图 2.3 “物理卷大小不同的线性卷” 中相同的卷组,但在这个示例中是使用卷组创建两个逻辑卷:即大小为 250 个扩展(1000MB)的 LV1 和大小为 50 个扩展(200MB)的 LV2
多逻辑卷

图 2.4. 多逻辑卷

2.3.2. 条带逻辑卷

向 LVM 逻辑卷写入数据时,文件系统在基本物理卷之间部署数据。可以通过创建条带逻辑卷控制数据向物理卷写入的方法。对于大批量的读取和写入,这样可以提高数据输入/输出的效率。
条带化数据可通过以 round-robin 模式向预定数目的物理卷写入数据来提高性能。使用条带模式,I/O 可以平行执行。在有些情况下,这样可以使条带中每个附加的物理卷获得类似线性卷的性能。
以下示例显示数据在三个物理卷之间进行条状分布。在这个图表中:
  • 在第一个物理卷中写入第一个数据条带
  • 在第二个物理卷中写入第二个数据条带
  • 在第三个物理卷中写入第三个数据条带
  • 在第四个物理卷中写入第四个数据条带
在条状逻辑卷中,条带大小不能超过扩展的大小。
跨三个物理卷的条带数据

图 2.5. 跨三个物理卷的条带数据

条带逻辑卷可通过在第一组设备的末尾连接另一组设备来扩大容量。要扩展条带逻辑卷,就必须在基本物理卷中有足够的可用空间组成卷组来支持条带卷。例如:如果有一个双向条带使用了整个卷组,那么向卷组中添加单一物理卷不会允许您扩展该条带。反之,必须在卷组中添加至少两个物理卷。有关扩展条带卷的详情请参考 第 4.4.15.1 节 “扩展条带卷”

2.3.3. RAID 逻辑卷

LVM 支持 RAID1/4/5/6/10。LVM RAID 卷有以下特征:
  • 通过利用 MD 内核驱动程序的 LVM 创建和管理 RAID 逻辑卷。
  • RAID1 映象可临时从该阵列中分离,且稍后可合并回该阵列中。
  • LVM RAID 卷支持快照。
有关创建 RAID 逻辑卷的详情,请查看 第 4.4.3 节 “RAID 逻辑卷”

注意

集群无法识别 RAID 逻辑卷。由于 RAID 逻辑卷可单独在机器中创建并激活,不可以同时在一台以上机器中激活。如果需要非互斥镜像卷,则必须使用 mirror 片段类型创建卷,如 第 4.4.4 节 “创建镜像卷” 所示。

2.3.4. 精简配置逻辑卷(精简卷)

逻辑卷可进行简化配置。这样可创建超出可用扩展的逻辑卷。使用精简配置,可以管理剩余空间的存储池,也称精简池。需要时应用程序可将精简池分配给任意数量的设备。然后在之后应用程序实际写入该逻辑卷时创建设备,将其绑定到精简池中。需要时可动态扩展该精简池,以便进行有效的存储空间分配。

注意

集群中的节点间不支持精简卷。该精简池及其所有精简卷只能以独占方式在一个集群节点中激活。
存储管理员可使用精简配置过度使用物理存储,一般是为避免购买额外的存储。例如:如果十位用户每人为其应用程序申请 100GB 文件系统,则存储管理员可为每位用户创建看似为 100GB 的文件系统,支持该文件系统的实际存储小于 100GB,且只在需要时使用。使用精简配置时,关键是存储管理员要监控存储池,并在其开始变满时开始添加更多的容量。
为确定所有可用空间均可以使用,LVM 支持数据放弃。这样可重复使用之前被已放弃文件或其他块范围使用的空间。
有关创建精简卷的详情,请查看 第 4.4.5 节 “创建精简配置逻辑卷”
精简卷支持写时复制快照逻辑卷的新实施,该实施可允许虚拟设备共享精简池中的同一数据。有关精简快照卷的详情,请查看 第 2.3.6 节 “精简配置快照卷”

2.3.5. 快照卷

LVM 的快照功能为您提供了在某个特定时刻,在不导致服务中断的情况下创建设备的虚拟映射功能。在提取快照后,当对原始设备进行修改时,快照功能可生成有变化的数据区域的副本,以便重建该设备的状态。

注意

LVM 支持精简配置的快照。有关精简配置的快照卷的详情,请查看 第 2.3.6 节 “精简配置快照卷”

注意

在集群中不支持跨节点的 LVM 快照。不能在集群的卷组中创建快照卷。
因为快照只复制在生成快照之后修改的数据区域,扩展特性需要的存储空间较小。例如,对于很少更新的原始数据,原始容量的 3-5% 就足以进行快照维护。

注意

文件系统的快照副本是虚拟副本,不是文件系统的真实介质备份。快照不能替代备份过程。
预留用于保存原始卷更改的空间大小取决于快照的大小。例如:如果要生成一个快照,且要完全覆盖原始卷,则快照应该至少与原始卷同样大小方可保存更改。需要根据预期的更改程度设置快照大小。例如:对于一个多数用于读取卷的短期快照,比如 /usr,它所需空间要比经常会有写入操作的卷,比如 /home 的长期快照要小。
如果快照已满,则快照就会变得无效,因为它已经无法跟踪原始卷的更改。您应该常规监控快照的大小。快照是可以重新设定大小的,因此如果您有额外的存储容量,您可以增大快照卷容量以避免漏掉快照。相反,如果您发现快照卷超过您的需要,您可以减小它来为其它逻辑卷最大限度释放空间。
创建文件系统的快照时,仍可对原始系统有完全的读和写访问。如果修改了快照中的一个块,就会标记出那个块,并再不从原始卷中复制这个块。
快照功能有几个用途:
  • 最典型的就是,当需要在不影响那个不断更新数据系统的情况下在逻辑卷中执行备份,可以提取一个快照。
  • 可以在快照文件系统中执行 fsck 命令检查文件系统的完整性,并决定原始文件系统是否需要修复。
  • 因为快照是可读/写的,因此可以根据产品数据测试应用程序,方法是提取一个快照并根据快照运行测试而不接触真实数据。
  • 可创建用于 Red Hat Virtualization 的LVM 卷。LVM 快照可用于创建虚拟机映象的快照。这些快照可提供修改现有虚拟机或使用最小附加存储创建新虚拟机的简便方式。有关使用 Red Hat Virtualization 创建基于 LVM 存储池的详情,请查看《虚拟化管理指南》
有关创建和修改快照卷的详情请参考 第 4.4.6 节 “创建快照卷”
可使用 lvconvert 命令的 --merge 选项将快照合并到其原始卷中。如果丢失数据或文件,或需要将系统恢复到之前的状态,则可使用这个功能执行系统回退。合并快照卷后,得到的逻辑卷会使用原始卷的名称,次要版本号及合并快照的 UUID 都会被删除。有关使用此选项的详情,请查看 第 4.4.8 节 “合并快照卷”

2.3.6. 精简配置快照卷

Red Hat Enterprise Linux 提供精简配置的快照卷支持。精简快照卷可将很多虚拟设备储存在同一数据卷中。这样可简化管理,并允许在快照卷之间共享数据。
所有 LVM 快照卷以及所有精简快照卷均无法在集群中跨节点支持。该快照卷必须只能以独占方式在一个集群节点中激活。
精简快照卷有以下特点:
  • 精简快照卷可在有多个来自同一原始卷的快照时减少磁盘用量。
  • 如果同一源卷有多个快照卷,那么写入源卷则会造成一个 COW 操作保留数据。增加源卷的快照数应该不会造成主要速度降低。
  • 精简快照卷可作为另一个快照的逻辑卷源使用。这样就允许递归快照的任意深度(即快照的快照的快照......)。
  • 精简逻辑卷的快照还可以创建精简逻辑卷。这样在需要 COW 操作前,或者快照本身写入前不会消耗数据空间。
  • 精简快照卷不需要使用其源卷激活,因此用户只要激活源卷,则可以有很多未激活的快照卷。
  • 从精简配置的快照卷中删除源卷时,源卷的每个快照都会成为独立的精简配置卷。就是说不会将快照与其源卷合并,而是可以选择删除源卷,然后创建一个新的精简配置快照,使用那个独立卷作为源卷生成新的快照。
虽然使用精简快照卷有很多优点,但在一些情况下使用老的 LVM 快照卷功能可能更适合您的需要:
  • 无法更改精简池的区块大小。如果精简池有一个大区块(例如:1MB),且您需要一个短时快照,而那么大的区块无法有效使用,则可能会选择使用老的快照功能。
  • 无法限制精简快照卷的大小。必要时,快照会使用精简池中的所有空间。这样不太适合您的需要。
通常,在决定使用哪种快照格式时应考虑您网站的具体要求。
有关创建精简快照卷的详情,请查看 第 4.4.7 节 “创建精简配置快照卷”

2.3.7. 缓存卷

从 Red Hat Enterprise Linux 7.1 发行本开始,LVM 支持使用快速块设备(比如 SSD 驱动器)作为较大慢速块设备的回写或写入缓存。用户可创建缓存逻辑卷以改进其现有逻辑卷的性能,或创建由一个小且快速设备与一个大慢速设备组成的新缓存逻辑卷。
有关 LVM 缓存的详情,包括卷创建示例,请查看 lvmcache(7) man page。