一种集群文件系统中消息传输的方法及装置制造方法及图纸

技术编号:18898821 阅读:40 留言:0更新日期:2018-09-08 13:43
本申请涉及通信技术领域,公开了一种集群文件系统中消息传输的方法及装置,用以在消息网络发生故障时保证主机间能够正常通信。该方法为:所述集群文件系统中的第一主机确定所述消息网络链路发生故障,将进行消息传输的消息网络链路切换为存储通道,生成第一消息,并将第一消息记录在数据存储介质的第一位置区域,第一位置区域用于第二主机访问并读取所述第一消息。

A method and device for message transmission in clustered file system

The application relates to the field of communication technology, and discloses a method and device for message transmission in a clustered file system to ensure normal communication between hosts when a message network fails. The method is as follows: the first host in the cluster file system determines that the message network link fails, switches the message network link for message transmission to a storage channel, generates the first message, and records the first message in the first location area of the data storage medium, and the first location area is used for the second host access. Ask and read the first message.

【技术实现步骤摘要】
一种集群文件系统中消息传输的方法及装置
本申请涉及通信
,特别涉及一种集群文件系统中消息传输的方法及装置。
技术介绍
随着高性能、高可靠的存储区域网络(StorageAreaNetwork,SAN)设备的普及,采用集中式的共享存储已经成为许多分布式系统的首选。尤其在服务器虚拟化平台下,多主机共享互连网协议的存储区域网络(Internet-ProtocolStorageAreaNetwork,IP-SAN)和网状通道的存储区域网络(Fibre-ChannelStorageAreaNetwork,FC-SAN)存储是最常见的形态。为了支持更加丰富的存储应用,通常需要在共享存储上部署集群文件系统,以供各主机灵活、快捷地使用共享存储。集群文件系统是指运行在多台计算机(即主机)之上,各主机之间通过某种方式相互通信,从而将集群内所有存储空间资源整合、虚拟化,并对外提供文件访问服务的文件系统。集群文件系统依赖于主机间的通信,主机间交换消息来实现某一协议,保证对共享存储的非冲突访问。目前最主流的主机间通信方式是主机间通过消息网络收发消息的方式来传递消息。消息网络是大部分集群文件系统中最为重要的组成部分之一。然而,消息网络本身并不是可靠的,容易受到各种网络故障,如链路中断、IP冲突、交换机故障等影响。而且在实际部署时,受限于网卡、交换机的数量,通常将集群文件系统的消息网络与业务网络部署于同一平面,一旦业务消息流量过大,就容易影响集群文件系统消息网络的可用性,诱发消息网络瞬时或长期故障。对于集群文件系统而言,消息网络的故障通常是致命的。为了保证集群文件系统的数据与元数据的安全,如果某一主机无法正确地通过消息网络完成加锁、解锁的操作,该主机将禁止访问文件,这时即便存储链路仍然通畅,数据存储也变得不可用。现有的集群文件系统主要采用以下两种技术来解决消息网络故障的问题。一种技术是当主机检测到消息网络故障时,执行重启主机操作。在大多数对性能、可靠性要求较高的场景,如服务器虚拟化场景中,一旦重启主机将使所有在其上运行的虚拟机非正常关机,致使业务中断甚至关键数据的丢失,造成不可估量的损失。因此在管理网络环境不佳、频繁闪断的场景下,各主机频繁重启的结果是无法被生产环境所接受的。另一种技术是当主机检测到消息网络故障时,暂时将主机的集群状态设为不可用,并自动退出集群,禁止对数据存储继续访问,由于虚拟机无法访问共享存储,因此业务无法持续,会出现虚拟机IO长时间卡住甚至蓝屏的现象。此时通常会使用虚拟机高可用性(HighAvailability,HA)的方式,即关闭虚拟机并由集群管理系统将其在别的正常主机上重新拉起,而当故障主机的网络恢复后,可将虚拟机重新迁回。该过程中,虚拟机的业务将中断较长时间。此外,网络闪断导致主机频繁退出与加入集群,场景极其复杂,其管理成本与出错风险也极高。综上,现有技术应对集群文件系统消息网络故障的方式均带来其他方面的缺陷,即使存储链路保持畅通,仍然禁止主机内所有虚拟机访问数据存储,甚至重启主机。在用户端会看到虚拟机大规模关闭或HA,业务长时间中断,甚至丢失数据。
技术实现思路
本申请实施例提供一种集群文件系统中消息传输的方法及装置,用以解决在集群文件系统消息网络故障时主机间无法正常通信、业务长时间中断甚至丢失数据的问题。本申请实施例提供的具体技术方案如下:第一方面,提供一种集群文件系统中消息传输的方法,所述集群文件系统包括至少两个主机,假设任意两个主机为第一主机和第二主机,所述集群文件系统还包括消息网络链路和数据存储介质,所述消息网络链路在链路正常状态下用于所述第一主机与所述第二主机之间进行消息传输,所述数据存储介质用于存储所述集群文件系统的文件信息,集群文件系统内还存在存储通道,所述存储通道用于连接所述第一主机与所述数据存储介质,以及连接所述第二主机与所述数据存储介质,以便于在所述消息网络链路故障时,所述第一主机与所述第二主机通过所述数据存储介质进行消息传输。当第一主机检测到消息网络发生故障时,由消息网络通道切换到存储通道来传输消息,这样,能够在消息网络发生故障尤其是网络闪断场景下,避免了主机重启和虚拟机大规模HA造成业务长时间终端甚至丢失数据,保证了主机间能够正常通信,从而保证了集群文件系统正常访问,使得业务得以持续。在一个可能的设计中,所述第一主机确定所述消息网络链路发生故障,将进行消息传输的通道由所述消息网络链路切换到所述存储通道,所述第一主机在生成待向所述第二主机发送的第一消息时,将所述第一消息记录在所述数据存储介质的第一位置区域,所述第一位置区域用于所述第二主机访问并读取所述第一消息。类似的,所述第一主机也可以访问所述数据存储介质的第二位置区域,读取所述第二主机记录在所述第二位置区域的第二消息。存储通道的网络是专用网络,链路可靠性显著高于消息网络链路,保证第一主机和第二主机之间正常的业务交互。在一个可能的设计中,所述第一主机确定所述消息网络链路发生故障之后,继续监控所述消息网络链路,并在确定所述消息网络链路恢复正常后,将进行消息传输的通道由所述存储通道切换到所述消息网络链路。考虑到消息网络链路能够做到实时通知,时延比较低,在消息网络链路恢复正常后,立即重新切换回消息网络链路来进行消息传输,不仅能够保证主机间消息传输的及时性,还能避免一直占用存储通道来进行消息传输会占用存储带宽以及影响I/O性能的问题。在一个可能的设计中,所述集群文件系统中包括N台主机,所述数据存储介质中包括N阶方阵,所述N阶方阵中第i行第j列的元素代表第ij位置区域,所述第ij位置区域用于第i台主机记录向第j台主机发送的消息,以及用于所述第j台主机访问并读取所述第i台主机记录的消息;其中,N≥2,1≤i≤N,1≤j≤N,i、j、N均为正整数,i≠j。这使得从任意源节点到任意目的节点的存储通道是彼此独立的。在一个可能的设计中,所述第一主机访问所述数据存储介质的第二位置区域,查询所述第二位置区域的头部区域承载的第一索引和第二索引,根据所述第一索引和所述第二索引,判定存在未读消息时,读取所述未读消息;其中,所述第一索引用于表征在所述第二位置区域中所述第一主机读取消息的位置,所述第二索引用于表征在所述第二位置区域中所述第二主机记录消息的位置。类似的,第二主机访问并读取第一消息也可以采用该方法。在一个可能的设计中,所述第一主机运行msg_disk进程,该msg_disk进程负责对第二位置区域进行轮询读取操作,以获取第二主机记录在存储通道中的消息。所述第一主机上针对挂载的每个卷都拉起一个msg_disk进程,并在卷卸载时关闭该进程。第二方面,提供一种集群文件系统中消息传输的装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计中第一主机行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。第三方面,提供一种集群文件系统中消息传输的装置,该装置包括收发器、存储器和处理器,其中,所述存储器用于存储一组程序,所述处理器用于调用所述存储器存储的程序以执行如上述第一方面和第一方面的任一种可能的设计中所述的方法。第四方面,提供了一种计算机存储介质,用于储存为上述第一方面和本文档来自技高网
...

