WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

新闻资讯 > RAID > 正文
超慢RAID重建后:有如闪存?
作者: WS 2016-05-30 14:26 【WatchStor】

分析可得RAID的重建时间过慢与4、6和8和10TB的驱动器有关。因此擦除编码引入后,缩短了故障磁盘的数据重建时间,也减少了容量开销费用。当固态硬盘用于代替硬盘驱动器将会发生什么?是否RAID或多或少可以接受比磁盘驱动器?

直觉上我们预计从一个故障SSD组件中恢复的闪存阵列会比从磁盘故障中恢复的磁盘阵列快。但是为什么?到底又有多快?

RAID背景

背景是,当阵列中的磁盘出现故障时,该阵列的控制器硬件/软件将会在另一个磁盘重建故障磁盘中的内容,它会在该阵列的其他磁盘上正常的运作读取和写入数据,用于访问连接服务器的应用。故障磁盘的重建时间受控制器资源的专用于重建工作的量而决定,所需的处理时间量,来读取在其他磁盘上的故障磁盘数据所需要的时间,并写入到新磁盘中恢复的数据所需的时间。

RAID 1和5可以从单个磁盘故障中恢复,RAID 6可以同时保护2个故障磁盘。而两个磁盘是RAID 1的最低需求,RAID 5为3个,RAID 6为4个。冗余数据和奇偶校验块分布在所有的驱动器中以提供更统一的IO倍数。

RAID带来更多容量开销,如RAID 1,用于镜像时,当第二个磁盘镜像第一个磁盘时需要100%的开销。在RAID 1方案中只需两个驱动器。其它方案,如RAID 5和RAID6中,需要添加一个(RAID 5)或两个(RAID 6)计算出每个数据块中写入到磁盘的奇偶校验数据块,并把磁盘的数据和奇偶数据中的片段复制到其他驱动器的碎片中,以便当源磁盘发生故障时,其内容可以由分散的数据片段和奇偶数据重建。

当更换了故障驱动器,原来的内容可以被恢复并写入其中。

RAID 5的例子

在带有RAID 5的6×400GB阵列中,有2.4TB的原始容量和2TB的可用容量,这就意味着20%的开销。你最少需要三个驱动器,而其中之一是所谓的备用,该方案被称为N-1方案,其中N是阵列中的驱动器数量。

在10×400 GB的阵列中,有4TB的原始容量和3.6TB的可用容量,这也就意味着10%的开销。

RAID 6的例子

在带有RAID 6的4×300GB阵列中,有1.2TB的原始容量和600GB的可用容量——意味着50%的开销。在带有8个驱动器的阵列中可以实现2.4TB的原始容量和1.8TB的可用容量 –这意味着25%的开销。

假如10个驱动器的话,具有3TB的原始容量和2.4TB 的可用容量 – 为20%的开销。

这些RAID5和6的容量开销数字与磁盘驱动器和固态驱动器的数量相同。

RAID 5可以从一个阵列的单一故障驱动器中恢复,而RAID 6可以同时保护两个磁盘免受故障。由于磁盘容量的增加拉伸了RAID重建的步骤,在一个磁盘重建的过程中,第二个磁盘的故障机会也随之上升,同时在重建期间,不可恢复的读取错误机会也上升了,当然,这意味着数据将会丢失。

随着4TB和更大的磁盘驱动器的诞生,控制器只能够运用其资源的百分比来重建,重建可能需要许多天,延长了风险窗口的不可接受持续时间。

磁盘VS SSD故障

当SSD出现故障,RAID重建的时候,我们直觉地认为,应该小于磁盘的重建时间。那么,纠删码也是一样的吗?

这里有两个问题:SSD VS HDD 的RAID重建时间和RAID-VS-纠删码的重建时间。我们来看看HDD VS SSD的重建时间。

在RAID磁盘重建的过程中,有一部分时间耗费在磁盘访问延迟上。百分比是如何呢?比如在耗费接近十个小时的时间重建4TB的故障磁盘中磁盘延迟是多少?我们可以这么问:故障的4TB SSD的数据重建将被SSD存取时间占用多少呢?SAS VS SATA vs NVMe SSD访问对整个SSD重建时间的影响有多少呢?

要开启这种比较之前,我们被告知,RAID1(镜像)重建磁盘的时间必须是由磁盘的容量除以它的顺序写带宽。那么:假设这里有一个80MB/s的带宽和72GB硬盘,可以得到(7200/80)= 900秒(一个小时的四分之一,几位15分钟)的时间。

当然,这忽视了一个事实,在现实生活中,一个磁盘阵列/ RAID控制器是一个正常的IO处理过程,不可能将100%的资源花在RAID的重建过程中。但是我们现在先不考虑这些,这样我们可以得到一个随着容量上升导致的重建时间增加的基本方法。

重建表

我们可以构建一个表,用于不同的磁盘容量和带宽写入时间的统计,然后用同样的方法套用在SSD上,以比较重建的最短时间。

我们可以假设,在其他条件相同的情况下,例如RAID级别、硬件或软件RAID、容量,磁盘的RAID重建时间与SSD RAID的重建时间是相同的。

我们在带宽最快的情况下选择SSD完成此次测试。因为很多情况下的带宽都在800 MB到1.0GB/s的区域范围内,所以速度会慢一些。

从该表中得出,带有115MB/ s带宽的用于写入的4TB硬盘驱动器至少需近10个小时重建。固态硬盘比这个快得多,正如我们从表中看到的一样,他们均采取相同的算法计算。

一个4TB英特尔DC P3608具有3GB/s的连续带宽,其重建的最小时间是22分钟,比我们的4TB硬盘减少了96.6%的时间。因此由于时间上的压力,鼓励从RAID到擦除编码的转变将会变的更少。

不同的RAID级别会发生什么?

最小的驱动重建时间,在基于顺序写入数据的情况下都是相同的。但是处理时间会随着RAID的方案具有或多或少的奇偶校验数据不同的计算而不同。

带有RAID的固态硬盘的重建应该会更快,因为从剩下的固态硬盘中读取数据应该比从其他磁盘驱动器中读取数据更快。

而重建固态硬盘或者是磁盘驱动器的处理时间应该是相同的。

以上RAID方案中的基础数字,对于带有4TB的故障固态硬盘的保护重建时间是可以接受的,使用固态硬盘比使用磁盘的重建时间减少了26倍之多。任何需要在SSD上使用的擦除编码都将会比磁盘重建时间短。®


标签:固态硬盘 RAID 

LecVideo
论坛与活动