RDMA(remote direct memory access)是一種遠(yuǎn)程內(nèi)存直接訪問技術(shù)。RDMA可以在不需要操作系統(tǒng)干預(yù)下,完成兩個(gè)主機(jī)之間內(nèi)存數(shù)據(jù)傳輸。RDMA技術(shù)具有IO延遲低,帶寬性能高,主機(jī)CPU負(fù)載低的特點(diǎn)。vSphere是VMware虛擬化核心產(chǎn)品,RDMA技術(shù)特點(diǎn)能夠有效滿足虛擬機(jī)遷移和分布式存儲(chǔ)的要求。本文主要為大家介紹RDMA在vSphere中的五種應(yīng)用模型。
Full-function VM DirectPath
Full-function VM DirectPath由虛擬機(jī)VMM/Hypervisor將整個(gè)PCI設(shè)備直接透?jìng)鹘o一個(gè)虛擬機(jī)。PCI設(shè)備這里指HCA適配器,可以是基于IB或者RoCe或者iWRAP。物理設(shè)備為一個(gè)虛擬機(jī)單獨(dú)使用,設(shè)備無法在虛擬機(jī)之間,虛擬機(jī)與VMM/Hypervisor之間共享。
由于直接由VMM/Hypervisor透?jìng)鳎摂M機(jī)RDMA性能很好,非常接近于物理機(jī)RDMA性能。該方案缺點(diǎn)就是很多vSphere軟件功能無法使用,比如:FT、Snapshot、Suspend和vMotion。
SR-IOV VF VM DirectPath
SR-IOV VF解決Full-function下單一PCI設(shè)備無法被多個(gè)虛擬機(jī)共享的問題。SR-IOV需要適配器和/VMM/Hypervisor協(xié)作支持。一個(gè)適配器可以在芯片組上面注冊(cè)多個(gè)獨(dú)立中斷(PF和VF),每個(gè)中斷在VMM/Hypervisor對(duì)應(yīng)一個(gè)獨(dú)立的PCI設(shè)備。VMM/Hypervisor將每個(gè)PCI設(shè)備(VF)透?jìng)鹘o一個(gè)或者多個(gè)虛擬機(jī),PF分配給VMM/Hypervisor,負(fù)責(zé)管理VF。
同樣是VMM/Hypervisor透?jìng)鳎摂M機(jī)RDMA性能很好,非常接近于物理機(jī)RDMA性能。另外由于適配器硬件支持,VMM/Hypervisor還可以靈活進(jìn)行QOS管理。該方案缺點(diǎn)跟Full-function一樣,基于vSpher的很多軟件功能不兼容。
基于10GbE VM DirectPath的RoCE仿真:
VMM/Hypervisor將10GbE適配器通過PCI設(shè)備透?jìng)鞣绞椒峙浣o虛擬機(jī)。虛擬機(jī)運(yùn)行RXE驅(qū)動(dòng)實(shí)現(xiàn)RoCE功能,該功能可以跟運(yùn)行RXE驅(qū)動(dòng)的虛擬機(jī)或者RoCE硬件適配器通信。這是一種在虛擬機(jī)通過仿真方式實(shí)現(xiàn)RDMA方式,性能不佳。同樣由于是VM DirectPath,很多vSphere性能無法使用。
模型圖如下:
基于半虛擬化的RoCE仿真
虛擬機(jī)也通過安裝RXE驅(qū)動(dòng)實(shí)現(xiàn)軟件仿真RoCE功能,與基于VM DirectPath的RoCE仿真不同的是虛擬機(jī)網(wǎng)卡使用半虛擬化方案(vmxnet3)。該方案可以與不需要依賴物理硬件,及時(shí)服務(wù)器沒有支持RDMA功能的適配器,兩臺(tái)虛擬機(jī)之間也可以進(jìn)行RDMA通行。
半虛擬化網(wǎng)絡(luò)性能較好,介于VMDirectPath和全仿真之間;基于半虛擬化的RDMA全仿真性能較差,優(yōu)點(diǎn)是vSphere功能都可用。
模型圖如下:
基于Infiniband的半RDMA虛擬化(vRDMA)
服務(wù)器使用Infiniband物理適配器,VMM/Hypervisor為虛擬機(jī)提供版虛擬化RDMA方案。虛擬機(jī)RDMA驅(qū)動(dòng)基于Infiniband Verbs實(shí)現(xiàn),VMM/Hypervisor將虛擬機(jī)內(nèi)存和RDMA物理適配器內(nèi)存直接映射,虛擬機(jī)內(nèi)存訪問可以通過DMA實(shí)現(xiàn)0-拷貝。
模型圖如下:
小結(jié)
虛擬化應(yīng)用RDMA主要3種方式:仿真、半虛擬化、透?jìng)鳌M競(jìng)髂J叫阅茏詈茫胩摂M化性能較好,仿真模式性能一般。基于PCI-E SR-IOV的透?jìng)髂J娇梢詫?shí)現(xiàn)多臺(tái)虛擬機(jī)共享一個(gè)物理設(shè)備,虛擬機(jī)RDMA的性能非常接近物理性能,并且可以在VMM/Hypervisor實(shí)施QOS管理。半虛擬化方案既能獲得可觀的性能,又不影響vSphere大量軟件功能(比如:FT,vMotion等)。透?jìng)髂J胶桶胩摂M化都需要配合RDMA物理適配器。