引言:

跟着数据的不断添加,服务器硬盘空间缺乏变成了许多运维人员有必要面临的问题。此主机运转了httpd(apache服务),提供对外web访问服务,web资源挂载在**/data/wwwroot目录下,http日志存放在/data/wwwlogs目录下(硬盘盘符为/dev/vdb):

处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
特别是在运用了腾讯云CentOS 6的非弹性云硬盘时,传统的在线扩容东西如growpart无法运用。参照: 在线扩展体系盘分区及文件体系
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
由于centos6内核是
2.6.32,**低于3.6.0无法运用在线扩容方式。
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
本文将详细介绍如何经过创立硬盘快照并同步数据到新硬盘来处理/data目录空间100%的问题,同时确保软链接在同步过程中得以坚持。

测验过程

运用快照扩容失败

处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
初始的办法我测验经过创立一个硬盘快照:
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
点击更多新建云硬盘
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
依照主机所在可用区,创立一个200G的硬盘(最好自定义命名),然后挂载到需求更换扩容硬盘的主机上面,能够在主机概况页面or云硬盘操控台完结硬盘的挂载!
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
中止httpd服务:

service httpd stop

卸载 /data数据目录:

umount /data

200GB的磁盘快照来替换本来的100GB磁盘,并且挂载到了/data目录:

mount /dev/vdd /data

可是你发现新的可用空间仍然是100GB(其实这里我是发现/data/wwwlogs 目录下日志巨细为0)。在这个情况下,你或许会发现虽然物理空间有所扩展,但分区表并没有更新以反映新的巨细。另外,由于分区表没有更新,本来占满的空间份额仍旧导致http服务无法写入新日志。此办法放弃……

umount时提示设备忙

当你测验将/data目录卸载以挂载一个新硬盘(比如200GB的vdd),如果遇到umount:/data: device is busy的错误,这表明该挂载点正在被运用。

处理腾讯云CentOS 6硬盘空间缺乏问题:从快照到数据搬迁
这或许是因为有服务,如httpd,仍在运转并使文件或目录坚持打开状态。可是我当时的httpd服务已经中止,运用lsof /data 发现日志进程仍然存在,运用kill -9完毕进程,持续umount硬盘!

最终处理方案

过程一:数据搬迁

  1. 创立250GB的新硬盘(vde):在腾讯云操控台中创立一个新的硬盘,并将其附加到服务器上。
  2. 格式化并挂载新硬盘:格式化新硬盘并将其挂载到/data4目录。
mkfs.ext4 /dev/vde
mkdir /data4
mount /dev/vde /data4
  1. 运用rclone同步数据:装置rclone,并运用它将/data目录内的数据同步到/data4,确保同时复制软链接。 能够参照:文件存储数据复制方案,装置rclone:
wget https://downloads.rclone.org/v1.53.4/rclone-v1.53.4-linux-amd64.zip --no-check-certificate
unzip rclone-v1.53.4-linux-amd64.zip
chmod 0755 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

履行rclone cp同步数据到/data4:

rclone cp /data /data4 --links --progress

过程二:处理设备忙问题

  1. 先关闭httpd服务:
service httpd stop
  1. 查找占用**/data**的进程:运用lsof命令找到哪些进程正运用/data目录。
lsof /data
  1. 杀掉相关进程:如果是httpd进程占用了/data目录,而你无法正常卸载,能够经过kill -9命令强制杀掉相关进程。
kill -9 $(lsof -t /data)
  1. 卸载**/data**目录:在确认没有进程运用/data目录后,测验再次卸载该目录。
umount /data

过程三:挂载新硬盘到/data

  1. 卸载/data4目录
umount /data4
  1. 挂载新硬盘:将vde硬盘挂载到/data目录。
mount /dev/vde /data
  1. 验证新空间:确保你的新磁盘现在具有预期的空间容量和数据。
df -h /data
  1. 从头启动服务:如果你先前中止了httpd或其他服务,在此过程,你需求从头启动它们。
systemctl start httpd

过程4:更新fstab

确保新硬盘在体系重启后主动挂载到/data目录,修改/etc/fstab文件,更新其中关于/data挂载点的记录。 cat /etc/fstab

/dev/vde /data ext4 defaults 0 0

履行从头挂载

mount -a

总结:

本次操作经过创立快照、创立新硬盘和运用rclone同步数据三个过程,成功地处理了腾讯云CentOS 6中的/data目录硬盘空间缺乏的问题。现在您不只具有了更大的存储空间,还学会了运用rclone维持软链接的办法。依据上述办法,您能够安全地扩展您的服务器存储,并确保业务的连续性和数据的安全性。

留意:

  • 在履行上述操作前,请确保你有满足的权限和备份,以防万一。
  • 在卸载和挂载过程中,需求确保相关服务或许应用不在运转,以防止数据丢失。
  • 依据你的实际情况,设备名(如/dev/xvda1)需依据实际情况更改。
  • rclone命令的参数或许因版本而异,请查看官方文档获取最新的运用信息。