基于Floodlight网络负载均衡研究与实践2
时间:2021-10-28 12:43:59 来源:网友投稿
基于 Floodlight 的负载均衡的实现 摘要:本文基于 SDN 网络架构构建了一个虚拟网络,使用 Floodlight 作为该虚拟网络的控制器,通过调用 Floodlight 控制器的 restful API 实现了服务器之间的负载均衡。
前言:
1 研究背景
SDN 2 Floodlight 功能分析 3 实验过程及实验数据分析 3.1 网络拓扑结构
3.2 实验平台搭建 本文通过采用 mininet 虚拟出主机设备,使用 open vSwitch 虚拟交换机作为 OpenFlow 交换机连接不同的主机设备,使用 FloodLight 作为网络控制器。
(1)mininet 的安装 https://github.com/mininet/mininet/downloads 网站提供了 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://github.com/floodlight/floodlight.git
cd floodlight git checkout stable ant java -jar target/floodlight.jar #运行 Floodlight
3.3 Floodlight 控制器的 RESTFUL API 调用 通过调用 RESTFUL API,实现负载均衡。首先调用 quantum/v1.0/vips 设置 vip 的 id 和 vip名称以及对外显示的 IP 地址和端口号,传递的参数有 id 值,name 值,protocol 值,address值,port 值。其次调用 quantum/v1.0/pools 设置地址池名称以及该地址池所对应的 vip 的 id值。再次通过调用 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 地址为 167772260,服务器 h1 的地址为 167772161,服务器 h2 的地址为 167772162。
H3 访问网站 H3 使用 wget -O - 10.0.0.100 命令不停地发送 web 请求,使用 http://127.0.0.1/ui/index.html 查看 floodlight 控制器中记录的流表信息,如图所示,可见服务器 h1 与 h2 之间在轮换处理请求,
H3 多次访问网站,查看 http://localhost:8080/ui/index.html,结果如下图所示,从发 flows(2)结果可见实现了负载均衡 。
4 总结
[基于Floodlight网络负载均衡研究与实践2]相关文章
- 开展党的群众路线教育实践活动第一阶段总结
- 小学综合实践总结
- [“文明餐桌”实践活动指导方案]文明就餐活动方案
- 劳动实践课——实践园里“春”课程
- 【2021年学校德育实践活动计划】 2017年德育工作计划
- 【中小学生实践活动与实践能力研究-20210418000247】
- “土木工程施工”课堂教学及实践教学改革与实践-20210413000735:
- 【机器人入门与实践教学改革与实践汇编】
- 【实践工作化工作实践化.x】
- [实践团队暑期实践个人心得]
- 研究性学习自我总结范文
- 研究性学习研究报告
- 肺癌与慢性阻塞性肺疾病相关性研究进展
- 对于针对基于学习设计研究性学习实施策略
- 研究报告人力资源强国与基本公共教育服务体系
- 基于Unity3D塔防游戏研究与实现
- 英语词汇教学专题研究报告:
- 光启集团 [数字技术研究院简介]
- 课题研究报告编写格式
- 酸铋钠基无铅压电陶瓷研究进展
- 上一篇:2021学校班会学期活动方案2020
- 下一篇:基于Matlab卫星中继通信链路仿真