一种通信优化方法和装置

文档序号:490596 发布日期:2022-01-04 浏览:4次 >En<

阅读说明:本技术 一种通信优化方法和装置 (Communication optimization method and device ) 是由 张骁栋 于 2021-08-27 设计创作,主要内容包括:本申请公开了一种通信优化方法和装置,第一节点通过网络通信模式与第二节点进行消息传输,当出现网络故障时,第一节点判断预设时间内网络是否恢复正常,若是,则第一节点继续通过网络通信模型与第二节点进行消息传输,若否,此时不触发存储池的卸载共享存储池事件,而是将网络通信模式切换为磁盘通信模式,即通过预先创建的共享通信磁盘与第二节点通过磁盘通信模式进行消息传输。由此,在网络发生预设时间内无法恢复的故障时,通过预先建立冗余通信链路,即共享通信磁盘实现消息传输,增加了网络故障的容错率,使得生产环境中虚拟机的业务正常运行,降低了因网络故障导致存储池不可用的影响,实现集群的高可用性。(The application discloses a communication optimization method and a communication optimization device, wherein a first node performs message transmission with a second node through a network communication mode, when a network fault occurs, the first node judges whether the network is recovered to be normal within a preset time, if so, the first node continues to perform message transmission with the second node through a network communication model, if not, the unloading shared storage pool event of a storage pool is not triggered, the network communication mode is switched to a disk communication mode, namely, the message transmission is performed through a pre-established shared communication disk and the second node through the disk communication mode. Therefore, when a fault which cannot be recovered within a preset time occurs in the network, message transmission is realized by pre-establishing a redundant communication link, namely sharing a communication disk, so that the fault tolerance rate of the network fault is increased, the service of the virtual machine in a production environment is enabled to run normally, the influence of unavailability of a storage pool caused by the network fault is reduced, and the high availability of the cluster is realized.)

一种通信优化方法和装置

技术领域

本发明涉及计算机技术领域,尤其是涉及一种通信优化方法和装置。

背景技术

虚拟化管理平台的共享存储池采用集群文件系统(Oracle Cluster File SystemVersion 2,OCFS2)实现共享存储,其中,OCFS2的关键特点在于能够提供文件并发访问控制,完整性保证,使得服务器像访问本地文件系统一样而无须考虑数据并发的问题。

其中,分布式锁管理器(Distributed Lock Manager,DLM)是实现文件访问控制的关键,通过分布式锁管理器提供的锁接口,保证了对文件的一致访问,保证了数据读写的完整性。

相关技术中,各个DLM节点间相互通信依赖于管理网进行网络通信,以同步锁消息,包括锁消息查询、获取远程锁、锁降级等操作。但是,当发生网络故障,如断网、IP冲突等情况时,一般超过120秒后会触发存储池的卸载共享存储池(fence umount)事件,导致该节点上的存储不可用,出现宕机、业务中断等问题,无法实现集群的高可用性。

发明内容

针对上述问题,本申请提供一种通信优化方法和装置,用于当发生网络故障时,避免出现fence umount事件,保证集群的高可用性。

基于此,本申请实施例公开了如下技术方案:

一方面,本申请实施例提供一种通信优化方法,预先创建共享通信磁盘,所述共享通信磁盘用于多个节点间通过磁盘通信模式进行消息传输,所述多个节点包括第一节点和第二节点,所述方法包括:

所述第一节点通过网络通信模式与所述第二节点进行消息传输;

若出现网络故障,所述第一节点判断预设时间内所述网络是否恢复正常;

若是,则所述第一节点通过所述网络通信模式与所述第二节点进行消息传输;若否,所述第一节点将所述网络通信模式切换为所述磁盘通信模式,利用所述共享通信磁盘与所述第二节点进行消息传输。

可选的,所述共享通信磁盘中包括多个消息槽,所述消息槽用于存储所述节点的未处理消息,所述利用所述共享通信磁盘与所述第二节点进行消息传输,包括:

所述第一节点将发送消息写入所述第二节点对应的消息槽;

