RAID技术介绍

RAID技术介绍

简介

RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念。

RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。 RAID分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。 在实际应用中,可以依据自己的实际需求选择不同的RAID方案。


标准RAID

RAID 0

RAID0称为条带化(Striping)存储,将数据分段存储于 各个磁盘中,读写均可以并行处理。因此其读写速率为单个磁盘的N倍(N为组成RAID0的磁盘个数),但是却没有数 据冗余,单个磁盘的损坏会导致数据的不可修复。

大多数striping的实现允许管理者通过调节两个关键的参数来定义数据分段及写入磁盘的 方式,这两个参数对RAID0的性能有很重要的影响:

stripe width 指可被并行写入的 stripe 的个数,即等于磁盘阵列中磁盘的个数。

stripe size 也可称为block size(chunk sizestripe lengthgranularity),指写入每个磁 盘的数据块大小。以块分段的RAID通常可允许选择的块大小从 2KB 到 512KB不等,也有更 高的,但一定要是2的指数倍。以字节分段的(比如RAID3)一般的stripe size为1字节或者 512字节,并且用户不能调整。 stripe size对性能的影响是很难简单估量的,最好在实际应用中依自己需求多多调整并 观察其影响。通常来说,减少stripe size,文件会被分成更小的块,传输数据会更快,但 是却需要更多的磁盘来保存,增加positioning performance,反之则相反。应该说,没有 一个理论上的最优的值。很多时候,也要考虑磁盘控制器的策略,比如有的磁盘控制器会等 等到一定数据量才开始往磁盘写入。

RAID 1

镜像存储(mirroring),没有数据校验。数据被同等地写入两个或多个磁盘中,可想而知,写入速度会比较 慢,但读取速度会比较快。读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢 的磁盘。 RAID1也是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间较小 的那一个,较大的磁盘多出来的部分可以作他用,不会浪费。

RAID 2

RAID0的改良版,加入了汉明码(Hanmming Code)错误校验。

汉明码能够检测最多两个同时发生的比特错误,并且能够更正单一比特的错误。汉明码的位 数与数据的位数有一个不等式关系,即:

2^P ≥ P + D +1

P代表汉明码的个数,D代表数据位的个数,比如4位数据需要3位汉明码,7位数据需要4位汉 明码,64位数据时就需要7位汉明码。RAID2是按1bit来分割数据写入的,而P:D就代表了数据 盘与校验盘的个数。所以如果数据位宽越大,用于校验的盘的比例就越小。由于汉明码能够 纠正单一比特的错误,所以当单个磁盘损坏时,汉明码便能够纠正数据。

RAID 2 因为每次读写都需要全组磁盘联动,所以为了最大化其性能,最好保证每块磁盘主 轴同步,使同一时刻每块磁盘磁头所处的扇区逻辑编号都一致,并存并取,达到最佳性能。 如果不能同步,则会产生等待,影响速度。

与RAID0相比,RAID2的传输率更好。因为RAID0一般stripe size相对于RAID2的1bit来说 实在太大,并不能保证每次都是多磁盘并行。而RAID2每次IO都能保证是多磁盘并行,为了 发挥这个优势,磁盘的寻道时间一定要减少(寻道时间比数据传输时间要大几个数量级),所 以RAID2适合于连续IO,大块IO(比如视频流服务)的情况。

RAID 3

类似于RAID2,数据条带化(stripe)存储于不同的硬盘,数据以字节为单位,只是RAID3使用单块磁盘存储简单的 奇偶校验信息,所以最终磁盘数量为 N+1 。当这N+1个硬盘中的其中一个硬盘出现故障时, 从其它N个硬盘中的数据也可以恢复原始数据,当更换一个新硬盘后,系统可以重新恢复完整 的校验容错信息。

由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用 RAID3,安全性是可以得到保障的。RAID 3会把数据的写入操作分散到多个磁盘上进行,不管是向哪一个数据盘写入数据, 都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来 说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。 鉴于这种原因,RAID 3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如 数据库和WEB服务器等。

RAID 4

与RAID3类似,但RAID4是按块(扇区)存取。无须像RAID3那样,哪怕每一次小I/O操作也要涉 及全组,只需涉及组中两块硬盘(一块数据盘,一块校验盘)即可,从而提高了小量数据 I/O速度。

