非常阔气的Raid磁盘阵列

详解Raid磁盘阵列

一、什么是raid,为甚吗要用软raid?

RAID是“Redundant Array of Independent Disk”的缩写,叫独立冗余磁盘阵列。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。

原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

目前,RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。其中在Linux下通过自带的软件就能实现RAID功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁盘的 IO 性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。

二、各级别raid原理及其之间的发展逻辑

Raid 0 【Data Striping技术】数据条带化技术

要实现raid 0必须要有两个以上硬盘驱动器,RAID0实现了带区组,数据并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。

因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的数据在不同的驱动器上效率最好。

同时,RAID可以提高数据传输速率,比如所需读取的文件分布在两个硬盘上,这两个硬盘可以同时读取。那么原来读取同样文件的时间被缩短为1/2。

不存在校验,不会占用太多CPU资源,Raid 0 是各级别中读取数据速度最快的。

条带化影响数据的可用可靠性,若一个磁盘(物理)损坏,则所有的数据都无法使用,损害数据的完整性。

适用的商业环境:

视频生成和编辑、图像编辑等对数据稳定性要求不高的场合,其他需要大的传输带宽的操作。

然而条带几乎没有冗余能力。。

那么问题来了:怎样解决这个难题哪?

Raid 1 【Disk Mirroring技术】磁盘镜像技术

Raid 1结构的设备比较容易设计和实现。

Raid控制器必须能够同时对两个盘进行读操作和写操作。

通过结构图可以看到必须有两个驱动器。因为是镜象结构在一组盘出现问题时,可以使用镜象备份,提高系统的容错能力。

每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。因为Raid 1的校验十分完备,因此对系统的处理能力有很大的影响,通常的raid功能由软件实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效率。

而且Raid 1技术支持"热替换",即不断电的情况下对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据即可。当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。

缺点:

巨浪费存储空间,写能力下降,但读性能提升。

其磁盘的利用率却只有50%,是所有Raid级别中最低的。

适用的商业环境:

不计成本,数据价值级别高,象财务、金融等;

当系统需要高可用、高安全的数据存储环境,那么使用raid 1比较合适。

Raid 2 【Hamming Code技术】条带+海明码校验技术

左边的各个磁盘上是数据的各个位,由一个数据不同的位运算得到的海明校验码可以保存另一组磁盘上。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。它的数据传送速率相当高,如果希望达到比较理想的速度,那最好提高保存校验码ECC码的硬盘,对于控制器的设计来说,它又比raid 3,4或5要简单。

缺点:

花费大,成本昂贵,

输出数据的速率与驱动器组中速度最慢的相等。

So ,Raid 2在商业环境中很少使用,主要因为需要多个磁盘存放检查及恢复信息,使其技术实施更复杂。

Raid 3 【Exclusive OR / XOR】条带+奇偶校验码的并行传送

这种校验码与raid 2不同,只能查错不能纠错。它访问数据时一次处理一个带区,这样可以提高读取和写入速度,它像raid 0一样以并行的方式来存放数据,但速度没有raid 0快。校验码在写入数据时产生并保存在另一个磁盘上。

需要实现时用户必须要有三个以上的驱动器,写入速率与读出速率都很高,因为校验位比较少,因此计算时间相对而言比较少。用软件实现RAID控制将是十分困难的,控制器的实现也不是很容易。

不同于raid 2,raid 3使用单块磁盘存放奇偶校验信息。

如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据。

如果奇偶盘失效,则不影响数据使用。Raid 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。 利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1。

适用的商业环境:

视频生成和图像、视频编辑等需要高吞吐量的应用环境

Raid 4 【Exclusive OR / XOR】条带+奇偶校验码的独立磁盘结构

创建RAID 4需要三块或更多的磁盘,它在一个驱动器上保存校验信息,并以RAID 0方式将数据写入其它磁盘,如图所示。因为一块磁盘是为校验信息保留的,所以阵列的大小是(N-l)*S,其中S是阵列中最小驱动器的大小。就像在 RAID 1中那样,磁盘的大小应该相等。

如果一个驱动器出现故障,那么可以使用校验信息来重建所有数据。

