4.3. 重新调整逻辑卷大小
使用逻辑卷管理器(LVM),您可以根据需要重新调整逻辑卷(LV)大小,而不影响其上存储的数据。
4.3.1. 扩展线性逻辑卷 复制链接链接已复制到粘贴板!
您可以使用 lvextend
命令扩展线性(厚)LV 及其快照。
先决条件
- 管理访问权限.
- 您要扩展的 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 LogicalVolumeName 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 替换为精简卷的名称。
验证
验证精简 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
指标反映了用于存储元数据的空间d 百分比,这对于在精简池中管理映射非常重要。
监控这些指标对于确保有效的存储管理和避免容量问题至关重要。
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 替换为精简池的名称。
-
在您选择的编辑器中打开
/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. 扩展 VDO 池 复制链接链接已复制到粘贴板!
监控并定期扩展 VDO 池的容量以防止耗尽空间非常重要。
逻辑卷管理器(LVM)提供了选项,来根据需要手动扩展 VDO 池容量。另外,您可以启用监控并自动化 VDO 池的扩展。
4.3.4.1. 手动扩展 VDO 池 复制链接链接已复制到粘贴板!
使用 lvextend
命令扩展 VDO 池。
先决条件
- 管理访问权限.
流程
显示当前 VDO 使用情况:
lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName
# lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName LV VG LSize Data% VDOPoolName VolumeGroupName 5.00g 60.03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 VolumeGroupName 替换为卷组的名称。将 VDOPoolName 替换为 VDO 池的名称。
扩展 VDO 池:
lvextend --size PhysicalSize VolumeGroupName/VDOPoolName
# lvextend --size PhysicalSize VolumeGroupName/VDOPoolName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用新的物理大小替换 PhysicalSize。将 VolumeGroupName 替换为卷组的名称。将 VDOPoolName 替换为 VDO 池的名称。
验证
验证 VDO 池是否已扩展:
lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName
# lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName LV VG LSize Data% VDOPoolName VolumeGroupName 10.00g 30.02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.4.2. 自动扩展 VDO 池 复制链接链接已复制到粘贴板!
您可以通过启用监控并设置 vdo_pool_autoextend_threshold
和 vdo_pool_autoextend_percent
参数来自动化 Virtual Data Optimizer (VDO)池的扩展。
先决条件
- 管理访问权限.
流程
检查 VDO 池是否已被监控:
lvs -o name,seg_monitor VolumeGroupName/VDOPoolName
# lvs -o name,seg_monitor VolumeGroupName/VDOPoolName LV VG Monitor VDOPoolName VolumeGroupName not monitored
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 VolumeGroupName 替换为卷组的名称。将 VDOPoolName 替换为 VDO 池的名称。
使用
dmeventd
守护进程启用 VDO 池监控:lvchange --monitor y VolumeGroupName/VDOPoolName
# lvchange --monitor y VolumeGroupName/VDOPoolName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 VolumeGroupName 替换为卷组的名称。将 VDOPoolName 替换为 VDO 池的名称。
-
在您选择的编辑器中打开
/etc/lvm/lvm.conf
文件。 取消
vdo_pool_autoextend_percent
和vdo_pool_autoextend_threshold
行的注释,并将每个参数设置为所需的值:vdo_pool_autoextend_threshold = 70 vdo_pool_autoextend_percent = 20
vdo_pool_autoextend_threshold = 70 vdo_pool_autoextend_percent = 20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vdo_pool_autoextend_threshold
决定 LVM 开始自动扩展 VDO 池时的百分比。例如,将其设置为 70 表示 LVM 尝试在达到 70% 容量时扩展 VDO 池。vdo_pool_autoextend_percent
指定在达到阈值时 VDO 池应扩展的百分比。例如,将其设置为 20 表示 VDO 池将增加其当前大小的 20%。- 保存更改并退出编辑器。
重启
lvm2-monitor
:systemctl restart lvm2-monitor
# systemctl restart lvm2-monitor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.5. 缩小逻辑卷 复制链接链接已复制到粘贴板!
当 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-LogicalVolumeName /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 /dev/VolumeGroupName/LogicalVolumeName /MountPoint
# mount /dev/VolumeGroupName/LogicalVolumeName /MountPoint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。将 /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