Raid及其常见级别详解(附简单案例)

前言:如有疑问(包括但不限于本篇,涉及网络  系统皆可),欢迎评论探讨,看见能解答必回。彼此交流,共同成长。)

摘要:1.常用Raid级别的比较、raid3、5、6的容错原理 2.基于维基百科的raid各个级别概念了解(重点是raid1+0的工作原理和特性)3.raid设备的创建案例。

摘录维基百科部分注解:

RAID(独立磁盘冗余阵列,最初是廉价磁盘冗余阵列)是一种数据存储虚拟化技术,它将多个物理磁盘驱动器组件组合成一个或多个逻辑单元,以实现数据冗余,性能改进或两者兼而有之。这与先前被称为“单个大型昂贵磁盘”(SLED)的高可靠性主机磁盘驱动器的概念形成对比。

 

数据以多种方式之一分布在驱动器上,称为RAID级别,具体取决于所需的冗余和性能级别。不同的方案或数据分布布局由“RAID”后跟一个数字命名,例如RAID 0或RAID 1.每个方案或RAID级别在关键目标之间提供不同的平衡:可靠性,可用性,性能和容量。RAID级别大于RAID 0可防止不可恢复的扇区读取错误,以及整个物理驱动器的故障。

术语“RAID”是由发明大卫·帕特森,加思·吉布森A.和兰迪·卡兹在美国加州大学伯克利分校于1987年在其1988年6月论文“廉价磁盘(RAID)冗余阵列案”,在呈现在SIGMOD会议上,他们认为,当时性能最佳的大型机磁盘驱动器可能会因为一系列为不断增长的个人计算机市场开发的廉价驱动器而在性能上受到打击。虽然故障会与驱动器数量成比例增加,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性。

虽然尚未使用该术语,但在该论文发表之前,1988年6月论文中提到的五级RAID技术被用于各种产品,包括以下内容:

 

镜像(RAID 1)在20世纪70年代已经建立,包括例如Tandem NonStop Systems。

1977年,IBM的 Norman Ken Ouchi 提交了一项专利,披露了后来命名为RAID 4的内容。

在1983年左右,DEC开始将子系统镜像RA8X磁盘驱动器(现在称为RAID 1)作为其HSC50子系统的一部分。

1986年,克拉克等人。在IBM提交了一项专利,披露了后来命名为RAID 5的内容。

大约在1988年,Thinking Machines的 DataVault在一系列磁盘驱动器中使用了纠错码(现在称为RAID 2)。在20世纪60年代早期,IBM 353采用了类似的方法。

行业制造商后来重新定义了RAID的首字母缩略词,代表“ 独立磁盘冗余阵列”。

许多RAID级别采用称为“ 奇偶校验 ” 的错误保护方案,这是信息技术中广泛使用的方法,用于在给定数据集中提供容错。大多数使用简单的XOR,但RAID 6使用两个单独的奇偶校验,分别基于特定伽罗瓦域或里德 - 所罗门纠错中的加法和乘法。[14]

RAID还可以提供固态驱动器(SSD)的数据安全性,而无需使用全SSD系统。例如,快速SSD可以使用机械驱动器进行镜像。对于此配置提供显着的速度优势,需要使用适当的控制器,其将快速SSD用于所有读取操作。Adaptec称之为“混合RAID”。[15]

 

 

标准RAID级别

存储服务器具有24个硬盘驱动器和内置硬件RAID控制器,支持各种RAID级别

许多标准方案已经发展。这些被称为级别。最初,有五个RAID级别,但是已经发展了许多变化,特别是几个嵌套级别和许多非标准级别(主要是专有级别)。RAID级别及其相关数据格式由存储网络行业协会(SNIA)以通用RAID磁盘驱动器格式(DDF)标准标准化。

 

RAID 0

RAID 0由条带化组成,但没有镜像或奇偶校验。与跨区卷相比,RAID 0卷的容量相同; 它是集合中磁盘容量的总和。但由于条带化会在集合中的所有磁盘之间分配每个文件的内容,因此任何磁盘的故障都会导致所有文件(整个RAID 0卷)丢失。断开的跨区卷至少会保留不可用磁盘上的文件。RAID 0的好处是吞吐量对任何文件的读写操作乘以磁盘数量,因为与跨区卷不同,读取和写入是同时完成的,[11]并且成本完全是驱动器故障的漏洞。

 

RAID 1

RAID 1由数据镜像组成,没有奇偶校验或条带化。数据以相同的方式写入两个驱动器,从而生成驱动器的“镜像集”。因此,任何读取请求都可以由集合中的任何驱动器提供服务。如果请求被广播到集合中的每个驱动器,它可以由首先访问数据的驱动器提供服务(取决于其寻道时间和旋转延迟)),提高性能。如果控制器或软件针对它进行了优化,持续读取吞吐量接近集合中每个驱动器的吞吐量总和,就像RAID 0一样。大多数RAID 1实现的实际读取吞吐量比最快的驱动器慢。写吞吐量总是较慢,因为必须更新每个驱动器,并且最慢的驱动器限制写性能。只要至少一个驱动器正常运行,阵列就会继续运行。

RAID 2

