实现负载均衡的计算机设备、系统和方法与流程

文档序号:11532414阅读:320来源:国知局
实现负载均衡的计算机设备、系统和方法与流程

本发明涉及信息技术,特别涉及实现负载均衡的计算机设备、系统和方法。



背景技术:

负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。

随着云计算技术的发展,各种业务迁移到云环境中,对负载均衡器也提出了云化的需求,虚拟化负载均衡器(vlb,virtualloadbalancer)应运而生。

目前虚拟化负载均衡器大部分是传统负载均衡器的虚拟化和软件化,这些都无法满足云计算的对vlb在高可靠性,水平扩展,高带宽方面的需求。为提高vlb服务的可靠性,往往通过两台vlb以主备关系提供服务。主备vlb之间通过虚拟路由冗余协议(vrrp,virtualrouterredundancyprotocol)协议传递心跳信息,当备机发现主机宕机,备机接替主机继续进行工作。这种通过vrrp实现的主备关系,在主机宕机后,备机接着工作,主备切换需要一定的时间,造成切换过程中流量的中断。并且,所有的负载均衡业务都要到一个负载均衡节点执行负载均衡,当负载均衡的访问量大的时候,集中的负载均衡节点带宽会成为瓶颈,造成业务的拥塞和延迟。



技术实现要素:

本发明实施例提供一种实现负载均衡的计算机设备、系统和方法,以解决现有技术中主备负载均衡模式因切换造成的业务中断,以及集中式的负载均衡造成的拥塞的问题。

一方面,本发明实施例提供了一种实现负载均衡的方法,应用于包括至少两台计算机设备的计算机系统,其中,每台计算机设备包括中央处理器和内存,所述至少两台计算机设备中包括第一计算机设备和第二计算机设备,所述第一计算机设备作为云管理平台,所述第二计算机设备运行有发起业务的虚拟机,所述业务为负载均衡业务,包括:

所述第一计算机设备获得待创建在所述第二计算机设备的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器;

所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述第二计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到所述负载均衡器;

所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器;

所述第二计算机设备上的所述负载均衡器接收到所述业务报文后,选择至少一个后端服务器执行所述业务,所述后端服务器用于执行所述负载均衡业务。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式包括:

所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机,将所述负载均衡器的mac地址发送给所述发起业务的虚拟机;

所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器包括:

所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文,所述虚拟交换机根据所述业务报文的目的地址将所述业务报文发送到所述负载均衡器。

在一种可能的设计中,在所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文之前,所述方法还包括:

所述发起业务的虚拟机发送控制报文到所述虚拟交换机,所述控制报文携带所述vip;

所述虚拟交换机向所述发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述负载均衡器的mac地址。

在一种可能的设计中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,包括:

所述第一计算机设备指示所述负载均衡器将所述负载均衡器的mac地址发送给所述发起业务的虚拟机;或者,

所述第一计算机设备在所述发起业务的虚拟机上配置所述负载均衡器的mac地址;

相应的,所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器包括:

所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文,所述第二计算机设备上部署的虚拟交换机根据所述业务报文的目的地址将所述业务报文发送到所述负载均衡器。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器包括:

所述第一计算机设备在所述第二计算机设备上创建第一台发起所述负载均衡业务的虚拟机后,创建所述负载均衡器。

在一种可能的设计中,,所述方法还包括:

所述第一计算机设备在所述第二计算机设备上创建的最后一台发起所述负载均衡业务的虚拟机被删除后,删除所述创建的负载均衡器。

在一种可能的设计中,所述方法还包括:

所述选择的后端服务器将执行所述业务的结果直接返回给所述发起业务的虚拟机;或者,

所述选择的后端服务器将所述业务的执行结果返回给所述负载均衡器,由所述负载均衡器将所述执行结果返回给所述发起业务的虚拟机。

另一方面,本发明实施例提供了一种实现负载均衡的方法,应用于包括至少三台计算机设备的计算机系统,其中,每台计算机设备包括中央处理器和内存,所述至少三台计算机设备中包括第一计算机设备,所述第一计算机设备作为云管理平台,所述至少三台计算机设备中除所述第一计算机设备之外的计算机设备作为业务计算机设备,每台业务计算机设备上运行有发起业务的虚拟机,所述业务为负载均衡业务,包括:

所述第一计算机设备分别获得待创建在每台业务计算机设备上的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述待创建在所述每台业务计算机设备的负载均衡器的配置信息,在所述每台业务计算机设备上创建所述每台业务计算机设备的本地负载均衡器;

所述第一计算机设备在所述每台业务计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述每台业务计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到本地的负载均衡器,以使得所述每台业务计算机设备上的本地的负载均衡器对本业务计算机设备上的所述发起业务的虚拟机发起的业务报文进行负载均衡的处理。

在一种可能的设计中,所述第一计算机设备在所述每台业务计算机设备上配置所述负载均衡业务的转发模式包括:

所述第一计算机设备配置所述每台业务计算机设备上部署的虚拟交换机,将本地的负载均衡器的mac地址发送给本地的所述发起业务的虚拟机。

在一种可能的设计中,所述第一计算机设备配置所述每台业务计算机设备上部署的虚拟交换机,将所述本地的负载均衡器的mac地址发送给本地的所述发起业务的虚拟机之后还包括:

所述每台业务计算机设备上发起业务的虚拟机发送控制报文到本地的所述虚拟交换机,所述控制报文携带所述vip;

所述每台业务计算机设备上本地的虚拟交换机向所述本地的发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述本地的负载均衡器的mac地址。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述每台业务计算机设备上创建所述负载均衡器之前,还包括:

所述第一计算机设备获知第一业务计算机设备上创建了第一台所述发起业务的虚拟机,在所述第一业务计算机设备上创建所述第一业务计算机设备的负载均衡器,直至在每台业务计算机设备上创建所述每台业务计算机设备上的本地负载均衡器。

在一种可能的设计中,所述负载均衡器包括负载均衡虚拟机、负载均衡容器或负载均衡的namespace。

另一方面,本发明实施例提供了一种实现负载均衡的方法,应用于包括至少两台计算机设备的计算机系统,其中,每台计算机设备包括中央处理器和内存,所述至少两台计算机设备中包括第一计算机设备和第二计算机设备,所述第一计算机设备作为云管理平台,所述第二计算机设备运行有发起业务的虚拟机,所述业务为负载均衡业务,包括:

所述第一计算机设备获得待创建在所述第二计算机设备的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器;

所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述第二计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到所述负载均衡器,以使得所述负载均衡器接收到所述业务报文后,选择执行所述业务的后端服务器。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,包括:

所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机将所述负载均衡器的mac地址发送给所述发起业务的虚拟机,以使得所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文。

在一种可能的设计中,所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机将所述负载均衡器的mac地址发送给所述发起业务的虚拟机之后还包括:

所述发起业务的虚拟机发送控制报文到所述虚拟交换机,所述控制报文携带所述vip;

所述虚拟交换机向所述发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述负载均衡器的mac地址。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡包括:

所述第一计算机设备在所述第二计算机设备上创建第一台发起所述负载均衡业务的虚拟机后,创建所述负载均衡器。

在一种可能的设计中,所述方法还包括:

所述第一计算机设备在所述第二计算机设备上创建的最后一台发起所述负载均衡业务的虚拟机被删除后,删除所述创建的负载均衡器。

另一方面,本发明实施例提供了一种实现负载均衡的计算机系统,包括至少两台计算机设备,其中,每台计算机设备包括中央处理器和内存,所述至少两台计算机设备中包括第一计算机设备和第二计算机设备,所述第一计算机设备作为云管理平台,所述第二计算机设备运行有发起业务的虚拟机,所述业务为负载均衡业务,其中,

所述第一计算机设备获得待创建在所述第二计算机设备的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器;

所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述第二计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到所述负载均衡器;

所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器;

所述第二计算机设备上的所述负载均衡器接收到所述业务报文后,选择至少一个后端服务器执行所述业务,所述后端服务器用于执行所述负载均衡业务。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式包括:

所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机,将所述负载均衡器的mac地址发送给所述发起业务的虚拟机;

所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器包括:

所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文,所述虚拟交换机根据所述业务报文的目的地址将所述业务报文发送到所述负载均衡器。

在一种可能的设计中,在所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文之前,还包括:

所述发起业务的虚拟机发送控制报文到所述虚拟交换机,所述控制报文携带所述vip;

所述虚拟交换机向所述发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述负载均衡器的mac地址。

在一种可能的设计中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,包括:

所述第一计算机设备指示所述负载均衡器将所述负载均衡器的mac地址发送给所述发起业务的虚拟机;或者,

所述第一计算机设备在所述发起业务的虚拟机上配置所述负载均衡器的mac地址;

相应的,所述第二计算机设备上的所述发起业务的虚拟机根据所述转发模式,发送所述业务报文到所述负载均衡器包括:

所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文,所述第二计算机设备上部署的虚拟交换机根据所述业务报文的目的地址将所述业务报文发送到所述负载均衡器。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器包括:

所述第一计算机设备在所述第二计算机设备上创建第一台发起所述负载均衡业务的虚拟机后,创建所述负载均衡器。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上创建的最后一台发起所述负载均衡业务的虚拟机被删除后,删除所述创建的负载均衡器。

在一种可能的设计中,所述选择的后端服务器将执行所述业务的结果直接返回给所述发起业务的虚拟机;或者,

所述选择的后端服务器将所述业务的执行结果返回给所述负载均衡器,由所述负载均衡器将所述执行结果返回给所述发起业务的虚拟机。

另一方面,本发明实施例提供了一种实现负载均衡的计算机系统,所述计算机系统包括至少三台计算机设备,其中,每台计算机设备包括中央处理器和内存,所述至少三台计算机设备中包括第一计算机设备,所述第一计算机设备作为云管理平台,所述至少三台计算机设备中除所述第一计算机设备之外的计算机设备作为业务计算机设备,每台业务计算机设备上运行有发起业务的虚拟机,所述业务为负载均衡业务,其中,

所述第一计算机设备分别获得待创建在每台业务计算机设备上的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述待创建在所述每台业务计算机设备的负载均衡器的配置信息,在所述每台业务计算机设备上创建所述每台业务计算机设备的本地负载均衡器;

所述第一计算机设备在所述每台业务计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述每台业务计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到本地的负载均衡器,以使得所述每台业务计算机设备上的本地的负载均衡器对本业务计算机设备上的所述发起业务的虚拟机发起的业务报文进行负载均衡的处理。

在一种可能的设计中,所述第一计算机设备在所述每台业务计算机设备上配置所述负载均衡业务的转发模式包括:

所述第一计算机设备配置所述每台业务计算机设备上部署的虚拟交换机,将本地的负载均衡器的mac地址发送给本地的所述发起业务的虚拟机。

在一种可能的设计中,所述第一计算机设备配置所述每台业务计算机设备上部署的虚拟交换机,将所述本地的负载均衡器的mac地址发送给本地的所述发起业务的虚拟机之后还包括:

所述每台业务计算机设备上发起业务的虚拟机发送控制报文到本地的所述虚拟交换机,所述控制报文携带所述vip;

所述每台业务计算机设备上本地的虚拟交换机向所述本地的发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述本地的负载均衡器的mac地址。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述每台业务计算机设备上创建所述负载均衡器之前,还包括:

所述第一计算机设备获知第一业务计算机设备上创建了第一台所述发起业务的虚拟机,在所述第一业务计算机设备上创建所述第一业务计算机设备的负载均衡器,直至在每台业务计算机设备上创建所述每台业务计算机设备上的本地负载均衡器。

在一种可能的设计中,所述负载均衡器包括负载均衡虚拟机、负载均衡容器或负载均衡的namespace。

另一方面,本发明实施例提供了一种实现负载均衡的计算机系统,所述计算机系统包括至少两台计算机设备,其中,每台计算机设备包括中央处理器和内存,所述至少两台计算机设备中包括第一计算机设备和第二计算机设备,所述第一计算机设备作为云管理平台,所述第二计算机设备运行有发起业务的虚拟机,所述业务为负载均衡业务,其中,

所述第一计算机设备获得待创建在所述第二计算机设备的负载均衡器的配置信息,所述负载均衡器的配置信息包括所述负载均衡器的标识、所述负载均衡器的虚拟化ip地址vip,所述负载均衡器的vip指示所述负载均衡业务;

所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡器;

所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,所述转发模式使得所述第二计算机设备上的所述发起业务的虚拟机发起的所述负载均衡业务的业务报文定向转发到所述负载均衡器,以使得所述负载均衡器接收到所述业务报文后,选择执行所述业务的后端服务器。

在一种可能的设计中,所述第一计算机设备在所述第二计算机设备上配置所述负载均衡业务的转发模式,包括:

所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机将所述负载均衡器的mac地址发送给所述发起业务的虚拟机,以使得所述发起业务的虚拟机发送所述负载均衡器的mac地址作为目的地址的所述业务报文。

在一种可能的设计中,所述第一计算机设备配置所述第二计算机设备上部署的虚拟交换机将所述负载均衡器的mac地址发送给所述发起业务的虚拟机之后还包括:

