图 13 典型的 RAID60 模型
4.4 非标准 RAID 等级
虽然标准 RAID 和组合 RAID 在具体实现上存在一定程度的不同,但与标准规范是保持一致或兼容的。除此之外,一些存储厂商还实现了非标准的 RAID 等级,往往都是公司私有的产品。这里简单介绍几个非标准 RAID 等级[14]
1. RAID7
RAID7 的全称是最优化的异步高 I/O 速率和高数据传输率,它与其他 RAID 等级有着明显区别。它不仅仅是一种技术,它还是一个独立存储计算机,自身带的操作系统和管理工具,完全可以独立运行。
RAID7 的存储计算机操作系统是一套实时事件驱动操作系统,其主要用来进行系统初始化和安排 RAID7 磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。 RAID7 通过自身系统中的专用控制板来控制读写速度,存储计算机操作系统可使主机 I/O 传递性能达到最佳。如果一个磁盘出现故障, RAID7 还能够自动执行恢复操作,并可管理备份磁盘的重建过程。
RAID7 突破了以往 RAID 标准的技术架构,采用了非同步访问,极大地减轻了数据写瓶颈,提高了 I/O 速度。 RAID7 系统内置实时操作系统还可自动对主机发送过来的读写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,从而大大减少了磁头的转动次数,提高存储系统的 I/O 速度。
RAID7 可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率大大提高,满足不同用户的存储需求。但是, RAID7 的成本比其他 RAID 等级要高许多。另外, RAID7 已被某公司注册为商标,目前仅有一家公司提供 RAID7 的产品,用户没有更多的选择。技术封闭,缺乏主流专业存储厂商的参与和研发严重制约了 RAID7 的发展。
2. RAID-DP
按照 SNIA 最新的 RAID6 定义 [15] ,双重数据校验的磁盘阵列都可归为 RAID6 等级。 NetApp 公司按照 RAID6 的定义实现了 RAID-DP ,使用双重的数据校验来保护数据,可以保证两块磁盘同时损坏的情况下不发生数据丢失。与该公司的 RAID4 实现对比,传统的 RAID6 实现会致使系统性能损失 30% 左右,而 RAID-DP 的性能下降低于 2% 。上层文件系统的请求首先写入后端的 NVRAM 中,确保即使在 掉电的情况下也不会有任何数据丢失。因此,数据块不会立即更新,当执行新来的写操作,会对写操作进行聚集,然后存储控制器尝试一次性写入包括校验数据在内的整个数据条带。 RAID-DP 提供了比 RAID10 更好的数据保护,性能却不低于 RAID10 。对于相同大小的 RAID 组,在大多数情况下, RAID-DP 没有受到传统 RAID6 即时更新数据块的挑战,并提供更多的磁盘进行读写。它甚至允许磁盘固件实时更新而不发生任何中断。
3. RAID1.5
这是 HighPoint 公司的 RAID 产品,有时也被错误地称为 RAID15 。 RAID1.5 仅使用两个磁盘驱动器同时进行数据条带化和镜像,数据可以同时从两块磁盘进行读取。这其中的大部分工作都由硬件来完成,而非驱动程序。 Linux 、 Solaris 等操作系统实现的 RAID1 也可以实现同时从两块磁盘进行读取数据,因此 RAID1.5 并不优于传统的 RAID1 。
4. RAID5E 、 RAID5EE 和 RAID6E
这种概念首次在 IBM ServerRAID 中被提出, E 是 Enhanced 的首字母。它们分别是对 RAID5 和 RAID6 的增强,增加了热冗余磁盘驱动器,冗余磁盘与其他磁盘一块进行数据块编排。这种设计使得 I/O 可以分散到包括热冗余在内的所在磁盘,从而减小单块磁盘的 I/O 带宽, 提供更高的性能。然而,热冗余磁盘不能够被多个阵列共享。
在实现中,实际上不存在专用的热冗余磁盘,就像 RAID5 和 RAID6 中没有专用的校验磁盘一样,所有的冗余数据块分布在所的成员磁盘中。例如,一个 10 块磁盘的 RAID5E ,包括 80% 数据块、 10% 的冗余数据块和 10% 的校验数据。对于 RAID5E 和 RAID6E ,冗余数据块位于阵列尾部,而 RAID5EE 则分布在整个 RAID 中。如果 RAID5E/5EE 中发生一块磁盘损坏,则系统会自动降级并重建至标准的 RAID5 。这一过程中, I/O 操作非常密集,并且需要花费大量时间,从几个小时至甚至几天,根据阵列的具体配置而异。当损坏磁盘被替换后,系统则又会自动升级并重建至原先的 RAID5E/5EE ,同时非常耗时。在上面的重建过程中,数据没有冗余保护。由于系统升级和降级时, I/O 活动密集且所需时间过长,因此实际应用中成员磁盘数据限制在 4~8 块。一旦超过 8 块磁盘,由于损坏磁盘的重建耗时和重建中发生第二块磁盘损坏造成的数据丢失, RAID5E/5EE 所获得的性能提升和其他获益都将严重降低。
5. RAID S (Parity RAID)
RAID S 是 EMC 公司的 Symmetrix 存储系统所使用的条带化校验 RAID 。该系统中,每个卷位于单独的物理磁盘上,多个卷组合进行数据校验。 EMC 最早引入了 RAID S 概念,后来改名为 Parity RAID 并应用于 Symmetrix DMX 平台。 EMC 现在也为 Symmetrix DMX 提供标准的 RAID5 , RAID S 已经不再 EMC 产品中使用。
6. Intel Matrix RAID
Matrix RAID 是 Intel ICH6R 和后继的南桥芯片的一个重要特征,可以通过 RAID BIOS 进行访问。它使用两块磁盘或者控制器能支持的最多磁盘,它的显著特征是允许 RAID0 、 1 、 5 、 10 多种数据卷混合共存,每块磁盘的指定部分分配给相应的 RAID 卷。 Matrix RAID 主要用于改善性能和数据完整性,实际应用中可以将操作系统应用于小的 RAID0 ,而大的 RAID1 存储关键数据以及用户数据。海量的流媒体数据容易发生数据丢失,可以考虑使用这种 RAID 。 Linux 的 MD RAID 也可以实现类似的功能。
7. Linux MD RAID 10
RAID 10 是 Linux 内核所支持的软 RAID 等级之一,它还支持 RAID0 、 1 、 3 、 4 、 5 、 6 等级别。软 RAID 驱动程序通常通过构造典型的 RAID1+0 阵开来实现 RAID10 , 2.6.9 以后的内核也可作为单独的级别来实现。
MD RAID10 支持重复数据块的近布局和远布局两种模式。近布局与标准 RAID10 相同,镜像数据块相邻存储。对于 n 重镜像的 k 路条带,不要求 k 为 n 的 整倍数。两重镜像的 2 、 3 、 4 路条带的 MD RAID10 分布相当于 RAID1 、 RAID-1E 和 RAID10 。远布局模式下,所有磁盘被划分为 f ( f= 镜像数)个数据存储区,重复数据块相对于原始数据块具有一个磁盘和若干依偏移的距离,即保存在下一个磁盘对应存储区的偏移位置。这种设计能够提高镜像阵列的条带性能,有效提高顺序和随机读性能,但对写性能没有显著提升。许多应该通常具有读密集而写稀疏的特点, RAID10 适合此类数据应用。需要指出的是,近布局和远布局两种模式可以同时使用,这种情况下将有 n * f 个数据副本。
8. IBM ServerRAID 1E
IBM 公司的 ServerRAID 阵列卡系列支持任意数量驱动器上的两路镜像,多个磁盘对数据块进行轮转镜像。这种配置能够对不相邻磁盘驱动器发生的损坏进行容错,其他的存储系统也支持这种模式,比如 SUN 公司的 StorEdge T3 。
9. RAID-K
Kaleidescape 公司实现了一种称为 RAID-K[16] 的 RAID 类型。 RAID-K 与 RAID4 相似,但不对文件数据进行块级的条带化处理,它企图将整个电影或音乐集合完整地存储在单个磁盘上。另外,它的冗余校验信息可存储在多个磁盘上,从而适应由多个容量不同的磁盘所组成的逻辑磁盘。而且,冗余数据包含比校验信息更多的数据,用于获取更高的容错性。这些特征可以为影像、音乐提供更好的性能,增加数据存储的安全性。 RAID-K 还可以允许用户以增量方式扩充存储容量,能够增加容量更大的磁盘,甚至它还可以增加包含数据(仅限影像和音乐)的磁盘。 RAID-K 会自动把这些磁盘组建成 RAID-K 阵列和 Kaleidescape 文件系统。
10. RAID-Z
RAID-Z 是集成在 SUN 公司 ZFS 文件系统中的一种与 RAID5 相似的 RAID 模式。利用写时复制策略, RAID-Z 避免了 RAID5 的写操作困境(即更新数据同时需要更新校验数据),它不用新数据覆盖旧数据,而是把新数据写到新位置并自动更新数据指针。对于小的写操作,仅仅执行完全的写条带操作,有效避免 “ 读取-更改-写回 ” 的操作需求。另外,还可以直接对小写操作使用镜像替换校验进行保护,因为文件系统了解下层存储结构,可以在必要时分配 额外存储空间。 ZFS 还实现了 RAID-Z2 ,提供类似与 RAID6 的双重校验保护能力,可以保证不块磁盘发生损坏而不发生数据丢失。根据 2009 年 6 月的更新, ZFS 加入了三重校验 RAID 支持,或许称为 RAID-Z3 。
5 实现方式
通常计算机功能既可以由硬件来实现,也可以由软件来实现。对于 RAID 系统而言,自然也不例外,它可以采用软件方式实现,也可以采用硬件方式实现,或者采用软硬结合的方式实现。 [3][8]
5.1 软 RAID
软 RAID 没有专用的控制芯片和 I/O 芯片,完全由操作系统和 CPU 来实现所的 RAID 的功能。现代操作系统基本上都提供软 RAID 支持,通过在磁盘设备驱动程序上添加一个软件层,提供一个物理驱动器与逻辑驱动器之间的抽象层。目前,操作系统支持的最常见的 RAID 等级有 RAID0 、 RAID1 、 RAID10 、 RAID01 和 RAID5 等。比如, Windows Server 支持 RAID0 、 RAID1 和 RAID5 三种等级, Linux 支持 RAID0 、 RAID1 、 RAID4 、 RAID5 、 RAID6 等, Mac OS X Server 、 FreeBSD 、 NetBSD 、 OpenBSD 、 Solaris 等操作系统也都支持相应的 RAID 等级。
软 RAID 的配置管理和数据恢复都比较简单,但是 RAID 所有任务的处理完全由 CPU 来完成,如计算校验值,所以执行效率比较低下,这种方式需要消耗大量的运算资源,支持 RAID 模式 较少,很难广泛应用。
软 RAID 由操作系统来实现,因此系统所在分区不能作为 RAID 的逻辑成员磁盘,软 RAID 不能保护系统盘 D 。对于部分操作系统而言, RAID 的配置信息保存在系统信息中,而不是单独以文件形式保存在磁盘上。这样当系统意外崩溃而需要重新安装时, RAID 信息就会丢失。另外,磁盘的容错技术并不等于完全支持在线更换、热插拔或热交换,能否支持错误磁盘的热交换与操作系统实现相关,有的操作系统热交换。
5.2 硬 RAID
硬 RAID 拥有自己的 RAID 控制处理与 I/O 处理芯片,甚至还有阵列缓冲,对 CPU 的占用率和整体性能是三类实现中最优的,但实现成本也最高的。硬 RAID 通常都支持热交换技术,在系统运行下更换故障磁盘。
硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片, 服务器平台多采用 RAID 卡。 RAID 卡由 RAID 核心处理芯片( RAID 卡上的 CPU )、端口、缓存和电池 4 部分组成。其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口。
5.3 软硬混合 RAID
软 RAID 性能欠佳,而且不能保护系统分区,因此很难应用于桌面系统。而硬 RAID 成本非常昂贵,不同 RAID 相互独立,不具互操作性。因此,人们采取软件与硬件结合的方式来实现 RAID ,从而获得在性能和成本上的一个折中,即较高的性价比。
这种 RAID 虽然采用了处理控制芯片,但是为了节省成本,芯片往往比较廉价且处理能力较弱, RAID 的任务处理大部分还是通过固件驱动程序由 CPU 来完成。
6 6 RAID 应用选择
RAID 等级的选择主要有三个因素,即数据可用性、 I/O 性能和成本。 目前,在实际应用中常见的主流 RAID 等级是 RAID0 , RAID1 , RAID3 , RAID5 , RAID6 和 RAID10 ,它们之间的技术对比情况如表 1 所示。如果不要求可用性,选择 RAID0 以获得高性能。如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁盘数量选择 RAID1 。如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁盘数量选择 RAID3 或 RAID5 。在实际应用中,应当根据用户的数据应用特点和具体情况,综合考虑可用性、性能和成本来选择合适的 RAID 等级。 [10]
表 1 主流 RAID 等级技术对比
RAID 等级
|
RAID0
|
RAID1
|
RAID3
|
RAID5
|
RAID6
|
RAID10
|
别名
|
条带
|
镜像
|
专用奇偶校验条带
|
分布奇偶校验条带
|
双重奇偶校验条带
|
镜像加条带
|
容错性
|
无
|
有
|
有
|
有
|
有
|
有
|
冗余类型
|
无
|
有
|
有
|
有
|
有
|
有
|
热备份选择
|
无
|
有
|
有
|
有
|
有
|
有
|
读性能
|
高
|
低
|
高
|
高
|
高
|
高
|
随机写性能
|
高
|
低
|
低
|
一般
|
低
|
一般
|
连续写性能
|
高
|
低
|
低
|
低
|
低
|
一般
|
需要磁盘数
|
n≥1
|
2n (n≥1)
|
n≥3
|
n≥3
|
n≥4
|
2n(n≥2)≥4
|
可用容量
|
全部
|
50%
|
(n-1)/n
|
(n-1)/n
|
(n-2)/n
|
50%
|
近年来,企业的信息化水平不断发展,数据已经取代计算成为了信息计算的中心,信息数据的安全性就显得尤为至关重要。随着存储技术的持续发展, RAID 技术在成本、性能、数据安全性等诸多方面都将优于其他存储技术,例如磁带库、光盘库等,大多数企业数据中心首选 RAID 作为存储系统。当前存储行业的知名存储厂商均提供全线的磁盘阵列产品,包括面向个人和中小企业的入门级的低端 RAID 产品,面向大中型企业的中高端 RAID 产品。这些存储企业包括了国内外的主流存储厂商,如 EMC 、 IBM 、 HP 、 SUN 、 NetApp 、 NEC 、 HDS 、 H3C 、 Infortrend 、华赛等。另外,这些厂商在提供存储硬件系统的同时,还往往提供非常全面的软件系统,这也是用户采购产品的一个主要参考因素。
不同的存储厂商的产品在技术、成本、性能、管理、服务等方面各有优势和不足。用户选择 RAID 的原则是:在成本预算内,满足数据存储需求的前提下,选择最优的存储厂商解决方案。因此,首先用户需要对存储需求作深入的调研和分析,并给出成本预算,然后对众多存储厂商的解决方案进行分析和对比,最后选择出一个综合最优的存储方案。其中,存储产品的扩展性和存储厂家的售后服务需要重点考察,存储需求(如容量、性能)可能会不断升级,存储产品发生故障后的维修和支持保障,这些都要未雨先缪。
7 总结与展望
回顾 RAID 发展历史,从首次提出概念至今已有二十多年。在此期间,整个社会信息化水平不断提高,数据呈现爆炸式增长趋势,数据取代计算成为信息计算的中心。这促使人们对数据愈加重视,不断追求海量存储容量、高性能、高 安全性、高可用性、可扩展性、可管理性等等。 RAID 技术在这样强大的存储需求推动下不断发展进步,时至今日技术已经非常成熟,在各种数据存储系统中得到了十分广泛的应用。
正是由于技术发展的成熟, RAID 技术的未来发展已经不被广泛看好,甚至预言在不久的将来会停止发展,称之为 “ 僵尸技术 ” ,即虽然宣布死亡,但在很长一段时间内仍会继续发挥巨大的价值。
然而,当前的 RAID 技术仍然存在诸多不足,各种 RAID 模式都存在自身的缺陷,主要集中在读写性能、实现成本、恢复时间窗口、多磁盘损坏等方面。因此, RAID 技术显然还存在很大的提升空间,具有很大的发展潜力。近年来新出现的 RAID 模式以及学术研究显示了其未来的发展趋势,包括分布式校验、多重校验、混合 RAID 模式、水平和垂直条带、基于固态内存 RAID 、网络校验等等。特别指出的是,多核 CPU 和 GPU 是当前的热点技术,它们大幅提升了主机的可用计算资源,这可以解决 RAID 对计算资源的消耗问题,软 RAID 很可能将重新成为热点。另外,存储硬件性能的提升、存储虚拟化技术、重复数据删除技术以及其他存储技术都会极大地推动 RAID 技术的进一步创新和发展。
参考文献:
[1] David A. Patterson, Garth Gibson, and Randy H. Katz: A Case for Redundant Arrays of Inexpensive Disks (RAID). University of California Berkley. 1988.
[6] 赵文辉 , 徐俊 , 周加林 , 李晨 . 网络存储技术 , 清华大学出版社 , 2005 年 .
[7] 姜宁康 , 时成阁 . 网络存储技术导论 , 清华大学出版社 , 2007 年 .
[8] 王改性 , 师鸣若等 . 数据存储备份与灾难恢复 , 电子工业出版社 , 2009 年 .
[9] Tom Clark 著 , 罗金平 , 汪东 , 方兴译 . IP SAN 权威指南 , 中国电力出版社 , 2003 年 .
[10] 王纪奎 . 成就 存储专家之路-存储从入门到精通 , 清华大学出版社 , 2009 年 .
- 快照(Snapshot)技术发展综述
快照(Snapshot)技术发展综述 刘爱贵 摘要:传统数据备份技术存在备份窗口.恢复时间目标RTO和恢复时间点RPO过长的问题,无法满足企业关键性业务的数据保护需求,因此产生了数据快照技术.本文对快 ...
- NVDIMM典型应用及技术发展
1.典型应用之全系统保护 全系统保护采用超级内存作为系统主存.在系统异常掉电时,将整个系统的运行状态(包括CPU,芯片组,其他外设以及所有进程的信息)存入超级内存.在供电恢复后,利用超级内存中的数据, ...
- 高速掌握sinox2014激动人心的ZFS和RAID技术
Sinox2014引入激动人心的zfs系统以及其支持的RAID,让用户高速打造便宜的高可靠性文件server. ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统( ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- 七种RAID技术
想把好多硬盘组在一起使用的基本方式为:连接所有硬盘,先向第一个硬盘中写数据,满了之后,再向第二个硬盘上写数据,如此只是简单的连通了多个硬盘. 再此基础上发展了RAID技术:由独立磁盘组成的具有冗余特性 ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- 1 RAID技术入门
序 RAID一页通整理所有RAID技术.原理并配合相应RAID图解,给所有存储新人提供一个迅速学习.理解RAID技术的网上资源库,本文将持续更新,欢迎大家补充及投稿.中国存储网一如既往为广大存储界 ...
- RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】
图文并茂 RAID 技术全解 – RAID0.RAID1.RAID5.RAID100…… RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转 ...
- 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为“同步定位与地图构建”,它主要用于解决机器人在未知环境运动时的 ...
随机推荐
- Python记录9:函数4:名称空间作用域+闭包函数+装饰器
''' 一: 名称空间namespaces 名称空间就是存放名字与值绑定关系的内存空间 二: 名称空间分为三种 内置名称空间: 1. 特点: 存放是python解释器自 ...
- U盘安装Windows Server 2008 r2失败,改用磁盘安装
一.使用UltraISO制作系统安装启动U盘提示错误“缺少所需的CD/DVD驱动器设备驱动程序.…………”试了各种方法都不能通过U盘进行安装. 二.直接使用磁盘安装0.使用PE先将磁盘格式化.分区.1 ...
- java,利用Selenium调用浏览器,动态模拟浏览器事件,动态获取页面信息
1.环境搭建 jdk1.6版本:selenium 2.4版本. jdk1.8版本:selenium3.14版本. (1)selenium的jar包下载: 地址:http://selenium-rele ...
- CSS——对position定位和margin-top的理解
一.常见定位方式 1.positon:absolute (脱离文档流) 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位 (这里的父元素是指定位方式为relative和abso ...
- openGL学习----相机
0.参考:https://learnopengl-cn.github.io/01%20Getting%20started/09%20Camera/ 0.0其实相机就是搞清楚cameraPos,came ...
- DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined
DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined 原因:table 中定义的列和aoColumns ...
- Python Redis set集合
Set操作.Set集合就是不允许重复的列表 (无序集合) sadd(name,values) # name对应的集合中添加元素 scard(name) # 获取name对应的集合中元素个数 sdiff ...
- zabbix 配置本地邮箱报警
Centos 6.5, Zabbix 3.0.4 后台配置email 浏览器登录zabbix后台,Administration -> Media types -> Email: 比较简单的 ...
- springboot跑定时任务
使用@Scheduled注解实现 1.在启动类上加上@EnableScheduling 开启定时任务 2.新建一个任务类,在方法上添加@Scheduled注解 @Componentpublic cla ...
- JS设计模式(9)享元模式
什么是享元模式? 定义:享元模式是一种优化程序性能的模式,本质为减少对象创建的个数. 主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存 ...