第 5 章 高级逻辑卷管理
LVM 包括如下高级功能:
- 快照,它们是逻辑卷的时间点副本(LV)
- 缓存,您可以使用更快的存储作为较慢存储的缓存
- 创建自定义精简池
5.1. 管理逻辑卷快照
快照是逻辑卷(LV),可在特定时间点镜像另一个 LV 的内容。
5.1.1. 了解逻辑卷快照
当您创建快照时,您要创建一个作为另一个 LV 的时点副本的新 LV。最初,快照 LV 没有包含实际数据。相反,它会在创建快照时引用原始 LV 的数据块。
定期监控快照的存储使用情况非常重要。如果快照达到其分配的空间 100%,它将无效。
必须在填写快照之前扩展快照。这可以通过使用 lvextend
命令手动完成,或者通过 /etc/lvm/lvm.conf
文件自动完成。
- thick LV 快照
- 当原始 LV 上的数据发生变化时,写时复制(CoW)系统会在进行更改前将原始数据复制到快照。这样,快照的大小仅随着更改而增长,在创建快照时存储原始卷的状态。密集快照是一种 LV,需要您预先分配某些存储空间。以后可以扩展或减少这个数量,但您应该考虑您要对原始 LV 进行的更改类型。这有助于您避免通过分配太多空间来避免资源浪费,或者需要频繁增加快照大小(如果分配过小)。
- 精简 LV 快照
精简快照是从现有精简置备的 LV 创建的 LV 类型。精简快照不需要分配额外的空间。最初,原始 LV 及其快照共享相同的数据块。当更改原始 LV 时,它会将新数据写入不同的块,而快照将继续引用原始块,并在创建快照时保留 LV 数据的点点视图。
精简配置是通过根据需要分配磁盘空间来高效地优化和管理存储。这意味着您可以创建多个 LV,而无需为每个 LV 预先分配大量存储。存储在精简池中的所有 LV 中共享,使其更有效地使用资源。精简池按需为其 LV 分配空间。
- 在 thick 和 thin LV 快照之间进行选择
- 密集或精简 LV 快照之间的选择直接由您要执行快照的 LV 类型决定。如果您的原始 LV 是厚的 LV,则您的快照将是厚的。如果您的原始 LV 是精简的,则您的快照将是精简的。
5.1.2. 管理厚逻辑卷快照
当您创建厚 LV 快照时,务必要考虑存储要求和快照的预期期限。您需要根据原始卷的预期更改来为其分配足够的存储。快照必须在预期生命周期内捕获更改,但它不能超过原始 LV 的大小。如果您期望更改率较低,则较小的快照大小为 10%-15%。对于具有高变化率的 LV,您可能需要分配 30% 或更多。
必须在填写快照之前扩展快照。如果快照达到其分配的空间 100%,则会无效。您可以使用 lvs -o lv_name,data_percent,origin
命令监控快照容量。
5.1.2.1. 创建密集逻辑卷快照
您可以使用 lvcreate
命令创建厚 LV 快照。
先决条件
- 管理访问权限.
- 您已创建了物理卷。如需更多信息,请参阅创建 LVM 物理卷
- 您已创建了一个卷组。如需更多信息,请参阅创建 LVM 卷组。
- 您已创建了逻辑卷。如需更多信息,请参阅创建 LVM 逻辑卷
流程
确定您要创建快照的 LV:
# lvs -o vg_name,lv_name,lv_size VG LV LSize VolumeGroupName LogicalVolumeName 10.00g
快照的大小不能超过 LV 的大小。
创建厚 LV 快照:
# lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName
使用您要为快照分配的大小(如 10G)替换 SnapshotSize。使用您要提供给快照逻辑卷的名称替换 SnapshotName。使用包含原始逻辑卷的卷组名称替换 VolumeGroupName。使用您要为其创建快照的逻辑卷的名称替换 LogicalVolumeName。
验证
验证快照是否已创建:
# lvs -o lv_name,origin LV Origin LogicalVolumeName SnapshotName LogicalVolumeName
其他资源
-
lvcreate (8)
和lvs (8)
手册页
5.1.2.2. 手动扩展逻辑卷快照
如果快照达到其分配的空间 100%,则会无效。必须在填写快照之前扩展快照。这可以通过使用 lvextend
命令手动完成此操作。
先决条件
- 管理访问权限.
流程
列出卷组、逻辑卷、快照的源卷、使用百分比和大小:
# lvs -o vg_name,lv_name,origin,data_percent,lv_size VG LV Origin Data% LSize VolumeGroupName LogicalVolumeName 10.00g VolumeGroupName SnapshotName LogicalVolumeName 82.00 5.00g
扩展 thick-provisioned 快照:
# lvextend --size +AdditionalSize VolumeGroupName/SnapshotName
使用添加到快照中的空间(如 +1G)替换 AdditionalSize。将 VolumeGroupName 替换为卷组的名称。使用快照的名称替换 SnapshotName。
验证
验证 LV 是否已扩展:
# lvs -o vg_name,lv_name,origin,data_percent,lv_size VG LV Origin Data% LSize VolumeGroupName LogicalVolumeName 10.00g VolumeGroupName SnapshotName LogicalVolumeName 68.33 6.00g
5.1.2.3. 自动扩展厚逻辑卷快照
如果快照达到其分配的空间 100%,则会无效。必须在填写快照之前扩展快照。这可以自动完成。
先决条件
- 管理访问权限.
流程
-
以
root
用户身份,在您选择的编辑器中打开/etc/lvm/lvm.conf
文件。 取消注释
snapshot_autoextend_threshold
和snapshot_autoextend_percent
行,并将每个参数设置为所需的值:snapshot_autoextend_threshold = 70 snapshot_autoextend_percent = 20
snapshot_autoextend_threshold
决定 LVM 开始自动扩展快照的百分比。例如,将参数设置为 70 表示 LVM 会在达到 70% 容量时尝试扩展快照。snapshot_autoextend_percent
指定快照在达到阈值时应扩展的百分比。例如,将参数设置为 20 表示快照将增加其当前大小的 20%。- 保存更改并退出编辑器。
重启
lvm2-monitor
:# systemctl restart lvm2-monitor
5.1.2.4. 合并厚逻辑卷快照
您可以将厚 LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复为创建快照时所处的状态。合并完成后,会删除快照。
如果任一活动,原始 LV 和快照 LV 之间的合并就会发布。只有在 LV 被重新激活且没有使用后,才会继续。
先决条件
- 管理访问权限.
流程
列出 LV、其卷组及其路径:
# lvs -o lv_name,vg_name,lv_path LV VG Path LogicalVolumeName VolumeGroupName /dev/VolumeGroupName/LogicalVolumeName SnapshotName VolumeGroupName /dev/VolumeGroupName/SnapshotName
检查挂载 LV 的位置:
# findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName
将 /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。将 /dev/VolumeGroupName/SnapshotName 替换为快照的路径。
卸载 LV:
# umount /LogicalVolume/MountPoint # umount /Snapshot/MountPoint
将 /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。将 /Snapshot/MountPoint 替换为您的快照的挂载点。
取消激活 LV:
# lvchange --activate n VolumeGroupName/LogicalVolumeName # lvchange --activate n VolumeGroupName/SnapshotName
将 VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName。将 SnapshotName 替换为您的快照的名称。
将 thick LV 快照合并到原始卷中:
# lvconvert --merge SnapshotName
使用快照的名称替换 SnapshotName。
激活 LV:
# lvchange --activate y VolumeGroupName/LogicalVolumeName
将 VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName。
挂载 LV:
# umount /LogicalVolume/MountPoint
将 /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。
验证
验证快照是否已删除:
# lvs -o lv_name
其他资源
-
lvconvert (8)
,lvs (8)
手册页
5.1.3. 管理精简逻辑卷快照
当存储效率是优先级时,精简置备适合。存储空间动态分配减少了初始存储成本,并最大程度提高可用存储资源的使用。在具有动态工作负载或存储随时间增长的环境中,精简配置允许灵活性。它使存储系统能够适应变化的需求,而无需大量预先分配存储空间。使用动态分配时,有可能进行过度置备,其中所有 LV 的总大小可能会超过精简池的物理大小,假设不会同时使用所有空间。
5.1.3.1. 创建精简逻辑卷快照
您可以使用 lvcreate
命令创建精简 LV 快照。在创建精简 LV 快照时,请避免指定快照大小。包含 size 参数会导致创建 thick 快照。
先决条件
- 管理访问权限.
- 您已创建了物理卷。如需更多信息,请参阅创建 LVM 物理卷
- 您已创建了一个卷组。如需更多信息,请参阅创建 LVM 卷组。
- 您已创建了逻辑卷。如需更多信息,请参阅创建 LVM 逻辑卷
流程
确定您要创建快照的 LV:
# lvs -o lv_name,vg_name,pool_lv,lv_size LV VG Pool LSize PoolName VolumeGroupName 152.00m ThinVolumeName VolumeGroupName PoolName 100.00m
创建 thin LV 快照:
# lvcreate --snapshot --name SnapshotName VolumeGroupName/ThinVolumeName
使用您要提供给快照逻辑卷的名称替换 SnapshotName。使用包含原始逻辑卷的卷组名称替换 VolumeGroupName。使用您要为其创建快照的精简逻辑卷的名称替换 ThinVolumeName。
验证
验证快照是否已创建:
# lvs -o lv_name,origin LV Origin PoolName SnapshotName ThinVolumeName ThinVolumeName
其他资源
-
lvcreate (8)
和lvs (8)
手册页
5.1.3.2. 合并精简逻辑卷快照
您可以将 thin LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复为创建快照时所处的状态。合并完成后,会删除快照。
先决条件
- 管理访问权限.
流程
列出 LV、其卷组及其路径:
# lvs -o lv_name,vg_name,lv_path LV VG Path ThinPoolName VolumeGroupName ThinSnapshotName VolumeGroupName /dev/VolumeGroupName/ThinSnapshotName ThinVolumeName VolumeGroupName /dev/VolumeGroupName/ThinVolumeName
检查原始 LV 挂载的位置:
# findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName
将 VolumeGroupName/ThinVolumeName 替换为逻辑卷的路径。
卸载 LV:
# umount /ThinLogicalVolume/MountPoint
将 /ThinLogicalVolume/MountPoint 替换为逻辑卷的挂载点。将 /ThinSnapshot/MountPoint 替换为您的快照的挂载点。
取消激活 LV:
# lvchange --activate n VolumeGroupName/ThinLogicalVolumeName
将 VolumeGroupName 替换为卷组的名称。将 ThinLogicalVolumeName 替换为逻辑卷的名称。
将 thin LV 快照合并到源中:
# lvconvert --mergethin VolumeGroupName/ThinSnapshotName
将 VolumeGroupName 替换为卷组的名称。将 ThinSnapshotName 替换为快照的名称。
挂载 LV:
# umount /ThinLogicalVolume/MountPoint
将 /ThinLogicalVolume/MountPoint 替换为逻辑卷的挂载点。
验证
验证原始 LV 是否已合并:
# lvs -o lv_name
其他资源
-
lvremove (8)
,lvs (8)
手册页