磁盘阵列的原理及相关知识

【磁盘阵列的原理及相关知识】
1. 为什么需要磁盘阵列?
如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效的利用磁盘空间,一直是电脑专业人员和用户的困扰;而大容量磁盘的价格非常昂贵,对用户形成很大的负担 。磁盘阵列技术的产生一举解决了这些问题 。
过去十年来,CPU的处理速度几乎是几何级数的跃升,内存(memory)的存取速度亦大幅增加,而数据储存装置——主要是磁盘——的存取速度相较之下,较为缓慢,整个I/O吞吐量不能系统匹配,形成电脑系统的瓶颈,拉低了电脑系统的整体性能(throughput),若不能有效的提升磁盘的存取速度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费 。
目前改进磁盘存取速度的方式主要有两种:一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁盘存取的速度,如要读取的数据在在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作 。这种方式在单工环境如Dos之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停的作数据交换——swapping——的动作)或数据库的存取(因为每一记录都很小)就不能显示其性能 。这种方式没有任何安全保障 。
其二是使用磁盘阵列的技术 。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率 。磁盘阵列所利用的不同的技术,称为RAID Level,不同的level针对不同的系统及应用,以解决数据安全的问题 。
一般高性能的磁盘阵列都是以硬件的形式来达成,进一步地把磁盘快取控制及磁盘阵列结合在一个控制器(RAID Controller)或控制卡上,针对不同的用户解决众对磁盘输出输入系统的四大要求:
(1) 增加存取速度;
(2) 容错(fault tolerance),即安全性;
(3) 有效地利用磁盘空间;
(4) 尽量地平衡CPU、内存及磁盘的性能差异,提高电脑的整体工作性能 。
2.磁盘阵列原理
1987年,加州柏克大学的三位人员发表了名为“磁盘阵列研究”的论文,正式提到了RAID也就是磁盘阵列,论文提出廉价的5.25"及3.5"的硬盘也能如大机器上的8"盘般提供大容量、高性能和数据的一致性,并详述了RAID 1至5的技术 。
磁盘阵列针对不同的应用使用不同技术,称为RAID Level, RAID是Redundant Array of Inexpensive Disks的缩写,而每一Level代表一种技术,目前业界公认的标准是RAID 0~RAID 5 。这个level并不代表技术的高低,level 5并不高于level 3,level 1也不低过level 4,至于要选择那一种RAID level的产品,纯视用户的操作环境及应用而定,与level的高低没有必然的关系 。RAID 0没有安全的保障,但其快速,所以适合高速I/O的系统;RAID 1适用于需安全性又要兼顾速度的系统,RAID 2及RAID 3适用于大型电脑及影像、CAD/CAM等处理;RAID 5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对磁盘阵列的误解,以为磁盘阵列非要RAID 5不可;RAID 4较少使用,各RAID 5有其共同之处,但RAID 4适合大量数据的存取 。其他如RAID 6,RAID7,乃至RAID 10,50,100等,都是厂商各做各的,并无一致的标准,在此不作说明 。介绍各个RAID level之前,先看看形成磁盘阵列的两个基本技术:
磁盘延伸(Disk Spanning):
译为磁盘延伸,能确切地表示disk spanning这种技术的含义 。如下图所示,Oaraid?;磁盘阵列控制器,联接了四个磁盘:

推荐阅读