CENTOS-7.4_根目录空间不足_扩容_根目录转换为LVM分区

centos7-根目录空间不足-根目录文件系统转换为LVM

0.问题类型:

根目录使用率已经到达100%,并且没有任何可用空间

根目录文件系统不是LVM

需要把根目录的文件系统更改为LVM

1.添加两个硬盘

image-20230906001901889

fdisk /dev/vdb
mkfs.xfs /dev/vdb1
image-20230904211858335

image-20230904212235260

image-20230904212816699

image-20230904212911795

2.创建一个LVM分区

如果没有LVM工具,先安装LVM工具

[root@LNMP ~]# yum -y install lvm2
lvm2.x86_64 7:2.02.187-6.el7_9.5  
[root@LNMP ~]# pvcreate /dev/vdb1                  #创建PV,物理卷 PV(physical volume) :物理卷就是 LVM的基本存储逻辑块
[root@LNMP ~]# vgcreate vg_new_root /dev/vdb1      #创建VG,卷组VG(Volume Group) :一个 LVM卷组由一个或多个物理卷组成
[root@LNMP ~]# lvcreate -L 19G -n lv0 vg_new_root  #创建LV,逻辑卷 LV(logical volume) :LV 建立在VG之上,可以在 LV 之上建立文件系统
#lvcreate -n 指定新逻辑卷的名称 -L 指定 lv 大小的 SIZE(M,G) (-l:小 l 指定 LE 的数量) vgname
image-20230904222133878

3.使用xfs格式化这个新的LVM分区

[root@LNMP ~]# mkfs.xfs /dev/vg_new_root/lv0
[root@LNMP ~]# mkdir /mnt/NEW_ROOT_PARTITION #后面用
image-20230904222320905

4.格式化另外一个硬盘

fdisk /dev/vdc(n p w)
mkfs.xfs /dev/vdc1
mkdir /mnt/NEW_ROOT_PARTITION-1  #后面用

5.先关机拍个快照,然后继续转移

image-20230904224507993

6.关闭所有服务

[root@LNMP ~]# service --status-all
[root@LNMP ~]# chkconfig --list
image-20230904223215761

目前只有NGINX,MYSQL,PHP需要关闭

[root@LNMP ~]# nginx -s stop
[root@LNMP ~]# /etc/init.d/php-fpm stop
[root@LNMP ~]# /etc/init.d/mysqld stop

[root@LNMP ~]# ps aux | grep php-fpm
root      1589  0.0  0.0 112660   972 pts/0    S+   06:35   0:00 grep --color=auto php-fpm
[root@LNMP ~]# ps aux | grep mysqld
root      1619  0.0  0.0 112660   976 pts/0    S+   06:37   0:00 grep --color=auto mysqld
[root@LNMP ~]# ps aux | grep nginx
root      1621  0.0  0.0 112660   976 pts/0    S+   06:37   0:00 grep --color=auto nginx

7.重新挂载一下新分区

mount /dev/vdc1 /mnt/NEW_ROOT_PARTITION-1
mount /dev/vg_new_root/lv0 /mnt/NEW_ROOT_PARTITION
image-20230904232151763

image-20230904222908887

[root@LNMP ~]# tar -cvpf /mnt/NEW_ROOT_PARTITION-1/backup.tar.gz --one-file-system --acls --xattrs --selinux /
[root@LNMP ~]# tar -xf /mnt/NEW_ROOT_PARTITION-1/backup.tar.gz -C /mnt/NEW_ROOT_PARTITION
[root@LNMP ~]# cp -aux /dev /mnt/NEW_ROOT_PARTITION

8.现在编辑文件 /mnt/NEW_ROOT_PARTITION/etc/fstab 以反映新的根目录:

[root@LNMP ~]# blkid /dev/mapper/vg_new_root-lv0 
/dev/mapper/vg_new_root-lv0: UUID="4ca2f1f9-61a1-4de5-b38f-2e2f6548f665" TYPE="xfs" 
image-20230906003334199

9.现在需要 chroot 到新的文件系统并创建具有 raid 和 lvm 支持的 initrd:

[root@LNMP ~]# mount --bind /dev /mnt/NEW_ROOT_PARTITION/dev
[root@LNMP ~]# chroot /mnt/NEW_ROOT_PARTITION
[root@LNMP ~]# mount -t proc /proc /proc
[root@LNMP ~]# mount -t sysfs /sys /sys
[root@LNMP ~]# vgscan
[root@LNMP ~]# vgchange -ay
[root@LNMP ~]# mkinitrd -v /boot/initrd-`uname -r`.lvm.img `uname -r`
[root@LNMP ~]# umount /sys
[root@LNMP ~]# umount /proc
[root@LNMP ~]# exit
[root@LNMP ~]# mv /mnt/NEW_ROOT_PARTITION/boot/initrd-`uname -r`.lvm.img /boot

10.编辑 /boot/grub2/grub.conf 以指向新的根目录 /dev/vg_new_root/lv0 。

image-20230906003851557

11.把下图两个文件重新互换一下名字

image-20230906000027464

12.重启测试

shutdown -r now

重启后看到已经成功挂载到LVM文件系统

image-20230906001250027

原来的数据还在

image-20230906001341635

资料参考,感谢大神

https://www.onitroad.com/jc/linux/centos/stor/fs/centos-rhel-convert-an-existing-root-filesystem-to-lvm-partition.html

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注