辅导:磁盘阵列(DiskArray)原理
来源:优易学  2011-11-12 11:17:35   【优易学:中国教育考试门户网】   资料下载   IT书店
  磁盘阵列(Disk Array)原理
  1.为什么需要磁盘阵列?
  如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效的利用磁盘空间,一直是电脑专业人员和用户的困扰;而大容量磁盘的价格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。过去十几年来,CPU的处理速度增加了五十倍有多,内存(memory)的存取速度亦大幅增加,而数据储存装置--主要是磁盘(hard disk)--的存取速度只增加了三、四倍,形成电脑系统的瓶颈,拉低了电脑系统的整体性能(throughput),若不能有效的提升磁盘的存取速度, CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。
  目前改进磁盘存取速度的的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁盘存取的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工环境(single-tasking environment)如DOS之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停的作数据交换(swapping)的动作)或数据库(database)的存取(因为每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。其二是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用的不同的技术,称为RAID level,不同的level针对不同的系统及应用,以解决数据安全的问题。一般高性能的磁盘阵列都是以硬件的形式来达成,进一步的把磁盘快取控制及磁盘阵列结合在一个控制器(RAID control或控制卡上,针对不同的用户解决人们对磁盘输出入系统的四大要求:
  (1)增加存取速度,
  (2)容错(fault tolerance),即安全性
  (3)有效的利用磁盘空间;
  (4)尽量的平衡CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。
  2.磁盘阵列
  磁盘阵列中针对不同的应用使用的不同技术,称为RAID level ,RAID是Red un dent Array of Inexpensive Disks的缩写,而每一level代表一种技术,目前业界公认的标准是RAID0~RAID5。这个level并不代表技术的高低,level5并不高于level3,level1也不低过level4,至于要选择那一种RAID level的产品,纯视用户的操作环境(operating environment)及应用(application)而定,与level的高低没有必然的关系。RAID0及RAID1适用于PC及PC相关的系统如小型的网络服务器(network server)及需要高磁盘容量与快速磁盘存取的工作站等,比较便宜;RAID3及RAID4适用于大型电脑及影像、CAD/CAM等处理;RAID5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,RAID2较少使用,其他如RAID6,RAID7,乃至RAID10 等,都是厂商各做各的,并无一致的标准,在此不作说明。介绍各个RAID level之前,先看看形成磁盘阵列的两个基本技术:磁盘延伸(Disk Spanning):译为磁盘延伸,能确切的表示disk spanning这种技术的含义。如图磁盘阵列控制器,联接了四个磁盘,这四个磁盘形成一个阵列(array),而磁盘阵列的控制器(RAID controller)是将此四个磁盘视为单一的磁盘,如DOS环境下的C:盘。这是disk spanning的意义,因为把小容量的磁盘延伸为大容量的单一磁盘,用户不必规划数据在各磁盘的分布,而且提高了磁盘空间的使用率。并使磁盘容量几乎可作无限的延伸;而各个磁盘一起作取存的动作,比单一磁盘更为快捷。很明显的,有此阵列的形成而产生RAID的各种技术。磁盘或数据分段(Disk Striping or Data Striping):因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtual disk),所以其数据是以分段(block or segment)的方式顺序存放在磁盘阵列中,数据按需要分段,从第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起,直到数据分布完毕。至于分段的大小视系统而定,有的系统或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非数据小于一个扇区(sector,即 521bytes),否则其分段应是512byte的倍数。因为磁盘的读写是以一个扇区为单位,若数据小于512bytes,系统读取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。从上图我们可以看出,数据以分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写,故数据分段使数据的存取有最好的效率,理论上本来读一个包含四个分段的数据所需要的时间约=(磁盘的access time 数据的transfer time)X4次,现在只要一次就可以完成。若以N表示磁盘的数目,R表示读取,W表示写入,S表示可使用空间,则数据分段的性能为:
  R:N(可同时读取所有磁盘)
  W:N(可同时写入所有磁盘)
  S:N(可利用所有的磁盘,并有最佳的使用率)
  另一个额外的容错功能是坏扇区转移(bad sect or reassignment)。坏扇区是磁盘故障的主要原因,通常磁盘在读写时发生坏扇区的情况即表示此磁盘故障,不能再作读写,甚至有很多系统会因为不能完成读写的动作而死机,但若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得系统性能大打折扣,而系统的维护成本也未免太高了。坏扇区转移是当磁盘阵列系统发现磁盘有坏扇区时,以另一空白且无故障的扇区取代该扇区,以延长磁盘的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇区转移功能使磁盘阵列具有更好的容错性,同时使整个系统有最好的成本效益比。其他如可外接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而损失;或在RAID1时作写入一致性的检查等,虽是小技术,但亦不可忽视。
  3.硬件磁盘阵列还是软件磁盘阵列
  市面上有所谓硬件磁盘阵列与软件磁盘阵列之分,因为软件磁盘阵列是使用一块SCSI卡与磁盘连接,一般用户误以为是硬件磁盘阵列。青年人网站提示以上所述主要是针对硬件磁盘阵列,其与软件磁盘阵列有几个最大的区别:
  一个完整的磁盘阵列硬件与系统相接。
  内置CPU,与主机并行运作, 所有的I/O都在磁盘阵列中完成,减轻主机的工作负载,增加系统整体性能。
  有卓越的总线主控(bus mastering)及DMA(Direct Memory Access)能力,加速数据的存取及传输性能。
  与快取内存结合在一起,不但增加数据的存取及传输性能,更因减少对磁盘的存取而增加磁盘的寿命。
  能充份利用硬件的特性,反应快速。
  软件磁盘阵列是一个程序,在主机执行,透过一块SCSI卡与磁盘相接形成阵列,它最大的优点是便宜,因为没有硬件成本(包括研发、生产、维护等),而SCSI卡很便宜(亦有的软件磁盘阵列使用指定的很贵的SCSI卡);它最大的缺点是使主机多了很多进程(process),增加了主机的负担, 尤其是输出入需求量大的系统。目前市面上的磁盘阵列系统大部份是硬件磁盘阵列,软件磁盘阵列较少。
  4.磁盘阵列卡还是磁盘阵列控制器
  磁盘阵列控制卡一般用于小系统,供单机使用。与主机共用电源,在关闭主机电源时存在丢失Cache中的数据的的危险。磁盘阵列控制卡只有常用总线方式的接口,其驱动程序与主机、主机所用的操作系统都有关系,有软、硬件兼容性问题并潜在地增加了系统的不安定因素。在更换磁盘阵列卡时要冒磁盘损坏,资料失落,随时停机的风险数据恢复。
  独立式磁盘阵列控制一般用于较大型系统,可分为两种:单通道磁盘阵列和多通道式磁盘阵列,单通道磁盘阵列只能接一台主机,有很大的扩充限制。多通道磁盘阵列可接多个系统同时使用,以群集(cluster)的方式共用磁盘阵列,这使内接式阵列控制及单接式磁盘阵列无用武之地。目前多数独立形式的磁盘阵列子系统。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训