磁盘阵列(RAID)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。
由加利福尼亚大学伯克利分校(University of California-Berkeley)在 1988 年,发表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,谈到了 RAID 这个词汇,而且定义了 RAID 的 5 层级。伯克利大学研究目的是反映当时 CPU 快速的性能。CPU 效能每年大约成长 30~50%,而硬磁机只能成长约 7%。研究小组希望能找出一种新的技术,在短期内,立即提升效能来平衡计算机的运算能力。在当时,柏克莱研究小组的主要研究目的是效能与成本。
另外,研究小组也设计出容错(fault-tolerance),逻辑数据备份(logical data redundancy),而产生了 RAID 理论。研究初期,便宜(Inexpensive)的磁盘也是主要的重点,但后来发现,大量便宜磁盘组合并不能适用于现实的生产环境,后来 Inexpensive 被改为 independent,许多独立的磁盘组。
RAID 技术主要有以下三个基本功能:
(1)通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
(2)通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
(3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通 SCSI 卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达 30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。
磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。
和当时 PC 用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。
在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。
优点
提高传输速率。RAID 通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在 RAID 中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用 RAID 可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是 RAID 最初想要解决的问题。因为当时 CPU 的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID 最后成功了。
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的 CRC(循环冗余校验)码的话。RAID 容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多 RAID 模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了 RAID 系统的容错度,提高了系统的稳定冗余性。
RAID 0
RAID 0 是最早出现的 RAID 模式,即 Data Stripping 数据分条技术。RAID 0 是组建磁盘阵列中最简单的一种形式,只需要 2 块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0 没有提供冗余或错误修复能力,但实现成本是最低的。
RAID 0 最简单的实现方式就是把 N 块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。如使用了三块 80GB 的硬盘组建成 RAID 0 模式,那么磁盘容量就会是 240GB。其速度方面,和单独一块硬盘的速度完全相同。最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的 1/N。
为了解决这一问题,便出现了 RAID 0 的另一种模式。即在 N 块硬盘上选择合理的带区来创建带区集。其原理就是将原先顺序写入的数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同一时间内磁盘读写的速度提升了 4 倍。
在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块磁盘上的带区空间就可以满足大部分的 I/O 操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小,任何 I/O 指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的大小。
带区集虽然可以把数据均匀的分配到所有的磁盘上进行读写。但如果我们把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这是因为当我们频繁进行读写操作时,很容易使控制器或总线的负荷 超载。为了避免出现上述问题,建议用户可以使用多个磁盘控制器。最好解决方法还是为每一块硬盘都配备一个专门的磁盘控制器。
虽然 RAID 0 可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID 0 一般只是在那些对数据安全性要求不高的情况下才被人们使用。
软件 RAID
使用基于主机的软件提供 RAID 功能,是在操作系统级上实现的,与硬件 RAID 相比,软件 RAID 具有成本低廉和简单直观的优点。但是,软件 RAID 有以下不足。
(1)性能:软件 RAID 会影响系统整体性能。这是因为软件 RAID 需要 CPU 来执行 RAID 计算。
(2)功能:软件 RAID 支持有限的 RAID 级别。
(3)兼容性:软件 RAID 与主机操作系统绑定,因此,需要对软件 RAID 或操作系统升级进行兼容性验证,只有当 RAID 软件和操作系统兼容时,才能对其进行升级,这会降低数据处理环境的灵活性。
1、DAS–direct access storage device 直接访问存储设备
DAS 以服务器为中心,传统的网络存储设备都是将 RAID 硬盘阵列直接连接到网络系统的服务器上,这种形式的网络存储结构称为 DAS( Direct Attached Storage)。
2、NAS–Network Attached Storage 网络附加存储设备
NAS 以数据为中心,NAS 是 Network Attached Storage 的简称,中文称为直接联网存储在 NAS 存储结构中,存储系统不再通过 I/O 总线附属于某个特定的服务器或客户机,而是直接通过网络接口与网络直接相连,由用户通过网络访问。
3、SAN–Storage Area Networks 存储区域网
SAN 以网络为中心,SAN 是一种类似于普通局域网的高速存储网络。SAN 提供了一种与现有 LAN 连接的简易方法,允许企业独立地增加它们的存储容量,并使网络性能不至于受到数据访问的影响。这种独立的专有网络存储方式使得 SAN 具有不少优势:可扩展性高;存储硬件功能的发挥不受 LAN 的影响;易管理;集中式管理软件使得远程管理和无人值守得以实现;容错能力强。
SAN 主要用于存储量大的工作环境,如医院大型 PACS 等,但现在由于需求量不大成本高而影响了 SAN 的市场。
加强磁盘阵列的日常管理与维护,是保证磁盘阵列正常、高效工作的重要手段。作为一名存储的管理人员,日常维护中应该关注以下:
①设置热备源盘
将一只硬盘设置为热备源盘,会造成一定的浪费,但从安全角度考虑是值得的。大容量的磁盘阵列使用 RAID5,但有一个硬盘的冗余。如果一个硬盘损坏,整个阵列的安全会处于一种临界状态,此时任何一个硬盘的一点点闪失都会造成灾难性的后果,使数据全部丢失。设置有热备源盘,当硬盘发生故障时,系统会自动用热备源盘去替换故障盘并重建阵列,随后数据又会处于完全保护之中。
②重要数据勤备份
应该经常对特别重要的数据进行备份,这样就不至于将“鸡蛋放在一个篮子里”,即使是安全性较高的磁盘阵列也不会绝对安全。
③建立巡视检查制度
磁盘阵列还能够工作,并不表示没有发生故障。当磁盘阵列发生故障时,磁盘阵列存储系统的数据读写通常是正常的。这正是磁盘阵列的一种安全性措施,但往往又让管理人员产生一种错觉,以为磁盘阵列没有故障发生。对磁盘阵列定时的巡视检查,既可以发现已经发生的故障,还可以了解设备的工作状态,起到防患于未然的作用。
目前,针对固态硬盘的 RAID 阵列技术主要有三类,其中固态硬盘和机械硬盘组合搭建的混合式 RAID 阵列实现了两者特性的互补。随着固态硬盘的性价比不断提高,推进了固态硬盘与固态硬盘组合形成的 RAID 阵列以及固态硬盘的闪存芯片与芯片组合形成的纯固态硬盘 RAID 阵列的研发进程。由于目前固态硬盘价格高于机械硬盘,固态硬盘与机械硬盘构成的混合式 RAID 阵列与其他纯固态硬盘 RAID 阵列相比,在成本控制方面有较大的优势。但在性能与可靠性方面,多个固态硬盘构成的 RAID 阵列要优于固态硬盘与机械硬盘构成的混合式 RAID 阵列,而目前大多数固态硬盘厂商都采用固态硬盘内部的芯片级 RAID 阵列来进一步提升性能,降低功耗。
对嵌入式 RAID 阵列技术的 iRAID,这种结构的初步研究结果表明,RAID 系统将不再是一群独立的驱动器,未来将可能只有一个单一的高密度磁盘。这将使这些存储系统的磁盘阵列,如云存储系统,在性能、功率消耗、体积方面有更大的改善,成本进一步降低,同时也更容易维护。由此,嵌入式 RAID 技术将会成为固态硬盘 RAID 阵列技术的主要研究方向之一,具有广阔的应用前景,涉及教育、娱乐、国防等多个应用领域,特别是在航空、军事等工作环境复杂程度高、数据安全级别要求高的领域,将会有大的作为。另外,因目前评估固态硬盘 RAID 的可靠性方面的研究较少,需要尽快完善针对 RAID 可靠性的评价体系及方法,由此可靠性分析研究也将成为固态硬盘 RAID 阵列技术的研究重点之一。
除此之外,下面两方面也会在固态硬盘 RAID 阵列技术研究中受到关注。
1) 大数据存储结构与搜索引擎研究。数据存储系统是确定数据挖掘性能和成本的核心。新型的大数据存储架构可整合分布式以及嵌入式搜索引擎内的每一个存储驱动器,突破数据吞吐量和数据访问存储系统的限制,提升大数据存储接口的带宽。
2) 快速重建机制研究。固态硬盘的 RAID 结构采用相应的重建机制,将加快从统计错误到恢复数据等整个重建的进程,同时有助于降低重建过程中数据丢失的风险。重建机制对于一个完善的固态硬盘 RAID 结构来说是不可或缺的,需要根据其 RAID 阵列特点进行开发并优化处理。