一种linux集群文件系统研究(一)

[摘 要] 本文首先提出了基于BoysFS集群技术的服务器群建设方案,然后对几个相关的关键技术进行了研究,最后对本研究进行了总结。
  [关键词] linux集群 并行文件系统
  
  目前,对分布式/并行文件系统的研究可以分为三类:商业用途的并行文件系统、公开的分布式并行文件系统、供研究的并行文件系统。由于技术需要,笔者提出了一种基于linux的并行文件系统结构—BoysFS。与其它系统相比,BoysFS具有如下优势:(1)具有更高的可用性;(2)具有更好的可扩展性;(3)提供分布式的元数据管理;(4)提供了元数据的访问速度;(5)配置简单。
  
  一、基于BoysFS的服务器群建设方案
  
  1.BoysFS系统结构说明
  在笔者研究的高可用并行文件系统中,每个服务器既是Metadata Server,又是IOD Server,它们一起构成一个逻辑环,形成对外服务的Server池,Server与Server之间能够平衡负载,并且相互容错。当有新的Server要加入或者离开时,整个系统无需进行重新配置,系统能够自动适应这种动态变化。而且由于数据在其它节点均有备份,因此能够实现数据的动态迁移与恢复。
  2.系统模块划分
  整个系统主要分为如下几个功能模块:(1)访问接口模块:提供了并行文件系统的访问接口,以三种方式提供:用户层的库Lib.a、并行程序访问接口RMI-IO、系统底层接口(VFS)。(2)Job管理模块:每个请求将对应一个Job,由Job Manager去完成。(3)状态机处理模块:每种类型的请求对于一种状态机,一个请求需要多个操作,由状态机决定下一步该转向那一步操作。(4)数据流管理模块:负责管理I/O数据块的传输。(5)BMI:基于消息的网络传输模块。(6)DHash:高可用的分布式存储子系统。提供Key/Value对的存储方式。(7)Chord:分布式查找协议。可以快速查找负责某个Key的Server。
  
  二、关键技术研究
  
  1.数据存取方式
  本系统中,不管是文件数据还是元数据都是通过Handle值来存取的。每个handle对应一个Key值,每个Key对应一个相应的数据块,运用DHash提供的put(Key,Block)存储到Berkeley DB中。当客户端要存储k=6对应的数据块时,首先去查本地的Global Key Range Table,查出该Key值k由节点Node3负责,于是将请求发到Node3。Node3送到请求后,调用Get或put接口来存取数据,由下层的DHash来提供数据的高可用性。