加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1 方案背景和挑戰(zhàn)
    • 2 方案介紹
    • 3 方案測試結(jié)果
    • 4 方案優(yōu)勢
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于DPU的OpenStack裸金屬服務(wù)快速部署及存儲解決方案

09/23 18:12
1743
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1 方案背景和挑戰(zhàn)

Openstack作為開源云計(jì)算領(lǐng)域的領(lǐng)軍項(xiàng)目,憑借其強(qiáng)大的功能、靈活的架構(gòu)以及活躍的社區(qū)支持,在全球范圍內(nèi)得到了廣泛的采用。通過Openstack,企業(yè)和云服務(wù)提供商可以更加高效地管理和利用計(jì)算資源、存儲資源和網(wǎng)絡(luò)資源,實(shí)現(xiàn)業(yè)務(wù)的快速部署和靈活擴(kuò)展,從而贏得市場競爭的先機(jī)。

Ironic作為Openstack的關(guān)鍵組件,提供了對裸金屬服務(wù)的全面管理。通過Ironic,用戶可以在云環(huán)境中直接控制和管理實(shí)體硬件,實(shí)現(xiàn)裸金屬服務(wù)器的自動化部署、管理和監(jiān)控。

原生的Ironic 采用本地物理盤進(jìn)行啟動,其首先將遠(yuǎn)程鏡像下載并寫入到本地物理盤中,然后再從本地盤啟動進(jìn)入系統(tǒng)。過程如下:

可以看到,其重點(diǎn)是通過方案具有以下問題和挑戰(zhàn):

a. 部署啟動周期長(20分鐘左右),業(yè)務(wù)敏捷性低,用戶體驗(yàn)差

(1)兩次啟動:在部署裸金屬服務(wù)器時,首先會通過PXE啟動一個小的、臨時的系統(tǒng)環(huán)境,IPA會啟動并執(zhí)行部署任務(wù)。部署完成后,服務(wù)器會從已安裝的操作系統(tǒng)啟動。這兩次啟動過程增加了整體部署時間。

(2)鏡像下載:IPA需要從Glance下載完整的用戶鏡像到內(nèi)存中或臨時存儲,這個下載過程取決于鏡像的大小和網(wǎng)絡(luò)條件,可能會非常耗時。對于大型鏡像或網(wǎng)絡(luò)條件不佳的環(huán)境,這個步驟可能成為瓶頸。

(3)鏡像寫入本地盤:下載完鏡像后,IPA還需要將這個鏡像寫入到服務(wù)器的本地磁盤上。這個過程也取決于磁盤的寫入速度和鏡像的大小,可能會進(jìn)一步增加部署時間。

b. 消耗大量帶寬,影響整體網(wǎng)絡(luò)應(yīng)用性能

全量下載系統(tǒng)鏡像會消耗大量的網(wǎng)絡(luò)帶寬,尤其是在多節(jié)點(diǎn)部署或頻繁更新鏡像的場景下。這不僅增加了網(wǎng)絡(luò)負(fù)載,還可能影響其他網(wǎng)絡(luò)應(yīng)用的性能。

c. 系統(tǒng)盤無法擴(kuò)容,敏捷性和彈性低

在當(dāng)前部署模型中,用戶鏡像被直接寫入到服務(wù)器的本地磁盤上,并且通常是作為一個固定的分區(qū)或文件系統(tǒng)來配置的。這意味著如果后續(xù)需要增加系統(tǒng)盤的容量(例如,因?yàn)閿?shù)據(jù)量增長或應(yīng)用需求變化),可能需要重新部署整個服務(wù)器,這既耗時又復(fù)雜。

d. 依賴外部組件,增加系統(tǒng)復(fù)雜度和成本

部署過程依賴于多個外部組件,如PXE、TFTP、DHCP等,這些組件需要正確配置和維護(hù)。任何一個組件的故障都可能導(dǎo)致部署失敗,增加了系統(tǒng)的復(fù)雜性和維護(hù)成本。

2 方案介紹

2.1 整體架構(gòu)

為了解決OpenStack Ironic裸金屬服務(wù)方案的問題,中科馭數(shù)基于DPU開發(fā)了ironic裸金屬服務(wù)解決方案,整體架構(gòu)圖如下:

