当前位置: 首页 > 专利查询>之江实验室专利>正文

一种监测虚拟机集群中节点状态的方法和计算机系统技术方案

技术编号:35370996 阅读:15 留言:0更新日期:2022-10-29 18:13
本发明专利技术公开了一种监测虚拟机集群中节点状态的方法和计算机系统。该方法基于通用的主/从分布式集群架构,自定义面向通信协议透明的心跳包编码及解码规则;基于全局可分发的编码元数据,设计了分段标识以及前缀匹配的身份标识编码格式,突破数据包所有字段都以字节为最小单位的编码范式,构造相对轻量级的心跳数据包。该方法应用在大规模集群中,能够有效减少监测数据所占用的系统带宽资源,提升虚拟机集群的网络吞吐量和稳定性。机集群的网络吞吐量和稳定性。机集群的网络吞吐量和稳定性。

【技术实现步骤摘要】
一种监测虚拟机集群中节点状态的方法和计算机系统


[0001]本专利技术涉及计算机
,尤其涉及一种监测虚拟机集群中节点状态的方法和计算机系统。

技术介绍

[0002]集群(Cluster)通常是由一些互相连接在一起的节点(例如,计算机或虚拟机)构成的一个并行或分布式系统。这些节点一起工作并运行一系列共同的应用程序,同时,为用户和应用程序提供单一的系统映射。例如,对于计算机集群而言,从外部来看,计算机集群是一个系统,对外提供统一的服务,对内部来说,集群内的计算机在物理上通过电缆连接,在逻辑上则通过集群软件连接。服务器集群是把多台服务器通过通信链路连接,从外部看来,这些服务器就像一台服务器在工作,而对内部来说,外来的负载通过一定的机制动态地分配到服务器中去,从而达到超级服务器才有的高性能、高可用。
[0003]虚拟机(英文:Virtual Machine,简称“VM”)是在主机(host)上运行的软件,其可以在计算机平台和终端用户之间创造一种环境,而终端用户则是基于这个软件所创造的环境来操作。虚拟机集群是指多个虚拟机相互连接在一起构成的并行或分布式系统。
[0004]虚拟机集群通常采用主/从(Master/Slave)架构的方式。Master主机作为集群的管理中心,负责集群中所有Slave主机以及运行在其上的虚拟机的监测和管理。一般地,Master主机通过推或者拉的方式与Slave主机通信。但当集群规模庞大,集群中的Slave主机过多时,Master主机的性能会不足以支持维护大量的Slave主机,使得Master成为整个集群的瓶颈;同时用于监测和管理的数据流会占用过多的带宽,使得集群中支撑应用的通信质量无法保障,降低了虚拟机集群的整体性能。通常降低数据流带宽占用方式有压缩数据包、缩短占用时间等方式,其中数据包压缩的方式给Master主机额外增加了解压缩的计算过程,在大规模集群中Master主机的CPU性能可能受到大幅损耗;而缩短占用时间的方式又带来监测灵敏度损失的问题,若Slave主机长时间处于宕机状态,运行在主机之上的虚拟机业务都受到影响。
[0005]因此,目前亟需一种监测虚拟机集群中节点状态的方法和计算机系统,提高虚拟机集群的容错能力和性能。

技术实现思路

