WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

评测导购 > HBA > 正文
磁盘阵列原理
作者: 51cto.com 2006-01-16 11:23 【】

磁盘阵列中针对不同的应用使用的不同技术,称为RAID level, RAIDRedundant Array of Inexpensive Disks的缩写,而每一level代表一种技术,目前业界公认的标准是RAID 0~RAID 5。这个level并不代表技术的高低,level 5并不高于level 3,level 1也不低过level 4,至于要选择那一种RAID level的产品,纯视用户的操作环境(operating environment)及应用(application)而定,level的高低没有必然的关系。RAID 0RAID 1适用于PCPC相关的系统如小型的网络服务器(network server)及需要高磁盘容量与快速磁盘存取的工作站等,因为比较便宜,但因一般人对磁盘阵列不了解,没有看到磁盘阵列对他们价值,市场尚未打开;RAID 2RAID 3适用于大型电脑及影像、CAD/CAM等处理;RAID 5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对磁盘阵列的误解,以为磁盘阵列非要RAID 5不可;RAID 4较少使用,因为两者有其共同之处,RAID 4有其先天的限制。其他如RAID 6,RAID 7,乃至RAID 10,都是厂商各做各的,并无一致的标准,在此不作说明。介绍各个RAID level之前,先看看形成磁盘阵列的两个基本技术:

 

磁盘延伸(Disk Spanning):

译为磁盘延伸,能确切的表示disk spanning这种技术的含义。四个磁盘形成一个阵列(array),而磁盘阵列的控制器(RAID controller)是将此四个磁盘视为单一的磁盘,DOS环境下的C:盘。这是disk spanning的意义,因为把小容量的磁盘延伸为大容量的单一磁盘,用户不必规划数据在各磁盘的分布,而且提高了磁盘空间的使用率。DFTraidSCSI磁盘阵列更可连接几十个磁盘,形成数十GB到数百GB的阵列,使磁盘容量几乎可作无限的延伸;而各个磁盘一起作取存的动作,比单一磁盘更为快捷。很明显的,有此阵列的形成而产生RAID的各种技术。我们也可从上图看出inexpensive(便宜)的意义,因为四个250MBbytes的磁盘比一个1GBytes的磁盘要便宜,尤其以前大磁盘的价格非常昴贵,但在磁盘越来越便宜的今天,inexpensive已非磁盘阵列的重点,虽然对于需要大磁盘容量的系统,仍是考虑的要点。


磁盘或数据分段(Disk Striping or Data Striping):

因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtual disk),所以其数据是以分段(block or segment)的方式顺序存放在磁盘阵列中,如下图:

磁盘0

 

磁盘1

 

磁盘2

 

磁盘3

A0-A1

B0-B1

C0-C1

D0-D1

 

A2-A3

B2-B3

C2-C3

D2-D3

 

A4-A5

B4-B5

C4-C5

D4-C5

 

A6-A7

B6-B7

C6-C7

D6-D7

数据按需要分段,从第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起,直到数据分布完毕。至于分段的大小视系统而定,有的系统或以1KB最有效率,或以4KB,或以6KB,甚至是4MB8MB,但除非数据小于一个扇区(sector,521bytes),否则其分段应是512byte的倍数。因为磁盘的读写是以一个扇区为单位,若数据小于512bytes,系统读取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。从上图我们可以看出,数据以分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写,故数据分段使数据的存取有最好的效率,理论上本来读一个包含四个分段的数据所需要的时间约=(磁盘的access time +数据的transfer time)X4,现在只要一次就可以完成。

若以N表示磁盘的数目,R表示读取,W表示写入,S表示可使用空间,则数据分段的性能为:
R:N(
可同时读取所有磁盘)
W:N(
可同时写入所有磁盘)
S:N(
可利用所有的磁盘,并有最佳的使用率)

 

 


标签:HBA 

了不起的IT经理
LecVideo
论坛与活动