问题描述:有时候安装系统时,业务所在的分区太小,很容易导致分区爆满,而其他分区空闲,需要从其他分区挪空间过来或者新增磁盘扩容
需求分析:分配的硬盘50G,/opt分到为19G,随着业务的使用/opt文件系统已经达到100%,现在计划新分配500G的空间
方法一:
新增磁盘:已通过虚拟化控制台新增一块大小为500G的硬盘,重启系统识别确认。已识别到大小为500G的磁盘, 磁盘名称为vdb(因为是虚拟机,所以是vdx名称格式)
文件系统扩容操作:
1、查看卷组信息,只有一个centos_hikvisionos卷组且剩余空间为40m
2、查看逻辑卷信息,opt逻辑卷属于centos_hikvisionos卷组且大小为18.41g
3、查看逻辑卷绝对路径
4、新增磁盘vdb创建为物理卷
5、物理卷扩容至centos_hikvisionos卷组内
6、确认centos_hikvisionos卷组扩容后的剩余空间,由40m变为500.04g
7、opt逻辑卷进行扩容,增加300G
8、opt文件系统空间自动扩展
9、查看确认文件系统大小,/opt文件系统大小为319G,扩容成功
方法二:
从其他分区挪用,如从/home
检查文件系统类型以及空间使用情况
从上图得知:
报空间不足的/opt并非独立文件系统,而是/(根文件系统)的子目录
/类型为XFS、容量50G、已用50G、可用空间20K、已用%为100%
/home类型为XFS、容量286G、已用785M、可用285G、已用%为1%
/和/home同属卷组centos,由逻辑卷root和home格式化成XFS文件系统
综上可以得出结论:/文件系统已使用100%,和图1所示设备空间不足报错吻合;Web登录产生的会话信息需要空间来保存,/文件系统剩余空间不足时必然会影响业务正常运行。
方案制定:
/home文件系统未规划使用,只是存放一些用户信息,286G容量处于闲置的状态,/文件系统50G空间完全满足不了系统需求。图1显示/和/home同属centos卷组,分别对应的逻辑卷为/dev/mapper/centos-root和/dev/mapper/centos-home,逻辑卷格式化创建的XFS类型文件系统具有在线扩容的功能,但不具备在线缩减。缩减需要重新格式化才能正常使用,格式化会清空原数据。所以考虑缩减/home时,必须先备好原数据,以便数据被清空后从备份数据恢复。文件系统的操作需要使用root用户来执行,而且根文件系统能正常读写。目前根文件系统100%读写异常,需要清理部分空间来满足读写正常,且必须要保证root用户可以远程SSH登录。综上信息可以得出最终的解决方案可从四方面进行:
① 清理/var部分可回收文件释将/已用%的值降低至100%以下,确保系统命令可正常执行
② 确保root用户可通过SSH远程登录
③ 备份/home数据至本地,/home缩减200G空间,格式化后再重新挂载,上传备份文件恢复数据
④ /home缩减200G大小,完成后centos卷组剩余空间增加200G,新增剩余200G大小用于扩容/,/扩容后容量增加至250G,解决50G空间不足的问题
*****开始干活*****
1、清理/var可回收文件。执行“cd /var”进入/var目录,执行“du -sh *”查看目录下每个文件和目录的大小
如上图,log目录占用空间9.5G,进入log目录进一步确认可回收的文件。执行“cd log”进入log目录,执行“du -sh *” 查看目录下每个文件和目录的大小
messagesXX文件占用空间10G左右,经确认3个4月份文件可删除回收,因此决定删除此3个文件回收7G左右空间。执行“rm -rf messages-201804*”命令删除文件,执行“df -Th”查看文件删除后/文件系统可用%的值
结果显示/文件系统空间回收完成,从已用%从100%将至88%
2、检查root用户SSH远程登录。执行“cat /etc/ssh/sshd_config |grep PermitRootLogin”查看命令查看root用户登录权限
PermitRootLogin参数为“yes”说明root用户允许SSH远程登录。HikOS默认为no,请把no修改为yes保存退出,执行”systemctl restart sshd”重启sshd服务立即生效,打开xshell测试root用户远程登录的权限
3、/home文件系统大小调整。执行“tar”命令打包/home下所有数据并命名为“home20180508bak.tar”,使用“ls”命令来确认文件是否产生。执行“mv”命令移动“home20180508bak.tar”文件至/tmp目录作为数据备份,以便将来恢复至/home
4、/home下的数据被打包成home20180508bak.tar文件并移动到/tmp下,完成数据的备份。执行“umount”命令卸载文件系统/home,执行“lvresize”缩减至200G /dev/centos/home逻辑卷,逻辑卷的名称请使用lvdisplay来查询确认,如图9所示,执行“mkfs.xfs”来格式化缩减后的/dev/centos/home逻辑卷,再执行“mount”重新把/dev/centos/home挂载至/home
(lvresize -L 200G /dev/centos/home 缩减到200G)
(lvresize -L -200G /dev/centos/home 缩减200G)
(lvresize -L +200G /dev/centos/home 扩容200G)
PS:有时umount时,会报device is busy,目标设备正在使用中,无法unmount,需要kill掉相关进程。处理方法参考:https://www.cnblogs.com/xuey/p/7878529.html
/dev/centos/home完成缩减200G(“-L 200G”按理应该减少至200G,但此图却是从286G缩减到86G,请以现场实际情况为准),经过格式化重新挂载至挂载点/home,文件系统空间调整顺利完成
执行“mv”移动备份文件至/home,执行“tar”命令解压原数据至/home,执行“ls -la”检查原数据是否完整
备份文件home20180508bak.tar完整解压至/home下,数据恢复成功。
4、/文件系统扩容。 执行“lvextend”来扩容/dev/centos/root逻辑卷,执行“xfs_growfs”在线扩展XFS容量,使用“df -Th”来验证扩容的结果
/文件系统从容量50G增加至250G,扩容成功。最后检查业务是否已经恢复