磁盘阵列
磁盘阵列是通过硬件或管理软件将两个或更多的硬盘结合在一起,对于服务器而言是一个或多个逻辑硬盘。计算机所能看到就是存储空间和剩余的可用空间,不能看到存储空间是如何在磁盘上存放。通常我们使用SCSI 磁盘做磁盘阵列,目前IDE 设备也可以采用阵列技术,但技术水平仍然较低,所以多用于低端的客户机或低端服务器使用。从性能角度考虑,最好不要在阵列中将多种SCSI 设备混合使用。通过使用惠普的磁盘阵列卡可以配置出各种RAID 盘,也可以使用部分网络操作系统实现阵列的配置,但由于运行阵列软件需要占用大量的CPU 和内存资源,所以软件阵列会使服务器的性能降低很多。
为什么要使用磁盘阵列?
在评价一个服务器的性能的时候,我我们经常使用一个概念就是木桶原则,在中国南方常用一种木制的水桶,一个木桶一般采用几木板拼接而成,如果将这个概念引入到服务器中时可以认为计算机的各部分组件是木桶的各块板子,如果木桶的板子高低不同时,决定这个木桶的最高水位却是由最低的木板决定。因此在网络服务器的性能评定时,所有部件中性能最低的设备决定了服务器的最高性能。
那么哪些设备性能较低呢?
现在,我们来分析一下一个网络服务器在运行过程中核心组件的性能参数,
INTEL PⅢ CPU 1000MB/S
SDRAM 内存800MB/S
AGP 显卡532~1000MB/S
硬盘80MB/S
从上面的列表中可以看出,硬盘是网络服务器瓶颈所在,许多人也都有这种感觉,当我们使用鼠标点击某个应用程序时,屏幕上出现一个小沙漏,硬盘的红灯不停的闪烁,这是因为我们需要大量的从硬盘读取的相应的程序或数据,而今天硬盘读写速度限制了我们的程序的快速执行。为什么会这样呢?因为今天我们无论使用IDE 硬盘还是普通的SCSI硬盘,在每一时刻只能对计算机内部的一块硬盘进行读或者写的操作,现在的硬盘理论上可以支持到每秒80MB 的速率,但在实际运行时往往是达不到的,较好的情况下恒定读写速率可以达到每秒20MB 左右,这已经是一个非常理想的指标了,但与CPU 和内存的IO速率相比是在是太低了。那有没有解决的办法呢?
硬件阵列
普通的SCSI 卡在每一时刻只能对一块硬盘读写,有没有可以同时对多块硬盘的读写的SCSI 控制卡呢?有,惠普公司所提供的NetRAID 阵列卡就是性能卓越,功能强大的阵列卡,通过惠普的阵列卡可以同时对多达几十块硬盘进行读写,普通的SCSI 卡只能提供512KB 的高速缓存,而惠普的阵列可以配置16~256MB 的高速缓存,与传统的SCSI 卡相比,性能提供了数十倍,通过实际测试,效果惊人。而且惠普阵列卡还提供硬盘损坏时数据自动恢复功能,当硬盘容量不够时,可以在网络操作系统运行的状态下直接带电插入一块新的硬盘,并将新插入的硬盘动态添加到原有的磁盘阵列当中,实现在线容量扩充。惠普的NetRAID 阵列还有多种强大的功能,在此不作详细赘述。
通过上面介绍我们有了解决硬盘子系统性能较低的解决方案,实际上,使用磁盘阵列技术还有另外一个重要的原因,那就是通过磁盘阵列可以有效实现数据冗余,通过磁盘阵列技术可以将数据以镜像或校验的方式存贮起来,一旦磁盘阵列中的某块硬盘出现了故障,其余的硬盘仍然可以将保存的数据恢复出来。
总结磁盘阵列优势就是:
最大限度的提高磁盘子系统的IO 性能
为服务器提供数据冗余
硬件阵列组成:阵列卡+硬盘
软件阵列
软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI 卡上的多块硬盘配置成逻辑盘,软件阵列可以提供数据冗余,但硬盘子系统的性能会有所降低。目前Windows NT、NetWare、Linux 几种操作系统都可以提供软件阵列功能,其中WindowsNT 可以提供RAID0、RAID1、RAID5。NetWare 操作系统可以实现RAID1 功能。
分析一下软件阵列的工作原理就可以了解软件阵列的优点与缺点,当我们使用软件阵列将硬盘配置RAID1 或RAID5 时,数据以镜像或校验方式存贮,当某块硬盘出现故障,存贮在RAID 盘中数据仍然不会丢失,保障了数据的安全。由于软件阵列使用普通SCSI卡,几乎所有的网络服务器都可以使用软件阵列配置,软件随网络操作系统免费提供,配置软件阵列时,只需另外添加相同的硬盘即可实现,因此,软件阵列实现成本低,配置简单方便,易于使用。
软件阵列的缺点是要实现软件阵列需要执行相应的磁盘管理程序,过去对一块硬盘进行操作,而现在需要对更多的硬盘的进行操作,因此需要占用网络服务器的CPU 及内存资源,同时为了保证数据的同步,需要额外增加数据校验的步骤,因此服务器在硬盘子系统的整体性能比单一硬盘要有所下降,服务器还需要额外提供CPU 和内存资源供磁盘管理工具使用,因此服务器的整体性能下降了大约20~30%。同时软件阵列还不具有硬件阵列的在线扩容、动态修改盘阵级别,自动数据恢复等诸多功能。我们说,软件阵列是用性能换安全。
软件阵列组成:服务器的SCSI 卡+硬盘+操作系统阵列程序
物理硬盘
物理硬盘即物理驱动器。惠普目前所提供的硬盘有9GB、18GB、36GB 和72GB 多种
容量。
逻辑硬盘
逻辑硬盘是由物理硬盘的一部分或多个物理硬盘结合在一起组成的。通过操作系统几个物理硬盘可以分成两个逻辑硬盘,如C:盘和D:盘。或将两个物理硬盘组成一个更大的逻辑硬盘。
逻辑硬盘可作为物理盘的一部分可以将一个物理硬盘可分成多个逻辑盘,并指明驱动盘符和容量大小。这样一个物理盘可以被分成多个盘符和不同的容量。
逻辑硬盘可以由多个物理盘组成可以将多个物理盘可结合在一起组成一个大的逻辑盘。对于操作系统来说,它不能区分物理盘和逻辑盘,它认为是一样的。通过逻辑盘的技术能实现磁盘吞吐量增大或磁盘冗余。
RAID 阵列技术特点
RAID 0 条带存储(Striping):
将数据分散防止在阵列的各个硬盘上,每个硬盘均存贮不同的数据,具有最大数据存储容量; 低成本; 速度很快,但没有数据冗余。RAID0 是一个比较特殊的磁盘阵列,通常用于不要求数据有冗余,但要求磁盘阵列的性能较高时使用。例如,临时存放数据。转存数据库,为满足高速访问而设置的临时数据库等。
RAID 1 镜像/双工(Mirroring / Duplexing):
RAID1 采用两块硬盘互为镜像,每块硬盘存贮的数据均与另一块相同。当一块硬盘出现故障时,另一块硬盘继续工作,保障系统的继续运行。具有最大冗余; 快速恢复的功能,但成本较高。存贮容量为一块硬盘的容量。适合于作操作系统,要求安全的数据存贮。
RAID 3 (条带分布+专用盘校验):
RAID3 使用至少三块硬盘配置,在其中的一块硬盘上存贮专用的校验数据,当某块硬盘出现故障时,其它硬盘可以通过校验数据将有故障的硬盘的数据重新恢复出来,由于使用一块硬盘作为校验使用,所以实际可以使用的硬盘容量为N-1。RAID3 在高可用性、成本、性能间获得平衡,由于需要计算校验数据会导致速度稍慢,要求3 块硬盘或更多。
RAID 5 (条带技术+ 分布式校验):
RAID5 使用至少三块硬盘配置,与RAID3 所不同的是,RAID5 将所有校验的数据分别存贮在所有的硬盘上,每一个硬盘的不同地方既存贮数据,也存贮校验数据。当某块硬盘出现故障时,其它硬盘可以通过校验数据将故障的硬盘的数据重新恢复出来,由于所有校验数据要使用一块硬盘的容量作为校验使用,所以实际可以使用的硬盘容量为N-1。RAID5在高可用性、成本、性能间获得平衡,由于计算校验导致速度稍慢; 但比使用RAID 3 稍好。要求3 块硬盘或更多。
RAID 10 (Striping of Mirrored Arrays):
RAID10 是由惠普独家提供的特殊的磁盘阵列,它是建立在RAID1 和RAID0 的基础上而形成的。使用四块或六块、八块硬盘。每两块硬盘作RAID1,然后将形成的低级阵列重新组合作RAID0。这样,RAID10 可以在多数情况下,两个硬盘同时损坏仍然可以继续工作,所以容错能力大大提高。由于采用多个阵列组合,冗余的硬盘也增加为两个,所以有效使用的容量为N-2。容量大于RAID 1,成本较高。
RAID 30 (Striping of Dedicated Parity Arrays):
RAID30 是由惠普独家提供的特殊的磁盘阵列,它是建立在RAID3 和RAID0 的基础上而形成的。使用6、8、10、12、14、16、32 块硬盘。先使用3 块或更多的硬盘作RAID3,然后将形成的低级阵列重新组合作RAID0。这样,RAID30 可以在多数情况下,两个硬盘同时损坏仍然可以继续工作,所以容错能力大大提高。由于采用多个阵列组合,冗余的硬盘也增加为两个,所以有效使用的容量为N-2。容量较高,硬盘的读的性能较高,适合作为检索服务器等要求读性能较高的系统使用,成本较高。
RAID 50 (Striping of Distributed Parity Arrays):
RAID50 是由惠普独家提供的特殊的磁盘阵列,它是建立在RAID5 和RAID0 的基础上而形成的。使用6、8、10、12、14、16、32 块硬盘。先使用3 块或更多的硬盘作RAID5,然后将形成的低级阵列重新组合作RAID0。这样,RAID50 可以在多数情况下,两个硬盘同时损坏仍然可以继续工作,所以容错能力大大提高。由于采用多个阵列组合,冗余的硬盘也增加为两个,所以有效使用的容量为N-2。容量较高,硬盘的读的性能较高,适合作为检索服务器等要求读性能较高的系统使用,成本较高。容量大于RAID RAID 5;