網(wǎng)絡(luò)虛擬化解決了什么問題?
發(fā)布時間:2022-01-28作者:小編閱讀:0
網(wǎng)絡(luò)虛擬化技術(shù)是伴隨著服務(wù)器虛擬化技術(shù)不斷發(fā)展的,網(wǎng)絡(luò)虛擬化重點解決了以下問題:
虛擬機(jī)虛擬網(wǎng)卡如何實現(xiàn),以及它如何與外界物理網(wǎng)絡(luò)設(shè)備進(jìn)行交互。畢竟ECS實際上是一臺虛擬機(jī),不可能每臺虛擬機(jī)都對應(yīng)一塊真正的物理網(wǎng)卡。
隨著數(shù)據(jù)中心規(guī)模的不斷擴(kuò)大,傳統(tǒng)二層組網(wǎng)方式逐漸暴露出一些技術(shù)短板,諸如VLAN標(biāo)簽域存在數(shù)量上限4096、核心交換機(jī)MAC/ARP表項過大引發(fā)性能損耗、虛擬機(jī)跨三層網(wǎng)絡(luò)無法熱遷移等問題,嚴(yán)重阻礙了云數(shù)據(jù)中心規(guī)模發(fā)展。引入網(wǎng)絡(luò)虛擬化技術(shù),在基礎(chǔ)網(wǎng)絡(luò)上構(gòu)建租戶專有網(wǎng)絡(luò)并構(gòu)建大二層網(wǎng)絡(luò),是解決上述問題的一個有效方法。
我們可以參考計算虛擬化、Overlay的一些技術(shù)演進(jìn)來了解網(wǎng)絡(luò)虛擬化。網(wǎng)絡(luò)虛擬化本質(zhì)上是一個對虛擬機(jī)原始指令和報文進(jìn)行封裝/解封裝的過程,讓物理機(jī)系統(tǒng)能承載虛擬機(jī)系統(tǒng),基礎(chǔ)網(wǎng)絡(luò)能承載虛擬網(wǎng)絡(luò)。那么,虛擬機(jī)管理器(VMM)如何截獲虛擬機(jī)網(wǎng)絡(luò)I/O指令,翻譯成物理機(jī)內(nèi)核協(xié)議棧的I/O指令下發(fā)至網(wǎng)卡驅(qū)動?Overlay技術(shù)如何基于傳統(tǒng)IP協(xié)議完成封裝、交互和解封裝,從而使得虛擬機(jī)能跨局域網(wǎng)甚至數(shù)據(jù)中心進(jìn)行互訪和遷移?這些問題通過網(wǎng)絡(luò)虛擬化技術(shù)均可以得到完美解決。
下面將介紹三種網(wǎng)絡(luò)虛擬化技術(shù):網(wǎng)卡虛擬化、虛擬交換技術(shù)和最常見的Overlay技術(shù)——VXLAN。
1.網(wǎng)卡虛擬化SR-IOV(Single Root I/O Virtualization)是基于網(wǎng)卡的虛擬化解決方案,可提升性能和可伸縮性。SR-IOV標(biāo)準(zhǔn)允許在虛擬機(jī)之間高效共享PCIe設(shè)備,并且在硬件中實現(xiàn)以獲得與服務(wù)器幾乎一樣的性能。一個SR-IOV設(shè)備具有一個或多個PF(物理功能),PF是標(biāo)準(zhǔn)的PCIe設(shè)備(比如網(wǎng)卡)。每個PF都可以創(chuàng)建多個VF(虛擬功能),VF是“輕量級”的PCIe設(shè)備,每個VF都擁有獨立的收發(fā)數(shù)據(jù)包的關(guān)鍵資源,如收發(fā)隊列、DMA通道等,并且與其他VF共享其他非關(guān)鍵的設(shè)備資源。把一個VF分配給一臺虛擬機(jī),該虛擬設(shè)備就具備了直接使用該VF進(jìn)行數(shù)據(jù)發(fā)送和接收的能力,并且可以直接進(jìn)行I/O操作。
2.虛擬交換技術(shù)虛擬機(jī)虛擬網(wǎng)卡是網(wǎng)絡(luò)虛擬化的前端,其如何與物理網(wǎng)絡(luò)設(shè)備進(jìn)行交互,以及如何與其他虛擬機(jī)進(jìn)行交互是實現(xiàn)虛擬化網(wǎng)絡(luò)的關(guān)鍵。業(yè)界通用的實現(xiàn)方案是在物理服務(wù)器上部署一套虛擬交換機(jī)(vSwitch)作為虛擬機(jī)和物理網(wǎng)絡(luò)的中繼設(shè)備,提供基礎(chǔ)二層轉(zhuǎn)發(fā)能力和部分高級特性。
虛擬交換機(jī)有大家熟知的VMware ESXi vSwitch、開源的OpenvSwitch和LinuxBridge,以及阿里云自研的第一代和第二代虛擬交換機(jī)AVS。下面重點介紹業(yè)界比較流行的開源虛擬交換機(jī):OpenvSwitch(OVS)。
(1)OpenvSwitch
OpenvSwitch是一個虛擬交換機(jī)軟件,支持Xen/XenServer、KVM以及VirtualBox多種虛擬化技術(shù),也支持802.1Q、網(wǎng)卡綁定、NetFlow/sFlow、GRE和VXLAN隧道等功能。
OpenvSwitch主要組件有datapath、vswitchd和ovsdb,其中datapath是負(fù)責(zé)數(shù)據(jù)交換的內(nèi)核模塊,它負(fù)責(zé)從網(wǎng)口讀取數(shù)據(jù),并快速匹配FlowTable中的流表項,如果匹配成功,則直接轉(zhuǎn)發(fā),否則上交vswitchd處理,它在初始化和端口綁定時注冊鉤子函數(shù),把端口的報文處理接管到內(nèi)核模塊中;vswitchd是一個守護(hù)進(jìn)程,它是OVS的管理和控制服務(wù),通過UNIX Socket將配置信息保存到ovsdb中,并通過NetLink和內(nèi)核模塊交互;ovsdb則是OVS的數(shù)據(jù)庫,其中保存了OVS配置信息。
OpenvSwitch數(shù)據(jù)包轉(zhuǎn)發(fā)流程如下:
①設(shè)置標(biāo)準(zhǔn)以太網(wǎng)接口模式為混雜模式,從以太網(wǎng)接口中截獲數(shù)據(jù)包,提取出關(guān)鍵字段。如果能夠匹配流表,則轉(zhuǎn)入⑦,否則轉(zhuǎn)入②。
②通過調(diào)用upcall函數(shù),使用NetLink協(xié)議封裝數(shù)據(jù)包并上傳到用戶空間。在vswitchd模塊中對NetLink消息解封裝后,在ovsdb中進(jìn)行查表匹配,如果能夠匹配流表,則轉(zhuǎn)入④,否則轉(zhuǎn)入③。
③通過OpenFlow協(xié)議與控制器通信,控制器下發(fā)流表項,vswitchd模塊通過解析流表項得到相應(yīng)的動作,同時將流表項存儲到ovsdb中。
④將匹配的流表項組織成內(nèi)核FlowTable中的表項結(jié)構(gòu),并通過NetLink協(xié)議將流表項下發(fā)至內(nèi)核的FlowTable中。
⑤通過調(diào)用reinject函數(shù),使用NetLink協(xié)議封裝數(shù)據(jù)包,重新發(fā)回至內(nèi)核中。
⑥重新通過datapath模塊進(jìn)行流表項查找匹配。
⑦根據(jù)查找結(jié)果,指導(dǎo)數(shù)據(jù)包的轉(zhuǎn)發(fā)。
OpenvSwitch可以建立網(wǎng)橋,將物理網(wǎng)卡和虛擬機(jī)TAP設(shè)備進(jìn)行橋接,像交換機(jī)一樣進(jìn)行二層轉(zhuǎn)發(fā),為虛擬機(jī)和網(wǎng)絡(luò)設(shè)備建立橋梁。虛擬機(jī)之間在學(xué)習(xí)到對方的ARP信息后,可以正常通過OVS和物理交換機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。
億聯(lián)云作為國內(nèi)知名的云服務(wù)綜合解決方案提供商,擁有包括數(shù)據(jù)中心專線、互聯(lián)網(wǎng)專線、MPLS專線、云專線以及SD-WAN在內(nèi)的多種產(chǎn)品,可為您提供專業(yè)、靈活、多樣性的專線及SD-WAN組網(wǎng)解決方案,如有任何疑問,歡迎致電010-53390328!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,請聯(lián)系站長郵箱:shawn.lee@eliancloud.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。
標(biāo)題:網(wǎng)絡(luò)虛擬化解決了什么問題?
TAG標(biāo)簽:
地址:http://www.dangdangload.com/article/20220110174126.html