独立磁盘冗余阵列(RAID――Redundant Arrays of Independent Disks)是一种使用多硬盘驱动器来存储数据的数据存储系统。可以使用多种不同的存储技术来实现不同等级的冗余、错误恢复和性能。
过去,高可用计算机的安装都要求有足够的数据冗余,即一套复杂的数据镜像备份在出现问题时可以马上替代当前的数据。随着数据量的不断增长,这种解决方案的花费令人难以接受,于是,IT开发人员用RAID(独立磁盘冗余阵列)来解决这一问题。不像磁盘镜像,一个RAID系统并不一定要具备两倍于数据量的磁盘空间,如一个RAID 5系统为了保证数据的使用和安全可以只增加数据量20%的磁盘空间。
磁盘阵列分类
根据磁盘阵列的结构、要求及数据处理特点,一般分为六个级别(也叫标准),即RAID 0、1、2、3、4、5,若另加一个派生的RAID 0+1,实际上有七个。其中RAID 2、3、4已基本淘汰,而RAID 5虽然最完备,但因至少由3块硬盘组成使其价格较高,往往应用于高中端网络数据库存储系统,RAID 0、1、0+1三种标准则主要应用于低中端网络数据库存储系统之中。
根据磁盘阵列的数据接口,一般可以分为SCSI接口、IDE接口、光纤通道三类。虽然它们只是接口不同,但却可直接影响到磁盘阵列数据传输速度的快慢、数据存储备份容量的大小、设备成本与价格的高低、设备安装与维护的难度等,因而它们各有优劣,各自适应不同的应用环境,可满足不同用户的应用要求,所以磁盘阵列按接口分类广泛为人们所接受。磁盘阵列一般都能够在支持多个SCSI接口或光纤通道接口的同时,还可支持多台主机连接,从而可形成群集环境的高可用性架构和多主机共用网络存储数据系统。在高档SCSI接口的磁盘阵列中,还普遍支持32位RISC专用CPU,配置4~256MB高速缓存,使之能与主机并行运作,完全不需要任何软件或驱动程序支持,极大地提高了磁盘阵列的数据处理速度。
传统的RAID都配有专用处理器、大容量缓存以及高速SCSI硬盘为其阵列基础,基本上都支持RAID 0、1、5等工业标准,并具有热插拔冗余控制器的相互备援,支持全自动的故障切换,可为内存镜像提供无单点错误能力等。这种磁盘阵列技术成熟、性能稳定、数据安全、存储可靠,同时存取速度快、存储容量大,但价格十分昂贵,且安装、维护和管理较复杂,是大中型网络数据存储系统的首选产品;基于IDE接口的磁盘阵列IDE RAID,由于采用普通IDE接口硬盘,没有专用处理器和内存,在通过自带的BIOS调用下,可以利用主机CPU来实现RAID运算,因而结构简单、兼容性好、安装维护管理方便,其最大优点则是价格便宜(不仅省去了处理器和高速缓存,而且一块9G的SCSI硬盘在3千元左右,而一块9G的IDE硬盘只有1千元左右),是中小型企业网络存储设备的重要选择内容。IDE RAID也基本上支持RAID 0、1、0+1标准,某些还支持RAID 5标准,普遍采用支持UDMA/66高速接口的普通硬盘作为阵列存储单元。其中多条独立数据通道在提高阵列性能的同时,能够增强数据的可靠性和数据的保护能力。另外,IDE RAID还普遍具有数据冗余功能,有的还可作为系统盘。光纤通道接口磁盘阵列是一种采用最新技术的高数据传输率和高带宽磁盘阵列,其最大特点是通道带宽高达100/200MB(SCSI只有80到160MB,IDE仅有33到66MB)。
被称为第二代磁盘阵列系统的RD20,因其采用了新型体系结构,具有高可用性、高性能和大数据量存储处理能力,具有灵活的计算能力和低廉的价格特点。RD20采用了先进的冗余设计技术与软件,有效地保证了数据的最大可用性。其冗余体系结构及标准组件设计使其具有很强的灵活性,主机接口设计为独立的可添加的夹层卡,用户可自由选择异端或单端宽Ultra SCSI接口,大大方便了用户的自行设计外形结构和升级。单槽或双槽1.0625Gbps光纤接口,还允许用户直接与有光纤接口的主机、光纤交换机、网络集线器或其他冗余设备直接连接。RD20一般采用两个控制器,由RAID子系统进行双重控制,并由装在控制器中的温度传感器随时报告各扇区物理环境的异常现象,从而保证了系统的安全运行。
RD20的主要特点是,采用了处理频率为133MHz的嵌入式RISC处理器,有多个用于控制硬盘驱动器和主机接口的PCI智能I/O处理器,内部PCI总线可提供132Mbps的数据传输带宽,主要用于连接后端硬盘驱动器的四个独立旋转式Ultra SCSI通道,大大提高了数据传输速率,其动态随机存储能力高达256MB,可双倍提高内存的读取速度。
RAID标准的意义
基于RAID标准的磁盘阵列,之所以具有性能可靠和容量极大的技术优势,其主要原因是由于:首先,RAID控制器通过并行数据读写克服了磁盘机电设计的限制,可大大提高存取速度。RAID可以同时操作多张磁盘的读写,如四张磁盘组成的阵列的读写速度几乎是单张磁盘的四倍。所以,RAID的高速读写能力既可用来完成象高速的实时图像编辑,也可用于大量数据的高速存储备份;其次,RAID系统提供了大容量的数据存储,而且多张磁盘上的数据对于主机来说是随时可用的。复杂的RAID系统甚至允许用户通过控制器所发出的数据途径来组成多盘菊链,使得高性能的RAID控制器可同时进行多达90多张盘片的寻址操作;最后,RAID系统运用了奇偶校验技术,极大地提高了数据的可靠性。因为当RAID控制器在磁盘上写数据时,RAID系统会记录相应的奇偶位冗余数据,若该磁盘失效,该奇偶信息可使RAID控制器在不降低性能的情况下,重新计算丢失的信息。下面我们来总结一下RAID标准的意义。
标准RAID:如前所述,传统RAID标准一般分为七级,其区别主要是阵列中的磁盘数与数据写入磁盘方式不同,但广泛应用的标准只有RAID 0、1、5和0+1四种,下面我们就来介绍这四种标准的意义。
符合RAID 0标准磁盘阵列的基本特点是数据传输率高和安全性低。由于该标准阵列只能操作两块硬盘,并采用了将数据流分割成大小相同的数据条块(条块标准:容量一般为64KB,也可以调整为8KB或256KB),然后平均分配给两块硬盘,同时完成数据传输,其数据传输率基本上为两块硬盘传输率之和。虽然这种采用条块化存储数据的方法的传输数据率最快,效率最高,但因没有冗余,是以牺牲RAID的安全性为代价换到的极限性能,因此数据存储可靠性脆弱,一旦阵列中某块硬盘出现故障,整个系统也将随之瘫痪。
符合RAID 1标准磁盘阵列的基本标准是数据传输率低和安全性高,恰好与RAID 0标准相反。符合该标准的磁盘阵列也只能操作两块硬盘,由于它使用了磁盘镜像,提供了冗余容错机制,使得阵列在每次写或更换数据时,同样的操作可发生在另一张磁盘上,即每次操作都能把写往主盘的数据同步地写到镜像盘上,一旦某磁盘失效另一张磁盘将马上接手工作。
但这种工作方式使得镜像和冗余的成本较高,将浪费一半的磁盘空间,而且也影响了阵列的数据读写速度。虽然RAID 1还可以在读取数据时,保证同步在两个磁盘上搜索,并且能把先找到的数据传输回来,从而可改善阵列系统的调用效率,但因消耗主机CPU资源,几乎没有提高阵列系统的整体性能。所以RAID 1阵列只对紧要任务数据存储才有意义。
符合RAID 0+1标准的磁盘阵列,实际上已考虑了上述两类标准的因素,吸收了上述两种标准的优点,即在RAID 0标准上把写往两个硬盘的数据同时做两个镜像,既保证了数据传输的高速率,又保证了系统数据的高安全性,但需提供4块硬盘,所以成本也要大大高出前两者。
符合RAID 3标准的磁盘阵列包括数据分割,另外,它还指定一个驱动器来存储奇偶信息。这就提供了某种容错功能,在数据密集型环境或单一用户环境中尤其有益于访问较长的连续记录。RAID 3需要同步主轴驱动器来预防较短记录的性能下降。
符合RAID 5标准的磁盘阵列,采用了奇偶校验和并行传送技术,虽然没有使用专用驱动器,但将校验位按要求写到了阵列中的某一台驱动器上,将数据和奇偶信息分布在阵列中的全部磁盘上,同样也避免了专用奇偶磁盘的需要。RAID 5标准的读写操作可同时进行,并使用了Exclusive-OR算法来计算奇偶信息。
在RAID 5分布式奇偶校验块的例子中,磁盘3中的奇偶校验块是磁盘1、2、4和5上的数据的备份数据映像;磁盘2中的奇偶校验块是磁盘1、3、4和5上的数据的备份数据映像;磁盘1中的奇偶校验块是磁盘2、3、4和5上的数据的备份数据映像……依此类推。如果一块磁盘出现问题,控制器可以利用奇偶校验块来重建数据。
奇偶校验块可以降低RAID 3和5数据存储的开销。例如RAID 5用一块磁盘来为4块磁盘提供数据冗余,那就意味着用5块磁盘来存储4块磁盘容量的数据并为那些数据提供完全备份。
软硬件RAID:RAID还有基于软件的RAID和基于硬件的RAID,两者在性能方面有较大区别,且能在不同领域各领风骚。其中,基于软件的RAID只能利用主机CPU和存储器来实现磁盘阵列的存储备份,根据操作系统又可分为基于Novell平台、Windows NT平台和Unix平台的软件RAID,软件RAID存储备份级别较低,由于高速缓冲存储器可以使得简单的分段和镜像完成得更快,可大大提高读写速度,因而任务较少时有明显优势。尤其是各类新版操作系统、容错软件和群集技术的普遍应用,又使得软件RAID在性能和功能方面到了充分的发挥。
基于硬件的RAID因为拥有自己独立的CPU和存储器,完全可以自己计算奇偶信息并完成文件定位,提高数据并行传输速度。硬件RAID又可分为内置插卡式和外置机柜式RAID,内置插卡式RAID也依赖主机的操作系统,要求有专门的驱动器连接和设置RAID控制器,其优势在于速度,因为内置式系统无需通过SCSI适配器,当然内置式价格便宜,但内置式系统大部分没有扩充插件板,容量大小固定不变。另外,因在一个时间段内只有一台主机可和内置系统通信,很难进行双机容错备份;外置机柜式RAID可以独立计算,不仅可以灵活地增加驱动器,提高RAID存储