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

文档序号:7929952阅读:109来源:国知局
专利名称:针对分布式文件系统的高可用消息传输框架和方法
技术领域
本发明总体上涉及分布式文件系统的消息传输框架及消息传输方法,特别 涉及在分布式文件系统的消息传输层面实现高可用机制来提高文件数据网络 传输的可用性,从而提升分布式文件系统整体可用性的消息传输框架和方法。
背景技术
机群系统以其可扩展性好、性能价格比高、高可用性强、可继承现有软硬 件资源和开发周期短、可编程性好等特点,目前已成为超级服务器的主流体系
结构。机群系统自上世纪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,选择第一个遇到的权值最小的连接通道作为当前的传输通道; 所述权值为当前通道上传输的数据总量与当前通道的传输能力的比值。
ii本发明产生的有益技术效果包括
透明性本发明的消息传输框架建立在文件系统层之下,分离文件系统遇 到的网络故障并进行独立处理,对上层文件系统保持透明,保证了文件系统的 独立性,使其能够专注于本身工作。
高效性本发明的消息传输方法采用了隐式重构高可用方法和通道选择高 可用方法,能够及时有效地解决网络分割、连接中断以及性能突降等一系列文 件系统的网络故障问题,保障了文件系统的可用性,减少了故障恢复开销和性 能损失。
适应性本发明的消息传输框架和消息传输方法适用于多种网络配置环境 下,并且能够在不同类型的网络故障发生时提供可用性保障。
移植性本发明的消息传输框架建立在底层网络协议之上,通过消息传输 层的协议封装层搭建,因而可以方便地移植到各种网络协议上。
本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用 性保障,这包括,提供可靠的服务而不出现网络故障,即文件网络传输的可靠 性,维护可靠性的开销对系统没有影响;在系统出现网络故障后,能够快速恢 复故障而不会导致服务的中断,即文件传输的可修复性,修复后的性能损失占 正常性能的比例很小;提供公平的机制保证系统能够公平有效地利用网络资 源,即系统网络的负载均衡性。


