基于PVFS(并行虚拟文件系统)的并行网络存储系统

    并行网络存储系统是浪潮存储开发的新一代网络存储系统。浪潮并行文件系统以PVFS作为开发原型,并在此基础上进行改进,使其与并行网络存储系统紧密结合。在这里,将对基于PVFS的浪潮并行文件系统作一个简单的介绍。
  
    PVFS的优点和缺憾
  
    在网络后台,以集群的形式来扩大数据存放空间已经成为一个不可避免的趋势,而在应用端,多机多个进程访问的需求也在日益增长。在这种应用的迫切需求下,并行文件系统便油然而生。
  
    所谓并行文件系统,是指应用于多机环境的网络文件系统,单个文件的数据采用分条等形式存放于不同的I/O节点之上,支持多机多个进程的并发存取,同时支持元数据和数据的分布存放,并提供单一的目录空间。而要实现一个完整的并行文件系统,需要实现如下两个方面:第一,实现单一的文件映像,并行文件存放在盘阵上的具体分布情况对于用户来说是透明的,并行文件系统在用户看来是一完整的树型结构,在调用时只要给出文件名即可;第二,采用条(Stripe)和分区(Partition)技术,支持一个文件数据在多个磁盘之上和多个进程之间的分布,即多个进程并发读写多个磁盘上的数据。
  
    在经过比较和甄选,我们选择了PVFS(并行虚拟文件系统)作为开发原型。PVFS采用客户-服务器架构,利用一组协作的用户空间进程(Daemon),提供一个群集范围内的一致的命名空间,并将数据条块化,分配到集群节点中。PVFS提供可靠的通讯环境,客户和服务器之间的信息传递通过TCP/IP完成。
  
    如图1所示,PVFS使用了三种类型的节点:管理节点、I/O节点和计算节点。管理节点运行元数据服务器(Mgr daemon),处理所有的文件元数据(元数据是描述文件信息的文件);I/O节点运行I/O服务器,存储文件系统的文件数据,负责数据的存储和检索;计算节点则处理应用访问,利用libpvfs这一客户端的I/O库,从底层访问PVFS服务器。一个集群的节点可以提供其中的一种功能,也可以同时提供其中的两种或者全部三种功能。



    PVFS的运行机理如下:当打开、关闭、创建或删除一个文件时,计算节点上的一个应用通过libpvfs直接与元数据服务器通信。在管理节点定位到一个文件之后,它向这个应用返回文件的位置,然后使用libpvfs直接联系相应的I/O节点进行读写操作,不必与元数据服务器通信(见图2 ),从而大大提高了访问效率。



    在对PVFS的分析和测试中,发现要成为一个真正的商用系统,PVFS还存在缺陷,比如:PVFS中应用系统socket相互通信,应用TCP/IP通信协议,每次通信需要内核嵌入,进行内存拷贝,CPU的负载比较大,影响系统的运行效率;PVFS本身具备良好的可扩展性,但是其动态配置的能力不强,如果要扩展一个I/O节点,就需要停止服务,并且不能做到空间的合理利用等。
  
    浪潮并行文件系统的特征
  
    针对以上缺陷,浪潮存储集中研发力量,在PVFS的基础上进行了大量改进工作,使得改进后的并行文件系统在性能、可用性、可扩展性、数据安全性方面有了大幅提高。
  
    在该并行文件系统中,元数据信息采用分布存储和管理的方式,消除了PVFS中元数据集中存储和管理而导致的访问瓶颈,提高了元数据信息的可用性,同时保证文件系统向用户提供统一的命名空间和目录体系。在改进后的并行文件系统中,采用客户端缓存技术,大大提高系统的文件访问效率,降低网络流量,减少由于磁盘访问和网络传输带来的时延。此外,还提供可订制的高可用机制,用户可以根据其可用性需求和读写模式选择相应的可用性级别和可用性策略。在改进后的并行文件系统中,加入了访问控制机制,可以避免一些非授权用户对特定数据进行非法访问,以确保数据的安全性。在并行文件系统的设计方面,提供友好的系统管理界面;考虑到Unix在高端的广泛应用,并行文件系统的接口设计和语义设计完全符合POSIX标准,同时与现在被广泛使用的软硬件标准相兼容。