磁盘阵列 :由独立磁盘组成的磁盘组

更新时间:2023-07-12 10:54

磁盘阵列,全称为独立磁盘冗余阵列(英文全称:Redundant Arrays of Independent Disks,简称:RAID)。主要应用领域在于:企业级存储,数据中心,大规模数据库,大数据分析等方面。

RAID是加利福尼亚州伯克利一组研究人员(由David Patterson教授和Randy Katz教授以及后来的学生Garth Gibson)在1988年提出的。这项技术指的是利用虚拟化存储技术把多个HDD组合起来,成为一个或多个硬盘阵列组,从而提供比单个磁盘更高的存储性能和数据冗余高可靠性的存储技术。

磁盘阵列是由独立磁盘组成的具有冗余特性的阵列,是由很多价格相对较便宜的磁盘,共同组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生的加成效果提升整个磁盘系统的效能。利用这项技术,可以将数据切割成许多区段,分别存放在各个硬盘上。

磁盘阵列具备两个基本特性,一是由大量的磁盘按照特定方式组成:二是具备冗余特性,允许某块磁盘损坏之后,数据仍然可用。磁盘阵列按照物理类型可以分为2大类:硬(件)RAID 、软(件)RAID。磁盘阵列其样式有三种,外接式磁盘阵列柜,内接式磁盘阵列卡和利用软件来仿真。 RAID主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、故障容许度能力和扩展性。标准RAID模式(Standard RAID levels)包括:RAID 0、1、2、3、4、5、6。

发展历程

前身——算力增长与存储需求

存储系统是整个IT系统的基石,是T技术赖以存在和发挥效能的基础平台。随着计算机技术的发展,CPU的处理速度成几何级数跃升,内存的存取速度亦大幅增加,而磁盘的存取速度相比之下则显得甚为缓慢。整个I/O吞吐量不能和系统性能匹配,形成计算机整个系统的瓶颈,降低了计算机的整体性能。为了改进磁盘的存取速度,大型服务器的磁盘多采用磁盘阵列技术(Redundant Array of Independent Disks,RAID)。

单块磁盘的容量始终有限,目前主流的单块磁盘的容量为1TB-10TB,最高的可以达到6TB,如希捷希捷 ST6000NM00246TB企业级硬盘等,单块的硬盘无论从速度还是从容量上都可以基本满足面向个人电脑的普通应用。但是,在某些特殊应用场合,如区域级视频监控、企业级数据备份、云计算海量数据存储等应用场合,单块硬盘甚至少量的几块硬盘显然无法满足需求,对这些应用来说,所需要的存储空间可能会达到PB(1 PB=2^10TB)级,更高的甚至能达到EB(1 EB=2^10PB)级规模,大型数据存储供应商和数据中心的数据规模甚至能够接近ZB(1 ZB=2^10EB)级。针对如此高容量、高可靠性和复杂存储体系的数据空间,其存储通常采用的是磁盘阵列技术。

提出与起源——RAID 技术的提出

1988年,加利福尼亚大学伯克利分校的一组研究人员(由David Patterson教授和Randy Katz 教授以及后来的学生 Garth Gibson )领导引入RAID这个词汇,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks ),同时定义了RAID的5层级。在当时,该研究小组的主要研究目的是效能与成本。最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。该时期许多不同的研究人员同时提出 了使用多个磁盘来构建更好的存储系统的基本思想。

导致RAID的开创性工作包括Tandem Computers在其不间断架构中的磁盘镜像存储,以及DEC在其HSC8和HSC 1系统中在50年代初期的子系统镜像RA70X磁盘驱动器(现在称为RAID Level 1980)。 Thinking Machines的数据Vault在磁盘驱动器阵列中使用了纠错码(RAID 2)。IBM 353 驱动器在 1960 年代初期使用了类似的方法。IBM工程师Norman Ken Ouchi(1977)和Brian Clark等人的专利申请(1988)披露了后续版本的RAID中使用的技术。早期的独立RAID供应商包括Adaptec和Array Technology,它们成立于1987年,先后被希捷,Tandem和Dell EMC收购。

从1990年到1993年,在DARPA和美国航空航天局的支持下,David Patterson教授和Randy Katz 教授构建了一个192个磁盘的RAID原型,配置为支持网络连接以支持高性能计算。该原型现在位于加利福尼亚州计算机历史博物馆(其前身的第一个原型,仍位于伯克利)。为了克服与RAID相关的写入开销,我们利用了John Ousterhout和Mendel Rosenblum的写入优化日志结构化文件系统的实现。威睿 的创始人之一Mendel凭借这项工作赢得了1992年ACM论文奖。

