Virtual Network Midonet闲扯

下面呢介绍下Midonet由来,MidoNet是由日本的SDN公司Midkura研发的一款网络虚拟化软件,其基于底层 物理设施来实现网络虚拟化,具有分布式、分散、多层次的特点,主要作为OpenStack 中的默认网络组件,可以让虚拟网络解决方案,特别是专为网络基础设施设计的方案,为云平台如OpenStack服务,并且将其网络存贮栈虚拟化。

Midokura这家刚刚在网络虚拟化这个竞争很强的领域走过4个年头的创业公司,宣布开源其MidoNet网络虚拟化平台,以加速OpenStack云服务框架内的网络技术的发展。在去年11月份的时候,在巴黎召开的OpenStack大会上,Midokura官方宣布将MidoNet开源,OpenStack社区可以免费使用MidoNet,我从今年3月中旬的时候就研究过一段Midonet,他的思想很好,包括他的一些组件,当初在midonet.slack.com开源聊天室活跃过一段时间,因为毕竟Midonet的资料比较少,有兴趣的同学也可以加入进去讨论下。过会技术分享完之后我会给大家分享几个关于Midonet方面的资料,有需要的可以自行下载,今天分享的纯属个人见解哈,还望各位多多包涵。

下面介绍下他的组件:

Midolman(Midonet Agent):Midonet Agent安装在各个计算节点,负责建立网络流量控制和提供分布式Midonet网络服务,路由,NAT等他把相关的虚拟网络信息存放到NSDB。

Network State Database(NSDB):存储网络配置和状态,网络拓扑,路由,Midonet不集中处理网络功能,由Midonet Agent处理,Midonet Agent会跟NSDBs做实时同步当有变化时候会及时同步并且更新NSDB

今天主要分以下几个方面来说下Midonet
1.Midonet Architecture
2.VM如何上网?
3.NSDB
4.Midonet是如何来做跨二层虚实结合的?
5.OpenStack 如何与 Midonet 做集成?

1.下面简单说下他的架构图

从图中可以看出他采用的不是Open vSwitch 而是 Linux Kernel datapath,上层是Hypervisor and Midonet Agent(Midolman),然后是租户VM,这里的Midonet Gateway相当于原生的OpenStack Network Node,上网则可以采用两种方式后面我会讲到
     那么另一侧则是Midonet API and Midonet CLI 另外Midonet Enterprise Midonet Manager(可选)因为这个组件是企业版才会有的,在上面呢就是涉及到云平台层面,可以是VMware VSphere,openstack等等
     OK,那么下面我说下OpenStack直接用原生的neutron以及horizon来调取Midonet API整个环境就可以work了
     至于VMware VSphere等没有使用过,也没有发言权哈,以免误导大家
      刚才忽略了NSDB(Network State Database),下面就来讲下刚才遗留的两个问题,一个就是VM上网,另一个是NSDB(Network State Database).

2、下面在说下VM如何上网,也就引出了咱们今天的第二个话题

大家看这个图,一看有点高大上的感觉,逻辑思路很清晰哈,图画的很是不错,由此图可以看出他在租户路由外层又放置了一个router也就是Midonet的MidoNet Provider Router也就是OpenStack的external的那层网络,可以在他上面配置static route and BGP Dynamic route,详情配置可以查看官方文档。

3.简单说下今天的第三个话题NSDB(Network State Database)
    Network State Database(NSDB):存储网络配置和状态,网络拓扑,路由,Midonet不集中处理网络功能,由Midonet Agent处理,Midonet Agent会跟NSDBs做实时同步当有变化时候会及时同步并且更新NSDB,在部署的时候NSDB是分布式集群的方式
这个咱们前面也提到了,再次提了下
他的NSDB是由ZooKeeper + Cassandra来做的
     前段时间在微信朋友圈挺火的一篇文章说zk超过上千节点就会有问题,具体的我也没测试过,毕竟没有那么大的环境来测试,有兴趣的朋友可以测试下,不过Midonet有利也有弊,他抛弃了原生neutron的一些组件,也就是意味着他发布的前几个version都不支持OpenStack的一些高级功能例如VPNAAS,FWAAS当初三月份的时候还不支持,据说他们要在今年年底发布的版本会支持这些功能。

