这是一个创建于 2283 天前的主题,其中的信息可能已经有所发展或是发生改变。
硬盘静默 bug 被发现是在 这次事故以前还是事故发生以后复盘发现的?
如果是事故发生以前的话,就有趣了,明知道有静默故障,还从一块有静默故障的磁盘上复制数据,而不是从没有静默故障的硬盘上复制数据。这说不通,因为不可能从一块坏盘上读数据,即使读也一定会开校验,否则无意义。其次如果一开始就知道有静默故障,ops 根本就不会去回收空间,而是会去复制所有静默硬盘上可能牵涉到的数据,因为 3 备份会成为 2 备份,结论就是 ops 根本不知道有盘是错的。
如果是事故发生以后发现的,据说还替换了同一批硬件,这说明这不是单一一块硬盘的问题,我想请问为什么其他硬盘的数据就没有被影响? 按理说这个故障的影响面是很大的,一般来说一批盘怎么说也得几百块吧。而且服役的时间也不是一天二天了,按照用户的说法,上线应该存在 8 个月左右了。那么其他盘就没有故障?而且这块盘上就只有这一个用户的数据吗?这块盘上别的用户数据照理也会丢失啊,为什么别人的数据没丢失?迁数据,只迁一个用户的数据,并且是为了腾空间?好吧 我见识少,这种操作没见过。
最终结论 ,几百块盘 8 个月里,其他盘都没问题。只有 1 块有问题,而且这块盘有问题,就影响了这一位客户,这块盘上的其他用户都没被影响,这 8 个月里也没被读过,因为一读就知道数据故障了,该换盘或者迁数据了。而这块盘上的这位用户的数据也应该是没有被读过的,因为一读也会知道故障。如果从坏盘上迁数据是绝对不会不开 cheksum 校验的。当然 还有可能 这个 bug 正好只影响了这块盘上这位用户的文件,就是精准的打击了这一个用户的数据,其他用户的数据都没问题。(这种可能不管你信不信,我反正相信的)最终这位用户的数据在迁数据时又正好恰恰被 ops 选中,不恰当的回收,最后不幸导致了数据丢失。
大概是这样吧?