R A I D阵列管理软件可以在I / O路径的几个地方实现,这毫不令人惊讶,因为这些位置和镜像和缓存的位置一样:主机系统、I / O控制器、磁盘子系统等。
1. 基于主机卷管理软件的RAID R A I D
阵列管理软件的一个常见位置是卷管理器,它运行在主机系统上,在这个模式下,主机C P U提供R A I D算法运行所需要的处理能力。
基于主机的R A I D已经被证明是相当有效的,常常运行在UN I X 环境下,而不是在P C环境下,其主要原因是开发R A I D的卷管理软件公司的市场运作方式。几年来,Veritas Software已经成功地向领先的UN I X 厂商们出售了它的卷管理软件,也将为Windows 2000 提供基本的磁盘管理器,以将卷管理概念引入P C市场。CrosStor Software也为工业界提供了卷管理软件,可嵌入范围很广的装置和系统中。
操作系统和系统制造商有时也开发自己专用的卷管理器,并加入了R A I D的功能。即使不支持更高级的R A I D,但大部分服务器操作系统至少支持RAID 1镜像。随着市场对R A I D和磁盘子系统前景的看好,可能有更多的系统制造商和附件产品将会介入其中。
1) 基于主机R A I D的分析
基于主机的R A I D要求主机系统提供C P U的处理周期,也占用系统内存带宽和主机I / O总线。按照实现的R A I D级的不同,这会引起几个I / O操作通过系统总线,而外部磁盘阵列软件将它们当作一个请求处理。此外,校验R A I D是非常耗费C P U的。
例如,RAID 1镜像实现起来相当简单,并不涉及大量的处理,同时,它对资源的消耗也不特别严重,而RAID 4、5、6则要求多次X O R校验操作,以及从磁盘驱动器中读出数据。
举一个例子,假如RAID 5运行在主机系统中,主机系统安装有J B O D磁盘子系统。当更新磁盘上的一个分块时,必须在主机I / O总线上移动相当多的数据。在这种情况下,原有数据和原有校验数据必须从磁盘读出,然后新数据再写到磁盘,校验的X O R计算处于读和写之间。若将独立的重叠I / O操作用于多个成员磁盘,主机I / O总线可能变得更为拥挤。
2) 基于阵列管理软件的RAID 3问题
当R A I D功能在主机软件中实现时,值得怀疑的是RAID 3是否能够正常工作。RAID 3的性能取决于成员驱动器的写操作,对匹配磁盘转动同步的容错范围很小。然而,基于主机的阵列管理软件所提供的数据必须通过整个I / O路径,因而,很难保证数据能够及时地传送给磁盘子系统,提供适当的阵列性能。因为RAID 3的速度取决于所使用的同步磁盘,假如主机和磁盘之间的数据传送发生延迟,那么会导致成员磁盘的不必要的转动,致使阵列的性能很差。
注意R A I D子系统的许多冗余属性实际上是磁盘子系统的一部分,也可以由J B O D提供,
这些包括冗余的电源、风扇、甚至热插拔磁盘驱动器。虽然基于主机的R A I D能够支持热
交换磁盘驱动器,但主机软件并不支持它,要使它能正常地工作,必须将它放入磁盘子
系统。