4.3. 重新调整逻辑卷大小
使用逻辑卷管理器(LVM),您可以根据需要重新定义逻辑卷(LV)大小,而不影响存储的数据。
4.3.1. 扩展线性逻辑卷 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展线性(厚)LV 及其快照。
先决条件
- 管理访问权限.
流程
确定您的卷组有足够的空间来扩展 LV:
lvs -o lv_name,lv_size,vg_name,vg_size,vg_free
# lvs -o lv_name,lv_size,vg_name,vg_size,vg_free LV LSize VG VSize VFree LogicalVolumeName 1.49g VolumeGroupName 30.75g 29.11g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 扩展线性 LV 并调整文件系统大小:
lvextend --size +AdditionalSize --resizefs VolumeGroupName/LogicalVolumeName
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用添加到 LV 的空间替换 AdditionalSize。默认测量单位是 MB,但您可以指定其他单元。将 VolumeGroupName 替换为卷组的名称。使用精简卷的名称替换 LogicalVolumeName。
验证
验证线性 LV 是否已扩展:
lvs -o lv_name,lv_size
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 6.49g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.2. 扩展精简逻辑卷 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展精简逻辑卷(LV)。
先决条件
- 管理访问权限.
流程
确定精简池有足够的空间供您计划添加的数据:
lvs -o lv_name,lv_size,data_percent
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 1.10g 4.88
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 扩展 thin LV 并调整文件系统大小:
lvextend --size +AdditionalSize --resizefs VolumeGroupName/ThinVolumeName
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/ThinVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用添加到 LV 的空间替换 AdditionalSize。默认测量单位是 MB,但您可以指定其他单元。将 VolumeGroupName 替换为卷组的名称。将 ThinVolumeName 替换为精简卷的名称。
验证
验证 thin LV 是否已扩展:
lvs -o lv_name,lv_size,data_percent
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 6.10g 0.43
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3. 扩展精简池 复制链接链接已复制到粘贴板!
精简逻辑卷的虚拟大小可能会超过精简池的物理容量,从而导致过度配置。要防止空间不足,您必须监控并定期扩展精简池的容量。
data_percent
指标指示精简池当前使用的已分配数据空间的百分比。metadata_percent
指标反映了用于存储元数据的空间百分比,这对在精简池中管理映射非常重要。
监控这些指标对于确保有效的存储管理和避免容量问题至关重要。
LVM 提供了根据需要手动扩展数据或元数据容量的选项。另外,您可以启用监控并自动扩展精简池。
4.3.3.1. 手动扩展精简池 复制链接链接已复制到粘贴板!
逻辑卷管理器(LVM)提供手动扩展数据段、元数据段或精简池的选项。
4.3.3.1.1. 扩展精简池 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展精简池。
先决条件
- 管理访问权限.
流程
显示使用的数据和元数据空间:
lvs -o lv_name,seg_type,data_percent,metadata_percent
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 97.66 26.86 ThinVolumeName thin 48.80
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 扩展精简池:
lvextend -L Size VolumeGroupName/ThinPoolName
# lvextend -L Size VolumeGroupName/ThinPoolName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您的精简池的新大小替换 Size。将 VolumeGroupName 替换为卷组的名称。将 ThinPoolName 替换为精简池的名称。
数据大小将扩展。如果需要,元数据大小将扩展。
验证
验证精简池是否已扩展:
lvs -o lv_name,seg_type,data_percent,metadata_percent
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 24.41 16.93 ThinVolumeName thin 24.41
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3.1.2. 扩展精简池数据片段 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展 data_percent
段。
先决条件
- 管理访问权限.
流程
显示
data_percent
片段:lvs -o lv_name,seg_type,data_percent
# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 93.87
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 扩展
data_percent
片段:lvextend -L Size VolumeGroupName/ThinPoolName_tdata
# lvextend -L Size VolumeGroupName/ThinPoolName_tdata
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Size 替换为您的数据片段的大小。将 VolumeGroupName 替换为卷组的名称。将 ThinPoolName 替换为精简池的名称。
验证
验证
data_percent
片段是否已扩展:lvs -o lv_name,seg_type,data_percent
# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 40.23
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3.1.3. 扩展精简池元数据片段 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展 metadata_percent
段。
先决条件
- 管理访问权限.
流程
显示
metadata_percent
片段:lvs -o lv_name,seg_type,metadata_percent
# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 75.00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 扩展
metadata_percent
片段:lvextend -L Size VolumeGroupName/ThinPoolName_tmeta
# lvextend -L Size VolumeGroupName/ThinPoolName_tmeta
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用元数据片段的大小替换 Size。将 VolumeGroupName 替换为卷组的名称。将 ThinPoolName 替换为精简池的名称。
验证
验证
metadata_percent
片段是否已扩展:lvs -o lv_name,seg_type,metadata_percent
# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 0.19
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3.2. 自动扩展精简池 复制链接链接已复制到粘贴板!
您可以通过启用监控和设置 thin_pool_ autoextend_threshold 和
配置参数来自动扩展精简池。
thin_pool
_autoextend_percent
先决条件
- 管理访问权限.
流程
检查精简池是否已监控:
lvs -o lv_name,vg_name,seg_monitor
# lvs -o lv_name,vg_name,seg_monitor LV VG Monitor ThinPoolName VolumeGroupName not monitored
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dmeventd
守护进程启用精简池监控:lvchange --monitor y VolumeGroupName/ThinPoolName
# lvchange --monitor y VolumeGroupName/ThinPoolName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 VolumeGroupName 替换为卷组的名称。将 ThinPoolName 替换为精简池的名称。
-
以
root
用户身份,在您选择的编辑器中打开/etc/lvm/lvm.conf
文件。 取消注释
thin_pool_autoextend_threshold
和thin_pool_autoextend_percent
行,并将每个参数设置为所需的值:thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20
thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow thin_pool_autoextend_threshold
决定 LVM 开始自动扩展精简池的百分比。例如,将其设置为 70 表示 LVM 会在达到 70% 容量时尝试扩展精简池。thin_pool_autoextend_percent
根据精简池达到阈值时应扩展的百分比来指定。例如,将其设置为 20 表示精简池将增加其当前大小的 20%。- 保存更改并退出编辑器。
重启
lvm2-monitor
:systemctl restart lvm2-monitor
# systemctl restart lvm2-monitor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.4. 缩小逻辑卷 复制链接链接已复制到粘贴板!
当 LV 的大小缩小时,释放的逻辑扩展将返回到卷组,然后可供其他 LV 使用。
存储在减少的区域中的数据会丢失。在继续操作前,始终备份数据并调整文件系统的大小。
先决条件
- 管理访问权限.
流程
列出逻辑卷及其卷组:
lvs -o lv_name,vg_name,lv_size
# lvs -o lv_name,vg_name,lv_size LV VG LSize LogicalVolumeName VolumeGroupName 6.49g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查挂载逻辑卷的位置:
findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
# findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName SOURCE TARGET /dev/mapper/VolumeGroupName-NewLogicalVolumeName /MountPoint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。
卸载逻辑卷:
umount /MountPoint
# umount /MountPoint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 /MountPoint 替换为您的逻辑卷的挂载点。
检查并修复所有文件系统错误:
e2fsck -f /dev/VolumeGroupName/LogicalVolumeName
# e2fsck -f /dev/VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新定义 LV 和文件系统大小:
lvreduce --size TargetSize --resizefs VolumeGroupName/LogicalVolumeName
# lvreduce --size TargetSize --resizefs VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 LV 的新大小替换 TargetSize。将 VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。
重新挂载文件系统:
mount -o remount /MountPoint
# mount -o remount /MountPoint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 /MountPoint 替换为您的文件系统的挂载点。
验证
验证文件系统的空间使用情况:
df -hT /MountPoint/
# df -hT /MountPoint/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VolumeGroupName-NewLogicalVolumeName ext4 2.9G 139K 2.7G 1% /MountPoint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 /MountPoint 替换为您的逻辑卷的挂载点。
验证 LV 的大小:
lvs -o lv_name,lv_size
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 4.00g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow