CN101459694B - 针对分布式文件系统的高可用消息传输框架和方法 - Google Patents

针对分布式文件系统的高可用消息传输框架和方法 Download PDF

Info

Publication number
CN101459694B
CN101459694B CN 200810247441 CN200810247441A CN101459694B CN 101459694 B CN101459694 B CN 101459694B CN 200810247441 CN200810247441 CN 200810247441 CN 200810247441 A CN200810247441 A CN 200810247441A CN 101459694 B CN101459694 B CN 101459694B
Authority
CN
China
Prior art keywords
context
layer
file system
interface
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200810247441
Other languages
English (en)
Other versions
CN101459694A (zh
Inventor
杨栋
唐荣锋
熊劲
孟丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guoxin electronic bill Platform Information Service Co., Ltd.
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 200810247441 priority Critical patent/CN101459694B/zh
Publication of CN101459694A publication Critical patent/CN101459694A/zh
Application granted granted Critical
Publication of CN101459694B publication Critical patent/CN101459694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种针对分布式文件系统的高可用消息传输框架和方法。该消息传输框架包括:文件系统接口层,其为文件系统层提供访问接口;文件操作处理层,其分别与文件系统接口层和底层协议封装层交互,处理文件系统层提交的请求,提交操作给底层协议封装层;底层协议封装层,其与网络协议层通信,将文件操作处理层提交的操作进行封装后通过网络协议层发送消息。本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用性保障。

Description

针对分布式文件系统的高可用消息传输框架和方法
技术领域
本发明总体上涉及分布式文件系统的消息传输框架及消息传输方法,特别涉及在分布式文件系统的消息传输层面实现高可用机制来提高文件数据网络传输的可用性,从而提升分布式文件系统整体可用性的消息传输框架和方法。
背景技术
机群系统以其可扩展性好、性能价格比高、高可用性强、可继承现有软硬件资源和开发周期短、可编程性好等特点,目前已成为超级服务器的主流体系结构。机群系统自上世纪70年代诞生以来,经历了从专用机群系统到通用机群系统的发展,规模从几十个处理器发展到了上万个处理器。优越的可扩展性使得很容易通过扩大系统规模来达到所需要的性能。然而伴随系统规模的增长,系统中一些设备将不可避免地发生故障,这也使得人们不仅仅关注性能,同时将视线转移到系统的易用性、可管理性及可用性方面。
一个机群文件系统需要为用户提供可靠可用的数据服务。提供可靠的数据服务意味着文件系统不能失去也不能破坏数据,提供可用的数据服务意味着文件系统可以让应用程序能够获得其所需的数据,也就是保证文件系统一直能够为用户提供可用的服务或是能够在故障后快速的恢复从而继续为用户提供服务。其中,文件系统的网络故障处理又是非常重要的,它是文件系统实现容错的基础,分离并处理文件系统的网络故障,有助于提升系统整体容错的效率和可扩展性。
目前分布式文件系统的网络容错机制主要在四个层面实现,即底层的网络协议层(TCP/IP),文件系统的消息传输层(NFS/RPC),分布式文件系统层(PVFS2/BMI)以及网络硬件拓扑层(Lustre/LND)。
由于文件系统位于底层网络协议栈之上,并且分布式文件系统操作不具备事务性(由多次网络传输操作组成),因此底层的网络协议层的容错机制不能为文件系统提供所需的可用性保障。而在文件系统层直接解决网络故障,将文件系统操作和网络容错机制紧密结合起来,能够解决软件网络故障,不过对于网络硬件故障也不易恢复,并且这种做法使得文件系统与底层网络协议耦合度增大,不利于扩展和移植;网络硬件拓扑容错基于冗余度较高的网络拓扑模型,在很大程度上解决了硬件原因引起的网络故障,对处理网络分割尤为有效,其所带来的问题是较高的硬件成本及工程实施上的困难,并且不能很好地处理硬件系统运行良好的网络故障,如网络性能骤降、逻辑连接中断等异常。
另外,就在文件系统的消息传输层解决网络容错而言,其通过状态转换机来实现请求的重传,尽管其能够解决连接中断等软件错误,但是不能解决网络分割等硬件故障。
发明内容
本发明的目的是提供一种针对分布式文件系统的高可用消息传输框架和方法,其能够解决由于现有技术的不足而导致的一个或多个问题。
为了达到上述目的,本发明采取如下技术方案。
一种针对分布式文件系统的高可用性消息传输框架,其位于文件系统层之下、网络协议层之上;该消息传输框架包括:
文件系统接口层,为文件系统层提供访问接口;
文件操作处理层,分别与文件系统接口层和底层协议封装层交互,处理文件系统层提交的请求,提交操作给底层协议封装层;
底层协议封装层,与网络协议层通信,将文件操作处理层提交的操作进行封装后通过网络协议层发送消息。
进一步地,所述文件系统接口层包括:
创建通信上下文接口、创建连接上下文接口、创建操作上下文接口,释放操作上下文接口、释放连接上下文接口、释放通信上下文接口,以及提交操作接口、轮询回调接口等,其中提交操作接口用于文件系统创建操作上下文并将操作上下文挂到文件操作处理层的发送队列,轮询回调接口用于接收方从接收队列上取下到达消息的操作上下文结构。
进一步地,所述文件操作处理层包括:
连接通道选择单元,用于从通信上下文中选择连接通道;
连接通道重构单元,用于当连接通道选择单元选择到无效通道时,重构连接通道;
操作上下文重构单元,用于将操作上下文加入操作重构队列,并在连接通道有效后,激活该操作。
进一步地,所述文件操作处理层还包括:
通道心跳监测单元,用于监测连接通道,通过连接上下文发送icmp消息,并接收应答消息,当发送icmp消息出错或接收应答消息出错或接收消息不匹配时,重新发送icmp消息,当重发次数超过设定阈值时,将当前连接上下文交给连接通道重构单元。
进一步地,所述文件操作处理层还包括:
应答超时监测单元,用于当底层协议封装层始终返回操作重试标志并超过预定的第一时限,或当消息传输之后等待对应的应答消息在预定的第二时限内未到达,则将操作上下文交给所述操作上下文重构单元。
进一步地,所述底层协议封装层包括:
通信模型管理单元,用于为网络操作选择底层网络协议;
通信方式管理单元,用于执行底层网络操作。
进一步地,所述底层协议封装层还包括:
通信操作监测单元,用于检测网络协议接口的网络操作是否成功,如果没有成功,则向文件操作处理层返回操作重试标志。
为了上述目的,本发明还提供一种针对分布式文件系统的高可用性消息传输方法,包括如下步骤:
步骤S1,文件系统层通过创建通信上下文接口创建通信上下文;
步骤S2,文件系统层通过创建连接上下文接口创建连接上下文,当前组件与多个远端组件间的连接上下文信息都记录在所述通信上下文中;
步骤S3,文件系统层通过提交操作接口创建操作上下文,其中包括需要传输的消息,然后将操作上下文挂到文件操作处理层的发送队列;
步骤S4,文件操作处理层从发送队列上取下操作上下文并通过连接通道选择单元选择连接通道;
步骤S5,文件操作处理层通过通信模型管理单元选择相应的网络协议;
步骤S6,文件操作处理层调用所述网络协议的接口进行消息传输。
进一步地,所述步骤S6还包括:在消息传输时,通道心跳监测单元监测连接通道故障的步骤;如果通道心跳监测单元监测到连接通道故障,则将连接上下文加入连接重构队列,进行重构连接上下文。
进一步地,所述连接上下文重构方法,包括如下步骤:
步骤S601a,判断连接上下文在连接发起方还是连接接收方;
如果连接上下文在发起方,则重新连接通信对方端点,即重构连接上下文;
如果连接上下文在接收方,将连接上下文从通信上下文中删除,释放相关资源。
步骤S601b,判断发起方的连接上下文是否重构成功;
如果连接上下文重构成功,则激活操作重构队列中对应该连接端点的操作上下文;
如果连接上下文重构失败,则再次重构;
步骤S601c,判断重构连接的失败次数是否超过预定的阈值;
如果失败次数超过阈值,将连接上下文从通信上下文中删除,释放相关资源。
如果失败次数尚未超过阈值,继续重构连接上下文。
进一步地,所述步骤S6还包括:在消息传输时,通信操作监测单元监测网络协议接口的网络操作是否成功的步骤;当通信操作监测单元监测到网络协议接口的网络操作不成功时,则向文件操作处理层返回操作重试标志;
当底层协议封装层始终返回操作重试标志并超过预定的第一时限,文件操作处理层将操作上下文加入重构队列,重构操作上下文;
当通信操作监测单元监测到网络协议接口的网络操作正常时,则等待应答消息的到来。
进一步地,所述重构操作上下文包括如下步骤:
从通信上下文中选择连接通道;
如果选择到有效连接通道,则通过该通道传输消息;
如果选择到无效通道,判断连接上下文是否在客户端;如果连接上下文在发起方,则将操作上下文加入操作重构队列,等待对应节点的连接通道有效后会激活该操作;如果连接上下文在接收方,将直接返回错误码给文件系统。
如果无通道供选择,将直接返回错误码给文件系统。
进一步地,所述步骤S6还包括:文件操作处理层在消息传输成功后等待应答消息过程中,应答超时监测单元捕获应答消息的步骤,其具体包括如下步骤:
如果成功接收应答消息,则成功返回文件系统层;
如果在预定的一第二时限内未接收到应答消息或者接收消息出错,则激活操作上下文重构单元,将操作上下文加入重构队列,重构操作上下文。
进一步地,所述通道心跳监测单元监测连接通道故障的步骤,包括:
步骤S61a,通道心跳监测单元遍历文件系统初始化时创建的通信上下文的每个连接通道;
步骤S61b,通道心跳监测单元通过当前连接上下文发送icmp消息,并接收应答消息;
步骤S61c,如果发送icmp消息出错,则重新发送消息;如果接收应答消息出错或者接收消息不匹配,则重新发送消息;
步骤S61d,如果重新发送消息的次数超过预定的阈值,则将当前连接上下文挂到失效队列上;
步骤S61e,遍历通信上下文的所有连接通道后,将失效队列上的连接上下文交给连接重构线程进行重构连接上下文。
进一步地,所述步骤S6还包括:在消息传输时,如果网络协议接口返回错误值,则底层协议封装层返回操作重试标志给文件操作处理层。
进一步地,所述步骤S6还包括:在消息传输时,通过网络协议的回调函数感知网络协议层端口的状态变化,如果感知网络协议层端口的状态恶化,则底层协议封装层返回操作重试标志给文件操作处理层。
进一步地,所述步骤S6还包括:接收方验证接收的消息,如果验证的结果为不匹配,则发出接收出错消息;如果验证结果为匹配,则发送应答消息。
进一步地,所述步骤S4中选择连接通道的方法,包括如下步骤:
步骤S62a,通过通信远端文件系统组件的类型和标识号定位连接上下文数组;
步骤S62b,在数组中随机选择一个位置,开始遍历;
步骤S62c,选择第一个遇到的权值最小的连接通道作为当前的传输通道;所述权值为当前通道上传输的数据总量与当前通道的传输能力的比值。
本发明产生的有益技术效果包括:
透明性:本发明的消息传输框架建立在文件系统层之下,分离文件系统遇到的网络故障并进行独立处理,对上层文件系统保持透明,保证了文件系统的独立性,使其能够专注于本身工作。
高效性:本发明的消息传输方法采用了隐式重构高可用方法和通道选择高可用方法,能够及时有效地解决网络分割、连接中断以及性能突降等一系列文件系统的网络故障问题,保障了文件系统的可用性,减少了故障恢复开销和性能损失。
适应性:本发明的消息传输框架和消息传输方法适用于多种网络配置环境下,并且能够在不同类型的网络故障发生时提供可用性保障。
移植性:本发明的消息传输框架建立在底层网络协议之上,通过消息传输层的协议封装层搭建,因而可以方便地移植到各种网络协议上。
本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用性保障,这包括,提供可靠的服务而不出现网络故障,即文件网络传输的可靠性,维护可靠性的开销对系统没有影响;在系统出现网络故障后,能够快速恢复故障而不会导致服务的中断,即文件传输的可修复性,修复后的性能损失占正常性能的比例很小;提供公平的机制保证系统能够公平有效地利用网络资源,即系统网络的负载均衡性。
附图说明
图1是本发明的针对分布式文件系统的高可用消息传输框架结构图;
图2是本发明的针对分布式文件系统的高可用消息传输方法流程图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的针对分布式文件系统的高可用性消息传输框架和消息传输方法进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的针对分布式文件系统的高可用性消息传输框架1,其位于文件系统层10之下、网络协议层20之上,该消息传输框架1包括三个层:
文件系统接口层11,为文件系统层10提供访问接口;
文件操作处理层12,分别与文件系统接口层11和底层协议封装层13交互,处理文件系统层10提交的请求,提交操作给底层协议封装层13;
底层协议封装层13,与网络协议层20通信,将文件操作处理层10提交的操作进行封装后通过网络协议层20发送消息。
本发明提供的在分布式文件系统的消息传输层构建高可用消息传输框架1(HMF,High-availability Message-passing Framework),其保证文件系统网络数据的可用性,并且进行模型推理、系统实现和测试分析。本发明的高可用消息传输框架1把文件系统的网络高可用性实现从文件系统中抽取出来,作为一个单独的模块来实现,弱化它与文件系统其他部分之间的耦合性,使得二者之间仅仅有简单的接口关系,目的是使文件系统的设计更加模块化,并且便于对文件系统的网络可用性进行专门的改进。本发明的HMF在运用于DCFS3(曙光机群文件系统)并行文件系统中时,能为其提供网络数据的高可用性支持。
应用了本发明的消息传输框架1的分布式文件系统的数据流向是从上到下的,即文件操作请求,如元数据访问或数据读写请求,由文件系统层10提交到消息传输框架1,消息传输框架1对这些请求进行处理,之后将需要传输的消息提交给网络协议层20,由网络协议层20负责发送消息。
应用了本发明的消息传输框架1的分布式文件系统的可用性信息流向是自下而上的。文件系统产生网络故障时,故障信息从底层的网络协议层20向上传给消息传输框架1,在该框架通过一系列高可用机制进行容错处理,使得网络故障对上层透明,保证文件系统的可用性。在规定范围内解决不了网络故障,该消息传输框架1可将其向上提交给文件系统层10,由文件系统处理。
为此,如图1所示,所述文件系统接口层11,具体包括:
创建通信上下文接口、创建连接上下文接口、创建操作上下文接口,释放操作上下文接口、释放连接上下文接口、释放通信上下文接口,以及提交操作接口、轮询回调接口等,其中提交操作接口用于文件系统创建操作上下文并将文件系统的操作上下文结构挂到文件操作处理层12的发送队列,轮询回调接口用于接收方从接收队列上取下到达消息的操作上下文结构。
较佳地,如图1所示,所述文件操作处理层12,具体包括:
连接通道选择单元121,用于从通信上下文中选择连接通道;
连接通道重构单元122,用于当连接通道选择单元121选择到无效通道时,重构连接通道;
操作上下文重构单元123,用于将操作上下文加入操作重构队列,并在连接通道有效后,激活该操作。
较佳地,所述文件操作处理层12,还包括:
通道心跳监测单元124,用于监测连接通道,通过连接上下文发送icmp消息,并接收应答消息,当发送icmp消息出错或接收应答消息出错或接收消息不匹配时,重新发送icmp消息,当重发次数超过设定阈值时,将当前连接上下文交给连接通道重构单元122。
较佳地,所述文件操作处理层12,还包括:
应答超时监测单元125,用于当底层协议封装层13始终返回操作重试标志并超过预定的第一时限,或当消息传输之后等待对应的应答消息在预定的第二时限内未到达,则将操作上下文交给所述操作上下文重构单元123。
较佳地,所述底层协议封装层13,具体包括:
通信方式管理单元131,用于执行底层网络操作。具体是,该通信方式管理单元对底层网络协议接口封装,包括创建连接、中断连接、同步或异步发送消息、接收消息等;
通信模型管理单元132,用于为网络操作选择底层网络协议。具体是,该通信模型管理单元指导文件操作层提交的操作选择协议。
较佳地,所述底层协议封装层13,还包括:
通信操作监测单元133,用于检测网络协议接口的网络操作是否成功,如果没有成功,则向文件操作处理层12返回操作重试标志。
文件系统层10提交操作后,该操作对应的操作上下文结构将加入文件操作处理层12的发送队列,并激活处理线程,首先通过连接通道选择单元121获取有效连接通道;接着通过底层协议封装层13的通信模型管理单元132选择相应的底层网络协议;之后调用通信方式管理单元131的接口进行消息传输,传输过程由通信操作监测单元133监测;传输完成后等待应答消息到达,应答超时监测单元125将会捕获应答,如果在预定的第二时限内不能捕获应答,将激活操作上下文重构单元123,它将未完成的操作上下文结构挂到操作重试队列上,依次进行重新提交;同时,通道心跳监测单元124将被激活(其按周期时间执行),探测连接通道的健康程度,如果多次探测末果,则释放连接通道,激活连接上下文重构单元123,将对应的连接上下文结构挂到连接重试队列上,并在预定的次数范围内重试连接。
如图2所示,作为本发明的另一个具体实施方式,一种针对分布式文件系统的高可用性消息传输方法,包括如下步骤:
步骤S1,文件系统层10的组件通过文件系统接口层11提供的创建通信上下文接口创建通信上下文。所述组件包括客户端、数据服务器或元数据服务器。
步骤S2,文件系统层10的组件通过文件系统接口层11提供的创建连接上下文接口创建连接上下文,当前组件与多个远端组件间的连接上下文信息都记录在所述通信上下文中;
步骤S3,文件系统层10通过文件系统接口层11提供的提交操作接口创建操作上下文,其中包括需要传输的消息,然后将操作上下文挂到文件操作处理层12的发送队列;
步骤S4,文件操作处理层12从发送队列上取下操作上下文并通过连接通道选择单元121选择连接通道;
步骤S5,文件操作处理层12通过底层协议封装层13的通信模型管理单元132选择相应的网络协议;
步骤S6,文件操作处理层12调用所述网络协议的接口进行消息传输。
较佳地,所述步骤S6中,还包括:在消息传输时,文件操作处理层12的通道心跳监测单元124监测连接通道故障的步骤;如果通道心跳监测单元124监测到连接通道故障,则将连接上下文加入连接重构队列,进行连接上下文的重构。
较佳地,所述连接上下文重构方法,包括如下步骤:
步骤S601a,判断连接上下文在连接发起方(客户端)还是连接接收方(服务器);
a)如果连接上下文在发起方,则重新连接通信对方端点,即重构连接上下文;
b)如果连接上下文在接收方,将连接上下文从通信上下文中删除,释放相关资源。
步骤S601b,判断发起方的连接上下文是否重构成功;
a)如果连接上下文重构成功,则激活操作重构队列中对应该连接端点的操作上下文;
b)如果连接上下文重构失败,再次重构;
步骤S601c,判断重构连接的失败次数是否超过预定的阈值;
a)如果失败次数超过阈值,将连接上下文从通信上下文中删除,释放相关资源。
b)如果失败次数尚未超过阈值,继续重构连接上下文。如果重构成功,则跳转到步骤S601b。
较佳地,所述步骤S6中,还包括:在消息传输时,底层协议封装层13的通信操作监测单元133监测网络协议接口的网络操作是否成功的步骤;当通信操作监测单元133监测到网络协议接口的网络操作不成功时,则向文件操作处理层12返回操作重试标志;当底层协议封装层13始终返回操作重试标志并超过预定的第一时限,文件操作处理层12会将操作上下文加入重构队列,重构操作上下文;当通信操作监测单元133监测到网络协议接口的网络操作正常时,则等待应答消息的到来。
较佳地,所述重构操作上下文方法,包括如下步骤:
步骤S602a,从通信上下文中选择连接通道;
a)如果选择到有效连接通道,则通过该通道传输消息;
b)如果选择到无效通道,即通道存在,判断连接上下文是否在客户端;如果连接上下文在发起方,则将操作上下文加入操作重构队列,等待对应节点的连接通道有效后会激活该操作;如果连接上下文在接收方,将直接返回错误码给文件系统。
c)如果无通道供选择,即通道不存在,将直接返回错误码给文件系统。
较佳地,所述步骤S6,还包括:文件操作处理层12在消息传输成功后等待应答消息过程中,应答超时监测单元125捕获应答消息的步骤,其具体包括如下步骤:
如果成功接收应答消息,则成功返回文件系统层10;
如果在预定的一第二时限内未接收到应答消息或者接收消息出错,则激活操作上下文重构单元123,将操作上下文加入重构队列,重构操作上下文。
较佳地,所述通道心跳监测单元124监测连接通道故障的步骤,包括:
步骤S61a,通道心跳监测单元124遍历文件系统初始化时创建的通信上下文的每个连接通道。该通道心跳监测单元124运行在每个网络节点上;
步骤S61b,通道心跳监测单元124通过当前连接上下文发送icmp消息,并接收应答消息;
步骤S61c,如果发送icmp消息出错,则重新发送;如果接收应答消息出错或者接收消息不匹配,则重新发送消息;
步骤S61d,如果重新发送次数超过预定的阈值,则将当前连接上下文挂到失效队列上;
步骤S61e,遍历通信上下文的所有连接通道后,将失效队列上的连接上下文交给连接重构线程进行连接上下文重构。
较佳地,所述步骤S6还包括:在消息传输时,如果网络协议接口返回错误值,则底层协议封装层13返回操作重试标志给文件操作处理层12。
较佳地,所述步骤S6还包括:在消息传输时,通过网络协议的回调函数感知网络协议层端口的状态变化,如果感知网络协议层端口的状态恶化,则底层协议封装层13返回操作重试标志给文件操作处理层12。
较佳地,所述步骤S6还包括:接收方验证接收的消息,如果验证的结果为不匹配,则发出接收出错消息;如果验证结果为匹配,则发送应答消息。
较佳地,上述步骤S4中选择连接通道的方法,包括如下步骤:
步骤S62a,通过远端文件系统组件的类型和标识号定位连接上下文数组;
步骤S62b,在数组中随机选择一个位置,开始遍历;
步骤S62c,选择第一个遇到的权值最小的连接通道作为当前的传输通道。最小权值取决于负载和能力,即Minimum(∑load/capability)。∑Load表示当前通道上传输的数据总量,用字节数来衡量;而capability表示当前通道的传输能力,按照网络自身的传输带宽来衡量。
在配备多个网络设备的情况下,上述选择连接通道的方法可以在无故障的情况下高效利用资源,而且解决了文件系统中的性能突降问题。
通过上面对本发明的实施方式的详细描述,可以看出,本发明产生的有益技术效果包括:
透明性:本发明的消息传输框架建立在文件系统层之下,分离文件系统遇到的网络故障并进行独立处理,对上层文件系统保持透明,保证了文件系统的独立性,使其能够专注于本身工作。
高效性:本发明的消息传输方法采用了隐式重构高可用方法和通道选择高可用方法,能够及时有效地解决网络分割、连接中断以及性能突降等一系列文件系统的网络故障问题,保障了文件系统的可用性,减少了故障恢复开销和性能损失。
适应性:本发明的消息传输框架和消息传输方法适用于多种网络配置环境下,并且能够在不同类型的网络故障发生时提供可用性保障。
移植性:本发明的消息传输框架建立在底层网络协议之上,通过消息传输层的协议封装层搭建,因而可以方便地移植到各种网络协议上。
本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用性保障,这包括,提供可靠的服务而不出现网络故障,即文件网络传输的可靠性,维护可靠性的开销对系统没有影响;在系统出现网络故障后,能够快速恢复故障而不会导致服务的中断,即文件传输的可修复性,修复后的性能损失占正常性能的比例很小;提供公平的机制保证系统能够公平有效地利用网络资源,即系统网络的负载均衡性。
以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。

Claims (14)

1.一种具有消息传输框架的分布式文件系统,该消息传输框架位于文件系统层之下、网络协议层之上;其特征在于,该消息传输框架包括:
文件系统接口层,其为文件系统层提供访问接口;
文件操作处理层,其分别与文件系统接口层和底层协议封装层交互,用于处理文件系统层提交的请求,提交操作给底层协议封装层;
底层协议封装层,其与网络协议层通信,将文件操作处理层提交的操作进行封装后通过网络协议层发送消息。
所述文件操作处理层包括:
连接通道选择单元,用于从通信上下文中选择连接通道;
连接通道重构单元,用于当连接通道选择单元选择到无效通道时,重构连接通道;
操作上下文重构单元,用于将操作上下文加入操作重构队列,并在连接通道有效后,激活该操作;
所述文件操作处理层还包括:
通道心跳监测单元,用于监测连接通道,通过连接上下文发送icmp消息,并接收应答消息,当发送icmp消息出错或接收应答消息出错或接收消息不匹配时,重新发送icmp消息,当重发次数超过设定阈值时,将当前连接上下文交给连接通道重构单元;
所述底层协议封装层还包括:
通信操作监测单元,用于检测网络协议接口的网络操作是否成功,如果没有成功,则向文件操作处理层返回操作重试标志,传输过程由通信操作监测单元监测;传输完成后等待应答消息到达,应答超时监测单元将会捕获应答,如果在预定的第二时限内不能捕获应答,将激活操作上下文重构单元,它将未完成的操作上下文结构挂到操作重试队列上。
2.根据权利要求1所述的具有消息传输框架的分布式文件系统,其特征在于,所述文件系统接口层包括:
创建通信上下文接口、创建连接上下文接口、创建操作上下文接口,释放操作上下文接口、释放连接上下文接口、释放通信上下文接口,以及提交操作接口、轮询回调接口,其中提交操作接口用于文件系统创建操作上下文并将操作上下文挂到文件操作处理层的发送队列,轮询回调接口用于接收方从接收队列上取下到达消息的操作上下文结构。
3.根据权利要求1所述的具有消息传输框架的分布式文件系统,其特征在于,所述文件操作处理层还包括:
应答超时监测单元,用于当底层协议封装层始终返回操作重试标志并超过预定的第一时限,或当消息传输之后等待对应的应答消息在预定的第二时限内未到达,则将操作上下文交给所述操作上下文重构单元。
4.根据权利要求1所述的具有消息传输框架的分布式文件系统,其特征在于,所述底层协议封装层包括:
通信模型管理单元,用于为网络操作选择底层网络协议;
通信方式管理单元,用于执行底层网络操作。
5.一种针对分布式文件系统的高可用性消息传输方法,其特征在于,包括如下步骤:
步骤S1,文件系统层通过文件系统接口层提供的创建通信上下文接口创建通信上下文;
步骤S2,文件系统层通过创建连接上下文接口创建连接上下文,当前组件与多个远端组件间的连接上下文信息都记录在所述通信上下文中;
步骤S3,文件系统层通过文件系统接口层提供的提交操作接口创建操作上下文,其中包括需要传输的消息,然后将操作上下文挂到文件操作处理层的发送队列;
步骤S4,文件操作处理层从发送队列上取下操作上下文并通过连接通道选择单元选择连接通道;
步骤S5,文件操作处理层通过底层协议封装层的通信模型管理单元选择相应的网络协议;
步骤S6,文件操作处理层调用所述网络协议的接口进行消息传输;
其中所述底层协议封装层还包括通信心跳检测单元;
所述步骤S6还包括:在消息传输时,通道心跳监测单元监测连接通道故障的步骤;如果通道心跳监测单元监测到连接通道故障,则将连接上下文加入连接重构队列,进行重构连接上下文;
其中所述底层协议封装层还包括通信操作监测单元,所述步骤S6还包括:在消息传输时,通信操作监测单元监测网络协议接口的网络操作是否成功的步骤;当通信操作监测单元监测到网络协议接口的网络操作不成功时,则向文件操作处理层返回操作重试标志;
当底层协议封装层始终返回操作重试标志并超过预定的第一时限,文件操作处理层将操作上下文加入重构队列,重构操作上下文;
所述重构操作上下文方法,包括如下步骤:
步骤S602a,从通信上下文中选择连接通道;如果选择到有效连接通道,则通过该通道传输消息;如果选择到无效通道,即通道存在,判断连接上下文是否在客户端;如果连接上下文在发起方,则将操作上下文加入操作重构队列,等待对应节点的连接通道有效后会激活该操作;如果连接上下文在接收方,将直接返回错误码给文件系统;如果无通道供选择,即通道不存在,将直接返回错误码给文件系统;
其中所述文件操作处理层包括连接通道选择单元,用于从通信上下文中选择连接通道。
6.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述连接上下文重构方法,包括如下步骤:
步骤S601a,判断连接上下文在连接发起方还是连接接收方;
如果连接上下文在发起方,则重新连接通信对方端点,即重构连接上下文;
如果连接上下文在接收方,将连接上下文从通信上下文中删除,释放相关资源。
步骤S601b,判断发起方的连接上下文是否重构成功;
如果连接上下文重构成功,则激活操作重构队列中对应该连接端点的操作上下文;
如果连接上下文重构失败,则再次重构;
步骤S601c,判断重构连接的失败次数是否超过预定的阈值;
如果失败次数超过阈值,将连接上下文从通信上下文中删除,释放相关资源。
如果失败次数尚未超过阈值,继续重构连接上下文。
7.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S6还包括:
当通信操作监测单元监测到网络协议接口的网络操作正常时,则等待应答消息的到来。
8.根据权利要求7所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述重构操作上下文包括如下步骤:
从通信上下文中选择连接通道;
如果选择到有效连接通道,则通过该通道传输消息;
如果选择到无效通道,判断连接上下文是否在客户端;如果连接上下文在发起方,则将操作上下文加入操作重构队列,等待对应节点的连接通道有效后会激活该操作;如果连接上下文在接收方,将直接返回错误码给文件系统。
如果无通道供选择,将直接返回错误码给文件系统。
9.根据权利要求5至8任一项所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S6还包括:文件操作处理层在消息传输成功后等待应答消息过程中,应答超时监测单元捕获应答消息的步骤,其具体包括如下步骤:
如果成功接收应答消息,则成功返回文件系统层;
如果在预定的一第二时限内未接收到应答消息或者接收消息出错,则激活操作上下文重构单元,将操作上下文加入重构队列,重构操作上下文。
10.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述通道心跳监测单元监测连接通道故障的步骤,包括:
步骤S61a,通道心跳监测单元遍历文件系统初始化时创建的通信上下文的每个连接通道;
步骤S61b,通道心跳监测单元通过当前连接上下文发送icmp消息,并接收应答消息;
步骤S61c,如果发送icmp消息出错,则重新发送消息;如果接收应答消息出错或者接收消息不匹配,则重新发送消息;
步骤S61d,如果重新发送消息的次数超过预定的阈值,则将当前连接上下文挂到失效队列上;
步骤S61e,遍历通信上下文的所有连接通道后,将失效队列上的连接上下文交给连接重构线程进行重构连接上下文。
11.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S6还包括:在消息传输时,如果网络协议接口返回错误值,则底层协议封装层返回操作重试标志给文件操作处理层。
12.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S6还包括:在消息传输时,通过网络协议的回调函数感知网络协议层端口的状态变化,如果感知网络协议层端口的状态恶化,则底层协议封装层返回操作重试标志给文件操作处理层。
13.根据权利要求5、11或12所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S6还包括:接收方验证接收的消息,如果验证的结果为不匹配,则发出接收出错消息;如果验证结果为匹配,则发送应答消息。
14.根据权利要求5所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述步骤S4中选择连接通道的方法,包括如下步骤:
步骤S62a,通过通信远端文件系统组件的类型和标识号定位连接上下文数组;
步骤S62b,在数组中随机选择一个位置,开始遍历;
步骤S62c,选择第一个遇到的权值最小的连接通道作为当前的传输通道;所述权值为当前通道上传输的数据总量与当前通道的传输能力的比值。
CN 200810247441 2008-12-31 2008-12-31 针对分布式文件系统的高可用消息传输框架和方法 Active CN101459694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810247441 CN101459694B (zh) 2008-12-31 2008-12-31 针对分布式文件系统的高可用消息传输框架和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810247441 CN101459694B (zh) 2008-12-31 2008-12-31 针对分布式文件系统的高可用消息传输框架和方法