在本方案中,DPU支持裸金屬服務(wù)器的網(wǎng)絡(luò)和存儲資源虛擬化,使得物理服務(wù)器能夠像虛擬機(jī)一樣靈活配置,動態(tài)添加或刪除網(wǎng)卡、硬盤等資源。這為裸金屬服務(wù)器提供了類似云服務(wù)的彈性,同時保持了物理機(jī)級別的性能。另外,DPU能夠管理遠(yuǎn)程存儲資源,如云盤,使得裸金屬服務(wù)器可以使用云存儲服務(wù),同時通過DPU加速存儲I/O,提高讀寫性能,使得云盤接近本地存儲的體驗(yàn)。

本方案主要涉及glance、cinder、nova、neutron、ironic模塊。仍然使用ironic?node資源管理裸金屬實(shí)例。在開源ironic組件(ironic-api、ironic-conductor)之外,自研了ironic-dpu-agent組件,運(yùn)行在每個裸金屬節(jié)點(diǎn)的DPU Soc中,用于管理裸金屬實(shí)例的存儲、網(wǎng)絡(luò)資源。本方案主要包含以下系統(tǒng)組件:

  • Nova:對接ironic,為裸金屬提供和虛擬機(jī)一致的操作。
  • Ironic-api:裸金屬rest api服務(wù)。
  • Ironic-conductor:裸金屬實(shí)例的任務(wù)控制服務(wù),負(fù)責(zé)裸金屬開關(guān)機(jī)、重啟、部署等任務(wù)。
  • Ironic-dpu-agent:運(yùn)行在DPU Soc上,與ironic-conductor通過RPC通信,負(fù)責(zé)管理本節(jié)點(diǎn)裸金屬實(shí)例的存儲、網(wǎng)絡(luò)資源。在裸金屬部署階段,接收ironic-conductor下發(fā)的部署指令,在DPU內(nèi)連接云盤并掛載到host。在裸金屬運(yùn)行時,接收ironic-conductor下發(fā)的添加、刪除磁盤指令,為host動態(tài)添加、刪除磁盤。
  • Volume-attacher:負(fù)責(zé)裸金屬磁盤的掛載、卸載操作。
  • Neutron:OpenStack網(wǎng)絡(luò)服務(wù),為裸金屬實(shí)例提供network、subnet、port管理功能。
  • Cinder:OpenStack塊存儲服務(wù),為裸金屬實(shí)例提供云盤創(chuàng)建、刪除等管理功能。
  • Glance:OpenStack鏡像管理服務(wù),為裸金屬實(shí)例提供鏡像上傳、下載功能。

2.2 方案描述

在基于DPU的OpenStack裸金屬服務(wù)方案下,實(shí)現(xiàn)了裸金屬的部署啟動、云盤熱插拔、cloudinit、冷遷移等常用功能,以下對主要部分做詳細(xì)描述,并和傳統(tǒng)ironic方案進(jìn)行部分對比。

2.2.1 基于DPU的無盤啟動方案

在基于 DPU 的方案中,我們采用直接掛載云盤系統(tǒng)的方式,不使用本地盤,過程如下:

  • nova-api接收到創(chuàng)建裸金屬實(shí)例請求,調(diào)用nova-scheduler調(diào)度出ironic node。
  • nova-scheduler調(diào)用nova-compute孵化裸金屬實(shí)例。
  • nova-compute根據(jù)指定的鏡像,調(diào)用cinder創(chuàng)建出系統(tǒng)盤volume,cinder調(diào)用后端存儲以快照方式克隆鏡像卷,并不是完整拷貝,速度很快,一般在數(shù)秒內(nèi)完成。
  • nova-compute的ironic virt driver根據(jù)指定的cinder volume在ironic中創(chuàng)建node的volume target,作為裸金屬實(shí)例的云盤。之后調(diào)用ironic-api部署node。
  • ironic-conductor的dpu deploy driver調(diào)用node所對應(yīng)的ironic-dpu-agent執(zhí)行部署任務(wù)。
  • ironic-dpu-agent根據(jù)volume target在dpu內(nèi)調(diào)用spdk映射云盤,給host側(cè)掛載對應(yīng)的系統(tǒng)盤。
  • 系統(tǒng)盤掛載完成后,ironic-conductor通過BMC重啟裸金屬節(jié)點(diǎn),此時BIOS能掃描到系統(tǒng)盤,啟動進(jìn)入系統(tǒng),裸金屬啟動完成。

和 Ironic 傳統(tǒng)方案相比,沒有PXE過程,也只需啟動一次。

2.2.2 存儲對接

Ironic 原生存儲對接方案:

ironic的存儲對接在host側(cè),host網(wǎng)絡(luò)需和存儲網(wǎng)絡(luò)連通,且host中需安裝相關(guān)組件,如下圖:

