FastDFS----recovery状态问题排查记录
现象
今天有人反馈,客户端部分图标时而不能显示
问题定位
用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:
[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(
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状态问题排查记录的更多相关文章
- Shiro权限管理框架(五):自定义Filter实现及其问题排查记录
明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数 ...
- Linux 遭入侵,挖矿进程被隐藏排查记录
今天来给大家分享下这两天遇到的一个问题,服务器被挖矿了,把我的排查记录分享下,希望能帮到有需要的同学. 问题原因 多台服务器持续告警CPU过高,服务器为K8s的应用节点,正常情况下CPU使用率都挺低的 ...
- 一次内核 crash 的排查记录
一次内核 crash 的排查记录 使用的发行版本是 CentOS,内核版本是 3.10.0,在正常运行的情况下内核发生了崩溃,还好有 vmcore 生成. 准备排查环境 crash 内核调试信息rpm ...
- Linux下FastDFS分布式存储-总结及部署记录
一.分布式文件系统介绍分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System.一种允许文件通过网络在多台主机上分享的文件系 ...
- Vue2.X的状态管理vuex记录
记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method -- ...
- hdu 1074(状态压缩dp+记录路径)
题意:给了n个家庭作业,然后给了每个家庭作业的完成期限和花费的实践,如果完成时间超过了期限,那么就要扣除分数,然后让你找出一个最优方案使扣除的分数最少,当存在多种方案时,输出字典序最小的那种,因为题意 ...
- linux的crash之hardlock排查记录
3.10.0-327的内核,crash记录如下: KERNEL: vmlinux DUMPFILE: vmcore [PARTIAL DUMP] CPUS: 48 DATE: Wed Oct 18 2 ...
- 线上 ELK 集群健康值 red 状态问题排查与解决
之前一直运行正常的数据分析平台,最近一段时间没有注意发现日志索引数据一直未生成,大概持续了n多天,当前状态: 单台机器, Elasticsearch(下面称ES)单节点(空集群),1000+shrad ...
- nginx重启后,反向代理失败之问题排查记录
问题与排查过程 本地开发环境的服务器,部署了nginx,nginx上对静态的web前端页面进行了http 80端口代理:然后呢,因为一些原因,服务器重启了,重启服务器后,我去把nginx启动起来,但是 ...
随机推荐
- BSTR 的奥秘
初学COM,总觉得BSTR很神秘,对于这种新的数据类型,总有很多疑问,那么BSTR到底是什么类型呢? 我们可以在头文件中的定义中最终找到 wchar这个类型被定义为BSTR,那么BSTR是wchar吗 ...
- Maven 标签详解
<span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.or ...
- Windows集成认证全过程
开发环境:win7旗舰版,vs2013 服务器环境:windows server 2008 R2 IIS7.5 目的:在局域网搭建一个网站,用户必须使用域帐号登录网站访问 Step 1: 创建proj ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- background-position
在学习网页"换肤"效果时:对background-position的理解更深了. 这是我使用的一整张图片:
- JS中也可以使用JSTL和EL标签
//往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Pl ...
- 解决python字典结构内存暴涨问题
背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍.此文解决这个问题 数据:word2vec训练的结果,word对应400维的词向量.词表共1.6 ...
- UE4 不能显示中文 解决办法
UE4 4.11.2 方法步骤: 1.在内容浏览器新建一个字体文件如图: 2.打开刚刚创建的那个字体文件: 选择Offline,会有一个弹出框点击 “是” 接下来就选择你要用到的字体 红色矩形框出的文 ...
- 关于cookie 取不到值的问题
当前我们设置cookie时,跨路径的话,我们会取不到设置的cookie的值 我们要添加上path路径的值,就可以啦.(经过验证) path 的设置方法:path=/; function setcook ...
- JavaScript面向对象,及面向对象的特点,和如何构造函数
1.面向对象和面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是 ...