如果两个驱动器出现故障,那么所有数据都将丢失。不经常使用这个级别的原因是校验信息存储在一个驱动器上。每次写入其它磁盘时,都必须更新这些信息。因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的RAID很少使用了。
RAID 4 是采取独立存取模式,同时以单一专属的Parity Disk 来存放Parity Data。RAID 4的每一笔传输﹝Strip﹞资料较长,而且可以执行Overlapped I/O,因此其读取的性能很好。

RAID4和RAID3很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特点的RAID3也挺象,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好

Raid 5 分布式奇偶校验的独立磁盘结构

从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。

但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有"写损失",即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

RAID 5的话,优点是提供了冗余性(支持一块盘掉线后仍然正常运行),磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。RAID5最大的好处是在一块盘掉线的情况下,RAID照常工作,相对于RAID0必须每一块盘都正常才可以正常工作的状况容错性能好多了。因此RAID

5是RAID级别中最常见的一个类型。

RAID 5校验位即P位是通过其它条带数据做异或(xor)求得的。

计算公式为P=D0xorD1xorD2…xorDn,

其中p代表校验块,Dn代表相应的数据块,xor是数学运算符号异或。  

RAID5校验位算法详解   

P=D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)

适用的商业环境:

文件服务器、Email服务器、Web服务器等环境、数据库应用

XOR编码与校验的基本原理

◎相同为假【0】,不同为真【1】

◎XOR的逆操作是XOR

还有两种组合:raid 1+0和raid 0+1

这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以互为镜像的目的。大家可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的数据库中。

Raid 0+1【先做条带后镜像】 高可靠性与高效磁盘结构

raid 0+1则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。raid 0+1比起RAID 10有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,raid 0+1就会停止运作,而raid 1+0则可以在牺牲RAID 0的优势下正常运作。

Raid 1+0 【先做镜像后条带】

raid 1+0是先镜射再分区数据。是将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。raid 1+0有着不错的读取速度,而且拥有比RAID 0更高的数据保护性。

raid 1+0巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用。

Raid 50 被称为分布奇偶位阵列条带

同RAID 10相仿的,它具有RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实验跨磁盘抽取数据。RAID 50提供可靠的数据存储和优秀的整体性能,并支持更大的卷尺寸。即使两个物理磁盘发生故障(每个阵列中一个),数据也可以顺利恢复过来。

RAID 50最少需要6个驱动器,它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。

Jbod

严格的说,JBOD并不属于RAID的范畴,只是将多个磁盘空间合并成一个大的逻辑磁盘,不具有错误冗余机制。资料的存放机制是由第一颗磁盘开始依序往后存放,即操作系统看到的是一个大磁盘(由许多小磁盘组成)。但如果磁盘损毁,则该颗硬盘上的所有资料将无法救回。若第一颗硬盘损坏,通常无法作救援(因大部分档案系统将档案表存在磁盘前端,即第一颗),失去档案表即失去一切资料。

在实际的应用中,RAID2~4并不存在,因为RAID5已经涵盖了所需的功能。因此RAID2~4目前只有在研究领域有实作,而在实际应用上则以RAID 0、1、0+1、5或RAID6为主。但是对于我们普通用户来说,用的最多的也就是RAID 0、1、0+1和RAID 5。

时间: 2024-10-10 23:20:27

非常阔气的Raid磁盘阵列的相关文章

RAID磁盘阵列常见故障以及修复方法

服务器数据安全有着至关重要的意义,目前大多数服务器都采用了RAID磁盘阵列技术.受服务器自身硬件局限和技术人员的操作因素,服务器无阵列无法做到100%的无故障发生.那么RAID磁盘阵列故障有哪些?RAID磁盘阵列如何进行数据恢复? 导致磁盘阵列RAID数据丢失的故障原因分为RAID逻辑层故障,RAID物理层故障以及RAID坏道层故障. 对于逻辑层故障,例如误删除,误格式化,误分区,RAID阵列信息丢失, RAID阵列信息混乱, 重新配置RAID阵列信息导致数据丢失, RAID阵列内磁盘顺序出错等

RAID磁盘阵列详细说明

RAID就是磁盘阵列. 把多块硬盘整合成为一块硬盘去工作. 我们为什么需要使用raid 磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同工作,大大提高了读取速度,同时把磁盘系统的可靠性提高到接近无错的境界,使其可靠性极高. 用raid最直接的好处是: 1.提升数据安全性. 2.提升数据读写性能. 3.提供更大的单一逻辑磁盘数据容量存储. RAID级别 关键优点 关键缺点 实际应用场景 RAID0 读写速度最快 没有任何冗余(就是没有备份,一块盘坏了,数据全丢失) MySQl,Slav

