当发现lv分配了过多内存,想要回收一部分,可以进行调整,这里需要区分磁盘类型,xfs格式lv调整大小会导致数据丢失,因此需要进行备份还原操作,ext4就不需要。

本文介绍xfs格式下操作,ext4可参考:LVM——缩小LVM分区(efx4)_lvm缩小_Rocket MAN的博客-CSDN博客

确认文件格式

查看当前文件系统格式,确认是xfs

1
df -hT

备份原数据

备份数据可以用最普通的cp或者scp命令进行文件备份,这里不多做介绍,也可以使用xfsdump进行备份。

使用xfsdump有以下注意点:

  1. xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
  2. xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
  3. xfsdump 只能备份 XFS 文件系统
  4. xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
  5. xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的

xfsdump

1
yum -y install xfsdump
1
2
xfsdump -f /tmp/data_dump /data
#过程中需要输入两次label,完成后会在/tmp目录下生成data_dump文件

卸载分区

1
sudo umount /data

减小分区大小

可以用lvreduce直接减少大小也可以用lvremove和lvcreate重建lv,反正原数据都是会丢失的~~

lvreduce调整大小

减少100G

1
lvreduce -L -100G /dev/sylink/data

减少到100G

1
lvreduce -L 100G /dev/sylink/data

查看vgdisplay空余容量也随之增大

1
vgdisplay

lv移除重建

1
lvremove /dev/sylink/data
1
lvcreate – name data -L 100GB sylink

使用 XFS 文件系统格式化分区

1
mkfs.xfs -f /dev/sylink/data

重新挂载 / data

1
mount /dev/mapper/sylink-data /data

重新挂载后,/data 下是空数据,需要还原刚备份的数据

恢复数据

1
xfsrestore -f /tmp/data_dump /data

参考:
LVM——linux缩小逻辑卷(xfs)_lvm xfs 缩小_Rocket MAN的博客-CSDN博客](https://blog.csdn.net/qq_41566366/article/details/124446706)