[0006]本专利技术的目的在于针对现有技术的不足,提供一种监测虚拟机集群中节点状态的方法和计算机系统。
[0007]一种监测虚拟机集群中节点状态的方法,包括以下步骤:S1:集群管理员定义全局编码元数据信息;S2:在虚拟机集群中的所有Master主机上部署并运行心跳包监测定时任务,在所有Slave主机上部署并运行心跳包上报定时任务,并将全局编码元数据分发给Slave主机;S3:Slave主机上运行的心跳包上报定时任务按自定义心跳包编码规则,基于全局
编码元数据对状态信息进行编码,构造心跳包报文并发送给Master主机;S4:Master主机监听预设的通信端口,并根据自定义心跳包解码规则和全局编码元数据对收到的心跳包报文进行解码,计算得到Slave主机上虚拟机节点的状态;S5:Master主机将虚拟机集群中节点状态信息进行存储;S6:通过心跳包监测定时任务控制,进入下一个状态监测周期,重复步骤S3到步骤S5,持续进行监测;心跳包监测定时任务结束,监测停止。
[0008]作为优选,所述步骤S1中的全局编码元数据,包括身份标识编码表、状态标识编码表、身份标识前缀匹配表、身份标识后缀字段长度以及虚拟机数量字段长度。
[0009]作为优选,所述身份标识编码表,将身份标识所包含的所有合法字符映射到一个长度最小的编码空间中,所述身份标识的编码长度为,单位是比特;所述状态标识编码表,将状态标识所包含的所有合法字符映射到一个长度最小的编码空间中,所述状态标识的编码长度为,单位是比特;所述身份标识前缀匹配表,将身份标识中表达相同语义的合法字符设置为身份标识的前缀,包括将所述身份标识分解成身份标识前缀加身份标识后缀的固定格式,所述身份标识前缀在虚拟机聚合的维度上保持一致;所述身份标识后缀字段长度,用于表示身份标识后缀字段所包含的合法字符总数量;所述虚拟机数量字段长度,用于表示一个心跳包中所包含的虚拟机总数量字段的长度。
[0010]作为优选,所述虚拟机聚合的维度包括物理机、机柜、机房或者集群。
[0011]作为优选,所述步骤S5中存储的节点状态信息包含所有Slave主机上虚拟机节点的名称及状态映射关系。
[0012]作为优选,所述步骤S3中的自定义心跳包编码规则如下:S3.1:所述自定义心跳包编码规则遵循心跳包报文的第一个字段是虚拟机数量的标准,设置为该Slave主机上虚拟机的数量,包括根据全局编码元数据和虚拟机数量字段的字节长度,设定虚拟机数量为;S3.2:所述自定义心跳包编码规则遵循心跳包报文的第二个字段是状态标识的标准,并按照固定的状态标识长度拼接每一个虚拟机的状态信息;S3.3:所述自定义心跳包编码规则遵循心跳包报文的第三个字段是身份标识的标准,并按照固定的身份标识后缀长度拼接每一个虚拟机的身份信息;S3.4:所述S3.2的状态标识的信息拼接顺序和S3.3的身份标识的信息拼接顺序保持一致。
[0013]作为优选,所述步骤S4中的自定义心跳包解码规则如下:S4.1:所述自定义心跳包解码规则从数据部分的始端进行解析,其遵循心跳包报文的第一个字段是虚拟机数量的标准,通过计算虚拟机数量字段的字节长度,得到该Slave主机上虚拟机的总数;S4.2:所述自定义心跳包解码规则遵循心跳包报文的第二个字段是虚拟机状态标识的标准,基于全局编码元数据中的状态标识编码表,分别解析个比特长度的数据,
获取该Slave主机上个虚拟机的状态列表;S4.3:所述自定义心跳包解码规则遵循心跳包报文的第三个字段是虚拟机身份标识的标准,基于全局编码元数据中的身份标识编码表,分别解析个比特长度的数据,获取该Slave主机上个虚拟机的身份标识后缀列表;S4.4:所述自定义心跳包解码规则遵循身份标识前缀匹配的标准,通过Slave主机的信息查询全局编码元数据中的身份标识前缀键值对,获取该Slave主机对应的身份标识前缀,并与解析出来的虚拟机身份标识后缀拼接,最终得到完整的虚拟机身份标识信息。
[0014]作为优选,所述自定义心跳包编码规则和自定义心跳包解码规则,在不同通信协议上具备通用性,所述的自定义心跳包编码规则和自定义心跳包解码规则作用于通信协议报文中的数据部分;所述数据部分的字段以字节为单位。
[0015]本专利技术还提供了一种监测虚拟机集群中节点状态的计算机系统,包括Master主机以及与其连接的多个Slave主机,所述Master主机设有心跳包监测模块、状态信息存储模块和全局编码元数据管理模块,所述Slave主机设有心跳包发送模块,所述心跳包发送模块用于构造心跳包报文,运行在虚拟机集群中的所有Slave主机上,且由心跳包上报定时任务控制;所述心跳包监测模块用于监测和解析心跳包报文,运行在虚拟机集群中的Master主机上,且由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种监测虚拟机集群中节点状态的方法,其特征在于,包括以下步骤:S1:集群管理员定义全局编码元数据信息;S2:在虚拟机集群中的所有Master主机上部署并运行心跳包监测定时任务,在所有Slave主机上部署并运行心跳包上报定时任务,并将全局编码元数据分发给Slave主机;S3:Slave主机上运行的心跳包上报定时任务按自定义心跳包编码规则,基于全局编码元数据对虚拟机身份及状态信息进行编码,构造心跳包报文并发送给Master主机;S4:Master主机监听预设的通信端口,并根据自定义心跳包解码规则和全局编码元数据对收到的心跳包报文进行解码,计算得到Slave主机上虚拟机节点的状态;S5:Master主机将虚拟机集群中节点状态信息进行存储;S6:通过心跳包监测定时任务控制,进入下一个状态监测周期,重复步骤S3到步骤S5,持续进行监测;心跳包监测定时任务结束,监测停止。2.根据权利要求1所述的一种监测虚拟机集群中节点状态的方法,其特征在于,所述步骤S1中的全局编码元数据,包括身份标识编码表、状态标识编码表、身份标识前缀匹配表、身份标识后缀字段长度以及虚拟机数量字段长度。3.根据权利要求2所述的一种监测虚拟机集群中节点状态的方法,其特征在于:所述身份标识编码表,将身份标识所包含的所有合法字符映射到一个长度最小的编码空间中,所述身份标识的编码长度为,单位是比特;所述状态标识编码表,将状态标识所包含的所有合法字符映射到一个长度最小的编码空间中,所述状态标识的编码长度为,单位是比特;所述身份标识前缀匹配表,将身份标识中表达相同语义的合法字符设置为身份标识的前缀,包括将所述身份标识分解成身份标识前缀加身份标识后缀的固定格式,所述身份标识前缀在虚拟机聚合的维度上保持一致;所述身份标识后缀字段长度,用于表示身份标识后缀字段所包含的合法字符总数量;所述虚拟机数量字段长度,用于表示一个心跳包中所包含的虚拟机总数量字段的长度,单位是字节。4.根据权利要求3所述的一种监测虚拟机集群中节点状态的方法,其特征在于,所述虚拟机聚合的维度包括物理机、机柜、机房或者集群。5.根据权利要求1所述的一种监测虚拟机集群中节点状态的方法,其特征在于,所述步骤S5中存储的节点状态信息包含所有Slave主机上虚拟机节点的名称及状态映射关系。6.根据权利要求1所述的一种监测虚拟机集群中节点状态的方法,其特征在于,所述步骤S3中的自定义心跳包编码规则如下:S3.1:所述自定义心跳包编码规则遵循心跳包报文的第一个字段是虚拟机数量的标准,设置为该Slave主机上虚拟机的数量,包括根据全局编码元数据中虚拟机数量字段的长度,设定虚拟机数量为;S3.2:所述自定义心跳包编码规则遵循心跳包报文的第二个字段是状态标识的标准,并按照固定的状态标识长度拼接每一个虚拟机的状态信息,状...

【专利技术属性】
技术研发人员:叶玥王瑾苏慧
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1