简介
廉价磁盘冗余阵列 (Redundant Arrays of Inexpensive Disks) 或独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。2
由加利福尼亚大学伯克利分校(University of California-Berkeley)在1988年,发表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,谈到了RAID这个词汇,而且定义了RAID的5层级。伯克利大学研究目的是反映当时CPU快速的性能。CPU效能每年大约成长30~50%,而硬磁机只能成长约7%。研究小组希望能找出一种新的技术,在短期内,立即提升效能来平衡计算机的运算能力。在当时,柏克莱研究小组的主要研究目的是效能与成本。2
另外,研究小组也设计出容错(fault-tolerance),逻辑数据备份(logical data redundancy),而产生了RAID理论。研究初期,便宜(Inexpensive)的磁盘也是主要的重点,但后来发现,大量便宜磁盘组合并不能适用于现实的生产环境,后来Inexpensive被改为independent,许多独立的磁盘组。2
功能
磁盘阵列具有提高计算机读写数据的速度、实现对数据的冗余保护及保证数据存储可靠性的功能。9
RAID技术主要有以下三个基本功能:
(1)通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。3
(2)通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。3
(3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。3
分类
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。2
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。2
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。2
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。2
原理
磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。2
和当时PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。2
在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。2
优缺点
优点
提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。2
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。2
缺点
RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。2
RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。2
RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。2
RAID级别
RAID JBOD
RAID JBOD的意思是Just a Bunch Of Disks,是将多块硬盘串联起来组成一个大的存储设备,从某种意义上说这种类型不被算作RAID,在维基百科里JBOD同时也被归入非RAID架构。RAID JBOD将所有的磁盘串联成一个单一的,容量是使用的磁盘的总和的存储设备供操作系统使用。比如使用3块容量是80GB的磁盘,建立的RAID JBOD设备的容量就是240GB,再比如使用3块容量分别是60GB,80GB,100GB的磁盘,建立的RAID JBOD设备容量是240GB,这里要注意的是RAID JBOD可以使用成员设备中的所有空间,无论各设备尺寸是否相同。这一点也是RAID JBOD与其他RAID类型的最大不同。
因为是各设备串联,RAID JBOD的访问速度跟单个设备相同,也没有任何形式的校验,因此任意一块磁盘出现故障,都会破坏整个RAID,可靠性是单一设备的1/N。
随着磁盘阵列(RAID)技术的不断发展,磁盘阵列技术已经拥有多个基本的技术级别,大致可分为 RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6等,每个级别的磁盘阵列技术有着不同的技术原理。10
RAID 0
RAID 0将N块硬盘上选择合理的带区来创建带区集。其原理是将类似于显示器隔行扫描,将数据分割成不同条带(Stripe)分散写入到所有的硬盘中同时进行读写。多块硬盘的并行操作使同一时间内磁盘读写的速度提升N倍。2
在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块磁盘上的带区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小,任何I/O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,在创建带区集时,应当根据实际应用的需要,慎重地选择带区的大小。2
带区集虽然可以把数据均匀的分配到所有的磁盘上进行读写。但如果把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这是因为当频繁进行读写操作时,很容易使控制器或总线的负荷超载。为了避免出现上述问题,建议用户可以使用多个磁盘控制器。最好解决方法还是为每一块硬盘都配备一个专门的磁盘控制器。2
虽然RAID 0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。2
RAID 1
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块80GB容量的硬盘来讲,可利用的磁盘空间仅为160GB。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。2
RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。2
RAID0+1
从RAID 0+1名称上便可以看出是RAID0与RAID1的结合体。在单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。2
MegaRAID、Nytro和Syncro都是LSI针对RAID而推出的解决方案,并且一直在创造更新。2
LSI MegaRAID的主要定位是保护数据,通过高性能、高可靠的RAID控制器功能,为数据提供高级别的保护。LSI MegaRAID在业界有口皆碑。2
LSI Nytro的主要定位是数据加速,它充分利用当今备受追捧的闪存技术,极大地提高数据I/O速度。LSI Nytro包括三个系列:LSI Nytro WarpDrive加速卡、LSI Nytro XD 应用加速存储解决方案和LSI Nytro MegaRAID 应用加速卡。Nytro MegaRAID主要用于DAS环境,Nytro WarpDrive加速卡主要用于SAN和NAS环境,Nytro XD解决方案由Nytro WarpDrive加速卡和Nytro XD 智能高速缓存软件两部分构成。2
LSI Syncro的定位主要用于数据共享,提高系统的可用性、可扩展性,降低成本。2
LSI通过MegaRAID提供基本的可靠性保障;通过Nytro实现加速;通过Syncro突破容量瓶颈,让价格低廉的存储解决方案可以大规模扩展,并且进一步提高可靠性。2