RAID 2由具有专用汉明码奇偶校验的位级条带化组成。所有磁盘轴旋转都是同步的,数据是条带化的,因此每个顺序位都在不同的驱动器上。汉明码奇偶校验在相应的位上计算并存储在至少一个奇偶校验驱动器上。[11]这个级别仅具有历史意义; 虽然它在一些早期的机器上使用(例如,Thinking Machines CM-2),[18]截至2014年,它并未被任何商用系统使用。[19]

RAID 3

RAID 3由具有专用奇偶校验的字节级条带化组成。所有磁盘主轴旋转都是同步的,数据是条带化的,因此每个顺序字节位于不同的驱动器上。奇偶校验跨相应的字节计算并存储在专用奇偶校验驱动器上。[11]尽管存在实现方式中,[20] RAID 3不是常用的实践中使用。

 

RAID 4

RAID 4由具有专用奇偶校验的块级条带化组成。此级别以前由NetApp使用,但现在已经在很大程度上被具有两个奇偶校验磁盘(称为RAID-DP)的RAID 4的专有实现所取代。[21] RAID 4优于RAID 2和3的主要优点是I / O并行性:在RAID 2和3中,单个读取I / O操作需要读取整组数据驱动器,而在RAID 4中则是一个I / O读操作不必分布在所有数据驱动器上。因此,可以并行执行更多I / O操作,从而提高小型传输的性能。

RAID 5

RAID 5由具有分布式奇偶校验的块级条带化组成。与RAID 4不同,奇偶校验信息在驱动器之间分配,需要所有驱动器,但需要一个驱动器才能运行。在单个驱动器发生故障时,可以从分布式奇偶校验计算后续读取,使得没有数据丢失。RAID 5至少需要三个磁盘。与所有单奇偶校验概念一样,大型RAID 5实施容易受到系统故障的影响,因为有关阵列重建时间和重建期间驱动器故障的可能性的趋势(请参阅下面的“增加重建时间和故障概率”部分)。重建阵列需要读取所有磁盘上的所有数据,从而为第二次驱动器故障和整个阵列丢失提供了机会。2012年8月,戴尔发布了针对在Dell EqualLogic阵列和RAID 50上使用RAID 5以及“1 TB及更高容量的2级7200 RPM驱动器”用于关键业务数据的建议。

 

 

RAID 6

RAID 6由具有双分布式奇偶校验的块级条带化组成。双奇偶校验可提供最多两个故障驱动器的容错。这使得更大的RAID组更加实用,尤其是对于高可用性系统,因为大容量驱动器需要更长时间才能恢复。RAID 6至少需要四个磁盘。与RAID 5一样,单个驱动器故障会导致整个阵列的性能降低,直到更换故障驱动器。使用RAID 6阵列,使用来自多个源和制造商的驱动器,可以缓解与RAID 5相关的大多数问题。驱动器容量越大,阵列大小越大,选择就越重要RAID 6而不是RAID 5. RAID 10还可以最大限度地减少这些问题。

 

 

嵌套的RAID级别

在最初被称为混合RAID的应用中,[许多存储控制器允许嵌套RAID级别。RAID的元素可以是单独的驱动器,也可以是阵列本身。数组很少嵌套超过一个级别。

最后一个数组称为顶部数组。当顶部阵列是RAID 0时(例如在RAID 1 + 0和RAID 5 + 0中),大多数供应商省略“+”(分别产生RAID 10和RAID 50)。

RAID 0 + 1:创建两个条带并镜像它们。如果发生单个驱动器故障,则其中一个条带发生故障,此时它有效地作为RAID 0运行而没有冗余。重建期间引入的风险明显高于RAID 1 + 0,因为必须读取剩余条带中所有驱动器的所有数据,而不是仅从一个驱动器读取,从而增加了不可恢复读取错误(URE)的可能性并显着扩展重建窗口。

案例:创建软raid设备

#mknod /dev/md1  b 9 1    b块设备    raid主设备号就是9不能更改9主设备号   1从设备号可以定义但是是惟一的不能重复

#ll /dev/md1

创建raid

#mdadm -C /dev/md1 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd

创建raid -C指定创建在哪个设备下 -l级别 -n对几块磁盘创建指定 磁盘设备

查看raid信息

Mdadm -D /dev/md1

#mkfs.ext4 /dev/md1

#mkdir /public

#munt /dev/md1 /public

Cd /public

Touch {1..100}

Mdadm /dev/md1 -f /dev/sdd   将第三块磁盘置为不可用

Mdadm -D /dev/md1

那么启用备份需要即将坏掉的移除启用备份

Mdadm /dev/md1 -r /dev/sdd

Mdadm /dev/md1 -a /dev/sde

删除raid

Umount /public

Mdadm /dev/smd1 -f /dev/sdb

Mdadm /dev/md1 -f /dev/sdc

Mdadm /dev/md1 -f /dev/sda

 

Mdadm /dev/md1 -r /dev/sdb

Mdadm /dev/md1 -r /dev/sdc

Mdadm /dev/md1 -r /dev/sde

Mdadm -S (stop) /dev/md1

Mdadm -Ds /dev/md1

Rm -rf /dev/md1

发布了33 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40993864/article/details/85249472
今日推荐