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. ES5 对数组方法的扩展 以及 正则表达式

    ES5 对数组的扩展 forEach map some every indexOf lastIndexOf forEach 与 map 语法: 数组.forEach(function ( v, i ) ...

  2. 【Learning Python】【第四章】Python代码结构(一)

    这一章的主旨在于介绍python的代码结构 缩进 在很多的编程语言中,一般{}用于控制代码块,比如以下的一段C代码 if(var <= 10) { printf("....." ...

  3. 瀑布流布局(jq实现)

    参考刘晓帆大神的瀑布流效果 自己也写了个 希望能给打算写这个效果的朋友一点点思路,也希望朋友们批评指正! html代码: <!DOCTYPE html> <html> < ...

  4. How to:如何让Installshield显示正确的软件所需空间--网友冰块先生贡献

    软件环境: installshield2010  工程类型:installshield project  现象:当转换目录后所需空间显示不正常. 解决办法:在转换目录地方加上一个TARGETDIR重新 ...

  5. Emgu学习手册

    作为opencv的c#封装库.emgu可以满足基本的图像处理功能,经过测试,效果还可以,主要用于windows窗体应用程序的开发,或者wpf,你可以用来做ocr,也可以用来做人脸识别或者可以用来做定位 ...

  6. jQuery extend方法使用及实现

    一.jQuery extend方法介绍 jQuery的API手册中,extend方法挂载在jQuery和jQuery.fn两个不同对象上方法,但在jQuery内部代码实现的是相同的,只是功能却不太一样 ...

  7. 代理委托和block

    delegate 委托是协议的一种,顾名思义,就是委托他人帮自己去做事.委托是给一个对象提供机会对另一个对象中的变化做出反应或者影响另一个对象的行为.其基本思想是:两个对象协同解决问题,并且打算在广泛 ...

  8. 数论 UVALive 2756

    这道题目考察的n个不同的数环形排列,每次相邻两个数交换位置,这样由正序转变成逆序所需操作的最小次数t. 公式:环形排列:t= n/2*(n/2 - 1)/2 + (n+1)/2* ((n+1)/2 - ...

  9. Angular2 CLI 快速开发

    Angular2 CLI 快速开发 http://www.tuicool.com/articles/z6V3Ubz 解决npm 的 shasum check failed for错误(npm注册国内镜 ...

  10. ✡ leetcode 170. Two Sum III - Data structure design 设计two sum模式 --------- java

    Design and implement a TwoSum class. It should support the following operations: add and find. add - ...