千家信息网

如何解决生产环境分布式文件系统崩了问题

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"如何解决生产环境分布式文件系统崩了问题",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何解决生产环境分布式文件系统崩了问题"吧!问
千家信息网最后更新 2025年01月19日如何解决生产环境分布式文件系统崩了问题

这篇文章主要讲解了"如何解决生产环境分布式文件系统崩了问题",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何解决生产环境分布式文件系统崩了问题"吧!

问题定位

通过登录服务器查看系统的访问日志,发现日志文件中输出了如下异常信息。

org.csource.common.MyException: getStoreStorage fail, errno code: 28  at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1629)  at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:639)  at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:162)  at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:180)

很明显,是系统无法上传文件导致的问题,这个日志信息很重要,对问题的排查起到了至关重要的作用。

分析原因

既然是上传文件出现了问题,那我先试试能不能访问以前上传的文件呢?经过验证,以前上传的文件是可以访问的,再次验证了是上传文件的问题。

既然生产环境是使用的分布式文件系统,一般情况下是没啥问题的,上传文件出现了问题,大概率的事件是服务器磁盘空间不足了。那我就来顺着这个思路排查下问题。

于是乎,我使用df -h 查看服务器的存储空间使用率,已经达到91%了。

嗯,磁盘空间有可能是引起问题的原因。接下来,再来进一步确认下是否是磁盘空间造成的问题。

于是,我再打开/etc/fdfs/目录下的tracker.conf的配置,看到预留的存储空间为10%(注:这里的分布式文件系统使用的是FastDFS)。

看到这里,可以确定就是磁盘空间不足造成的无法上传文件的问题。

总体原因就是:服务器磁盘空间已使用91%,而在分布式文件系统的配置中预留的磁盘空间为10%,实际在上传文件的时候,系统已经检测到当前服务器剩余的磁盘空间不足10%,抛出异常,拒绝上传文件。

到此,问题出现的原因已经确定了,接下来就是要解决问题了。

解决问题

首先,有两种方式可以解决这个问题,一种就是删除不需要的文件;另一种就是扩容磁盘空间。

删除不需要的文件

这种方式慎用,这里,我也简单的介绍下这种方式。我给小伙伴们提供了几种递归删除的方式。

递归删除.pyc格式的文件。

find . -name '*.pyc' -exec rm -rf {} \;

打印当前文件夹下指定大小的文件

find . -name "*" -size 145800c -print

递归删除指定大小的文件(145800)

find . -name "*" -size 145800c -exec rm -rf {} \;

递归删除指定大小的文件,并打印出来

find . -name "*" -size 145800c -print -exec rm -rf {} \;

下面是对上述命令的一些简要说明。

  • "." 表示从当前目录开始递归查找

  • " -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件

  • " -type f "查找的类型为文件

  • "-print" 输出查找的文件目录名

  • -size 145800c 指定文件的大小

  • -exec rm -rf {} \; 递归删除(前面查询出来的结果)

扩容磁盘空间

这里,冰河推荐使用这种方式,我修复生产环境的故障也是使用的这种方式。

通过查看服务器的磁盘空间发现,/data目录下的空间足足有5TB,呵呵,运维哥们为啥不把文件系统的数据存储目录指向/data目录呢。于是乎,我开始将文件系统的数据存储目录迁移到/data目录下,整个过程如下所示。

注意:这里,我就简单的模拟将 /opt/fastdfs_storage_data下的数据迁移至/data下。

(1)拷贝文件,迁移数据

cp -r /opt/fastdfs_storage_data  /data cp -r  /opt/fastdfs_storage  /data cp -r /opt/fastdfs_tracker /data

(2)修改路径

这里需要修改文件系统的 /etc/fdfs/storage.conf ,mod_fastdfs.conf ,client.conf,tracker.conf文件。

  • /etc/fdfs/storage.conf

store_path0=/data/fastdfs_storage_data  base_path=/data/fastdfs_storage
  • /etc/fdfs/mod_fastdfs.conf

store_path0=/data/fastdfs_storage_data  (有两处) base_path=/data/fastdfs_storage
  • /etc/fdfs/client.conf

base_path=/data/fastdfs_tracker
  • /etc/fdfs/tracker.conf

base_path=/data/fastdfs_tracker

重新建立 M00 至存储目录的符号连接:ln -s /data/fastdfs_storage_data/data /data/fastdfs_storage_data/data/M00

(3)杀掉进程, 重启存储服务 (追踪器和存储器)

依次执行以下命令

pkill -9 fdfs  service fdfs_trackerd start  service fdfs_storaged start

(4)修改文件的读取路径 nginx配置

location ~/group1/M00{  root /data/fastdfs_storage_data/data; }

(5)重启nginx

cd /opt/nginx/sbin ./nginx -s reload

感谢各位的阅读,以上就是"如何解决生产环境分布式文件系统崩了问题"的内容了,经过本文的学习后,相信大家对如何解决生产环境分布式文件系统崩了问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 问题 系统 空间 磁盘 目录 分布式 存储 服务 环境 生产 就是 方式 服务器 递归 原因 大小 数据 日志 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 筹备网络安全管理 玖捌柒网络技术有限公司 阿里巴巴的云存储的服务器在哪里 终端服务器配置 互联网络安全进课堂心得体会 上海思霍网络技术 塔式服务器和机架式服务器价格 国家对网络安全的应急演练 教育局网络安全攻击演练 网络安全专业算什么工科吗 多迪网络技术 华为网络技术工程师招聘要求 软件开发与数据库 网络安全高峰论坛名称 软件开发技术研究部工作 服务器手机管理工具 软件开发女转行做什么 哪里有云服务器招商项目平台 湘西软件开发专业职校 微信app支付 服务器端 通过网线怎样访问服务器的数据库 什么云服务器好用又安全 连云港代驾软件开发公司 研究所的软件开发岗怎么样 社区服务器开发 如何在同一个服务器上 网络安全技术主要做什么工作 我的世界服务器在线时间怎么做 网络技术工程师考试真题 数据库频繁插入要不要断开连接
0