内项目院子为美国伊利诺伊大学的 OCEAN,由176台服务器+16台Pica8公司OpenFlow交换机组成,需求从底层道理网络到运用的完整,支撑的项目包括获得HotSDN 2012最佳言论的VeriFlow,Jellyfish数据中心架构以及LIME虚拟网络迁移系统。项目2011年启动时OpenStack的网络仍为Quantum,方案设计可运用于后续版本Neutron。
摘要: SDN(软件定义网络)通过逻辑上解散的主主宰器实现关于底层交换机报文处理的管理,正正在建造界也因此出现了多种SDN/OpenFlow的主宰器譬如RYU,OpenDaylight、Floodlight等;随着云计划技艺的发展正正在IaaS领域涌现很多开源的云院子管理工具,但是这两个领域长远还没有很好的融会。内项目通过为OpenStack的网络实现一个可扩展的OpenFlow主宰器Plugin,试举证决早期OpenFlow主宰器正正在扩展性范畴的缺欠。
一、简介
云计划越来越进步,云需求的弹性和服务的动态需求日益受人瞩目。随着 OpenStack项手腕出现,云院子的创新也越来越容易。最初OpenStack项目由instance管理项目(Nova),object存储项目(Swift)和image repository项目(Glance)组成,网整体由Nova需求flat network配置和VLAN隔离,并没有受到太多关切。这种简单的网络能力使得租户很难构建多级网络(flat networking方式),同时没有扩展性可言。
从 Quantum项目末尾,OpenStack正正在接口设备(譬如vNIC)间需求“网络连接即服务”。Quantum使得租户可以轻松建立虚拟网络,模块化的架构和标准的API可方便实现防火墙和ACL的Plugin。正正在大批涌现的Plugin中,和网络最相关的就是OpenFlow主宰器RYU的plugin,但是RYU开源的Plugin短少云计划最基本的特性:扩展性。内项目将为Quantum设计一个更具扩展性的openflow plugin,同时使用SDN的解散主宰,我们还会演示基于主宰器的虚机迁移运用。
二、实现方法
Floodlight 是基于Java的OpenFlow主宰器,来源于Stanford大学最早开辟的Beacon主宰器(另一个最早的主宰器是NOX),内项目选择Floodlight是因为它是一款相对于于简单又存正正在较高性能的主宰器,没有过内项目采用的方法可异常适用于其它主宰器。
OpenFlow 开源主宰器RYU需求和内项目类似的Plugin,实现了逻辑上的解散主宰和API,便于缔造新的网络管理和主宰运用。RYU中止租户的2层网络隔离没有是通过VLAN,而是为VM内部通信建立单独的流,有实验表明这种方法正正在数据中心网络没有存正正在扩展性,因为它会很快耗尽交换机的内存资源。
我们基于 Floodlight为Quantum开辟一款扩展性更好的OpenFlow Plugin。最初选择Floodlight是因为它是一款高性能的企业级主宰器(译注:非常遗憾Floodlight已经停止复古)。没有过本项手腕方法可以很容易运用于其他标准的OpenFlow主宰器。
我们的 Plugin将来自Quantum API的建立/复古/锄草网络资源的请求传递给底层网络。除了Plugin,每一个Nova VM会加载一个Agent用来处理该VM的虚拟接口的缔造,并将它们与Quantum网络关于接。我们的方案使用支持OpenFlow的OpenvSwitch(OVS)来需求Quantum所需的底层网络,并通过Floodlight主宰器关于OVS中止配置。
1 挑战
为 Quantum需求OpenFlow主宰器Plugin的最大挑战就是扩展性。RYU开源的Plugin为所有的VM间流量缔造流,当流的数目逾越OpenFlow交换机TCAM支持的最大条目后扩展性就会变迁成就。
甲方法采用更存正正在扩展性的 VLAN方案关于租户网络中止隔离。我们知晓VLAN异常有扩展性的,因此,后续方案开辟可以考虑新的封装协议譬如VXLAN。
2 架构
Quantum 的Plugin用来处理网络建立请求,它将来自Quantum的网络ID转换为VLAN并将这个转换联络正正在数据库中。Plugin负责OVS Bridge的缔造,记录逻辑网模型。Agent和Plugin同时纪录进入网络的端口,通知Floodlight有新的流量进入网络。基于网络端口的分配情况和端口的源MAC地方,流量被主宰器加上VLAN ID标签。一旦加上标签后,网络流量就基于传统的learning switch中止转发。因此,通过VLAN标签和OpenFlow的主宰我们就可以基于租户中止VM流量的隔离。
上图所示为 Plugin的架构。租户通过nova-client将指令传递给Quantum管理单元,管理单元再将这些Call传递给真正执行缔造/读取/复古/锄草(CRUD)功能的主宰器Plugin。Plugin通过正正在每个租户的网络ID和VLAN ID间建立照射联络实现上述功能。每当有新的端口加载于Quantum网络,Plugin就会照应地平添端口到OVS-bridge,保存端口和VLAN ID间的照射联络。最后,以Daemon形式运行于每个Hypervisor之上的Quantum agent没有断轮询数据库和OVS Bridge,当有变化发生时就通知Floodlight Client,Client采用RESTful API告知Floodlight主宰器模块。这样主宰器就获取了端口、网络ID和VLAN ID的照射联络。当到达OVS的新报文没有任何entry时,报文会送到主宰器做决策。然后主宰器会推送一条规则到OVS告知其采用哪个VLAN ID来标记报文以及封装报文所用的道理主机地方。于是,主宰器还会为道理交换机增加一条规则,举动为按照正常报文处理清流线处理报文,由于报文的转发将会按照基本的Leaning Switch方式。通过这个方法每个道理交换机所需的TCAM条目数与通过交换机的VLAN数目成正比。
3 分析对于照
本节分析对于照上述方法与 RYU方法正正在流表数目上关于交换机的需求。假定每个服务器有20个VM,每个VM有10条并发流(收支各5条)。正正在这样的设定下,如果采用RYU的方法VM-VM间的流没有存正正在扩展性。上图所示为两种方法的对于照图。假定RYU的匹配规则基于VM的源和手腕地方,因此ToR交换机需要正正在TCAM中存储20 servers/rack x 20 VMs/server x 10并发流/VM = 4000条流表。然而正正在我们的方案中基于每个报文的VLAN标签可关于流表中止解散,即使正正在道理交换机上每个VM都有一条匹配规则(这里假定最坏情况即服务器上的每个VM都属于没有同的租户),需要存储正正在交换机TCAM中的流表条目数也只需400条,可以下降十倍以上。
4 管理运用示例:VM迁移
OpenFlow 和我们的OpenStack Plugin实现网络的全局视角以及关于转发行踪的直接主宰,因而可以简化操作管理。接下去我们需求一个运用案例:VM迁移。
高速无缝的 VM迁移是数据中心实现负载失调、配置管理、能耗糜费等提升资源使用率的次要伎俩。但是VM迁移需要复古网络状态,可以导致冲突、业务中断、环以及SLA没有达标等一系列成就,因此VM迁移关于服务需求商来讲没有断是一个挑战。SDN为解决这些棘手成就需求一个强有力的伎俩:正正在逻辑上解散的主宰器运行算法和可精确主宰交换机转发层面的能力有助于正正在两个状态间切换网络。
甲方法特别解决以下成就:对于于区分由带有定然转发规则的交换机组成的起始网络和目标网络,我们是否可以设计出一套 OpenFlow指令将起始网络状态转换到目标网络,同时保持某些状态譬如径无环以及带宽。这个成就可以分解为两个小成就:确定VM迁移的顺序或者许许方案排序;对于于每一个要迁移的VM,确定要执行或者许许遗弃的OpenFlow指令的顺序。
为了正正在有精确性的情况下中止迁移,我们测试了最佳算法(用来从所有可以的迁移顺序联合中肯定导致最少冲突的排序)的性能。算法可以计划出 VM迁移的排序以及一系列的转发状态改变。 算法运行正正在SDN主宰器之上由于可以编排整个网络的改变。为了评估设计的性能,我们正正在实正正在的数据中心用虚拟的网络拓扑仿能。对于于各种负载情况,算法可以大幅退步迁移的随机排序性能(80%以上)。
正正在共享的道理数据中心分配虚拟网络已经有很多研究,内项目借用这些使命中道理底层网络和 VN的拓扑和装置。于是,对于于底层拓扑,我们测试了用于随机图、树、胖树、D-Cell和B-Cube的算法。对于于VN,我们采用Web服密运用稀有的星形、树和3-tier图。正正在迁移前最初分配VN时,我们使用了SecondNet的算法。
我们随机选择虚拟节点来中止迁移,从有空余资源的底层节点任意选择手腕网络。正正在其他场景下当需要没有同的节点或者许目标选取策略时或者许会反响算法的性能,基于本算法可以继续中止研究。
迁移院子基于 Intel的Core i7-2600K,16GB内存。图3实验为200个节点的树,链接带宽为500MB,VN为9节点树,链带宽为10MB。如图所示,采用最佳算法后冲突比照保持正正在30%以下,而某些随机排序下则接近100%。
三、扩展使命: VXLAN
随着 VXLAN等新的协议出现,扩展多租户云网络的其他方法也可以被运用于Plugin的通信底层机制。
VLAN (IEEE802.1q)传统上常被用于为云中的没有同租户和组织需求隔离机制。虽然VLAN通过将网络连绵为的域解决了2层网络的成就,但是它无法需求敏捷的服务,可支持的host数目有限。因此,服务需要扩展时没有得没有适配没有同的VLAN,导致服务的连绵。于是,正正在手工配置的情况下,VLAN配置很容易出错,难于管理。虽然可以凭仗于VLAN管理策略服务器(VMPS)和VLAN trunking协议(VTP)自动化地配置access端口和trunk端口,但是网络管理员很少采用VTP,因为正正在这种情况下,管理员必须将交换机分红没有同VTP域,域中的每一个交换机必须加入域中所有的VLAN,构成无需要的负担。再加上VLAN头只要要12位的VLAN ID,网络中至少有4096个VLAN。考虑到VLAN广泛的用途,这个数目为难重任。数据中心虚拟化后进一步增大关于VLAN的需求。虚拟可扩展VLAN(VXLAN)是IETF推出的标准,试图通过引入24位的VLAN网络标识符(VNI)来消除VLAN的,也就是说VXLAN可正正在网络中缔造16M个VLAN。VXLAN主要使用hypervisor中软交换(或者许许硬件接入交换机)的虚拟隧道端点(VTEP)并将与VM相关的VNI和报文中止封装。VTEP基于IGMP协议加入多播组,这有助于消除未知的单播flood。
: VXLAN中16M个VLAN将逾越多播组的最大数目,由于属于没有同VNI的多个VLAN可以共享同一多播组。这可以导致安全和性能的成就。
四、总结
基于 OpenFlow交换机调度OpenStack可紧缺体现SDN的优势。内项目实现了可扩展的Quantum/Neutron网络Plugin,同时为后续进一步基于VXLAN等新封装协议优化恶化Plugin需求了设计地位。
内项目院子为美国伊利诺伊大学的 OCEAN,由176台服务器+16台Pica8公司OpenFlow交换机组成,需求从底层道理网络到运用的完整,支撑的项目包括获得HotSDN 2012最佳言论的VeriFlow,Jellyfish数据中心架构以及LIME虚拟网络迁移系统。项目2011年启动时OpenStack的网络仍为Quantum,方案设计可运用于后续版本Neutron。摘要: SDN(软件定义网络)通过逻辑上解散的主主宰器实现关于底层交换机报文处理的管理,正正在建造界也因此出现了多种SDN/OpenFlow的主宰器譬如RYU,OpenDaylight、Floodlight等;随着云计划技艺的发展正正在IaaS领域涌现很多开源的云院子管理工具,但是这两个领域长远还没有很好的融会。内项目通过为OpenStack的网络实现一个可扩展的OpenFlow主宰器Plugin,试举证决早期OpenFlow主宰器正正在扩展性范畴的缺欠。一、简介云计划越来越进步,云需求的弹性和服务的动态需求日益受人瞩目。随着 OpenStack项手腕出现,云院子的创新也越来越容易。最初OpenStack项目由instance管理项目(Nova),object存储项目(Swift)和image repository项目(Glance)组成,网整体由Nova需求flat network配置和VLAN隔离,并没有受到太多关切。这种简单的网络能力使得租户很难构建多级网络(flat networking方式),同时没有扩展性可言。从 Quantum项目末尾,OpenStack正正在接口设备(譬如vNIC)间需求“网络连接即服务”。Quantum使得租户可以轻松建立虚拟网络,模块化的架构和标准的API可方便实现防火墙和ACL的Plugin。正正在大批涌现的Plugin中,和网络最相关的就是OpenFlow主宰器RYU的plugin,但是RYU开源的Plugin短少云计划最基本的特性:扩展性。内项目将为Quantum设计一个更具扩展性的openflow plugin,同时使用SDN的解散主宰,我们还会演示基于主宰器的虚机迁移运用。二、实现方法Floodlight 是基于Java的OpenFlow主宰器,来源于Stanford大学最早开辟的Beacon主宰器(另一个最早的主宰器是NOX),内项目选择Floodlight是因为它是一款相对于于简单又存正正在较高性能的主宰器,没有过内项目采用的方法可异常适用于其它主宰器。OpenFlow 开源主宰器RYU需求和内项目类似的Plugin,实现了逻辑上的解散主宰和API,便于缔造新的网络管理和主宰运用。RYU中止租户的2层网络隔离没有是通过VLAN,而是为VM内部通信建立单独的流,有实验表明这种方法正正在数据中心网络没有存正正在扩展性,因为它会很快耗尽交换机的内存资源。我们基于 Floodlight为Quantum开辟一款扩展性更好的OpenFlow Plugin。最初选择Floodlight是因为它是一款高性能的企业级主宰器(译注:非常遗憾Floodlight已经停止复古)。没有过本项手腕方法可以很容易运用于其他标准的OpenFlow主宰器。我们的 Plugin将来自Quantum API的建立/复古/锄草网络资源的请求传递给底层网络。除了Plugin,每一个Nova VM会加载一个Agent用来处理该VM的虚拟接口的缔造,并将它们与Quantum网络关于接。我们的方案使用支持OpenFlow的OpenvSwitch(OVS)来需求Quantum所需的底层网络,并通过Floodlight主宰器关于OVS中止配置。1 挑战为 Quantum需求OpenFlow主宰器Plugin的最大挑战就是扩展性。RYU开源的Plugin为所有的VM间流量缔造流,当流的数目逾越OpenFlow交换机TCAM支持的最大条目后扩展性就会变迁成就。甲方法采用更存正正在扩展性的 VLAN方案关于租户网络中止隔离。我们知晓VLAN异常有扩展性的,因此,后续方案开辟可以考虑新的封装协议譬如VXLAN。2 架构Quantum 的Plugin用来处理网络建立请求,它将来自Quantum的网络ID转换为VLAN并将这个转换联络正正在数据库中。Plugin负责OVS Bridge的缔造,记录逻辑网模型。Agent和Plugin同时纪录进入网络的端口,通知Floodlight有新的流量进入网络。基于网络端口的分配情况和端口的源MAC地方,流量被主宰器加上VLAN ID标签。一旦加上标签后,网络流量就基于传统的learning switch中止转发。因此,通过VLAN标签和OpenFlow的主宰我们就可以基于租户中止VM流量的隔离。上图所示为 Plugin的架构。租户通过nova-client将指令传递给Quantum管理单元,管理单元再将这些Call传递给真正执行缔造/读取/复古/锄草(CRUD)功能的主宰器Plugin。Plugin通过正正在每个租户的网络ID和VLAN ID间建立照射联络实现上述功能。每当有新的端口加载于Quantum网络,Plugin就会照应地平添端口到OVS-bridge,保存端口和VLAN ID间的照射联络。最后,以Daemon形式运行于每个Hypervisor之上的Quantum agent没有断轮询数据库和OVS Bridge,当有变化发生时就通知Floodlight Client,Client采用RESTful API告知Floodlight主宰器模块。这样主宰器就获取了端口、网络ID和VLAN ID的照射联络。当到达OVS的新报文没有任何entry时,报文会送到主宰器做决策。然后主宰器会推送一条规则到OVS告知其采用哪个VLAN ID来标记报文以及封装报文所用的道理主机地方。于是,主宰器还会为道理交换机增加一条规则,举动为按照正常报文处理清流线处理报文,由于报文的转发将会按照基本的Leaning Switch方式。通过这个方法每个道理交换机所需的TCAM条目数与通过交换机的VLAN数目成正比。3 分析对于照本节分析对于照上述方法与 RYU方法正正在流表数目上关于交换机的需求。假定每个服务器有20个VM,每个VM有10条并发流(收支各5条)。正正在这样的设定下,如果采用RYU的方法VM-VM间的流没有存正正在扩展性。上图所示为两种方法的对于照图。假定RYU的匹配规则基于VM的源和手腕地方,因此ToR交换机需要正正在TCAM中存储20 servers/rack x 20 VMs/server x 10并发流/VM = 4000条流表。然而正正在我们的方案中基于每个报文的VLAN标签可关于流表中止解散,即使正正在道理交换机上每个VM都有一条匹配规则(这里假定最坏情况即服务器上的每个VM都属于没有同的租户),需要存储正正在交换机TCAM中的流表条目数也只需400条,可以下降十倍以上。4 管理运用示例:VM迁移OpenFlow 和我们的OpenStack Plugin实现网络的全局视角以及关于转发行踪的直接主宰,因而可以简化操作管理。接下去我们需求一个运用案例:VM迁移。高速无缝的 VM迁移是数据中心实现负载失调、配置管理、能耗糜费等提升资源使用率的次要伎俩。但是VM迁移需要复古网络状态,可以导致冲突、业务中断、环以及SLA没有达标等一系列成就,因此VM迁移关于服务需求商来讲没有断是一个挑战。SDN为解决这些棘手成就需求一个强有力的伎俩:正正在逻辑上解散的主宰器运行算法和可精确主宰交换机转发层面的能力有助于正正在两个状态间切换网络。甲方法特别解决以下成就:对于于区分由带有定然转发规则的交换机组成的起始网络和目标网络,我们是否可以设计出一套 OpenFlow指令将起始网络状态转换到目标网络,同时保持某些状态譬如径无环以及带宽。这个成就可以分解为两个小成就:确定VM迁移的顺序或者许许方案排序;对于于每一个要迁移的VM,确定要执行或者许许遗弃的OpenFlow指令的顺序。为了正正在有精确性的情况下中止迁移,我们测试了最佳算法(用来从所有可以的迁移顺序联合中肯定导致最少冲突的排序)的性能。算法可以计划出 VM迁移的排序以及一系列的转发状态改变。 算法运行正正在SDN主宰器之上由于可以编排整个网络的改变。为了评估设计的性能,我们正正在实正正在的数据中心用虚拟的网络拓扑仿能。对于于各种负载情况,算法可以大幅退步迁移的随机排序性能(80%以上)。正正在共享的道理数据中心分配虚拟网络已经有很多研究,内项目借用这些使命中道理底层网络和 VN的拓扑和装置。于是,对于于底层拓扑,我们测试了用于随机图、树、胖树、D-Cell和B-Cube的算法。对于于VN,我们采用Web服密运用稀有的星形、树和3-tier图。正正在迁移前最初分配VN时,我们使用了SecondNet的算法。我们随机选择虚拟节点来中止迁移,从有空余资源的底层节点任意选择手腕网络。正正在其他场景下当需要没有同的节点或者许目标选取策略时或者许会反响算法的性能,基于本算法可以继续中止研究。迁移院子基于 Intel的Core i7-2600K,16GB内存。图3实验为200个节点的树,链接带宽为500MB,VN为9节点树,链带宽为10MB。如图所示,采用最佳算法后冲突比照保持正正在30%以下,而某些随机排序下则接近100%。三、扩展使命: VXLAN随着 VXLAN等新的协议出现,扩展多租户云网络的其他方法也可以被运用于Plugin的通信底层机制。VLAN (IEEE802.1q)传统上常被用于为云中的没有同租户和组织需求隔离机制。虽然VLAN通过将网络连绵为的域解决了2层网络的成就,但是它无法需求敏捷的服务,可支持的host数目有限。因此,服务需要扩展时没有得没有适配没有同的VLAN,导致服务的连绵。于是,正正在手工配置的情况下,VLAN配置很容易出错,难于管理。虽然可以凭仗于VLAN管理策略服务器(VMPS)和VLAN trunking协议(VTP)自动化地配置access端口和trunk端口,但是网络管理员很少采用VTP,因为正正在这种情况下,管理员必须将交换机分红没有同VTP域,域中的每一个交换机必须加入域中所有的VLAN,构成无需要的负担。再加上VLAN头只要要12位的VLAN ID,网络中至少有4096个VLAN。考虑到VLAN广泛的用途,这个数目为难重任。数据中心虚拟化后进一步增大关于VLAN的需求。虚拟可扩展VLAN(VXLAN)是IETF推出的标准,试图通过引入24位的VLAN网络标识符(VNI)来消除VLAN的,也就是说VXLAN可正正在网络中缔造16M个VLAN。VXLAN主要使用hypervisor中软交换(或者许许硬件接入交换机)的虚拟隧道端点(VTEP)并将与VM相关的VNI和报文中止封装。VTEP基于IGMP协议加入多播组,这有助于消除未知的单播flood。: VXLAN中16M个VLAN将逾越多播组的最大数目,由于属于没有同VNI的多个VLAN可以共享同一多播组。这可以导致安全和性能的成就。四、总结基于 OpenFlow交换机调度OpenStack可紧缺体现SDN的优势。内项目实现了可扩展的Quantum/Neutron网络Plugin,同时为后续进一步基于VXLAN等新封装协议优化恶化Plugin需求了设计地位。