资讯专栏INFORMATION COLUMN

redis磁盘故障分析经验

IT那活儿 / 3316人阅读
redis磁盘故障分析经验

概述



ssd磁盘故障导致redis异常宕库。



问题现象



前段时间,生产环境上一个redis数据库服务器的ssd盘出现故障,只能读不能写,其他盘写入速度也很慢。导致redis实例的aof刷新一直失败,最终宕掉。



原因分析



ssd盘早期没有格式化好,4k对齐没做好



处理过程



该redis机器是用来存储collector采集到的日志的meta信息,比较关键,而且一台机器上开启了8个redis实例,所以不好处理。
一开始准备把redis的aof文件转移到一个新的盘上,并且把aof的dir动态更改到其他盘,结果发现redis实例挂掉了,就没有动态更换aof目录。这其中,redis的数据可能有所丢失,不过通过collector和redis日志发现,磁盘挂了后redis写入已经失败,估计有丢失数据也不多。collector有实现meta写入redis失败时转为写入本地磁盘,所以在redis实例down掉时,数据也不会丢失。
接着,处理4k对齐。先把所有redis实例进行bgwrite.
redis-cli -h redis02 -p 6379 bgrewriteaof,
停掉所有redis实例。

处理4k对齐, 重启机器。结果发现机器重启失败,阵列卡或线松了。
重启机器后,赶紧把所有aof文件都备份到其他机器上。结果有发现,有一块盘丢了,尝试mount回来。发现有很多block错误,要修复又怕丢数据。但现在盘有错误,只能先fsck修复,如果修复成功再从里面拷贝出来。要是觉得不保险,就先备份正常盘的数据,空出一块盘,把cache3的盘做个镜像,再做修复。最后aof文件终于弄出来了,启动redis实例,发现aof文件有问题,启动失败。使用redis-check-aof --fix修复了aof文件,再启动,成功。redis数据是被截断一部分丢失了。
数据恢复后,开始重新把redis机器上的ssd盘一个个重新格式化。



总结



因为redis的meta信息,是衔接collector采集,以及storm处理和hadoop camus入库。本次redis故障,大动干戈,对集群影响比较大。
还好collector有redis失败转存文件的功能,所以日志采集一直正常。
接下来的新机房,存储meta的redis准备使用cluster,避免单点故障。保障可用性。

END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129787.html

相关文章

  • 云主机文件系统readonly处理案例

    摘要:通常发生该问题的场景有二一云主机和宿主机繁忙,云主机的请求得不到及时的响应,从而产生磁盘错误,为了保护磁盘数据会分区为只读二云主机被强制关机,导致磁盘出现文件系统错误故障。 本文由作者朱益军授权网易云社区发布。 背景 维护巡检云主机时,发现有一台运行redis的云主机状态显示维护中,登录该实例查看,系统盘变成readonly。本文简单分析该问题出现原因,并为运维人员提供常见处理方法及建...

    neroneroffy 评论0 收藏0
  • 讲讲NoSQL比较火的三个数据库Memcached、Redis、MongoDB

    摘要:而今天主要讲用得比较多的三个。支持持久化操作,可以进行及数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。 前言 NoSQL,泛指非关系型的数据库。随着互联网不断的发展,传统的关系数据库在应付新互联网模式的网站,特别是超大规模和高并发的SNS类型的纯动态网站已经显得力不从心,暴露了很多难以克服...

    Michael_Lin 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<