所述第一节点轮询所述第一节点的未处理消息;

若所述第一节点获取所述第二节点针对于所述发送消息的返回消息,结束本次与所述第二节点的消息传输。

可选的,所述第一节点将发送消息写入所述第二节点对应的消息槽,包括:

所述第一节点根据所述第二节点对应的消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽的标识包括目标节点标识和目标通道标识,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识。

可选的,所述第二节点对应的消息槽包括多个子消息槽,不同的子消息槽用于存储所述第一节点发送给所述第二节点的不同的发送消息,所述第一节点将发送消息写入所述第二节点对应的消息槽,包括:

所述第一节点根据所述第二节点对应的消息槽中子消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽中子消息槽的标识包括目标节点标识、目标通道标识和发送消息顺序,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识,所述发送消息顺序为所述第一节点发送给所述第二节点的多条发送消息的顺序。

可选的,所述方法还包括:

在所述第一节点利用所述共享通信磁盘与所述第二节点进行消息传输的过程中,所述第一节点判断所述网络是否恢复正常;

若是,则所述第一节点将所述磁盘通信模式切换为所述网络通信模式,通过所述网络通信模式与所述第二节点进行消息传输;若否,则利用所述共享通信磁盘与所述第二节点进行消息传输。

另一方面,本申请实施例提供一种通信优化装置,所述装置包括:预先建立模块、第一消息传输模块、判断模块和第二消息传输模块;

所述预先建立模块,用于预先创建共享通信磁盘,所述共享通信磁盘用于多个节点间通过磁盘通信模式进行消息传输,所述多个节点包括第一节点和第二节点;

所述第一消息传输模块,用于所述第一节点通过网络通信模式与所述第二节点进行消息传输;

所述判断模块,用于若出现网络故障,所述第一节点判断预设时间内所述网络是否恢复正常;

所述第一消息传输模块,用于若所述预设时间内所述网络恢复正常,则所述第一节点通过所述网络通信模式与所述第二节点进行消息传输;

所述第二消息传输模块,用于若所述预设时间内所述网络未恢复正常,所述第一节点将所述网络通信模式切换为所述磁盘通信模式,利用所述共享通信磁盘与所述第二节点进行消息传输。

可选的,所述共享通信磁盘中包括多个消息槽,所述消息槽用于存储所述节点的未处理消息,所述第二消息传输模块,用于:

所述第一节点将发送消息写入所述第二节点对应的消息槽;

所述第一节点轮询所述第一节点的未处理消息;

若所述第一节点获取所述第二节点针对于所述发送消息的返回消息,结束本次与所述第二节点的消息传输。

可选的,所述第二消息传输模块,用于:

所述第一节点根据所述第二节点对应的消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽的标识包括目标节点标识和目标通道标识,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识。

可选的,所述第二节点对应的消息槽包括多个子消息槽,不同的子消息槽用于存储所述第一节点发送给所述第二节点的不同的发送消息,所述第一消息传输模块,用于:

所述第一节点根据所述第二节点对应的消息槽中子消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽中子消息槽的标识包括目标节点标识、目标通道标识和发送消息顺序,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识,所述发送消息顺序为所述第一节点发送给所述第二节点的多条发送消息的顺序。

可选的,所述判断模块,还用于:

在所述第一节点利用所述共享通信磁盘与所述第二节点进行消息传输的过程中,所述第一节点判断所述网络是否恢复正常;

所述第二消息传输模块,用于若所述网络恢复正常,则所述第一节点将所述磁盘通信模式切换为所述网络通信模式,通过所述网络通信模式与所述第二节点进行消息传输;

所述第一消息传输模块,用于若所述网络未恢复正常,则利用所述共享通信磁盘与所述第二节点进行消息传输。

相对于现有技术,本申请上述技术方案的优点在于:

第一节点通过网络通信模式与第二节点进行消息传输,当出现网络故障时,第一节点判断预设时间内网络是否恢复正常,若是,则第一节点继续通过网络通信模型与第二节点进行消息传输,若否,此时不触发存储池的卸载共享存储池事件,而是将网络通信模式切换为磁盘通信模式,即通过预先创建的共享通信磁盘与第二节点通过磁盘通信模式进行消息传输。由此,在网络发生预设时间内无法恢复的故障时,通过预先建立冗余通信链路,即共享通信磁盘实现消息传输,增加了网络故障的容错率,使得生产环境中虚拟机的业务正常运行,降低了因网络故障导致存储池不可用的影响,实现集群的高可用性。

附图说明

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

图1为本申请提供的一种通信优化方法的流程图;

图2为本申请实施例提供的一种共享通信磁盘中包括多个消息槽的示意图;

图3为本申请提供的一种通信优化装置的示意图。

具体实施方式

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

下面结合图1,对本申请实施例提供的一种通信优化方法进行介绍。参见图1,该图为本申请提供的一种通信优化方法的流程图,该方法可以包括以下步骤101-104。

S101:第一节点通过网络通信模式与第二节点进行消息传输。

第一节点通过网络通信模式,如传输控制协议/网际协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)网络等与第二节点进行消息传输,从而保证较高的通信速率,降低消息的延迟。

其中,消息传输可以选择任意一种传输方式,本申请不做具体限定。

S102:若出现网络故障,第一节点判断预设时间内网络是否恢复正常,若是,则执行S103;若否,则执行S104。

如果出现网络故障,如发送出去的网络数据包没有被及时处理,网络通信的质量小于质量阈值,网络设备的状态处于宕机状态等,导致第一节点和第二节点进行消息传输失败,此时,可以先判断在预设时间内网络是否可以恢复正常。

其中,预设时间表示的是在消息过程中能忍受的最大中断时间,如30秒,超过预设时间第一节点和第二节点还未完成消息传输,可能会影响集群系统的整体运行状态。

S103:第一节点通过网络通信模式与第二节点进行消息传输。

若网络恢复成功,则第一节点继续采用网络通信模式与第二节点进行消息传输。

S104:第一节点将网络通信模式切换为磁盘通信模式,利用共享通信磁盘与第二节点进行消息传输。

若网络未恢复成功,需要采用可靠性更高的方式进行消息传输,即将网络通信模式切换为磁盘通信模式,第一节点通过预先建立的共享通信磁盘与第二节点进行消息传输。

需要说明的是,为了实现多个节点间通过磁盘通信模式进行消息传输,可以在创建文件存储(Cloud File Storage,CFS)存储域时,选择节点、用于存储数据的共享数据磁盘和用于多个节点间通过磁盘通信模式进行消息传输的共享通信磁盘。通过格式化阶段,在共享通信磁盘上预留出节点的磁盘通信空间。

作为一种可能的实现方式,共享通信磁盘中包括多个消息槽,每个消息槽存储节点(如第一节点或第二节点)的未处理消息,下面对第一节点利用共享通信磁盘与第二节点进行消息传输进行具体说明。

S1041:第一节点将发送消息写入第二节点对应的消息槽。

当第一节点想要通过磁盘通信模式将发送消息发送给第二节点时,会将发送消息写入第二节点对应的消息槽,等待第二节点进行处理。

第二节点从对应的消息槽中读取到第一节点发送的发送消息,进行消息处理后,将针对于发送消息的返回消息写入第一节点对应的消息槽。

S1042:第一节点轮询第一节点的未处理消息。

第一节点从对应的消息槽中轮询其未处理的消息,即其他节点(如第二节点)发送给第一节点,但第一节点还未来得及处理的消息。

S1043:若第一节点获取第二节点针对于发送消息的返回消息,结束本次与第二节点的消息传输。

若第一节点获取到第二节点针对于发送消息的返回消息,本次第一节点与第二节点的消息传输结束,完成一次消息通信。

