网络存储器的设计
扫描二维码
随时随地手机看文章
高性能工作站和PC技术的发展运用以及高性能网络技术的出现和发展,使得计算机集群系统在性能价格比、可扩展性、可用性、可靠性等方面都具有传统的大型机和对称多处理系统所无法比拟的优势。
计算机集群系统就是指将一系列的同构或异构的计算机通过高速网络连接在一起,来协同完成特定任务的功能更加强大的计算机系统。集群系统采用的操作系统主要有VMS、UNIX、WindowsNT和Linux。集群是一种并行或分布式的处理系统,由多台互联的独立计算机(称为节点)整合而成,像一个单独的计算资源一样协同工作。集群的节点可以是PC、工作站或者对称多处理机(SMP),每个节点都拥有自己的CPU、内存、I/0设备和操作系统,可以提供大量的冗余设备来保证集群系统的高可用性。集群的计算能力随着节点数量的增加而线性增加(如图1)。
1 网络存储器技术的产生
随着基于计算机集群系统的应用的不断扩大,对整个系统性能的要求也就越来越高,越来越复杂的计算任务常常需要用到大量的数据,因此数据的I/0操作性能就成了影响计算机集群系统整体性能的一个重要指标。根据系统平衡设计原理,系统使用最快部件所能达到的加速比受限制于最慢的系统部件,而目前限制计算机集群系统整体性能的主要因素就来自于计算机系统中的磁盘的I/O瓶颈。因此,提高计算机系统中磁盘的I/O性能就成了提高计算机集群系统整体性能所需要解决的首要问题。
通过分析计算机集群系统的资源优势,我们发现:一方面,由于网络技术的高速发展,网络通讯延迟越来越小,网络访问比本地磁盘访问的速度快得多。另一方面,整个计算机集群系统内部的全部内存是一个容量很大的资源。如果利用计算机集群内其它节点的空闲内存来作为本地节点的虚拟内存或文件缓存,可以大幅度节省磁盘访问时间,从而缓解磁盘的I/0瓶颈所带来的问题。这种使用计算机集群系统内的节点的主存提高计算机系统I/0性能的技术就称为网络存储器技术。
伴随着高性能网络技术的出现和普及,计算机系统在传统的存储器层次中增加了一个新的层次一网络存储器(Net—work Memory)。计算机的性能依赖于系统内处理器与存储器之间数据交换的速度,网络存储器正是通过提高处理器与存储器之间的数据交换的速度来提高计算机系统性能的,并进而提高整个计算机集群系统的性能。
2 计算机存储结构的变化
在计算机存储结构当中,存储器的用途是多种多样的,如寄存器、高速缓存、主存储器和磁盘等。凭借高速缓存和操作系统对存储器的管理与分配等技术,使得整个存储系统的速度接近于系统内速度最快的那个存储器,容量接近于容量最大的那个存储器。存储结构的性能由各层次的有效存取时间决定,它依赖于相邻层次的命中率、访问频率和存取速度比。命中率越高,访问频率越低,则性能越高。在命中率和访问频率一定的情况下,下一层次的存储器的访问速度越快,则性能越高。
2.1 传统的计算机存储结构
在传统的计算机存储结构中(如图2),以主存储器为分界线,主要可以分为上下两层,上层是由外部高速缓存和主存储器构成的高速缓存存储系统,下层则是由磁盘或磁带等大容量存储设备构成的存储系统。
随着集群技术的普及与广泛应用,低速磁盘与高速内存之间的速度瓶颈问题就显得尤为突出,有必要寻找一种办法来缓解内存与磁盘之间的速度不匹配问题。
要缓解这个矛盾,有三种办法。第一,提高磁盘自身的存取速度。而这需要大量的资金与精力的投入,在目前看来,是不现实的,也是不可取的。第二,像解决高速处理器与内存的速度瓶颈问题一样,在本地主存储器和本地磁盘之间也插入一种类似于高速缓存的存储介质。第三,使用网络空闲内存代替本地磁盘,与本地主存储器进行数据交换。目前高速发展的网络互联技术使得后两种办法成为可能,那就是网络存储器。
2.2 具有网络存储器的计算机存储结构
应用了网络存储器的计算机存储结构发生了改变,如图3所示,对于第二种解决方法,网络存储器在主存储器和磁盘之间充当了一个缓存的角色,这样可以有效地缓解内存和磁盘之间速度瓶颈的问题。对于第三种解决方法,网络存储器在计算机存储结构中的位置会有相应的变化。
3 网络存储器的可行性分析
为了考查实际情况下的网络存储器,可以考查一个工作站集群,这个集群有100个工作站,每个工作站各有一个处理器,内存为64MB或128MB,硬盘为2GB或4GB。工作站以155Mb/s的ATM连接,典型的延迟是20微秒,带宽为15Mb/s。这种环境下,很多工作站上装载了用户的应用程序以及正在使用的集群资源(CPU、内存、硬盘、网络)。根据统计情况,在给定的时间内,仍有相当多的资源没有被利用。在夜间,甚至有80%~90%的工作站都被闲置着,即使在一天中最忙的时候,仍有三分之一的工作站完全未用,通常晚上有超过l千兆字节的存储器空闲。在任何时间,在50台机器的网络中有30台是空闲的。
图4是希腊计算机科学学院(ICS)计算机结构与VLSI系统小组提出的模型,该模型是一个由16台工作站组成的共800M主存的集群。由图4可以看出,绝大多数时间集群内空闲内存都超过了700MB,尤其在夜间和周末。[!--empirenews.page--]
尽管网络存储器由可变的存储器组成,但由于它分布在许多独立的工作站上,所以能提供较好的数据可靠性,如果一台工作站崩溃了,存在其他工作站内存中的数据依然完整,通过某种形式的冗余,如数据复制,可以重构崩溃工作站内存中的数据。
4 网络存储器的性能分析
网络存储器有杰出的性价比。表l是一个有100台工作站、20微秒延迟和15兆字节/秒带宽的工作站网络的存储器各层次性能表。假设集群中至少有50%的网络存储器是空闲的,可看出网络存储器比硬盘性能好得多,比本地内存甚至硬盘容量大得多,而实际上几乎没有什么成本。这种性价比使得网络存储器成为一个非常好地解决计算机系统I/O性能瓶颈的可行方案。
5 网络存储器的设计方法
根据网络存储器的不同应用形式,网络存储器的设计方法可以分为以下三种:
1)网络存储器调页:由于网络存储器性能介于硬盘与本地内存之间,因此在存储器层次关系中,可以看作是硬盘和本地内存之间的一个中间层。这个附加的存储层将给应用程序带来好处,因为网络存储器的页交换速度比硬盘快,所以总的访问内存时间就会小很多。
2)网络存储器文件系统
a)网络存储器作为文件缓存:在集群工作站中,网络文件系统在多个工作站上运行,当许多工作站通过文件系统如VFS访问相同文件时,文件就会被高速缓冲到多个客户机上,形成多个缓冲副本,浪费了缓存空间。为了提高文件缓存的调度,在各个工作站已有一个本地文件缓存的情况下,创建一个全局网络存储文件系统缓存相当重要。这种本地缓存统一成为一个全局缓存,增强文件缓存性能的技术叫做协作缓存。采用协作缓存技术,缓存所有本地协调交换信息,从而可以消除缓存文件副本,在必要时也可以共享内容。
b)网络存储器作为存储设备:另一种解决磁盘I/0性能问题的方法是使用可靠的网络存储器来直接存储临时文件。采用这种方法的设备,称为网络随机磁盘Network RamDisk(NRD)。NRD是块设备,它通过虚拟磁盘接口统一了N0W中所有空闲的主存,它像一个传统磁盘,允许在上面创建文件和文件系统,由于它是在主存RAM中实现的,因而提供了比大多数传统磁盘低的延迟和高的带宽。
3)网络存储器数据库:网络存储器可以作为一个大的(分布式的)数据库高速缓存和作为一个快速的非易变数据缓存来存放数据库敏感数据。事务处理虽然在原子性和可恢复性方面已得到好的评价,但由于大多数基于事务处理的系统要存储大量的数据,因此性能受到限制。使用网络存储器能将基于事务的系统性能与磁盘性能分开,从而增强系统性能。对事务处理系统的开发原型进行实验测试显示:网络存储器的应用可以提高两个数量级的性能。
6 结束语
网络存储器设计方法的基本思想就是尽量使用网络存储器来代替磁盘访问,用以提高系统I/O性能。这些设计方法可在一般硬件上用软件来开发。除此之外,有许多硬件组件,如SCI、Telegxaphs和SHRIMP,提供了特别的原始操作,增强了网络存储器系统的性能。网络存储器技术使用网络空闲内存作为存储介质,改变了传统的计算机系统I/O访问的层次结构,提供了远远高于磁盘的访问速度,具有良好的应用前景。