FastDFS问题排查记录

现象

今天有人反馈,客户端部分图标时而不能显示

问题定位

用jemter将图片地址进行简单测试后,发现偶尔有404 NOT FOUND的情况
在服务器上对八台nginx分别进行测试,发现144确实返回404
查看144 nginx的error日志,发现大量报错
[2016-08-22 15:51:25] ERROR - file: ../fastdfs-nginx-module/src//common.c, line: 870, file: /data/storage/data/01/3E/rBCJYle1KWyAfnfPAAAXYfqwv1U115.jpg not exist
[2016-08-22 15:51:25] ERROR - file: ../fastdfs-nginx-module/src//common.c, line: 870, file: /data/storage/data/01/42/rBCJYle20wmASFmaAAAQt5Rk5Lc743.jpg not exist
[2016-08-22 15:51:25] ERROR - file: ../fastdfs-nginx-module/src//common.c, line: 870, file: /data/storage/data/01/43/rBCJYle206mAcSQZAAANXK1DRHg664.jpg not exist
[2016-08-22 15:51:25] ERROR - file: ../fastdfs-nginx-module/src//common.c, line: 870, file: /data/storage/data/01/43/rBCJYle21DKAKYVHAAAH_vqF1FU344.jpg not exist
[2016-08-22 15:51:25] ERROR - file: ../fastdfs-nginx-module/src//common.c, line: 870, file: /data/storage/data/01/43/rBCJYle206qAY2JGAAAItZ1GE4c989.jpg not exist
至此,初步确定是fastDFS的该storage节点有问题

fastDFS分析

144 fdfs_storage 2

通过fdfs_monitor发现,该节点状态信息为recovery,上次同步时间为2016年3月8日…….(是有多久没发现这个问题了)
144上fdfs_storage进程没有,尝试启动失败。
查看144的fastDFS日志,如下
[2016-08-22 14:24:07] INFO - file: storage_disk_recovery.c, line: 750, disk recovery: begin recovery data path: /data/storage ...
[2016-08-22 14:24:07] INFO - file: storage_disk_recovery.c, line: 446, mark file "/data/storage/data/.recovery.mark", fetch_binlog_done=0, need to fetch binlog again
[2016-08-22 14:24:07] ERROR - file: tracker_proto.c, line: 48, server: 172.16.137.98:23000, response status 2 != 0
[2016-08-22 14:24:07] CRIT - file: storage_func.c, line: 1782, storage_check_and_make_data_dirs fail, program exit!
[2016-08-22 14:24:07] CRIT - exit abnormally!
大意为 开始恢复数据,binlog文件获取失败,重新获取,但是从同group的另一个storage(172.16.137.98:23000)获取binlog失败(response status 2 != 0),然后进程退出

143 fdfs_storage 1

既然是144从143上获取binlog失败,那就看看143出了什么问题

查看fdfs_monitor和143进程等信息未发现异常
想查看143的日志发现根本没有日志目录
lsof查看发现日志连同目录都被删了,所以不输出日志!
fdfs_trac 20986 root    1w   REG        8,2   235882  25952259 /data/tracker/logs/trackerd.log (deleted)
fdfs_trac 20986 root    2w   REG        8,2   235882  25952259 /data/tracker/logs/trackerd.log (deleted)
fdfs_trac 20986 root    3w   REG        8,2   235882  25952259 /data/tracker/logs/trackerd.log (deleted)
重新创建目录,然后计划重启143的storage
启动storage失败!启动命令执行后一直在控制台处于挂起状态!
fdfs_monitor中状态为offline!日志中显示准备开始恢复数据!
这又恢复的哪门子数据,斟酌后删除了/data/storage/data/下面的关于恢复数据的文件(.recovery.mark;.binlog.recovery )
重新启动成功
144 fdfs_storage 2

这下回到144上,再次尝试启动storage,成功了

[2016-08-22 15:11:20] INFO - file: storage_disk_recovery.c, line: 750, disk recovery: begin recovery data path: /data/storage ...
[2016-08-22 15:11:20] INFO - file: storage_disk_recovery.c, line: 446, mark file "/data/storage/data/.recovery.mark", fetch_binlog_done=0, need to fetch binlog again
[2016-08-22 15:11:20] INFO - file: storage_disk_recovery.c, line: 110, recovery binlog file size: 0
[2016-08-22 15:11:20] INFO - file: storage_disk_recovery.c, line: 750, disk recovery: begin recovery data path: /data/storage ...
[2016-08-22 15:11:20] INFO - file: storage_disk_recovery.c, line: 527, disk recovery: recovering files of data path: /data/storage ...
[2016-08-22 15:11:25] INFO - file: storage_disk_recovery.c, line: 725, disk recovery: recover files of data path: /data/storage done
[2016-08-22 15:11:25] INFO - file: storage_disk_recovery.c, line: 801, disk recovery: end of recovery data path: /data/storage
fdfs_monitor中144的状态终于变成active了 
不过文件同步时间还是3月8日,需要等待一段时间让新的同步完成。

