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 字节左右的实际性能。在多主机访问同一个逻辑单元的情况下,由于在所有的这些系统中没有数据重新排序和优化功能(总线结构和交叉点交换结构决定了这一点),所以同样会产生较大的性能影响。