RAID 5

奇偶校验(XOR),数据以块分段条带化存储。校验信息交叉地存储在所有的数据盘上。

RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和 相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是 说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏 后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动 利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。

RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但 保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取 速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢。

RAID 6

类似RAID5,但是增加了第二个独立的奇偶校验信息块,两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给 奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。

由图所知,每个硬盘上除了都有同级数据XOR校验区外,还有一个针对每个数据 块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的。从数 学角度来说,RAID 5使用一个方程式解出一个未知变量,而RAID 6则能通过两个独立的线性 方程构成方程组,从而恢复两个未知数据。

伴随着硬盘容量的增长,RAID6已经变得越来越重要。TB级别的硬盘上更容易造成数据丢失, 数据重建过程(比如RAID5,只允许一块硬盘损坏)也越来越长,甚至到数周,这是完全不可接受的。而RAID6允许两 块硬盘同时发生故障,所以渐渐受到人们的青睐。

伴随CD,DVD和蓝光光盘的问世,存储介质出现了擦除码技术,即使媒介表面出现划痕,仍然可以播放,大多数常见的擦除码算法已经演变为上世纪60年代麻省理工学院林肯实验室开 发的Reed-Solomon码。实际情况中,多数RAID6实现都采用了标准的RAID5教校验比特和Reed-Solomon码 。而纯擦除码算法的使用使得RAID 6阵列可以失效两块以上的硬盘,保护力度更强,有些实现方法提供了多种级别的保护,甚至允许用户(或存储管理员)指定保护级别。


混合RAID

RAID 01

顾名思义,是RAID0和RAID1的结合。先做条带(0),再做镜像(1)。

RAID 10

同上,但是先做镜像(1),再做条带(0)

RAID01和RAID10非常相似,二者在读写性能上没有什么差别。但是在安全性上RAID10要好于 RAID01。如图中所示,假设DISK0损坏,在RAID10中,在剩下的3块盘中,只有当DISK1故障, 整个RAID才会失效。但在RAID01中,DISK0损坏后,左边的条带将无法读取,在剩下的3快盘 中,只要DISK2或DISK3两个盘中任何一个损坏,都会导致RAID失效。

RAID10和RAID5也是经常用来比较的两种方案,二者都在生产实践中得到了广泛的应用。 RAID10安全性更高,但是空间利用率低。至于读写性能,与cache有很大关联,最好根据实 际情况测试比较选择。


非标准 RAID

DRFS

DRFS,即DistributedRaidFileSystem,是一种尝试将RAID与Hadoop的DFS结合起来的技术。 通常的HDFS在实践中需要将replication factor设为3以保证数据完整性,而如果利用 RAID的stripepartity(奇偶校验)技术,将数据分为多个块,并且存储各个块的校验信 息(XOR或擦除码)。有了这些措施,块的副本数就可以降低并且保证同样的数据可靠性,就能节省相当一部 分的存储空间。

DRFS包含以下几个组件:

  • DRFS client: 提供应用程序访问DRFS的接口,在发现读取到的文件有损坏时修复,整个操作对应用程序透明
  • RaidNode: 创建,维护检验文件的daemon
  • BlockFixer: 周期性地检查文件,重新计算校验和,修复文件.
  • RaidShell: 类似于hadoop shell.
  • ErasureCode: 即DRFS所使用的生成校验码的算法,可为XOR或者Reed-Solomon算法。 XOR仅能创建一个校验字节,而Reed-Solomon则可以创建无数位(位数越多,能恢复的数 据也越多),如果使用Reed-Solomonreplication甚至可以降为1,缺点是降低了数据读 写的并行程度(只能从单机读写)。

实现

软件实现

现在很都操作系统都提供了RAID的软件实现,主要由以下几个方面:

  • 由软件在多个设备上创建RAID,比如linux上的mdadm工具.具体使用方法可查看参考链接中 的例子。
  • LVM或者Veritas,虚拟卷管理工具.
  • 文件系统实现 :btrfsZFSGPFS.这些文件都可以直接管理多个设备上的数据,实 现了类似各级RAID的功能。
  • 在已有文件系统之上提供数据校验功能的RAID系统(RAID-F)

固件/驱动实现

