一种DLM的锁信息传输方法以及相关装置与流程

文档序号:22478177发布日期:2020-10-09 22:22阅读:173来源:国知局
一种DLM的锁信息传输方法以及相关装置与流程

本申请涉及分布式集群技术领域,特别涉及一种dlm的锁信息传输方法、分布式节点、计算机设备以及计算机可读存储介质。



背景技术:

随着信息技术的不断发展,出现了大量的分布式计算服务。其中,分布式集群文件系统可将san(storageareanetwork存储区域网络)提供的lun(logicalunitnumber逻辑单元号)供多个服务器并发访问,在虚拟化领域集群文件系统被用作共享的文件存储池,用于保存虚拟磁盘、配置以及用户文件等。集群文件系统的关键特点在于能够提供文件并发访问控制,完整性保证,使得服务器像访问本地文件系统一样而无须考虑数据并发的问题。分布式锁管理器(dlmdistributedlockmanager)是实现文件访问控制的关键,是构成集群文件系统的关键组件。dlm主要解决了集群结点之间数据访问的一致性问题。通过分布式锁管理器提供的锁接口,保证了对文件的一致访问,保证了数据读写的完整性。

现有技术中,在dlm工作过程中,需要依赖于网络进行节点间通信以同步锁信息,包括锁信息查询、获取远程锁、锁降级等操作,因此传输网络的可靠性直接影响了dlm的效率与稳定性。但网络的稳定性较差,网络的波动、延迟都会影响到dlm消息的传输,直接影响到了集群文件系统的工作,乃至引发集群发生“脑裂”。因此整个系统的稳定性依赖于tcp/ip(transmissioncontrolprotocol/internetprotocol传输控制协议/网际协议)网络的可靠性,而在服务器虚拟化场景中,tcp/ip网络的可靠性相对于存储来说是较低的,导致系统的整体可靠性降低。

因此,如何提高分布式锁信息的传输可靠性是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种dlm的锁信息传输方法、分布式节点、计算机设备以及计算机可读存储介质,通过先进行tcp/ip网络传输,当出现故障后无法短时间内修复时采用磁盘通信的方式传输锁信息,避免因网络问题导致的传输失败,提高了锁信息的传输可靠性。

为解决上述技术问题,本申请提供一种dlm的锁信息传输方法,包括:

节点通过tcp/ip网络对锁信息进行传输;

当出现网络故障时,判断在第一预设时间段内所述网络是否恢复成功;

若是,则采用恢复成功的tcp/ip网络将所述锁信息进行传输;

若否,则采用预设的共享通信区域按照磁盘通信方式将所述锁信息进行传输。

可选的,还包括:

查询网络连接状态;

当所述网络连接状态为网络恢复状态时,采用恢复成功的tcp/ip网络将所述锁信息进行传输。

可选的,还包括:

向服务器发送网络故障消息。

可选的,采用预设的共享通信区域按照磁盘通信方式将所述锁信息进行传输,包括:

向所述预设的共享通信区域中故障节点的发送消息槽写入磁盘通信握手消息;

判断在第二预设时间段内是否接收到接收消息槽的握手成功消息;

若是,则根据磁盘通信格式将所述锁信息进行封装,得到磁盘通信锁信息;通过所述预设的共享通信区域的消息槽将所述磁盘通信锁信息进行传输;

若否,则执行脑裂故障处理操作。

可选的,还包括:

当所述网络恢复成功时,向目标节点发送网络握手消息和新的锁信息,以便所述目标节点当接收到所述网络握手消息时,向所述预设的共享通信区域的消息槽写入磁盘通信结束消息;

当接收到所述预设的共享通信区域的消息槽中的磁盘通信结束消息时,对磁盘通信通道执行关闭操作。

可选的,还包括:

当所述网络恢复成功时,发送网络故障告警关闭消息。

本申请还提供一种分布式节点,包括:

第一网络传输模块,用于通过tcp/ip网络对锁信息进行传输;

网络恢复判断模块,用于当出现网络故障时,判断在第一预设时间段内所述网络是否恢复成功;

第二网络传输模块,用于当所述网络恢复成功时,采用恢复成功的tcp/ip网络将所述锁信息进行传输;

共享磁盘传输模块,用于当所述网络未恢复成功时,采用预设的共享通信区域按照磁盘通信方式将所述锁信息进行传输。

可选的,还包括:

网络状态查询模块,用于查询网络连接状态;

网络传输恢复模块,用于当所述网络连接状态为网络恢复状态时,采用恢复成功的tcp/ip网络将所述锁信息进行传输。

本申请还提供一种计算机设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的锁信息传输方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的锁信息传输方法的步骤。

本申请所提供的一种dlm的锁信息传输方法,包括:节点通过tcp/ip网络对锁信息进行传输;当出现网络故障时,判断在第一预设时间段内所述网络是否恢复成功;若是,则采用恢复成功的tcp/ip网络将所述锁信息进行传输;若否,则采用预设的共享通信区域按照磁盘通信方式将所述锁信息进行传输。

先通过时延较低的tcp/ip网络对锁信息进行传输,当网络出现故障时,判断在第一预设时间段内是否可以恢复成功,若是,则继续采用恢复成功的tcp/ip网络将锁信息进行传输,若无法恢复成功,则采用预设的共享通信区域按照磁盘通信方式将该锁信息进行传输,避免当网络故障时无法有效进行数据传输的问题,并且,通过共享通信区域按照磁盘通信方式进行锁信息传输可以有效的提高信息传输的可靠性,保持锁信息准确到达目标节点。

本申请还提供一种分布式节点、计算机设备以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种dlm的锁信息传输方法的流程图;

图2为本申请实施例所提供的一种分布式节点的结构示意图。

具体实施方式

本申请的核心是提供一种dlm的锁信息传输方法、分布式节点、计算机设备以及计算机可读存储介质,通过先进行tcp/ip网络传输,当出现故障后无法短时间内修复时采用磁盘通信的方式传输锁信息,避免因网络问题导致的传输失败,提高了锁信息的传输可靠性。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现有技术中,在dlm工作过程中,需要依赖于网络进行节点间通信以同步锁信息,包括锁信息查询、获取远程锁、锁降级等操作,因此传输网络的可靠性直接影响了dlm的效率与稳定性。但网络的稳定性较差,网络的波动、延迟都会影响到dlm消息的传输,直接影响到了集群文件系统的工作,乃至引发集群发生“脑裂”。因此整个系统的稳定性依赖于tcp/ip(transmissioncontrolprotocol/internetprotocol传输控制协议/网际协议)网络的可靠性,而在服务器虚拟化场景中,tcp/ip网络的可靠性相对于存储来说是较低的,导致系统的整体可靠性降低。

因此,本申请提供的一种dlm的锁信息传输方法,先通过时延较低的tcp/ip网络对锁信息进行传输,当网络出现故障时,判断在第一预设时间段内是否可以恢复成功,若是,则继续采用恢复成功的tcp/ip网络将锁信息进行传输,若无法恢复成功,则采用预设的共享通信区域按照磁盘通信方式将该锁信息进行传输,避免当网络故障时无法有效进行数据传输的问题,并且,通过共享通信区域按照磁盘通信方式进行锁信息传输可以有效的提高信息传输的可靠性,保持锁信息准确到达目标节点。

以下通过一个实施例,对本申请提供的一种dlm的锁信息传输方法进行说明。

请参考图1,图1为本申请实施例所提供的一种dlm的锁信息传输方法的流程图。

本实施例中,该方法可以包括:

s101,节点通过tcp/ip网络对锁信息进行传输;

本步骤旨在首先通过tcp/ip网络对dlm不断产生的锁信息进行传输,以便保持已较高的速度,较低的时延传递锁信息。

其中,通过tcp/ip网络对锁信息进行传输可以选择现有技术提供的任意一种传输方式,在此不做具体限定。

s102,当出现网络故障时,判断在第一预设时间段内网络是否恢复成功;若是,则执行s103;若否,则执行s104;

在s102的基础上,本步骤旨在判断在第一预设时间段是否可以将网络进行恢复。也就是,当判定出现网络故障时,就判断是否可以在第一预设时间段内将网络进行修复。

本步骤中,需要首先实时判断网络是否出现故障,例如,判断发送出去的网络数据包是否及时被处理,判断网络通信的质量是否小于预设质量,判断网络设备的状态是否宕机状态。可见,本实施例中判断网络是否出现故障的方式并不唯一,在此不做具体限定。进一步的,当判定出现网络故障时,判断在第一预设时间段内该网络是否能被恢复成功。

其中,第一预设时间段表示的是在传输锁信息过程中能忍受的最大中断时间,如果超出该第一预设时间段的时长,就会影响正常的锁信息通信,进而影响集群系统的整体运行状态。因此,本步骤中判断在第一预设时长内能否将网络恢复成功。当该网络恢复成功,则继续采用该网络传输对应的锁信息。若该网络未恢复成功,则切换可靠性更高的传输模式将锁信息进行传输。

