如何增加磁盘的存取(Access)速度,如何防止数据因磁盘的故障而失落及如何有效的利用磁盘空间,一直是电脑专业人员和用户的困忧;而大容量磁盘的价格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。
过去十年来,CPU 的处理速度几乎是几何级数的跃升,内存(memory )的存取速度亦大幅增加,而数据储存装置主要是磁盘(hard disk) 的存取速度相较之下,较为缓慢。整个I/O 吞吐量不能和系统匹配,形成电脑系统的瓶颈,拉低了电脑系统的整体性能(throughout )若不能有效的提升磁盘的存取速度,CPU 、内存及磁盘间的不平衡将使CPU 及内存的改进形成浪费。
目前改进磁盘存取速度的方式主要有两种。一是磁盘快取控制(disk cache controller ),它将从磁盘读取的数据存在快取内存(cache memory )中以减少磁盘存取的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工期环境(single-taSKINg envioronment )如DOS 之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking) 环境之下(因为要不停的作数据交换(swapping )的动作)或数据库(database )的存取(因每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。
其一是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping )的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用的不同的技术,称为RAID level ,不同的level 针对不同的系统及应用,以解决数据安全的问题。
一般高性能的磁盘阵列都是以硬件的形式来达成,进一步的把磁盘快取控制及磁盘阵列结合在一个控制器(RAID controler )或控制卡上,针对不同的用户解决人们对磁盘输出/入系统的四大要求:
增加存取速度。
容错(fault tolerance ),即安全性。
有效的利用磁盘空间。
尽量的平衡CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。
2.1 磁盘阵列原理
1987 年,加州伯克利大学的一位人员发表了名为\"磁盘阵列研究\"的论文,正式提到了RAID 也就是磁盘阵列,论文提出廉价的5.25″及3.5″的硬盘也能如大机器上的8″盘能提供大容量、高性能和数据的一致性,并详述了RAID1 至5 的技术。
磁盘阵列针对不同的应用使用的不同技术,称为RAID level,RAID 是Redundant Array of IneXPensive Disks 的缩写,而每一level 代表一种技术,目前业界公认的标准是RAID0~RAID5。这个level 并不代表技术的高低,level5 并不高于level3,level1 也不低于level4,至于要选择哪一种RAID level 的产品,纯视用户的操作环境(operating environment )及应用(application) 而定,与level 的高低没有必然的关系。RAID0 没有安全的保障,但其快速,所以适合高速I/O 的系统;RAID1 适用于需安全性又要兼顾速度的系统,RAID2 及RAID3 适用于大型电脑及影像、CAD/CAM 等处理;RAID5 多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对磁盘阵列的误解,以为磁盘阵列非要RAID5 不可;RAID4 较少使用,和RAID5 有其共同之处,但RAID4 适合大量数据的存取。其他如RAID6, RAID7,乃至RAID10、50、100 等,都是厂商各做各的,并无一致的标准,在此不作说明。
总而言之,RAID0 及RAID1 最适合PC 服务器及图形工作站的用户,提供最佳的性能及最便宜的价格,以低成本符合市场的需求。RAID2 及RAID3 适用于大档案且输入输出需求不频繁的应用如影像处理及CAD/CAM 等;而RAID5 则适用于银行、金融、股市、数据库等大型数据处理中心的OLTP 应用;RAID4 与RAID5 有相同的特性及用方式,但其较适用于大型文件的读取。
2.2 磁盘阵列的额外容错功能
事实上容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用热备份(hot spare or hot standby drive )的功能,所谓热备份是在建立(configure )磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘的数据重建(rebuild )在后备磁盘之上,因为反应快速,加上快取内存减少了磁盘的存取,所以数据重建很快即可完成,对系统的性能影响不大。对于要求不停机的大型数据处理中心或控制中心而言,热备份更是一项重要的功能,因为可避免晚间或无人守护时发生磁盘故障所引起的种种不便。
备份盘又有热备份与温备份之分,热备份盘和温备份盘的不同在于热备份盘和阵列一起运转,一有故障时马上备援,而温备份盘虽然带电但并不运转,需要备援时才启动。两者分别在是否运转及启动的时间,但温备份盘因不运转,理论上有较长的寿命。另一个额外的容错功能是坏扇区转移(bad sector reassignment) 。坏扇区是磁盘故障的主要原因,通常磁盘在读写时发生坏扇区的情况即表示此磁盘故障,不能再作读写,甚至有很多系统会因为不能完成读写的动作而死机,但若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得系统性能大打折扣,而系统的维护成本也未免太高了,坏扇区转移是当磁盘阵列系统发现磁盘有坏扇区时,以另一空白且无故障的扇区取代该扇区,以延长磁盘的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇区转移功能使磁盘阵列具有更好的容错性,同时使整个系统有最好的成本效益比。其他如可外接电池备援磁盘阵列的快取内存,以避免忽然断电时数据尚未写回磁盘而丢失;或在RAID1 时作写入一致性的检查等,虽是小技术,但亦不可忽视。