block checksum mismatch
25 Feb 2024
|
|
大概率盘的问题,看了一遍全网案例
block checksum mismatch
大概率盘坏,搜到的解决方案都是重建为主
- ceph案例
- https://tracker.ceph.com/issues/48002 重建
- https://forums.percona.com/t/unable-to-run-due-to-rocksdb-error/16654 重建
- google group邮件
- https://groups.google.com/g/rocksdb/c/io7y5AqxDkk/m/VnTLHbq5AQAJ 认为是硬件问题
- https://groups.google.com/g/rocksdb/c/gUD4kCGTw-0/m/SpTzOgS8AgAJ 尝试scan 重建sst结果搞坏两份备份,幽默
- https://github.com/apache/bookkeeper/pull/3568 7.4有bug升级到7.5
fixed after 7.4.0. The fix is followed Fixed a bug in WriteBatchInternal::Append() where WAL termination point in write batch was not considered and the function appends an incorrect number of checksums.
-
https://github.com/arangodb/arangodb/issues/9801 结论?
-
rocksdb的论文 https://blog.mwish.me/2023/01/22/Fast21-RocksDB/ 还是备份。数据损坏是一种必然
RocksDB 面临着下面的错误:
SSD 盘故障 由于性能原因,用户可能不会开启 DIF/DIX 等校验方式
内存 / CPU 故障:发现原因较少,不过我姑且也碰到过几次
软件故障
网络传输的时候产生的问题(网卡等)
根据 RocksDB 的统计
在 FB,每 100PB 数据,一个月会出现三次 corrupt 40% 的情况下,这些 Corrupt 已经扩散到了别的机器上 网络系统可能会有每 PB 17次 checksum mismatch
基于以上的情况,FB 认为,需要尽早找到 Corrupt,来减少因为 Corrupt 产生的 Downtime。在分布式系统中,还是能够用正确副本代替错误副本来修正数据的
注意这个数据,在公有云场景下,概率还得翻倍吧
- tidb案例
- https://asktug.com/t/topic/782830?replies_to_post_number=3 盘坏,阿里云是ceph改
- https://asktug.com/t/topic/1022009 云盘坏
- https://tidb.net/blog/54e388c8?_gl=1k883y2_gaMjA3MTYxNTczMS4xNzA5MTAxODM4_ga_D02DELFW09*MTcwOTEwMTgzNy4xLjEuMTcwOTEwMjE5OC4wLjAuMA.. 修复方案 删数据 删副本 tidb是混合的单个db,后面拆开了,但最开始的region设计是单db的
- https://asktug.com/t/topic/1009328?replies_to_post_number=20
- 盘坏 https://asktug.com/t/topic/69009/21?page=2
- rocksdb案例
- https://github.com/facebook/rocksdb/issues/2882 hdd坏盘
- https://github.com/facebook/rocksdb/issues/10531 重建
- https://github.com/facebook/rocksdb/issues/3509 内存坏
- https://github.com/facebook/rocksdb/issues/6435 无结论,怀疑导入的数据就是有问题的
- ingest file开启checksum
其他挽救方案
- ldb –repair 扫除故障文件
- https://github.com/facebook/rocksdb/pull/6955 重建sst,没合入
- ajkr说有unsafe_remove_sst_file可以用,需要测试,这里标记TODO