可选的,本实施例还可以包括:

向服务器发送网络故障消息。

可见,本可选方案中主要是当出现故障后向服务器发送网络故障消息,以便及时将网络故障进行修复。同时,服务器接收到网络故障消息,对发生的网络故障的状态进行记录,以便保存相关日志信息。

s103,采用恢复成功的tcp/ip网络将锁信息进行传输;

在s102的基础上,本步骤旨在继续采用恢复成功的tcp/ip网络将锁信息进行传输。由于本步骤中已经将出现故障的网络在第一预设时间段内进行恢复,那么则可以继续采用该网络进行锁信息传输。

其中,进行数据传输的方式可以采用现有技术提供的任意一种传输方式,在此不做具体限定。还可以采用以上步骤中的网络传输方案,在此同样不做具体赘述。

s104,采用预设的共享通信区域按照磁盘通信方式将锁信息进行传输。

在s102的基础上,本步骤旨在当第一预设时间段过去后还未将网络恢复成功时,通过本步骤实现磁盘通信的方式将锁信息进行传输。具体的是采用预设的共享通信区域按照磁盘通信方式将锁信息进行传输。

本步骤中,在预设的共享通信区域中设置了每个节点之间用于传输信息的消息槽。针对一个节点来说,该消息槽包括发送消息槽和接收消息槽。每隔一个节点当需要发送消息时将消息写入发送消息槽,并且实时监控接收消息槽中是否存在消息数据。

其中,预设的共享通信区域是提前设置在硬盘中的一个片区。当通过网络对锁信息进行传输时,存储介质中也存在该共享通信区域,以便当出现网络故障时,可以及时使用。

具体的,本步骤中采用预设的共享通信区域按照磁盘通信方式将该锁信息进行传输的方式,可以参考以下可选方案。

可选的,本步骤可以包括:

步骤1,向预设的共享通信区域中故障节点的发送消息槽写入磁盘通信握手消息;

步骤2,判断在第二预设时间段内是否接收到接收消息槽的握手成功消息;

步骤3,若是,则根据磁盘通信格式将锁信息进行封装,得到磁盘通信锁信息;通过预设的共享通信区域的消息槽将磁盘通信锁信息进行传输;

步骤4,若否,则执行脑裂故障处理操作。

可见,本可选方案中主要是对如何进行磁盘通信进行说明。具体的本可选方案,首先向预设的共享通信区域中故障节点的发送消息槽写入磁盘通信握手消息,也就是向目标节点发送握手消息,以便建立磁盘通信。接着判断在第二预设时间段内是否接收到接收消息槽的握手成功消息,也就是判断是否接收到目标节点返回的确定消息,即握手成功消息。如果接收到,则根据磁盘通信格式将锁信息进行封装,得到磁盘通信锁信息;通过预设的共享通信区域的消息槽将磁盘通信锁信息进行传输;如果未接收到,说明此事针对该节点的通信已全部失效,需要立即执行脑裂故障处理操作。

可选的,本步骤还可以包括:

步骤1,当网络恢复成功时,向目标节点发送网络握手消息和新的锁信息,以便目标节点当接收到网络握手消息时,向预设的共享通信区域的消息槽写入磁盘通信结束消息;

步骤2,当接收到预设的共享通信区域的消息槽中的磁盘通信结束消息时,对磁盘通信通道执行关闭操作。

可见,本可选方案主要对在进行磁盘通信的过程中,如果网络恢复成功时如何进行操作做说明。本可选方案中,具体的当网络恢复成功时,通过发送的网络握手消息开始执行网络传输操作,当接收到磁盘中的磁盘通信结束消息时,即可对磁盘通信通道执行关闭操作,完成从磁盘传输到网络传输的切换操作。

可选的,本实施例中还可以包括:

步骤1,查询网络连接状态;

步骤2,当网络连接状态为网络恢复状态时,采用恢复成功的tcp/ip网络将锁信息进行传输。

可见,本可选方案中主要是说明,需要实时查询网络连接状态,如果网络恢复成功时,即可采用恢复成功的网络将锁信息进行传输。

可选的,本实施例中还可以包括:

当网络恢复成功时,发送网络故障告警关闭消息。

可见,本可选方案中主要是当网络恢复成功时,向服务器进行通知,即发送网络故障告警关闭消息,以便停止网络故障状态。

综上,本实施例先通过时延较低的tcp/ip网络对锁信息进行传输,当网络出现故障时,判断在第一预设时间段内是否可以恢复成功,若是,则继续采用恢复成功的tcp/ip网络将锁信息进行传输,若无法恢复成功,则采用预设的共享通信区域按照磁盘通信方式将该锁信息进行传输,避免当网络故障时无法有效进行数据传输的问题,并且,通过共享通信区域按照磁盘通信方式进行锁信息传输可以有效的提高信息传输的可靠性,保持锁信息准确到达目标节点。

以下通过一个具体的实施例,对本申请提供的一种dlm的锁信息传输方法的做进一步说明。

首先,分布式锁管理器默认工作在网络通信模式,集群中节点间两两建立socket连接,通信消息打包成tcp数据包在节点间传递。一旦网络出现故障,节点会等待30s并持续尝试重连故障节点。如果30s内网络恢复,则继续通过网络通信;而如果30s未恢复,则当前节点会启动共享磁盘通信机制。

启动共享磁盘通信的过程如下:

步骤1,向共享磁盘通信区域中故障节点的“发送消息槽”写入磁盘通信握手消息(disk_handshake),并等待对方节点回复;同时监控“接收消息槽”,如果收到对方节点发送过来的disk_handshake消息则发送回握手成功消息。

步骤2,如果对方节点在60s内发送过来磁盘握手成功消息,则本节点启动磁盘通信模式。后续消息均被打包为磁盘通信格式,并通过共享磁盘的消息槽来进行消息传递;

步骤3,如果对方节点在60s内未发送过来磁盘通信握手回复,这表明故障节点可能发生了掉电或者共享磁盘访问也发生了故障。这种情况下,本节点会将故障节点踢出集群,走“脑裂”处理流程。

此外,当共享磁盘通信模式启动后,节点会在configfs中设置当前通信模式为磁盘通信。上层应用会监控通信模式,一旦检测到共享磁盘模式启用就会向上层推送网络故障消息,以提示运维人员尽快修复网络。

网络恢复后,切换回共享网络通信的过程如下:

步骤1,在共享磁盘通信模式启用后,集群文件系统会同时开启一个线程持续的进行网络重连尝试;

步骤2,一旦网络恢复,当前节点会向对方节点发送网络握手消息;

步骤3,如果当前节点收到对方节点的握手消息,则表明网络通信模式成功,并向共享磁盘通信区域写入磁盘通信结束消息disk_complete。

步骤4,本节点新的消息会走网络通信,但仍会持续处理磁盘区域发送过来的消息,一直到收到对方也发过来了disk_complete消息,才会关闭磁盘通信通道,恢复网络通信模式。

网络通信模式恢复后,节点会修改configfs中通信模式项为网络通信模式。上层应用监控到网络恢复后会关闭网络故障告警。

可见,本实施例先通过时延较低的tcp/ip网络对锁信息进行传输,当网络出现故障时,判断在第一预设时间段内是否可以恢复成功,若是,则继续采用恢复成功的tcp/ip网络将锁信息进行传输,若无法恢复成功,则采用预设的共享通信区域按照磁盘通信方式将该锁信息进行传输,避免当网络故障时无法有效进行数据传输的问题,并且,通过共享通信区域按照磁盘通信方式进行锁信息传输可以有效的提高信息传输的可靠性,保持锁信息准确到达目标节点。

下面对本申请实施例提供的一种分布式节点进行介绍,下文描述的一种分布式节点与上文描述的一种dlm的锁信息传输方法可相互对应参照。

请参考图2,图2为本申请实施例所提供的一种分布式节点的结构示意图。

本实施例中,该分布式节点包括:

第一网络传输模块100,用于通过tcp/ip网络对锁信息进行传输;

网络恢复判断模块200,用于当出现网络故障时,判断在第一预设时间段内网络是否恢复成功;

第二网络传输模块300,用于当网络恢复成功时,采用恢复成功的tcp/ip网络将锁信息进行传输;

共享磁盘传输模块400,用于当网络未恢复成功时,采用预设的共享通信区域按照磁盘通信方式将锁信息进行传输。

可选的,该分布式节点还可以包括:

网络状态查询模块,用于查询网络连接状态;

网络传输恢复模块,用于当网络连接状态为网络恢复状态时,采用恢复成功的tcp/ip网络将锁信息进行传输。

本申请实施例还提供一种计算机设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如以上实施例的锁信息传输方法的步骤。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上实施例的锁信息传输方法的步骤。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种dlm的锁信息传输方法、分布式节点、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1