網路虛擬化技術與應用場景

紫翼龍王夜發表於2015-09-24
在kvm中,預設情況下網路裝置是由QEMU在Linux的使用者空間模擬出來並提供給虛擬機器的。這樣做的好處是透過模擬可以提供給虛擬機器多種型別的網路卡。在實際應用中全虛擬化效率低下;半虛擬化透過對客戶機作業系統的修改,使其意識到自己允許在虛擬機器中。半虛擬化透過驅動對作業系統做了改造。在實際應用中,使用較多的是半虛擬化網路卡技術,即Virtio技術。大概流程如下圖:


如果要使用半虛擬化,需要修改配置檔案。加入virt-io的說明。

macvtap技術與應用:傳統的linux網路虛擬化技術採用的是tap-Linux方式,將虛擬機器連線到虛擬的tap網路卡,然後將tap網路卡加入到bridge。bridge相當於用軟體實現的交換機。這種解決方案實際上就是使用cpu透過軟體模擬網路。

傳統的tap+bridge虛擬好網路技術,有3個缺點:
1.每臺宿主機內都存在bridge,會使網路拓撲變複雜,相當於增加了交換機的級聯層數;
2. 同一宿主機上的虛擬機器之間的流量直接在bridge間完成交換,使流量監控/監管困難;
3.bridge是軟體實現的二層交換技術,會加大伺服器的負擔。

macvtap 方案:
802.1Qbg的一個核心概念是vepa,簡單來說它透過匯聚和資料分類轉發,把宿主機上原來由cpu和軟體來做的網路處理工作轉移到接入層交換機上,減少宿主級cpu負載,同時使得在一級的交換機上做虛擬機器網路流量監控成為可能,從而更清晰地切割伺服器與網路裝置的工作範圍,方便系統的管理。為支援新的虛擬化網路技術,Linux引入了新的網路裝置模型:macvtap;macvtap的實現基於傳統的mac vlan; 和tap裝置一樣,每一臺macvtap裝置擁有一臺對應的linux字元裝置,並且擁有和tap裝置一樣的ioctl介面,因此能直接被kvm/qemu 使用,方便地完成網路資料交換工作。引入macvtap.

macvtap裝置有三種不同的工作模式:vepa(virtual Ethernet Port Aggregator),Bridge,Private.

1. vepa:在這種模式下,同一物理網路卡下的MacVtap裝置之間的流量也要傳送到外部交換機,再有外部交換機轉發回伺服器;前提是交換機必須支援hairpin;
2.bridge:這種模式類似於傳統的Linux bridge,同一物理網路卡下的macvtap裝置可以直接進行乙太網幀的交換,不需要外部交換機的介入;
3.private:在private模式下,同一物理網路卡下的macvtap裝置互聯無法連通,無論外部交換機支不支援hairpin模式。

以下是建立一個macvtap埠的過程。
#ip  link  add link eth1 name MacVTap0 type MacvTap
#ip link  set  MacVTap0  address 1a:46:0b:ca:bc:7b
#ip  link  show MacVTap0

vhost_net技術:
1.什麼是vhost_net:
執行一臺虛擬機器是由使用者空間的qemu和核心的kvm共同完成的,qemu負責模擬各種裝置提供給虛擬機器,kvm負責完成cpu和記憶體的虛擬化。virtio的後端處理程式一般是由使用者空間的qemu提供的。為了進一步減少延遲/提高效能,比較新的核心中增加了一個vhost_net的驅動模組,在核心中實現了virtio的後端處理程式。






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30129545/viewspace-1808235/,如需轉載,請註明出處,否則將追究法律責任。

相關文章