4.说下Midonet是如何来做跨二层虚实结合的?
    我觉得Midonet的灵活之处就是他的bridge可以随意port to bridge
    例如他的L2 gateway

下面针对于这个图说下

利用中间VAB bridge-->物理网卡-->物理交换机(trunk)
这里的VAB是自己创建的然后port to VUB8 & VUB5
 下面是VAB bridge-->VUB8 bridge-->VUB5 bridge   下面分别是vlan8和vlan5的各个VM
在物理交换机接入vlan8或者vlan5网段的物理机,这样就做到了虚实结合,传统网络与云网络相结合,物理机与云主机相结合,皆大欢喜哈。

5.下面说下今天最后一个话题也是大家关心的话题就是OpenStack 如何与 Midonet 做集成呢?


 
   下面说下他的搭建,搭建过程呢其实可以按照OpenStack官方文档 + Midonet官方文档交互式安装(这样感觉有点土哈,不过很实用)
    我后面分享PPT里面有一个自动化工具部署的,是基于docker的。技术也是蛮新的,很前沿哈:)

下面说下各个文档的地址:
Openstack官方文档地址:
http://docs.openstack.org/

Midonet企业版本文档地址:
http://docs.midokura.com/

Midonet开源版本文档地址:
http://docs.midonet.org/

其实呢midonet有两个版本,一个是企业版MEM(Midokura Enterprise MidoNet),企业版的话可以免费使用30天,具体多少刀我给忘了,有心的朋友可以自己去了解下。另一个就是开源版本Midonet,最初咱们说了他是去年11月份刚开源,所以就产生了midonet.org开源版本,目前好像已经有mail list了。也有不少活跃的人,但大部分都是Midokura公司的;两个版本的区别在于开源版本出来事情基本靠自己来解决,而企业版本Midokura公司将会提供Technical Support,并且提供一个管理页面
 

这个页面我曾经也试用过一段时间,没用之前对bridge,router都是抽象的,用了WEB Manager之后发现会好很多,但是收费哈,当然也可以自己开发然后调取API也是可以的,好了言归正传,Midonet功能虽好但是没有一个懂底层网络的工程师还是不能驾驭的,最后给大家分享几个midonet相关的资料,资料可能比较老,仅供参考哈,再次感谢肖总和各位的支持,今天的分享就到此结束,大家有什么要问的吗
 
资料的话我上传到我网盘吧,有需要的朋友可以去网盘下载:
http://pan.baidu.com/s/1pJOOfwR

二、问题交流阶段:

问题一:

问:按照官方文档,是不是要在gw节点装quagga?
答:你这个属于目前最新版本了,我当初玩的时候么有quagga。也许是换了个名字

问题二:

问:midonet比ovs和opencontrail来说有什么优点吗?
答:只能说各有个的好处opencontrail的话没玩过,不具备发言权哈,OVS的话你用这个就省去了优化OVS了,
问:看架构图 就是基于ovs内核模块的,性能应该差不多吧
答:他的发包流程是在发包之前就给你计划了一条最优路径选择
群友LJS:对,midonet内部走rip,最优路径

问题三:

问:Midonet 我还头一次听 学习中,国内用的人多吗?
答:国内不是很多,几乎没有听说过哪家在使,国外的话用户量也不算很多

问题四:

问:请教一下,Gateway的HA是如何实现的呢?和DVR的具体区别是什么?
答:GatewayHA应该就是多节点吧,具体没做,我看他官网的架构是多节点的,
问:是使用BGP?
答:static route就行吧,毕竟当初我测试环境,BGP的话他在BGP也只是小型的
问:Gateway也在计算节点吗?
答:单独分开,其实他这个架构在3月份的时候是这样的,controller node,network node,compute node,然后网络节点呢就是gateway在各个节点都有NSDB,然后我前段时间看的时候变了,变成了多节点,我发两个图你看下

问题五:

问:l3和ovs被替换了 其他还是用neutron的plugin?
答:嗯dhcp,metadata都还是用neutron的.

时间: 2024-10-14 06:45:24

Virtual Network Midonet闲扯的相关文章

