一种负载均衡的方法、装置和系统转让专利
申请号 : CN202010494889.9
文献号 : CN111866064B
文献日 : 2021-12-28
发明人 : 罗高威 , 周坤鹏
申请人 : 华为技术有限公司
摘要 :
权利要求 :
1.一种虚拟化环境下的负载均衡系统,其特征在于,所述系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机以及至少一个后端服务器,所述负载均衡器,用于接收客户端的访问请求,所述访问请求的目的地址为负载均衡器的IP地址,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的目的服务节点;
所述目的服务节点上的虚拟交换机,用于接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端服务器;
所述目的后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
2.如权利要求1所述的系统,其特征在于,还包括网络控制器,所述网络控制器,用于向所述虚拟交换机下发流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,将所述访问请求的目的地址修改为负载均衡器的IP地址;
所述虚拟交换机,具体用于根据所述流表,修改所述访问请求的目的地址。
3.如权利要求1或2所述的系统,其特征在于,所述负载均衡系统还包括负载均衡节点,所述负载均衡节点上运行所述负载均衡器以及第一虚拟路由器,所述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关地址,所述负载均衡器,具体用于将所述访问请求发送到所述第一虚拟路由器的第一端口,所述第一端口的地址为所述负载均衡器的网关地址;
所述第一虚拟路由器,用于接收所述访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器的网关地址。
4.如权利要求3所述的系统,其特征在于,所述目的服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网关地址,
所述目的后端服务器,具体用于将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述目的后端服务器的网关地址;
所述第二虚拟路由器,用于接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
5.如权利要求1或2所述的系统,其特征在于,所述目的服务节点上运行有第三虚拟路由器,所述目的后端服务器还具备与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述负载均衡器,具体用于将所述访问请求的目的地址修改为与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;
所述目的服务节点上的所述第三虚拟路由器,还用于接收所述访问请求,将所述访问请求的目的地址修改为所述目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。
6.如权利要求5所述的系统,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,
所述虚拟交换机,还用于接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。
7.一种负载均衡的方法,其特征在于,所述方法应用于负载均衡系统,所述负载均衡系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机以及至少一个后端服务器,所述方法包括:
所述负载均衡器接收客户端的访问请求,所述访问请求的目的地址为负载均衡器的IP地址,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;
所述目的服务节点上的所述虚拟交换机接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端服务器;
所述目的后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
8.如权利要求7所述的方法,其特征在于,所述将所述访问请求的目的地址修改为所述负载均衡器的IP地址包括:
所述虚拟交换机接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。
9.如权利要求7或8所述的方法,其特征在于,所述负载均衡系统还包括负载均衡节点,所述负载均衡节点上运行所述负载均衡器以及第一虚拟路由器,所述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关地址,所述负载均衡器将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点包括:
所述负载均衡器将所述访问请求发送到所述第一虚拟路由器的第一端口,所述第一端口的地址为所述负载均衡器的网关地址;
所述第一虚拟路由器接收所述访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器的网关地址。
10.如权利要求9所述的方法,其特征在于,所述目的服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网关地址,
所述目的后端服务器向所述客户端返回访问响应包括:所述目的后端服务器将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述目的后端服务器的网关地址;
所述第二虚拟路由器接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
11.如权利要求7或8所述的方法,其特征在于,所述目的服务节点上运行有第三虚拟路由器,所述目的后端服务器还具备与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述负载均衡器将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点包括:所述负载均衡器将所述访问请求的目的地址修改为与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;
所述目的服务节点上的所述虚拟交换机接收所述访问请求之前,所述方法还包括:所述目的服务节点上的所述第三虚拟路由器接收所述访问请求,将所述访问请求的目的地址修改为所述目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。
12.如权利要求11所述的方法,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,
所述目的后端服务器向所述客户端返回访问响应之后,所述方法还包括:所述虚拟交换机接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。
13.一种服务节点,其特征在于,所述服务节点运行有虚拟交换机以及至少一个后端服务器,所述至少一个后端服务器由负载均衡器分配给客户端提供服务,所述服务节点上的所述虚拟交换机,用于接收所述负载均衡器发送的所述客户端的访问请求,所述访问请求的目的地址为所述后端服务器虚拟网卡的IP地址;
所述虚拟交换机,还用于将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述后端服务器;
所述后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
14.如权利要求13所述的服务节点,其特征在于,所述虚拟交换机,具体用于接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。
15.如权利要求13或14所述的服务节点,其特征在于,所述服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述后端服务器的网关地址,
所述后端服务器,具体用于将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述后端服务器的网关地址;
所述第二虚拟路由器,用于接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
16.如权利要求13或14所述的服务节点,其特征在于,所述服务节点上运行有第三虚拟路由器,所述后端服务器还具备与所述后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述服务节点上的所述第三虚拟路由器,还用于接收所述访问请求,将所述访问请求的目的地址修改为所述后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。
17.如权利要求16所述的服务节点,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,
所述虚拟交换机,还用于接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。
18.一种负载均衡的方法,其特征在于,所述方法由服务节点执行,所述服务节点运行有虚拟交换机以及至少一个后端服务器,所述至少一个后端服务器由负载均衡器分配给客户端提供服务,所述方法包括:
所述服务节点上的所述虚拟交换机接收所述负载均衡器发送的所述客户端的访问请求,所述访问请求的目的地址为所述后端服务器虚拟网卡的IP地址;
所述虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述后端服务器;
所述后端服务器接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
19.如权利要求18所述的方法,其特征在于,所述虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址包括:所述虚拟交换机,具体用于接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。
20.一种虚拟化环境下的负载均衡系统,其特征在于,所述系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机、虚拟路由器以及至少一个后端服务器,所述负载均衡器与所述后端服务器位于同一租户网络,所述负载均衡器,用于接收客户端的访问请求,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为后端服务器的局域网IP地址,将所述访问请求发送到所述目的后端服务器所在的目的服务节点;
所述目的服务节点的虚拟路由器,用于接收所述访问请求,根据第一流表,将所述访问请求的目的地址由目的后端服务器的局域网IP地址修改为目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送给所述目的服务节点的虚拟交换机;
所述虚拟交换机,用于根据第二流表,将所述访问请求的目的地址修改为所述负载均衡器的虚拟IP地址,将所述访问请求发送给所述目的后端服务器;
所述目的后端服务器,用于接收并处理所述访问请求,返回访问响应,所述访问响应的源地址修改为所述负载均衡器的虚拟IP地址;
所述虚拟路由器,还用于根据第三流表,将所述访问响应的源地址修改为所述负载均衡器的公网IP地址。
说明书 :
一种负载均衡的方法、装置和系统
技术领域
背景技术
户端选择提供服务的后端服务器。负载均衡器的IP地址为服务器资源池对外呈现的IP地
址,客户端通过该负载均衡器的IP地址即可访问服务器资源池中的后端服务器,而无需知
道后端服务器的地址。负载均衡器提供负载均衡服务的模式包含直接路由(Direct
Routing,DR)模式和网络地址转换(Network Address Translation,NAT)模式。
段,后端服务器和负载均衡器不能跨网段部署,因此对负载均衡系统的组网造成了较大的
限制。
发明内容
点上运行有虚拟交换机以及至少一个后端服务器,所述后端服务器逻辑接口的IP地址为所
述负载均衡器的IP地址,负载均衡器接收客户端的访问请求,将访问请求的目的地址修改
为目的后端服务器虚拟网卡的IP地址,当服务节点的虚拟交换机接收到访问请求时,将访
问请求的目的地址修改为负载均衡器的IP地址,从而使得当目的后端服务器返回访问响应
时,该访问响应的源地址为负载均衡器的地址。
DR模式下,后端服务器和负载均衡器不能跨网段部署的问题。
改为负载均衡器的IP地址;
述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关
地址,
同一租户网络的不同网段,二者均可以通过所在节点的虚拟路由器进行通信。
机或者容器。负载均衡器的公网IP地址关联有虚拟IP地址,该虚拟IP地址与后端服务器的
虚拟网卡的IP地址,以及后端服务器的逻辑接口的IP地址在同一租户网络的不同网段。更
进步一步的,为了区分不同租户,负载均衡器以及后端服务器还具备局域网IP地址。
IP地址用于实现不同租户间的网络隔离,
点;
送到所述虚拟交换机。
现返程的业务访问响应不经过负载均衡器,保证了网络性能,解决了云计算网络中DR模式
下,后端服务器和负载均衡器不能跨网段部署的问题。
虚拟交换机以及至少一个后端服务器,所述后端服务器逻辑接口的IP地址为所述负载均衡
器的IP地址,所述方法包括:
发送给所述目的后端服务器所在的所述目的服务节点;
务器逻辑接口的IP地址为所述负载均衡器的IP地址,
路由器以及至少一个后端服务器,所述负载均衡器与所述后端服务器位于同一租户网络,
所述后端服务器逻辑接口的IP地址为所述负载均衡器的虚拟IP地址,
到所述目的后端服务器所在的目的服务节点;
卡的IP地址,将所述访问请求发送给所述目的服务节点的虚拟交换机;
通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与
上述功能相对应的模块。
附图说明
具体实施方式
器21和负载均衡器22,所述服务节点3上运行第二虚拟路由器31、至少一个后端服务器32
(图1中以一个后端服务器为例)以及虚拟交换机33。在所述负载均衡系统中,客户端11、负
载均衡节点2以及服务节点3均可以为多个,其中,多个服务节点3组成服务器资源池为客户
端11提供服务,可选的,负载均衡节点2可以采用分布式部署,本发明实施例对此并不进行
限定。所述客户端11、负载均衡节点2以及服务节点3之间通过云网络相互通信。示例性的,
如图2所示,所述客户端11可以为运行在访问节点上,具体的,所述客户端可以为虚拟机或
者容器。可选的,所述负载均衡器22以及所述后端服务器32均可以为运行在物理节点上的
虚拟机或容器。
衡器22配置为NAT模式,为负载均衡器22分配IP地址,示例性的,负载均衡器22的IP地址为
192.168.2.10/24。租户在服务节点3上配置后端服务器32,为后端服务器32分配IP地址,所
述后端服务器32的IP地址包括后端服务器32虚拟网卡的IP地址以及后端服务器32逻辑接
口的IP地址,所述后端服务器32逻辑接口的IP地址为所述负载均衡器22的IP地址,示例性
的,后端服务器32虚拟网卡的IP地址为192.168.3.10/24,逻辑接口的IP地址为
192.168.2.10。云管理平台为每个节点上的虚拟路由器(12/21/31)的多个端口分配配置客
户端11的网关地址、负载均衡器22的网关地址以及后端服务器32的网关地址。图1所示的系
统结构对应于内网访问模式。
址又称为虚拟IP地址,客户端发送的访问请求的目的地址为负载均衡器的虚拟IP地址。
于客户端所在的访问节点的虚拟路由器上配置有负载均衡器的网关地址对应的端口(例
如,端口2),因此,访问节点的虚拟路由器的端口1接收到访问请求后,根据访问请求的目的
地址(192.168.2.10),将该访问请求从端口2发出,发送到负载均衡器的IP地址
192.168.2.10。
的LVS软件配置中保存了后端服务器的信息,负载均衡器可以从而可以获取选择的后端服
务器的地址。
端口,所述第一端口的地址为所述负载均衡器的网关地址,所述第一虚拟路由器接收所述
访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器
的网关地址。
服务器。
改。所述虚拟交换机根据所述流表,将所述访问请求的目的地址修改负载均衡器的IP地址
(192.168.2.10),由于后端服务器逻辑接口的IP地址为所述负载均衡器的IP地址,所以,在
虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址后,所述访问请求
可以被发送到所述后端服务器。
请求进行处理,并返回访问响应,所述访问响应的源IP地址为负载均衡器的IP地址
(192.168.2.10),目的IP地址为客户端的IP地址(192.168.1.10)。后端服务器所在的服务
节点上的第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网
关地址,所述目的后端服务器将所述访问响应发送到所述第二虚拟路由器的第三端口,所
述第三端口的地址为所述目的后端服务器的网关地址;所述第二虚拟路由器接收所述访问
响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
该公网地址,由负载均衡器为客户端选择后端服务器提供服务,后端服务器组成的硬件资
源池的内部网络对客户端不可见。
192.168.2.10)还关联有公网IP地址(9.9.9.9),客户端使用负载均衡器的公网IP地址访问
所述负载均衡器。所虚拟均衡器与所述服务节点上运行的后端服务器处于同一内网中,因
此,所述负载均衡器物理接口地址上还配置有局域网IP地址(例如,100.100.100.100)。
口的IP地址(例如,192.168.2.10),所述后端服务器逻辑接口的IP地址为所述负载均衡器
的IP地址。进一步的,所述后端服务器的虚拟网卡的IP地址还关联有后端服务器的局域网
IP地址(例如,100.120.2.10)。
服务器可以使用相同的虚拟网卡的IP地址,不同租户的负载均衡器可以使用相同的虚拟IP
地址。例如,硬件资源池中的服务节点上运行的租户A的一个后端服务器的虚拟网卡的IP地
址为192.168.3.10,硬件资源池中的服务节点上运行的租户B的一个后端服务器的虚拟网
卡的IP地址也可以为192.168.3.10。
送给目的后端服务器所在的服务节点。
的源IP地址保持不变,仍然是8.8.8.8,将访问请求发送给后端服务器所在的服务节点。
限定。
址。该虚拟路由器根据第一流表,将该访问请求的目的地址由目的后端服务器的局域网IP
地址修改为目的后端服务器的虚拟网卡的IP地址,将访问请求发送给服务节点的虚拟交换
机。
器局域网IP地址的访问请求时,将访问请求的目的地址修改为该后端服务器虚拟网卡的IP
地址。
送给目的后端服务器。
IP地址(192.168.3.10)的访问请求时,将访问请求的目的地址修改为该后端服务器的逻辑
接口的IP地址(192.168.2.10)。
(即为负载均衡器的虚拟IP地址),目的地址为客户端的公网IP地址。
为负载均衡器的公网IP地址,所述虚拟路由器将该业务访问响应发送给客户端。
虚拟IP地址的报文(具体可以为业务访问响应)时,将该报文的源地址修改为负载均衡器的
公网IP地址。
端服务器的虚拟网卡的IP地址;第二次为,虚拟交换机将访问请求的目的地址由目的后端
服务器的虚拟网卡的IP地址修改为负载均衡器的虚拟IP地址。在一种可能的实施方式中,
步骤503和步骤504可以由下述步骤直接替换:目的后端服务器所在的服务节点的虚拟交换
机在接收到访问请求时,根据网络控制器下发的流表,将访问请求的目的地址修改为负载
均衡器的虚拟IP地址(即将访问请求的目的地址由目的后端服务器的局域网IP地址修改为
负载均衡器的虚拟IP地址),然后将访问请求发送给目的后端服务器。替换的步骤,只需要
执行一次目的地址修改。
为负载均衡器的公网IP地址,因此,负载均衡系统的内网地址对客户端不可见,客户端根据
该业务访问响应的源地址认为该业务访问响应由负载均衡器发出。
返程的业务访问响应不经过负载均衡器,保证了网络性能,解决了云计算网络中DR模式下,
后端服务器和负载均衡器不能跨网段部署的问题。
器602连接,需要说明的是图6所示的各部分之间的连接方式仅为一种可能的示例,也可以
是,收发器601与存储器603均与处理器602连接,且收发器601与存储器603之间没有连接,
或者,也可以是其他可能的连接方式。
programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件
(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:
field‑programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array
logic,缩写:GAL)或其任意组合。
文:non‑volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk
drive,缩写:HDD)或固态硬盘(英文:solid‑state drive,缩写:SSD);存储器603还可以包
括上述种类的存储器的组合。
式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储
介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。