场景
服务提供商提供的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