1. 背景介紹
1.1. 業(yè)務(wù)背景
在云原生技術(shù)迅速發(fā)展的當(dāng)下,容器技術(shù)因其輕量級(jí)、可移植性和快速部署的特性而成為應(yīng)用部署的主流選擇,但裸金屬服務(wù)器依然有其獨(dú)特的價(jià)值和應(yīng)用場(chǎng)景,是云原生架構(gòu)中不可或缺的一部分。
裸金屬服務(wù)器是一種高級(jí)的云計(jì)算解決方案,它成功地融合了傳統(tǒng)云主機(jī)的靈活性、便捷性與物理服務(wù)器的強(qiáng)大性能與獨(dú)立性。作為一類特別設(shè)計(jì)的計(jì)算類云服務(wù),裸金屬服務(wù)器直接向用戶提供了云端部署的專屬物理服務(wù)器,這意味著客戶不再需要與其他租戶共享硬件資源,從而確保了資源的獨(dú)占性、性能的最優(yōu)化以及數(shù)據(jù)的最高級(jí)別安全。
這種服務(wù)模式特別適合那些運(yùn)行核心數(shù)據(jù)庫(kù)系統(tǒng)、承載關(guān)鍵業(yè)務(wù)應(yīng)用、實(shí)施大規(guī)模高性能計(jì)算項(xiàng)目或處理海量大數(shù)據(jù)分析的任務(wù)。裸金屬服務(wù)器以其強(qiáng)大的計(jì)算能力,能夠高效處理復(fù)雜的計(jì)算密集型作業(yè),同時(shí)保證了低延遲和高吞吐量,是驅(qū)動(dòng)企業(yè)數(shù)字化轉(zhuǎn)型和創(chuàng)新業(yè)務(wù)場(chǎng)景的重要基石。
1.2. 問題與挑戰(zhàn)
傳統(tǒng)的裸金屬服務(wù)通常采用Openstack Ironic架構(gòu),并通過PXE和TFTP實(shí)現(xiàn)安裝引導(dǎo)流程,服務(wù)器的本地盤作為裸金屬服務(wù)器的存儲(chǔ)資源。這種方式導(dǎo)致了用戶體驗(yàn)差、靈活性不足等諸多問題,難以滿足用戶越來越高的業(yè)務(wù)和技術(shù)需求。
Ironic 采用本地物理盤進(jìn)行啟動(dòng)時(shí),首先將遠(yuǎn)程鏡像下載并寫入到本地物理盤中,然后再?gòu)谋镜乇P啟動(dòng)進(jìn)入系統(tǒng)。流程如下:
可以看到,其重點(diǎn)是通過 PXE 啟動(dòng)一個(gè)小系統(tǒng)(在內(nèi)存中運(yùn)行),這個(gè)小系統(tǒng)中運(yùn)行了 Ironic 定制的 ironic-python-agent(簡(jiǎn)稱 IPA),IPA 負(fù)責(zé)從 Glance 下載真正的用戶鏡像,并寫入到本地磁盤上。
物理服務(wù)器支持基于云盤的無盤啟動(dòng)方式,Ironic 也支持無盤啟動(dòng),但目前支持的協(xié)議有限,僅支持 iSCSI Boot,且仍然依賴PXE。
目前在云原生生態(tài)中,提供裸金屬服務(wù)的開源組件只有 metal3(或稱Metal Kubed),但我們對(duì)其調(diào)研后發(fā)現(xiàn),metal3只是抽象了裸金屬的一個(gè)生命周期狀態(tài)機(jī),但裸金屬本身的網(wǎng)絡(luò)、存儲(chǔ)、鏡像管理等都依賴外部實(shí)現(xiàn),而且目前僅有基于 Ironic 的實(shí)現(xiàn)。因此,相關(guān)的方案架構(gòu)和 Ironic 沒有區(qū)別。
因此,我們總結(jié)裸金屬服務(wù)器部署和存儲(chǔ)的關(guān)鍵痛點(diǎn):
- 部署周期長(zhǎng):傳統(tǒng)裸金屬服務(wù)采用PXE+TFTP技術(shù)安裝引導(dǎo),部署時(shí)間長(zhǎng)(約20分鐘),主要耗時(shí)在三個(gè)環(huán)節(jié):(1)兩次啟動(dòng),(2)鏡像下載,(3)鏡像寫入本地盤。這導(dǎo)致了業(yè)務(wù)彈性不足和效率低下,最終用戶體驗(yàn)較差。
- 存儲(chǔ)能力弱:服務(wù)器本地盤作為系統(tǒng)盤,無法實(shí)現(xiàn)靈活擴(kuò)容、整機(jī)克隆和冷遷移等操作;數(shù)據(jù)保存在本地,如果掛載云存儲(chǔ)則需要侵入用戶鏡像,且云存儲(chǔ)客戶端運(yùn)行于 Host,消耗計(jì)算資源,影響運(yùn)維效率和使用體驗(yàn)。
- 在云原生生態(tài)下無解決方案:目前在Kubenetes架構(gòu)下,無法支持裸金屬服務(wù),不能以云原生統(tǒng)一的方式實(shí)現(xiàn)裸金屬服務(wù)器的創(chuàng)建、刪除、重啟等操作,導(dǎo)致管理效率低下,服務(wù)器資源利用率低。
2. 方案介紹
2.1. 整體架構(gòu)
為了解決傳統(tǒng)裸金屬服務(wù)方案的問題,中科馭數(shù)基于DPU開發(fā)了全新的云原生裸金屬服務(wù)解決方案,整體架構(gòu)圖如下:
在本方案中,DPU支持裸金屬服務(wù)器的網(wǎng)絡(luò)和存儲(chǔ)資源虛擬化,使得物理服務(wù)器能夠像虛擬機(jī)一樣靈活配置,動(dòng)態(tài)添加或刪除網(wǎng)卡、硬盤等資源。這為裸金屬服務(wù)器提供了類似云服務(wù)的彈性,同時(shí)保持了物理機(jī)級(jí)別的性能。另外,DPU能夠管理遠(yuǎn)程存儲(chǔ)資源,如云盤,使得裸金屬服務(wù)器可以使用云存儲(chǔ)服務(wù),同時(shí)通過DPU加速存儲(chǔ)I/O,提高讀寫性能,使得云盤接近本地存儲(chǔ)的體驗(yàn)。
我們定義了一類名為 BareMetalMachine 的 CRD 資源來管理裸金屬實(shí)例,并自研了相關(guān)的 Kubenetes組件管理裸金屬的生命周期,包含以下關(guān)鍵組件:
bmctl:類似于 kubectl 的一個(gè)便于操作裸金屬的命令行工具。
bm-controller:裸金屬核心控制器,工作在 master 節(jié)點(diǎn)。負(fù)責(zé)裸金屬對(duì)象生命周期的管理,通過 BMC 來操作裸金屬服務(wù)器的電源(開關(guān)機(jī)、重啟等)狀態(tài)。
bm-api:作為K8s APIServer 的擴(kuò)展,封裝裸金屬的 api 接口,實(shí)現(xiàn) console、重啟等功能。
bm-handler:作為DaemonSet 部署在 DPU Soc 上,負(fù)責(zé)該DPU上裸金屬的管理。
ycloud-cni:為裸金屬提供虛擬網(wǎng)卡配置功能,調(diào)用 OVS 進(jìn)行配置。
ycloud-csi:為裸金屬提供云盤掛載功能,最終通過SPDK 進(jìn)行配置,SPDK 通過 PCIe給裸金屬模擬磁盤。是一個(gè)框架,對(duì)接到外部或開源的 CSI Driver。
以上組件均為自研,完全基于云原生生態(tài),在用戶平面實(shí)現(xiàn)和Kubevirt虛機(jī)類似的管理操作,填補(bǔ)了云原生生態(tài)中管理裸金屬服務(wù)的空白。
2.2. 方案描述
在基于DPU的裸金屬服務(wù)方案下,實(shí)現(xiàn)了裸金屬的部署啟動(dòng)、云盤熱插拔、熱擴(kuò)容、cloudinit、冷遷移、快照恢復(fù)及克隆等常用功能,以下對(duì)主要部分做詳細(xì)描述,并和傳統(tǒng) Ironic 方案進(jìn)行部分對(duì)比。
2.2.1.基于DPU的無盤啟動(dòng)方案
在基于 DPU 的方案中,我們采用直接掛載云盤系統(tǒng)的方式,不使用本地盤,過程如下:
bm-controller 根據(jù)裸金屬資源描述,創(chuàng)建系統(tǒng)盤對(duì)應(yīng)的 PVC,指定從原始鏡像所在的PVC 進(jìn)行克隆。
ycloud-csi 監(jiān)聽到 PVC 創(chuàng)建后,調(diào)用后端存儲(chǔ)以快照方式克隆原始鏡像卷,創(chuàng)建新的鏡像卷。遠(yuǎn)程存儲(chǔ)卷拷貝的時(shí)候采用的是快照方式(COW),并不是完整拷貝,速度很快,一般在數(shù)秒內(nèi)完成。
鏡像卷創(chuàng)建完成后,ycloud-csi 將其映射到DPU,調(diào)用 SPDK 進(jìn)行配置,給Host 側(cè)掛載對(duì)應(yīng)的系統(tǒng)盤。
系統(tǒng)盤掛載完成后,bm-controller 通過 BMC重啟裸金屬節(jié)點(diǎn),此時(shí)BIOS 能掃描到系統(tǒng)盤,啟動(dòng)進(jìn)入系統(tǒng),裸金屬啟動(dòng)完成。
與Ironic 方案相比,沒有 PXE 過程,也只需啟動(dòng)一次。
2.2.2.存儲(chǔ)對(duì)接
Ironic 存儲(chǔ)對(duì)接方案:
Ironic 的存儲(chǔ)對(duì)接在 Host 側(cè),Host 網(wǎng)絡(luò)需和存儲(chǔ)網(wǎng)絡(luò)連通,且Host 中如安裝相關(guān)組件,如下圖:
為了完成云盤的掛載/卸載,Host 中需要安裝一個(gè) ironic-agent 及相應(yīng)存儲(chǔ)客戶端,ironic-agent調(diào)用存儲(chǔ)客戶端完成云盤的掛載/卸載操作。Ironic 的 StorageDriver 會(huì)配置好存儲(chǔ)服務(wù)端,并調(diào)用 ironic-agent 完成云盤的操作。
基于DPU的存儲(chǔ)對(duì)接方案:
在基于DPU 的方案中,存儲(chǔ)對(duì)接在DPU 側(cè),如下圖所示:
裸金屬上看到的盤,是DPU 上的 SPDK 通過 PCIe 模擬的設(shè)備。存儲(chǔ)網(wǎng)絡(luò)也是由 OVS 連接的和配置的。為了便于系統(tǒng)組件通過統(tǒng)一的框架屏蔽存儲(chǔ)的細(xì)節(jié),我們開發(fā)了ycloud-csi 這個(gè)基于 DPU的通用框架,可以和多種外部 CSI Driver進(jìn)行對(duì)接。ycloud-csi 和 API Server 通信,監(jiān)聽 PVC 的更新,通過 CSI Driver 調(diào)用后端存儲(chǔ),并調(diào)用 SPDK 給Host 配置相應(yīng)的模擬盤。
與 Ironic 方案相比,存儲(chǔ)相關(guān)組件全部下沉到了DPU側(cè),存儲(chǔ)網(wǎng)絡(luò)也統(tǒng)一通過 DPU 側(cè)OVS 對(duì)外連接,Host側(cè)屏蔽了網(wǎng)絡(luò)細(xì)節(jié)。
2.2.3.硬盤熱插拔
如Ironic存儲(chǔ)對(duì)接方案中所示,Ironic 中的 StorageDriver 調(diào)用 Host 中的 ironic-agent 完成硬盤熱插拔,用戶鏡像需安裝相關(guān)依賴。
在基于 DPU 的方案中,由于裸金屬上的盤是 DPU 通過PCIe 模擬的,因此,通過動(dòng)態(tài)調(diào)整 DPU 上的 SPDK 配置,即可實(shí)現(xiàn)硬盤的熱插拔。
2.2.4.硬盤熱擴(kuò)容
Ironic 中,支持云盤熱擴(kuò)容,在 Cinder 中調(diào)整存儲(chǔ)卷的大小后,刷新客戶端即可。
在基于 DPU 的方案中,ycloud-csi 調(diào)用存儲(chǔ)完成后端存儲(chǔ)卷的擴(kuò)容,然后通過 SPDK 支持 bdev 的熱擴(kuò)容,并通過PCIe 通知到 Host側(cè)。
3. 方案測(cè)試結(jié)果
3.1. K8s上裸金屬創(chuàng)建及管理
與其他K8s 資源的創(chuàng)建類似,裸金屬的通過一個(gè)yaml描述進(jìn)行創(chuàng)建,類似以下命令:
kubectl apply -f bm-xxx.yaml |
(由于描述yaml較長(zhǎng),這里不貼出)
創(chuàng)建后,可通過 kubectl 命令查看:
可以看到bm-01、bm-02及 bm-node3三個(gè)裸金屬實(shí)例,均為 Running 狀態(tài)。
我們提供了類似 kubectl 的一個(gè) bmctl 命令行工具,方便進(jìn)行管理維護(hù)。通過該命令,可以方便的進(jìn)行開關(guān)機(jī)、重啟、硬盤插拔、網(wǎng)卡插拔等操作:
3.2. 部署啟動(dòng)時(shí)間
我們定義裸金屬的部署啟動(dòng)時(shí)間為:下發(fā)創(chuàng)建裸金屬實(shí)例的命令,到裸金屬實(shí)例網(wǎng)絡(luò) IP 可以ping 通的時(shí)間。
在聯(lián)創(chuàng)萬通 LCWT R7220 服務(wù)器上,鏡像 OS 為 Ubuntu 22.04 Server,內(nèi)核版本為 5.15.0-106-generic 時(shí)測(cè)得的啟動(dòng)時(shí)間:
從創(chuàng)建到可ping 通共耗時(shí) 153 秒(2min33s)。
基于DPU的裸金屬服務(wù)方案啟動(dòng)時(shí)間在 2-3min 內(nèi),具體耗時(shí)取決于服務(wù)器類型和鏡像版本。相比之下,我們測(cè)試傳統(tǒng) Ironic 本地盤方式在 20min 以上。
3.3. CPU消耗
在裸金屬實(shí)例上對(duì)多塊盤同時(shí)執(zhí)行 fio 測(cè)試,查看 CPU 消耗,可以看到,由于存儲(chǔ)組件全部卸載到了DPU側(cè),Host幾乎沒有 CPU 消耗(fio 和 top 進(jìn)程除外):
相比之下,若 Host 直接運(yùn)行 Ceph RBD客戶端連接存儲(chǔ),fio 讀寫時(shí),通過Top可看到 RBD 內(nèi)核進(jìn)程:
將以上Ceph RBD 內(nèi)核進(jìn)程的消耗CPU 百分百相加,可以看到,fio讀寫時(shí)消耗CPU為235.2%,超過200%(即2個(gè)物理Core),在更多的盤讀寫時(shí),會(huì)消耗更多CPU:
3.4. 硬盤熱插拔
本測(cè)試為在不關(guān)機(jī)重啟的情況下插拔云盤,測(cè)試結(jié)果顯示可正常操作。
拔盤前:
拔盤后:
插入新盤后:
3.5. 硬盤熱擴(kuò)容
熱擴(kuò)容測(cè)試時(shí),使用 fio 對(duì)目標(biāo)盤進(jìn)行讀寫,擴(kuò)容過程中fio 的數(shù)據(jù)操作不受影響。
擴(kuò)容前:
擴(kuò)容后:
4. 總結(jié)
4.1. 方案優(yōu)勢(shì)
本方案創(chuàng)新性地在云原生架構(gòu)框架下融入裸金屬服務(wù),依托自研的Kubenetes插件,巧妙運(yùn)用DPU技術(shù),實(shí)現(xiàn)系統(tǒng)盤與數(shù)據(jù)盤的云端托管,顯著優(yōu)化資源配置與管理效能。其核心優(yōu)勢(shì)概覽如下:
?填補(bǔ)空白,引領(lǐng)創(chuàng)新:鑒于目前云原生生態(tài)系統(tǒng)中缺乏成熟的開源裸金屬服務(wù)解決方案,本方案的成功實(shí)施不僅填補(bǔ)了這一市場(chǎng)和技術(shù)空白,更為行業(yè)樹立了新的標(biāo)桿,推動(dòng)了云原生技術(shù)的深入發(fā)展與應(yīng)用。
?加速部署,效率飛躍:依托DPU驅(qū)動(dòng)的云盤啟動(dòng)機(jī)制,與傳統(tǒng)的本地盤啟動(dòng)方式相比,本方案極大提升了裸金屬服務(wù)器的交付速度,部署時(shí)間從20分鐘銳減至大約2分鐘,顯著增強(qiáng)了業(yè)務(wù)敏捷性。
?深度整合,簡(jiǎn)化管理:通過DPU掛載云盤,將裸金屬服務(wù)器的控制面與數(shù)據(jù)面下沉至DPU層面,無需依賴用戶自定義鏡像,且存儲(chǔ)客戶端功能與用戶系統(tǒng)完全隔離,確保了環(huán)境的純凈與管理的便捷。
?強(qiáng)化安全,隱匿復(fù)雜性:該方案有效屏蔽存儲(chǔ)網(wǎng)絡(luò)架構(gòu)及后端存儲(chǔ)細(xì)節(jié),既增強(qiáng)了存儲(chǔ)層面的安全防御能力,又簡(jiǎn)化了運(yùn)維視圖,提升了整體系統(tǒng)的安全性和可維護(hù)性。
?資源優(yōu)化,專注業(yè)務(wù):通過將存儲(chǔ)功能外移到DPU,徹底釋放了裸金屬服務(wù)器本身的資源約束,確保所有服務(wù)器資源都能集中服務(wù)于業(yè)務(wù)需求,極大提升了資源的有效利用率。
?性能卓越,逼近本地:充分利用DPU提供的硬件加速能力,本方案中的云盤性能逼近甚至達(dá)到本地硬盤水平,確保了數(shù)據(jù)訪問的高速度與低延遲,滿足了高性能計(jì)算與大數(shù)據(jù)處理的嚴(yán)苛要求。
綜上所述,本方案憑借其在部署效率、資源管理、安全性能、資源優(yōu)化及技術(shù)創(chuàng)新方面的顯著優(yōu)勢(shì),為云原生環(huán)境下的裸金屬服務(wù)應(yīng)用開辟了新的路徑,展現(xiàn)了強(qiáng)大的競(jìng)爭(zhēng)力和前瞻視野。
4.2. 未來與展望
隨著企業(yè)對(duì)高性能計(jì)算、數(shù)據(jù)安全及業(yè)務(wù)敏捷性的需求日益增長(zhǎng),本方案將進(jìn)一步整合云原生架構(gòu)的靈活性與物理服務(wù)器的性能優(yōu)勢(shì),助力客戶在激烈的市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。客戶將享受到更短的業(yè)務(wù)上線時(shí)間、更低的總體擁有成本(TCO)、更強(qiáng)的數(shù)據(jù)安全性和定制化的高性能計(jì)算環(huán)境,從而加速數(shù)字化轉(zhuǎn)型,推動(dòng)業(yè)務(wù)創(chuàng)新與發(fā)展。
伴隨云原生技術(shù)的普及與深化,裸金屬服務(wù)作為關(guān)鍵基礎(chǔ)設(shè)施之一,其市場(chǎng)需求將持續(xù)攀升,特別是在金融、電信、醫(yī)療、大數(shù)據(jù)分析和AI訓(xùn)練等對(duì)計(jì)算性能和數(shù)據(jù)隔離有著極高要求的行業(yè)。本方案以其獨(dú)特的技術(shù)優(yōu)勢(shì),有望成為行業(yè)標(biāo)準(zhǔn),吸引更廣泛的客戶群體,推動(dòng)整個(gè)云服務(wù)市場(chǎng)的多元化與高端化發(fā)展。
本方案來自于中科馭數(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)注
38文章
7612瀏覽量
136743 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4123瀏覽量
85279 -
DPU
+關(guān)注
關(guān)注
0文章
343瀏覽量
24044 -
云原生
+關(guān)注
關(guān)注
0文章
238瀏覽量
7919 -
中科馭數(shù)
+關(guān)注
關(guān)注
0文章
110瀏覽量
3945
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論