场景

        服务提供商提供的Linux服务器自带CentOS7.6系统,存在空闲的逻辑卷(400G),准备删除空闲的逻辑卷,扩展根分区对应的逻辑卷

前言

        传统的分区,例如/dev/sda1等使用固定大小的分区,重新调整大小十分困难,并且会影响到已有的数据。逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

例如

[root@web ~]# df -Th

文件系统                         类型      容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root          xfs        50G  4.2G   46G    9% /

说明:根文件系统就挂载在逻辑卷/dev/mapper/centos-root

查看当前有哪些逻辑卷组

[root@web ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                6
  Open LV               6
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               498.80 GiB
  PE Size               4.00 MiB
  Total PE              127693
  Alloc PE / Size       104448 / 408.00 GiB
  Free  PE / Size       23245 / 90.80 GiB
  VG UUID               NJ00md-D6JB-WGg3-PDZ2-NsE3-fBzK-Y3IjqA

任务说明

当前环境中存在多个空闲的逻辑卷提供给docker使用,实际上并没有在项目上使用,只是安装系统默认分配的,因此全部删除,并且扩容到根分区的逻辑卷/dev/mapper/centos-root

[root@web ~]# df -Th
文件系统                         类型      容量  已用  可用 已用% 挂载点
devtmpfs                         devtmpfs  7.7G     0  7.7G    0% /dev
tmpfs                            tmpfs     7.7G     0  7.7G    0% /dev/shm
tmpfs                            tmpfs     7.7G   23M  7.7G    1% /run
tmpfs                            tmpfs     7.7G     0  7.7G    0% /sys/fs/cgroup
/dev/mapper/centos-root          xfs        50G  4.2G   46G    9% /
/dev/vda2                        xfs      1014M  123M  892M   13% /boot
/dev/vda1                        vfat      200M  9.9M  190M    5% /boot/efi
/dev/mapper/centos-cce_log_lv    xfs        50G   33M   50G    1% /var/paas/log
/dev/mapper/centos-cce_run_lv    xfs        50G   33M   50G    1% /var/paas/run
/dev/mapper/centos-cce_data_lv   xfs        50G   33M   50G    1% /var/paas/data
/dev/mapper/centos-cce_docker_lv xfs       200G   33M  200G    1% /var/lib/docker
tmpfs                            tmpfs     1.6G     0  1.6G    0% /run/user/0

步骤一:卸载逻辑卷的挂载(切莫在如下的路径下操作,最好回到根目录)

[root@web ~]# umount /var/paas/log/
[root@web ~]# umount /var/paas/run/
[root@web ~]# umount /var/paas/data/
[root@web ~]# umount /var/lib/docker/

步骤二:删除逻辑卷

[root@web ~]# lvremove /dev/mapper/centos-cce_log_lv 
Do you really want to remove active logical volume centos/cce_log_lv? [y/n]: y
  Logical volume "cce_log_lv" successfully removed
[root@web ~]# lvremove /dev/mapper/centos-cce_run_lv 
Do you really want to remove active logical volume centos/cce_run_lv? [y/n]: y
  Logical volume "cce_run_lv" successfully removed
[root@web ~]# lvremove /dev/mapper/centos-cce_data_lv 
Do you really want to remove active logical volume centos/cce_data_lv? [y/n]: y
  Logical volume "cce_data_lv" successfully removed
[root@web ~]# lvremove /dev/mapper/centos-cce_docker_lv 
Do you really want to remove active logical volume centos/cce_docker_lv? [y/n]: y
  Logical volume "cce_docker_lv" successfully removed

步骤三:删除上述的逻辑卷,逻辑卷组有350G的空闲空间,动态调整根分区对应的逻辑卷空间

[root@gb paas]# lvextend  -L +350G /dev/mapper/centos-root 
  Size of logical volume centos/root changed from 250.00 GiB (64000 extents) to 400.00 GiB (102400 exten
  Logical volume centos/root successfully resized.

步骤四:同步根文件系统

[root@gb paas]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=20, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=65536000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 65536000 to 104857600


步骤五:修改/etc/fstab,删除无效的挂载点

/dev/mapper/centos-cce_data_lv /var/paas/data   xfs    defaults        0 0
/dev/mapper/centos-cce_docker_lv /var/lib/docker        xfs    defaults        0 0
/dev/mapper/centos-cce_log_lv /var/paas/log     xfs    defaults        0 0
/dev/mapper/centos-cce_run_lv /var/paas/run     xfs    defaults        0 0

最终的显示效果,这个时候根分区的大小由原来的50G,扩展到400G

[root@gb paas]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  7.7G     0  7.7G   0% /dev
tmpfs                   tmpfs     7.7G     0  7.7G   0% /dev/shm
tmpfs                   tmpfs     7.7G   23M  7.7G   1% /run
tmpfs                   tmpfs     7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       400G  1.3G  399G   1% /
/dev/vda2               xfs      1014M  123M  892M  13% /boot
/dev/vda1               vfat      200M  9.9M  190M   5% /boot/efi
tmpfs                   tmpfs     1.6G     0  1.6G   0% /run/user/0