The Design and Implementation of Open vSwitch
- 文章名稱:The Design and Implementation of Open vSwitch
- 文章來源:Pfaff B , Pettit J , Koponen T , et al. The Design and Implementation of Open vSwitch[J]. ;login:: the magazine of USENIX & SAGE, 2015, 40:págs. 12-16.
Abstract:
我們描述了Open vSwitch的設計和實現,它是一個面向所有主要管理程序平臺的多層、開源虛擬交換機。Open vSwitch是為虛擬環境中的網絡而重新設計的,其主要設計與傳統的軟件交換體系結構不同。我們詳細介紹了Open vSwitch用來優化操作和節省管理程序資源的高級流分類和緩存技術,我們根據過去七年使用和改進開放式虛擬交換機的部署經驗,評估開放式虛擬交換機的性能。
1 Introduction:
在過去的15年里,虛擬化改變了我們計算的方式。例如,許多數據中心完全虛擬化,以便在災難恢復期間提供快速的資源調配、向云的溢出,改進可用性。盡管虛擬化仍將覆蓋所有類型的工作負載,但虛擬機的數量已經超過了服務器的數量,進一步的虛擬化沒有停止的跡象。
服務器虛擬化的興起帶來了數據中心網絡的根本性轉變,出現了一個新的網絡訪問層,其中大多數網絡端口是虛擬的,而不是物理的。因此,工作負載的第一跳交換機越來越多地駐留在Hypervisor中。在早期,這些Hypervisor“vswitch”主要關注提供基本的網絡連接。實際上,他們只是通過將物理L2網絡擴展到駐留的虛擬機來模仿他們的ToR同類。
隨著虛擬化工作負載的激增,這種方法的局限性變得顯而易見——為新的工作負載重新配置和準備物理網絡會減慢它們的供應,并且將工作負載與物理二級網段耦合會嚴重限制它們與底層網絡的移動性和可擴展性。這些壓力導致了網絡虛擬化的出現,在網絡虛擬化中,虛擬交換機成為虛擬機網絡服務的主要提供者,使得物理數據中心網絡在虛擬機管理程序之間傳輸IP隧道數據包。此方法允許虛擬網絡與其底層物理網絡分離,并且通過利用通用處理器的靈活性,虛擬交換機可以為VM、其租戶和管理員提供邏輯網絡抽象、服務和工具Identical專用物理網絡。
網絡虛擬化需要一個功能強大的虛擬交換機——轉發功能必須基于每個虛擬端口進行連接,以匹配管理員配置的邏輯網絡抽象,并且跨虛擬機監控程序實現這些抽象也從細粒度的集中協調中受益匪淺。這種方法與早期的虛擬交換機形成鮮明對比,對于早期的虛擬交換機而言,靜態的且主要是硬編碼的轉發管道已經完全足以為虛擬機提供到物理網絡的二級連接。
虛擬網絡的日益復雜、網絡虛擬化的出現以及現有虛擬交換機的局限性,使得開放式虛擬交換機得以迅速普及。
如今,在其原始平臺Linux上,Open vSwitch可以與大多數管理程序和容器系統一起工作,包括XEN、KVM和Docker。Open vSwitch還可以在FreeBSD和NetBSD操作系統上“開箱即用”地工作,并且到VMware ESXi和Microsoft Hyper-v虛擬機監控程序的端口正在進行中。
本文介紹了Open vSwitch的設計與實現。其設計的關鍵是圍繞開放式虛擬交換機普遍部署的生產環境所要求的性能,以及網絡虛擬化所要求的可編程性。與傳統的網絡設備不同,無論是軟件還是硬件,都是通過專業化來實現高性能的。相比之下,Open vSwitch是為靈活性和通用性而設計的,它必須在不需要專門化的情況下實現高性能,適應所支持平臺的差異,同時與Hypervisor及其工作負載共享資源。
因此,本文首先關注這種張力——開放式虛擬交換機如何在不犧牲通用性的前提下獲得高性能。論文的其余部分安排如下,第2節提供了有關虛擬化環境的進一步背景,而第3節描述了Open vSwitch的基本設計。隨后,第4、5和6節描述了Open vSwitch設計如何通過流緩存優化虛擬化環境的需求,緩存如何對整個設計(包括其數據包分類器)產生廣泛影響,以及Open vSwitch如何管理其流緩存。然后,第7節通過分類和緩存微基準來評估Open vSwitch的性能,同時還提供了多租戶數據中心中Open vSwitch性能的視圖。在結束之前,我們將在第8節討論正在進行的、未來的和相關的工作。
2 Design Constraints and Rationale:
虛擬交換機的操作環境與傳統網絡設備的環境截然不同。下面我們簡要討論這些差異所帶來的限制和挑戰,既揭示了Open? vSwitch設計選擇背后的基本原理,又強調了它的獨特之處。
Resource sharing:
傳統網絡設備的性能目標傾向于使用專用硬件資源在最壞情況下實現線速性能的設計,而使用虛擬交換機的資源節約至關重要,交換機是否能夠跟上最壞情況下的線速,對于最大化Hypervisor的主要功能(運行用戶工作負載)的可用資源來說是次要的。也就是說,與物理環境相比,虛擬化環境中的網絡在最壞的情況下為常見情況進行優化,這并不是說最壞的情況并不重要,因為它們確實是會在實踐中出現的。端口掃描、點對點會合服務器和網絡監控都會產生異常的流量模式,但必須得到適當的支持,這一原則告訴我們:例如,大量使用流緩存和其他形式的緩存(在常見情況下具有高命中率),會降低CPU使用率并提高轉發率。
Placement:
在網絡邊緣放置虛擬交換機是一個既簡單又復雜的問題,可以說,拓撲位置作為葉子與Hypervisor和VM共享命運,這消除了許多標準的網絡問題。然而,這種布局使縮放變得復雜,在虛擬機監控程序之間的點對點IP隧道網格中,單個虛擬交換機擁有數千個虛擬交換機作為對等點并不少見。虛擬交換機在虛擬機引導、遷移和關閉時接收轉發狀態更新,雖然虛擬交換機直接連接的物理網絡端口相對較少(按照網絡標準),但遠程虛擬機監控程序中的更改可能會影響本地狀態,尤其是在數千(或更多)個管理程序的大型部署中,轉發狀態可能處于不斷變化的狀態。
本文討論的一個受此原理影響的設計的主要例子是針對O(1)更新而設計的Open-vSwitch分類算法.
SDN, use cases, and ecosystem:
Open-vSwitch有三個額外的獨特要求,最終導致其設計不同于其他虛擬交換機:
首先,Open-vSwitch自誕生以來一直是OpenFlow交換機。它故意不與單一用途、緊密垂直集成的網絡控制堆棧綁定,而是通過openflow[27]重新編程。這與其他虛擬交換機的特征數據路徑模型進行了對比[24,39]:與轉發asic類似,它們的分組處理管道是固定的。只能配置預先安排的功能。(hyper-v虛擬交換機[24]可以通過添加二進制模塊來擴展,但通常每個模塊只向數據路徑添加另一個單一用途的功能。)openflow的靈活性在sdn的早期是必不可少的,但很快就明顯,高級用例,如ne網絡虛擬化,導致長的數據包處理管道,從而比傳統的虛擬交換機更高的分類負載。為了防止open vswitch比競爭對手的虛擬交換機消耗更多的hypervisor資源,它被迫實現流緩存。第三,與其他主要的虛擬交換機不同,open-vswitch是開源的多平臺虛擬交換機。與所有在單一環境中操作的閉源虛擬交換機不同,開放虛擬交換機的環境通常由選擇操作系統分發和管理程序的用戶選擇。這迫使開放式vSwitch設計變得相當模塊化和便攜。
轉載于:https://www.cnblogs.com/chelinger/p/11543129.html
總結
以上是生活随笔為你收集整理的The Design and Implementation of Open vSwitch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A Network in a Lapto
- 下一篇: The Road to SDN: An