为什么需要磁盘阵列? 如何增加磁盘的存取(acces)速度,如何防止数据因磁盘的故障而失落及如 何有效的利用磁盘空间,一直是电脑专业人员和用户的困忧;而大容量磁盘的价 格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。
过去十年来,CPU的处理速度几乎是几何级数的跃升,内存(memory)的 存取速度亦大幅增加,而数据储存装置——它要是磁盘(hard disk)——的存取 速度相较之下。较为缓慢。整个I/0吞吐量不能和系统匹配,形成电脑系统的瓶 颈,降低了电脑系统的整体性能(throughout)若不能有效的提升磁盘的存取速 度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。
目前改进磁盘存取速度的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁 盘存取的次数。数据的读写都在cache内存中进行,大幅增加存取的速度,如要读 取的数据不在cache内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方 式在单工期环境(Single—tasking envioronment)如DOS之下。对大量数据的 存取有很好的性能(量小且频繁的存取则不然)。但在多任务(multi—tasking)环 境之下(因为要不停的作数据交换(swapping)的动作)或数据库(database) 的存取(因每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。
其一是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单 一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据 时,阵列中的相关磁盘一起动作:大幅减低数据的存取时间,同时有更佳的空间 利用率。磁盘阵列所利用的不同的技术,称为RAID level,不同的level针对不 同的系统及应用,以解决数据安全的问题。
一般高性能的磁盘阵列都足以硬件的形式来达成、进—步的把磁盘cache控制 及磁盘阵列结合在—个控制器(RAID controler)或控制卡个,针对个同的用户 解决人们对磁盘输出/入系统的四大要求:
(1)增加存取速度。
(2)容错(fault tolerance),即安全性。
(3)有效的利用磁盘空间。
(4)尽量的平衡CPU,内存及磁盘的性能并异,提高电脑的整体工作性能。
磁盘阵列原理
1987年,加州伯克利大学的一位人员发表了名为“磁盘阵列研究”的论文, 正式提到了RAID也就是滋盘阵列,论文提出廉价的5.25”及3.5”的硬盘也能如 大机器上的8”盘能提供人容量、高性能和数据的一致性,并详述了RAIDl至5 的技术。 磁盘阵列针对不同的应用使用的不同技术,称为RAID level,RAID是Redundant Array of Inexpenslve Disks的缩写,而每一level代表一种技术,目前 业界公认的标准是RAID0—RAID5。这个level并个代表技术的高低,level5并不高于level3,level1也个低于level4。字于要选样哪一种RAID level的产品,纯视用户的操作环境(Operating envir0nment)及应用(application)而定,与level 的高低没有必然的关系。RAID0没有安全的保障,仅其快速,所以适合高速I/0 的系统;RAIDl适用于需安全性又要兼顾速度的系统,RAID2及RAID3适用于 大型电脑及影像、CAD/CAM等处理;RAID5多用于0LTP,因有余融机构及 大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对 磁盘阵列的误解,以为磁盘阵列非要RAID5不可;RAID4较少使用、和RAID5 有其共同之处,但RAID4适合大量数据的存取。其它如RAID6,RAID7。乃至 RAIDl0、50、100等,都是厂商各做各的,并无一致的标准,在此不作说明。
RAID1
RAID1是使用磁盘镜像(disk muroring)的技术,磁盘镜像应用在RAIDl 之前就在很多系统中使用,它的方式是在工作磁盘(working disk)之外再加一 额外的备份磁盘(backup disk)两个磁盘所储存的数据安全一致。数据在写入工 作磁盘同时也写入备份磁盘。
RAID2
RAID2是把数据分散为位/位组(bit/byte)或块(b1ock),加入海明码Hamming Code、在磁盘阵列中作间隔写入(Interleaving)到每个磁盘小。而 且地址(address)都一样,也就是在各个磁盘中,其数据都在相同的磁道(cylinder or track)及扇区中。RAID2又称为并行阵列(parallel array)其设计足使 用共轴同步(spindle synchronize)的技术,存取数据时、控个磁盘阵列—起动 作,在各个磁盘的相同位置作并行存取,所以有最好的存取时间(auesstime),共 总线(bus)是特别的设计以大带宽并行传输所存取的数据,所以有最好的传输时 间(transfer time)。在人型档案的存取应用,RAID2有最好的件能,仅如果档 案太小,会将其性能批下来。因为磁盘的存取足以期区为单位。而RAID2的存取是所有磁盘平行动作,而且是作单位或位组的存取。故小于—个扇区的数据 最会使其件能大打折扣。RAID2是设计给需要连续且大量数据的电脑使用的、如 大型电脑(mainframe to supercomputer)、作影像处理或CAD/CAM的工作站 (workstation)等,并个适用于—般的多用户环境网络服务器(network server)。 小型机或PC。
RAID3
RAID3的数据储存及存取方式都和RAID2一样,仅在安今方面以奇偶较验 (parity check)取代海明码做错误校正及检测,所以只需要—个额外的校检磁盘 (parity disk)。奇偶校验值的计算足以各个磁盘的相对应位作XOR的逻辑运算, 然后将结果写入奇偶校验磁盘,仟何数据的修改都要做奇偶校验计算。
RAID4
RAID4也使用一个校验磁盘,但和RAID3不一样,RAID4的方式是RAID0 加上一个校验磁盘。
RAID5
RAID5和RAID4相似但避免了RAID4的瓶颈,方法是不用校验磁盘而将校 验数据以循环的方式放在每一个磁盘中,RAID5的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比其它的RAID level要掌握更多的事情,更多的输出/入需求,既要速度快,又要处理数据,计算校验值,做错误 校正等,所以价格较高,其应用最好是0LTP,至于用于大型文件,不见得有最 佳的性能。
RAID的对比: 下面几个表列是RAID的一些性质:
操作 工作模式 最少硬盘量 可用容量 适用范围
RAID0 磁盘延伸和数据分布 2 T PC服务器和图形工作站
RAIDl 数据分布和镜像 2 T/2
RAID2 共轴同步,并行传输,ECC 3 视结构而定 大档案且输入输出不频繁的应用 如:影像处理和CAD/CAM等
RAID3 共轴同步,并行传输,Parity 3 Tx(n—1)/n
RAID4 数据分布,固定Parity 3 Tx(n—1)/n
RAID5 数据分布,分布Parity 3 Tx(n—1)/n 银行、金融、股市、数据库等大 型数据处理中心OLTP应用
RAID的性能与可用性
RAID Level 用户数据利用率 BandWidth Performance Transaction Performance 数据可用性
RAID0 1 0.25 1 0.0005
RAID1 0.5 0.25 0.85 1
RAID2 0.67 1 0.25 0.9999
RAID3 0.75 1 0.25 0.9999
RAID4 0.75 0.25 0.61 0.9999
RAID5 0.75 0.25 0.61 0.9999
以上数据基于4个磁盘,传输块大小lK,75%的读概率,数据可用性的计算 基于同样的损坏概率。
RAID的概述
RAID0
没有任何额外的磁盘或空间作安全准备,所以一般人不重视它,这是误解。 其实它有最好的效率及空间利用率,对于追求效率的应用,非常理想,可同时用 其它的RAID level或其它的备份方式以补其不足,保护重要的数据。
RAID1
最佳的安全性,100%不停机,即使有一个磁盘损坏也能照常作业而不影响 其效能(对能并行存取的系统稍有影响),因为数据是作重复储存。RAIDl的并行 读取几乎有RAID0的性能、因为可同时读取相互镜像的磁盘;写入也只比RAID0略逊,因为同时写入两个磁盘并没有增加多少工作。虽比RAID0要增加—倍的 磁盘做镜像,但作为采用磁盘阵列的进入点,它是最便宜的一个方案,是新设磁 盘陈列的用户之最佳选择。
RAlD5
RAID5在不停机及容错的表现都很好,但如有磁盘故障。对性能的影向较大, 大容量的快取内存有助于维持性能,但在0LTP的应用中,因为每—笔数据或记 录(record)都很小,对磁盘的存取频繁。故有—定程度的影响。某磁盘故障 时,读取该磁盘的数据需把共享同一校验值分段的所有数据及校验值读出来、再把故障磁盘的数据计算出来;写入时,除了要重复读取的程序外,还要再做校验值的计算,然后写入更新的数据及校验值;等换上新的磁盘,系统要计算整个磁 盘阵列的数据以回复故障磁盘的数据,时间要很长,如系统的工作负载很重的话, 有很多输出/入的请求征排队等候时,会把系统的性能拉下来。仅如使用硬件磁 盘阵列的话,其件能就可以得到大幅度的改进,因为硬件磁盘阵列如Arena系列 本身有内置的CPU与个机系统并行运作。所有存取磁盘的输出入工作都在磁盘陈列本身完成,不花费主机的时间,配合磁盘陈列的cache内存的使用,可以提高 系统的整体性能,而优越的SCSI控制更能增加数据的传输速率,即使枉磁盘故障 的情况下,主机系统的件能也不会有明显的降低。RAID5要做的事情太多,所以 价格较贵。不适于小系统,但如果是大系统使用大的磁盘阵列的话,RAID5却是 最便宜的方案。
总而言之,RAID0及RAIDl最适合PC服务器及图形工作站的用户,提供 最佳的性能及最便宜的价格。以低成本符合市场的需求。RAID2及RAID3适用 于大档案输入输出需求个频繁的应用如影像处理及CAD/CAM等;而RAID5 则适用于银行、金融、股市、数据库等大列数据处理中心的0LTP应用;RAID4 与RAID5有相同的特件及用方式,但其较适用于大型文件的读取。
磁盘阵列的额外容错功能
事实上容错功能已成为磁盘阵列最受清睐的特性,为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘 阵列系统都可使用热备份(hot spare or hot standby drive)的功能,所谓热备份是在建立(configure)磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘, 此一磁盘在平常并不操作,仅若阵列中某一磁盘发生故障时,磁盘阵列即以后备 磁盘取代故障磁盘,并自动将故障磁盘的数据重建(rebuild)在后备磁盘之上, 因为反应快速,加上cache内存减少了磁盘的存取,所以数据重建很快即可完成,对 系统的性能影响不大。对丁要求不停机的大型数据处理中心或控制小心而言,热 备份更是一项重要的功能,因为可避免晚间或无人守护时发生磁盘故障所引起的 种种不便。
备份盘又有热备份与温备份之分,热备份税和温备份的不同在于热备份盘 和阵列—起运转,一有故障时马上备援,而温备份盘虽然带电但并个运转,需要 备援时才启动。两者分别在是否运转及启动的时间,仅温备份并不运转,理论上有较长的寿命。另一个额外的容错功能是坏期区转移(bad sector reassignment)。坏扇区是磁盘故障的主要原因,通常磁盘在读写时发牛坏扇区的 情况即表示此磁盘故障。不能冉作读写,甚至有很多系统会因为不能完成读写的 动作而死机,仅若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得 系统性能大打折扣,而系统的维护成本也未免太高了,坏扇区转移是当磁盘阵列 系统发现磁盘有坏扇区时,以另一空白的且无故障的扇区取代该扇区,以延长磁盘 的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇区转移功能使 磁盘阵列具有更好的容错性,同时使整个系统村最好的成本效益比。其它如可外 接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而丢失; 或在RAIDl时作写入一致性的检查等,虽是小技术,但亦不可忽视。