三分薄地,认真耕耘

导航

 

1、背景

公司本来有一台服务器配置如下:
操作系统:ubuntu 22.04 LTS
硬盘:一块960G SSD,做成LVM分区,文件格式EXT4,全部挂载在根目录

因业务部门要求,需要扩展根分区,要求添加三块960G硬盘,并继续作为LVM扩展到根目录。后来,因新业务要求,根分区不需要那么大,且新业务要求的文件格式为XFS,需要将两块硬盘退出挂在根分区下的LV,重新做成xfs格式的LVM分区挂载在其他目录。

LVM缩减需要卸载分区挂载,才能进行缩减,所以根分区缩减需要用live-cd或者U盘引导启动系统,然后才能缩减。其它非根目录可以直接卸载进行缩减。在缩减分区前一定要备份重要数据。如果出现问题了,可以恢复数据。

另外注意: xfs文件格式lvm不支持动态缩减,只支持动态增加,缩减需要对分区进行格式化。ext4、ext3、ext2文件格式LVM支持动态缩减增加。

2、操作步骤

2.1 查看并确认当前分区情况

查看硬盘及分区情况lsblk


root@server_2:~# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0  63.7M  1 loop /snap/core20/2434
loop1                       7:1    0  63.8M  1 loop /snap/core20/2496
loop2                       7:2    0  91.9M  1 loop /snap/lxd/29619
loop3                       7:3    0  91.9M  1 loop /snap/lxd/32662
loop4                       7:4    0  44.5M  1 loop /snap/snapd/23771
loop5                       7:5    0  44.4M  1 loop /snap/snapd/23545
sdb                         8:16   0 931.5G  0 disk 
├─sdb1                      8:17   0     1M  0 part 
├─sdb2                      8:18   0     2G  0 part /boot
└─sdb3                      8:19   0 929.5G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   3.6T  0 lvm  /
sdc                         8:32   0 894.3G  0 disk 
└─sdc1                      8:33   0 894.3G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   3.6T  0 lvm  /
sdd                         8:48   0 894.3G  0 disk 
└─sdd1                      8:49   0 894.3G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   3.6T  0 lvm  /
sde                         8:64   0 894.3G  0 disk
  └─ubuntu--vg-ubuntu--lv 253:0    0   3.6T  0 lvm  /

可以看到分区/dev/sdb3、/dev/sdc1、/dev/sdd1、/dev/sde已经添加到/dev/ubuntu--vg/ubuntu--lv逻辑卷中。

查看lv情况lvs


root@server2:~# lvs
  LV        VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ubuntu-lv ubuntu-vg -wi-ao---- <3.6t 

查看lv情况vgs


root@server2:~# vgs
  VG        #PV #LV #SN Attr   VSize VFree  
  ubuntu-vg   2   1   0 wz--n- 3.6t <23.76g

查看pv情况pvs


  PV         VG        Fmt  Attr PSize    PFree  
  /dev/sdb3  ubuntu-vg lvm2 a--  <929.51g      0 
  /dev/sdc1  ubuntu-vg lvm2 a--   894.25g      0
  /dev/sdd1  ubuntu-vg lvm2 a--   894.25g      0
  /dev/sde   ubuntu-vg lvm2 a--   894.25g <23.76

分区/dev/sdb3、/dev/sdc1、/dev/sdd1和/dev/sde已经作为PV添加到ubuntu-vg中。

2.2、使用U盘引导进入无盘系统

重启服务器,进入系统引导顺序选择界面

选择U盘启动

我自己的引导U盘是用ventoy做的,这里根据自己情况选择, 因为自己在ubuntu-22.04-live-server镜像引导后未找到try ubuntu选项(不安装ubuntu系统,只是在内存加载使用)。所以使用ubuntu-22.04-desktop镜像。

选择【Boot in normal mode】

选择【* Try or Install Ubuntu】

选择【Try Ubuntu】

进入系统后,打开Terminal终端,然后为临时系统root账号设置密码。sudo passwd root,然后根据提示输入两次密码

切换到root账号

查看存储信息,发现使用的根目录挂载分区不是/dev/ubuntu--vg/ubuntu--lv,是/cow,说明已经可以调整原来系统根目录。

2.3、缩减LVM逻辑卷lv

再次查看并确认lvm相关信息

2.4 缩减逻辑卷

缩减前需要激活需要缩减的逻辑卷

lvchange -ay /dev/ubuntu-vg/ubuntu-lv

需要缩减/dev/ubuntu-vg/ubuntu-lv,/dev/sdd和/dev/sdc1两个PV显示的Psize均为894.25g。

如果要将/dev/sdd和/dev/sdc1两个PV缩减出来的话,需要将ubuntu-lv至少缩减1788.5G。为了保险起见缩减ubuntu-lv至1800G

缩减前需要使用e2fsck对ubuntu-lv逻辑卷进行检测。

检测完毕后,首先重置/dev/ubuntu-vg/ubuntu-lv文件系统的大小至1800G,命令如下:

resize2fs /dev/ubuntu-vg/ubuntu-lv 1800G

注意:

  • 对于ext4、ext3、ext2使用e2fsck对文件系统进行调整(增大和缩小都支持)。
  • xfs文件系统的调整命令是xfs_growfs(只支持增大)

文件系统调整后,调整/dev/ubuntu-vg/ubuntu-lv逻辑卷

lvreduce -L 1800G -f -r /dev/ubuntu-vg/ubuntu-lv

lv缩减时,会提示数据可能损坏, 输入y确认

2.5 将pv从VG中剔除

再次查看PV的使用情况,命令

pvs -o+pv_used

发现/dev/sdc1和/dev/sdd两个PV的USED都为0(不为0时,无法从vg中剔除),将他们都从vg中剔除。命令:

vgreduce /dev/sdd
vgreduce /dev/sdc1

查看pv信息,发现/dev/sdc1和/dev/sdd两个PV都没有加入到ubuntu-vg中。但是两块分区是属于PV类型,有文件系统签名,下面清除文件系统签名

2.6 清除文件系统签名

每个磁盘和分区上都有某种签名和元数据!魔术字符串。你可以使用wipefs命令查看分区表签名1元数据/术字符串。wipes命令可以擦除文件系统, RAIDQ 或分区表签名/元数据。

清除文件系统签名

wipefs --all /dev/sdc1
wipefs --all /dev/sdd

再次查看pv信息,发现pv中已经没有/dev/sdc1和/dev/sdd


root@ip2:~# pvs
  PV         VG        Fmt  Attr PSize    PFree  
  /dev/sdb3  ubuntu-vg lvm2 a--  <929.51g      0 
  /dev/sdc1  ubuntu-vg lvm2 a--   894.25g <23.76g


重启系统,验证系统正常。

至此,ubuntu-22.04系统lvm根目录缩减完成。

posted on 2025-04-14 15:39  平复心态  阅读(264)  评论(0)    收藏  举报