磁盘静默错误

博客介绍了硬盘的静默错误,英文为 Silent Data Corruption。硬盘正常应正确读写数据、出错告警,常规问题如硬件错误等能被捕获。而静默错误是数据处理看似正常,使用时才发现数据错误、损坏,即读写成功但数据不一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静默错误

静默错误在英文中被称为:Silent Data Corruption,硬盘最核心的使命是正确的写入数据、正确的读出数据,在出错时及时抛出异常告警。磁盘出现异常的情形可能包括硬件错误、固件 BUG 或者软件 BUG、供电问题、介质损坏等,这些常规的问题都能够被正常捕获抛出异常,而最可怕的事情是,数据处理都是正常的,直到你使用的时候才发现数据是错误的、损坏的。这就是静默错误,即写入和读出成功,但是数据却不一致。
参考

针对数据存储,OceanBase 数据库从数据存储最小 I/O 粒度微块开始,在每个微块/宏块/SSTable/ 分区上都记录了相应的校验和,每次数据读取时都会进行数据校验;为了防止底层存储硬件问题,在转储合并写入数据宏块时也会在写入后马上重新对数据进行校验;最后每个 Server 后台会有定期的数据巡检线程对整体数据扫描校验,以提前发现磁盘静默错误。 当数据写入存储介质时,系统会计算该数据块的CRC校验和并将其存储在数据块的元数据区域中,CRC校验在此系统当中如同数据的"指纹",能够唯一标识该数据块的内容。在后续的读取操作中,系统会重新计算数据块的CRC值,并与存储的校验和进行比对,任何微小的差异都会被立即发现并报告为物理校验错误。 这种基于CRC的校验机制不仅仅局限于普通的数据块,更扩展到了数据库系统中最关键的元数据结构——超级块。超级块承载着整个数据库文件系统的核心元数据信息,包括数据分布、索引结构、事务状态等关键信息,其完整性直接关系到整个数据库系统的可用性。 OceanBase对超级块实施了严格的物理校验机制,通过多重校验和交叉验证确保这些关键数据结构的绝对可靠性。当系统启动时,会首先对超级块进行全面的完整性检查,只有在确认所有关键元数据都完整无损的情况下,数据库才会正常启动并提供服务。 上面这些内容对吗?
最新发布
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值