初始化流程

初始化流程,第1张

你知道RAID的初始化过程吗?

RAID系统是维护存储数据的合理方式。RAID建立过程中通常会有一个漫长的系统初始化过程。RAID初始化过程中为什么会有这样的实际 *** 作?这种实际 *** 作会对SSD造成什么程度的伤害?存储胡夫从技术研发的角度,和大家一起对RAID初始化过程进行了科学的分析和研究。

传统RAID的基本组织结构如下图所示:


所有添加了RAID组的磁盘将根据LBA详细地址被切割成一系列的片。这个切片称为条带单元,不同磁盘中匹配相同LBA详细地址的条带单元将被组织成一个条带。例如,将所有数据编号到一个条带中,RAID6会形成两个编码数据块P和Q,这可能会导致两个数据磁盘被额外损坏。

因此,在RAID系统中,条带中的所有数据都必须考虑编解码优化算法的标准,即条带中的所有数据都可以按照一定的标准形成编码数据,并且编码数据与存储在条带中的编码数据相同。这种情况称为条带中的数据一致。当硬盘出现常见故障时,可以根据存储在条带中的编码数据来修复丢失的数据块。

如果一个条带中的数据不一致,即条带中数据测量得到的编号结果与存储的编码数据不同,那么一旦硬盘出现常见故障,丢失的数据块就无法根据条带中存储的编码数据进行正确修复。因此,当发生常见故障时,具有不一致数据的条带可能会导致数据准确性问题。

构建RAID系统时,RAID组中的硬盘可能是新打开的建筑,也可能是已经使用过的数据盘。这个磁盘中的数据不总是零。在这种情况下,用这种磁盘构建的数据条带一定不能考虑数据一致性的要求。也就是说,通过根据特定标准测量每个条带中的数据而获得的编码数据与条带中的编码数据不一致。这种数据不一致的条带可能会给RAID数据准确性问题带来很大的风险。

为此,在建立RAID时,需要考虑初始化系统中的所有条带,以确保条带中数据的一致性。通常,有两种方法可用于初始化条带:


1.按照整盘写零的方法初始化RAID系统中的所有条带。如果数据全为零,校准数据也为零。所以全零数据可以保证条带的一致性。

2.对所有条带进行标定和计算,并对条带中的标定数据进行更新,以达到条带数据的一致性。


初始化RAID系统时,所有条带中的数据可能会变得越来越一致,如下图所示:


RAID系统初始化是一个非常漫长的过程,关键原因是系统中的所有条带都必须初始化。还需要考虑前端开发客户IO之间的特性平衡。所以RAID系统初始化通常是一个后台管理的过程,会持续很长时间,而且会对前端开发和应用的特性造成伤害。

对于SSD,RAID系统初始化过程将继续引入其他问题。在系统初始化的过程中,无论选择零写入还是数据更新,都必须将数据加载到SSD磁盘中。这个过程会导致不必要的数据写入变得更大。在没有加载客户端数据的情况下,已经根据初始化方法在SSD中创建了数据投影表。SSD的使用寿命和特性降低。因此,一个面向SSD的RAID系统必须考虑系统初始化过程的改进,而传统RAID要充分考虑SSD的这一特殊性并不容易。所以传统RAID不能马上部署在SSD上,会危及SSD本身的使用寿命和特性。

RAID系统使用数据条带化来维护数据,但是在数据条带化维护的过程中引入了一系列问题,系统初始化就是典型的条带一致性问题。一个优秀的RAID数据维护系统会在设计过程中摆脱这个问题。比如EMC的DataDomainRAID就不会有系统初始化的过程,自然就要配合文档系统,在RAID条带数据分布上做了很多改进。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/779962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存