磁盘阵列RAID是英文RedundantArrayofInexpensiveDisks的缩写,中文简称为廉价磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列。虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处主要有以下三种:通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度通过镜像或校验操作提供容错能力最初开发RAID的主要目的是节省成本,当时几块小容量硬盘的价格总和要低于大容量的硬盘。目前来看RAID在节省成本方面的作用并不明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID0+1,RAID3,RAID5等。目前经常使用的是RAID5和RAID(0+1)。NRAIDNRAID即Non-RAID,所有磁盘的容量组合成一个逻辑盘,没有数据块分条(noblockstripping)。NRAID不提供数据冗余。要求至少一个磁盘。JBODJBOD代表JustaBunchofDrives,磁盘控制器把每个物理磁盘看作独立的磁盘,因此每个磁盘都是独立的逻辑盘。JBOD也不提供数据冗余。要求至少一个磁盘。RAID0RAID0即DataStripping(数据分条技术)。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。要求至少两个磁盘。我们通过RAID0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。RAID1RAID1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存放同样的数据)。同RAID0相比,RAID1首先考虑的是安全性,容量减半、速度不变。RAID0+1为了达到既高速又安全,出现了RAID10(或者叫RAID0+1),可以把RAID10简单地理解成由多个磁盘组成的RAID0阵列再进行镜像。RAID3和RAID5RAID3和RAID5都是校验方式。RAID3的工作方式是用一块磁盘存放校验数据。由于任何数据的改变都要修改相应的数据校验信息,存放数据的磁盘有好几个且并行工作,而存放校验数据的磁盘只有一个,这就带来了校验数据存放时的瓶颈。RAID5的工作方式是将各个磁盘生成的数据校验切成块,分别存放到组成阵列的各个磁盘中去,这样就缓解了校验数据存放时所产生的瓶颈问题,但是分割数据及控制存放都要付出速度上的代价。RAID4:RAID4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID4在商业环境中也很少使用。按照硬盘接口的不同,RAID分为SCSIRAID,IDERAID和SATARAID。其中,SCSIRAID主要用于要求高性能和高可靠性的服务器/工作站,而台式机中主要采用IDERAID和SATARAID。以前RAID功能主要依靠在主板上插接RAID控制卡实现,而现在越来越多的主板都添加了板载RAID芯片直接实现RAID功能,目前主流的RAID芯片有HighPoint的HTP372和Promise的PDC20265R,而英特尔更进一步,直接在主板芯片组中支持RAID,其ICH5R南桥芯片中就内置了SATARAID功能,这也代表着未来板载RAID的发展方向---芯片组集成RAID。RAID6RAID6是在RAID5基础上扩展而来的。与RAID5一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。只是RAID6中增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,如图5所示,这样RAID6磁盘阵列就允许两个磁盘同时出现故障,所以RAID6的磁盘阵列最少需要四块硬盘。RAID7这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID7可以看作是一种存储计算机(StorageComputer),它与其他RAID标准有明显区别。除了以上的各种标准(如表1),我们可以如RAID0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID5+3(RAID53)就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。MatrixRAID:MatrixRAID即所谓的“矩阵RAID”,是ICH6R南桥所支持的一种廉价的磁盘冗余技术,是一种经济性高的新颖RAID解决方案。MatrixRAID技术的原理相当简单,只需要两块硬盘就能实现了RAID0和RAID1磁盘阵列,并且不需要添加额外的RAID控制器,这正是我们普通用户所期望的。MatrixRAID需要硬件层和软件层同时支持才能实现,硬件方面目前就是ICH6R南桥以及更高阶的ICH6RW南桥,而IntelApplicationAcclerator软件和Windows操作系统均对软件层提供了支持。MatrixRAID的原理就是将每个硬盘容量各分成两部分(即:将一个硬盘虚拟成两个子硬盘,这时子硬盘总数为4个),其中用两个虚拟子硬盘来创建RAID0模式以提高效能,而其它两个虚拟子硬盘则透过镜像备份组成RAID1用来备份数据。在MatrixRAID模式中数据存储模式如下:两个磁盘驱动器的第一部分被用来创建RAID0阵列,主要用来存储操作系统、应用程序和交换文件,这是因为磁盘开始的区域拥有较高的存取速度,MatrixRAID将RAID0逻辑分割区置于硬盘前端(外圈)的主因,是可以让需要效能的模块得到最好的效能表现;而两个磁盘驱动器的第二部分用来创建RAID1模式,主要用来存储用户个人的文件和数据。例如,使用两块120GB的硬盘,可以将两块硬盘的前60GB组成120GB的逻辑分割区,然后剩下两个60GB区块组成一个60GB的数据备份分割区。像需要高效能、却不需要安全性的应用,就可以安装在RAID0分割区,而需要安全性备分的数据,则可安装在RAID1分割区。换言之,使用者得到的总硬盘空间是180GB,和传统的RAID0+1相比,容量使用的效益非常的高,而且在容量配置上有着更高的弹性。如果发生硬盘损毁,RAID0分割区数据自然无法复原,但是RAID1分割区的数据却会得到保全。可以说,利用MatrixRAID技术,我们只需要2个硬盘就可以在获取高效数据存取的同时又能确保数据安全性。这意味着普通用户也可以低成本享受到RAID0+1应用模式。一、磁盘阵列实现方式磁盘阵列有两种方式可以实现,那就是“软件阵列”与“硬件阵列”。软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。如微软的WindowsNT/2000Server/Server2003和NetVoll的NetWare两种操作系统都可以提供软件阵列功能,其中WindowsNT/2000Server/Server2003可以提供RAID0、RAID1、RAID5;NetWare操作系统可以实现RAID1功能。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降代还比较大,达30%左右。硬件阵列是使用专门的磁盘阵列卡来实现的,这就是本文要介绍的对象。现在的非入门级服务器几乎都提供磁盘阵列卡,不管是集成在主板上或非集成的都能轻松实现阵列功能。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。磁盘阵列卡拥有一个专门的处理器,如Intel的I960芯片,HPT370A/372、SiliconImageSIL3112A等,还拥有专门的存贮器,用于高速缓冲数据。这样一来,服务器对磁盘的操作就直接通过磁盘阵列卡来进行处理,因此不需要大量的CPU及系统内存资源,不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。二、硬件磁盘阵列配置实例当硬盘连接到阵列卡(RAID)上时,操作系统将不能直接看到物理的硬盘,因此需要创建成一个一个的被设置为RAID0、1或者5等的逻辑磁盘(也叫容器),这样系统才能够正确识别它。当然,逻辑磁盘(LogicDrive)、容器(Container)或虚拟磁盘(VirtualDrive)均表示一个意思,只是不同阵列卡产商的不同叫法。可参见以下配置的服务器有DellPowerEdge7x0系列和DellPowerEdge1650服务器。磁盘阵列的配置通常是利用磁盘阵列卡的BIOS工具进行的,也有使用第三方提供的配置工具软件去实现对阵列卡的管理,如DellArrayManager。本文要介绍的是在DELL服务器中如何利用阵列卡的BIOS工具进行磁盘阵列配置的方法。如果在您的DELL服务器中采用的是Adaptec磁盘阵列控制器(PERC2、PERC2/SI、PERC3/SI和PERC3/DI),在系统开机自检时将看到以下信息:DellPowerEdgeExpandableRAIDController3/Di,BIOSV2.7-x[Buildxxxx](c)1998-2002Adaptec,Inc.AllRightsReserved.PressCTRL+AforConfigurationUtility!如果您的DELL服务器配置的是一块AMI/LSI磁盘阵列控制器(PERC2/SC、PERC2/DC、PERC3/SC、PERC3/DC、PERC4/DI和PERC4/DC),则在系统开机自检的时候将看到以下信息:DellPowerEdgeExpandableRAIDControllerBIOSX.XXJun26.2001Copyright(C)AMERICANMEGATRENDSINC.PressCTRL+MtoRunConfigurationUtilityorPressCTRL+HforWebBios或者PowerEdgeExpandableRAIDControllerBIOSX.XXFeb03,2003Copyright(C)LSILogicCorp.PressCTRL+MtoRunConfigurationUtilityorPressCTRL+HforWebBios下面对以上两种情况分别予以介绍。1、在Adaptec磁盘阵列控制器上创建Raid(容器)在这种阵列卡上创建容器的步骤如下(注意:请预先备份您服务器上的数据,配置磁盘阵列的过程将会删除服务器硬盘上的所有数据!):第1步,首先当系统在自检的过程中出现如(图1)提示时,同时按下“Ctrl+A”组合键。进入如(图2)所示的磁盘阵列卡的配置程序界面。图一图二第2步,然后选择“Containerconfigurationutility”,进入如(图3)所示配置界面。图三第3步,选择“InitializeDrivers“选项去对新的或是需要重新创建容器的硬盘进行初始化(注意:初始话硬盘将删去当前硬盘上的所有数据),按回车后进入如(图4)所示界面。在这个界面中出现了RAID卡的通道和连接到该通道上的硬盘,使用“Insert”键选中需要被初始化的硬盘(具体的使用方法参见界面底部的提示,下同)。图四第4步,全部选择