资源描述
基于Floodlight负载均衡实现
摘要:本文基于SDN网络架构构建了一种虚拟网络,使用Floodlight作为该虚拟网络控制器,通过调用Floodlight控制器restful API 实现了服务器之间负载均衡。
前言:
1 研究背景
SDN
2 Floodlight功能分析
3 实验过程及实验数据分析
3.1 网络拓扑构造
Floodlight Controller
3.2 实验平台搭建
本文通过采用mininet虚拟出主机设备,使用open vSwitch虚拟互换机作为OpenFlow互换机连接不同主机设备,使用FloodLight作为网络控制器。
(1) mininet安装
网站提供了mininet VM,这是一种操作系统镜像文献,解压之后,可以直接在虚拟机中进行加载。本文采用了virtualBox作为虚拟机。
(2) open vSwitch安装
Mininet中自带有open vSwitch,可以使用mininet自带open vSwitch,也可以此外安装open vSwitch作为网络互连设备。安装过程如下:
(3) FloodLight控制器安装
运营终端系统,进行如下操作安装floodlight,
sudo apt-get install build-essential default-jdk ant python-dev
git clone git://
cd floodlight
git checkout stable
ant
java -jar target/floodlight.jar #运营Floodlight
3.3 Floodlight 控制器RESTFUL API调用
通过调用RESTFUL API,实现负载均衡。一方面调用quantum/v1.0/vips设立vipid和vip名称以及对外显示IP地址和端标语,传递参数有id值,name值,protocol值,address值,port值。另一方面调用quantum/v1.0/pools设立地址池名称以及该地址池所相应vipid值。再次通过调用quantum/v1.0/members/往地址池中添加详细服务器地址,即将ip地址为10.0.0.1 和ip地址为10.0.0.2,端标语为80服务器添加到地址池中,形成一种服务器集群,这个服务器集群对外统一地址为10.0.0.100,端标语为80。当一种集群中某台服务器处在繁忙或奔溃状态,立即切换到集群中另一台服务器,对顾客而言是透明,从而实现负载均衡目。
#!/bin/sh
curl -X POST -d '{"id":"1","name":"vip1","protocol":"tcp","address":"10.0.0.100","port":"80"}' http://localhost:8080/quantum/v1.0/vips/
curl -X POST -d '{"id":"1","name":"pool1","protocol":"tcp,"vip_id":"1"}' http://localhost:8080/quantum/v1.0/pools/
curl -X POST -d '{"id":"1","address":"10.0.0.1","port":"80","pool_id":"1"}' http://localhost:8080/quantum/v1.0/members/
curl -X POST -d '{"id":"2","address":"10.0.0.2","port":"80","pool_id":"1"}' http://localhost:8080/quantum/v1.0/members/
3.4 数据分析
运营命令:sudo mn --controller= remote,ip=127.0.0.1 --topo single,3 运营成果如图所示。其中h1、h2和h3为主机,s1为openflow互换机。h1、h2和h3连接在s1上。
网络构造建设
主机h1,h2,h3配备信息如图。
H1配备信息
H2配备信息
H3配备信息
H1和h2启动WEB服务
H1启动web服务
H2启动web服务
负载均衡
通过REST API实现服务器之间负载均衡,进行流表配备,当一台服务器过载,将祈求自动转到另一台服务器上。编写脚本如下图所示。
调用rest API 实现负载均衡
运营脚本程序
运营脚本程序后来得到成果如下图所示
执行脚本程序运营成果可见,vip地址为,服务器h1地址为,服务器h2地址为。
H3 访问网站
H3使用wget -O - 10.0.0.100命令不断地发送web祈求,使用,如图所示,可见服务器h1与h2之间在轮换解决祈求,
H3多次访问网站,查看http://localhost:8080/ui/index.html,成果如下图所示,从发flows(2)成果可见实现了负载均衡 。
4 总结
展开阅读全文