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