Publications (2)

Publication Number Publication Date
CN101459694A CN101459694A (zh) 2009-06-17
CN101459694B true CN101459694B (zh) 2012-12-05

Family

ID=40770318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810247441 Active CN101459694B (zh) 2008-12-31 2008-12-31 针对分布式文件系统的高可用消息传输框架和方法

Country Status (1)

Country Link
CN (1) CN101459694B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404386A (zh) * 2012-01-09 2012-04-04 无锡城市云计算中心有限公司 一种保证分布式文件系统元数据服务器组的服务高可靠的方法
CN104079398B (zh) * 2013-03-28 2019-04-12 腾讯科技(深圳)有限公司 一种数据通信方法、装置及系统
CN105099760B (zh) * 2015-06-25 2019-01-08 走遍世界(北京)信息技术有限公司 信道故障的预警方法及装置
CN105718589B (zh) * 2016-01-26 2020-01-17 华为技术有限公司 访问文件的方法和装置
CN107766168B (zh) * 2017-10-25 2021-02-02 上海联影医疗科技股份有限公司 一种数据归档方法、装置及终端
CN109474688B (zh) * 2018-11-27 2021-05-14 北京微播视界科技有限公司 即时通信网络请求消息的发送方法、装置、设备和介质
CN112787872B (zh) * 2021-03-04 2023-04-07 中国航空工业集团公司西安航空计算技术研究所 一种分布式处理系统网络配置及重构方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423435A (zh) * 2001-12-05 2003-06-11 华为技术有限公司 高速下行数据包接入系统对不同服务质量业务的支持方法
CN1760859A (zh) * 2005-11-03 2006-04-19 浙江大学 嵌入式移动数据库的节能存储方法
CN1968398A (zh) * 2005-11-16 2007-05-23 中兴通讯股份有限公司 一种iptv与流媒体设备的接口适配方法
CN1980243A (zh) * 2005-10-28 2007-06-13 埃森哲全球服务有限公司 用于支持电信客户服务请求的服务代理集成层
CN101196832A (zh) * 2007-12-29 2008-06-11 北京航空航天大学 一种面向照明异构设备的资源代理器
CN101237415A (zh) * 2008-02-22 2008-08-06 浙江大学 一种实现arp协议ip核的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423435A (zh) * 2001-12-05 2003-06-11 华为技术有限公司 高速下行数据包接入系统对不同服务质量业务的支持方法
CN1980243A (zh) * 2005-10-28 2007-06-13 埃森哲全球服务有限公司 用于支持电信客户服务请求的服务代理集成层
CN1760859A (zh) * 2005-11-03 2006-04-19 浙江大学 嵌入式移动数据库的节能存储方法
CN1968398A (zh) * 2005-11-16 2007-05-23 中兴通讯股份有限公司 一种iptv与流媒体设备的接口适配方法
CN101196832A (zh) * 2007-12-29 2008-06-11 北京航空航天大学 一种面向照明异构设备的资源代理器
CN101237415A (zh) * 2008-02-22 2008-08-06 浙江大学 一种实现arp协议ip核的方法

