03.Linux下目录动态扩容,以分配home的部分空间给root为例

简介

本篇文章将介绍Linux下分配home目录的部分空间给root目录。
大致思路:卸载home,解除其磁盘容量占用->扩容root,增加其磁盘空间->重建恢复home
操作演示环境为CentOS系统,其他操作系统例如openEuler也可作为参考。

相关文章参考:
01.Linux下目录扩容,以增加root目录的磁盘容量分配为例

操作系统版本如下

名称 版本
CentOS 7.6+

1. 分配详情

执行 lsblk 命令,可以看到
centos-home 分配了较多存储空间,而 root 只有50G
在没有额外磁盘空间可以继续分配的情况下(如果有可参考: 01.Linux下目录扩容,以增加root目录的磁盘容量分配为例
则需要把home的部分空间腾出,分配给root使用(实际应用场景中,root使用量毕竟较大)

[root@localhost harbor]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  66.7M  0 rom  /mnt
vda             252:0    0     1T  0 disk
├─vda1          252:1    0     1G  0 part /boot
└─vda2          252:2    0  1023G  0 part
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0  31.5G  0 lvm  [SWAP]
  └─centos-home 253:2    0 941.5G  0 lvm  /home
[root@localhost harbor]#

2. 卸载home

2.1 终止进程

终止 /home 文件系统下的所有进程(注意:不要在/home目录下执行 fuser -km home

执行报错:-bash: fuser: 未找到命令
问题分析:最小化安装centos的时候,没有fuser这个命令,导致无法fence
解决方法:yum install psmisc

[root@localhost portainer]# cd ~
[root@localhost ~]# fuser -km home

2.2 备份/home

[root@localhost ~]# tar cvf /run/home.tar /home
tar: 从成员名中删除开头的“/”
/home/
/home/harbor/
/home/harbor/harbor.v2.8.2.tar.gz

2.3 卸载/home

[root@localhost ~]# umount /home
[root@localhost ~]#

2.4 删除/home所在的逻辑卷lv

提示:Logical volume centos/home contains a filesystem in use
解决:重新挂载 mount /home,执行2.1终止进程(或者其他方法终止/home文件系统下的进程)

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

3. 扩容root

3.1 扩大/root所在的逻辑卷lv

home 卸载后空出950G左右
这里分配出800G给root

[root@localhost ~]# lvextend -L +800G /dev/mapper/centos-root
  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 850.00 GiB (217600 extents).
  Logical volume centos/root successfully resized.
[root@localhost ~]#

3.2 扩大/root文件系统

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, 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 13107200 to 222822400
[root@localhost ~]#

3.3 查看扩容是否成功

可以看到 centos-root 已经成功扩容到1023G

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 66.7M  0 rom  /mnt
vda             252:0    0    1T  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0 1023G  0 part
  ├─centos-root 253:0    0  850G  0 lvm  /
  └─centos-swap 253:1    0 31.5G  0 lvm  [SWAP]
[root@localhost ~]#

4. 重建/home

4.1 创建/home所在的逻辑卷lv

[root@localhost ~]# lvcreate -L 141G -n /dev/mapper/centos-home
  Logical volume "home" created.
[root@localhost ~]#

4.2 创建/home文件系统

[root@localhost ~]# mkfs.xfs  /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=9240576 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=36962304, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=18048, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]#

4.3 将新建的文件系统挂载到/home目录下

[root@localhost ~]# mount /dev/mapper/centos-home
[root@localhost ~]#

4.4 恢复/home内容

记得恢复 home 下停掉的程序

[root@localhost ~]# tar xvf /run/home.tar -C /
home/
home/harbor/
home/harbor/harbor.v2.8.2.tar.gz

4.5 删除备份

[root@localhost ~]# rm -rf /run/home.tar
[root@localhost ~]#

相关文章参考:
01.Linux下目录扩容,以增加root目录的磁盘容量分配为例

猜你喜欢

转载自blog.csdn.net/ChennyWJS/article/details/132015476