显而易见,如果一个磁盘有x MB的容量,单位时间提供y MB的传送能力,则概念上讲,n个这样的磁盘就有n%x MB的容量,n%y
MB的传送能力,换句话说,要读出y MB的数据,所用的平均时间只要原来单个磁盘所用时间的1/n;还有一点好处是,通过合理地在多个磁盘之间组织数据,可以得到比较理想的容错能力,这指的是,额外拿出一定的存储容量(冗余),用于保存检错纠错的信息。从总体价格上考虑,使用多个磁盘也并不会给用户带来太大的经济负担。因此,科研组在提出这一技术思路时,用的词为Redundancy
Arrays of Inexpensive disks (缩写为RAID),但到了工业界,却更愿意把这里的Inexpensive换成Industry,在原来技术概念的基础上加上点商业味道。

图4.37 磁盘阵列
为统一管理磁盘阵列,使用户所感觉到的不再是多个物理盘,似乎就是一个性能更高的单个磁盘,就要使用一块特定的接口卡(一般称为RAID卡,阵列控制卡),把组成阵列的多个物理(实际)磁盘连接为一个逻辑整体,这被称为一个逻辑磁盘。该卡的一端将被插接到高速的SCSI总线或PCI总线的插槽中,以便与计算机主机接通,另外一端有1到3个接插头,通过电缆与1到3组磁盘设备连接,每组可有串行连接在一起的1到7物理磁盘。该卡是一个有较强智处理能力的接口电路,上面有一个单片计算机,形成奇偶校验信息的机构,分析与处理主机CPU发送来的读写磁盘命令的机构,有起缓冲作用的DRAM存储器(又被成为阵列加速器,几MB到几十MB容量,分成两个体以镜像方式运行,还有专用的后备电池支持)等几个组成部分。系统能通过该卡对连接到卡上的多个磁盘,按用户的使用要求,灵活地配置为不同的使用和容错方式。
阵列磁盘运行过程中,有两项重要技术对磁盘系统的运行性能产生较大影响。一个是并发命令请求和命令排队,就是说CPU可以向磁盘设备发送多条命令,阵列卡会对这些命令进行排队管理,并使多个命令得以并发处理;如果在处理命令的时候,还能进行某些性能优化,而不是机械地按命令到来的先后次序处理,还可以进一步提高数据读写的速度,最简单的例子,对两个等待读操作的命令,磁头先到达哪一个命令的数据扇区,就先执行哪一个命令,这在磁盘本身的控制器部分来处理可能更方便。另外一项技术是设备的快速接入和断开,即当一个占据了总线的磁盘开始执行一个读命令,数据又尚未准备好时,它应快速地暂时把自己从总线上断离出来,以便使另外正急于使用总线的磁盘可能抢到总线,从而提高总线的使用效率和系统性能;当这个磁盘准备好数据时,应保证它能把自己尽快地接通到总线上去(得到总线的使用权)。这实质上是把占用总线的时间压缩到尽可能短的一项处理技术。
|
|