raid(磁盘阵列)

1、简介

RAID 是英文 Redundant Array of Independent Disk 的首字母缩写,中文意思是:独立磁盘冗余阵列。通俗的讲就是把多块硬盘组成一个独立的磁盘阵列进行管理。

磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

磁盘阵列还能利用同位检查(Parity Check)的观念,当数组中任意一个硬盘发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。

用RAID最直接的好处是:

  • 提升数据安全性
  • 提升数据读写性能
  • 提供更大的单一逻辑磁盘数据容量存储

2、功能

RAID技术主要有以下三个基本功能:

  1. 通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
  2. 通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
  3. 通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。

3、原理

磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。

和当时PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。

在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。

4、优缺点

优点
提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。

通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

缺点
RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。

RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。

5、分类

RAID 可以按照硬盘数量和组织方式不同分为不同类型的 RAID 实现

常见的有: RAID 0、RAID 1、RAID 5、RAID 6、RAID 01、RAID 10
不常见的有:RAID 2、RAID 3、RAID 4、RAID 7、RAID 50、RAID 53

下面我们介绍不同实现方式下的 RAID,探索一下各种 RAID 的优点和缺点,在什么场景下使用何种 RAID。

开始之前要先穿插介绍一下 RAID 实现中有时需要使用到 Spare(备用硬盘)

Spare 是在 RAID 实现中需要额外添加的硬盘,当组成 RAID 的硬盘都正常工作的时候,Spare 硬盘是处于空闲状态的,只有当组成 RAID 的硬盘中有损坏的时候,Spare 硬盘才会自动替换损坏的硬盘位置,加入到 RAID 阵列中

RAID 术语

  • 条带化:指将数据分到多个驱动器上。条带 RAID 阵列通常用于将最大的容量合并到单个卷中。 镜像:指将数据复制到多个磁盘上。镜像 RAID
  • 阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的 RAID 级别。 容错:指可让 RAID
  • 阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据)

RAID 0

RAID0 是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此执行性能非常的高。
在这里插入图片描述
RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)

但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中。

特点:

  • 最少需要两块磁盘
  • 数据条带式分布
  • 没有冗余,性能最佳(不存储镜像、校验信息)
  • 不能应用于对数据安全性要求高的场合

优缺点:

读写性能是所有RAID级别中最高的。

RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。一般不建议企业用户单独使用。

总结:

磁盘空间使用率:100%,故成本最低。
读性能:N单块磁盘的读性能
写性能:N
单块磁盘的写性能
冗余:无,任何一块磁盘损坏都将导致数据不可用。

RAID1

RAID1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。

RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。
在这里插入图片描述
特点:

  • 最少需要2块磁盘
  • 提供数据块冗余
  • 性能好

优缺点:

RAID1通过硬盘数据镜像实现数据的冗余,保护数据安全,在两块盘上产生互为备份的数据,当原始数据繁忙时,可直接从镜像备份中读取数据,因此RAID1可以提供读取性能。

RAID1是硬盘中单位成本最高的,但提供了很高的数据安全性和可用性,当一个硬盘失效时,系统可以自动切换到镜像硬盘上读/写,并且不需要重组失效的数据。

总结:

  • 磁盘空间使用率:50%,故成本最高。
  • 读性能:只能在一个磁盘上读取,取决于磁盘中较快的那块盘
  • 写性能:两块磁盘都要写入,虽然是并行写入,但因为要比对,故性能单块磁盘慢。
  • 冗余:只要系统中任何一对镜像盘中有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。

RAID 5

这是目前用的最多的一种方式。
因为 RAID5 是一种将 存储性能、数据安全、存储成本 兼顾的一种方案。

在了解RAID5之前,我们可以先简单看一下RAID3,虽然RAID3用的很少,但弄清楚了RAID3就很容易明白RAID5的思路。

RAID3的方式是:将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写「奇偶校验码」。例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。

但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。

RAID5的方式可以说是对RAID3进行了改进。

RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
在这里插入图片描述
RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)

RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

特点:

  • 最少3块磁盘
  • 数据条带形式分布
  • 以奇偶校验作冗余
  • 适合多读少写的情景,是性能与数据冗余最佳的折中方案

RAID6

为了进一步提高存储的高可用,聪明的人们又提出了RAID6方案,可以在有两块磁盘同时损坏的情况下,也能保障数据可恢复。

为什么RAID6这么牛呢,因为RAID6在RAID5的基础上再次改进,引入了双重校验的概念。

RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。

但是RAID6的这种设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际环境中应用的比较少。

RAID10(又叫RAID 1+0)

RAID10其实就是RAID1与RAID0的一个合体。

在这里插入图片描述
RAID10兼备了RAID1和RAID0的有优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。

但也可以看出RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。

特点:

  • 最少需要4块磁盘
  • 先按RAID 0分成两组,再分别对两组按RAID 1方式镜像
  • 兼顾冗余(提供镜像存储)和性能(数据条带形分布)
  • 在实际应用中较为常用

RAID 0 1 5 10 简单区别

类型RIAD 0RAID 1RAID 5
(raid0和raid的折中方案)
RAID 10(RAID 10+1镜像阵列条带)
读写性能最好(因并行性而提高)读和单个磁盘无分别,写则要写两边读:RAID 5=RAID 0(相近似的数据读取速度)写:RAID 5<对单个磁盘进行写入操作(多了一个奇偶校验信息写入)读:RAID10=RAID0(数据跨盘抽取)写:RAID10=RAID1(每个磁盘都有一个镜像磁盘)
安全性最差(毫无安全保障)1/n最高(提供数据的百分之百备份)RAID 0<RAID 5<RAID 1RAID10=RAID1
冗余类型没有有 镜像100%(mirror)奇偶校验有 镜像100%(mirror)
磁盘数量2或2*n(这里至少2个)≥2≥3≥4
连接方式串联并联并联符合并联(先做两个RAID1然,再并联按照RAID1)
磁盘利用率最高(100%)差(50%)RAID0>RAID 5>RAID 1 (n-1)*10RAID10=RAID1(50%)
容错率没有错误修复能力
随机/连续写性能
管理方便性容易出现问题,及时更换问题硬盘
成本最低最高RAID 5<="">RAID10=RAID1
应用方面普通个人用户,图形工作站(对性能要求高,安全率要求不高)适用于存放重要数据,如服务器和数据库存储等领域。是一种存储性能、数据安全和存储成本兼顾的存储解决方案。(随机数据传输要求安全性高)应用领域:金融、数据库存储等集合了RAID0,RAID1的优点,但是空间上由于使用镜像,而不是类似RAID5的“奇偶校验信息”,磁盘利用率一样是50%
其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值