內項目院子為美國伊利諾伊大學的 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有新的流量進入網絡;诰W絡端口的分配情況和端口的源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有新的流量進入網絡;诰W絡端口的分配情況和端口的源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需求了設計地位。 |