确立与发展——RAID等级的分类

David Patterson教授和Randy Katz 教授为 RAID 分类法引入了一种编号方案,用于区分如何引入冗余以及如何在阵列中的驱动器之间传播数据。

RAID 0 不引入冗余,而是通过获取连续的存储块并将其在底层物理驱动器上一一分配,将逻辑数据分布在多个磁盘上。 RAID 1 是镜像存储,为每个数据块创建一个副本并将其放置在第二个驱动器上,镜像主副本。

RAID 2 将阵列中的磁盘视为内存芯片,在驱动器上按位并行隔行扫描数据,并使用传统的汉明码在其中一个磁盘发生故障时纠正任何故障。

RAID 3 将冗余开销减少到每个位位置一个位,这是基于这样的认识:如果故障磁盘的位置很容易确定,奇偶校验就足以纠正数据丢失,这是因为磁盘通过高速CPU缓存与系统的其余部分进行通信。级别协议。

RAID 4 扩展了这一想法,不是在位级别上进行交错,而是以较大的块为单位进行交错。尽管在 RAID 3 中阵列中的所有磁盘必须一起读取或写入,但在 RAID 4 中它们可以独立访问。写入时需要特别小心,通过补充新旧数据块之间已更改的位来更新奇偶校验。由于所有奇偶校验冗余都在一个磁盘上,因此它成为写入时的性能瓶颈。

RAID 5 通过隔行扫描奇偶校验块和数据扩展了这一想法,最多可将支持的写入数量增加一倍。

20世纪以后,磁盘成本和价格的不断降低,RAID 可以使用大部分的磁盘, “ 廉价 ” 已经毫无意义。因此, RAID咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于是RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。

许多标准方案,称为级别,每个方案都有许多变化,已经发展起来。RAID 级别及其关联的数据格式由存储网络行业协会 (SNIA) 在通用 RAID 磁盘驱动器格式 (DDF) 标准中标准化。

当下境况——RAID在海量数据时代

2002年RAID市场规模为每年250亿美元,自1990年以来RAID存储设备的销售量超过1500亿美元。高峰时期有超过200家RAID公司。美国国家科学院将 RAID 纳入由联邦政府资助的大学研究创建的技术中,这些技术已催生了数十亿美元的产业(也称为“轮胎轨迹图”)。

磁盘阵列能利用同位检查(Parity Check)的概念,在磁盘中任意一个HDD故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。面向连续数据存储系统的海量数据通常采用磁盘阵列进行数据存储,因此,针对连续数据存储系统的节能研究就必须充分考虑磁盘阵列的不同组成结构的各自特点,有针对性地进行性能优化,达到性能和能耗的完美统一。如今,大多数基于服务器和网络的存储都基于 RAID,许多 PC 用户在自己的机器上使用硬件或软件 RAID 系统,软件实现的 RAID 已成为现代操作系统的标准组件。

RAID分类

按磁盘构建技术分类

RAID技术有两种,一种为硬件RAID,一种为软件RAID。

硬件RAID:硬件RAD基于硬件设备,系统独立于主机之外来管理RAD子系统,并且它在主机处只用一个磁盘来代表每一组RAID阵列,连接到SCSI控制器,把RAID阵列表示为单个SCSI驱动器的设备就是一个硬件RAD。一个外部的RAID系统把所有RAID处理都转移到位于内部磁盘子系统中的控制器中,整个子系统都是通过一个普通的SCSI控制器连接到主机上,对主机而言,它就像一个单一的磁盘。RAID控制器还以卡的形式出现。它充当操作系统的SCSI控制器,但却控制所有驱动器本身的实际通信。用户把驱动器插入到RAID控制器中,就如同SCSI控制器一般。

软件RAID:软件RAD在内核磁盘编码中实现各类RAD级别,因此它不需要昂贵的磁盘控制器卡或热交换底盘,软件RAD提供了最廉价的解决方法。它可以应用在DE磁盘和SCSI磁盘上。基于软件阵列的性能独立于服务器CPU的性能和载量之外。软件RAD具有这些重要的特性:

(1)使用线程的重建进程。

(2)基于内核的配置。

(3)不必重建,可在Liux机器间移植阵列。