【技术保护点】
1.一种集群文件系统中消息传输的方法,其特征在于,所述集群文件系统包括第一主机、第二主机、消息网络链路和数据存储介质,所述消息网络链路用于所述第一主机与所述第二主机之间进行消息传输,所述数据存储介质用于存储所述集群文件系统的文件信息,包括:所述第一主机确定所述消息网络链路发生故障,将进行消息传输的通道由所述消息网络链路切换到存储通道,所述存储通道用于连接所述第一主机与所述数据存储介质,以及连接所述第二主机与所述数据存储介质,以便于所述第一主机与所述第二主机通过所述数据存储介质进行消息传输;所述第一主机生成待向所述第二主机发送的第一消息,并将所述第一消息记录在所述数据存储介质的第一位置区域,所述第一位置区域用于所述第二主机访问并读取所述第一消息。

【技术特征摘要】
1.一种集群文件系统中消息传输的方法,其特征在于,所述集群文件系统包括第一主机、第二主机、消息网络链路和数据存储介质,所述消息网络链路用于所述第一主机与所述第二主机之间进行消息传输,所述数据存储介质用于存储所述集群文件系统的文件信息,包括:所述第一主机确定所述消息网络链路发生故障,将进行消息传输的通道由所述消息网络链路切换到存储通道,所述存储通道用于连接所述第一主机与所述数据存储介质,以及连接所述第二主机与所述数据存储介质,以便于所述第一主机与所述第二主机通过所述数据存储介质进行消息传输;所述第一主机生成待向所述第二主机发送的第一消息,并将所述第一消息记录在所述数据存储介质的第一位置区域,所述第一位置区域用于所述第二主机访问并读取所述第一消息。2.如权利要求1所述的方法,其特征在于,还包括:所述第一主机监控所述消息网络链路,并在确定所述消息网络链路恢复正常后,将进行消息传输的通道由所述存储通道切换到所述消息网络链路。3.如权利要求1或2所述的方法,其特征在于:所述集群文件系统中包括N台主机,所述数据存储介质中包括N阶方阵,所述N阶方阵中第i行第j列的元素代表第ij位置区域,所述第ij位置区域用于第i台主机记录向第j台主机发送的消息,以及用于所述第j台主机访问并读取所述第i台主机记录的消息;其中,N≥2,1≤i≤N,1≤j≤N,i、j、N均为正整数,i≠j。4.如权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:所述第一主机访问所述数据存储介质的第二位置区域,并读取所述第二主机记录在所述第二位置区域的第二消息。5.如权利要求4所述的方法,其特征在于,所述第一主机访问所述数据存储介质的第二位置区域,并读取所述第二主机记录在所述第二位置区域的第二消息包括:所述第一主机访问所述数据存储介质的第二位置区域,查询所述第二位置区域的头部区域承载的第一索引和第二索引,根据所述第一索引和所述第二索引,判定存在未读消息时,读取所述未读消息;其中,所述第一索引用于表征在所述第二位置区域中所述第一主机读取消息的位置,所述第二索引用于表征在所述第二位置区域中所述第二主机记录消息的位置。6.一种集群文件系统中消息传输的装置,其特征在于,所述装置应用于第一主机,所述集群文件系统包括所述第一主机、第二主机、消息网络链路和数据存储介质,所述消息网络链路用于所述第一主机与所述第二主机之间进行消息传输,所述数据...

【专利技术属性】
技术研发人员:傅唯威沈灿泉吴斌
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1