虛擬化技術系列 openvswitch介紹

2021-06-20 12:44:51 字數 3046 閱讀 4660

【本想按部就班介紹虛擬化技術的,但最近的工作在分析open vswitch技術,想趁著記憶新鮮把對openvswitch的認知詳細總結下來】

本文根據openvswitch官網openvswitch.org提供的文件,以及其他相關資料進行彙總。

open vswitch整體概述:

> apache 2.0協議。

> 純軟體多層虛擬化交換機。

>支援openflow協議

>支援多種hypervisor(xen、kvm等主流hypervisor)

>支援以下特性

* standard 802.1q vlan model with trunk and access ports

* nic bonding with or without lacp on upstream switch

* netflow, sflow(r), and mirroring for increased visibility

* qos (quality of service) configuration, plus policing

* gre, gre over ipsec, vxlan, and lisp tunneling

* 802.1ag connectivity fault management

* openflow 1.0 plus numerous extensions

* transactional configuration database with c and python bindings

* high-performance forwarding using a linux kernel module

這麼介紹,可能看了沒什麼概念,接下來從虛擬計算環境下的網路結構從頭開始介紹。這樣對理解open vswitch比較有用一點。

在計算虛擬化技術推廣之前,網絡卡是host連線到交換機的出口,連線到物理交換機後,由物理交換機根據報文**規則進行相應的處理。在host主機部署虛擬化技術之後,允許多個虛擬機器同時執行,但網絡卡只有乙個(或數量少於虛擬機器),因此會引入網絡卡虛擬化。早在90年代末,linux已引入了bridge技術來實現虛擬網絡卡。

linux中,tap + bridge在網絡卡虛擬化中應用得比較普遍。結構如果所示:

該方案實現比較簡單,但問題也很明顯:bridge本身缺乏流控和網路管理的能力。乙個很明顯的問題是,同一host內虛擬機器間通訊,直接通過記憶體交換即可完成,可不經過網路。對網路管理者來說,這部分流量就變得不可見了。

隨著資料中心內單機部署虛擬機器數量的增加,這一問題變得更加明顯。

新型的虛擬交換機解決了內部流量的視覺化問題,同時強化了流控、網路功能、qos等方面的特性。比較有代表性的虛擬交換機技術有:vmware vswitch、cisco nexus 1000v和open vswtch。同時,這類交換機還支援中心化管理。中心化管理,使得在眾多host上部署的虛擬交換機可以分布式得進行管控。另外,一些得到強化的nic卡,還支援對open vswitch進行加速,如tcp分片處理加速、checksum,甚至一些網絡卡將l2交換機整合在網絡卡內,極大得加快open vswitch的報文**速率。

open vswitch的結構 如下圖所示:

上圖是open vswitch在xen上的部署結構,雖然跟kvm上略有差異,但基本是一致的。xen上最大的差別在於將ovs-mod模組部署於dom0,而kvm則不屬在host os的核心態而已。上圖中,hypervisor給每個虛擬機器分配乙個虛擬網絡卡vif,vif連線到dom0的快速**模組ovs-mod。此外在dom0的使用者態部署了一系列的管理程式,其中最核心的是ovs-vswitchd。ovs-vswitchd可接受遠端控制命令,如openflow控制器的命令等。

經過上述的介紹,詳細應該對open vswitch已經有基本的了解了,總結如下:

1. 針對虛擬網路,部署在hypervisor內的軟體虛擬機器

2. 解決了傳統虛擬網橋所缺失的流量可視性問題,增強了網路管理的能力以及流控能力。

3.支援分布式部署架構

4.支援遠端管理

5.支援多種hypervisor

6.可相容硬體網絡卡的加速

下面在詳細剖析下open vswitch的重要元件及軟體結構,整體結構如下圖所示:

【該如引用自網友部落格:

上圖是對ovs軟體結構介紹較好的一張圖,先來看看部署在使用者態的元件:

1)使用者態部署了一系列的守護程序,其中最重要的就是ovs-vswitchd和ovsdb-server。

2)ovs-vswitchd是open vswtich實現最複雜的一部分,也是核心元件,又被稱為慢速路徑。該元件負責同遠端管理器進行通訊,如通過openflow協議跟openflow控制器通訊,用sflow協議同sflowtrend通訊。遠端控制器下發流控制規則、流表項等。另外,該元件負責同部署在核心態的ovs快速路徑通訊,下發具體的規則和動作到ovs datapath,兩者之間通過netlink協議通訊。

3)ovsdb-server儲存配置資料,ovs-vswitchd通過socket同ovsdb-server通訊,讀取或寫入配置資料。

4)在上述核心模組之外,還有一系列的管理工具,都是圍繞上述核心功能提供一些增強服務的。不在贅述。

ovs的核心態相對比較簡單,只部署了具體的datapath,負責實際的報文**處理。

值得注意的是,為了提高虛擬網絡卡效能,業界出現了很多虛擬機器直通網絡卡,比較典型的就是sriov網絡卡。這類網絡卡由於虛擬機器可直接訪問硬體,因此在資料路徑中ovs是不會介入的,ovs在這類網絡卡上的作用,更接近於網路管理工具。

目前業界也出現了一些針對ovs加速的解決方案,如intel dpdk ovs等,netmap eval、6windgate等,下次打算就ovs加速技術進行展開。

今天就醬!

虛擬化技術

虛擬化技術可以提供硬體,軟體上的虛擬化,從而節省成本。特別是對於需要修改或者隱藏操作細節的場景,虛擬化技術更加重要。容器化技術是可以用於替代容器化技術的,但是兩者確實可以融合,取長補短的。這裡容器化技術一般使用docker。vps基本上都是基於虛擬化技術的,例如vultr就是基於kvm核心虛擬化技術...

虛擬化技術

伺服器虛擬化 虛擬機器遷移 隔離技術 儲存虛擬化 網路虛擬化 桌面虛擬化 如果你開始閱讀這篇文章,就預設你了解什麼是馮諾伊曼結構。下圖就是經典的馮諾伊曼結構,有輸入輸出,有儲存器,有 cpu,而其中又有控制單元也有運算單元 alu。這些就構成基本的計算機硬體系統了。而所謂虛擬化技術指的就是,希望能在...

虛擬化技術

intel tsx ni 最白話的解釋就是乙個 執行緒鎖定判定邏輯的硬體加速,以前是在軟體層執行的,現在是硬體層了,方便程式設計和提公升執行效率 官方資料指出作用是能夠提公升多執行緒運算效能 vpro應該是商用機器上才會有支援,主要是提供mis從遠端管理機器,例如修補程式等,即使機器在關機的狀能,也...