(4)使用空闲的系统资源在后台重建阵列。

(5)支持可热交换的驱动器。

只(6)对CPU自动检测以便利用某些CPU优化功能。

按磁盘阵列存储体系分类

磁盘阵列按存储体系架构可分为DAS(Direct Attached Storage,直连式存储)、NAS(Network Attached Storage,网络附加存储)和SAN(Storage Area Network,存储区域网络)三种架构。

DAS直连式存储:DAS是指直接和计算机相连接的数据储存方式,像固态硬盘机械硬盘、光盘驱动器与计算机直接相连的设备都属于直连式存储设备。直连式存储的名称是后来为了区别于存储区域网络(SAN)和网络附加存储(NAS)而添加的,与通过计算机网络连接的其他存储技术相对。

DAS存储方式的服务器结构如同个人计算机的架构,外部数据存储设备(如磁盘阵列、光盘机、磁带机等)都直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分,同样服务器也担负着整个网络的数据存储职责。DAS这种直连方式,能够解决单台服务器的存储空间扩展、高性能传输需求。对于单台服务器,使用直连式存储连接简单、易于配置和管理、费用较低,但这种这种连接方式下,因每台服务器单独拥有自己的存储磁盘,所以不利于存储容量的充分利用和服务器间的数据共享,而且存储系统没有集中统一的管理方案,也不利于数据维护。

NAS直连式存储:NAS是直接连接在计算机网络上面,通过网络为用户提供了集中式数据访问服务的存储方式,可为用户提供跨平台文件共享服务。NAS系统与传统的文件存储服务和DAS不同的地方在于,NAS设备上面的操作系统和软件提供了数据存储、数据访问以及相关的管理功能,并使得NAS设备连上网络即可进行远程访问。NAS系统通常有一个以上的HDD,而且和传统的文件服务器一样,通常会把它们组成RAID来提供服务,利用集中化的网络文件访问机制和共享来达到减少系统管理成本、提高数据备份和恢复功能的目的。

SAN(与IP-SAN)存储区域网格:SAN是通过光纤交换机(Fibre Channel,简称FC)连接存储阵列和服务器主机,建立专用于数据存储的区域网络架构,采用光纤通道技术、磁盘阵列、盒式录音磁带柜、光盘柜等各种技术组成专用的存储网络。与NAS存储相比较,服务器和存储系统通过FC交换机相连,各存储设备之间交换数据时可以不通过服务器所在以太网络,文件数据的复制、备份、恢复数据和安全的管理都在存储网络中进行,能有效减少巨大流量数据传输时发生的阻塞和冲突,同时数据不在服务器所在以太网内传输一定程度上保证了数据的安全性,较大程度减轻服务器承受的压力,FC交换机可以连接多台服务器,与DAS存储相比具有很强的灵活性。

经过多年的发展,SAN存储架构(见图)已经相当成熟,唯一的缺点是光纤交换机和光纤以太网控制器较为昂贵,另外也可以使用IP-SAN存储架构,IP-SAN架构和SAN架构类似,用以太网交换机及服务器上的以太网卡代替了SAN存储网络中的光纤交换机和光纤网卡,而且也可以共用现有的以太网交换机的空余端口,划分一个独立的VLAN来组件IP-SAN存储网络,现在的服务器一般都自带多个以太网卡,这样就大大降低了IP-SAN存储磁盘阵列的成本。

按磁盘阵列样式分类

磁盘阵列其样式有三种,一是外接式磁盘阵列柜,二是内接式磁盘阵列卡,三是利用软件来仿真

外接式磁盘阵列柜(硬件RAID):一般有拔码开关,可以通过拔码设置不同的阵列模式,如麦沃K35274D。常被使用大型服务器上,具可热交换(Hot Swap)的特性,产品价格昂贵。

内接式磁盘阵列卡:这种组建方式是通过HDD柜+阵列卡组合来实现,这种方式需要专用RAID控制卡接在电脑主机上,通过阵列上的接口连接硬盘柜。价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动FinalData、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。RAID控制卡专用的处理单元来进行操作。RAID控制卡有四种,第一种是 IDE阵列卡 ,第二种是 SATA阵列卡,第三种是 SCSI阵列卡 ,第四种是 SAS阵列卡。

