SR-IOV技術(shù)允許多臺虛擬機同時高效共享單個I/O資源。
SR-IOV是什么?如何在虛擬服務(wù)器環(huán)境當(dāng)中進行部署?
SR-IOV(Single-root I/O virtualization,單根I/O虛擬化)實際上是一種實現(xiàn)I/O和連接虛擬化的核心技術(shù),其允許多臺虛擬機同時高效共享單個I/O資源。事實上,SR-IOV能夠?qū)蝹€“根設(shè)備”(比如以太網(wǎng)控制器)模擬為多個相同“副本”,以滿足不同虛擬負(fù)載的并發(fā)需求。SR-IOV對于虛擬化技術(shù)來說十分重要,其已經(jīng)被作為PCI Express(PCIe)協(xié)議的一種擴展機制。
SR-IOV需要首先在網(wǎng)卡上定義一系列物理功能和虛擬功能。網(wǎng)卡的物理功能(PF)定義了設(shè)備自身以及SR-IOV能力,這些和所使用的 hypervisor類型相關(guān)。多個虛擬功能(VF)可以共享本地內(nèi)存或者網(wǎng)絡(luò)接口等設(shè)備資源。PF和每個VF都會被分配唯一的PCI Express請求者ID(PCIe RID),hypervisor可以使用這個ID來區(qū)分不同網(wǎng)絡(luò)流量并且處理中斷請求。采用這種方式,虛擬機流量就可以通過不同的VF來訪問底層的根PF 了,并且不會對其他VF產(chǎn)生任何影響。虛擬機流量實現(xiàn)了相互隔離,在共享網(wǎng)卡資源的同時不會對其他流量造成影響。網(wǎng)絡(luò)流量不再需要穿越 hypervisor的軟件交換機層,能夠大大降低I/O系統(tǒng)開銷、提升總體性能表現(xiàn)。
部署SR-IOV之前需要首先確保hypervisor支持該項特性(比如Hyper-V和ESXi),并且選擇合適的網(wǎng)卡和服務(wù)器硬件。服務(wù)器 BIOS需要支持SR-IOV,網(wǎng)卡需要安裝兼容SR-IOV的網(wǎng)絡(luò)芯片,比如英特爾82599EB dual 10 GigE controller。因此可能需要對老式服務(wù)器進行固件升級,以保證其能夠滿足SR-IOV的所有需求。此外,驅(qū)動程序是確保操作系統(tǒng)和網(wǎng)卡實現(xiàn)正常通訊的重要組成部分。Windows Server 2012默認(rèn)為部分網(wǎng)卡提供了SR-IOV驅(qū)動,包括Emulex 10 GigE OneConnect、Broadcom 10 GigE 57712以及 Intel 10 GigE X520 controller,而其他類型的網(wǎng)卡,就需要從廠商那里獲取驅(qū)動了。