所述发起业务的虚拟机发送控制报文到所述虚拟交换机,所述控制报文携带所述vip;

所述虚拟交换机向所述发起业务的虚拟机发送所述控制报文的响应消息,所述响应消息中携带所述负载均衡器的mac地址。

在一种可能的设计中,所述第一计算机设备根据所述配置信息,在所述第二计算机设备上创建所述负载均衡包括:

所述第一计算机设备在所述第二计算机设备上创建第一台发起所述负载均衡业务的虚拟机后,创建所述负载均衡器。

在一种可能的设计中,所述方法还包括:

所述第一计算机设备在所述第二计算机设备上创建的最后一台发起所述负载均衡业务的虚拟机被删除后,删除所述创建的负载均衡器。

为实现上述目的,本发明实施例的第一方面提供了一种计算机设备,包括中央处理器cpu、内存和存储设备,所述计算机设备中还包括第一虚拟机、负载均衡虚拟机和虚拟交换机,所述第一虚拟机和所述负载均衡虚拟机是在所述计算机设备中创建的虚拟机;

所述第一虚拟机,用于发送业务报文;

所述虚拟交换机,用于接收所述第一虚拟机发送的所述业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述负载均衡虚拟机;

所述负载均衡虚拟机,用于接收所述虚拟交换机转发的所述业务报文,基于负载均衡方式转发所述业务报文。

所述负载均衡虚拟机基于负载均衡方式转发所述业务报文可以是:所述负载均衡虚拟机在收到业务报文后,首先判断是否已经为所述业务报文分配了一个后端服务器为其服务,如果已经分配了后端服务器,则将该业务报文发送给已经分配的后端服务器。如果还没有分配后端服务器,则通过负载均衡算法,选择一个后端服务器为其服务。所述负载均衡算法包括但不限于:轮询、加权轮询、随机、最小连接或源地散列,基于位置优先的加权轮询等。所述位置优先的加权轮询方式,可以优先选择在发起业务报文的虚拟机所在的计算机设备中的后端服务器,这样能够节省后端服务器处理业务报文的速度,节省网络带宽。

结合第一方面,本发明实施例第一方面的第一种可能的实现方式中,所述虚拟交换机只转发所述业务报文给所述负载均衡虚拟机包括:

所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机。

结合第一方面的第一种可能的实现方式,本发明实施例第一方面的第二种可能的实现方式中,所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机包括:

所述虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述负载均衡虚拟机的mac地址。即所述虚拟交换机可以根据配置的转发模式对所述第一虚拟机的业务报文进行定向处理,使得所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

结合第一方面的第二种可能的实现方式,本发明实施例第一方面的第三种可能的实现方式中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。例如所述控制报文可以是地址解析协议arp报文,所述转发模式可以是arp代答模式,所述第一虚拟机可以通过arp代答模式将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机。可选的,当控制报文是icmp报文时,所述转发模式也可以是邻居发现协议ndp代答模式。

结合第一方面、第一方面的第一种、第二种或第三种可能的实现方式,本发明实施例第一方面的第四种可能的实现方式中,所述计算机设备还包括虚拟负载均衡代理单元;

所述虚拟负载均衡代理单元,用于接收创建负载均衡虚拟机的配置信息,控制所述负载均衡虚拟机的创建或删除,以及控制所述负载均衡虚拟机与所述虚拟交换机之间连接的建立。

所述虚拟负载均衡代理单元在指示所述虚拟机管理单元根据所述创建负载均衡虚拟机的配置信息创建所述第一负载均衡虚拟机时,向所述虚拟机管理单元发送通知信息,所述通知信息包括创建所述第一负载均衡虚拟机的虚拟机参数信息,所述第一负载均衡虚拟机的虚拟机参数信息包括但不限于:虚拟中央处理器的个数,虚拟内存的大小,以及所述负载均衡虚拟机所在的逻辑网络等信息。

上述创建负载均衡虚拟机的配置信息,是用户通过云管理平台(所述第二计算机设备)下发的,所述配置信息包括但不限于:负载均衡虚拟机的标识,负载均衡虚拟机的ip地址,以及与该负载均衡虚拟机相关的后端服务器的信息。所述后端服务器的信息包括但不限于:后端服务器的标识,后端服务器的网络间互连协议(ip,internetprotocol)地址,后端服务器健康检查的方法等。其中,后端服务器的健康检查方法是指负载均衡虚拟机通过检查后端服务器的健康状态的方法。上述后端服务器是提供具体业务的服务器,负载均衡虚拟机根据接收到的业务报文,通过负载均衡算法等负载均衡方式在后端服务器中选择一个,作为处理所述业务报文的服务器。本发明实施例中,后端服务器可以是一个虚拟机,也可以是一个具体的物理服务器。

可选的,在所述第一虚拟机是创建所述负载均衡虚拟机配置信息的用户创建的虚拟机时,并且第一虚拟机是所述用户在所述第一计算机设备上创建的第一个虚拟机时,所述第一虚拟负载均衡代理单元启动所述负载均衡虚拟机的创建。同样的,当已经配置了虚拟负载均衡业务的用户配置的最后一个虚拟机被删除时,所述第一虚拟负载均衡代理单元启动所述负载均衡虚拟机的删除。

结合第一方面、第一方面的第一种、第二种、第三种或第四种可能的实现方式,本发明实施例第一方面的第五种可能的实现方式中,所述计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力;

在所述负载均衡虚拟机通过负载均衡算法确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述负载均衡服务器转发的所述业务报文,并将处理所述业务报文的结果发送给所述负载均衡虚拟机;

所述负载均衡虚拟机,还用于将所述第二虚拟机处理所述业务报文的结果通过所述虚拟交换机发送给所述第一虚拟机。

本发明实施例的第二方面提供了一种计算机系统,包括第一计算机设备和第二计算机设备,其中,所述第一计算机设备和所述第二计算机设备分别包括中央处理器cpu、内存和存储设备,所述第一计算机设备中还包括第一虚拟机、第一负载均衡虚拟机和第一虚拟交换机,所述第一虚拟机和所述第一负载均衡虚拟机是在所述第一计算机设备中创建的虚拟机;

所述第一虚拟机,用于发送业务报文;

所述第一虚拟交换机,用于接收所述第一虚拟机发送的所述业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述第一负载均衡虚拟机;

所述第一负载均衡虚拟机,用于接收所述第一虚拟交换机转发的所述业务报文,基于负载均衡方式转发所述业务报文。

所述第一负载均衡虚拟机基于负载均衡方式转发所述业务报文可以是:所述第一负载均衡虚拟机在收到业务报文后,首先判断是否已经为所述业务报文分配了一个后端服务器为其服务,如果已经分配了后端服务器,则将该业务报文发送给已经分配的后端服务器。如果还没有分配后端服务器,则通过负载均衡算法,选择一个后端服务器为其服务。所述负载均衡算法包括但不限于:轮询、加权轮询、随机、最小连接或源地散列,基于位置优先的加权轮询等。所述位置优先的加权轮询方式,可以优先选择在发起业务报文的虚拟机所在的计算机设备中的后端服务器,这样能够节省后端服务器处理业务报文的速度,节省网络带宽。

上述第二计算机设备可以是所述计算机系统中的云平台管理设备,实现对所述第一计算机设备的管理和配置,包括对所述第一计算机设备中的虚拟机进行配置和管理。

结合第二方面,本发明实施例第二方面的第一种可能的实现方式中,所述第一虚拟交换机只转发所述业务报文给所述第一负载均衡虚拟机包括:

所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述第一负载均衡虚拟机的mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于所述第一负载均衡虚拟机的mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述第一负载均衡虚拟机的mac地址,发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

结合第二方面的第一种可能的实现方式,本发明实施例第二方面的第二种可能的实现方式中,

所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机包括:所述第一虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述第一负载均衡虚拟机的mac地址。即可通过虚拟机管理单元配置所述第一虚拟交换机的转发模式,所述第一虚拟交换机根据配置的转发模式对所述第一虚拟机的业务报文进行定向处理,使得所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

结合第二方面的第二种可能的实现方式,本发明实施例第二方面的第三种可能的实现方式中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。例如所述控制报文可以是地址解析协议arp报文,所述转发模式可以是arp代答模式,所述第一虚拟机可以通过arp代答模式将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机。可选的,当控制报文是icmp报文时,所述转发模式也可以是邻居发现协议ndp代答模式。

结合第二方面、第二方面的第一种、第二种或第三种可能的实现方式,本发明实施例第二方面的第四种可能的实现方式中,所述第一计算机设备还包括第一虚拟负载均衡代理单元,所述第二计算机设备还包括虚拟负载均衡管理单元和虚拟机管理单元;

所述虚拟负载均衡管理单元,用于接收创建所述第一负载均衡虚拟机的配置信息,并将所述创建第一负载均衡虚拟机的配置信息发送给所述第一虚拟负载均衡代理单元;所述第一虚拟负载均衡代理单元,用于接收所述创建第一负载均衡虚拟机的配置信息,指示所述虚拟机管理单元根据所述创建第一负载均衡虚拟机的配置信息创建所述第一负载均衡虚拟机。

所述第一虚拟负载均衡代理单元在指示所述虚拟机管理单元根据所述创建负载均衡虚拟机的配置信息创建所述第一负载均衡虚拟机时,向所述虚拟机管理单元发送通知信息,所述通知信息包括创建所述第一负载均衡虚拟机的虚拟机参数信息,所述第一负载均衡虚拟机的虚拟机参数信息包括但不限于:虚拟中央处理器的个数,虚拟内存的大小,以及所述负载均衡虚拟机所在的逻辑网络等信息。

可选的,所述虚拟负载均衡管理单元也可以直接指示所述虚拟机管理单元根据所述创建第一负载均衡虚拟机的配置信息创建所述第一负载均衡虚拟机。

上述创建第一负载均衡虚拟机的配置信息,是用户通过云管理平台(所述第二计算机设备)下发的,所述配置信息包括但不限于:负载均衡虚拟机的标识,负载均衡虚拟机的ip地址,以及与该负载均衡虚拟机相关的后端服务器的信息。所述后端服务器的信息包括但不限于:后端服务器的标识,后端服务器的网络间互连协议(ip,internetprotocol)地址,后端服务器健康检查的方法等。其中,后端服务器的健康检查方法是指负载均衡虚拟机通过检查后端服务器的健康状态的方法。上述后端服务器是提供具体业务的服务器,负载均衡虚拟机根据接收到的业务报文,通过负载均衡算法等负载均衡方式在后端服务器中选择一个,作为处理所述业务报文的服务器。本发明实施例中,后端服务器可以是一个虚拟机,也可以是一个具体的物理服务器。

结合第二方面的第四种可能的实现方式,本发明实施例第二方面的第五种可能的实现方式中,所述第一虚拟负载均衡代理单元,还用于指示所述虚拟机管理单元为所述第一负载均衡虚拟机配置第一虚拟网卡并建立所述第一虚拟网卡与所述第一虚拟交换机之间的连接。其中,所述虚拟机管理单元建立所述第一虚拟网卡与所述第一虚拟交换机之间的连接可以通过配置虚拟交换机的网络标识来实现,所述网络标识是虚拟交换机的网络接口的标识。并且,所述虚拟机管理单元根据所述第一虚拟负载均衡代理单元的指示建立所述第一虚拟网卡时,还可以根据所述创建负载均衡虚拟机的配置信息,为创建的所述第一虚拟网卡分配ip地址和mac地址。

结合第二方面的第四种或第五种可能的实现方式,本发明实施例第二方面的第六种可能的实现方式中,所述第一虚拟机是创建所述第一负载均衡虚拟机配置信息的用户创建的虚拟机;所述虚拟负载均衡管理单元,还用于接收创建所述第一虚拟机的配置信息,并在判断所述第一虚拟机是所述用户在所述第一计算机设备上创建的第一个虚拟机时,将创建所述第一虚拟机的信息通知所述第一虚拟负载均衡代理单元;所述第一虚拟负载均衡代理单元,用于在接收到所述虚拟负载均衡管理单元发送的创建所述第一虚拟机的通知时,指示所述虚拟机管理单元创建所述第一负载均衡虚拟机。所述虚拟负载均衡管理单元也可以直接通知所述虚拟机管理单元创建所述第一负载均衡虚拟机。

同样的,当已经配置了虚拟负载均衡业务的用户配置的最后一个虚拟机被删除时,所述虚拟负载均衡管理单元通知所述第一虚拟负载均衡代理单元指示所述虚拟机管理单元删除所述第一负载均衡虚拟机,或直接通知所述虚拟机管理单元删除所述第一负载均衡虚拟机。

结合第二方面、第二方面的第一种至第六种任一可能的实现方式,本发明实施例第二方面的第七种可能的实现方式中,所述第一计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力;

在所述第一负载均衡虚拟机通过负载均衡方式确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述第一负载均衡虚拟机转发的所述业务报文,并将处理所述业务报文的结果发送给所述第一负载均衡虚拟机;

所述第一负载均衡虚拟机,还用于将所述第二虚拟机处理所述业务报文的结果通过所述第一虚拟交换机发送给所述第一虚拟机。

