一种linux集群文件系统研究
发布时间:2015-07-09 09:47
[摘 要] 本文首先提出了基于boysfs集群技术的服务器群建设方案,然后对几个相关的关键技术进行了研究,最后对本研究进行了总结。
[关键词] linux集群 并行文件系统
目前,对分布式/并行文件系统的研究可以分为三类:商业用途的并行文件系统、公开的分布式并行文件系统、供研究的并行文件系统。由于技术需要,笔者提出了一种基于linux的并行文件系统结构—boysfs。与其它系统相比,boysfs具有如下优势:(1)具有更高的可用性;(2)具有更好的可扩展性;(3)提供分布式的元数据管理;(4)提供了元数据的访问速度;(5)配置简单。
一、基于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来提供数据的高可用性。
ida算法是一种信息分散算法。它的功能是能将一个长度为l的文件f,分成n个分片fi(l≤i≤n),每个分片的长度为l/m,在fi中任取m个分片都能重组成原来的文件f。这种分片和分片重组在计算效率上是很高的。在空间上,可以看出n个分片fi的总和是原来文件的n/m倍,n/m大于但可以趋近于1,所以数据冗余不会占用太多空间。
3.文件系统接口的实现
人们对任何数据的访问都是通过handle进行的,而且handle被存放在块中,记录了各个对象之间的逻辑关系。人们只要知道文件系统超级块handle值,就可以顺藤摸瓜地找到该文件系统中的任何对象。
4.动态可扩展性的实现
要实现系统动态可扩展性,系统必须能够自动处理节点的任意加入和离开的事件,保证系统的稳定,而不用人为地重新进行配置。
(1)节点加入
当新节点加入时,会依次出现以下结果:(1)由自己的nodeip哈希出在key space中的位子p = sha-1(nodeip);(2)对外组播自己加入的消息;(3)接管自己负责的key range【k2,k2’);(4)客户端收到节点加入的消息后,更新自己的global key range table。
(2)节点离开
节点正常离开时,需要向其它节点发送组播消息,通知客户端更新global key range table,释放自己所管理的那部分key range 【k2,k2’)。
(3)节点失效
节点的突然实现属于无通知的节点离开行为,如何及时的检测到没个节点的失效,如何快速的达到新的稳定状态将是本系统的关键。笔者初步采取的是用ping的方式对各个节点进行周期性检测,其间隔时间有待研究。
(4)进行故障屏蔽
当有节点加入或离开时,系统会有一段时间处于不稳定状态,客户端如果访问已失效节点就会无响应,笔者为每个操作设置超时时间,如果在该时间内仍无响应,客户端就向该节点的前续节点重发请求。
三、总 结
本系统大大降低了硬件系统损坏对集群的影响;一次写入,永不改变,大大降低了程序的复杂度;同时增大了block的长度,效率更高;且具有高冗余和高性能的特性,为数据中心的发展奠定了基础。
参考文献:
yifeng zhu, hong jiang, xiao qin, dan feng. improved read performance in a cost-effective, fault-tolerant parallel virtual file system, in proceeding of ieee/acm workshop on parallel i/o in cluster computing and computational grids,tokyo,japan,may 2003.
[关键词] linux集群 并行文件系统
目前,对分布式/并行文件系统的研究可以分为三类:商业用途的并行文件系统、公开的分布式并行文件系统、供研究的并行文件系统。由于技术需要,笔者提出了一种基于linux的并行文件系统结构—boysfs。与其它系统相比,boysfs具有如下优势:(1)具有更高的可用性;(2)具有更好的可扩展性;(3)提供分布式的元数据管理;(4)提供了元数据的访问速度;(5)配置简单。
一、基于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来提供数据的高可用性。
算法
ida算法是一种信息分散算法。它的功能是能将一个长度为l的文件f,分成n个分片fi(l≤i≤n),每个分片的长度为l/m,在fi中任取m个分片都能重组成原来的文件f。这种分片和分片重组在计算效率上是很高的。在空间上,可以看出n个分片fi的总和是原来文件的n/m倍,n/m大于但可以趋近于1,所以数据冗余不会占用太多空间。
3.文件系统接口的实现
人们对任何数据的访问都是通过handle进行的,而且handle被存放在块中,记录了各个对象之间的逻辑关系。人们只要知道文件系统超级块handle值,就可以顺藤摸瓜地找到该文件系统中的任何对象。
4.动态可扩展性的实现
要实现系统动态可扩展性,系统必须能够自动处理节点的任意加入和离开的事件,保证系统的稳定,而不用人为地重新进行配置。
(1)节点加入
当新节点加入时,会依次出现以下结果:(1)由自己的nodeip哈希出在key space中的位子p = sha-1(nodeip);(2)对外组播自己加入的消息;(3)接管自己负责的key range【k2,k2’);(4)客户端收到节点加入的消息后,更新自己的global key range table。
(2)节点离开
节点正常离开时,需要向其它节点发送组播消息,通知客户端更新global key range table,释放自己所管理的那部分key range 【k2,k2’)。
(3)节点失效
节点的突然实现属于无通知的节点离开行为,如何及时的检测到没个节点的失效,如何快速的达到新的稳定状态将是本系统的关键。笔者初步采取的是用ping的方式对各个节点进行周期性检测,其间隔时间有待研究。
(4)进行故障屏蔽
当有节点加入或离开时,系统会有一段时间处于不稳定状态,客户端如果访问已失效节点就会无响应,笔者为每个操作设置超时时间,如果在该时间内仍无响应,客户端就向该节点的前续节点重发请求。
三、总 结
本系统大大降低了硬件系统损坏对集群的影响;一次写入,永不改变,大大降低了程序的复杂度;同时增大了block的长度,效率更高;且具有高冗余和高性能的特性,为数据中心的发展奠定了基础。
参考文献:
yifeng zhu, hong jiang, xiao qin, dan feng. improved read performance in a cost-effective, fault-tolerant parallel virtual file system, in proceeding of ieee/acm workshop on parallel i/o in cluster computing and computational grids,tokyo,japan,may 2003.
下一篇:会员制电子商务网站的设计与管理