由上述技术方案可知,第一节点通过网络通信模式与第二节点进行消息传输,当出现网络故障时,第一节点判断预设时间内网络是否恢复正常,若是,则第一节点继续通过网络通信模型与第二节点进行消息传输,若否,此时不触发存储池的卸载共享存储池事件,而是将网络通信模式切换为磁盘通信模式,即通过预先创建的共享通信磁盘与第二节点通过磁盘通信模式进行消息传输。由此,在网络发生预设时间内无法恢复的故障时,通过预先建立冗余通信链路,即共享通信磁盘实现消息传输,增加了网络故障的容错率,使得生产环境中虚拟机的业务正常运行,降低了因网络故障导致存储池不可用的影响,实现集群的高可用性。

作为一种可能的实现方式,每个节点包括多个消息槽,不同消息槽用于存储该节点与不同节点进行消息传输所用的消息。参见图2,该图为本申请实施例提供的一种共享通信磁盘中包括多个消息槽的示意图。在图2中,5个节点之间通过磁盘模式进行消息传输,下面以节点3(第一节点)与节点1(第二节点)之间通过磁盘模式进行消息传输为例进行说明。

若节点3通过磁盘模式与节点1进行消息传输,节点3根据消息槽A的标识,将发送消息写入节点1对应的消息槽A。消息槽A的标识包括目标节点标识和目标通道标识,其中,目标节点标识为节点1的节点标识,如node1,目标通道标识为节点3将发送消息发送给节点1用的通道3对应的通道标识,如ch3。

进一步的,若每个消息槽包括多个子消息槽,不同的子消息槽用于存储第一节点发送给第二节点的不同的发送消息,继续参见图2,以消息槽B为例,该消息槽用于节点1接收节点4发送的发送消息。消息槽B包括N个子消息槽,其他消息槽同理。

此时,若节点3通过磁盘模式与节点1进行消息传输,节点3根据节点1对应的消息槽中子消息槽(以子消息槽0为例)的标识,将发送消息写入节点1对应的消息槽中子消息槽0。子消息槽0的标识包括目标节点标识、目标通道标识和发送消息顺序,其中,目标节点标识为节点1的节点标识,如node1,目标通道标识为节点3将发送消息发送给节点1用的通道3对应的通道标识,如ch3,若该发送消息为节点3发送给节点1的第一条消息,则发送消息顺序可以表示为slot0,若该发送消息为节点3发送给节点1的第一条消息,则发送消息顺序可以表示为slot1。通过多个子消息槽并配合发送消息顺序,能够实现消息的并发传递。

作为一种可能的实现方式,在执行S104的过程中,即在第一节点利用共享通信磁盘与第二节点进行消息传输的过程中,第一节点判断网络是否恢复正常,如网络通信模式在内核中国为o2net模块,o2net模块持续周期性的建立socket连接,网络恢复后,o2net模块与socket连接建立并握手成功,此时可以将磁盘通信模式切换为网络通信模式,第一节点通过网络通信模式与第二节点进行消息传输。若网络还是无法恢复,第一节点继续利用共享通信磁盘与第二节点进行消息传输。

作为一种可能的实现方式,若在执行S104的过程中,第一节点与第二节点超过一段时间,如120秒无法通过磁盘通信模式进行消息传输,则执行fence umount事件。

为了使本申请实施例提供的技术方案更加清楚,下面继续结合图2以一个实例对本申请实施例提供的通信优化方法进行说明。

节点3将第一条发送消息通过网络通信模式与节点1进行消息传输,若节点3检测到网络出现故障,且在30秒内网络无法恢复正常,此时节点3将网络通信模式切换为磁盘通信模式,节点3将第一条发送消息写入标识为[node1,ch3,slot0]对应的消息槽中,其中,slot0为消息槽A包括的第0个子消息槽,节点3发送完第一条发送消息,若再发送第二条发送消息给节点1时,此时,节点3将第二条发送消息写入标识为[node1,ch3,slot1]对应的消息槽中。