為了完成云盤的掛載/卸載,host 中需要安裝一個 ironic-agent,其調(diào)用 iscsi-initiator 或相應(yīng)的存儲客戶端完成云盤的掛載/卸載操作。Ironic 的 StorageDriver 會配置好存儲服務(wù)端,并調(diào)用 ironic-agent 完成云盤的操作。

基于DPU的存儲對接方案:

在基于DPU 的方案中,系統(tǒng)盤和數(shù)據(jù)盤統(tǒng)一使用云盤,云盤由volume-attacher組件進(jìn)行分配掛載。裸金屬上看到的盤,是DPU 上的 spdk 通過 PCIE 模擬的設(shè)備。存儲網(wǎng)絡(luò)也是由 ovs 連接的和配置的。如下圖所示:

相比于 Ironic 方案,DPU 方案有以下優(yōu)勢:

  • 存儲網(wǎng)絡(luò)統(tǒng)一走DPU側(cè),隱藏了存儲網(wǎng)絡(luò)的細(xì)節(jié),并可利用 DPU 進(jìn)行網(wǎng)絡(luò)加速;
  • 兼容cinder后端存儲,存儲系統(tǒng)無需適配。云盤是通過cinder創(chuàng)建的,volume-attacher配置spdk連接云盤,模擬出對應(yīng)的磁盤給到裸金屬。

2.2.3 硬盤熱插拔

如Ironic存儲對接方案中所示,Ironic 中的 StorageDriver 調(diào)用 host 中的 ironic-agent 完成硬盤熱插拔,用戶鏡像需安裝相關(guān)依賴。

在基于?DPU 的方案中,由于裸金屬上的盤是 DPU 通過PCIE 模擬的,因此,通過動態(tài)調(diào)整 DPU 上的 spdk 配置,即可實(shí)現(xiàn)硬盤的熱插拔。

3 方案測試結(jié)果

3.1 創(chuàng)建裸金屬實(shí)例

與創(chuàng)建虛擬機(jī)流程類似,選擇裸金屬的flavor和鏡像進(jìn)行創(chuàng)建。

可以看到bm01、bm02兩個裸金屬實(shí)例,均為active狀態(tài)。通過nova創(chuàng)建裸金屬實(shí)例,ironic node中會關(guān)聯(lián)instance uuid。

3.2 部署啟動時間

我們定義裸金屬的部署啟動時間為:下發(fā)創(chuàng)建裸金屬實(shí)例的命令,到裸金屬實(shí)例網(wǎng)絡(luò)IP可以ping通的時間。

在聯(lián)創(chuàng)萬通 LCWT R7220 服務(wù)器上,鏡像 OS 為 Ubuntu 22.04 Server,內(nèi)核版本為5.15.0-106-generic 時測得的啟動時間:從創(chuàng)建到可 ping 通共耗時 161 秒(2min41s)。

基于 DPU 的裸金屬服務(wù)方案啟動時間在 2-3min 內(nèi),具體耗時取決于服務(wù)器類型和鏡像版本。相比之下,我們測試傳統(tǒng) Ironic 本地盤方式在 20min 以上。

3.3 添加磁盤

添加磁盤前,裸金屬系統(tǒng)內(nèi)看到的磁盤列表:

添加磁盤后,裸金屬系統(tǒng)內(nèi)看到的磁盤列表,nvme2n1是新添加的磁盤:

3.4 刪除磁盤

刪除磁盤前,裸金屬系統(tǒng)內(nèi)看到的磁盤列表:

刪除磁盤后,裸金屬系統(tǒng)內(nèi)看到的磁盤列表,nvme2n1被刪除:

3.5 存儲 iops 和吞吐

測試結(jié)果如下:

分類 測試項(xiàng) 寫iops 寫吞吐 讀iops 讀吞吐
隨機(jī)讀寫 NVMe-OF+DPU+NVMe?盤 682k 2662MiB/s 736k 2868MiB/s
NVMe本地物理盤 684k 2667MiB/s 980k 3849MiB/s
順序讀寫 NVMe-OF+DPU+NVMe?盤 682k 2667MiB/s 705k 2761MiB/s
NVMe本地物理盤 686k 2673MiB/s 991k 3892MiB/s

各測試項(xiàng)說明:

  1. 測試項(xiàng)中的NVMe-OF均指NVMe-OF over RDMA
  2. NVMe-OF+DPU+NVMe盤:基于 DPU 通過NVMe-OF協(xié)議連接Target,Target 后端是 NVMe物理盤
  3. NVMe物理盤:直接對NVMe物理盤進(jìn)行測試