利用软件仿真的方式划分:是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块HDD配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。这种方式通过操作系统上的磁盘管理软件来组建阵列, 特点是:硬盘成本低,操作简单。 缺点是:能组建的RAID级别有限。需要CPU来执行RAID计算,消耗系统资源。与操作系统绑定,更换系统时,需要兼容性验证,使用环境不够灵活。

按磁盘阵列组建方式划分

RAID阵列从组建方式上大致分为两大类:一类是固态盘内闪存芯片之间的RAID 4,,另一类是HDD之间的RAID。

硬盘之间的RAID又包含三大类:全机械盘阵列、混合阵列(机械盘+固态盘)、全固态盘阵列。磁盘阵列是通用型存储的主要形态,从图可以看出,其发展经过了直连式存储、双控磁盘阵列、多控磁盘阵列、横向扩展的多控磁盘阵列,同时根据不同业务性能要求,采用不同的存储介质,又逐渐细分出混合阵列和全固态盘阵列。随着固态硬盘技术的不断发展,性能和容量得到了极大的提升,使得全固态盘阵列逐步替代全机械盘阵列成为可能。

应用领域

磁盘阵列是一种通过将多个磁盘驱动器组合在一起来提供高性能、高可用性可扩展性存储解决方案的技术。它可以适用于多种应用领域,主要包括以下几个方面:

企业级存储:磁盘阵列在企业级存储中扮演重要角色,它能够提供大容量、高可靠性和高性能的数据存储。通过多个磁盘驱动器的并行读写操作,磁盘阵列可以实现较高的数据传输速率和更好的响应时间,满足企业对于数据存储的需求。

数据中心:数据中心需要处理大量的数据,并保证数据的可靠性和可用性磁盘阵列能够提供冗余存储和快速故障恢复的功能,以应对磁盘故障或数据损坏的情况。同时,磁盘阵列还支持扩展性,可以根据数据中心的增长需求进行灵活的容量扩展。

大规模数据库:磁盘阵列在大规模数据库中起到关键作用。它可以通过数据分布和并行操作来提高数据库的性能和吞吐量。同时,磁盘阵列还支持数据备份和恢复,保障数据库的可靠性和数据安全

多媒体处理:在多媒体领域,如视频编辑、影音制作等,需要处理大量的高清视频和音频数据。磁盘阵列能够提供高速的数据传输和存储能力,满足对于流畅播放和实时编辑的需求。

大数据分析:磁盘阵列可以为大数据分析提供高效的存储解决方案。通过使用多个磁盘驱动器进行并行读写操作,磁盘阵列可以加快数据的访问和计算速度,提高大数据分析的效率和准确性。

个人电脑:普通用户也可以在自己的电脑上组件磁盘阵列,利用虚拟化储存技术把多个HDD组合起来,成为一个或多个硬盘数组组,目的为提升效能或数据故障容许度功能。

工作模式

磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。主机与磁盘阵列的CPU缓存交互,缓存与具体的磁盘交互数据。

磁盘阵列根据内部的算法,查找出一些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。磁盘阵列还能利用同位检查(Parity Check)的观念,当数组中任意一个HDD发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。

标准 RAID模式(Standard RAID levels)包括:RAID 0、1、2、3、4、5、6。不同级别的RAID有着不同基本特征。

RAID 0(无故障容许度设计的条带磁盘阵列):特点是可靠性最差,速度最快。在Linuxunix中,RAID 0被称为条带化,在Windows中,RAID 0被称为带区卷。RAID 0技术将多块磁盘组合在一起,磁盘少则两块,多则几十块,生产环境中一般使用2~3块。RAID 0在每块磁盘上占用相同大小的空间,总容量是多块磁盘所占空间的总和。如两块磁盘组成RAID 0,每块占用10G空间,则RAIDO占用空间总大小为20G。RAID 0是要求最高速度和最大容量的用户的理想选择。要处理超大型文件的视频编辑人员可以使用 RAID 0 来编辑视频的多个流,以达到最佳播放效果。RAID 0 阵列更适于在频繁的文件处理(例如视频编辑)中使用,不宜用作唯一的存储备份解决方案,也不宜在关键任务系统中使用。

RAID 1(镜像磁盘阵列):在Linux或Unix中,RAID 1被称为镜像分区,在Windows中,RAID 1被称为镜像卷。RAID 1也使用多块磁盘组成,且每块磁盘占用相同大小的空间。多块磁盘之间互为镜像关系,即备份。一般RAID 1会使用2~3块磁盘,文件存入一块磁盘时,其他磁盘也将文件全部再存一份,即所有操作都会在每块磁盘上完整操作一次。如两块磁盘组成的RAID 1会把文件存储两份,三块磁盘组成的RAID 1会把文件存储三份。在一个磁盘出现故障时,RAID 1可提供最高的数据安全性,在更注重安全性而非速度的情况下,RAID 1是理想选择。缺点是没有备份盘,空间浪费严重。