结合第二方面、第二方面的第一种至第七种任一可能的实现方式,本发明实施例第二方面的第八种可能的实现方式中,所述计算机系统还包括第三计算机设备,所述第三计算机设备包括第二虚拟负载均衡代理单元、第二虚拟交换机和第三虚拟机;

所述第二虚拟负载均衡代理单元,用于接收所述虚拟负载均衡管理单元发送的创建第二负载均衡虚拟机的配置信息,基于所述创建第二负载均衡虚拟机的配置信息,指示所述虚拟机管理单元创建所述第二负载均衡虚拟机,以及指示所述虚拟机管理单元为所述第二负载均衡虚拟机配置第二虚拟网卡并建立所述第二虚拟网卡与所述第二虚拟交换机之间的连接;

所述第二虚拟交换机,用于接收所述第三虚拟机发起的第二业务报文,在所述第二业务报文需要负载均衡处理时,只转发所述第二业务报文给所述第二负载均衡虚拟机;

所述第二负载均衡虚拟机,用于接收所述第二虚拟交换机转发的所述第二业务报文,基于负载均衡方式转发所述第二业务报文。

结合第二方面的第八种可能的实现方式,本发明实施例第二方面的第九种可能的实现方式中,所述虚拟机管理单元为所述第一负载均衡虚拟机配置第一ip地址和第一mac地址,以及为所述第二负载均衡虚拟机配置第二ip地址和第二mac地址;其中,所述第一ip地址与所述第二ip地址相同,或所述第一mac地址与所述第二mac地址相同。

可选的,所述第一计算机设备除包括中央处理器cpu、内存和存储设备之外,还可以包括网络硬件等硬件设备;网络硬件可以是交换设备(网卡等)、路由器和/或其他网络设备,用于实现多个设备之间的通信,多个设备之间可以通过无线或有线方式连接连接。

结合第二方面、第二方面的第一种至第九种任一可能的实现方式,本发明实施例第二方面的第十种可能的实现方式中,所述第二计算机设备还包括虚拟负载均衡存储设备,用于存储创建负载均衡虚拟机的配置信息。所述虚拟负载均衡存储设备可以是所述第二计算机设备中的存储设备,也可以是独立与所述第二计算机设备的存储设备。

本发明实施例的第三方面提供了一种计算机系统,包括第一计算机设备、第二计算机设备和第三计算机设备,其中,所述第一计算机设备、第二计算机设备和第三计算机设备分别包括中央处理器cpu、内存和存储设备,所述第二计算机设备对所述第一计算机设备和所述第三计算机设备上的虚拟机进行配置和管理,所述第一计算机设备包含第一虚拟交换机,所述第三计算机设备包含第二虚拟交换机,所述第二计算机设备,用于接收在所述第一计算机设备上创建负载均衡虚拟机的配置信息,在所述第一计算机设备中创建第一负载均衡虚拟机,并建立所述第一负载均衡虚拟机与所述第一虚拟交换机的连接;以及接收在所述第三计算机设备上创建负载均衡虚拟机的配置信息,在所述第三计算机设备中创建第二负载均衡虚拟机,并建立所述第二负载均衡虚拟机与所述第二虚拟交换机的连接;

所述第一虚拟交换机,用于接收所述第一计算机设备中的第一虚拟机发送的第一业务报文,在所述第一业务报文需要负载均衡处理时,只转发所述第一业务报文给所述第一负载均衡虚拟机;

所述第二虚拟交换机,用于接收所述第三计算机设备中的第二虚拟机发送的第二业务报文,在所述第二业务报文需要负载均衡处理时,只转发所述第二业务报文给所述第二负载均衡虚拟机。

结合第三方面,本发明实施例第三方面的第一种可能的实现方式中,所述第一虚拟交换机只转发所述第一业务报文给所述第一负载均衡虚拟机包括:

所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述第一负载均衡虚拟机的mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于所述第一负载均衡虚拟机的mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述第一负载均衡虚拟机的mac地址,发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

结合第三方面的第一种可能的实现方式,本发明实施例第三方面的第二种可能的实现方式中,所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机包括:

所述第一虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述第一负载均衡虚拟机的mac地址。即可通过虚拟机管理单元配置所述第一虚拟交换机的转发模式,所述第一虚拟交换机根据配置的转发模式对所述第一虚拟机的业务报文进行定向处理,使得所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

结合第三方面的第二种可能的实现方式,本发明实施例第三方面的第三种可能的实现方式中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。例如所述控制报文可以是地址解析协议arp报文,所述转发模式可以是arp代答模式,所述第一虚拟机可以通过arp代答模式将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机。可选的,当控制报文是icmp报文时,所述转发模式也可以是邻居发现协议ndp代答模式。

结合第三方面,第三方面的第一种至第三种任一可能的实现方式,本发明实施例第三方面的第四种可能的实现方式中,所述第一计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力;

在所述第一负载均衡虚拟机通过负载均衡方式确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述第一负载均衡服务器转发的所述业务报文,并将处理所述业务报文的结果发送给所述第一负载均衡虚拟机;

所述第一负载均衡虚拟机,还用于将所述第二虚拟机处理所述业务报文的结果通过所述第一虚拟交换机发送给所述第一虚拟机。

结合第三方面,第三方面的第一种至第四种任一可能的实现方式,本发明实施例第三方面的第五种可能的实现方式中,

所述第一负载均衡虚拟机的ip地址与所述第二负载均衡虚拟机的ip地址相同;或,

所述第一负载均衡虚拟机的mac地址与所述第二负载均衡虚拟机的mac地址相同。

第四方面,本发明实施例提供了一种实现负载均衡的方法,包括:

第二计算机设备接收在第一计算机设备上创建所述负载均衡虚拟机的配置信息,所述第一计算机设备包括中央处理器cpu、内存和存储设备,所述第一计算机设备还包括第一虚拟机和虚拟交换机;

所述第二计算机设备根据所述配置信息,在所述第一计算机设备上创建负载均衡虚拟机,并建立所述负载均衡虚拟机与所述第一计算机设备中的虚拟交换机的连接;

所述虚拟交换机接收所述第一虚拟机发送的业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述负载均衡虚拟机;

所述负载均衡虚拟机接收所述第一虚拟交换机转发的所述业务报文,基于负载均衡方式转发所述业务报文。

所述负载均衡虚拟机基于负载均衡方式转发所述业务报文可以是:所述负载均衡虚拟机在收到业务报文后,首先判断是否已经为所述业务报文分配了一个后端服务器为其服务,如果已经分配了后端服务器,则将该业务报文发送给已经分配的后端服务器。如果还没有分配后端服务器,则通过负载均衡算法,选择一个后端服务器为其服务。所述负载均衡算法包括但不限于:轮询、加权轮询、随机、最小连接或源地散列,基于位置优先的加权轮询等。所述位置优先的加权轮询方式,可以优先选择在发起业务报文的虚拟机所在的计算机设备中的后端服务器,这样能够节省后端服务器处理业务报文的速度,节省网络带宽。

结合第四方面,本发明实施例第四方面的第一种可能的实现方式中,所述虚拟交换机只转发所述业务报文给所述负载均衡虚拟机包括:

所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机。

结合第四方面的第一种可能的实现方式,本发明实施例第四方面的第二种可能的实现方式中,所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机包括:

所述虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述负载均衡虚拟机的mac地址。即可通过配置所述虚拟交换机的转发模式,所述虚拟交换机根据配置的转发模式对所述第一虚拟机的业务报文进行定向处理,使得所述第一虚拟交换机将所述业务报文转发给所述负载均衡虚拟机。

结合第四方面的第二种可能的实现方式,本发明实施例第四方面的第三种可能的实现方式中,所述控制报文为地址解析协议arp报文或互联网控制消息协议icmp报文。例如所述控制报文可以是地址解析协议arp报文,所述转发模式可以是arp代答模式,所述第一虚拟机可以通过arp代答模式将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机。可选的,当控制报文是icmp报文时,所述转发模式也可以是邻居发现协议ndp代答模式。

结合第四方面,第四方面的第一种至第三种任一可能的实现方式,本发明实施例第四方面的第四种可能的实现方式中,在所述第二计算机设备根据所述配置信息,在所述第一计算机设备上创建负载均衡虚拟机之前,所述方法还包括:

所述第二计算机设备将所述配置信息发送给所述第一计算机设备;

所述第一计算机设备接收创建负载均衡虚拟机的配置信息,指示所述第二计算机设备创建所述负载均衡虚拟机。可选的,所述第二计算机设备可以直接根据所述配置信息,在所述第二计算机设备上创建所述负载均衡虚拟机。

上述创建负载均衡虚拟机的配置信息,是用户通过云管理平台(所述第二计算机设备)下发的,所述配置信息包括但不限于:负载均衡虚拟机的标识,负载均衡虚拟机的ip地址,以及与该负载均衡虚拟机相关的后端服务器的信息。所述后端服务器的信息包括但不限于:后端服务器的标识,后端服务器的网络间互连协议(ip,internetprotocol)地址,后端服务器健康检查的方法等。其中,后端服务器的健康检查方法是指负载均衡虚拟机通过检查后端服务器的健康状态的方法。上述后端服务器是提供具体业务的服务器,负载均衡虚拟机根据接收到的业务报文,通过负载均衡算法等负载均衡方式在后端服务器中选择一个,作为处理所述业务报文的服务器。本发明实施例中,后端服务器可以是一个虚拟机,也可以是一个具体的物理服务器。

结合第四方面,第四方面的第一种至第四种任一可能的实现方式,本发明实施例第四方面的第五种可能的实现方式中,所述第二计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力,所述方法还包括:

在所述负载均衡虚拟机通过负载均衡算法确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述负载均衡服务器转发的所述业务报文,并将处理所述业务报文的结果发送给所述负载均衡虚拟机;

所述负载均衡虚拟机将所述第二虚拟机处理所述业务报文的结果通过所述虚拟交换机发送给所述第一虚拟机。

本发明实施例提供的计算机设备、系统和负载均衡的方法,通过每个计算机设备中创建负载均衡虚拟机,在计算机设备中的虚拟机的业务需要进行负载均衡处理时,相关的业务报文只被发送到该计算机设备中的负载均衡虚拟机来进行负载均衡处理。由于负载均衡相关的业务报文在计算机设备中实现,不会出现多个计算机设备上的业务报文集中到一个负载均衡节点,避免了集中式的负载均衡的拥塞带来的处理的延迟。并且,当计算机设备出现故障时,该计算机设备中的虚拟机也会随之下线,不会再产生负载均衡的需求。因此,在单个计算机设备的故障带来的负载均衡虚拟机的故障,不会影响其它计算机设备上的负载均衡虚拟机,也不会存在因负载均衡虚拟机故障导致主备切换带来的业务中断。

附图说明

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

图1为为现有技术中一种实现负载均衡架构示意图;

图2为本发明实施例实现虚拟负载均衡的一种实现架构示意图;

图3为本发明实施例一种计算机设备的结构示意图;

图4为本发明实施例中计算机设备的一种具体实现结构实体图;

图5为本发明实施例第一种计算机系统实现结构示意图;

图6为本发明实施例中第一中计算机系统的一种具体实现结构实体图;

图7为本发明实施例中第一中计算机系统的另一种具体实现结构实体图;

图8为本发明实施例一种实现负载均衡方法的流程示意图;

图9为本发明实施例中另一种实现负载均衡方法的流程示意图。

具体实施方式

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

参考图1,图1为现有技术中一种实现负载均衡架构示意图。图1中包括计算机设备101、计算机设备102、计算机设备103、主虚拟负载均衡器104和备虚拟负载均衡器105。其中,计算机设备101作为云管理平台,包括中央处理器(cpu,centralprocessingunit)1011和存储设备1012(例如硬盘、固态硬盘等)等组成部件,运行云管理平台相关程序,实现对计算机设备102和计算机设备103等节点的管理和配置。计算机设备102和计算机设备103通过网络连接,计算机设备101可以根据接收到的关于创建虚拟机的配置信息,在计算机设备102或计算机设备103创建相应的虚拟机。

图1以每个计算机设备包含两个虚拟机为例进行说明。例如计算机设备102包含虚拟机10211和10212,计算机设备103包含虚拟机10311和10312。主负载均衡器104和备负载均衡器105通过主备的方式,为计算机设备102或计算机设备103中的虚拟机发出的业务报文提供负载均衡服务。主负载均衡器104和备负载均衡器105通过心跳检测的方式连接,当主负载均衡器104故障时,由备负载均衡器105接替主负载均衡器104继续为虚拟机的请求提供负载均衡服务。

这种实现负载均衡的方式,当主负载均衡节点104故障需要切换至备负载均衡节点时,在切换器件,没有负载均衡器提供负载均衡服务,造成需要进行负载均衡处理的业务报文无法被处理。同时,只有一个负载均衡器(负载均衡器104或105)处理所有虚拟机的业务报文,容易造成虚拟负载均衡器的过载和拥塞,影响的请求业务的及时处理,降低了用户的体验度。