软件实现并总是与系统的启动进程兼容,硬件实现(RAID控制器)总是太贵并且都是厂商专有的技术,所以 有了一中混合的实现:系统启动时,由固件(firmware)来实现RAID,系统启动的差不多了,由驱动来管 理RAID。当然,这需要操作系统对这种驱动提供支持。

参考文档:

  1. 维基百科 : RAID
  2. Stripe Width and Stripe Size
  3. RAID6
  4. DRFS
  5. HDFS and Erasure Codes
  6. Linux下的软磁盘矩阵Software RAID实现步骤简介
  7. Wiki: mdadm
  8. VxFS(Veritas File System)文件系统简介
  9. Linux LVM逻辑卷管理详细介绍
  10. GPFS介绍
  11. RAID-F
  12. 基本的RAID介绍
时间: 2024-10-08 01:59:06

RAID技术介绍的相关文章

【转】RAID技术介绍和总结

转自http://blog.jobbole.com/83808/ 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵. 容量巨大的硬盘.RAID通常被用在服务器电脑上,使用完

RAID技术介绍和总结(转载)

简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵. 容量巨大的硬盘.RAID通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘.

RAID技术介绍和总结

一.RAID磁盘阵列 RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列.简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术.组成磁盘阵列的不同方式称为RAID级别(RAID Levels).在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等.总之,对磁盘阵列的操作与单个硬盘一模一样.不同的是,磁盘阵列的

RAID技术简单介绍和常用命令总结

RAID技术介绍和总结 一.RAID技术简介 1987年,加利福利亚伯克利分校的Patterson.Gibson和Katz这三位工程师发表了一篇:"A Case for Redundant Arrays of Inexpensive Disks"的论文.其目的是将多块容量较小,相对廉价的硬盘驱动器进行组合,使其性能相当于一只昂贵的大硬盘.在当时,这种技术叫做廉价磁盘冗余阵列.许多工业级别的生产者发现了商机,纷纷去实现这种应用.但是,当他们实现以后却发现要真正让这种设备发挥很好的性能,这

RAID详细介绍

RAID详细介绍 RAID 0 又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求.这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能 RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性.RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复

磁盘阵列 RAID 技术原理详解

RAID一页通整理所有RAID技术.原理并配合相应RAID图解,给所有存储新人提供一个迅速学习.理解RAID技术的网上资源库,本文将持续更新,欢迎大家补充及投稿.中国存储网一如既往为广大存储界朋友提供免费.精品资料. 1.什么是Raid;RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列.RAID 的基本原理是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大.价格昂贵的磁盘.目前 RAID技术大致分为两种:基于硬件的

Raid技术精简总结

说明: 该总结来自个人的技术文档总结,代号101. 一.Raid介绍 1.Raid基本情况 Raid:磁盘阵列 ·把多块物理磁盘按不同方式组合起来形成磁盘,逻辑上是一块磁盘,这就是Raid技术: ·Raid可以提供比单个磁盘更大容量和更高性能,同时提供多种级别数据冗余备份: 2.Raid级别 Raid级别:把磁盘通过一定的技术方式做成Raid,技术方式即是Raid级别 ·Raid级别有:Raid 0.Raid 1.Raid 2.Raid 3.Raid 4.Raid 5.Raid 6.Raid 7

Linux课程笔记 Day08 课上内容总结 Apache及Raid技术

一 http基础概念 1.1   静态网页的特点: (1)       静态网页每个页面都有一个固定的URL,而且URL一般以.htm..html..shtml等形式为后缀,而且地址中不含有问号”?” (2)       静态网页是实实在在保存在服务器上的文件,每个都是一个独立的文件 (3)       静态网页的内容相对稳定,容易被搜索引擎收录(优点) (4)       静态网页没有数据库的支持,在网站制作和维护方面工作量较大(缺点) (5)       静态网页的交互性较差,在功能方面有较

快速掌握sinox2014激动人心的ZFS和RAID技术

Sinox2014引入激动人心的zfs系统以及其支持的RAID,让用户快速打造廉价的高可靠性文件服务器. ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统.最初是由Sun公司为Solaris 10操作系统开发的文件系统.作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统,经历了 10 年的活跃开发.而最新的开发将全面开放,并重新命名为 Ope