问题描述: 根目录空间占用率 100%

    CentOS7上lvm分区调整 - 图1

    首先用传统 resize2fs 方式调整分区:
    resize2fs -p /dev/mapper/centos-home 50G
    resize2fs 1.42.9 (28-Dec-2013)
    resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-home
    Couldn’t find valid filesystem superblock.
    报错原因是因为文件系统是 xfs(fdisk -l 查看),不再支持 resize2fs

    解决思路:
    ①确认分区类型为 lvm
    ②查看到 home 分区有大量闲置空间,决定将 home 的空间分配给 /

    卸载 home >> 删除 home >> 将 home 的空间添加到 “/“ >> 重新分配 home >> 格式化 home >> 完成
    会用到的命令:

    df -h       # 查看磁盘空间 lsblk       # 查看块设备详情 fdisk -l # 查看分区详情 lvremove\lvcreate # 逻辑卷删除 / 创建 lvdisplay\vgdisplay\pvdisplay # 查看逻辑卷 / 卷组 / 物理卷 xfs_growfs # 加载 xfs_growfs

    操作过程:
    1、分析:查看分区详情,看到 sda2 为 lvm 逻辑卷,所以可以通过将 home 的空间转移到根分区

    1. # lsblk
    2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    3. fd0 2:0 1 4K 0 disk
    4. sda 8:0 0 300G 0 disk
    5. ├─sda1 8:1 0 500M 0 part /boot
    6. └─sda2 8:2 0 299.5G 0 part
    7. ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 9.8G 0 lvm [SWAP]
    8. └─centos-home 253:2 0 239.6G 0 lvm /home
    9. sr0 11:0 1 1024M 0 rom

    2、/home 备份

    mkdir /tmp/home cp -r /home/* /tmp/home

    :::tips 重要:扩容后/home中的所有内容都将丢失 :::

    3、umount 卸载

    1. # umount /home
    2. umount: /home: target is busy.
    3. (In some cases useful info about processes that use
    4. the device is found by lsof(8) or fuser(1))
    5. # 如果提示 busy,则使用 lsof /home 查看占用,并使用kill -9 pid清理
    6. # 最好直接使用root登录,否则清理进程可能导致登录退出

    4、删除 home 逻辑卷(lv),将 home 的空间腾出来到卷组(vg)

    1. # lvremove /dev/mapper/centos-home
    2. Do you really want to remove active logical volume home? [y/n]: y
    3. Logical volume "home" successfully removed

    5、重新调整 / 的大小

    1. # lvextend -L 250G /dev/mapper/centos-root # 调整到 250G
    2. Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 250.00 GiB (64000 extents).
    3. Logical volume root successfully resized.

    xfs_growfs 刷新

    1. # xfs_growfs /dev/mapper/centos-root
    2. meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3276800 blks
    3. = sectsz=4096 attr=2, projid32bit=1
    4. = crc=0 finobt=0
    5. data = bsize=4096 blocks=13107200, imaxpct=25
    6. = sunit=0 swidth=0 blks
    7. naming =version 2 bsize=4096 ascii-ci=0 ftype=0
    8. log =internal bsize=4096 blocks=6400, version=2
    9. = sectsz=4096 sunit=1 blks, lazy-count=1
    10. realtime =none extsz=4096 blocks=0, rtextents=0
    11. data blocks changed from 13107200 to 65536000

    6、将剩下的空间重新划分到 home 中

    1. # lvcreate -l +100%free -n home centos # -n 指定 lv 的名字,centos 是 vg 的名字
    2. Logical volume "home" created.

    创建完成别忘了格式化

    1. # mkfs.xfs /dev/centos/home
    2. meta-data=/dev/centos/home isize=256 agcount=4, agsize=2601472 blks
    3. = sectsz=4096 attr=2, projid32bit=1
    4. = crc=0 finobt=0
    5. data = bsize=4096 blocks=10405888, imaxpct=25
    6. = sunit=0 swidth=0 blks
    7. naming =version 2 bsize=4096 ascii-ci=0 ftype=0
    8. log =internal log bsize=4096 blocks=5081, version=2
    9. = sectsz=4096 sunit=1 blks, lazy-count=1
    10. realtime =none extsz=4096 blocks=0, rtextents=0

    CentOS7上lvm分区调整 - 图2

    7、重新 mount 并查看

    # mount /dev/mapper/centos-home /home
    

    8、完成

    CentOS7上lvm分区调整 - 图3

    9、别忘了把 home 备份还原

    参考:
    https://www.cnblogs.com/-abm/p/11349240.html