为解决上述虚拟负载均衡采用主备方式在切换时造成的中断,以及集中在一个虚拟负载均衡节点时造成的拥塞,本发明实施例提供一种虚拟负载均衡的方法、设备和系统,通过创建分布式负载均衡虚拟机,将负载均衡功能卸载到每个节点设备侧,不需要主备切换的集中负载均衡模式,以避免主备切换时造成的中断和集中式负载均衡所带来的拥塞。

为清楚地描述技术方案,本发明实施例以一个云管理平台,两个计算机设备节点组成的网络为例进行说明。如图2所示,图2为本发明实施例实现虚拟负载均衡的一种实现架构示意图。其中,计算机设备201作为云管理平台,实现对计算机设备202和计算机设备203的虚拟化的管理和配置。需要说明的是,图2以两个计算机设备为例对本发明实施例的方案进行描述,在具体实现时,作为云平台的计算机设备201还可以配置和管理2个以上的计算机设备,本发明实施例不限定具体的计算机设备的个数。

以图2中的计算机设备202为例,对本发明实施例中计算机设备的组成部分进行说明。计算机设备202可以包括计算硬件20231、存储硬件20232、网络硬件20233组成的硬件资源层2023。计算硬件20231可以为专用的处理器或通用的用于提供处理和计算功能的处理器。存储硬件20232用于提供存储能力,该存储能力可以是存储硬件20232本身提供的(例如一台服务器的本地内存或本地硬盘),也可以通过网络提供(例如服务器通过网络连接一个网络存储设备)。网络硬件20233可以是交换设备(网卡等)、路由器和/或其他网络设备,网络硬件20233用于实现多个设备之间的通信,多个设备之间通过无线或有线连接。计算机设备202中的虚拟化层用于抽象硬件资源层的硬件资源,以提供虚拟资源。计算机设备202中的操作系统2022,包括但不限于运行虚拟化管理的虚拟化层hypervisor20221和虚拟交换机20222。虚拟化层hypervisor20221对所述计算机设备202中的虚拟机(例如虚拟机20213等)进行管理。虚拟交换机20222为所述hypervisor20221所管理的虚拟机之间和虚拟机与物理网络之间提供网络连接功能,虚拟负载均衡代理单元20211通过虚拟机化层hypervisor20221对计算机设备202中的负载均衡虚拟机20212进行配置和管理。

其中,计算机设备201作为云管理平台,运行云管理平台相关程序,实现对计算机设备202和计算机设备203的管理和配置,包括对所述计算机设备202和计算机设备203中的虚拟机进行配置和管理。计算机设备202和计算机设备203,作为云管理平台控制下的设备节点,提供虚拟机等相关的服务或业务。

需要说明的是,图2中,计算机设备201包括计算硬件20131、存储硬件20132、网络硬件20133组成的硬件资源层2013。计算硬件20131可以为专用的处理器或通用的用于提供处理和计算功能的处理器。存储硬件20132用于提供存储能力,该存储能力可以是存储硬件20132本身提供的(例如一台服务器的本地内存或本地硬盘),也可以通过网络提供(例如服务器通过网络连接一个网络存储设备)。网络硬件20133可以是交换设备(网卡等)、路由器和/或其他网络设备,网络硬件20133用于实现多个设备之间的通信,多个设备之间通过无线或有线连接。计算机设备201中的虚拟化层用于抽象硬件资源层的硬件资源,以提供虚拟资源。计算机设备201中的操作系统2012,包括但不限于运行虚拟化管理的虚拟化层hypervisor20121。

下面以用户通过云管理平台在计算机设备202申请虚拟机、且需要对申请的虚拟机的业务报文进行负载均衡处理为例,对本发明实施例提供的负载均衡的实现方式进行说明。

本发明实施例中,可以通过负载均衡器实现对申请的虚拟机的业务报文进行负载均衡处理,即通过创建负载均衡器,实现对申请的虚拟机的业务报文进行负载均衡处理。所述负载均衡器包括但不限于虚拟机、namespace或容器等实现方式。本发明实施例以虚拟机作为负载均衡器为例进行说明。可以理解,对于以namespace或容器作为负载均衡器的实现方式,可以参照以虚拟机作为负载均衡器的实现方式来实现。

本发明实施例中,云管理平台实现对网络、存储、计算等资源的统一调度管理,以及在此之上的业务自动化编排,实现了计费、流程、日志、应用交付的运营功能,最终按使用量付费的模式,向用户和管理员提供可用的、便捷的、按需的网络访问,使用户和管理员可以访问可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务等)。

参考图2,作为云管理平台的计算机设备201包括虚拟负载均衡管理单元20111和虚拟机管理单元20112。

所述虚拟负载均衡管理单元20111,用于接收创建负载均衡虚拟机的配置信息,将所述创建负载均衡虚拟机的配置信息存入虚拟负载均衡数据设备20114。所述虚拟负载均衡管理单元20111还可以将所述创建负载均衡虚拟机的配置信息发送给虚拟负载均衡代理单元20211。

所述虚拟机管理单元20112,用于根据所述创建负载均衡虚拟机的配置信息,创建或删除负载均衡虚拟机20212。

其中,所述创建负载均衡虚拟机的配置信息是用户通过云管理平台下发的,所述配置信息包括但不限于:负载均衡虚拟机的标识,负载均衡虚拟机的ip地址,例如虚拟化ip(vip,virutalipaddress)地址,以及与该负载均衡虚拟机相关的后端服务器的信息。所述负载均衡虚拟机的vip地址,是所述负载均衡虚拟机的ip地址。所述后端服务器的信息包括但不限于:后端服务器的标识,后端服务器的网络间互连协议(ip,internetprotocol)地址,后端服务器健康检查的方法等。其中,后端服务器的健康检查方法是指负载均衡虚拟机通过检查后端服务器的健康状态的方法。上述后端服务器是提供具体业务的服务器,负载均衡虚拟机根据接收到的业务报文,通过负载均衡算法等负载均衡方式在后端服务器中选择一个,作为处理所述业务报文的服务器。本发明实施例中,后端服务器可以是一个虚拟机,也可以是一个具体的物理服务器。

图2中,虚拟负载均衡数据设备20114用于存储创建负载均衡虚拟机的配置信息,可以是所述计算机设备201中的存储设备,也可以是独立于所述计算机设备201的存储设备,本发明实施例不限定具体的保存所述创建负载均衡虚拟机的配置信息的方式。

所述虚拟机管理单元20112可以直接根据所述虚拟负载均衡管理单元20111的指示,创建或删除负载均衡虚拟机20212;也可以根据计算机设备202中的虚拟负载均衡代理单元20211的指示,创建或删除负载均衡虚拟机20212。

所述虚拟机管理单元20112,还用于根据用户下发的在计算机设备202中创建虚拟机的配置信息,创建相应的虚拟机。例如,当所述计算机设备201接收到用户下发的在计算机设备202中创建虚拟机时,所述虚拟机管理单元20112在所述计算机设备202中创建虚拟机20213。同样的,当所述计算机设备201接收到用户下发的在计算机设备202中创建作为后端服务器的虚拟机的配置信息时,所述虚拟机管理单元20112创建相应的虚拟机作为后端服务器,例如创建虚拟机20214。

作为一种可选的实现方式,所述计算机设备202还可以包括虚拟负载均衡代理单元20211,所述虚拟负载均衡代理单元20211用于从所述虚拟负载均衡管理单元20111获取所述创建负载均衡虚拟机的配置信息,指示所述虚拟机管理单元20112根据所述创建负载均衡虚拟机的配置信息,创建负载均衡虚拟机20212。

其中,所述虚拟负载均衡代理单元20211,在指示所述虚拟机管理单元20112根据所述创建负载均衡虚拟机的配置信息创建所述负载均衡虚拟机20212时,向所述虚拟机管理单元20112发送通知信息,所述通知信息还包括创建负载均衡虚拟机20212的虚拟机参数信息。所述负载均衡虚拟机20212的虚拟机参数信息包括但不限于:虚拟中央处理器的个数,虚拟内存的大小,以及所述负载均衡虚拟机20212所在的逻辑网络等信息。

所述虚拟机管理单元20112创建负载均衡虚拟机20212的过程可以为:虚拟机管理单元20112通过调用创建虚拟机的应用软件编程接口(api,applicationprogramminginterface),指定带有负载均衡模块的镜像来创建负载均衡虚拟机20212。在调用api创建虚拟机时会使用虚拟机参数信息,以根据虚拟机参数信息创建虚拟机。指定带有负载均衡模块的镜像,使得创建的虚拟机具有负载均衡的模块,然后将所述配置信息配置给虚拟机中的负载均衡模块。

当所述虚拟负载均衡管理单元20111直接通知虚拟机管理单元20112创建负载均衡虚拟机20212时,虚拟负载均衡管理单元20111给所述虚拟机管理单元20112发送通知消息,所述通知消息包括创建所述负载均衡虚拟机20212所需的配置信息和虚拟机参数信息,以通知虚拟机管理单元20112启动创建负载均衡虚拟机20212。在所述计算机设备202中已经创建了负载均衡虚拟机20212后,所述负载均衡虚拟机20212用于接收所述计算机设备202中的虚拟机,例如虚拟机20213,通过虚拟交换机20222发送的业务报文,基于负载均衡方式对接收到的业务报文进行处理。

所述负载均衡虚拟机20212基于负载均衡方式对所述计算机设备202中的虚拟机的业务报文进行处理可以是:所述负载均衡虚拟机20212在收到业务报文后,首先判断是否已经为所述业务报文分配了一个后端服务器为其服务,如果已经分配了后端服务器,则将该业务报文发送给已经分配的后端服务器。如果还没有分配后端服务器,则通过负载均衡算法,选择一个后端服务器为其服务。所述负载均衡算法包括但不限于:轮询、加权轮询、随机、最小连接或源地散列,基于位置优先的加权轮询等。所述位置优先的加权轮询方式,可以优先选择在发起业务报文的虚拟机所在的计算机设备中的后端服务器,这样能够节省后端服务器处理业务报文的速度,节省网络带宽。

本发明实施例以轮询算法为例,对负载均衡虚拟机20212选取后端服务器的方式予以说明。当负载均衡虚拟机20212的后端服务器包括虚拟机虚拟机20214和虚拟机20314时,负载均衡虚拟机20212把所有的后端服务器(虚拟机20214和虚拟机20314)组成一个列表,在列表中轮流分配需要处理的业务报文。当负载均衡虚拟机20212收到虚拟机20213发送的第一个业务报文,将虚拟机20214作为提供服务的后端服务器,并把所述第一个业务报文发给虚拟机20214;当收到来自虚拟机20213的第二个业务报文时,将虚拟机20314作为提供服务的后端服务器,然后把所述第二个业务报文发给虚拟机20314;当负载均衡虚拟机20212收到虚拟机20213发送的第三个业务报文,将虚拟机20214作为提供服务的后端服务器,并把所述第三个业务报文发给虚拟机20214,以此循环。

上述实现负载均衡方式,在用户通过云管理平台在计算机设备202中申请用于发起业务的虚拟机、且需要对申请的虚拟机的业务请求进行负载均衡处理为例进行的说明。可以理解,当用户通过云管理平台在计算机设备203中申请用于发起业务的虚拟机、且需要对申请的虚拟机的业务请求进行负载均衡处理时,其实现方式类似。由于负载均衡单元分布在每个计算机设备中,不存在集中的负载均衡节点,与负载均衡相关的业务报文在每个计算机设备中实现负载均衡处理,不会出现业务报文的拥塞带来的处理的延迟。并且,计算机设备202和计算机设备203中都部署有负载均衡器,当某一计算机设备出现故障时,该计算系统中的虚拟机也会随之下线,不会再产生负载均衡的需求;因此,在单个计算机设备的故障带来的负载均衡单元的故障,不会影响其它负载均衡业务的处理,也不会存在因负载均衡节点故障导致主备切换带来的业务中断。

本发明实施例中,所述虚拟负载均衡代理单元20211从所述虚拟负载均衡管理单元20111处获取的所述负载均衡虚拟机20212的配置信息还可以包括所述负载均衡虚拟机20212的网络信息。所述虚拟负载均衡代理单元20211还用于根据创建负载均衡虚拟机的配置信息中的网络信息,指示所述虚拟机管理单元20112为所述负载均衡虚拟机20212建立虚拟网卡,并指示所述虚拟机管理单元20112建立所述虚拟网卡与所述虚拟交换机20222的连接。其中,所述虚拟机管理单元20112根据虚拟负载均衡代理单元20211的指示建立所述虚拟网卡时,还可以根据所述创建负载均衡虚拟机的配置信息,为创建的所述虚拟网卡分配ip地址和mac地址。可选的,也可以由上述虚拟负载均衡管理单元20111指示所述虚拟机管理单元20112为所述负载均衡虚拟机20212建立虚拟网卡,并建立所述虚拟网卡与所述虚拟交换机20222的连接。

建立所述虚拟网卡与所述虚拟交换机20222的连接可以通过配置虚拟交换机的网络标识来实现。所述虚拟交换机的网络标识是虚拟交换机的网络接口的标识,当虚拟机的网络接口与虚拟交换机的网络接口的标识相同时,虚拟机和虚拟交换机之间才能够建立连接。本发明实施中,所述虚拟机管理单元20112通过配置虚拟交换机20222的网络标识,建立负载均衡虚拟机20212与虚拟交换机20222之间的连接。例如,虚拟交换机20222有3个网络接口,其网络标识为100,当负载均衡虚拟机20212和虚拟机20213的虚拟网卡具有网络标识为100的接口时,虚拟机20213可以通过网络标识为100的接口与负载均衡虚拟机20212的网络标识为100的接口实现通信。其中,所述虚拟机管理单元20112可以根据所述虚拟负载均衡代理单元20211或虚拟负载均衡管理单元20111指示,为所述虚拟交换机20222配置网络标识。可以理解,上述虚拟交换机20222的3个网络接口只是举例,在具体实现时,所述虚拟交换机20222还可以包括其它的网络接口。例如虚拟交换机20222包括100个网络接口,其中三个网络接口的网络标识为100。

在所述虚拟机管理单元20112根据所述虚拟负载均衡代理单元20211的指示建立所述虚拟网卡与所述虚拟交换机20222的连接后,所述虚拟负载均衡代理单元20211还用于指示虚拟机管理单元20112配置所述虚拟交换机20222的转发模式,所述虚拟交换机20222根据转发模式对所述虚拟机20213的业务报文进行定向转发处理,使得所述虚拟机20213将所述业务报文发送至所述负载均衡虚拟机20212。可选的,也可以由上述虚拟负载均衡管理单元20111指示所述虚拟机管理单元20112配置所述虚拟交换机20222的转发模式。

上述所述虚拟交换机20222的转发模式可以为地址解析协议(arp,arpaddressresolutionprotocol)或邻居发现协议(ndp,ndpneighbordiscoveryprotocol)代答模式,即所述虚拟交换机20222对所述业务报文进行定向转发处理的方式为arp或ndp代答模式。本发明实施例以支持openstack的云平台为例,对arp代答技术的实现方式进行说明。

arp代答技术通过流表来实现,流表技术一般由两部分组成,一部分是匹配条件,另一部分是动作,arp代答的流表的匹配条件是:协议类型为arp,arp的目标协议地址为虚拟化ip地址(vip,virutalipaddress),该vip是负载均衡虚拟机可被访问的ip地址,arp操作类型为arp请求。动作包括:1、修改收到的arp报文的目的媒体访问控制(mac,mediaaccesscontrol)地址为该报文的源mac地址;2、修改收到的arp报文的源mac地址为负载均衡虚拟机20212的mac地址;3、修改收到的arp报文的arp操作类型为arp应答;4、修改收到的arp报文的arp目的协议地址为该arp报文的arp源协议地址,其中,协议地址是arp协议中的术语,即ip地址;5、修改收到的arp报文的arp源协议地址为负载均衡虚拟机20212的ip地址;6、修改收到的arp报文的arp目的硬件地址为该报文的arp源硬件地址,其中,硬件地址是arp协议中的术语,即mac地址;7、修改收到的arp报文的arp源硬件地址为负载均衡虚拟机20212的mac地址。上述流表中的动作并非每一个动作都必须执行,本领域技术人员可知,动作2为必要。然后,把这个修改后的arp报文交由虚拟交换机20222发送到虚拟机20213。虚拟交换机20222的arp代答模式,能够使得虚拟机20213获取与vip对应的mac地址,并基于获取到的mac地址发送业务报文,使得计算机设备202中的虚拟机发送的需要负载均衡处理的业务报文,只发送到计算机设备202上的负载均衡虚拟机20212。

虚拟交换机20222将arp应答报文发送给虚拟机20213后,虚拟机20213构造业务请求报文,该业务请求报文的ip地址是vip地址,mac地址是从虚拟交换机20222的arp应答中获取的负载均衡虚拟机20212的mac地址。虚拟机20213将构造的业务请求报文发送给虚拟交换机20222,虚拟交换机20222根据该业务请求报文的ip地址和mac地址,将业务请求报文发送给负载均衡虚拟机20212。

对于虚拟机20213发送的不需要负载均衡处理的报文,其ip地址不是vip地址,虚拟交换机20222可以按照通常的转发模式进行转发。

上述虚拟交换机20222在接收到虚拟机20213发起的业务报文需要进行负载均衡处理时,所述虚拟交换机20222通过arp代答技术将虚拟机20213的业务报文发送到所述负载均衡虚拟机20212,其他计算机设备(如计算机设备203)上的负载均衡虚拟机(如负载均衡虚拟机20312)没有收到arp请求,就不会收到计算机设备202中的虚拟机2013发出的业务报文,实现了每个计算机设备中的虚拟机的业务报文在需要负载均衡处理时,只在本计算机设备内的负载均衡虚拟机上实现的目的。

与在计算机设备202中创建负载均衡虚拟机20212类似,也可以在计算机设备203中创建负载均衡虚拟机20312。由于每个计算机设备中虚拟机发出的需要负载均衡处理的业务报文,只转发给创建在本计算机设备中的负载均衡虚拟机,不会被转发给其它计算机设备中的负载均衡虚拟机来处理,计算机设备202中的负载均衡虚拟机20212的ip地址可以与计算机设备203中负载均衡虚拟机20312的ip地址相同;同样的,计算机设备202中的负载均衡虚拟机20212的mac地址可以与计算机设备203中负载均衡虚拟机20312的mac地址相同。这样,可以节省计算机设备所组成的网络中ip地址资源和/或mac地址资源。

本发明实施例中,所述虚拟负载均衡代理单元20211可以在部署所述负载均衡业务的用户在计算机设备202中创建第一个虚拟机时,指示所述虚拟机管理单元20112创建负载均衡虚拟机20212。这样能够节省计算机设备202的资源,避免在不需要负载均衡业务时,因创建负载均衡虚拟机造成的硬件资源的浪费。判断部署所述负载均衡业务的用户在计算机设备202中创建第一个虚拟机的时机,可以是所述虚拟机管理单元20112在创建虚拟机(例如虚拟机20213)时,所述虚拟负载均衡管理单元20111判断该创建的虚拟机是否是已经配置了虚拟负载均衡业务的用户配置的第一个虚拟机。如果是,则所述虚拟负载均衡管理单元20111通知所述虚拟负载均衡代理单元指示所述虚拟机管理单元20112创建负载均衡虚拟机20212。所述虚拟负载均衡管理单元20111也可以直接通知所述虚拟机管理单元20112创建负载均衡虚拟机20212。当已经配置了虚拟负载均衡业务的用户配置的最后一个虚拟机被删除时,所述虚拟负载均衡管理单元20111通知所述虚拟负载均衡代理单元指示所述虚拟机管理单元20112删除所述负载均衡虚拟机20212,或直接通知所述虚拟机管理单元20112删除所述负载均衡虚拟机20212。

上述在已经配置了虚拟负载均衡业务的用户创建第一个虚拟机时创建负载均衡虚拟机20212,在同一用户配置的最后一个虚拟机被删除时删除所述负载均衡虚拟机20212,能够节省计算机设备202中的虚拟资源,提高计算机设备202中资源的利用率。

上述负载均衡虚拟机20212的创建和配置,是所述计算机设备202中的虚拟负载均衡代理单元20211指示所述计算机设备201中的虚拟机管理单元20112创建的。在具体实现时,所述计算机设备202中也可以不包含所述虚拟负载均衡代理单元20211,当计算机设备201中的虚拟负载均衡管理单元20111接收到创建负载均衡虚拟机20212的配置信息时,可以直接指示所述虚拟机管理单元20112创建负载均衡虚拟机20212。本发明实施例不限定具体的负载均衡虚拟机20212创建方式。

一用户通过云管理平台申请虚拟机20213,通过该虚拟机20213访问视频业务,该视频业务可以由虚拟机20214或虚拟机20314等后端服务器提供为例,说明本发明实施例负载均衡的实现方式。结合图2所示的实施例,云管理平台(计算机设备201)分别在计算机设备202中创建负载均衡虚拟机20212,在计算机设备203中创建负载均衡虚拟机20312;当虚拟机20213发起访问视频业务的业务报文时,该业务报文只被虚拟交换机20222转发给在计算机设备202中的负载均衡虚拟机20212,与计算机设备202通过网络连接的计算机设备203中的负载均衡虚拟机20312不会收到虚拟机20213发送的业务报文,使得计算机设备202中发起的需要负载均衡处理的业务报文只在计算机设备202中实现负载均衡的处理。负载均衡虚拟机20212接收到虚拟交换机20222转发的虚拟机20213关于视频业务的业务报文后,通过负载均衡算法处理该业务报文,在后端服务器,可以是虚拟机20214或虚拟机20314中选择一个为虚拟机20213提供视频业务。优选的,负载均衡虚拟机20212可以选择虚拟机20214作为后端服务器为虚拟机20213提供视频服务,这样可以节省网络带宽,提高后端服务器响应业务报文的效率。

参考图3,图3为本发明实施例一种计算机设备300的结构示意图。图3中,计算机设备300包括中央处理器cpu3031、内存3032和存储设备3033,还包括在所述计算机设备300硬件基础上虚拟化后生成的第一虚拟机304、负载均衡虚拟机301和虚拟交换机3022,所述第一虚拟机304和所述负载均衡虚拟机是301在所述计算机设备300中创建的虚拟机;

所述第一虚拟机304,用于发送业务报文;

所述虚拟交换机3022,用于接收所述第一虚拟机304发送的所述业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述负载均衡虚拟机301;

所述负载均衡虚拟机301,用于接收所述虚拟交换机3022转发的所述业务报文,基于负载均衡方式转发所述业务报文。

上述计算机设备300中包含负载均衡虚拟机301,在计算机设备300中的虚拟机发起业务,需要进行负载均衡处理时,相关的业务报文只被发送到计算机设备300中的负载均衡虚拟机301来进行负载均衡处理。由于负载均衡相关的业务报文在计算机设备中实现,不会出现多个计算机设备上的业务报文集中到一个负载均衡节点,避免了集中式的负载均衡的拥塞带来的处理的延迟。并且,当计算机设备300出现故障时,该计算机设备300中的虚拟机也会随之下线,不会再产生负载均衡的需求。因此,在单个计算机设备的故障带来的负载均衡虚拟机的故障,不会影响其它计算机设备上的负载均衡虚拟机,也不会存在因负载均衡虚拟机故障导致主备切换带来的业务中断。

本发明实施例中,计算机设备300除包括中央处理器cpu3031、内存3032和存储设备3033之外,还可以包括网络硬件(图中未示出)等硬件设备;网络硬件可以是交换设备(网卡等)、路由器和/或其他网络设备,用于实现多个设备之间的通信,多个设备之间可以通过无线或有线方式连接连接。

可选的,所述虚拟交换机3022只转发所述业务报文给所述负载均衡虚拟机301可以包括:

所述虚拟交换机3022将所述负载均衡虚拟机301的mac地址发送给所述第一虚拟机304,使得所述第一虚拟机304基于获取到的所述负载均衡虚拟机301的mac地址发送所述业务报文,所述虚拟交换机3022将所述业务报文转发给所述负载均衡虚拟机301;或,

所述负载均衡虚拟机301将其mac地址发送给所述第一虚拟机304,使得所述第一虚拟机304基于获取到的所述负载均衡虚拟机301的mac地址发送所述业务报文,所述虚拟交换机3022将所述业务报文转发给所述负载均衡虚拟机301;或,

所述第一虚拟机304基于预先配置的所述负载均衡虚拟机301的mac地址发送所述业务报文,所述虚拟交换机3022将所述业务报文转发给所述负载均衡虚拟机301。

其中,所述虚拟交换机3022将所述负载均衡虚拟机301的mac地址发送给所述第一虚拟机304可以包括:

所述虚拟交换机3022接收所述第一虚拟机304发送的控制报文,向所述第一虚拟机304返回控制响应报文,所述控制响应报文包含所述负载均衡虚拟机301的mac地址。

所述控制报文可以为arp报文或互联网控制消息协议(icmp,internetcontrolmessageprotocol)报文,所述icmp报文可以是第六版的icmpv6报文。以计算机设备300采用ipv4协议为例,当第一虚拟机304需要发送业务报文时,第一虚拟机304先发送arp报文给虚拟交换机3022,虚拟交换机3022做arp代答,将负载均衡虚拟机301的mac地址发送给第一虚拟机304,第一虚拟机304根据获取到负载均衡虚拟机301的mac地址,结合已经获取到的负载均衡虚拟机301的ip地址等信息,将业务报文通过虚拟交换机3022发送给负载均衡虚拟机301。通过这种方式,使得第一虚拟机304发送的业务报文,在需要进行负载均衡处理时,只发送给计算机设备300中的负载均衡虚拟机301。

参考图4,图4为本发明实施例中计算机设备300的一种具体实现结构实体图。图4中,计算机设备300中的操作系统302运行虚拟化管理的虚拟化层hypervisor3021和虚拟交换机3022,虚拟化层hypervisor20221对所述计算机设备300中的虚拟机(例如第一虚拟机304等)进行管理,虚拟交换机3022为所述hypervisor3021所管理的虚拟机之间和虚拟机与物理网络之间提供网络连接功能,虚拟负载均衡代理单元3023通过虚拟机化层hypervisor3021对计算机设备300中的负载均衡虚拟机301进行配置和管理。

所述虚拟负载均衡代理单元3023,用于接收创建负载均衡虚拟机301的配置信息,控制所述负载均衡虚拟机301的创建或删除,以及控制所述负载均衡虚拟机301与所述虚拟交换机3022之间连接的建立。

所述虚拟负载均衡代理单元3023可以在下发创建所述负载均衡虚拟机301的用户在所述计算机设备300中创建第一虚拟机(例如第一虚拟机304)时,启动负载均衡虚拟机301的创建;在创建所述负载均衡虚拟机301的用户在所述计算机设备300中创建的最后一个虚拟机被删除时,所述虚拟负载均衡代理单元3023指示删除所述负载均衡虚拟机301。这样能够节省计算机设备300的资源,避免在不需要负载均衡业务时,因创建负载均衡虚拟机造成的硬件资源的浪费。具体的,所述虚拟负载均衡代理单元3023可以参考上述图2中虚拟负载均衡代理单元20211的实现方式来实现,不再赘述。

可选的,所述计算机设备3022还包括第二虚拟机305,所述第二虚拟机305具备处理所述第一虚拟机304的所述业务报文的能力;

在所述负载均衡虚拟机301通过负载均衡算法确定所述第二虚拟机305处理所述第一虚拟机304的所述业务报文时,所述第二虚拟机305接收所述负载均衡服务器301转发的所述业务报文,并将处理所述业务报文的结果发送给所述负载均衡虚拟机301;

所述负载均衡虚拟机301,还用于将所述第二虚拟机305处理所述业务报文的结果通过所述虚拟交换机3022发送给所述第一虚拟机304。作为一种可选的实现方式,所述第二虚拟机305也可以直接将处理所述业务报文的结果发送给所述第一虚拟机304,即所述第二虚拟机305不通过所述负载均衡虚拟机301将处理所述业务报文的结果发送给所述第一虚拟机304。

负载均衡虚拟机301通过负载均衡算法等方式,将第一虚拟机304的业务报文转发给后端服务器(第二虚拟机305)来处理,并将后端服务器处理的结果发送给第一虚拟机304,实现了计算机设备300中利用自身创建的负载均衡虚拟机实现自身设备上负载均衡业务的目的,提高了负载均衡的处理效率。

参考图5,图5为本发明实施例第一种计算机系统实现结构示意图,该系统包括第一计算机设备502和第二计算机设备501,其中,所述第二计算机设备501包括中央处理器cpu50131、内存50132和存储设备50133;所述第一计算机设备502包括中央处理器cpu50231、内存50232和存储设备50233,所述第一计算机设备502中还包括在硬件基础上虚拟化后生成的第一虚拟机50213、第一负载均衡虚拟机50212和虚拟交换机50222,所述第一虚拟机50213和所述第一负载均衡虚拟机50212是在所述计算机设备502中创建的虚拟机;

所述第一虚拟机50213,用于发送业务报文;

所述第一虚拟交换机50222,用于接收所述第一虚拟机50213发送的所述业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述第一负载均衡虚拟机50212;

所述第一负载均衡虚拟机50212,用于接收所述第一虚拟交换机50222转发的所述业务报文,基于负载均衡方式转发所述业务报文。

上述第一计算机设备502中包含第一负载均衡虚拟机50212,在第一计算机设备502中的虚拟机的业务需要进行负载均衡处理时,相关的业务报文只被发送到第一计算机设备502中的第一负载均衡虚拟机50212来进行负载均衡处理。由于负载均衡相关的业务报文在计算机设备中实现,不会出现多个计算机设备上的业务报文集中到一个负载均衡节点,避免了集中式的负载均衡的拥塞带来的处理的延迟。并且,当第一计算机设备502出现故障时,该第一计算机设备502中的虚拟机也会随之下线,不会再产生负载均衡的需求。因此,在单个计算机设备的故障带来的负载均衡虚拟机的故障,不会影响其它计算机设备上的负载均衡虚拟机,也不会存在因负载均衡虚拟机故障导致主备切换带来的业务中断。

本发明实施例中,所述第二计算机设备501除包括中央处理器cpu50131、内存50132和存储设备50133之外,还可以包括网络硬件(图中未示出)等硬件设备;网络硬件可以是交换设备(网卡等)、路由器和/或其他网络设备,用于实现多个设备之间的通信,多个设备之间可以通过无线或有线方式连接连接。

可选的,所述第一虚拟交换机50222只转发所述业务报文给所述第一负载均衡虚拟机50212可以包括:

所述第一虚拟交换机50222将所述第一负载均衡虚拟机50212的mac地址发送给所述第一虚拟机50213,使得所述第一虚拟机50213基于获取到的所述第一负载均衡虚拟机50212mac地址发送所述业务报文,所述第一虚拟交换机50222将所述业务报文转发给所述第一负载均衡虚拟机50212;或,

所述第一负载均衡虚拟机50212将其mac地址发送给所述第一虚拟机50213,使得所述第一虚拟机50213基于所述第一负载均衡虚拟机50212mac地址发送所述业务报文,所述第一虚拟交换机50222将所述业务报文转发给所述第一负载均衡虚拟机50212;或,

所述第一虚拟机50213基于预先配置的所述第一负载均衡虚拟机50212的mac地址,发送所述业务报文,所述第一虚拟交换机50222将所述业务报文转发给所述第一负载均衡虚拟机50212。

其中,所述第一虚拟交换机50222将所述第一负载均衡虚拟机50212的mac地址发送给所述第一虚拟机50213包括:

所述第一虚拟交换机50222接收所述第一虚拟机50213发送的控制报文,向所述第一虚拟机50213返回控制响应报文,所述控制响应报文包含所述第一负载均衡虚拟机50212的mac地址。

所述控制报文可以为arp报文或icmpv6报文。以第一计算机设备502采用ipv4协议为例,当第一虚拟机50213需要发送业务报文时,第一虚拟机50213先发送arp报文给第一虚拟交换机50222,第一虚拟交换机50222做arp代答,将负载均衡虚拟机301的mac地址发送给第一虚拟机50213,第一虚拟机50213根据获取到第一负载均衡虚拟机50212的mac地址,结合已经获取到的第一负载均衡虚拟机50212的ip地址等信息,将业务报文通过第一虚拟交换机50222发送给第一负载均衡虚拟机50212。通过这种方式,使得第一虚拟机50213发送的业务报文,在需要进行负载均衡处理时,只发送给第一计算机设备502中的第一负载均衡虚拟机50212。

参考图6,图6为本发明实施例中第一中计算机系统的一种具体实现结构实体图。图6中,第二计算机设备502中的操作系统5022运行虚拟化管理的虚拟化层hypervisor50221和第一虚拟交换机50222,虚拟化层hypervisor50221对所述第一计算机设备502中的虚拟机(例如第一虚拟机50213等)进行管理第一虚拟交换机50222为所述hypervisor50221所管理的虚拟机之间和虚拟机与物理网络之间提供网络连接功能,虚拟负载均衡代理单元50111通过虚拟机化层hypervisor50221对第一计算机设备502中的第一负载均衡虚拟机50212进行配置和管理。第二计算机设备501作为计算机系统中的云管理平台,其操作系统5012运行虚拟化管理的虚拟化层hypervisor50121。所述第二计算机设备501还包括虚拟机管理单元50112和虚拟负载均衡管理单元50111,所述虚拟机管理单元50112实现对第二计算机设备502中虚拟机的配置和管理,虚拟负载均衡管理单元50111用于接收用户下发的创建负载均衡虚拟机的配置信息或创建虚拟机的配置信息,并将相关的配置信息,并将创建负载均衡虚拟机的配置信息保存在虚拟负载均衡数据设备50114中。所述第一计算机设备502还包括第一虚拟负载均衡代理单元50211。

所述虚拟负载均衡管理单元50111,用于接收创建所述第一负载均衡虚拟机50212的配置信息,并将所述创建第一负载均衡虚拟机50212的配置信息发送给所述第一虚拟负载均衡代理单元50211;

所述第一虚拟负载均衡代理单元50211,用于接收所述创建第一负载均衡虚拟机50212的配置信息,指示所述虚拟机管理单元根据所述创建第一负载均衡虚拟机50212的配置信息创建所述第一负载均衡虚拟机50212。

所述第一虚拟负载均衡代理单元50211可以在下发创建所述第一负载均衡虚拟机50212的用户在所述第一计算机设备502中创建第一虚拟机(例如第一虚拟机50213)时,指示所述虚拟机管理单元50112创建所述第一负载均衡虚拟机50212;在创建所述第一负载均衡虚拟机50212的用户在所述第一计算机设备502中创建的最后一个虚拟机被删除时,所述第一虚拟负载均衡代理单元50211指示指示所述虚拟机管理单元50112删除所述第一负载均衡虚拟机50212。这样能够节省第一计算机设备502的资源,避免在不需要负载均衡业务时,因创建负载均衡虚拟机造成的硬件资源的浪费。具体的,所述第一虚拟负载均衡代理单元50211可以参考上述图2中虚拟负载均衡代理单元20211的实现方式来实现,不再赘述。

在本实施例中,所述第一虚拟负载均衡代理单元50211还用于指示所述虚拟机管理单元50112为所述第一负载均衡虚拟机50212配置第一虚拟网卡并建立所述第一虚拟网卡与所述第一虚拟交换机50222之间的连接。

所述虚拟机管理单元50112建立所述虚拟网卡与所述第一虚拟交换机50222的连接可以通过配置第一虚拟交换机50222的网络标识来实现。例如,第一虚拟交换机50222有3个网络接口,其网络标识为100,当第一负载均衡虚拟机50212和第一虚拟机50213的虚拟网卡具有网络标识为100的接口时,所述第一虚拟机50213可以通过网络标识为100的接口与负载均衡虚拟机20212的网络标识为100的接口实现通信。其中,所述虚拟机管理单元50112可以根据所述第一虚拟负载均衡代理单元50211或虚拟负载均衡管理单元50111指示,为所述第一虚拟交换机50222配置网络标识。

本发明实施例中,所述第一虚拟机50213是创建所述第一负载均衡虚拟机50212配置信息的用户创建的虚拟机;所述虚拟负载均衡管理单元50111接收创建所述第一虚拟机50213的配置信息,并在判断所述第一虚拟机50213是所述用户在所述第一计算机设备502上创建的第一个虚拟机时,将创建所述第一虚拟机50213的信息通知所述第一虚拟负载均衡代理单元50211;所述第一虚拟负载均衡代理单元50211在接收到所述虚拟负载均衡管理单元发送的创建所述第一虚拟机50213的通知时,指示所述虚拟机管理单元50112创建所述第一负载均衡虚拟机50212。这样能够节省计算机设备502的资源,避免在不需要负载均衡业务时,因创建负载均衡虚拟机造成硬件资源的占用和浪费。同样的,在创建所述第一负载均衡虚拟机50212配置信息的用户在所述计算机设备502中的最后一个虚拟机被删除时,所述虚拟负载均衡管理单元50111通知所述第一虚拟负载均衡代理单元50211,所述第一虚拟负载均衡代理单元50211指示所述虚拟机管理单元50112创建所述第一负载均衡虚拟机50212。这样也能够节省计算机设备502的资源,避免在不需要负载均衡业务时,因负载均衡虚拟机造成硬件资源的占用和浪费。

上述是所述虚拟负载均衡管理单元50111通知所述第一虚拟负载均衡代理单元50211指示所述虚拟机管理单元50112创建或删除所述第一负载均衡虚拟机50212,在具体实现时,也可以是所述虚拟负载均衡管理单元50111通知所述虚拟机管理单元50112创建或删除所述第一负载均衡虚拟机50212,不再赘述。

可选的,所述第一计算机设备502还包括第二虚拟机50214,所述第二虚拟机50214具备处理所述第一虚拟机50213的所述业务报文的能力;在所述第一负载均衡虚拟机50212通过负载均衡方式确定所述第二虚拟机50214处理所述第一虚拟机50213的所述业务报文时,所述第二虚拟机50214接收所述第一负载均衡虚拟机50212转发的所述业务报文,并将处理所述业务报文的结果发送给所述第一负载均衡虚拟机50212;所述第一负载均衡虚拟机5021将所述第二虚拟机50214处理所述业务报文的结果通过所述第一虚拟交换机50222发送给所述第一虚拟机50213。

上述第一负载均衡虚拟机50212通过负载均衡算法等方式,将第一虚拟机50213的业务报文转发给后端服务器(第二虚拟机50214)来处理,并将后端服务器处理的结果发送给第一虚拟机50213,实现了计算机设备502中利用自身创建的负载均衡虚拟机实现自身设备上负载均衡业务的目的,提高了负载均衡的处理效率。

本发明实施例的所述第一计算机系统还可以包括第三计算机设备。如图7所示,所述第三计算机设备503与所述计算机设备502类似,包括第二虚拟负载均衡代理单元50311、第二虚拟交换机50322和第三虚拟机50313;

所述第二虚拟负载均衡代理单元50312,用于接收所述虚拟负载均衡管理单元50111发送的创建第二负载均衡虚拟机50312的配置信息,基于所述创建第二负载均衡虚拟机50312的配置信息,指示所述虚拟机管理单元50112创建所述第二负载均衡虚拟机50312,以及指示所述虚拟机管理单元50112为所述第二负载均衡虚拟机50312配置第二虚拟网卡并建立所述第二虚拟网卡与所述第二虚拟交换机50322之间的连接;

所述第二虚拟交换机50322,用于接收所述第三虚拟机50313发起的第二业务报文,在所述第二业务报文需要负载均衡处理时,只转发所述第二业务报文给所述第二负载均衡虚拟机50312;

所述第二负载均衡虚拟机50312,用于接收所述第二虚拟交换机50322转发的所述第二业务报文,基于负载均衡方式转发所述第二业务报文。

相应的,所述虚拟机管理单元50112可以为所述第一负载均衡虚拟机50212配置第一ip地址和第一mac地址,以及为所述第二负载均衡虚拟机配置第二ip地址和第二mac地址。其中,所述第一ip地址可以与所述第二ip地址相同,所述第一mac地址也可以与所述第二mac地址相同,这样,可以节省计算机设备所组成的网络中ip地址资源或mac地址资源,提高ip地址资源或mac地址资源的利用率。

上述图5、图6和图7所示的实施例,还可以参考图2中具体实现方式来实现,不再赘述。

可选的,本发明实施例还提供了第二种计算机系统,包括第一计算机设备(如图2中的计算机设备202或图7中的计算机设备502)、第二计算机设备(如图2中的计算机设备201或图7中的计算机设备501)和第三计算机设备(如图2中的计算机设备203或图7中的计算机设备503),其中,所述第一计算机设备、第二计算机设备和第三计算机设备分别包括中央处理器cpu、内存和存储设备,所述第二计算机设备对所述第一计算机设备和所述第三计算机设备上的虚拟机进行配置和管理,所述第一计算机设备包含第一虚拟交换机,所述第三计算机设备包含第二虚拟交换机;

所述第二计算机设备,用于接收在所述第一计算机设备上创建负载均衡虚拟机的配置信息,在所述第一计算机设备中创建第一负载均衡虚拟机,并建立所述第一负载均衡虚拟机与所述第一虚拟交换机的连接;以及接收在所述第三计算机设备上创建负载均衡虚拟机的配置信息,在所述第三计算机设备中创建第二负载均衡虚拟机,并建立所述第二负载均衡虚拟机与所述第二虚拟交换机的连接;

所述第一虚拟交换机,用于接收所述第一计算机设备中的第一虚拟机发送的第一业务报文,在所述第一业务报文需要负载均衡处理时,只转发所述第一业务报文给所述第一负载均衡虚拟机;

所述第二虚拟交换机,用于接收所述第三计算机设备中的第二虚拟机发送的第二业务报文,在所述第二业务报文需要负载均衡处理时,只转发所述第二业务报文给所述第二负载均衡虚拟机。

上述第二计算机系统中包含所述第一计算机设备、第二计算机设备和第三计算机设备,所述第二计算机设备分别在所述第一计算机设备中创建第一负载均衡虚拟机,在所述第三计算机设备中创建第二负载均衡虚拟机,使得每个计算机设备中都有负载均衡虚拟机处理各自计算机设备中的负载均衡业务,每个计算机设备中的虚拟机发出的业务报文,只在本计算机设备中的负载均衡虚拟机来负载均衡的处理。这样,不会出现多个计算机设备上的业务报文集中到一个负载均衡节点,避免了集中式的负载均衡的拥塞带来的处理的延迟。并且,当一个计算机设备出现故障时,该计算机设备中的虚拟机也会随之下线,不会再产生负载均衡的需求。因此,在单个计算机设备的故障带来的负载均衡虚拟机的故障,不会影响其它计算机设备上的负载均衡虚拟机,也不会存在因负载均衡虚拟机故障导致主备切换带来的业务中断。

其中,所述第二计算机系统,所述第一虚拟交换机只转发所述第一业务报文给所述第一负载均衡虚拟机包括:

所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述第一负载均衡虚拟机mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于所述第一负载均衡虚拟机mac地址发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述第一负载均衡虚拟机的mac地址,发送所述业务报文,所述第一虚拟交换机将所述业务报文转发给所述第一负载均衡虚拟机。

相应的,所述第一虚拟交换机将所述第一负载均衡虚拟机的mac地址发送给所述第一虚拟机包括:

所述第一虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述第一负载均衡虚拟机的mac地址。所述控制报文可以为arp报文或icmpv6报文。

可选的,所述第一计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力;

在所述第一负载均衡虚拟机通过负载均衡方式确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述第一负载均衡服务器转发的所述业务报文,并将处理所述业务报文的结果发送给所述第一负载均衡虚拟机;

所述第一负载均衡虚拟机,还用于将所述第二虚拟机处理所述业务报文的结果通过所述第一虚拟交换机发送给所述第一虚拟机。

本发明实施例中,所述第一负载均衡虚拟机的ip地址与所述第二负载均衡虚拟机的ip地址相同;或所述第一负载均衡虚拟机的mac地址与所述第二负载均衡虚拟机的mac地址相同。这样能够节省所述第二计算机系统中ip地址或mac地址的地址资源,提高资源的利用率。

参考图8,图8为本发明实施例一种实现负载均衡方法的流程示意图。如图8所示,所述方法包括:

步骤800:第二计算机设备接收在第一计算机设备上创建所述负载均衡虚拟机的配置信息,所述第一计算机设备包括中央处理器cpu、内存和存储设备,所述第一计算机设备还包括第一虚拟机和虚拟交换机;

步骤802:所述第二计算机设备根据所述配置信息,在所述第一计算机设备上创建负载均衡虚拟机,并建立所述负载均衡虚拟机与所述第一计算机设备中的虚拟交换机的连接;

步骤804:所述虚拟交换机接收所述第一虚拟机发送的业务报文,在所述业务报文需要负载均衡处理时,只转发所述业务报文给所述负载均衡虚拟机;

步骤806:所述负载均衡虚拟机接收所述第一虚拟交换机转发的所述业务报文,基于负载均衡方式转发所述业务报文。

上述方法中,第一计算机设备中包含负载均衡虚拟机,在第一计算机设备中的虚拟机发起业务,需要进行负载均衡处理时,相关的业务报文只被发送到第一计算机设备中的负载均衡虚拟机来进行负载均衡处理。由于负载均衡相关的业务报文在计算机设备中实现,不会出现多个计算机设备上的业务报文集中到一个负载均衡节点,避免了集中式的负载均衡的拥塞带来的处理的延迟。并且,当第一计算机设备出现故障时,该第一计算机设备中的虚拟机也会随之下线,不会再产生负载均衡的需求。因此,在单个计算机设备的故障带来的负载均衡虚拟机的故障,不会影响其它计算机设备上的负载均衡虚拟机,也不会存在因负载均衡虚拟机故障导致主备切换带来的业务中断。

可选的,上述步骤804中,所述虚拟交换机只转发所述业务报文给所述负载均衡虚拟机包括:

所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述负载均衡虚拟机将其mac地址发送给所述第一虚拟机,使得所述第一虚拟机基于获取到的所述负载均衡虚拟机mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机;或,

所述第一虚拟机基于预先配置的所述负载均衡虚拟机的mac地址发送所述业务报文,所述虚拟交换机将所述业务报文转发给所述负载均衡虚拟机。

其中,所述虚拟交换机将所述负载均衡虚拟机的mac地址发送给所述第一虚拟机可以包括:

所述虚拟交换机接收所述第一虚拟机发送的控制报文,向所述第一虚拟机返回控制响应报文,所述控制响应报文包含所述负载均衡虚拟机的mac地址。所述控制报文可以为arp报文或icmpv6报文。

在所述第二计算机设备根据所述配置信息,在所述第一计算机设备上创建负载均衡虚拟机之前,所述方法还包括:

所述第二计算机设备将所述配置信息发送给所述第一计算机设备;

所述第一计算机设备接收创建负载均衡虚拟机的配置信息,指示所述第二计算机设备创建所述负载均衡虚拟机。

本发明实施例中,所述第二计算机设备还包括第二虚拟机,所述第二虚拟机具备处理所述第一虚拟机的所述业务报文的能力,所述方法还包括:

在所述负载均衡虚拟机通过负载均衡算法确定所述第二虚拟机处理所述第一虚拟机的所述业务报文时,所述第二虚拟机接收所述负载均衡服务器转发的所述业务报文,并将处理所述业务报文的结果发送给所述负载均衡虚拟机;

所述负载均衡虚拟机将所述第二虚拟机处理所述业务报文的结果通过所述虚拟交换机发送给所述第一虚拟机。

所述第二虚拟机与所述第一虚拟机在一个计算机设备中,能够节省业务处理跨计算机设备所造成的带宽占用,提高业务处理的效率。

本发明实施例中方法实施例的实现,还可以参考上述图2所示的实施例的实现方式来实现,不再赘述。

下面结合图2所示的应用场景,以用户通过云管理平台在计算机设备202中申请虚拟机20213,通过该虚拟机20213实现具体的业务(例如访问视频业务),该业务可以由计算机设备202中的虚拟机20214或计算机设备203中的虚拟机20314等后端服务器来处理,且需要在虚拟机20214和虚拟机20314之间对虚拟机20213发起的业务做负载均衡为例,对本发明实施例实现负载均衡业务的方法的实现方式进行详细说明。

图9为实现过程的流程示意图。需要说明的是,图9所示的实现过程仍以具备负载均衡功能的虚拟机作为负载均衡器的实现方式来描述。对于以容器或namespace等实现负载均衡器的实现方式,可以参照下述以虚拟机作为负载均衡器的实现方式来实现。

如图9所示,本发明实施例实现负载均衡业务的一种方法包括:

步骤900:计算机设备201获取在计算机设备202中创建负载均衡虚拟机的配置信息。

步骤902:计算机设备201根据获取到的负载均衡虚拟机的配置信息,在计算机设备202中创建负载均衡虚拟机20212;

步骤904:配置计算机设备202中负载均衡业务的转发模式,使得虚拟机20213发起的业务,只被转发到在计算机设备202中创建的负载均衡虚拟机20212进行负载均衡处理;

其中,所述虚拟机20213发起的业务为负载均衡业务,所述负载均衡业务为需要进行负载均衡处理的业务。

步骤906:负载均衡虚拟机20212接收虚拟机20213发送的业务,选择一个后端服务器处理所述虚拟机20213发起的业务;

步骤908:后端服务器将处理后的所述虚拟机20213发起的业务返回给虚拟机20213。

上述步骤900中,计算机设备201作为云管理平台,能获取到需要创建的负载均衡虚拟机的配置信息,例如用户通过计算机设备201上运行的云管理平台相关的软件下发的负载均衡虚拟机的配置信息,或者计算机设备201中预先存储的关于负载均衡虚拟机的配置信息。并且,计算机设备201作为云管理平台,也可以获取其它的业务虚拟机,例如计算机设备202中虚拟机20213的配置信息。计算机设备201获取业务虚拟机的配置信息的方式,也包括接收用户通过云管理平台相关软件下发的配置信息或计算机设备201中预先存储的配置信息。

由于本发明实施例是用户通过云管理平台在计算机设备202中申请虚拟机20213,该虚拟机20213发起的业务请求需要进行负载均衡处理。为避免现有技术中集中式的负载均衡节点所造成的拥塞等弊端,本发明实施例在计算机设备202中创建负载均衡虚拟机20212,由该负载均衡虚拟机20212处理虚拟机20213发起的需要进行负载均衡处理的业务请求。因此,在步骤900中,计算机设备201需要获取在计算机设备202中创建的负载均衡虚拟机的配置信息,即负载均衡虚拟机20212的配置信息,并根据获取到的负载均衡虚拟机的配置信息在计算机设备202中配置负载均衡虚拟机。

本发明实施例中,所述负载均衡虚拟机的配置信息包括但不限于:负载均衡虚拟机20212的标识,负载均衡虚拟机20212的vip地址。其中,所述负载均衡虚拟机20212的vip指示负载均衡业务。例如,当负载均衡虚拟机20212的ip地址被配置为vip时,该负载均衡虚拟机20212能够被作为处理负载均衡业务的节点被寻址到。可选的,本发明实施例中,所述负载均衡虚拟机的配置信息还包括与该负载均衡虚拟机20212相关的后端服务器的信息等。

可选的,所述配置信息还可以包括虚拟机参数信息,虚拟机参数信息包括但不限于:虚拟中央处理器的个数,虚拟内存的大小,以及所述负载均衡虚拟机20212所在的逻辑网络等信息。该虚拟机的参数信息可以是预先配置好的参数列表,按照不同的需求可以选择不同的参数列表。该参数列表可以是用户下发配置信息时指定的,也可以是计算机设备201根据预先的策略在存储的配置信息列表中获取的,本发明实施例不限定获取负载均衡虚拟机20212的虚拟机参数信息的方式。

在步骤902中,计算机设备201根据获取到的负载均衡虚拟机的配置信息,创建负载均衡虚拟机20212。

计算机设备201作为云管理平台,能够在计算机设备202中创建普通虚拟机,也能够创建负载均衡虚拟机。计算机设备201能够根据获取到的负载均衡虚拟机20212的配置信息,在计算机设备202中创建负载均衡虚拟机20212。

可选的,上述方法还可以包括步骤901:计算机设备201在计算机设备202中创建虚拟机20213。该虚拟机20213是用户创建的业务虚拟机,虚拟机20213是发起业务的虚拟机。虚拟机20213发起的业务包括负载均衡业务,即虚拟机20213发起的负载均衡业务,是需要进行负载均衡处理的业务。

当下发创建负载均衡虚拟机配置信息的用户在计算机设备202上创建第一个虚拟机时,例如创建第一个发起负载均衡业务的虚拟机20213时,计算机设备201创建负载均衡虚拟机20212。在该用户创建的最后一个虚拟机被删除时,例如删除最后一个发起负载均衡业务的虚拟机20213时,计算机设备201删除负载均衡虚拟机20212。这样,只在用户创建发起负载均衡业务的虚拟机时才创建负载均衡虚拟机20212,能够避免该用户没有创建虚拟机时因创建负载均衡虚拟机带来的计算机设备202的资源被占用的问题,提高了计算机设备202的资源利用率。

上述计算机设备201判断该创建的虚拟机是否是已经配置了虚拟负载均衡业务的用户创建的第一个业务虚拟机,可以根据用户的信息,例如用户的标识信息等,判断是否是已经配置了虚拟负载均衡业务的用户创建的第一个业务虚拟机。

同样的,判断已经配置了虚拟负载均衡业务的用户创建的最后一个业务虚拟机被删除时,也可以按照上述用户的信息来判断,不再赘述。

在步骤902中,计算机设备201根据获取到的负载均衡虚拟机的配置信息,创建负载均衡虚拟机20212还包括计算机设备201根据负载均衡虚拟机的配置信息中的网络信息,为所述负载均衡虚拟机20212配置虚拟网卡。

上述步骤904中,可以是由计算机设备201在计算机设备202中配置负载均衡业务的转发模式。其中,所述转发模式使得计算机设备202上的所述发起业务的虚拟机,例如虚拟机20213,发起的所述负载均衡业务的业务报文定向转发到所述负载均衡器。

计算机设备201配置计算机设备202中负载均衡业务的转发模式,可以通过配置算机设备202中虚拟交换机的转发模式来实现。计算机设备202中虚拟交换机为虚拟交换机20222,所述虚拟交换机20222被配置的转发模式,是对所述虚拟机20213发送的需要负载均衡处理的业务报文进行定向转发处理,将所述虚拟机20213发送的需要负载均衡处理的业务报文,只发送至所述计算机设备202中的负载均衡虚拟机20212。可选的,所述虚拟交换机20222的转发模式可以为arp或ndp代答模式,即所述虚拟交换机20222对所述业务报文进行定向转发通过arp或ndp代答模式来实现。

当所述虚拟机20213发起负载均衡业务的业务报文时,所述虚拟机20213根据所述负载均衡业务的转发模式,发送所述负载均衡业务的业务报文到所述负载均衡虚拟机20212。具体的,可以是所述虚拟机20213发起需要进行负载均衡处理的负载均衡业务时,先发送一个以vip为目的ip的控制报文,该控制报文可以是负载均衡业务的广播报文。在通常情况下,所述虚拟机20213发起以vip为目的ip的控制报文,会被转发到所有ip地址为vip的负载均衡节点(例如负载均衡器等)。但本发明实施例中,由于计算机设备201在计算机设备202中配置了负载均衡业务的转发模式,计算机设备202中的虚拟交换机20222在接收到虚拟机20213发送的控制报文后,只将负载均衡虚拟机20212的mac地址发送给虚拟机20213。虚拟机20213根据获取到的负载均衡虚拟机20212的mac地址,将负载均衡业务的业务报文发送给负载均衡虚拟机20212。使得虚拟机20213发起的业务,只被转发到在计算机设备202中创建的负载均衡虚拟机20212进行负载均衡处理。

可选的,在所述虚拟机20213发送业务报文之前,发送到虚拟交换机20222的控制报文可以是arp报文或icmp报文。

本发明实施例以支持openstack的云平台为例,对arp代答技术的实现方式进行说明。在虚拟机20213第一次发起负载均衡处理的业务时,先发送控制报文给虚拟交换机20222,例如先发送一个arp请求报文给虚拟交换机20222,虚拟交换机20222做arp代答。由于虚拟机20213第一次发起负载均衡处理的业务时,虚拟机20213不知道处理负载均衡业务的负载均衡虚拟机的mac地址,只知道负载均衡业务的vip地址。因此,虚拟机20213第一次发起负载均衡处理的业务时,先发送一个arp请求,以获取处理负载均衡业务的负载均衡虚拟机的mac地址。

所述arp请求报文的目的ip为vip,该vip为负载均衡虚拟机可被访问的ip地址。所述arp请求报文的目的mac地址可以是通用的负载均衡虚拟机的mac地址,该mac不是一个具体的负载均衡虚拟机的mac地址,目的mac地址也可以为空。arp代答技术通过流表来实现,流表技术一般由两部分组成,一部分是匹配条件,另一部分是动作,arp代答的流表的匹配条件是:协议类型为arp,arp的目标协议地址为vip,该vip是负载均衡虚拟机可被访问的ip地址,arp操作类型为arp请求。当虚拟交换机20222对虚拟机20213发送的arp请求做arp代答时,将负载均衡虚拟机20212的mac地址返回给虚拟机20213。

虚拟交换机20222将arp应答报文发送给虚拟机20213后,虚拟机20213发送需要负载均衡处理的业务报文,所述业务报文的ip地址是vip地址,mac地址是从虚拟交换机20222的arp应答中获取的负载均衡虚拟机20212的mac。虚拟机20213将所述业务报文发送给虚拟交换机20222。虚拟交换机20202收到虚拟机20213发送的业务报文后,根据业务报文中携带的mac地址,将该业务报文发送给负载均衡虚拟机20212。

上述虚拟交换机20222接收虚拟机20213发送的业务报文,根据所述业务报文的ip地址和mac地址,将所述业务报文发送到负载均衡虚拟机20212。其他计算机设备(如计算机设备203)上的负载均衡虚拟机(如负载均衡虚拟机20312)没有收到虚拟机20213的业务报文,不会处理虚拟机20213发送的需要负载均衡处理的业务报文。实现了每个计算机设备中的虚拟机的业务报文在需要负载均衡处理时,只在本计算机设备内的负载均衡虚拟机上实现的目的。

作为一种可选的实现方式,所述计算机设备201在所述计算机设备202上配置所述负载均衡业务的转发模式还可以通过下述方式实现:

所述计算机设备201指示所述负载均衡虚拟机20212将所述负载均衡虚拟机20212的mac地址发送给所述发起业务的虚拟机(例如虚拟机20213);或者,

所述计算机设备201在所述发起业务的虚拟机(例如虚拟机20213)上配置所述负载均衡虚拟机20212的mac地址。

其中,当所述计算机设备201指示所述负载均衡虚拟机20212将所述负载均衡虚拟机20212的mac地址发送给所述发起业务的虚拟机(例如虚拟机20213)时,发起业务的虚拟机(例如虚拟机20213),以接收到的所述负载均衡虚拟机20212的mac地址,作为发起负载均衡业务时的目的mac地址。当所述计算机设备201在所述发起业务的虚拟机(例如虚拟机20213)上配置所述负载均衡虚拟机20212的mac地址时,配置的所述负载均衡虚拟机20212的mac地址,是发起业务的虚拟机(例如虚拟机20213)发送负载均衡业务时的目的mac地址。

上述步骤906中,负载均衡虚拟机20212接收虚拟机20213发送的业务,选择一个后端服务器处理所述虚拟机20213发起的业务,可以包括如下实现步骤:所述负载均衡虚拟机20212在收到业务报文后,首先判断是否已经为所述业务报文分配了一个后端服务器为其服务,如果已经分配了后端服务器,则将该业务报文发送给已经分配的后端服务器。如果还没有分配后端服务器,则通过负载均衡算法,选择一个后端服务器为其服务。所述负载均衡算法包括但不限于:轮询、加权轮询、随机、最小连接或源地散列,基于位置优先的加权轮询等。所述位置优先的加权轮询方式,可以优先选择在发起业务报文的虚拟机所在的计算机设备中的后端服务器,即计算机设备202中的虚拟机20214作为处理虚拟机20213业务的后端服务器,这样能够节省后端服务器处理业务报文的速度,节省网络带宽。当然,步骤906中,负载均衡虚拟机20212也可以将虚拟机20213的业务请求经过负载均衡算法处理后,发送给计算机设备203中的虚拟机20314,由该虚拟机20314作为处理虚拟机20213业务的后端服务器,处理虚拟机20213发起的业务。

需要说明的是,图9中步骤906的虚线表示可选,即负载均衡虚拟机20212可以将所述虚拟机20213发起的业务转发给计算机设备202中的后端服务器即虚拟机20214,也可以转发给计算机设备203中的后端服务器及虚拟机20314。

上述步骤908中,后端服务器将处理后的业务请求返回给虚拟机20213的方式可以包括两种:

方式一:处理虚拟机20213业务请求的后端服务器,通过负载均衡虚拟机20212将处理后的结果返回给虚拟机20213;

方式二:处理处理虚拟机20213业务请求的后端服务器,不通过负载均衡虚拟机20212,直接将处理后的结果返回给虚拟机20213。

上述方式一中,负载均衡虚拟机20212在向处理虚拟机20213业务请求的后端服务器转发虚拟机20213的业务请求时,将业务请求的源地址(包括ip地址和mc地址等)写为负载均衡虚拟机20212的地址,将目的地址写为处理虚拟机20213业务请求的后端服务器的地址。这样,处理虚拟机20213业务请求的后端服务器根据接收业务请求时携带的源地址,将处理业务请求的结果返回给负载均衡虚拟机20212,负载均衡虚拟机20212再将接收到处理的业务请求返回发送给虚拟机20213。

上述方式二中,负载均衡虚拟机20212在向处理虚拟机20213业务请求的后端服务器转发虚拟机20213的业务请求时,将源地址(包括ip地址和mc地址等)写为虚拟机20213的地址,将目的地址写为处理虚拟机20213业务请求的后端服务器的地址。这样,处理虚拟机20213业务请求的后端服务器根据接收业务请求时携带的源地址,将处理业务请求的结果返回给虚拟机20213。

需要说明的是,图9中步骤908的虚线表示可选,即当步骤906中负载均衡虚拟机20212将所述虚拟机20213发起的业务转发给计算机设备202中的后端服务器即虚拟机20214时,由虚拟机20214将处理后的业务请求返回给虚拟机20213。当步骤906中负载均衡虚拟机20212将所述虚拟机20213发起的业务转发给计算机设备203中的后端服务器即虚拟机20314时,由虚拟机20314将处理后的业务请求返回给虚拟机20213。

本发明实施例中,上述计算机设备202和计算机设备203也叫作业务计算机设备。计算机设备202和/或计算机设备203上运行的虚拟机,例如虚拟机20213,也叫作发起业务的虚拟机,其发起的业务包括负载均衡业务。

上述步骤900-步骤908的实现过程,是以作为云管理平台的计算机设备201在计算机设备202中创建负载均衡虚拟机20212为例进行说明的。可以理解,对于计算机设备201在计算机设备203中创建负载均衡虚拟机20312的过程,与上述过程类似,不再赘述。

这样,计算机设备201可以分别在计算机设备202和计算机设备203中创建负载均衡虚拟机。每个业务计算机设备(例如计算机设备202和计算机设备203)上的业务虚拟机(例如虚拟机20213或虚拟机20313)发起的负载均衡业务的业务报文,定向转发到本地的负载均衡虚拟机。即业务计算机设备202中的业务虚拟机20213发起的负载均衡业务,只被转发到计算机设备202本地的负载均衡虚拟机(即负载均衡虚拟机20212)来实现负载均衡业务。业务计算机设备203中的业务虚拟机20313发起的负载均衡业务,只被转发到计算机设备203本地的负载均衡虚拟机(即负载均衡虚拟机20312)来实现负载均衡业务。

由于业务计算机设备202中的业务虚拟机20213发起的负载均衡业务,只被转发到计算机设备202本地的负载均衡虚拟机(即负载均衡虚拟机20212)来实现负载均衡业务;业务计算机设备203中的业务虚拟机20313发起的负载均衡业务,只被转发到计算机设备203本地的负载均衡虚拟机(即负载均衡虚拟机20312)来实现负载均衡业务。所以,业务计算机设备202中的负载均衡虚拟机20212的ip地址可以与业务计算机设备203中负载均衡虚拟机20312的ip地址相同;同样的,业务计算机设备202中的负载均衡虚拟机20212的mac地址可以与业务计算机设备203中负载均衡虚拟机20312的mac地址相同。这样,可以节省计算机设备所组成的网络中ip地址资源和/或mac地址资源。

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

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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