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

2023-12-19 21:52

本文主要是介绍解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言:

随着数据的不断增加,服务器硬盘空间不足变成了许多运维人员必须面对的问题。此主机运行了httpd(apache服务),提供对外web访问服务,web资源挂载在**/data/wwwroot目录下,http日志存放在/data/wwwlogs目录下(硬盘盘符为/dev/vdb):
img_v3_0269_f4f4bcef-ca88-44f9-93be-804d8f697f7g.jpg
特别是在使用了腾讯云CentOS 6的非弹性云硬盘时,传统的在线扩容工具如growpart无法使用。参照:
在线扩展系统盘分区及文件系统:
image.png
由于centos6内核是
2.6.32,**低于3.6.0无法使用在线扩容方式。
image.png
本文将详细介绍如何通过创建硬盘快照并同步数据到新硬盘来解决/data目录空间100%的问题,同时确保软链接在同步过程中得以保持。

尝试过程

使用快照扩容失败

image.png
初始的方法我尝试通过创建一个硬盘快照:
image.png
点击更多-新建云硬盘
image.png
按照主机所在可用区,创建一个200G的硬盘(最好自定义命名),然后挂载到需要更换扩容硬盘的主机上面,可以在主机详情页面or云硬盘控制台完成硬盘的挂载!
image.png
image.png
停止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的错误,这表明该挂载点正在被使用。
img_v3_0268_66591bff-e7da-4379-a712-7c8339791e3g.jpg
这可能是因为有服务,如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命令的参数可能因版本而异,请查看官方文档获取最新的使用信息。

这篇关于解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/513826

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA