• 正文
    • 1.? 背景、挑戰(zhàn)與業(yè)界進展
    • 2.? 方案介紹
    • 3.? 方案優(yōu)勢
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于DPU的輕量虛擬化解決方案

2024/10/14
1825
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1.? 背景、挑戰(zhàn)與業(yè)界進展

1.1. 虛擬化技術背景

云計算的浪潮中,虛擬化技術扮演著舉足輕重的角色。它通過將物理機集群的資源進行抽象整合,構建出一個統(tǒng)一的虛擬資源池。在這個資源池中,每一臺物理機上都會運行宿主機以及虛擬化的系統(tǒng)軟件。這些系統(tǒng)軟件負責為用戶提供虛擬的計算環(huán)境,包括虛擬CPU、虛擬內(nèi)存、虛擬網(wǎng)絡等,都是由Hypervisor這一核心組件來實現(xiàn)的。Hypervisor不僅確保了虛擬機計算能力的平穩(wěn)性和彈性,還為用戶提供了靈活的資源調(diào)度和分配能力。

虛擬化技術在云數(shù)據(jù)中心大數(shù)據(jù)處理、AI機器學習等多個領域都得到了廣泛的應用。通過虛擬化技術,企業(yè)可以更加高效地利用物理資源,實現(xiàn)資源的按需分配和彈性擴展,從而提高業(yè)務的靈活性和響應速度。

1.2. 虛擬化技術面臨的問題與挑戰(zhàn)

盡管虛擬化技術帶來了諸多優(yōu)勢,但在實際應用中也面臨著一些問題和挑戰(zhàn)。

首先,虛擬化架構中的管理面會占用部分CPU和內(nèi)存資源,從而降低了系統(tǒng)整體資源的利用率。系統(tǒng)服務systemd,或libvirtd等虛機管理程序的線程與vCPU線程之間存在資源爭搶的問題,導致業(yè)務虛擬機的穩(wěn)定性難以保證,進而影響客戶業(yè)務的質(zhì)量。

其次,虛擬機I/O處理線程會占用大量的CPU和內(nèi)存資源。虛擬化通常使用virtio-blk,virito-net為虛機提供磁盤和網(wǎng)卡設備,為了獲得更好的I/O性能,virtio-blk會采用iothread機制加速磁盤I/O的處理;而virtio-net則采用vhost-net的方案將網(wǎng)卡的I/O卸載到內(nèi)核,通過減少用戶態(tài)和內(nèi)核態(tài)的切換來減速網(wǎng)卡的I/O的處理;不論是iothread還是vhost-net,都需要在Host上創(chuàng)建對應的線程來完成具體的I/O處理,當I/O負載高的時候,iothread和vhost-net的處理線程會占用大量的CPU和內(nèi)存資源。

此外,虛擬化技術的安全性問題也不容忽視。當前主流虛擬化方案都是采用QEMU + KVM的形式,QEMU模擬了豐富的外設,由于編寫模擬設備的人員眾多,加上設備的接口大多數(shù)比較復雜,因此QEMU經(jīng)常在處理這些讀寫請求的時候沒有完整的對請求數(shù)據(jù)進行安全校驗,導致產(chǎn)生了很多安全性問題。攻擊者可能會利用虛擬化和Hypervisor的安全漏洞展開攻擊,從而威脅到整個虛擬化環(huán)境的安全。

1.3. 頭部云服務提供商的方案

針對虛擬化技術面臨的問題和挑戰(zhàn),業(yè)界頭部云服務提供商紛紛展開了探索和研發(fā),并不約而同的提出了基于DPU的輕量虛擬化方案。

AWS研發(fā)了Nitro系統(tǒng),通過Nitro卡將虛擬機的I/O卸載到硬件上,從而消除了I/O處理線程對VCPU的資源搶占。同時,Nitro hypervisor內(nèi)置了虛擬機的管理能力,將管理組件卸載到Nitro SoC上。這種設計不僅提高了系統(tǒng)的資源利用率和穩(wěn)定性,還大大增強了虛擬化的安全性。Host側只運行Nitro hypervisor,不提供通用OS能力,沒有用戶態(tài)和文件系統(tǒng),從而減少了潛在的攻擊面。

VMware也提出了基于DPU的ESXi卸載方案。在該方案中,Host ESXi hypervisor負責虛擬化的核心邏輯,而DPU上的ESXi hypervisor則負責主機管理、存儲和網(wǎng)絡等功能。這種設計同樣消除了管理和I/O處理的CPU占用,減少了vCPU的搶占,保證了vCPU的性能。同時,它也減少了Host的攻擊面,增強了系統(tǒng)的安全性。

阿里云則推出了神龍系統(tǒng),其中的Dragonfly Hypervisor以其超輕薄、資源零損耗的特點著稱。根據(jù)公開資料,其內(nèi)存占用每個虛擬機不到1MB,CPU占用小于0.1%。這種超低的資源損耗使得神龍系統(tǒng)能夠提供更加平穩(wěn)、高效的虛擬化服務。同時,Dragonfly Hypervisor還具備超平穩(wěn)、超平滑的特點,能夠解決資源池之間互相熱遷移的難題,與KVM無縫兼容,從而為用戶提供了更加穩(wěn)定、可靠的云服務。

1.4. DPU輕量虛擬化方案的成效與市場應用挑戰(zhàn)

基于DPU的輕量虛擬化Hypervisor解決方案在市場上取得了顯著的成效。它大幅提升了資源利用率,降低了運營成本,增強了系統(tǒng)的安全性,為用戶提供了更加穩(wěn)定、可靠的云服務。這些優(yōu)勢使得該方案在市場上得到了廣泛的認可,其商業(yè)價值也得到了充分的體現(xiàn)。

然而,頭部云廠商自研的解決方案往往具有高度定制化和封閉性的特點,大部分未面向公開商用市場,這限制了其應用范圍的擴大。尤其是在國內(nèi)市場,商業(yè)化、公開的DPU輕量虛擬化解決方案仍然是一片空白。這不僅限制了其他云廠商或行業(yè)客戶對這些方案的直接采用,也阻礙了基于DPU的虛擬化技術的進一步發(fā)展和普及。

綜上所述,基于DPU的輕量虛擬化方案將為虛擬化技術帶來了新的發(fā)展機遇,各云服務提供商和企業(yè)對該類方案的需求日益增加,市場呼喚創(chuàng)新和開放的解決方案。

2.? 方案介紹

為了應對虛擬化技術面臨的問題和挑戰(zhàn),中科馭數(shù)在多年的技術積累和豐富的行業(yè)經(jīng)驗基礎上,面向公開市場,推出了基于自研DPU的輕量虛擬化解決方案。

2.1. DPU輕量虛擬化整體方案架構

基于中科馭數(shù)DPU的輕量虛擬化方案,在Host側只保留Hypervisor和部分Linux內(nèi)核功能,且不提供用戶態(tài)控制面組件。QEMU作為Device Emulation service組件運行在SoC,提供虛機機型及設備的模擬,Host側只有VCPU內(nèi)核線程。馭數(shù)DPU卡支持nvme和virtio-net的硬件卸載,因此虛機的存儲和網(wǎng)卡采用VF直通的方式透傳給虛機,提供高性能的存儲和網(wǎng)絡。其他非關鍵I/O設備則采用半卸載的方式,卸載到SoC側,交由QEMU進行模擬。

該方案中,每一個虛機都分配了一個特殊的PCIe設備,該PCIe設備的BAR空間劃分成了兩部分,其他一部分用于API信息的交互,成為API CHANNEL;另外一部分用于I/O請求的交互,稱為IOREQ RING BUFFER。

以下為該方案的關鍵組件:

Libvritd:該組件運行在SoC側,對上層管理組件如nova-compute等提供虛機管理API,libvirtd進一步和SoC側QEMU進行交互達到管理虛機生命周期的目的。

QEMU:運行在SoC側,提供虛機的I/O設備模擬服務,QEMU的交互接口是SoC-KVM提供的/dev/kvm-soc設備文件。QEMU在模擬I/O設備的過程中通過DPU卡提供DMA機制訪問HOST內(nèi)存。

SOC-KVM:這是HOST-KVM內(nèi)核模塊在SoC側的鏡像,通過向用戶態(tài)暴露/dev/kvm-soc設備文件,供用戶態(tài)組件如QEMU,libvirtd等調(diào)用SOC-KVM提供的能力。該KVM內(nèi)核模塊不提供具體的CPU、MEMORY、I/O等虛擬化能力,只是作為管理面API和虛機I/O請求的轉(zhuǎn)發(fā)模塊。管理面API通過API channel轉(zhuǎn)發(fā)到HOST-KVM模塊,并由HOST-KVM進行處理;來自HOST-KVM的I/O請求保存在IOREQ RING BUFFER中,并由SOC-KVM分發(fā)給用戶態(tài)QEMU。

HOST-KVM:這個內(nèi)核模塊是原生KVM的擴展,與原生KVM的區(qū)別是:請求不是來自用戶態(tài)I/OCTL請求,而是來自API channel;除了原生提供的API,HOST-KVM進一步提供了管里面API的處理,如nova-compute或kubelet的資源匯報類接口。

馭數(shù)DPU卡提供了SoC和Host間的雙向內(nèi)存同步機制及SoC和Host間的雙向中斷機制,配合IOREQ RING BUFFER,使得虛機的I/O請求可以卸載到SoC側QEMU完成;通過API channel,使得來自SoC側管理API可以被HOST-KVM處理。

2.2. 方案描述

中科馭數(shù)DPU輕量虛擬化在保持虛機形態(tài)不變的情況下,完成了的虛機I/O和控制面的卸載;以下對主要部分做詳細描述:

2.2.1.??基于該方案的虛機生命周期管理

Libvirt-soc使用原生API和QEMU-SOC交互,QEMU-SOC采用原生API和KVM-SOC交互,KVM-SOC使用硬件的API channel通道,轉(zhuǎn)發(fā)KVM-SOC的API到KVM-HOST,最后由KVM-HOST完成具體的處理。上圖以虛機啟動為例展示了各個組件的交互,在完成VM和VCPU創(chuàng)建后,QEMU-SOC進一步加載BIOS或kernel,加載后需要使用DMA機制將BIOS內(nèi)存塊同步給Host;加載成功后,設置虛機的寄存器,并發(fā)送kvm_run請求,開始VCPU的運行。

2.2.2.??基于該方案的虛機I/O處理

GUEST的I/O操作,無論是PIO還是MMIO操作,都會導致VMEXIT,VMEXIT后KVM-HOST檢查是否能夠處理該I/O,如果無法處理,則需要將該I/O轉(zhuǎn)交給KVM-SOC。KVM-HOST構造I/OREQ結構體,該結構體描述了該I/O的類型,地址,長度,數(shù)據(jù)等內(nèi)容。構造完成后,將該IOREQ存放在IOREQ RING BUFFER中,并通過中斷機制通知SoC側,有新IOREQ到達。

KVM-SOC通過ioeventfd機制通知QEMU-SOC,QEMU-SOC訪問BAR空間的IO RING BUFFER,取出IOREQ并處理。處理過程中,通過DMA機制訪問Host內(nèi)存。處理結束后,QEMU-SOC通過KVM-SOC 的ioctl接口注入中斷。KVM-SOC通過BAR空間的API channel轉(zhuǎn)發(fā)中斷注入的API到KVM-HOST,最終由KVM-HOST完成虛機中斷的注入工作。

2.2.3.??基于該方案的虛機熱遷移處理

Libvirt-soc發(fā)起熱遷移操作,使用QEMU-SOC提供的QMP命令接口通知QEMU-SOC。QEMU-SOC連接遷移對端的QEMU,并開始熱遷移的操作。QEMU-SOC首先發(fā)送全量的內(nèi)存到對端,內(nèi)存的同步使用DMA機制完成;全量內(nèi)存發(fā)送完成后,開始迭代發(fā)送臟頁,首先通過API channel,告知KVM-HOST開始記錄臟頁,在后續(xù)的迭代過程中,使用DMA機制將臟頁信息從Host同步到SoC。在熱遷移的最后階段,KVM-SOC通過API channel發(fā)送暫停VCPU的API,KVM-HOST停止VCPU的運行。VCPU暫停后,QEMU-SOC停止所有I/O設備的運行,并發(fā)送最后的臟頁的設備狀態(tài)到對端。熱遷移結束后,QEMU-SOC調(diào)用KVM-SOC的ioctl接口,銷毀虛機,KVM-SOC通過API channel通知KVM-HOST完成真正的銷毀操作。

2.2.4.??openstack控制面對接

在該方案中nova-compute和libvirt均運行在DPU的SoC系統(tǒng)內(nèi),libvirtd直接和SoC側QEMU交互鏡像虛機管理,Host文件系統(tǒng)通過sharedfs代理到SoC側,libvirtd通過在SoC側訪問Host文件系統(tǒng)來完成Host系統(tǒng)資源的跟蹤和管理。虛機的網(wǎng)絡和存儲使用PCIe直通的方式,給虛機提供高性能存儲和網(wǎng)絡。存儲和網(wǎng)絡資源的管理通過nova-compute的yusur-driver完成,yusur-driver使用/dev/kvm-soc接口請求KVM-HOST側的PCIe資源管理能力,完成虛機PCIe資源的準備、銷毀等操作。

3.? 方案優(yōu)勢

3.1. 方案優(yōu)勢

基于DPU的輕量虛擬化解決方案展現(xiàn)出了顯著的價值與優(yōu)勢,這一方案不僅填補了市場空白,更引領了云計算行業(yè)的技術創(chuàng)新。

a. 填補空白,引領創(chuàng)新

該方案作為國內(nèi)首創(chuàng)的、公開的、可商業(yè)化的DPU輕量虛擬化方案,打破了頭部云廠商自研方案的封閉性,為更多云廠商和行業(yè)客戶提供了可借鑒和采用的先進技術。這一方案的推出,無疑為云計算行業(yè)的多元化發(fā)展注入了新的活力。

b. 硬件加速,性能卓越

基于DPU的輕量虛擬化方案充分利用了DPU提供的硬件加速能力,顯著提升了系統(tǒng)性能和I/O處理效率。在云計算環(huán)境中,I/O性能往往是決定業(yè)務穩(wěn)定性和響應速度的關鍵因素。該方案通過I/O卸載技術,將I/O處理下放給DPU,有效減輕了HOST的負擔,從而提升了整體系統(tǒng)的性能。

c. 顯著提升資源利用率

該方案還顯著提升了資源利用率。傳統(tǒng)的虛擬化技術中,管理面和I/O處理線程會占用大量的CPU和內(nèi)存資源,導致系統(tǒng)整體資源利用率降低。而基于DPU的輕量虛擬化方案則通過精簡Hypervisor的設計,幾乎不消耗任何主機側的資源,使得所有的資源都被業(yè)務系統(tǒng)所使用。這一優(yōu)勢不僅降低了運營成本,還提高了業(yè)務的盈利能力。

d. 減少攻擊面,強化安全

該方案在安全性方面也表現(xiàn)出色,通過I/O卸載技術,將I/O處理下放給DPU,有效地減少了HOST的攻擊面,大大增強了HOST的安全性。同時,該方案還采用了多種安全技術和措施,進一步提升了系統(tǒng)的安全性。

綜上所述,基于DPU的輕量虛擬化解決方案在技術創(chuàng)新、性能提升、資源利用率提高以及安全性增強等方面都展現(xiàn)出了顯著的優(yōu)勢和價值。這一方案的推出將為云計算行業(yè)的發(fā)展帶來新的機遇。

3.2. 未來與展望

展望未來,基于DPU的輕量虛擬化解決方案具有廣闊的發(fā)展前景。隨著云計算、大數(shù)據(jù)、人工智能等領域的快速發(fā)展,資源池規(guī)模不斷擴大,對虛擬化技術的需求將日益增長。該方案以其卓越的性能、高效的資源利用率和強大的安全性,將成為推動這些領域發(fā)展的關鍵力量。

在技術層面,隨著DPU技術的不斷演進和升級,基于DPU的輕量虛擬化解決方案也將不斷優(yōu)化和完善,我們可以期待該方案在I/O處理效率、資源利用率和安全性方面實現(xiàn)更大的突破,為用戶提供更加優(yōu)質(zhì)、高效的云服務體驗。

同時,該方案的商業(yè)化應用也將進一步拓展。隨著越來越多的云廠商和行業(yè)客戶認識到其價值和優(yōu)勢,基于DPU的輕量虛擬化解決方案有望在市場上實現(xiàn)更廣泛的應用和推廣,為云計算行業(yè)的持續(xù)發(fā)展注入新的動力。

本方案來自于中科馭數(shù)軟件研發(fā)團隊,團隊核心由一群在云計算、數(shù)據(jù)中心架構、高性能計算領域深耕多年的業(yè)界資深架構師和技術專家組成,不僅擁有豐富的實戰(zhàn)經(jīng)驗,還對行業(yè)趨勢具備敏銳的洞察力,該團隊致力于探索、設計、開發(fā)、推廣可落地的高性能云計算解決方案,幫助最終客戶加速數(shù)字化轉(zhuǎn)型,提升業(yè)務效能,同時降低運營成本。

中科馭數(shù)

中科馭數(shù)

中科馭數(shù)致力于專用處理器研發(fā),為智能計算提供芯片和產(chǎn)品解決方案。圍繞DPU芯片打造了智能網(wǎng)卡系列產(chǎn)品和解決方案。

中科馭數(shù)致力于專用處理器研發(fā),為智能計算提供芯片和產(chǎn)品解決方案。圍繞DPU芯片打造了智能網(wǎng)卡系列產(chǎn)品和解決方案。收起

查看更多

相關推薦