磁盘阵列系统(RAID)介绍
导读:"磁盘阵列",或说是"硬盘数组",或是 "磁盘数组",在今天,相信已经不再是那么令人感到陌生了.因为在这几年来,网络以及服务器之成长迅速,相随的对资料之安全性,也更加重视和要求.
关键词:RAID
引言
"磁盘阵列",或说是"硬盘数组",或是 "磁盘数组",在今天,相信已经不再是那么令人感到陌生了.因为在这几年来,网络以及服务器之成长迅速,相随的对资料之安全性,也更加重视和要求.
固然,每日的磁带或其它媒体方式的备份仍然重要,但对于硬盘故障后的恢复间隔,也希望在可接受范围内,得到最大的缩短. 此时最好的方案,则非磁盘阵列莫属.因为磁盘阵列的优点:具有单一大容量的好处,提供了硬盘容错功能,易于管理的优点.
源由
1987年,有一群研究者在美国University of California - Berkeley 发表了一篇文章: A Case for Redundant Arrays of Inexpensive Disks",而IBM 是此一项目研究的主要协助者.这篇文章,介绍了一个新的 "头字语" - R A I D. 同时并定义了五种RAID代号- RAID level.
这篇文章的主要论题,是针对当时的硬盘科技,在容量及速度上,无法追上CPU及内存的发展的现象,提出多种改善方法.因为长期来看,这种脚步的差距,会造成硬盘无法实时供应对资料的急迫需要.
所以,它利用了各式技巧,将许多较小容量的硬盘,以RAID 技术,规划为一座大的硬盘机.同时,在实际储存资料时,透过这项技术,将资料切割成多区段并分别同时存放于各个硬盘机上.在实际读取资料时,也是同时自此多颗硬盘机读出资料.由此可见,这项技术 RAID, 着实提高了大型硬盘的效率.
值得一提,它的观念,也提供了一套思考及开发的方向:资料容错.藉由"同位检核" Parity 的概念及方法,能在该群数组硬盘中任一颗硬盘故障时,仍能读出资料,并可于数据重构时,将原故障硬盘内之应有资料,经计算后置回替代的新硬盘中,使回复成原貌.
这篇文章也指出了许多在各不同代号型式的RAID,其开发上的问题,大多相关于强调"速度"及"成本"上的改善.这和今日的数组供货商所多强调的"可靠性" Reliability 及"资料可供应性" Data Availability, 似乎有些不同.当然这也是因为时代背景的差异.不过,这也使得各磁盘阵列供货商,各自有较大的发挥空间,针对容错性,成本,及效率,有不同的处理方式及结果.
RAID的分类
以下就几项基本的名词作一分项解释.
| 数组种类 | 英文简述 | 硬盘容错吗? | N颗硬盘 可用容量 |
| RAID level 0 | Stripe / Span | No | N |
| RAID level 1 | Mirror | Yes | N÷2 |
| RAID level 3 | Parallel with Parity | Yes | N―1 |
| RAID level 4 | Parallel with Parity | Yes | N―1 |
| RAID level 5 | Striped with Rotating Parity | Yes | N―1 |
| RAID level 0+1 | Mirror + Stripe | Yes | N÷2 |

RAID level 0
这个代号是被定义为非容错的硬盘群组.而组构的多颗硬盘机,被依一定的切割区段,连贯成一颗大容量的数组硬盘.它没有同位检核的位,所以无法救回因其中任一硬盘故障而毁损的整个资料.
这是最有效率的一种数组类别,因为资料可以多个区段方式,在同一时间,将之分别存放在该群所有数组硬盘里.在读取资料时,亦可在同一时间,由该群所有数组硬盘送出资料至数组控制器.换言之,此种数组类型的效率,是与该群内数组硬盘数成正比.所以在读写强而集中的应用领域 (如:影音播放系统),可藉 RAID level 0 得到较佳的输出效率及品质

RAID level 1
就是"磁盘镜像" Disk Mirroring. 它可将两颗硬盘机为一组,在有资料欲写入时,在同一时间将之存放在本组的两颗硬盘中,所以在同"镜像对" Mirrored Pair 中的两硬盘,其内部资料是完全一样的.而在读取资料时,则可自两颗硬盘同时读出,即使是来自不同的客户端所提出之不同读取要求.
这一型式的磁盘阵列,不但不会降低写入的速度,更能提高读取的效率.事实上,它是容错型式的磁盘阵列中,效率最高的.不过其硬盘机的容量利用率,则只有实际容量的一半.所以, RAID level 1 常应用于高安全要求的多人使用环境,例如:操作系统磁盘 OS Disk