1-15-1 RAID磁盘阵列的原理和搭建

大纲: 1.1-1-企业级RAID磁盘阵列 RAID磁盘阵列的原理 RAID0,1,5,10的搭建 硬件RAID卡 1.2-1-使用廉价的磁盘搭建RAID磁盘阵列 实战-配置RAID0带区卷 ======================================== 1.1 企业级RAID磁盘阵列 RAID磁盘阵列的原理: RAID(Redundant Array of Independent Disks)独立磁盘冗余阵列 可以提供较普通磁盘更高的速度.安全性,所以服务器在安装时,都会选择

RAID磁盘阵列原理

磁盘阵列(Redundant Arrays of independent Disks,RAID),有“价格便宜具有冗余能力的磁盘阵列”之意.原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性.磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能.利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上.磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时

RAID磁盘阵列数据丢失的原因及建议

服务器RAID磁盘阵列信息丢失是许多站长或服务器管理员的噩梦,如果你曾经经历过类似的raid磁盘数据丢失,然后四处寻找数据恢复公司的事情,那么你一定对RAID磁盘数据恢复记忆犹新,如果你从来没有经历过,只是听说过此事,那么你一定往下看,RAID磁盘阵列信息丢失的原因有哪些,只有知道这些原因才能减少和避免RAID磁盘阵列信息丢失.天盾工程师最近频繁接到类似RAID磁盘阵列的丢失客户,此我们根据天盾数据恢复中心工程师多年的经验总结,以下情况经常会导致 RAID 磁盘阵列信息丢失: 1 . RAID

[转载]RAID磁盘阵列扩容 DELL 服务器阵列扩容&nbs

原文地址:RAID磁盘阵列扩容 DELL 服务器阵列扩容 和 RAID 级别迁移 (RLM)作者:DELL服务器 我们可通过扩充容量和 / 或改变 RAID 级别的方式来重新配置联机虚拟磁盘. 注: 跨接式虚拟磁盘 (如 RAID 10. 50 和 60)无法重新配置. 注: 重新配置虚拟磁盘时一般会对磁盘性能有所影响,直到重新配置完成后为止. 联机容量扩充 (OCE) 可通过两种方法实现. 如果磁盘组中只有一个虚拟磁盘,而且还有可用空间可供使用,则可在可用空间的范围内扩充虚拟磁盘的容量. 如果

Raid磁盘阵列数据恢复方法介绍

RAID磁盘阵列设备,在使用过程中,经常会遇到一些常见故障,这也使得RAID在给我们带来海量存储空间的应用之外,也带来了很多难以估计的数据风险.什么原因容易导致RAID磁盘阵列信息丢失呢?RAID阵列卡或服务器出现故障,系统损坏;磁盘物理故障,如:电路板坏.磁头损坏.盘面坏.坏扇区.固件坏;突然停电;拔插硬盘将顺序弄错;阵列中损坏2块以上硬盘;重新配置RAID阵列信息等都有可能导致数据丢失. 一旦RAID磁盘阵列出现故障,不要轻易尝试Rebuild.同步等操作.什么是Rebuild?简单来说,R

Linux下彻底关闭某个RAID磁盘阵列

1.查看RAID磁盘阵列信息,确认一下要关闭哪个.如:关闭md0这个阵列 [[email protected] ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdb5[3](S) sdb1[0] sdb2[1] sdb3[4] 1043456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused de

RAID 磁盘阵列的应用

RAID 磁盘阵列的应用 RAID,一般翻译为磁盘阵列,全称是 Redundant Arrays of Inexpensive Disk,最初的构想是源于加州大学伯克利分校的一个研究小组的项目,他们希望通过大量廉价的硬盘来组建价格便宜,可用性高的磁盘阵列.但是RAID发展到今天,已经背离了当初价格便宜的初衷.但是RAID也带来了另外的好处,如何合理选择RAID的级别,可以构建出具有更高可用性,更好地容错的磁盘. RAID主要分为软件RAID和硬件RAID,软件RAID主要是通过操作系统来实现,这