RAID 2(海明码校验):RAID 0可以并发的读写数据,所以所有RAID技术中性能最好,但是RAID 0没有数据校验因此可靠性最低。RAID 2是对RAID 0的改进版,RAID 2对条带内的数据以汉明码的方式进行校验,校验码放在多个单独的磁盘中。

RAID 3(简单校验):同RAID 2非常类似,RAID 3也是将数据条块化分布于不同的磁盘上,两者的区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。若一块磁盘失效,奇偶盘和其他数据盘可以重新产生数据;若奇偶盘失效,则不影响数据使用。由于数据内的比特分散在不同的磁盘上,因此就算要读取少量数据都可能需要所有磁盘进行工作,所以这种技术比较适合在读取大量连续数据时使用,对于随机数据来说,奇偶盘会成为写操作的瓶颈。RAID 3在要读取连续的长文件(如视频文件)的环境中可提供良好的数据安全性。由于数据是从奇偶校验块中读取,因此磁盘故障不会导致服务中断。RAID 3适用于那些追求性能并要求持续访问数据的用户(如视频编辑人员)。

RAID 4(以块为单位校验):RAID 4同样也将数据条块化分布于不同的磁盘上,但与RAID 3不同的是,RAID 4的分区单位是块或记录,这点区别于RAID 3的字节可成比特。RAID 4同样使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,所以RAID 4也很少应用于商业环境中。

RAID 5(随机位置存储校验位):RAID 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(磁盘分区)技术。RAID 5至少需要3个磁盘,RAID 5与RAID 4类似,也是将数据计算奇偶校验位储存,但不同于RAID 4的是,RAID5把数据和相对应的奇偶校验信息存储到随机磁盘上,而不是指定的磁盘,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。RAID 5可以说是RAID 0和RAID 1的折中方案。RAID 5的保障程度要比RAID1低,但由于多个数据对应一个奇偶校验信息,因此磁盘空间利用率要比RAID 1高;RAID 5具有和RAID 0相近似的数据读取速度,但因为多了一个奇偶校验信息,写入数据会很慢。

RAID 6(两个独立奇偶校验系统)与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,因此数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。不过两个独立奇偶校验所带来的不仅是需要更大的磁盘空间,而且在进行写操作时需要耗费更多的时间去计算校验位,所以RAID 6的写速度比RAID 5更差。较差的性能和复杂的操作方式使得RAID6很少得到实际应用。换而言之,在驱动器出现故障时,RAID 6 能进行有效的重建,确保了数据的可靠性。为此,安全性要求较高,而性能要求不高的用户可以选择 RAID 6。

架构与布局

RAID 0布局

RAID 0提高存储性能的基本原理是把连续的数据分散到多个磁盘上进行存取。系统有数据请求时,就可以被多个磁盘并行执行。数据上的并行操作充分利用了总线带宽,可以显著提高磁盘整体存取性能。

典型的RAID 0的结构如图所示。

图中的5个圆柱体,分别表示5个磁盘。在这些磁盘的相同偏移处横向进行逻辑分割,形成条带(Stripe)。一个Stripe所横跨过的扇区或块的个数或字节容量称为条带长度(Stripe Length)。而每一个Stripe所占用的单块磁盘上的区域,称为一个段或节(线段)。一个Segment中所包含的数据 Block或者扇区的个数或者字节容量,称为条带深度(Stripe Depth),

Data Block可以是N倍扇区大小的容量。

RAID 0工作时,系统向5个磁盘组成的逻辑HDD发出的I/O数据请求被转化为5项操作,其中的每一项操作都对应一块物理硬盘。通过建立RAID 0,原先顺序的数据请求被分散到所有的5块硬盘中同时执行。理论上,5块硬盘的并行操作使同一时间内磁盘读写速度提升了5倍。RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID 0所具有的特点,使其适用于对性能要求较高,而不需关注数据安全的领域,如图形工作站等。对于个人用户,RAID 0也是提高HDD存储性能的较好选择。

RAID 1布局

RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为各份的数据。当原始数据繁忙时,可直接从镜像中读取数据,当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了较高的数据安全性和可用性,以高成本换取了高性能和高可靠性。

RAID 1将N×2块HDD构成RAID磁盘阵列,但其容量仅等于N块硬盘的容量,因为另外N块磁盘只是当作数据“镜像”。RAID 1破盘阵列是一种可靠的阵列,因为其总是保持一份完整的数据备份。RAID 1性能自然没有RAID 0磁盘阵列那样好,但其数据读取确实较单一硬盘快,因为数据会从两块硬盘中较快的一块中读出。RAID 1磁盘阵列的写入速度通常较慢,因为数据要分别写入两块硬盘中并作比较,RAID 1主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。

RAID 2布局

RAID 2是RAID 0的改进版,以海明码(Hamming Code)的方式将数据进行编码后分割为独立的位(bit)单元,并将数据分别写入HDD中。因为在数据中加入了错误修正码(Error Correction Code,ECC),所以数据整体的容量会比原始数据大一些。

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

RAID 2和RAID 0有些不同,RAID 0不能保证每次I/O都是多磁盘并行,因为RAID 0的条带深度相对于RAID 2以位为单位来说太大。而RAID 2由于每次I/O都需保证多磁盘并行,所以其数据传输率是单盘的N倍。

RAID 3布局

RAID 3的每一个条带,其长度被设计为一个文件系统块的大小,深度随磁盘数量而定,但是最小深度为1个扇区。每个线段的大小一般就是1个扇区或者几个扇区的容量。和RAID 2一样,RAID 3同样也是最适合连续大块I/O的环境,但是它比RAID 2成本更低,也更容易部署,其HDD布局如图所示。

不管任何布局形式的RAID,只要是面对随机I/O,其性能与单盘比都没有大的优势,因为RAID所做的只是提高传输速率、并发I/O和故障容许度。随机I/O只能靠降低单个物理磁盘的寻道时间来解决,而RAID不能优化寻道时间。所以对于随机I/O,RAID 3也同样没有优势。而对于连续I/O,因为寻道时间的影响因素可以忽路,RAID 3体现出优越的性能,RAID 3可以大大加快数据传输速率,因为它是多盘并发读写,所以理论上可以相当于单盘提高N倍的速率。

RAID 4布局

不管是RAID 2还是RAID 3,它们都是为了提高数据传输率而设计,通常不能并发I/O。诸如数据库等应用的特点就是高频率随机i/o。想提高这种环境的I/O读写速率(Input/Output Operations Per Second,IOPS),根据公式:IOPS=I/O并发系数/(寻道时间+数据传输时间),随机读导致寻道时间增大,无法通过提高传输速率来提高IOPS。想在随机/O频发的环境中提高IOPS,要么用高性能的HDD(即平均寻道时间短的磁盘),要么提高I/O并发系数。在RAID 3配置下,当I/O尺寸小于Stripe尺寸的时候,此时有磁盘处于空闲状态,依据该情况,让队列中的其他/O来利用这些空闲的磁盘,即可达到并发I/O的效果。所以RAID 4将线段的大小做得比较大,使得平均I/O尺寸总是小于Stripe尺寸,这样就能保证每个I/O少占用磁盘,甚至一个I/O只占用一个磁盘,以此提高I/O效率。

RAID 5布局

为了解决RAID 4系统不能并发I/O的缺点,提出了RAID 5模式。RAID 4并发困难是因为校验盘争用。RAID 5采用分布式校验盘的做法,将校验盘打散在RAID组中的每块磁盘上但是在随机写/O频发的环境下,由于频发的随机I/O提高了潜在的并发概率,如果并发的/O同处一个条带,还可以降低写惩罚的概率。这样,RAID 5系统面对频发的随机写I/O,其IOPS下降趋势比其他RAID类型要平缓一些。RAID 5相对于经过特别优化的RAID 4来说,在底层就实现了并发,可以脱离文件系统的干预。RAID 5磁盘数量越多,可并发的概率就越大。

RAID 6布局

RAID 6之前的任何RAID级别,最多能保障在坏掉一块盘时,数据仍然可以访问。如果同时坏掉两块盘,数据将会丢失。为了增加RAID 5的保险系数,可以采用RAID 6布局。RAID 6比RAID 5多增加了一块校验盘,也是分布打散在每块盘上,只不过是用另一个方程式来计算新的校验数据。RAID 6与RAID 5相比,在写的时候会同时读取或者写入额外的一份校验数据。不过由于是并行同时操作,所以并没有显著影响读写效率。