RAID level 0+1
这是一种Dual Level RAID, 也有人称之为RAID level 10. 这可不是"十",它是"零加一",亦即是两组依一定的切割区段,连贯成不同的两颗大容量的数组硬盘,互相为"镜像".在每次写入数据,磁盘阵列控制器会将资料同时写入该两组"大容量数组硬盘组"内.
同RAID level 1 一样,虽然其硬盘使用率亦只有50%,但它却是最具高效率的规划方式.真理:真正的"安全性"加"速度"是建立在成本上的

RAID level 3
这种规划方式,常用在绘图,影像处理,…等,对资料进行大量读或写的应用领域.它由数组控制器内建的XOR逻辑,根据切割之区段大小,计算出同位检核位或字节.这项功能,提供了资料容错效果.而这个区段的大小,是以bit或byte为单位.
每项资料中的同位检核资料,统一存放在一特定的同位碟(Parity Disk)上.而资料则是分别散存在各资料碟Data
Disk内.单从少部份的资料碟,是无法取得完整原资料的

RAID level 4
跟上述的level 3 大部份相同.不过其支持的区段大小相当多样,是以block为单位计算的.它可以是单一block为区段,也有以多个block为区段大小.所以有些资料是可以从某资料碟中取得,这促成一个较RAID
level 3 势的是:允许"重叠读取" Overlapped Read Operation.
但是在作写入时,因为需同时更新"同位碟"的信息,所以不具有"重叠写入"的能力.换言之,在同时间中多笔资料要求写入时,因为每笔资料之同位信息需写在同一颗"同位碟"中,所以并不会有任何速度的优势.
所以在一般使用多人数据库, RAID level 4 是较不适合的规划.但是在如:计算机绘图,非线性剪接,动画处理,数字图书馆,
... 等用途上,这样的规划,却是最佳的选择

