磁盘阵列性能指数参考
2.3 多数据流对磁盘阵列系统性能的影响
2.3.1 单主机连接情况下的磁盘阵列存储系统性能
一般在单主机连接的情况下,磁盘或磁盘阵列拥有最好的性能。由于目前几乎所有的操作系统都是基于本身独自占有的文件系统,即文件系统只能被一个单一的操作系统所独有,所以操作系统或基于操作系统的应用软件可以在对存储系统进行数据读写的时候,针对磁盘存储系统的读写特点,无论操作系统还是应用软件都会对读写方式做最优化处理,以减少磁盘的物理寻道次数,降低磁盘的机械反应时间。每个程序进程的数据请求对其它的数据请求来说是不确定的,但由于操作系统本身的对数据访问的管理和控制,所有出自该操作系统的数据请求都被操作系统做了有序化处理,因此对于磁盘或磁盘阵列来说,数据读写请求是被优化过的,或者说在经过优化以后没有任何变化,这个时候存储系统拥有最佳的性能。
作为磁盘阵列,虽然在操作系统和各个磁盘驱动器之间增加了一层RAID 控制器,但目前所有的RAID 控制器本身只作为对磁盘容错的管理和校验的计算等一些必要的操作,并不对数据请求做合并、重新排序和优化处理,因为它的设计出发点是建立在单个主机连接的已经经过操作系统优化的和排序的数据请求的基础之上,它所拥有的缓存也只有直接缓存和计算缓存的功能,不对数据做排队处理,只是将主机端口过来的数据按着先进先计算先出的方式通过CPU 计算校验以后写入磁盘。缓存的性能虽然非常快,但其容量相对于多媒体数据来说并不足够大,在很快写满缓存以后,速度立即衰减到实际操作磁盘的速度。
所以RAID 控制器的功能只是将许多磁盘组成一个或多个大的容错的磁盘,并且利用每个磁盘上的缓存的缓冲存储功能提高整体的数据读写速度,RAID 控制器的读缓存可以在短时间内再次读取同一数据的情况下明显提高磁盘阵列的读性能。整个磁盘阵列的实际的最高读写速度受到主机通道带宽、控制器CPU 的校验计算和系统控制能力(RAID 引擎)、磁盘通道带宽和磁盘性能(每个磁盘有自己的最高性能,这里指多个磁盘总的实际性能)中的最低值的限制。另外,操作系统的数据请求的优化基础与RAID 格式不匹配,也会对磁盘阵列的性能造成很大的影响,如I/O 请求的数据块大小与RAID 的数据段大小不匹配等。
2.3.2 多主机同时访问下,传统磁盘阵列存储系统的性能变化
首先,分析在视音频应用环境中来自不同主机的多个媒体流对小规模磁盘阵列存储系统性能的影响。
小规模磁盘阵列存储系统一般拥有单个或一对冗余的磁盘阵列控制器,所能连接的磁盘的数量较少,具有基本的容错和管理功能,结构相对简单。
在存储区域网络的多主机共享存储环境中,虽然每台主机对自己所发出的数据请求做了排序和优化,但各个主机之间的数据流对共享的存储系统来说是无序的,导致了更多的磁盘重新寻道次数、更多的数据段头尾信息和更多的数据碎片读出、合并、校验计算和再写入过程。这样导致存储的性能比单主机连接时下降许多,主机连接得越多,磁盘系统的性能下降的幅度就越大。
图2-1 显示了一个磁盘阵列在多主机同时访问的环境中的测试结果,多主机的同时访问造成磁盘阵列总性能的衰减。一般情况下,不同磁盘阵列、不同的磁盘阵列设置和使用不同种类的磁盘驱动器,测试结果会稍有不同,但都不可避免地出现性能明显衰减的状况。
图2-1 在多主机的数据流同时访问时小规模磁盘阵列总性能的衰减
其次,分析在视音频应用环境中来自不同主机的多个媒体流对大规模磁盘阵列存储系统性能的影响。
所谓大规模磁盘阵列存储系统,一般是指在一个存储系统中使用总线结构或交叉点交换结构将多个存储子系统(磁盘阵列)连接起来,并在总线中或交换结构中使用大容量的缓存和用于更多主机连接的类似于通道集线器或交换机的主机连接模块,最后通过复杂的存储管理软件组合成的大型的存储系统。这种存储系统可以提供比单个小的磁盘阵列更大的容量和更高的性能。象采用总线结构的EMC 的Symmetrix 系统在单个磁盘阵列的性能只能达到25 至50M 字节/秒时,它的最高性能就可以到100M 字节/秒,甚至在使用RAID10 (磁盘镜像)时最高可到200 至300M 字节/秒。象采用总线结构和交叉点交换结构(最新的系统)日立的两种存储系统,也可以到类似于Symmetrix RAID10 的实际性能。
一般在这类存储系统中缓存对性能都有巨大的贡献,但只有在事务处理应用和类似于邮电计费的应用中才起作用。几十G 字节的缓存可以存储数小时的事务处理数据,系统可以从容地在空闲时将数据写入磁盘,物理卷的非常小的数据段设置也足以说明这类存储系统只适合于事务处理类应用。对于多媒体数据来说几十G 字节的缓存相当于几十秒或几分钟的数据量,缓存
写满以后将考验系统直接从磁盘上访问数据的能力。而一般的这类系统虽然拥有几十个100M 字节/秒带宽的光纤通道主机连接端口,但内部集成的多个磁盘阵列子系统与一般的用于事务处理的磁盘阵列并没有什么不同,磁盘阵列子系统的一个控制器的一个逻辑单元的性能在只有一个主机访问这个逻辑单元的情况下可以有25 至50M 字节左右的实际性能。在多主机访问同一个逻辑单元的情况下,由于在所有的这些系统中没有数据重新排序和优化功能(总线结构和交叉点交换结构决定了这一点),所以同样会产生较大的性能影响。
但这种性能衰减与小规模的磁盘阵列的性能衰减有所不同。由于在这种大规模磁盘阵列存储系统内部包括了相对独立的多个磁盘阵列子系统(例如四个或八个),每个磁盘阵列子系统由一对磁盘控制器组成,在不同的主机访问不同的磁盘阵列子系统时各自的性能不受影响,只受到系统总线带宽的限制。所以在多主机的数据流访问平均分布在不同的存储子系统中时,它的多主机的支持能力可以是小规模磁盘阵列系统的几倍。
在这种大规模磁盘阵列存储系统中,一个逻辑单元只能建立在单个磁盘子系统中,由于单个磁盘阵列子系统的内部串行结构,决定了一个逻辑单元只能通过一个串行路径来提供给用户,所以大规模磁盘阵列存储系统并不能提高单个逻辑单元的性能。单个逻辑单元的性能很低,一般只有25 至50M 字节/秒的实际性能。但在事务处理类应用中这种结构大大提高了性能,因为在这类应用中可以根据事务处理的特点,每个事务处理数据都非常小,但数量庞大有一定的统计规律性,可以利用数据库将同时到来的事务处理数据分类,将它们尽量平均分布在不同的磁盘子系统中,同时利用磁盘子系统外部的大容量缓存,可以大大地提高整个存储系统的性能。而对于视音频数据流的应用,用户数据访问的单个数据流一般都很大,但访问次数相对较小,即使有一定的规律性也有可能发生对不同逻辑单元的需求不均衡的现象,这样极易造成某个逻辑单元阻塞或性能明显下降。所以这种大规模磁盘阵列存储系统并不适合使用于视音频和多媒体的应用领域。
第三,在视音频应用环境中来自不同主机的多个媒体流对NAS 存储系统性能的影响。
NAS 存储系统是建立在传统RAID 技术的基础上,发挥单个主机连接时磁盘阵列系统拥有最好的性能的特点,使用NFS 和CIFS 协议将瘦服务器连接的存储系统通过以太网共享给外部的用户。由于瘦服务器削减了与存储管理和数据通讯无关的各种功能,优化了TCP/IP 协议的数据传输能力,同时使用多个(目前最多十个)并行的TCP/IP 数据传输,使单个NAS 存储系统的最大共享速度可以达到60M 字节/秒左右。
在多主机连接的环境中,由于使用的是以太网的连接,来自不同主机的数据进入瘦服务器以后通过瘦服务器的操作系统或数据管理应用软件的管理和重新排序后以最优的方式写入磁盘系统,这样一来磁盘系统本身没有明显的性能衰减。这也是NAS 存储能在目前得到相当的发展的一个主要的原因之一,它的特点使它适合应用于需要数据共享的应用环境当中。