Write Hole 是一种非常形象的描述。在出现系统异常情况(双转单、级联框掉电、系统异常复位或掉电)易出现WriteHole现象。
为了彻底解决 Write Hole 问题,在设计 RAID 的时候可以采用如下两种方法:
1,采用文件系统的Journal(日志)的设计思想,实现写请求的原子处理
2,借助于采用非易失性内存做为写缓存,达到原子写操作的目的
WriteHole起因:WriteHole的出现是为了解决在下盘过程中由于某些操作导致数据分条校验不一致,如:RAID组级别为RAID5,成员盘为4,写数据D0、D1、D2,
通过RAID5的校验数据计算方法得到校验数据P=D0⊕D1⊕D2,D0数据已经下盘,D1、D2、P正在下盘过程中,系统控制器出现故障,导致D1、D2和P没有下发成功,
因此,出现数据分条校验不一致,如何解决呢?如何避免数据不一致?WriteHole就此诞生!