一种服务器负载均衡方法、装置及系统制造方法及图纸

技术编号:8536772 阅读:139 留言:0更新日期:2013-04-04 21:36
本申请提供了一种服务器负载均衡方法、装置及系统,以使LVS实现跨网段的负载均衡。在LVS和RS之间采用三层互联,并对LVS从客户端和真实服务器接收的数据包都进行源地址和目的地址的转换,从而使LVS能为更多个不同网段的RS服务。这种三层互联的方式实现了真正意义上的跨网段负载均衡,LVS上能够提供服务的RS数目不再受限制,因此可以扩展出层次化的网络拓扑。而且,简化了LVS和RS的配置和运营维护。

【技术实现步骤摘要】
—种服务器负载均衡方法、装置及系统
本申请涉及负载均衡技术,特别是涉及一种服务器负载均衡方法、装置及系统。
技术介绍
在互联网应用技术中,负载均衡一直是热门话题,LVS负载均衡是其中的一种负载均衡技术。LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。LVS主要用于多服务器的负载均衡,工作在网络层,可以实现高性能、高可用的服务器集群技术。LVS负载均衡的系统结构如图1所示,主要包括客户端(Client)、虚拟服务器 (LVS)和真实服务器(Real Server,简称RS)。其中,LVS最主要的功能是提供包转发和负载均衡,LVS通过虚拟一个对外访问的IP(Vip),当用户访问vip时到达LVS,LVS根据一定的规则选择一个RS,RS处理完成后返回给客户端数据。LVS目前支持VS/DR、VS/ΝΑΤ和VS/TUN三种工作模式。VS/DR (Virtual Server via Direct Routing),即通过直接路由技术实现虚拟服务器。VS/DR通过改写请求报文的MAC地址,将请求发送到RS,而RS将响应直接返回给客户。VS/NAT (Virtual Server via Network Address Translation),即通过网络地址转换技术实现虚拟服务器。当请求来到时,VS/ΝΑΤ将数据报文中的目标地址(即虚拟IP地址vip)改成具体的某台RS,端口也改成RS的端口,然后把报文发给RS。RS处理完数据后, 需要返回给VS/NAT,然后VS/ΝΑΤ将数据包中的源地址和源端口改成vip的地址和端口,最后把数据发送出去。VS/TUN (Virtual Server via IP Tunneling),即通过 IP 隧道技术实现虚拟服务器。是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。它跟VS/ΝΑΤ基本一样,但是RS是直接返回数据给客户端,不需要经过VS/TUN。在上述三种工作模式下,LVS与后端的RS均需要两层互联,即LVS与RS处在同一个网段中并使用两层协议通信,由此带来的问题是限制了 LVS和RS的部署和级联方式, LVS不能为跨网段的RS提供服务,只能使用较为扁平的网络拓扑,从而大大局限了网络拓扑。为了能为多个网段的RS服务,现有的技术提出一种在VS/DR和VS/ΝΑΤ工作模式下的实现方法,该方法通过在LVS网卡上打tag来实现。通常,服务器的网卡通过网线与路由器/交换机端口相连以连通网络。交换机端口一般有两种工作模式,一种是access模式,一种是trunk模式。在access模式下,交换机端口只能属于一个vlan (Virtual Local Area Network,虚拟局域网),对应的服务器网卡就配置一个网段的ip ;在trunk模式下,交换机端口可以属于多个vlan,因此,对应的服务器网卡就可以配置多个网段的ip,为了在网卡上配置多个网段,就需要对网卡打tag,每个tag对应着一个网段。对应到LVS的VS/DR和VS/ΝΑΤ模式,一般情况下LVS需要和后端的RS位于同一个网段,但是如果后端RS位于多个网段,就需要把LVS网卡的上联端口设置为trunk模式, 并且在LVS的网卡上打上多个tag,然后在每个tag上配置不同的网段来实现。这种在LVS网卡上打tag的方式可以使LVS服务于多个网段的RS,但是同一个路由器/交换机上的端口比较有限,限制了 LVS上能够提供服务的RS数目。而且,LVS和RS 之间仍是两层互联,并没有实现真正意义上的跨网段服务。因此,需要实现一种全新的跨网段技术,使LVS能为更多不同网段的RS提供服务, 在真正意义上扩展网络拓扑。
技术实现思路
本申请提供了一种服务器负载均衡方法、装置及系统,以使LVS实现跨网段的负载均衡。为了解决上述问题,本申请公开了一种服务器负载均衡方法,包括配置第一虚拟地址及其端口,和,第二虚拟地址及其端口,其中第一虚拟地址及其端口用于与客户端建立连接,第二虚拟地址及其端口用于与真实服务器建立连接;当接收客户端发来的数据包时,将该数据包中的源地址及源端口转换为第二虚拟地址及其端口,将该数据包的目的地址及目的端口转换为真实服务器的地址及其端口,然后将转换后的数据包转发给真实服务器;当接收真实服务器发来的数据包时,将该数据包中的源地址及源端口转换为第一虚拟地址及其端口,将该数据包的目的地址及目的端口转换为客户端的真实地址及其端口,然后将转换后的数据包转发给客户端。优选的,所述将转换后的数据包转发给真实服务器之前,还包括在所述转换后的数据包中添加客户端的真实 地址及其端口。优选的,还包括真实服务器收到所述转换后的数据包,通过解析获取客户端的真实地址及其端口。优选的,还包括判断接收到的数据包的目的地址或目的端口,如果目的地址为所述第一虚拟地址,或者,目的端口为所述第一虚拟地址的端口,则所述数据包是客户端发来的数据包;否则,是真实服务器发来的数据包。优选的,当接收客户端发来的数据包时,所述转换之前还包括根据数据包的源地址、源端口、目的地址和目的端口查询对应的session,如果查询到,则进行所述的转换;其中,所述源地址和源端口为客户端真实的地址和端口,所述目的地址和目的端口为所述第一虚拟地址及其端口。优选的,如果未查询到,还包括判断是否需要新建连接,如果是,则选择建立连接的真实服务器,并选择用于与所述真实服务器建立连接的第二虚拟地址及其端口,创建 session,然后进行所述的转换;如果否,则退出。优选的,当接收真实服务器发来的数据包时,所述转换之前还包括根据数据包的源地址、源端口、目的地址和目的端口查询对应的session,如果查询到,则进行所述的转换;如果未查询到,则退出;其中,所述源地址和源端口为真实服务器的地址和端口,所述目的地址和目的端口为所述第二虚拟地址及其端口。本申请还提供了一种服务器负载均衡装置,包括虚拟配置单元,用于配置第一虚拟地址及其端口,和,第二虚拟地址及其端口,其中第一虚拟地址及其端口用于与客户端建立连接,第二虚拟地址及其端口用于与真实服务器建立连接;第一地址转换单元,用于当接收客户端发来的数据包时,将该数据包中的源地址及源端口转换为第二虚拟地址及其端口,将该数据包的目的地址及目的端口转换为真实服务器的地址及其端口,然后将转换后的数据包转发给真实服务器;第二地址转换单元,用于当接收真实服务器发来的数据包时,将该数据包中的源地址及源端口转换为第一虚拟地址及其端口,将该数据包的目的地址及目的端口转换为客户端的真实地址及其端口,然后将转换后的数据包转发给客户端。优选的,所述装置还包括地址添加单元,用于在所述第一地址转换单元将转换后的数据包转发给真实服务器之前,在所述转换后的数据包中添加客户端的真实地址及其端□。优选的,所述装置还包括数据包判断单元,用于判断接收到的数据包的目的地址或目的端口,如果目的地址为所述第一虚拟地址,或者,目的端口为所述第一虚拟地址的端口,则所述数据包是客户端发来的数据包;否则,是真实服务器发来的数据包。优选的,所述装置还包括第一查询单元,用 于根据客户端发来的数据包的源地址、源端口、目的地本文档来自技高网
...

【技术保护点】
一种服务器负载均衡方法,其特征在于,包括:配置第一虚拟地址及其端口,和,第二虚拟地址及其端口,其中第一虚拟地址及其端口用于与客户端建立连接,第二虚拟地址及其端口用于与真实服务器建立连接;当接收客户端发来的数据包时,将该数据包中的源地址及源端口转换为第二虚拟地址及其端口,将该数据包的目的地址及目的端口转换为真实服务器的地址及其端口,然后将转换后的数据包转发给真实服务器;当接收真实服务器发来的数据包时,将该数据包中的源地址及源端口转换为第一虚拟地址及其端口,将该数据包的目的地址及目的端口转换为客户端的真实地址及其端口,然后将转换后的数据包转发给客户端。

【技术特征摘要】
1.一种服务器负载均衡方法,其特征在于,包括配置第一虚拟地址及其端口,和,第二虚拟地址及其端口,其中第一虚拟地址及其端口用于与客户端建立连接,第二虚拟地址及其端口用于与真实服务器建立连接;当接收客户端发来的数据包时,将该数据包中的源地址及源端口转换为第二虚拟地址及其端口,将该数据包的目的地址及目的端口转换为真实服务器的地址及其端口,然后将转换后的数据包转发给真实服务器;当接收真实服务器发来的数据包时,将该数据包中的源地址及源端口转换为第一虚拟地址及其端口,将该数据包的目的地址及目的端口转换为客户端的真实地址及其端口,然后将转换后的数据包转发给客户端。2.根据权利要求1所述的方法,其特征在于,所述将转换后的数据包转发给真实服务器之前,还包括在所述转换后的数据包中添加客户端的真实地址及其端口。3.根据权利要求2所述的方法,其特征在于,还包括真实服务器收到所述转换后的数据包,通过解析获取客户端的真实地址及其端口。4.根据权利要求1至3任一所述的方法,其特征在于,还包括判断接收到的数据包的目的地址或目的端口,如果目的地址为所述第一虚拟地址,或者,目的端口为所述第一虚拟地址的端口,则所述数据包是客户端发来的数据包;否则,是真实服务器发来的数据包。5.根据权利要求4所述的方法,其特征在于,当接收客户端发来的数据包时,所述转换之前还包括根据数据包的源地址、源端口、目的地址和目的端口查询对应的session,如果查询到,则进行所述的转换;其中,所述源地址和源端口为客户端真实的地址和端口,所述目的地址和目的端口为所述第一虚拟地址及其端口。6.根据权利要求5所述的方法,其特征在于,如果未查询到,还包括判断是否需要新建连接,如果是,则选择建立连接的真实服务器,并选择用于与所述真实服务器建立连接的第二虚拟地址及其端口,创建session,然后进行所述的转换;如果否,则退出。7.根据权利要求4所述的方法,其特征在于,当接收真实服务器发来的数据包时,所述转换之前还包括根据数据包的源地址、源端口、目的地址和目的端口查询对应的session,如果查询到,则进行所述的转换;如果未查询到,则退出;其中,所述源地址和源端口为真实服务器的地址和端口,所述目的地址和目的端口为所述第二虚拟地址及其端口。8.一种服务器负载均衡装置,其特征在于,包括虚拟配置单元,用于配置第一虚拟地址及其端口,和,第二虚拟地址及其端口,其中第一虚拟地址及其端口用于与客户端建立连接,第二虚拟地址及其端口用于与真实服务器建立连接;第一地址转换单元,用于当接收客户端发来的数据...

【专利技术属性】
技术研发人员:陈建唐会军
申请(专利权)人:奇智软件北京有限公司
类型:发明
国别省市:

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

1