加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

干货:一种基于SDN的服务器负载均衡方案

发布时间:2018-07-09 12:13:06 所属栏目:教程 来源:唐月婷
导读:【资讯】 弁言 收集已经成为很多贸易的支撑脊柱,天下收集中天天都有新的装备插手,致使收集局限庞大化。浩瀚的收集装备不只意味着必要投入更多的资源,且使收集布局越加伟大化,打点难度增大且易错。为了停止收集打点错误的产生,一种新型的收集架构呈现
副问题[/!--empirenews.page--]

  【资讯】

  弁言

  收集已经成为很多贸易的支撑脊柱,天下收集中天天都有新的装备插手,致使收集局限庞大化。浩瀚的收集装备不只意味着必要投入更多的资源,且使收集布局越加伟大化,打点难度增大且易错。为了停止收集打点错误的产生,一种新型的收集架构呈现,即软件界说收集(Software Defined Networking,SDN)[1]。SDN技能旨在实现节制层与数据层面的疏散,而节制层是物理上齐集的一系列节制器。这些节制器通过开拓一系列应用可以或许检测和打点收集举动,实现收集可编程化。SDN可以实现各类传统物理收集的成果,如负载平衡。软件界说收集中的节制器通过改变数据平面互换机的流表项来调解受影响的流到冗余路径上传输,从而停止收集资源被太过占用[2]。

  干货:一种基于SDN的处事器负载平衡方案

  在云场景中,LBaaS(Load Balancing as a Service,负载平衡即处事)是Openstack[3]云计较平台已经投入研究的负载平衡办理方案。可是,它搭载的Openstack项目——收集和地点打点(Neutron)仅能实现指定方针的收集会见。在大型云应用场景中,LBaaS并不能支撑起负载平衡营业。于是,Openstack中将SDN作为Neutron模块的一个插件成长收集营业办理LBaaS的范围,如NFV(Network Function Virtualization,收集成果假造化)。Window基于云平台的操纵体系Azure中的云局限负载平衡方案(Ananta)[4],也小心于SDN的节制层面和数据平面疏散的架构,实现了云局限下可扩展的基于软件的四层地点转换负载平衡处事。它的节制部门不能检测收集中巨细负载的流量,将数据部门局限计划得很大,本钱响应也增大。对比于前两者,SDN拥有独立的节制器来自主打点收集,可支持编程完成指定营业;不似Anata,SDN将节制层面和数据平面别离以差异的软件运行,并以收集接口毗连,内部措施互不滋扰。今朝,对付SDN情形中的负载平衡以算法研究为主,方案陈设研究甚少。在以SDN架构为主的Google的B4[5]收集中,也没有吻合的负载平衡方案。

  SDN的开源节制器有NOX、Opendaylight、RYU和Floodlight等[6]。Floodlight集成了SDN的节制层与部门应用层,内部的南向接口通过Restful API实现。比起NOX、POX以及Maestro几款SDN节制器,Floodlight拥有更好的机能,支持各个应用模块,同时处理赏罚Openflow动静[7]。本文提出的负载平衡方案作为一个应用模块,运行在Floodlight节制器措施框架中,可同时扩展处事器负载平衡算法与路径选择的负载平衡方案。尝试情形基于Mininet[8]仿真,每个节点默认的设置沟通,处事器群的平衡计策回收轮询算法,路径则选择最短路径。模块中添加多个收集检测参数,使得此方案可扩展性强。

  1 负载平衡方案

  1.1 Laodbalancer逻辑架构

  本文将负载平衡方案陈设为一个封装的应用模块(Loadbalancer),并整合在Floodlight的措施框架中。凭证此次的试验情形,负载平衡方案架构表现如图1所示。Floodlight用Restful API实现南向接口毗连节制器模块与应用模块,收集长途毗连实现其北向接口至Mininet软件仿真的收集,检测收集数据并下发流表到各Openflow互换机。Loaderbalancer作为整合在个中的一项应用,参加流表的拟定。互换机凭证流表举办数据传输,即实现了负载平衡处事。

  干货:一种基于SDN的处事器负载平衡方案

  1.2 Loadbalancer处事进程

  负载平衡的处事进程中包括了说明Packet_In动静、负载平衡决定、路径选择以及流表下发。图2为整个负载平衡处事的通讯流程。

  干货:一种基于SDN的处事器负载平衡方案

  ①主机发送哀求包(Request Packet),此处dstIp=VIPIp;

  ②互换机检测到其流表中不存在与此Request packet相匹配的流表,即发送Packet_In包向节制器哀求决定,此处dstIp=VIPIp;

  ③起首Floodlight节制器检测到Packet_In动静中的VIP地点与其Port之后,即挪用负载平衡算法,经过算法选择Mininet建设的假造处事器。选择方针处事器后,计较主机到方针处事器的路径(选择跳数起码的路径),并将其进向路由以流表的方法下发到Openswitch(pushInVipRoutes)。其次,举办地点转换,将Request Packet的目标IP地点与Mac地点,由dstIp=VIPIp、dstMac=VIPMac转换为负载平衡计策选中处事器的IP地点与MAC地点dstIp=SeverIp、dstMac=SeverMac。最后,发送Packet_out到Openswitch,关照对此包凭证下发流表事变;

  ④Sever收到dstIp=SeverIp、srcIp=HostIp的Request packet;

  ⑤Sever回覆主机发送的Reply packet,dstIp=HostIp,srcIp=SeverIp;

  ⑥同第②步,发送Packet_out至节制器,此处srcIp=SeverIp;

  ⑦同第③步,起首找随处事器到主机的路径,其次举办地点转换;

  ⑧主机收到dstIp=HostIp、srcIp=VIPIp的Request Packet。

  第一次通讯流程竣事后,Openswitch将流表举办存储,之后必要沟通路径的毗连直接通过互换机转发。

  1.3 轮询调治算法

  在SDN情形中,假造处事器都有沟通的设置,轮询调治算法可以节省负载计策淹灭的时刻。在Floodlight节制器中,负载平衡计策回收轮询调治算法可以或许为其他模块提供计较空间。轮询调治算法将每一次来自收集的哀求都可以轮番分派给内部中的处事器,从1到 ,然后从头轮回。它每次调治执行 ,并选出第 台处事器。

  轮询调治算法的相干代码如下:

  public String pickMember(IPClient client){ if (members.size()>0){ previousMemberIndex=(previousMemberIndex +1)%members.size(); return members.get(previousMemberIndex); } else{ return null;}

  2 尝试及说明

  本方案的尝试操纵体系回收的是Ubuntu。SDN数据平面由假造机中的Mininet搭建,运行在主机中的Floodlight作为节制器与负载平衡器。Floodlight支持收集可视化,通过会见其端口页面可以发明收集拓扑、收集毗连、互换机流表、互换机以及主机信息。

  2.1 设置Loadbalancer

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读