可以看到,基于NVMe-OF的卸載方式下,DPU可以達(dá)到和NVMe本地盤近似的性能,幾乎沒有性能損耗。

4 方案優(yōu)勢

基于DPU的方案相較于傳統(tǒng)的Ironic裸金屬方案,在多個方面展現(xiàn)出了顯著的優(yōu)勢。以下是這些優(yōu)勢的詳細(xì)描述:

a. 交付效率顯著提升,大幅改善最終用戶體驗(yàn)

云盤啟動加速:傳統(tǒng)Ironic方案多采用本地盤啟動方式,這一過程涉及到鏡像的下載、安裝及配置,耗時較長,通常需要20分鐘左右。而基于DPU的方案采用云盤啟動,通過預(yù)先配置好的云盤鏡像,可以極大地縮短啟動時間至2-5分鐘。這種快速啟動能力對于需要快速部署和擴(kuò)展的云環(huán)境尤為重要,能夠顯著提升資源交付的效率和靈活性。

b. 存算分離,提升服務(wù)敏捷性和彈性

基于DPU的方案實(shí)現(xiàn)了存儲與計(jì)算資源的分離,這種設(shè)計(jì)使得計(jì)算和存儲資源可以獨(dú)立擴(kuò)展和優(yōu)化。當(dāng)業(yè)務(wù)需求變化時,可以迅速調(diào)整計(jì)算或存儲資源,而無需對整個系統(tǒng)進(jìn)行大規(guī)模的調(diào)整,從而提升了服務(wù)的敏捷性和彈性。此外,存算分離還有助于實(shí)現(xiàn)資源的更高效利用,避免了資源瓶頸和浪費(fèi)。這種特性對于需要快速響應(yīng)市場變化和靈活調(diào)整業(yè)務(wù)規(guī)模的云環(huán)境尤為重要。

c. 控制面與數(shù)據(jù)面分離,提升安全性和資源利用率

控制面與數(shù)據(jù)面下沉至DPU:通過將控制面和數(shù)據(jù)面處理任務(wù)下沉到DPU,不僅減輕了Host CPU的負(fù)擔(dān),還實(shí)現(xiàn)了對存儲網(wǎng)絡(luò)和后端存儲細(xì)節(jié)的隱藏。這種設(shè)計(jì)提升了系統(tǒng)的安全性,防止了潛在的安全威脅,還使得Host側(cè)的資源能夠完全專注于業(yè)務(wù)處理,從而提高了資源利用率。

不侵入用戶鏡像:基于DPU的方案不依賴于用戶鏡像進(jìn)行功能實(shí)現(xiàn),避免了因鏡像更新或修改導(dǎo)致的兼容性問題,同時也簡化了用戶鏡像的管理和維護(hù)工作。

d. 架構(gòu)簡化,降低復(fù)雜度和維護(hù)成本

不依賴PXE等組件:傳統(tǒng)Ironic方案可能需要依賴PXE(預(yù)啟動執(zhí)行環(huán)境)等組件來實(shí)現(xiàn)網(wǎng)絡(luò)啟動和鏡像部署。而基于DPU的方案則通過內(nèi)置的網(wǎng)絡(luò)和存儲功能,實(shí)現(xiàn)了更為簡潔的架構(gòu)設(shè)計(jì),降低了系統(tǒng)的復(fù)雜度和維護(hù)成本。

e. 性能優(yōu)化,接近本地盤體驗(yàn)

硬件加速利用:DPU內(nèi)置了多種硬件加速功能,能夠充分利用這些特性來提升云盤的性能表現(xiàn)。從測試數(shù)據(jù)中可以看到,在基于DPU的方案中,云盤性能可以達(dá)到接近甚至等同于本地盤的性能水平,為用戶提供了更加流暢和高效的數(shù)據(jù)訪問體驗(yàn)。

綜上所述,基于DPU的方案在交付效率、存儲支持、安全性與資源利用率、架構(gòu)簡化以及性能優(yōu)化等方面均展現(xiàn)出了顯著的優(yōu)勢,為裸金屬云服務(wù)的發(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),還對行業(yè)趨勢具備敏銳的洞察力,該團(tuán)隊(duì)致力于探索、設(shè)計(jì)、開發(fā)、推廣可落地的高性能云計(jì)算解決方案,幫助最終客戶加速數(shù)字化轉(zhuǎn)型,提升業(yè)務(wù)效能,同時降低運(yùn)營成本。

?

中科馭數(shù)

中科馭數(shù)

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

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

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