Also Published As

Publication number Publication date
CN101459694A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
CN101459694B (zh) 针对分布式文件系统的高可用消息传输框架和方法
US7526549B2 (en) Cluster data port services for clustered computer system
Kimbleton et al. Computer communication networks: Approaches, objectives, and performance considerations
US8892936B2 (en) Cluster wide consistent detection of interconnect failures
CN101605092A (zh) 一种基于内容的负载均衡系统
CN100440795C (zh) 一种系统日志实现方法和装置
CN108040034A (zh) 分布式实时通信中间件
CN102880475A (zh) 计算机软件系统中基于云计算的实时事件处理系统及方法
CN110297801A (zh) 基于容错fpga的事务系统的正好一次事务语义
CN102119510A (zh) 一种多路径网络
CN101416174A (zh) 无线网络上的会话持续
CN1195813A (zh) 由分布式计算机系统的一个硬件元件报告错误的系统
CN107729190B (zh) 一种io路径故障转移处理方法和系统
CN103729280A (zh) 一种虚拟机高可用机制
CN102412990B (zh) 具有集中管理和实时传输功能遥感卫星原始数据记录系统
CN101567861B (zh) 异构应用系统之间的数据同步方法及应用系统
CN103957155A (zh) 报文传输方法、装置及互联接口
CN102368711B (zh) 一种面向并行文件系统的通信系统
CN102088490A (zh) 数据存储方法、设备和系统
CN108156225A (zh) 基于容器云平台的微应用监控系统和方法
CN104618466A (zh) 基于消息传递的负载均衡和过负荷控制系统及其控制方法
JPH10326260A (ja) 分散コンピュータ・システムのハードウェア要素によりエラーを報告する方法
CN103731291A (zh) 一种网络服务器池系统数据传输结构及其程序开发方法
CN103929455A (zh) 包含网络存储设备的异步文件传输系统及其传输方法
CN101151845B (zh) 多链路帧中继系统物理重定位链路自动再同步方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180823

Address after: 100044 B sixteen, No. 22 building, South Road, Haidian District, Beijing.

Patentee after: Guoxin electronic bill Platform Information Service Co., Ltd.

Address before: 100080 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences