Mininet加强版——DOT(分布式OpenFlow试验平台)
前言
之前在做SDN实验的时候,需要用到包含2000+个交换机的fattree拓扑,当时用的是mininet,生成整个拓扑需要十五六个小时,最终在异常艰苦的环境下做完了实验,之后听说了有DOT(Distributed OpenFlow Testbed)这个enhanced mininet,但当时迫于时间和机器的限制就没有尝试,现在有了腾讯云,刚好试试DOT。
一. DOT简介
DOT是一个模拟大规模SDN网络的工具,将模拟的任务分布在了多个物理主机上,这样就可以保证CPU,带宽以及网络延时,经过实验,他的可扩展性和其他性能要好于Mininet,下面左的性能比较来自于作者的论文。(其中backgroud traffic是相对于foreground traffic来说的,比如现在要在A和B之间产生千兆带宽(foreground traffic),但是网络中的其他设备之间也会存在带宽(background traffic),如果用Mininet的话无法保证AB之间的带宽为千兆,但是DOT可以。
上图由展示了DOT的系统构架,可以看出DOT主要有两个部分:DOT Central Manager(DCM)和很多个DOT Node Manager(DNM)。
DCM负责按照用户的指令分配资源,他有两个模块,Provisioning模块运行算法,负责将虚拟网络映射到物理资源,Statistics Collection模块负责从安装在么个DNM的Logging模块统计信息,Information数据库存储包括集群的利用率等管理信息。
一个DNM安装在一个物理主机上,每个DNM有两个模块,Host Provisioning模块负责收集和配置所需要的资源,Logging模块收集各种统计信息(包括资源利用率,数据包速率,吞吐率,延时,丢包率和OpenFlow消息。)
下图完整的展示了如何将要模拟的网络映射到多个物理主机上面,至于具体细节,可以参考论文。
二. 安装
我有个腾讯云服务器,一个用于DOT manager,一个用于DOT Node,假设他们的公网IP分别为(10.0.0.1,10.0.0.2),先用secureCRT分别远程登录两个服务器。然后分别安装DOT manager和DOT Node.
先在10.0.0.1服务器上安装DOT manager
- 因为后面的安装都是用bash脚本安装,所以先获取执行shell的root权限
sudo -s
- 下载文件,解压,改变权限,安装
wget http://dothub.org/downloads/dot_scripts_1_0.tar.gz
tar xvzf dot_scripts_1_0.tar.gz
chmod a+x dot_manager_install.sh
./dot_manager_install.sh - 在安装过程中需要输入一些参数
Press enter to continue... #直接按Enter
Enter the name of the local interface that is connected to the DOT nodes #输入一个网卡名称供DOT node连接,我这里是eth0
#接着要求输入DOT nodes的IP地址,我的为10.0.0.
#接着是子网掩码,我的为255.255.255. - 之后会自动下载安装很多的库.
再在10.0.0.2服务器上安装DOT Node
- 前面几步和DOT manager类似,不过安装的shell文件需要换成dot_node_install
sudo -s
wget http://dothub.org/downloads/dot_scripts_1_0.tar.gz
tar xvzf dot_scripts_1_0.tar.gz
chmod a+x dot_node_install.sh
./dot_node_install.sh - 在安装的过程中需要输入一些参数
Press Enter to continue... #直接按Enter
Enter the IP address of the DOT manager #输入DOT manager的IP,我的为10.0.01
Please enter the name of the external interface of this machine #输入刚才安装DOT manager时候的网卡名字,我这里是eth0
Enter the user name of the DOT node 需要给你的DOT node一个名字,我这里是dot
#然后需要输入密码,自己输入就好
#需要补充一些信息,我都是直接enter,成为默认值
Full name []:
Room Number []:
Work Phone []:
Other []:
Is the information correct?[Y/n] #这里必须输入Y - 之后会自动下载安装很多的库,包括虚拟交换机OpenvSwitch.
- 安装配置完成之后,将DOT manager的ssh key复制给所有的DOT nodes,在DOT Manager物理机上运行如下代码。
chmod a+x dot_manager_keycopy.sh
./dot_manager_keycopy.sh
运行过程需要输入一些参数:
DOT Manager installation is starting....
Press enter to continue... #直接按Enter键
Generating the ssh keys
Use the default location for saving the keys
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #输入一个文件名
Enter passphrase (empty for no passphrase): #输入密码,之后会生成key
Enter the user name of DOT nodes (Default: dot): #在上面安装DOT Node的时候输入过
Enter the IP Addresses of the DOT nodes (Separated by space): #输入DOT nodes的IP
#之后会让选择“yes”或者“no”,如果没有问题,选择yes即可完成。
三. 实验
拓扑需要用配置文件来定义。具体的步骤和说明可以参考Deloying logical topology
四. 遇到的问题
问题:在用securtCRT的时候出现乱码问题
解决:Options->Session Options->Appearance->Character encoding: UTF-8
五. 总结
之前的远程访问都是用的putty,这次从腾讯云官网上看到了secureCRT,因为他可以打开多窗口,同时进行多个连接,比putty还是要方便一些的,而且我在用putty的时候会经常中断。由于实验规模比较小,暂不能发现DOT的优越之处,以后做实验有条件的话会尝试一下。
Mininet加强版——DOT(分布式OpenFlow试验平台)的更多相关文章
- 分布式缓存管理平台XXL-CACHE
<分布式缓存管理平台XXL-CACHE> 一.简介 1.1 概述 XXL-CACHE是一个分布式缓存管理平台,其核心设计目标是"让分布式缓存的接入和管理的更加的简洁和高效&quo ...
- 分布式逻辑管理平台XXL-GLUE
<分布式逻辑管理平台XXL-GLUE> 一.简介 1.1 概述 XXL-GLUE 是一个分布式环境下的 "可执行逻辑单元" 管理平台, 学习简单,扩展JVM的动态 ...
- 基于ROS的分布式机器人远程控制平台
基于ROS的分布式机器人远程控制平台 1 结构说明 HiBot架构主要使用C/S架构,其中HibotServer为服务器,Muqutte为消息服务器中间件,HiBotClient为运行在机器人上的 ...
- (持续更新中~~~)kafka--消息引擎与分布式流处理平台
kafka概述 kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),一般更愿意称kafka是一款开源的消息引擎系统,只不过消息队列会耳熟一些.kafka主要应用于大数据 ...
- 分布式消息流平台:不要只想着Kafka,还有Pulsar
摘要:Pulsar作为一个云原生的分布式消息流平台,越来越频繁地出现在人们的视野中,大有替代Kafka江湖地位的趋势. 本文分享自华为云社区<MRS Pulsar:下一代分布式消息流平台全新发布 ...
- Apache Kafka分布式流处理平台及大厂面试宝典v3.0.0
概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache Kafka官网地址 http://kafka.apache.org/ 最新版本为 3.0.0 Apach ...
- GPS部标监控平台的架构设计(十一)-基于Memcached的分布式Gps监控平台
部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临 ...
- 分布式统一配置平台-Disconf.Net
源码地址:https://github.com/qkbao/Disconf.Net 作者:青客宝 联系qq:后续奉上 为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分 ...
- java分布式电子商务云平台b2b b2c o2o需要准备哪些技术??
技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 核心技术:分布式.云服务.微服务.服务编排等. 核心架构: 使用Spr ...
随机推荐
- Spring MVC 单元测试异常 Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
Sping 3.2.8.RELEASE + sping mvc + JDK 1.8运行异常. java.lang.IllegalStateException: Failed to load Appli ...
- HBase ProcedureV2 分析
Procedure V2, 是hbase1.1版本引入的一套fault-tolerant的执行multi-steps-job的框架, 目前主要用在Master中, 比如创建表,删除表等操作 新旧比较 ...
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...
- 点滴积累【JS】---JS小功能(offsetLeft实现图片滚动效果)
效果: 代码: <head runat="server"> <title></title> <style type="text/ ...
- java强行删除文件(针对进程正在使用的文件的删除)
boolean result = f.delete(); if(!result) { System.gc(); f.delete; }
- linux下的which
which命令用来查找并打印可执行文件的绝对路径. 他会根据PATH环境变量定义的路径来依此查找可执行文件. 需要注意的是,指向可执行文件的链接文件在查找中会被忽略. 比如env命令: ll /usr ...
- python学习之getpass模块
getpass模块提供两个功能: getpass.getpass(prompt ='Password:',stream = None) 提示用户输入密码而不回显. 使用字符串提示提示用 ...
- 转-subl配置全栈开发环境
为 Sublime Text 3 设置 Python 的全栈开发环境 Sublime Text 3 (ST3) 是一个轻量级的跨平台文字编辑器,尤以其轻快的速度,易用性和强大的社区支持而著称.它一经面 ...
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)
效果图:http://code.google.com/p/jquery-placeholder-js/ 演示代码:http://demo.jb51.net/js/2011/jqueryplacehol ...
- 【Python】Webpy 源码学习
那么webpy是什么呢? 阅读它的源码我们又能学到什么呢? 简单说webpy就是一个开源的web应用框架(官方首页:http://webpy.org/) 它的源代码非常整洁精干,学习它一方面可以让我们 ...