前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移

解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移

原创
作者头像
对你无可奈何
发布2023-12-19 21:10:48
3362
发布2023-12-19 21:10:48
举报
文章被收录于专栏:运维专栏运维专栏

引言:

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

特别是在使用了腾讯云CentOS 6的非弹性云硬盘时,传统的在线扩容工具如growpart无法使用。参照:

在线扩展系统盘分区及文件系统

由于centos6内核是2.6.32,低于3.6.0无法使用在线扩容方式:

本文将详细介绍如何通过创建硬盘快照并同步数据到新硬盘来解决/data目录空间100%的问题,同时确保软链接在同步过程中得以保持。

尝试过程

使用快照扩容失败

初始的方法我尝试通过创建一个硬盘快照:

点击更多-新建云硬盘

按照主机所在可用区,创建一个200G的硬盘(最好自定义命名),然后挂载到需要更换扩容硬盘的主机上面,可以在主机详情页面or云硬盘控制台完成硬盘的挂载!

停止httpd服务:

代码语言:shell
复制
service httpd stop

卸载 /data数据目录:

代码语言:shell
复制
umount /data

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

代码语言:shell
复制
mount /dev/vdd /data

然而你发现新的可用空间仍然是100GB(其实这里我是发现/data/wwwlogs 目录下日志大小为0)。在这个情况下,你可能会发现尽管物理空间有所扩展,但分区表并没有更新以反映新的大小。另外,由于分区表没有更新,原本占满的空间比例依旧导致http服务无法写入新日志。此方法放弃......

umount时提示设备忙

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

这可能是因为有服务,如httpd,仍在运行并使文件或目录保持打开状态。但是我当时的httpd服务已经停止,使用lsof /data 发现日志进程仍然存在,使用kill -9结束进程,继续umount硬盘!

最终解决方案

步骤一:数据迁移

  1. 创建250GB的新硬盘(vde):在腾讯云控制台中创建一个新的硬盘,并将其附加到服务器上。
  2. 格式化并挂载新硬盘:格式化新硬盘并将其挂载到/data4目录。
代码语言:shell
复制
mkfs.ext4 /dev/vde
mkdir /data4
mount /dev/vde /data4
  1. 使用rclone同步数据:安装rclone,并使用它将/data目录内的数据同步到/data4,确保同时复制软链接。 可以参照:文件存储数据拷贝方案,安装rclone:
代码语言:shell
复制
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:

代码语言:shell
复制
rclone cp /data /data4 --links --progress

步骤二:处理设备忙问题

  1. 先关闭httpd服务:service httpd stop
  2. 查找占用**/data**的进程:使用lsof命令找到哪些进程正使用/data目录。 lsof /data
  3. 杀掉相关进程:如果是httpd进程占用了/data目录,而你无法正常卸载,可以通过kill -9命令强制杀掉相关进程。 kill -9 $(lsof -t /data)
  4. 卸载**/data**目录:在确认没有进程使用/data目录后,尝试再次卸载该目录。
代码语言:shell
复制
umount /data

步骤三:挂载新硬盘到/data

  1. 卸载/data4目录umount /data4
  2. 挂载新硬盘:将vde硬盘挂载到/data目录。 mount /dev/vde /data
  3. 验证新空间:确保你的新磁盘现在具有预期的空间容量和数据。 df -h /data
  4. 重新启动服务:如果你先前停止了httpd或其他服务,在此步骤,你需要重新启动它们。
代码语言:shell
复制
systemctl start httpd

步骤4:更新fstab

确保新硬盘在系统重启后自动挂载到/data目录,编辑/etc/fstab文件,更新其中关于/data挂载点的记录。

cat /etc/fstab

代码语言:shell
复制
/dev/vde /data ext4 defaults 0 0 

执行重新挂载

代码语言:shell
复制
mount -a

总结:

本次操作通过创建快照、创建新硬盘和使用rclone同步数据三个步骤,成功地解决了腾讯云CentOS 6中的/data目录硬盘空间不足的问题。现在您不仅拥有了更大的存储空间,还学会了使用rclone维持软链接的方法。根据上述方法,您可以安全地扩展您的服务器存储,并确保业务的连续性和数据的安全性。

注意:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言:
  • 尝试过程
    • 使用快照扩容失败
      • umount时提示设备忙
      • 最终解决方案
        • 步骤一:数据迁移
          • 步骤二:处理设备忙问题
            • 步骤三:挂载新硬盘到/data
              • 步骤4:更新fstab
              • 总结:
              • 注意:
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
              http://www.vxiaotou.com