
自去年七月以来,一直没有写博客。AI时代,单纯的简单技术分享已经失去了意义,LLM总结得更加全面并且方便获取。那之后也少有感到有趣值得分享的事情,便落下了。之后更多的会是分享生活故事,偏向主观的内容。
这应该是手头第一块被正常使用到写坏的机械硬盘,机房里的硬盘故障已经见怪不怪了,几乎每周都有一两块硬盘故障告警,而家庭使用环境中倒是罕见。
坏的是一块2016年购入的BarraCuda ST3000DM001,当时每TB SATA HDD的价格还在190左右,18年更是到了153,比起现在的存储器价格,笑…
在工作了6.8万小时之后,终于耗尽了所有可重新映射扇区,寿命已经超出预期了。得益于Ceph的高可用设计,才敢把这种家用级HDD用在“生产级”环境中,结果也是依赖Ceph的副本/EC机制重建了PG平稳落地。
故障初现端倪
最初巡检发现这块硬盘05来到了小几十,没有C5,观察了几个月没有增长后,便没有放在心上。
故障发生
首先是发现cephfs读写有掉速,同时Ceph集群提示该osd存在slow ops,查看osd进程容器日志,发现大量的io timeout,io时延>5000ms。结合smart信息意识到是硬盘挂了,这会也没有掉盘,05已经超阈值,但是smart仍旧pass。
所以还是不能只看smart状态,RAID卡设计的检测硬盘健康的方法还是合理的,要看有没有重映射,有没有读写CRC校验报错。
故障处置
这时候osd还是up in 的,所以不会触发recover。这种时候不要选择reweight 0或者设置up out,这样backfill的时候仍旧会从故障的osd读取数据,导致PG转移异常缓慢。应该直接ceph orch daemon rm删除osd进程(如果是cephadm管理进程的话),或者至少down out,从而触发PG重建,通过剩余osd数据重建速度会更快。
小插曲
正常PG恢复完成之后这件事就告一段落了,但事后在对换硬盘插槽的时候发生了一个小插曲。
由于手搓的硬盘柜1.0背板用的是sata插座,硬盘柜2.0用的是sas插座,想着从同节点2.0盘柜挪一块SATA HDD到故障盘位上然后补一块SAS硬盘进来。原本是操作系统扫描一下lv然后osd自动上线轻松愉快的事情,因为自己操作的时候没有看清楚盘柜上贴的标签,把另一个节点的硬盘拔下插到了这个节点。于是Ceph osd 1down 1out,好在ceph不会主动去zap陌生的硬盘,不然PG还没重建完毕,又损失一个osd的话,ec3+1的pool岌岌可危。
赶紧换了回去,再次感谢ceph的系统健壮性,一顿瞎搞之后依旧可靠。所以,在执行风险操作之前,尽可能增加安全冗余,在人犯错的时候不至于毁了一切。
今年的年度磁带备份一直没有完成,原因是磁带机磁头老化,也可能是磁带年限过长,备份写入时一直发生CRC校验错误备份中止。原来磁带备份也不是那么可靠呀,也不知道之前备份的磁带数据能不能完整读取。
罢了,重要的数据还是实体化保存吧,照片、日记,除了过往生活,普通人真正有价值的数据又能有多少。