图1是本发明的针对分布式文件系统的高可用消息传输框架结构图; 图2是本发明的针对分布式文件系统的高可用消息传输方法流程具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的针对分布式文件系统的高可用性消息传输框架和消息传输方 法进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明, 并不用于限定本发明。
如图1所示,本发明的针对分布式文件系统的高可用性消息传输框架1,其位于文件系统层10之下、网络协议层20之上,该消息传输框架1包括三个 层
文件系统接口层ll,为文件系统层10提供访问接口;
文件操作处理层12,分别与文件系统接口层11和底层协议封装层13交 互,处理文件系统层10提交的请求,提交操作给底层协议封装层13;
底层协议封装层13,与网络协议层20通信,将文件操作处理层10提交 的操作进行封装后通过网络协议层20发送消息。
本发明提供的在分布式文件系统的消息传输层构建高可用消息传输框架
1 (HMF, High-availability Message-passing Framework),其保证文件系统网络 数据的可用性,并且进行模型推理、系统实现和测试分析。本发明的高可用消 息传输框架1把文件系统的网络高可用性实现从文件系统中抽取出来,作为一 个单独的模块来实现,弱化它与文件系统其他部分之间的耦合性,使得二者之
间仅仅有简单的接口关系,目的是使文件系统的设计更加模块化,并且便于对 文件系统的网络可用性进行专门的改进。本发明的HMF在运用于DCFS3 (曙 光机群文件系统)并行文件系统中时,能为其提供网络数据的高可用性支持。
应用了本发明的消息传输框架1的分布式文件系统的数据流向是从上到 下的,即文件操作请求,如元数据访问或数据读写请求,由文件系统层10提 交到消息传输框架l,消息传输框架l对这些请求进行处理,之后将需要传输 的消息提交给网络协议层20,由网络协议层20负责发送消息。
应用了本发明的消息传输框架1的分布式文件系统的可用性信息流向是 自下而上的。文件系统产生网络故障时,故障信息从底层的网络协议层20向 上传给消息传输框架l,在该框架通过一系列高可用机制进行容错处理,使得 网络故障对上层透明,保证文件系统的可用性。在规定范围内解决不了网络故
障,该消息传输框架1可将其向上提交给文件系统层10,由文件系统处理。 为此,如图1所示,所述文件系统接口层ll,具体包括 创建通信上下文接口、创建连接上下文接口、创建操作上下文接口,释放 操作上下文接口、释放连接上下文接口、释放通信上下文接口,以及提交操作 接口、轮询回调接口等,其中提交操作接口用于文件系统创建操作上下文并将 文件系统的操作上下文结构挂到文件操作处理层12的发送队列,轮询回调接 口用于接收方从接收队列上取下到达消息的操作上下文结构。 较佳地,如图1所示,所述文件操作处理层12,具体包括连接通道选择单元121,用于从通信上下文中选择连接通道; 连接通道重构单元122,用于当连接通道选择单元121选择到无效通道时, 重构连接通道;
操作上下文重构单元123,用于将操作上下文加入操作重构队列,并在连 接通道有效后,激活该操作。
较佳地,所述文件操作处理层12,还包括
通道心跳监测单元124,用于监测连接通道,通过连接上下文发送ic卿 消息,并接收应答消息,当发送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所示,作为本发明的另一个具体实施方式
, 一种针对分布式文件系 统的高可用性消息传输方法,包括如下步骤
步骤Sl,文件系统层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捕获应答消息的步骤,其具体包括 如下步骤
16如果成功接收应答消息,则成功返回文件系统层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 (Eload/c邻ability)。 ELoad表示 当前通道上传输的数据总量,用字节数来衡量;而capability表示当前通道的传输能力,按照网络自身的传输带宽来衡量。
在配备多个网络设备的情况下,上述选择连接通道的方法可以在无故障的 情况下高效利用资源,而且解决了文件系统中的性能突降问题。
通过上面对本发明的实施方式的详细描述,可以看出,本发明产生的有益 技术效果包括
透明性本发明的消息传输框架建立在文件系统层之下,分离文件系统遇 到的网络故障并进行独立处理,对上层文件系统保持透明,保证了文件系统的 独立性,使其能够专注于本身工作。
高效性本发明的消息传输方法采用了隐式重构高可用方法和通道选择高 可用方法,能够及时有效地解决网络分割、连接中断以及性能突降等一系列文 件系统的网络故障问题,保障了文件系统的可用性,减少了故障恢复开销和性 能损失。
适应性本发明的消息传输框架和消息传输方法适用于多种网络配置环境 下,并且能够在不同类型的网络故障发生时提供可用性保障。
移植性本发明的消息传输框架建立在底层网络协议之上,通过消息传输 层的协议封装层搭建,因而可以方便地移植到各种网络协议上。
本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用 性保障,这包括,提供可靠的服务而不出现网络故障,即文件网络传输的可靠 性,维护可靠性的开销对系统没有影响;在系统出现网络故障后,能够快速恢 复故障而不会导致服务的中断,即文件传输的可修复性,修复后的性能损失占 正常性能的比例很小;提供公平的机制保证系统能够公平有效地利用网络资 源,即系统网络的负载均衡性。
以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围内。
权利要求
1、一种针对分布式文件系统的高可用性消息传输框架,其位于文件系统层之下、网络协议层之上;其特征在于,该消息传输框架包括文件系统接口层,其为文件系统层提供访问接口;文件操作处理层,其分别与文件系统接口层和底层协议封装层交互,用于处理文件系统层提交的请求,提交操作给底层协议封装层;底层协议封装层,其与网络协议层通信,将文件操作处理层提交的操作进行封装后通过网络协议层发送消息。
2、 根据权利要求1所述的针对分布式文件系统的高可用性消息传输框架, 其特征在于,所述文件系统接口层包括创建通信上下文接口、创建连接上下文接口、创建操作上下文接口,释放 操作上下文接口、释放连接上下文接口、释放通信上下文接口,以及提交操作 接口、轮询回调接口等,其中提交操作接口用于文件系统创建操作上下文并将 操作上下文挂到文件操作处理层的发送队列,轮询回调接口用于接收方从接收 队列上取下到达消息的操作上下文结构。
3、 根据权利要求1所述的针对分布式文件系统的高可用性消息传输框架, 其特征在于,所述文件操作处理层包括连接通道选择单元,用于从通信上下文中选择连接通道; 连接通道重构单元,用于当连接通道选择单元选择到无效通道时,重构连 接通道;操作上下文重构单元,用于将操作上下文加入操作重构队列,并在连接通 道有效后,激活该操作。
4、 根据权利要求3所述的针对分布式文件系统的高可用性消息传输框架, 其特征在于,所述文件操作处理层还包括通道心跳监测单元,用于监测连接通道,通过连接上下文发送icmp消息, 并接收应答消息,当发送icmp消息出错或接收应答消息出错或接收消息不匹 配时,重新发送icmp消息,当重发次数超过设定阈值时,将当前连接上下文 交给连接通道重构单元。
5、 根据权利要求3或4所述的针对分布式文件系统的高可用性消息传输框架,其特征在于,所述文件操作处理层还包括应答超时监测单元,用于当底层协议封装层始终返回操作重试标志并超过 预定的第一时限,或当消息传输之后等待对应的应答消息在预定的第二时限内 未到达,则将操作上下文交给所述操作上下文重构单元。
6、 根据权利要求1所述的针对分布式文件系统的高可用性消息传输框架, 其特征在于,所述底层协议封装层包括通信模型管理单元,用于为网络操作选择底层网络协议; 通信方式管理单元,用于执行底层网络操作。
7、 根据权利要求6所述的针对分布式文件系统的高可用性消息传输框架, 其特征在于,所述底层协议封装层还包括通信操作监测单元,用于检测网络协议接口的网络操作是否成功,如果没 有成功,则向文件操作处理层返回操作重试标志。
8、 一种针对分布式文件系统的高可用性消息传输方法,其特征在于,包 括如下步骤步骤Sl,文件系统层通过创建通信上下文接口创建通信上下文;步骤S2,文件系统层通过创建连接上下文接口创建连接上下文,当前组件与多个远端组件间的连接上下文信息都记录在所述通信上下文中;步骤S3,文件系统层通过提交操作接口创建操作上下文,其中包括需要传输的消息,然后将操作上下文挂到文件操作处理层的发送队列;步骤S4,文件操作处理层从发送队列上取下操作上下文并通过连接通道选择单元选择连接通道;步骤S5,文件操作处理层通过通信模型管理单元选择相应的网络协议; 步骤S6,文件操作处理层调用所述网络协议的接口进行消息传输。
9、 根据权利要求8所述的针对分布式文件系统的高可用性消息传输方法, 其特征在于,所述步骤S6还包括在消息传输时,通道心跳监测单元监测连 接通道故障的步骤;如果通道心跳监测单元监测到连接通道故障,则将连接上 下文加入连接重构队列,进行重构连接上下文。
10、 根据权利要求9所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述连接上下文重构方法,包括如下步骤步骤S601a,判断连接上下文在连接发起方还是连接接收方;如果连接上下文在发起方,则重新连接通信对方端点,即重构连接上下文;如果连接上下文在接收方,将连接上下文从通信上下文中删除,释放 相关资源。步骤S601b,判断发起方的连接上下文是否重构成功;如果连接上下文重构成功,则激活操作重构队列中对应该连接端点的 操作上下文;如果连接上下文重构失败,则再次重构; 步骤S601c,判断重构连接的失败次数是否超过预定的阈值;如果失败次数超过阈值,将连接上下文从通信上下文中删除,释放相关资源。如果失败次数尚未超过阈值,继续重构连接上下文。
11、 根据权利要求8所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述步骤S6还包括在消息传输时,通信操作监测单元监 测网络协议接口的网络操作是否成功的步骤;当通信操作监测单元监测到网络 协议接口的网络操作不成功时,则向文件操作处理层返回操作重试标志;当底层协议封装层始终返回操作重试标志并超过预定的第一时限,文件操 作处理层将操作上下文加入重构队列,重构操作上下文;当通信操作监测单元监测到网络协议接口的网络操作正常时,则等待应答 消息的到来。
12、 根据权利要求11所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述重构操作上下文包括如下步骤从通信上下文中选择连接通道;如果选择到有效连接通道,则通过该通道传输消息;如果选择到无效通道,判断连接上下文是否在客户端;如果连接上下文在 发起方,则将操作上下文加入操作重构队列,等待对应节点的连接通道有效后 会激活该操作;如果连接上下文在接收方,将直接返回错误码给文件系统。如果无通道供选择,将直接返回错误码给文件系统。
13、 根据权利要求8至12任一项所述的针对分布式文件系统的高可用性 消息传输方法,其特征在于,所述步骤S6还包括文件操作处理层在消息传 输成功后等待应答消息过程中,应答超时监测单元捕获应答消息的步骤,其具体包括如下步骤如果成功接收应答消息,则成功返回文件系统层;如果在预定的一第二时限内未接收到应答消息或者接收消息出错,则激活 操作上下文重构单元,将操作上下文加入重构队列,重构操作上下文。
14、 根据权利要求9所述的针对分布式文件系统的高可用性消息传输方法,其特征在于,所述通道心跳监测单元监测连接通道故障的步骤,包括步骤S61a,通道心跳监测单元遍历文件系统初始化时创建的通信上下文 的每个连接通道;步骤S61b,通道心跳监测单元通过当前连接上下文发送ic即消息,并接 收应答消息;步骤S61c,如果发送icmp消息出错,则重新发送消息;如果接收应答消 息出错或者接收消息不匹配,则重新发送消息;步骤S61d,如果重新发送消息的次数超过预定的阈值,则将当前连接上 下文挂到失效队列上;步骤S61e,遍历通信上下文的所有连接通道后,将失效队列上的连接上 下文交给连接重构线程进行重构连接上下文。
15、 根据权利要求8所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述步骤S6还包括在消息传输时,如果网络协议接口返 回错误值,则底层协议封装层返回操作重试标志给文件操作处理层。
16、 根据权利要求8所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述步骤S6还包括在消息传输时,通过网络协议的回调 函数感知网络协议层端口的状态变化,如果感知网络协议层端口的状态恶化, 则底层协议封装层返回操作重试标志给文件操作处理层。
17、 根据权利要求8、 15或16所述的针对分布式文件系统的高可用性消 息传输方法,其特征在于,所述步骤S6还包括接收方验证接收的消息,如 果验证的结果为不匹配,则发出接收出错消息;如果验证结果为匹配,则发送 应答消息。
18、 根据权利要求8所述的针对分布式文件系统的高可用性消息传输方 法,其特征在于,所述步骤S4中选择连接通道的方法,包括如下步骤步骤S62a,通过通信远端文件系统组件的类型和标识号定位连接上下文数组;步骤S62b,在数组中随机选择一个位置,开始遍历;步骤S62c,选择第一个遇到的权值最小的连接通道作为当前的传输通道; 所述权值为当前通道上传输的数据总量与当前通道的传输能力的比值。
全文摘要
本发明提供一种针对分布式文件系统的高可用消息传输框架和方法。该消息传输框架包括文件系统接口层,其为文件系统层提供访问接口;文件操作处理层,其分别与文件系统接口层和底层协议封装层交互,处理文件系统层提交的请求,提交操作给底层协议封装层;底层协议封装层,其与网络协议层通信,将文件操作处理层提交的操作进行封装后通过网络协议层发送消息。本发明可以为配备一套网络或多套网络的分布式文件系统提供网络可用性保障。
文档编号H04L29/08GK101459694SQ20081024744
公开日2009年6月17日 申请日期2008年12月31日 优先权日2008年12月31日
发明者唐荣锋, 丹 孟, 栋 杨, 劲 熊 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1