节点1检测到与节点3进行消息传输的网络出现故障,且在30秒内网络无法恢复正常,节点1会把消息槽A放入到轮序列表中开始轮询,并从[node1,ch3,slot0]对应的子消息槽中读取到节点3发送的第一条发送消息,处理完第一条发送消息后,将针对于第一条发送消息的第一条返回消息写入标识为[node3,ch1,slot0]对应的消息槽中。若从标识为[node1,ch3,slot1]对应的子消息槽中读取到第二条发送消息,处理完第二条发送消息后,将针对于第二条发送消息的第二条返回消息写入标识为[node3,ch1,slot1]对应的消息槽中。

本申请实施例除了提供的一种通信优化方法外,还提供了一种通信优化装置,如图3所示,所述装置包括:预先建立模块301、第一消息传输模块302、判断模块303和第二消息传输模块304;

所述预先建立模块301,用于预先创建共享通信磁盘,所述共享通信磁盘用于多个节点间通过磁盘通信模式进行消息传输,所述多个节点包括第一节点和第二节点;

所述第一消息传输模块302,用于所述第一节点通过网络通信模式与所述第二节点进行消息传输;

所述判断模块303,用于若出现网络故障,所述第一节点判断预设时间内所述网络是否恢复正常;

所述第一消息传输模块302,用于若所述预设时间内所述网络恢复正常,则所述第一节点通过所述网络通信模式与所述第二节点进行消息传输;

所述第二消息传输模块304,用于若所述预设时间内所述网络未恢复正常,所述第一节点将所述网络通信模式切换为所述磁盘通信模式,利用所述共享通信磁盘与所述第二节点进行消息传输。

作为一种可能的实现方式,所述共享通信磁盘中包括多个消息槽,所述消息槽用于存储所述节点的未处理消息,所述第二消息传输模块304,用于:

所述第一节点将发送消息写入所述第二节点对应的消息槽;

所述第一节点轮询所述第一节点的未处理消息;

若所述第一节点获取所述第二节点针对于所述发送消息的返回消息,结束本次与所述第二节点的消息传输。

作为一种可能的实现方式,所述第二消息传输模块304,用于:

所述第一节点根据所述第二节点对应的消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽的标识包括目标节点标识和目标通道标识,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识。

作为一种可能的实现方式,所述第二节点对应的消息槽包括多个子消息槽,不同的子消息槽用于存储所述第一节点发送给所述第二节点的不同的发送消息,所述第一消息传输模块302,用于:

所述第一节点根据所述第二节点对应的消息槽中子消息槽的标识,将发送消息写入所述第二节点对应的消息槽;所述第二节点对应的消息槽中子消息槽的标识包括目标节点标识、目标通道标识和发送消息顺序,所述目标节点标识为所述第二节点的节点标识,所述目标通道标识为所述第一节点发送所述发送消息给所述第二节点所用通道的通道标识,所述发送消息顺序为所述第一节点发送给所述第二节点的多条发送消息的顺序。

作为一种可能的实现方式,所述判断模块303,还用于:

在所述第一节点利用所述共享通信磁盘与所述第二节点进行消息传输的过程中,所述第一节点判断所述网络是否恢复正常;

所述第二消息传输模块304,用于若所述网络恢复正常,则所述第一节点将所述磁盘通信模式切换为所述网络通信模式,通过所述网络通信模式与所述第二节点进行消息传输;

所述第一消息传输模块302,用于若所述网络未恢复正常,则利用所述共享通信磁盘与所述第二节点进行消息传输。

由上述技术方案可知,第一节点通过网络通信模式与第二节点进行消息传输,当出现网络故障时,第一节点判断预设时间内网络是否恢复正常,若是,则第一节点继续通过网络通信模型与第二节点进行消息传输,若否,此时不触发存储池的卸载共享存储池事件,而是将网络通信模式切换为磁盘通信模式,即通过预先创建的共享通信磁盘与第二节点通过磁盘通信模式进行消息传输。由此,在网络发生预设时间内无法恢复的故障时,通过预先建立冗余通信链路,即共享通信磁盘实现消息传输,增加了网络故障的容错率,使得生产环境中虚拟机的业务正常运行,降低了因网络故障导致存储池不可用的影响,实现集群的高可用性。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种服务器中的设备更换报警方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类