Windows Azure Virtual Network (7) 创建Azure Point-to-Site VPN(1)

<Windows Azure Platform 系列文章目录> 我们在使用Azure的时候,常常有这样的需求: -我需要将企业内网的主机连接到微软Azure公有云平台 -我需要保证企业内部的网络与微软Azure公有云平台建立VPN连接 通过Azure Virtual Network中的Point-To-Site VPN,就可以实现将企业内网的一台主机(VPN客户端)与Azure Virtual Network中的网络进行连接 -这里的Point指的就是企业内网的一台主机(VPN客户端) -这里

VNC(Virtual Network Computing) 的配置安装

VNC(Virtual Network Computing)是一种Linux系统(或者BSD.Mac等)下常用的图形化远程管理工具,使用的是RFB协议 VNC跟SSH一样,也分为客户端与服务器端,我们在需要被远程访问的服务器上安装VNC的服务器端,其他计算机上安装VNC的客户端程序与其进行连接 CentOS 6/RHEL 6中我们使用的是 tigervnc 来作为自带的VNC工具,默认这个工具是没有被安装的,我们如果想要使用VNC服务,就必须根据一下的操作步骤 1.yum 来安装 tigervn

Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接

<Windows Azure Platform 系列文章目录> 我们知道,Azure Virtual Network可以 1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址 2.创建VPN网关,来设置Site-To-Site VPN或者Point-To-Site VPN 但是我们在使用Virtual Network的时候,会遇到这样的情况: 1.之前创建的2个Virtual Network,本来是互相不能通过内网访问的.但是后期想通过内网互通互联. 2.在创建的Virtual

Virtual Network (1) - How to use it in a guest

本文将讲述一个问题:kvm guest使用libvirt xml定义如何使用virtual network? 1)nat, route ,isolated类型 在host中定义virtual network会创建一个虚拟的bridge,相当于一个交换机.guest只需要连接到这个交换机上就可以了. 在guest的xml中添加: # virsh edit vm ... <interface type='network'/> <source network='net1'/>  ====

Windows Azure Virtual Network (7) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (2)

<Windows Azure Platform 系列文章目录> 在笔者之前的博客中Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1),笔者介绍了如何在创建虚拟机的时候,将固定公网地址进行绑定. 很遗憾,在很多情况下,客户已经使用Azure Management Portal创建了新的虚拟机.以前的办法只能将DNS删除,并且保留VHD,然后重新创建新的Cloud

OpenvSwitch 的 Open Virtual Network(OVN)项目

几天前(1 月 13 日),OpenvSwitch 团队正式宣布了 OVN(Open Virtual Network )项目.正文参考 Open Virtual Network Annoucement. 这个项目挺有意思,简单谈下我的看法. 众所周知,OpenvSwitch 已经是现在数据中心里软件交换机的事实标准.由于硬件交换设备的成本一直降不下来,而且用硬件交换设备去延伸管控服务器上的虚拟机的相关标准和协议仍不成熟,OpenvSwitch 在相当长的一段时间里,以其成本和灵活性的优势,占据很

Windows Azure Cloud Service (44) 将Cloud Service加入Virtual Network Subnet,并固定Virtual IP Address(VIP)

<Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经详细介绍了如何将Virtual Machine加入Virtual Network,并且绑定固定的Private IP和Virtual IP Address (公网IP地址) Windows Azure Virtual Network (5) 设置Azure Virtual Machine固定Private IP       Windows Azure Virtual Network (6) 设置Azure

Windows Azure Virtual Network (13) 跨数据中心之间的虚拟网络点对点连接VNet Peering

<Windows Azure Platform 系列文章目录> 今天是大年初二,首先祝大家新年快乐,万事如意. 在笔者之前的文章中:Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering 我们了解,可以在同一个数据中心之间的两个虚拟网络,只要虚拟网络的IP Range不冲突,就可以设置VNet Peering 现在,Azure VNet Peering还支持跨数据中心之间的两个虚拟网络,通过VNet Peering打通 在这里我们简

VNC ( Virtual Network Computing )

VNC is used to display an X windows session running on another computer. Unlike a remote X connection, the xserver is running on the remote computer, not on your local workstation. Your workstation ( Linux or Windows ) is only displaying a copy of th