FastDFS----recovery状态问题排查记录的更多相关文章

  1. Shiro权限管理框架(五):自定义Filter实现及其问题排查记录

    明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数 ...

  2. Linux 遭入侵,挖矿进程被隐藏排查记录

    今天来给大家分享下这两天遇到的一个问题,服务器被挖矿了,把我的排查记录分享下,希望能帮到有需要的同学. 问题原因 多台服务器持续告警CPU过高,服务器为K8s的应用节点,正常情况下CPU使用率都挺低的 ...

  3. 一次内核 crash 的排查记录

    一次内核 crash 的排查记录 使用的发行版本是 CentOS,内核版本是 3.10.0,在正常运行的情况下内核发生了崩溃,还好有 vmcore 生成. 准备排查环境 crash 内核调试信息rpm ...

  4. Linux下FastDFS分布式存储-总结及部署记录

    一.分布式文件系统介绍分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System.一种允许文件通过网络在多台主机上分享的文件系 ...

  5. Vue2.X的状态管理vuex记录

    记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method   -- ...

  6. hdu 1074(状态压缩dp+记录路径)

    题意:给了n个家庭作业,然后给了每个家庭作业的完成期限和花费的实践,如果完成时间超过了期限,那么就要扣除分数,然后让你找出一个最优方案使扣除的分数最少,当存在多种方案时,输出字典序最小的那种,因为题意 ...

  7. linux的crash之hardlock排查记录

    3.10.0-327的内核,crash记录如下: KERNEL: vmlinux DUMPFILE: vmcore [PARTIAL DUMP] CPUS: 48 DATE: Wed Oct 18 2 ...

  8. 线上 ELK 集群健康值 red 状态问题排查与解决

    之前一直运行正常的数据分析平台,最近一段时间没有注意发现日志索引数据一直未生成,大概持续了n多天,当前状态: 单台机器, Elasticsearch(下面称ES)单节点(空集群),1000+shrad ...

  9. nginx重启后,反向代理失败之问题排查记录

    问题与排查过程 本地开发环境的服务器,部署了nginx,nginx上对静态的web前端页面进行了http 80端口代理:然后呢,因为一些原因,服务器重启了,重启服务器后,我去把nginx启动起来,但是 ...

随机推荐

  1. BSTR 的奥秘

    初学COM,总觉得BSTR很神秘,对于这种新的数据类型,总有很多疑问,那么BSTR到底是什么类型呢? 我们可以在头文件中的定义中最终找到 wchar这个类型被定义为BSTR,那么BSTR是wchar吗 ...

  2. Maven 标签详解

    <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.or ...

  3. Windows集成认证全过程

    开发环境:win7旗舰版,vs2013 服务器环境:windows server 2008 R2 IIS7.5 目的:在局域网搭建一个网站,用户必须使用域帐号登录网站访问 Step 1: 创建proj ...

  4. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  5. background-position

    在学习网页"换肤"效果时:对background-position的理解更深了. 这是我使用的一整张图片:

  6. JS中也可以使用JSTL和EL标签

    //往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Pl ...

  7. 解决python字典结构内存暴涨问题

    背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍.此文解决这个问题 数据:word2vec训练的结果,word对应400维的词向量.词表共1.6 ...

  8. UE4 不能显示中文 解决办法

    UE4 4.11.2 方法步骤: 1.在内容浏览器新建一个字体文件如图: 2.打开刚刚创建的那个字体文件: 选择Offline,会有一个弹出框点击 “是” 接下来就选择你要用到的字体 红色矩形框出的文 ...

  9. 关于cookie 取不到值的问题

    当前我们设置cookie时,跨路径的话,我们会取不到设置的cookie的值 我们要添加上path路径的值,就可以啦.(经过验证) path 的设置方法:path=/; function setcook ...

  10. JavaScript面向对象,及面向对象的特点,和如何构造函数

    1.面向对象和面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是 ...