centos7-根目录空间不足-根目录文件系统转换为LVM
Contents
0.问题类型:
根目录使用率已经到达100%,并且没有任何可用空间
根目录文件系统不是LVM
需要把根目录的文件系统更改为LVM
1.添加两个硬盘

fdisk /dev/vdb
mkfs.xfs /dev/vdb1




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

3.使用xfs格式化这个新的LVM分区
[root@LNMP ~]# mkfs.xfs /dev/vg_new_root/lv0
[root@LNMP ~]# mkdir /mnt/NEW_ROOT_PARTITION #后面用

4.格式化另外一个硬盘
fdisk /dev/vdc(n p w)
mkfs.xfs /dev/vdc1
mkdir /mnt/NEW_ROOT_PARTITION-1 #后面用
5.先关机拍个快照,然后继续转移

6.关闭所有服务
[root@LNMP ~]# service --status-all
[root@LNMP ~]# chkconfig --list

目前只有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


[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"

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 。

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

12.重启测试
shutdown -r now
重启后看到已经成功挂载到LVM文件系统

原来的数据还在

资料参考,感谢大神