本地学习机使用,生产环境请勿操作!!!
本文操作的扩容前提是:centos,磁盘类型是LVM,文件类型是xfs
因未修改docker的存储目录,导致/var空间不足,正好尝试动态扩容,测试有效
1.查看磁盘分区信息
df -h
fdisk -l
2.备份home 文件(最好先拍个快照!!!,防止操作有问题,无法恢复)
cd /home
tar -cvf home.tar ./*
3.停止对home目录的访问进程并卸载
fuser -km /home
已经没有home了
4.减少home的磁盘空间:lvreduce -L -20G /dev/mapper/centos-home
5.增加var的磁盘空间:lvextend -L +20G /dev/mapper/centos-var
6.查看磁盘列表信息
7.扩展var分区
如果使用xfs文件系统使用xfs_growfs
如果使用ext4文件系统使用resize2fs
xfs_growfs 不支持减少磁盘空间,可以使用mkfs.xfs命令重新格式化一下,但是文件会丢失!!!
xfs_growfs /dev/mapper/centos-var
8.再次查看磁盘空间信息
lsblk
9.重置home
重启之前可以先执行lvremove /dev/mapper/centos-home试试能不能删除,如果报包含系统文件的导致无法删除,就需要重启,使用系统控制台操作,若是可以直接删除,则无需重启
重启:reboot,输入超管密码,进入系统命令行
reboot
删除home的逻辑卷:lvremove /dev/mapper/centos-home
lvremove /dev/mapper/centos-home
查看vg :vgdisplay,会多出30G使用空间
vgdisplay
重新创建home分区:lvcreate -L 30G -n /dev/mapper/centos-home
lvcreate -L 30G -n /dev/mapper/centos-home
创建xfs格式的磁盘:mkfs.xfs /dev/mapper/centos-home
mkfs.xfs /dev/mapper/centos-home
挂载home:mount /dev/mapper/centos-home /home
mount /dev/mapper/centos-home /home
新磁盘是空的
恢复备份的home文件
tar -xvf home.tar -C /home
输入reboot 重启系统即可
10.补充知识
xfs 相关的维护命令:
mkfs.xfs: 创建 xfs 文件系统
xfs_admin: 调整 xfs 文件系统的各种参数
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
xfs_check: 检测 xfs 文件系统的完整性
xfs_bmap: 查看一个文件的块映射
xfs_repair: 尝试修复受损的 xfs 文件系统
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系统的磁盘配额
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
原文链接:
11.脚本查询某个挂载目录的使用进程
touch mount-info.sh
chmod +766 mount-info.sh
#! /bin/bash
read -p "请输入要查找的挂载目录(如:/dev/mapper/centos-home): " mountDir
echo ${mountDir}
for i in /proc/[0-9]* ;
do echo $i >> /tmp/mountinfo ;
grep -q ${mountDir} $i/mountinfo ;
echo $? >> /tmp/mountinfo ;
done
./mount-info.sh
grep -B 1 '^0$' /tmp/mountinfo