RAID level 5
通常亦为"轮转同位型数组" Rotating Parity Array. 它和RAID level
4 一样的,在每次的写入前,由数组控制器内建的XOR逻辑,根据切割之区段大小(单一或多个block为单位),计算出同位检核信息.每项资料中(以Stripe为单位)的同位检核资料,随着资料分别散存在各数组硬盘内,没有特定同位碟.相较于上述RAID
level 4, 这个型式可允许多个写入,因为这多个写入动作时,同位信息是置在不同的数组硬盘中.
但是在读取资料时,每项资料可能是直接来自各具该项资料的硬盘中,但也可能是会读入同位信息,而必需经由XOR的计算.在连续大型档案要求输出时,它显然稍有不利
Parity容错基本原理
以上介绍了常见的数组代号型式,相信许多读者仍不了解这个"同位检核信息" Parity 如何提供容错能力?而已毁损的硬盘中之原资料,又如何在新的替代硬盘中,作原资料的重建Rebuild ?
每个Byte 是由8 个bit 所构成的,如果在这八个bit 后,经由运算XOR上述的八个data bit,再加一个同位检核位Parity bit, 则这组九个bits 所构成的Byte, 就具备了容错能力了,见下例:
| Byte (字母) | Bit (位) | 说明 |
| K | 1 0 0 1 0 0 1 1 | 只是个例子 |
| ? | 1 0 0 1 0 0 1 ? | 少了一个bit,原字母不见了 |
| K | 1 0 0 1 0 0 1 1 Pk | 经由数组控制器计算出Parity |
| K | 1 0 0 1 0 0 1 ? Pk | 即使少了一个bit,仍可读出原资料 |
| K | 1 0 0 1 0 0 1 1 Pk | 经由XOR计算,又推敲并回复了原貌 |
| K | 1 0 0 1 Pk' 0 0 1 1 Pk" | 同理,可以将一笔资料,以不同的切割区块大小,将资料分为二,并各有一个Parity bit |
上面的例子,是以一个Byte 为例,可以将此观念延伸到block, blocks, disk. 就可以了解到,当一颗数组硬盘机故障时,其内原有的Data Blocks及不同Data Stripe中的Parity Blocks, 虽已丧失,但是可以经由数组控制器(通常具有独立CPU)的XOR 功能,将存在其它数组硬盘内的Parity Blocks 及不同的Data Stripe中的Data Blocks加以计算,得出应置回的原资料.
毁损数据重构: Data Rebuild, Data Reconstruction
当然,若主系统在不关机情形下(通常这是使用者采购磁盘阵列的主要目的)在作数据重构的时候,主系统的资料进出效率会受到影响.在整台数组中,数据重构与正常存取的效率是互补的.
不过现在的数组控制器大多已可支持"可调整的重建优先权设定".以笔者所经验过的重建9GB硬盘为例子,它可以在五十分钟内完成.但在以正常存取为极度优先时,它可能需时三小时.不过如果是采用较低阶的数组控制器,恐怕所需时间,会远远超过上述的数字,提高危险系数.
因为在正常的RAID level 3, 4, 5 型式下,磁盘阵列容许同一数组组态群内,仅一颗硬盘故障.而系统管理者,必须在尽量短的时间内(第二颗硬盘故障前),
立即得到通知:一颗数组硬盘已经故障了.而这个通知方式及过程,影响前来处理的时间.目前有多种设计:基本的警笛声,事件记录联结并通知主系统之操作系统,电子邮件,传呼器, ... 都是善尽通知义务的方法.
立即将数据重构完成.否则,就得面临向大量资料说再见的精神压力了.
不过,如何缩短从在被通知后到抵达现场,并开始作数据重构的这段时间及压力,则难以绝对掌握.有解吗?
备援硬盘: Spare Disk
如果在数组中,加上备援硬盘.当任一数组硬盘故障时,该备援硬盘可以自动上线,将故障硬盘立即取代,并开始依设定的"重建优先权"作数据重构,就可有效缩短上述的"前往处理"的时间,也可减少因急迫性所造成的压力.
不过,这颗备援硬盘,平时是无法拿来作存放空间的.因为一旦作了"可使用"的标记,备援设定会自动消失.所以,回到前述的真理:"安全性"加"速度"建立在成本上的.
总体备援硬盘: Global Spare Disk。就是备援硬盘,但是可以对同一磁盘阵列中的所有"数组组态群"作备援.总是比较省的方式.
定时备份
"既然重要,为何不备份?"与其在灾害发生时,束手无策,自怨自艾,何不在规定时间作好重要资料的备份,以防万一? 即使使用了磁盘阵列,提高数据的可供应性,备份仍该作的.毕竟,它是重要的资料.
RAID控制器型式
1. 软件架构:Software Based
在多年前, Novell 的Netware就提供了Mirror的功能,即使在今天,相信仍有许网络系统,是采用此一方式.不过这在资料量较大的环境中,其50% 的硬盘使用率,究竟是稍少了些.另外, Corel 在约五年前,大力推广其Corel RAID!以不到美金一千元的低价,切入市场.
然而究竟使用软件的数组架构,会占用到主系统的CPU 及内存资源,而导致系统效率的下降.所以采用非主系统供货商的软件数组产品者,相对是较少的.
2. 主机独立式架构: Host Independent
数组控制器对主系统,是藉由连接至其存取接口(目前以SCSI 为主)作信道.换言之,它在主系统的存取接口上,是一个独立的直接存取储存体DASD Direct Access Storage Device. 而这个大的储存体内,可以有不只一个的逻辑磁盘LUN Logical Unit Number. 数组控制器,对下管理多颗数组硬盘机们.而主系统是不会看到或直接管理该硬盘的.例如:CMD, EMC, Symbios, Digital StorageWorks, ... 都有相关的产品.
而且这些数组领导厂商,也都各自有不同设计的"容错式数组控制器",以避免因数组控制器故障Fail Over时所造成的伤害,甚至可作"线上抽换" On Line Hot Swap 数组控制器. 不过这些可是较高文件的产品了.记得那句名言?真正的"安全性"加"速度"是建立在成本上的.
采用这项架构,可以接在大多数具有合标准的存取接口的主机上,而且不需额外另挂驱动程序Drivers,在各种操作系统的兼容性上,也有较佳的成果.使用这种架构,在主机系统上的设定较容易.
此外,主机独立式磁盘阵列,还有可连接多主机功能的设计. 不但可以扩增连接高达四台主机,更可分散读写信道,提高主系统整体效率.
网友评论
暂时没有评论!- 相关文章
-
- NEC借RAID.Inc公司OEM协议进入美国存储市场2008-07-08 10:18:18
- DoSTOR专家观点 IT史上改变历史的十大存储发明2008-06-10 09:54:15
- Ciprico与AIC将展示存储桥接舱(SBB)解决方案2008-06-03 09:18:56
- 专家观点 Linux文件系统:为未来做好准备了么?2008-05-30 11:33:40
- DoSTOR存储分析 光纤通道市场未来将有重大变革2008-05-12 23:04:56
- LSI、戴尔和希捷通过端对端6Gb SAS互通性演示2008-05-08 14:37:24
- DoSTOR专家观点 确保VMware成功的虚拟化存储2008-05-05 11:28:49
- DoSTOR存储分析 什么是下一代光纤通道磁盘阵列2008-04-29 09:17:28






发表评论