其他特性则和RAID 5类似。

核心技术

关键技术

RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity )。镜像为磁盘提供保护功能;chunk条带(块大小也可以说是条带的粒度)能提高I/O,提供了数据并发性;数据的校验保证了数据的可靠性和安全性。

镜像

镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。对于 RAID 而言,采用镜像技术 典型地 将会同时在阵列中产生两个完全相同的数据副本,分布在两个不同的磁盘上。镜像提供了完全的数据冗余能力,当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的读写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。

数据条带

磁盘存储的性能瓶颈在于磁头寻道定位,它是一种慢速机械运动,无法与高速的 CPU 匹配。再者,单个磁盘驱动器性能存在物理极限, I/O 性能非常有限。将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。

RAID 由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合 I/O ,有效提高了整体 I/O 性能,而且具有良好的线性扩展性。

数据校验

数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相对镜像,数据校验大幅缩减了冗余开销,用较小的代价换取了极佳的数据完整性和可靠性。RAID 不同等级往往同时结合使用数据条带技术和数据校验技术,能同时提高性能和数据安全性 。

技术实现形式

按照物理类型,RAID技术实现有两种形式:硬件RAID和软件RAID。

硬件RAID

即服务器上自带RAID卡,这是一个硬件,类似网卡、显卡安装到服务器上一样。包括基于主机的硬件RAID和基于阵列的硬件RAID。

硬件RAID是专用的处理系统,使用控制器或RAID卡独立于操作系统来管理RAID配置。RAID控制器不会从其管理的磁盘上夺走处理能力。因此,可以使用更多的空间和速度来读取和写入数据。它可以在任何操作系统上运行。更换故障磁盘很简单-只需将其插入并插入新磁盘即可。

由于硬件RAID需要额外的控制器硬件,因此成本要高于软件RAID。如果RAID控制器发生故障,则必须找到一个兼容的控制器进行更换,以使RAID系统执行设置方式。

软件RAID

与硬件RAID不同,软件RAID使用安装RAID磁盘的操作系统的处理能力。成本较低,因为不需要其他硬件RAID控制器。它还允许用户重新配置阵列,而不受硬件RAID控制器的限制。

软件RAID往往比硬件RAID慢。由于该软件需要一定的处理能力,因此它会降低RAID配置的读写速度以及在服务器上执行的其他操作。软件RAID通常特定于所使用的操作系统,因此通常不能用于操作系统之间共享的分区。更换软件RAID中的故障磁盘要复杂一些。必须首先告诉系统停止使用磁盘,然后更换磁盘。

优缺点

RAID有许多优点:它提供了大容量的存储空间,通过数据条带化技术提高了性能,采用数据冗余技术增强了可靠性,同时也简化了存储管理。然而,它也有一些缺点,例如某些级别缺乏冗余功能,磁盘利用率较低,以及折中方案如RAID 0+1在数据安全性和空间利用率之间的权衡。因此,在选择适当的RAID级别时,需考虑容量、性能和可靠性等需求,以权衡这些优点和缺点。

优点

(1) 大容量

由多个磁盘组成的RAID系统具有海量的存储空间。现在单个磁盘的容量就可以到 1TB 以上,这样RAID的存储容量就可以达到 PB 级,能满足大多数的存储需求。不同等级的RAID算法需要一定的冗余开销,具体容量开销与采用算法相关。通常,RAID 容量利用率在 50% ~ 90% 之间。

(2) 高性能

受益于数据条带化技术,RAID的性能高。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有限,容易成为系统性能的瓶颈。通过数据条带化, RAID 将数据 I/O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I/O 性能。

(3) 可靠性

RAID 采用镜像和数据校验等数据冗余技术,打破了单个磁盘故障将导致整个 RAID 不可用的假定。 通过数据校验提供的故障容许度功能,能保证数据安全性。镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。 比起镜像 50% 的冗余开销 ,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。 RAID 冗余技术大幅提升数据可用性和可靠性,保证了若干磁盘出错时,不会导致数据的丢失,不影响系统的连续运行。

(4) 可管理性

实际上,RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说,RAID是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 从用户应用角度看,可使存储系统简单易用,管理也很便利。 由于RAID内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。RAID可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。

缺点

(1) 冗余功能低

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

(2) 利用率低

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

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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: