一种负载分担方法及装置与流程

文档序号:12729528阅读:637来源:国知局
一种负载分担方法及装置与流程
本发明涉及通信
技术领域
,特别是涉及一种负载分担方法及装置。
背景技术
:如图1所示的组网,可以包括:SDN(SoftwareDefinedNetwork,软件定义网络)控制器100、DNS(DomainNameSystem,域名系统)服务器200、LB(LoadBalance,负载分担)设备300、云平台400、接入设备500和虚拟机600;其中,SDN控制器100负责向LB设备300下发负载分担规则,指导LB设备对流量进行分流,云平台400用于记录组网中各个虚拟机和/或服务器的资源利用率(例如:内存利用率、CPU利用率、网卡利用率等)和状态信息(例如:上线状态和下线状态)等。为了减轻单台设备的压力,进行负载分担时,虚拟机600通过接入设备500向将域名请求报文发送给DNS服务器200;DNS服务器200解析域名请求报文,确定虚拟机600需要访问的服务器集的IP(InternetProtocol,网络协议)地址(也就是LB设备300的IP地址),并反馈给虚拟机600;虚拟机600再通过接入设备500向LB设备300发送目的IP地址为上述IP地址的访问报文;LB设备300进行负载分担,确定接收到的访问报文的服务器,并将访问报文发送给这个服务器。由上可知,由LB设备和DNS服务器完成负载分担,无法实现SDN控制器集中控制流量的转发,增加了网络建设成本。技术实现要素:本发明实施例的目的在于提供一种负载分担方法及装置,以实现SDN控制器的集中控制流量转发,降低网络建设成本。具体技术方案如下:一方面,本发明实施例公开了一种负载分担方法,应用于SDN控制器,所述方法包括:接收接入设备上送的虚拟机发送的域名请求报文,其中,所述域名请求报文包括目的域名;根据预先存储的域名与多个服务器的地址的对应关系,确定所述目的域名对应的、且资源利用率小于预设阈值的服务器的地址为目的地址;计算针对所述虚拟机向所述目的地址对应的服务器发送的第一访问报文的第一流表,其中,所述第一流表用于指示所述接入设备将所述第一访问报文转发给所述目的地址对应的服务器;将所述目的地址通过所述接入设备发送给所述虚拟机,并将所述第一流表下发给所述接入设备,以使所述接入设备根据所述第一流表将所述第一访问报文转发给所述目的地址对应的服务器。另一方面,本发明实施例公开了一种负载分担装置,应用于SDN控制器,所述装置包括:接收单元,用于接收接入设备上送的虚拟机发送的域名请求报文,其中,所述域名请求报文包括目的域名;确定单元,用于根据预先存储的域名与多个服务器的地址的对应关系,确定所述目的域名对应的、且资源利用率小于预设阈值的服务器的地址为目的地址;计算单元,用于计算针对所述虚拟机向所述目的地址对应的服务器发送的第一访问报文的第一流表,其中,所述第一流表用于指示所述接入设备将所述第一访问报文转发给所述目的地址对应的服务器;发送单元,用于将所述目的地址通过所述接入设备发送给所述虚拟机,并将所述第一流表下发给所述接入设备,以使所述接入设备根据所述第一流表将所述第一访问报文转发给所述目的地址对应的服务器。。本发明实施例中,由SDN控制器确定进行负载分担的目的地址以及向接入设备下发流表,进而完成负载分担,而不需要在组网中架设LB设备和DNS服务器来完成负载分担,实现了SDN控制器的集中控制流量转发,降低了网络建设成本。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为一种组网的示意图;图2为本发明实施例提供的一种负载分担方法的流程示意图;图3为本发明实施例中使用的一种组网的示意图;图4为本发明实施例提供的一种负载分担装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体实施例,对本发明进行详细说明。参考图2,图2为本发明实施例提供的一种负载分担方法的流程示意图,参考图3,图3为本发明实施例中使用的一种组网的示意图,该方法应用于图3所示组网中的SDN控制器100。具体的,该方法包括:S201:接收接入设备上送的虚拟机发送的域名请求报文;其中,域名请求报文包括目的域名。接入设备包括硬件交换机和OVS(OpenvSwitch,开放式交换设备)等。一般的,接入设备并不会主动将域名请求报文发送给SDN控制器,为了保证接入设备能够将域名请求报文发送给SDN控制器,在本发明的一个实施例中,SDN控制器在接收接入设备上送的虚拟机发送的域名请求报文之前,可以向接入设备下发第二流表,该第二流表用于指示接入设备将域名请求报文上送至SDN控制器。这种情况下,接入设备在接收到虚拟机发送的域名请求报文后,就可以根据第二流表,将虚拟机发送的域名请求报文上送至SDN控制器了。例如,域名请求报文报文为UDP(UserDatagramProtocol,用户数据报协议)报文,其源端口为54388,目的端口为53,则SDN控制器向接入设备下发的第二流表可以为:将源端口为54388、目的端口为53的UDP报文上送至SDN控制器。这种情况下,当接入设备接收到一个报文,该报文为UDP报文,并且源端口为54388,目的端口为53,则可以确定这个报文与上述第二流表匹配,这个报文为域名请求报文,将这个报文上送给SDN控制器。S202:根据预先存储的域名与多个服务器的地址的对应关系,确定域名请求报文中包括的目的域名对应的、且资源利用率小于预设阈值的服务器的地址为目的地址;这里,预先存储的一个域名对应的多个服务器的地址为:同一服务器集包括的多个服务器的地址。例如:SDN控制器中预先存储的域名与多个服务器的地址的对应关系如表1所示;表1域名服务器的地址http://bpm1.com192.168.212.100http://bpm1.com192.168.212.101http://bpm1.com192.168.212.102http://bpm2.com100.0.0.1其中,域名http://bpm1.com对应的192.168.212.100、192.168.212.101、192.168.212.102这三个地址为同一服务器集的服务器的地址;当SDN控制器接收到携带http://bpm1.com(目的域名)的域名请求报文后,从192.168.212.100、192.168.212.101、192.168.212.102这三个地址中选择一个作为http://bpm1.com对应的目的地址,该目的地址可以理解为域名请求报文的目的地址。在本发明的一个实施例中,考虑到一台服务器若处理过多的业务,会降低服务器处理业务的效率,降低SDN的可靠性,SDN控制器可以定时的从云平台获取各个服务器的资源利用率,并结合获取的资源利用率,确定目的域名对应的目的地址,以提高SDN的可靠性。具体地,可以在SDN控制器预先设置一个阈值,SDN控制器在确定目的地址时,可以从预先存储的域名与多个服务器的地址的对应关系中,选择目的域名对应的、且资源利用率小于预设阈值的服务器的地址,进而将所选择的地址确定为目的地址。仍以上述表1进行说明,若预设阈值为80%,当SDN控制器接收到虚拟机X1发送的携带http://bpm1.com的域名请求报文后,从192.168.212.100、192.168.212.101、192.168.212.102这三个地址中选择一个作为http://bpm1.com对应的目的地址;在192.168.212.100、192.168.212.101、192.168.212.102这三个地址中,若SDN控制器从云平台获取到192.168.212.100对应的服务器Y1的资源利用率为81%,81%>80%,192.168.212.101对应的服务器Y2的资源利用率为31%,31%<80%,192.168.212.102对应的服务器Y3的资源利用率为54%,54%<80%,因此,从192.168.212.101、192.168.212.102这两个地址中选择一个作为http://bpm1.com对应的目的地址。在本发明的一个实施例中,为了加快用户的访问速度,SDN控制器可以从预先存储的域名与多个服务器的地址的对应关系中,确定出目的域名对应的、资源利用率小于预设阈值的多个服务器的地址,进而从目的域名对应的、资源利用率小于预设阈值的多个服务器的地址中,选择离虚拟机最近的服务器的地址,将这个选择的地址确定为目的域名对应的目的地址。在本发明的其他实施例中,上述离虚拟机最近的服务器可以为:与这个虚拟机间的链路上的途经设备最少的服务器。这种情况下,SDN控制器在确定目的地址的过程为:从预先存储的域名与多个服务器的地址的对应关系中,选择目的域名对应的、且资源利用率小于预设阈值的服务器中与虚拟机间的链路上的途经设备最少的服务器的地址。仍以上述表1进行说明,当SDN控制器接收到虚拟机X1发送的携带http://bpm1.com的域名请求报文后,从192.168.212.100、192.168.212.101、192.168.212.102这三个地址中选择一个作为http://bpm1.com对应的目的地址;在192.168.212.100、192.168.212.101、192.168.212.102这三个地址对应的服务器的资源利用率均小于预设阈值,另外这三个地址中,192.168.212.100对应的服务器Y1与虚拟机X1间的链路上的途经设备有3个,192.168.212.101对应的服务器Y2与虚拟机X1间的链路上的途经设备有5个,192.168.212.102对应的服务器Y3与虚拟机X1间的链路上的途经设备有7个,3<5<7,因此,选择服务器Y1的地址192.168.212.100,将192.168.212.100确定为目的地址。在本发明的其他实施例中,为了加快用户的访问速度,上述离虚拟机最近的服务器也可以为:与这个虚拟机间的链路的链路质量最好的服务器,本发明实施例对此不进行下限定。需要说明的是,SDN控制器在确定目的地址时,综合考虑服务器与虚拟机间的距离和服务器的资源利用率这两个因素,在加快用户的访问速度的同时,提高了SDN的可靠性。在本发明的一个实施例中,为了进一步加快用户的访问速度,SDN控制器若本次所选择的地址与上一次选择的地址相同,则从预先存储的目的域名对应的、除所选择的地址外的多个服务器的地址中,重新选择地址,这个重新选择的地址与上一次选择的地址不同,将重新选择的地址确定为目的地址,这样保证了相邻两次访问选择的地址不同,保证了服务器能够快速地处理用户的访问报文,提高了用户的访问速度。仍以上述例子进行说明,将192.168.212.100确定为目的地址后,SDN控制器接收到虚拟机X2发送的携带http://bpm1.com的域名请求报文后,若仍选择192.168.212.100作为目的地址,则从192.168.212.101、192.168.212.102这两个地址中重新选择地址,例如重新选择的地址为服务器Y2的地址192.168.212.101,将192.168.212.101确定为目的地址。为了确保用户的访问速度以及SDN的可靠性,在重新选择地址时,可以选择除上一次选择的地址外的、目的域名对应的、且资源利用率小于预设阈值的服务器中与虚拟机间的链路上的途经设备最少的服务器的地址。值得一提的是,SDN控制器在重新选择地址时,可以采用轮询的方法选择地址,也可以采用其他方法选择地址,本发明实施例对应不进行限定。S203:计算针对虚拟机向目的地址对应的服务器发送的第一访问报文的第一流表;这里,第一流表用于指示接入设备将第一访问报文转发给目的地址对应的服务器。S204:将目的地址通过接入设备发送给虚拟机,并将第一流表下发给接入设备。这样,虚拟机就可以发送携带上述目的地址的第一访问报文,进行访问了;另外,接入设备就可以根据第一流表将第一访问报文转发给目的地址对应的服务器了。需要说明的是,接入设备在将第一访问报文转发给目的地址对应的服务器的过程中,第一访问报文经过途经设备时,若途经设备上没有针对第一访问报文的第四流表,途经设备可以将第一访问报文发送给SDN控制器,SDN控制器根据第一访问报文计算出第四流表,并下发给这个途经设备;这样,途经设备就可以根据第四流表将第一访问报文发送给目的地址对应的服务器了。另外,需要说明的是,上述将目的地址通过接入设备发送给虚拟机的步骤,可以在S202后执行,也可以在S203后执行,本发明实施例对此不进行限定。在本发明的其他实施例中,为了提高SDN的可靠性,SDN控制器在将第一流表下发给接入设备之后,还可以定时的从云平台获取目的地址对应的服务器的状态信息等信息。具体的,若获取的目的地址对应的服务器的状态信息为在线状态(例如UP状态),则当前访问这个目的地址对应的服务器的虚拟机不变;若获取的目的地址对应的服务器的状态信息为下线状态(例如DOWN状态),为了保证虚拟机的正常访问,SDN控制器可以从目的域名对应的、除这个目的地址外的多个服务器的地址中,重新选择地址,并重新计算针对虚拟机向重新选择的地址对应的服务器发送的第二访问报文的第三流表,这里,第三流表用于指示接入设备将第二访问报文转发给重新选择的地址对应的服务器。这种情况下,SDN控制器将重新选择的地址通过接入设备发送给虚拟机,并将第三流表下发给接入设备;此时,接入设备就可以根据第三流表将第二访问报文转发给重新选择的地址对应的服务器。应用上述实施例,由SDN控制器确定进行负载分担的目的地址以及向接入设备下发流表,进而完成负载分担,而不需要在组网中架设LB设备和DNS服务器来完成负载分担,实现了SDN控制器的集中控制流量转发,降低了网络建设成本。参考图4,图4为本发明实施例提供的一种负载分担装置的结构示意图,应用于SDN控制器,该装置包括:接收单元401,用于接收接入设备上送的虚拟机发送的域名请求报文,其中,域名请求报文包括目的域名;确定单元402,用于根据预先存储的域名与多个服务器的地址的对应关系,确定目的域名对应的、且资源利用率小于预设阈值的服务器的地址为目的地址;计算单元403,用于计算针对虚拟机向目的地址对应的服务器发送的第一访问报文的第一流表,其中,第一流表用于指示接入设备将第一访问报文转发给目的地址对应的服务器;发送单元404,用于将目的地址通过接入设备发送给虚拟机,并将第一流表下发给接入设备,以使接入设备根据第一流表将第一访问报文转发给目的地址对应的服务器。在本发明的其他实施例中,上述负载分担装置还可以包括:下发单元(图4中未示出),用于在接收接入设备上送的虚拟机发送的域名请求报文之前,向接入设备下发第二流表,其中,第二流表用于指示接入设备将域名请求报文上送至SDN控制器。在本发明的其他实施例中,确定单元402,具体可以用于:从预先存储的域名与多个服务器的地址的对应关系中,选择目的域名对应的、且资源利用率小于预设阈值的服务器中离虚拟机最近的服务器的地址;将所选择的地址确定为目的地址。在本发明的其他实施例中,确定单元402,具体可以用于:从预先存储的域名与多个服务器的地址的对应关系中,选择目的域名对应的、且资源利用率小于预设阈值的服务器中与虚拟机间的链路上的途经设备最少的服务器的地址。在本发明的其他实施例中,确定单元402,具体可以用于:若所选择的地址与上一次选择的地址相同,从目的域名对应的、除所选择的地址外的多个服务器的地址中,重新选择地址;将重新选择的地址确定为目的地址。在本发明的其他实施例中,上述负载分担装置还可以包括:获取单元(图4中未示出),用于在将第一流表下发给接入设备之后,从云平台获取目的地址对应的服务器的状态信息;处理单元(图4中未示出),用于当状态信息为下线状态时,从目的域名对应的、除目的地址外的多个服务器的地址中,重新选择地址,并重新计算针对虚拟机向重新选择的地址对应的服务器发送的第二访问报文的第三流表,其中,第三流表用于指示接入设备将第二访问报文转发给所述重新选择的地址对应的服务器;将重新选择的地址通过接入设备发送给所述虚拟机,并将第三流表下发给接入设备,以使接入设备根据第三流表将第二访问报文转发给重新选择的地址对应的服务器。应用上述实施例,由SDN控制器确定进行负载分担的目的地址以及向接入设备下发流表,进而完成负载分担,而不需要在组网中架设LB设备和DNS服务器来完成负载分担,实现了SDN控制器的集中控制流量转发,降低了网络建设成本。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1