1. 背景、挑戰(zhàn)與業(yè)界進(jìn)展
1.1. 虛擬化技術(shù)背景
在云計(jì)算的浪潮中,虛擬化技術(shù)扮演著舉足輕重的角色。它通過(guò)將物理機(jī)集群的資源進(jìn)行抽象整合,構(gòu)建出一個(gè)統(tǒng)一的虛擬資源池。在這個(gè)資源池中,每一臺(tái)物理機(jī)上都會(huì)運(yùn)行宿主機(jī)以及虛擬化的系統(tǒng)軟件。這些系統(tǒng)軟件負(fù)責(zé)為用戶提供虛擬的計(jì)算環(huán)境,包括虛擬CPU、虛擬內(nèi)存、虛擬網(wǎng)絡(luò)等,都是由Hypervisor這一核心組件來(lái)實(shí)現(xiàn)的。Hypervisor不僅確保了虛擬機(jī)計(jì)算能力的平穩(wěn)性和彈性,還為用戶提供了靈活的資源調(diào)度和分配能力。
虛擬化技術(shù)在云數(shù)據(jù)中心、大數(shù)據(jù)處理、AI與機(jī)器學(xué)習(xí)等多個(gè)領(lǐng)域都得到了廣泛的應(yīng)用。通過(guò)虛擬化技術(shù),企業(yè)可以更加高效地利用物理資源,實(shí)現(xiàn)資源的按需分配和彈性擴(kuò)展,從而提高業(yè)務(wù)的靈活性和響應(yīng)速度。
1.2. 虛擬化技術(shù)面臨的問(wèn)題與挑戰(zhàn)
盡管虛擬化技術(shù)帶來(lái)了諸多優(yōu)勢(shì),但在實(shí)際應(yīng)用中也面臨著一些問(wèn)題和挑戰(zhàn)。
首先,虛擬化架構(gòu)中的管理面會(huì)占用部分CPU和內(nèi)存資源,從而降低了系統(tǒng)整體資源的利用率。系統(tǒng)服務(wù)systemd,或libvirtd等虛機(jī)管理程序的線程與vCPU線程之間存在資源爭(zhēng)搶的問(wèn)題,導(dǎo)致業(yè)務(wù)虛擬機(jī)的穩(wěn)定性難以保證,進(jìn)而影響客戶業(yè)務(wù)的質(zhì)量。
其次,虛擬機(jī)I/O處理線程會(huì)占用大量的CPU和內(nèi)存資源。虛擬化通常使用virtio-blk,virito-net為虛機(jī)提供磁盤和網(wǎng)卡設(shè)備,為了獲得更好的I/O性能,virtio-blk會(huì)采用iothread機(jī)制加速磁盤I/O的處理;而virtio-net則采用vhost-net的方案將網(wǎng)卡的I/O卸載到內(nèi)核,通過(guò)減少用戶態(tài)和內(nèi)核態(tài)的切換來(lái)減速網(wǎng)卡的I/O的處理;不論是iothread還是vhost-net,都需要在Host上創(chuàng)建對(duì)應(yīng)的線程來(lái)完成具體的I/O處理,當(dāng)I/O負(fù)載高的時(shí)候,iothread和vhost-net的處理線程會(huì)占用大量的CPU和內(nèi)存資源。
此外,虛擬化技術(shù)的安全性問(wèn)題也不容忽視。當(dāng)前主流虛擬化方案都是采用QEMU + KVM的形式,QEMU模擬了豐富的外設(shè),由于編寫模擬設(shè)備的人員眾多,加上設(shè)備的接口大多數(shù)比較復(fù)雜,因此QEMU經(jīng)常在處理這些讀寫請(qǐng)求的時(shí)候沒有完整的對(duì)請(qǐng)求數(shù)據(jù)進(jìn)行安全校驗(yàn),導(dǎo)致產(chǎn)生了很多安全性問(wèn)題。攻擊者可能會(huì)利用虛擬化和Hypervisor的安全漏洞展開攻擊,從而威脅到整個(gè)虛擬化環(huán)境的安全。
1.3. 頭部云服務(wù)提供商的方案
針對(duì)虛擬化技術(shù)面臨的問(wèn)題和挑戰(zhàn),業(yè)界頭部云服務(wù)提供商紛紛展開了探索和研發(fā),并不約而同的提出了基于DPU的輕量虛擬化方案。
AWS研發(fā)了Nitro系統(tǒng),通過(guò)Nitro卡將虛擬機(jī)的I/O卸載到硬件上,從而消除了I/O處理線程對(duì)VCPU的資源搶占。同時(shí),Nitro hypervisor內(nèi)置了虛擬機(jī)的管理能力,將管理組件卸載到Nitro SoC上。這種設(shè)計(jì)不僅提高了系統(tǒng)的資源利用率和穩(wěn)定性,還大大增強(qiáng)了虛擬化的安全性。Host側(cè)只運(yùn)行Nitro hypervisor,不提供通用OS能力,沒有用戶態(tài)和文件系統(tǒng),從而減少了潛在的攻擊面。
VMware也提出了基于DPU的ESXi卸載方案。在該方案中,Host ESXi hypervisor負(fù)責(zé)虛擬化的核心邏輯,而DPU上的ESXi hypervisor則負(fù)責(zé)主機(jī)管理、存儲(chǔ)和網(wǎng)絡(luò)等功能。這種設(shè)計(jì)同樣消除了管理和I/O處理的CPU占用,減少了vCPU的搶占,保證了vCPU的性能。同時(shí),它也減少了Host的攻擊面,增強(qiáng)了系統(tǒng)的安全性。
阿里云則推出了神龍系統(tǒng),其中的Dragonfly Hypervisor以其超輕薄、資源零損耗的特點(diǎn)著稱。根據(jù)公開資料,其內(nèi)存占用每個(gè)虛擬機(jī)不到1MB,CPU占用小于0.1%。這種超低的資源損耗使得神龍系統(tǒng)能夠提供更加平穩(wěn)、高效的虛擬化服務(wù)。同時(shí),Dragonfly Hypervisor還具備超平穩(wěn)、超平滑的特點(diǎn),能夠解決資源池之間互相熱遷移的難題,與KVM無(wú)縫兼容,從而為用戶提供了更加穩(wěn)定、可靠的云服務(wù)。
1.4. DPU輕量虛擬化方案的成效與市場(chǎng)應(yīng)用挑戰(zhàn)
基于DPU的輕量虛擬化Hypervisor解決方案在市場(chǎng)上取得了顯著的成效。它大幅提升了資源利用率,降低了運(yùn)營(yíng)成本,增強(qiáng)了系統(tǒng)的安全性,為用戶提供了更加穩(wěn)定、可靠的云服務(wù)。這些優(yōu)勢(shì)使得該方案在市場(chǎng)上得到了廣泛的認(rèn)可,其商業(yè)價(jià)值也得到了充分的體現(xiàn)。
然而,頭部云廠商自研的解決方案往往具有高度定制化和封閉性的特點(diǎn),大部分未面向公開商用市場(chǎng),這限制了其應(yīng)用范圍的擴(kuò)大。尤其是在國(guó)內(nèi)市場(chǎng),商業(yè)化、公開的DPU輕量虛擬化解決方案仍然是一片空白。這不僅限制了其他云廠商或行業(yè)客戶對(duì)這些方案的直接采用,也阻礙了基于DPU的虛擬化技術(shù)的進(jìn)一步發(fā)展和普及。
綜上所述,基于DPU的輕量虛擬化方案將為虛擬化技術(shù)帶來(lái)了新的發(fā)展機(jī)遇,各云服務(wù)提供商和企業(yè)對(duì)該類方案的需求日益增加,市場(chǎng)呼喚創(chuàng)新和開放的解決方案。
2. 方案介紹
為了應(yīng)對(duì)虛擬化技術(shù)面臨的問(wèn)題和挑戰(zhàn),中科馭數(shù)在多年的技術(shù)積累和豐富的行業(yè)經(jīng)驗(yàn)基礎(chǔ)上,面向公開市場(chǎng),推出了基于自研DPU的輕量虛擬化解決方案。
2.1. DPU輕量虛擬化整體方案架構(gòu)
基于中科馭數(shù)DPU的輕量虛擬化方案,在Host側(cè)只保留Hypervisor和部分Linux內(nèi)核功能,且不提供用戶態(tài)控制面組件。QEMU作為Device Emulation service組件運(yùn)行在SoC,提供虛機(jī)機(jī)型及設(shè)備的模擬,Host側(cè)只有VCPU內(nèi)核線程。馭數(shù)DPU卡支持nvme和virtio-net的硬件卸載,因此虛機(jī)的存儲(chǔ)和網(wǎng)卡采用VF直通的方式透?jìng)鹘o虛機(jī),提供高性能的存儲(chǔ)和網(wǎng)絡(luò)。其他非關(guān)鍵I/O設(shè)備則采用半卸載的方式,卸載到SoC側(cè),交由QEMU進(jìn)行模擬。
該方案中,每一個(gè)虛機(jī)都分配了一個(gè)特殊的PCIe設(shè)備,該P(yáng)CIe設(shè)備的BAR空間劃分成了兩部分,其他一部分用于API信息的交互,成為API CHANNEL;另外一部分用于I/O請(qǐng)求的交互,稱為IOREQ RING BUFFER。
以下為該方案的關(guān)鍵組件:
Libvritd:該組件運(yùn)行在SoC側(cè),對(duì)上層管理組件如nova-compute等提供虛機(jī)管理API,libvirtd進(jìn)一步和SoC側(cè)QEMU進(jìn)行交互達(dá)到管理虛機(jī)生命周期的目的。
QEMU:運(yùn)行在SoC側(cè),提供虛機(jī)的I/O設(shè)備模擬服務(wù),QEMU的交互接口是SoC-KVM提供的/dev/kvm-soc設(shè)備文件。QEMU在模擬I/O設(shè)備的過(guò)程中通過(guò)DPU卡提供DMA機(jī)制訪問(wèn)HOST內(nèi)存。
SOC-KVM:這是HOST-KVM內(nèi)核模塊在SoC側(cè)的鏡像,通過(guò)向用戶態(tài)暴露/dev/kvm-soc設(shè)備文件,供用戶態(tài)組件如QEMU,libvirtd等調(diào)用SOC-KVM提供的能力。該KVM內(nèi)核模塊不提供具體的CPU、MEMORY、I/O等虛擬化能力,只是作為管理面API和虛機(jī)I/O請(qǐng)求的轉(zhuǎn)發(fā)模塊。管理面API通過(guò)API channel轉(zhuǎn)發(fā)到HOST-KVM模塊,并由HOST-KVM進(jìn)行處理;來(lái)自HOST-KVM的I/O請(qǐng)求保存在IOREQ RING BUFFER中,并由SOC-KVM分發(fā)給用戶態(tài)QEMU。
HOST-KVM:這個(gè)內(nèi)核模塊是原生KVM的擴(kuò)展,與原生KVM的區(qū)別是:請(qǐng)求不是來(lái)自用戶態(tài)I/OCTL請(qǐng)求,而是來(lái)自API channel;除了原生提供的API,HOST-KVM進(jìn)一步提供了管里面API的處理,如nova-compute或kubelet的資源匯報(bào)類接口。
馭數(shù)DPU卡提供了SoC和Host間的雙向內(nèi)存同步機(jī)制及SoC和Host間的雙向中斷機(jī)制,配合IOREQ RING BUFFER,使得虛機(jī)的I/O請(qǐng)求可以卸載到SoC側(cè)QEMU完成;通過(guò)API channel,使得來(lái)自SoC側(cè)管理API可以被HOST-KVM處理。
2.2. 方案描述
中科馭數(shù)DPU輕量虛擬化在保持虛機(jī)形態(tài)不變的情況下,完成了的虛機(jī)I/O和控制面的卸載;以下對(duì)主要部分做詳細(xì)描述:
2.2.1.基于該方案的虛機(jī)生命周期管理
Libvirt-soc使用原生API和QEMU-SOC交互,QEMU-SOC采用原生API和KVM-SOC交互,KVM-SOC使用硬件的API channel通道,轉(zhuǎn)發(fā)KVM-SOC的API到KVM-HOST,最后由KVM-HOST完成具體的處理。上圖以虛機(jī)啟動(dòng)為例展示了各個(gè)組件的交互,在完成VM和VCPU創(chuàng)建后,QEMU-SOC進(jìn)一步加載BIOS或kernel,加載后需要使用DMA機(jī)制將BIOS內(nèi)存塊同步給Host;加載成功后,設(shè)置虛機(jī)的寄存器,并發(fā)送kvm_run請(qǐng)求,開始VCPU的運(yùn)行。
2.2.2.基于該方案的虛機(jī)I/O處理
GUEST的I/O操作,無(wú)論是PIO還是MMIO操作,都會(huì)導(dǎo)致VMEXIT,VMEXIT后KVM-HOST檢查是否能夠處理該I/O,如果無(wú)法處理,則需要將該I/O轉(zhuǎn)交給KVM-SOC。KVM-HOST構(gòu)造I/OREQ結(jié)構(gòu)體,該結(jié)構(gòu)體描述了該I/O的類型,地址,長(zhǎng)度,數(shù)據(jù)等內(nèi)容。構(gòu)造完成后,將該IOREQ存放在IOREQ RING BUFFER中,并通過(guò)中斷機(jī)制通知SoC側(cè),有新IOREQ到達(dá)。
KVM-SOC通過(guò)ioeventfd機(jī)制通知QEMU-SOC,QEMU-SOC訪問(wèn)BAR空間的IO RING BUFFER,取出IOREQ并處理。處理過(guò)程中,通過(guò)DMA機(jī)制訪問(wèn)Host內(nèi)存。處理結(jié)束后,QEMU-SOC通過(guò)KVM-SOC 的ioctl接口注入中斷。KVM-SOC通過(guò)BAR空間的API channel轉(zhuǎn)發(fā)中斷注入的API到KVM-HOST,最終由KVM-HOST完成虛機(jī)中斷的注入工作。
2.2.3.基于該方案的虛機(jī)熱遷移處理
Libvirt-soc發(fā)起熱遷移操作,使用QEMU-SOC提供的QMP命令接口通知QEMU-SOC。QEMU-SOC連接遷移對(duì)端的QEMU,并開始熱遷移的操作。QEMU-SOC首先發(fā)送全量的內(nèi)存到對(duì)端,內(nèi)存的同步使用DMA機(jī)制完成;全量?jī)?nèi)存發(fā)送完成后,開始迭代發(fā)送臟頁(yè),首先通過(guò)API channel,告知KVM-HOST開始記錄臟頁(yè),在后續(xù)的迭代過(guò)程中,使用DMA機(jī)制將臟頁(yè)信息從Host同步到SoC。在熱遷移的最后階段,KVM-SOC通過(guò)API channel發(fā)送暫停VCPU的API,KVM-HOST停止VCPU的運(yùn)行。VCPU暫停后,QEMU-SOC停止所有I/O設(shè)備的運(yùn)行,并發(fā)送最后的臟頁(yè)的設(shè)備狀態(tài)到對(duì)端。熱遷移結(jié)束后,QEMU-SOC調(diào)用KVM-SOC的ioctl接口,銷毀虛機(jī),KVM-SOC通過(guò)API channel通知KVM-HOST完成真正的銷毀操作。
2.2.4.openstack控制面對(duì)接
在該方案中nova-compute和libvirt均運(yùn)行在DPU的SoC系統(tǒng)內(nèi),libvirtd直接和SoC側(cè)QEMU交互鏡像虛機(jī)管理,Host文件系統(tǒng)通過(guò)sharedfs代理到SoC側(cè),libvirtd通過(guò)在SoC側(cè)訪問(wèn)Host文件系統(tǒng)來(lái)完成Host系統(tǒng)資源的跟蹤和管理。虛機(jī)的網(wǎng)絡(luò)和存儲(chǔ)使用PCIe直通的方式,給虛機(jī)提供高性能存儲(chǔ)和網(wǎng)絡(luò)。存儲(chǔ)和網(wǎng)絡(luò)資源的管理通過(guò)nova-compute的yusur-driver完成,yusur-driver使用/dev/kvm-soc接口請(qǐng)求KVM-HOST側(cè)的PCIe資源管理能力,完成虛機(jī)PCIe資源的準(zhǔn)備、銷毀等操作。
3. 方案優(yōu)勢(shì)
3.1. 方案優(yōu)勢(shì)
基于DPU的輕量虛擬化解決方案展現(xiàn)出了顯著的價(jià)值與優(yōu)勢(shì),這一方案不僅填補(bǔ)了市場(chǎng)空白,更引領(lǐng)了云計(jì)算行業(yè)的技術(shù)創(chuàng)新。
a. 填補(bǔ)空白,引領(lǐng)創(chuàng)新
該方案作為國(guó)內(nèi)首創(chuàng)的、公開的、可商業(yè)化的DPU輕量虛擬化方案,打破了頭部云廠商自研方案的封閉性,為更多云廠商和行業(yè)客戶提供了可借鑒和采用的先進(jìn)技術(shù)。這一方案的推出,無(wú)疑為云計(jì)算行業(yè)的多元化發(fā)展注入了新的活力。
b. 硬件加速,性能卓越
基于DPU的輕量虛擬化方案充分利用了DPU提供的硬件加速能力,顯著提升了系統(tǒng)性能和I/O處理效率。在云計(jì)算環(huán)境中,I/O性能往往是決定業(yè)務(wù)穩(wěn)定性和響應(yīng)速度的關(guān)鍵因素。該方案通過(guò)I/O卸載技術(shù),將I/O處理下放給DPU,有效減輕了HOST的負(fù)擔(dān),從而提升了整體系統(tǒng)的性能。
c. 顯著提升資源利用率
該方案還顯著提升了資源利用率。傳統(tǒng)的虛擬化技術(shù)中,管理面和I/O處理線程會(huì)占用大量的CPU和內(nèi)存資源,導(dǎo)致系統(tǒng)整體資源利用率降低。而基于DPU的輕量虛擬化方案則通過(guò)精簡(jiǎn)Hypervisor的設(shè)計(jì),幾乎不消耗任何主機(jī)側(cè)的資源,使得所有的資源都被業(yè)務(wù)系統(tǒng)所使用。這一優(yōu)勢(shì)不僅降低了運(yùn)營(yíng)成本,還提高了業(yè)務(wù)的盈利能力。
d. 減少攻擊面,強(qiáng)化安全
該方案在安全性方面也表現(xiàn)出色,通過(guò)I/O卸載技術(shù),將I/O處理下放給DPU,有效地減少了HOST的攻擊面,大大增強(qiáng)了HOST的安全性。同時(shí),該方案還采用了多種安全技術(shù)和措施,進(jìn)一步提升了系統(tǒng)的安全性。
綜上所述,基于DPU的輕量虛擬化解決方案在技術(shù)創(chuàng)新、性能提升、資源利用率提高以及安全性增強(qiáng)等方面都展現(xiàn)出了顯著的優(yōu)勢(shì)和價(jià)值。這一方案的推出將為云計(jì)算行業(yè)的發(fā)展帶來(lái)新的機(jī)遇。
3.2. 未來(lái)與展望
展望未來(lái),基于DPU的輕量虛擬化解決方案具有廣闊的發(fā)展前景。隨著云計(jì)算、大數(shù)據(jù)、人工智能等領(lǐng)域的快速發(fā)展,資源池規(guī)模不斷擴(kuò)大,對(duì)虛擬化技術(shù)的需求將日益增長(zhǎng)。該方案以其卓越的性能、高效的資源利用率和強(qiáng)大的安全性,將成為推動(dòng)這些領(lǐng)域發(fā)展的關(guān)鍵力量。
在技術(shù)層面,隨著DPU技術(shù)的不斷演進(jìn)和升級(jí),基于DPU的輕量虛擬化解決方案也將不斷優(yōu)化和完善,我們可以期待該方案在I/O處理效率、資源利用率和安全性方面實(shí)現(xiàn)更大的突破,為用戶提供更加優(yōu)質(zhì)、高效的云服務(wù)體驗(yàn)。
同時(shí),該方案的商業(yè)化應(yīng)用也將進(jìn)一步拓展。隨著越來(lái)越多的云廠商和行業(yè)客戶認(rèn)識(shí)到其價(jià)值和優(yōu)勢(shì),基于DPU的輕量虛擬化解決方案有望在市場(chǎng)上實(shí)現(xiàn)更廣泛的應(yīng)用和推廣,為云計(jì)算行業(yè)的持續(xù)發(fā)展注入新的動(dòng)力。
本方案來(lái)自于中科馭數(shù)軟件研發(fā)團(tuán)隊(duì),團(tuán)隊(duì)核心由一群在云計(jì)算、數(shù)據(jù)中心架構(gòu)、高性能計(jì)算領(lǐng)域深耕多年的業(yè)界資深架構(gòu)師和技術(shù)專家組成,不僅擁有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),還對(duì)行業(yè)趨勢(shì)具備敏銳的洞察力,該團(tuán)隊(duì)致力于探索、設(shè)計(jì)、開發(fā)、推廣可落地的高性能云計(jì)算解決方案,幫助最終客戶加速數(shù)字化轉(zhuǎn)型,提升業(yè)務(wù)效能,同時(shí)降低運(yùn)營(yíng)成本。
審核編輯 黃宇
-
云計(jì)算
+關(guān)注
關(guān)注
39文章
7707瀏覽量
137129 -
虛擬化
+關(guān)注
關(guān)注
1文章
365瀏覽量
29757 -
DPU
+關(guān)注
關(guān)注
0文章
353瀏覽量
24102
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論