加入星計(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.? 測試與驗(yàn)證
    • 4.? 方案總結(jié)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于DPU的Openstack裸金屬服務(wù)網(wǎng)絡(luò)解決方案

11小時(shí)前
327
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

裸金屬服務(wù)器作為一類特別設(shè)計(jì)的計(jì)算類云服務(wù),向最終用戶提供了云端部署的專屬物理服務(wù)器,這意味著最終用戶不再需要與其他租戶共享硬件資源,從而確保了資源的獨(dú)占性、性能的最優(yōu)化以及數(shù)據(jù)的最高級(jí)別安全。

裸金屬服務(wù)器作為云上資源的重要部分,其網(wǎng)絡(luò)需要與云主機(jī)和容器同樣連接在VPC下,并且能夠像云主機(jī)和容器一樣使用云上的網(wǎng)絡(luò)功能和能力。

當(dāng)前,基于OpenStack的裸金屬服務(wù)實(shí)現(xiàn)主要依賴于Ironic組件,并通過OpenStack的Neutron網(wǎng)絡(luò)組件來實(shí)現(xiàn)裸金屬服務(wù)器的網(wǎng)絡(luò)連接。在該方案下,裸金屬服務(wù)器的網(wǎng)絡(luò)使用的是物理網(wǎng)卡,因此網(wǎng)絡(luò)配置依賴于物理上的網(wǎng)絡(luò)拓?fù)?/a>(例如需要知道裸金屬網(wǎng)卡連接到交換機(jī)的端口編號(hào)),物理網(wǎng)絡(luò)拓?fù)溥B接完成后就確定了,為了實(shí)現(xiàn) VPC 等網(wǎng)絡(luò)功能,需要對(duì)裸金屬服務(wù)器的上聯(lián)交換機(jī)做一些動(dòng)態(tài)配置,以實(shí)現(xiàn)網(wǎng)絡(luò)的切換。

Neutron原本是為虛擬機(jī)網(wǎng)絡(luò)環(huán)境設(shè)計(jì)的,因此在應(yīng)用于裸金屬服務(wù)時(shí),便暴露出了不足之處,帶來了一系列的問題與挑戰(zhàn),具體體現(xiàn)在以下幾個(gè)方面:

a. 網(wǎng)絡(luò)管理復(fù)雜性增加,提高了管理難度

- VLAN支持要求:Ironic的網(wǎng)絡(luò)實(shí)現(xiàn)需要物理交換機(jī)的VLAN支持,并且要實(shí)現(xiàn)VLAN和VPC的匹配和轉(zhuǎn)換,以確保裸金屬服務(wù)器能夠正確地接入網(wǎng)絡(luò)。這不僅增加了網(wǎng)絡(luò)配置的復(fù)雜性,也提高了管理難度。

- 拓?fù)湟螅何锢砭W(wǎng)絡(luò)拓?fù)湫枰軌蛑С諺LAN的劃分和管理,這可能涉及到復(fù)雜的網(wǎng)絡(luò)設(shè)備配置和維護(hù)。

b. SDN集成困難,降低網(wǎng)絡(luò)性能

- 流量轉(zhuǎn)換需求:在裸金屬場景下,直接使用軟件定義網(wǎng)絡(luò)(SDN)技術(shù)存在困難。通常需要將網(wǎng)絡(luò)流量引導(dǎo)到一個(gè)特定的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行轉(zhuǎn)換,這不僅會(huì)降低網(wǎng)絡(luò)性能,還會(huì)增加網(wǎng)絡(luò)管理的復(fù)雜度。

- 性能與管理權(quán)衡:這種流量轉(zhuǎn)換機(jī)制可能導(dǎo)致網(wǎng)絡(luò)性能下降,同時(shí)也增加了網(wǎng)絡(luò)管理和維護(hù)的工作量。

c. 安全組實(shí)現(xiàn)困難,增加運(yùn)維成本

- 安全組規(guī)則不適用:傳統(tǒng)裸金屬服務(wù)器直接連接到物理交換機(jī),導(dǎo)致OpenStack的安全組規(guī)則無法直接應(yīng)用于裸金屬服務(wù)器。安全組是OpenStack中用于控制網(wǎng)絡(luò)流量的安全機(jī)制,其規(guī)則定義了允許或拒絕的網(wǎng)絡(luò)流量類型。

- 交換機(jī)防火墻規(guī)則影響:如果嘗試通過物理交換機(jī)的防火墻規(guī)則來實(shí)現(xiàn)類似的安全控制,可能會(huì)影響到其他業(yè)務(wù)的正常運(yùn)行,并且會(huì)大幅增加運(yùn)維成本。

d. 網(wǎng)卡熱插拔支持不足,限制了系統(tǒng)靈活性

- 物理限制:傳統(tǒng)裸金屬服務(wù)器的物理網(wǎng)卡不支持熱插拔功能。這意味著在不關(guān)閉服務(wù)器的情況下,無法添加或移除網(wǎng)絡(luò)適配器,這限制了系統(tǒng)的靈活性和服務(wù)的可用性。

- 維護(hù)與更新挑戰(zhàn):缺乏熱插拔支持使得網(wǎng)絡(luò)維護(hù)和更新變得更加困難,可能需要計(jì)劃停機(jī)時(shí)間,從而影響服務(wù)的連續(xù)性和用戶體驗(yàn)。

基于OpenStack的裸金屬服務(wù)網(wǎng)絡(luò)實(shí)現(xiàn),雖然借助Ironic和Neutron組件獲得了良好的表現(xiàn),但在網(wǎng)絡(luò)管理、SDN集成、安全組應(yīng)用以及網(wǎng)卡熱插拔支持等方面仍面臨一系列挑戰(zhàn)。這些挑戰(zhàn)需要通過技術(shù)創(chuàng)新和架構(gòu)優(yōu)化來逐步解決,以提高裸金屬服務(wù)的性能、安全性和管理效率。

2.? 方案介紹

2.1. 整體方案架構(gòu)

為了解決上文提到的問題與挑戰(zhàn),本方案創(chuàng)新性的引入了DPU組件,并仍然使用Openstack Ironic node資源來管理裸金屬實(shí)例。在開源Ironic組件(ironic-api、ironic-conductor)之外,我們自研了Ironic-dpu-agent組件,運(yùn)行在每個(gè)裸金屬節(jié)點(diǎn)的DPU Soc中,用于管理裸金屬實(shí)例的存儲(chǔ)、網(wǎng)絡(luò)資源。

整體方案架構(gòu)如下圖:

各組件作用如下:

  • 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í)例的存儲(chǔ)、網(wǎng)絡(luò)資源。
  • Neutron-server:OpenStack網(wǎng)絡(luò)服務(wù),為裸金屬實(shí)例提供network、subnet、port管理功能。

2.2. 方案詳細(xì)描述

在基于DPU的OpenStack裸金屬網(wǎng)絡(luò)方案中,裸金屬服務(wù)器的網(wǎng)絡(luò)配置完全由DPU卡負(fù)責(zé),裸金屬服務(wù)器本身不需要任何傳統(tǒng)的物理網(wǎng)卡。DPU卡為裸金屬服務(wù)器提供物理功能(PF)、虛擬功能(VF)或可分割功能(SF)設(shè)備,作為網(wǎng)絡(luò)接口。這些網(wǎng)絡(luò)接口完全由DPU的系統(tǒng)級(jí)芯片(SOC)側(cè)的Open vSwitch(OVS)進(jìn)行配置,無需依賴外部物理交換機(jī)即可實(shí)現(xiàn)網(wǎng)絡(luò)連接。

在該方案中,DPU負(fù)責(zé)處理包括VXLAN、Geneve等在內(nèi)的各種虛擬網(wǎng)絡(luò)協(xié)議,能夠支持虛擬機(jī)與裸金屬服務(wù)器之間的網(wǎng)絡(luò)互通,保證靈活且高效的網(wǎng)絡(luò)連接。這種網(wǎng)絡(luò)拓?fù)浜喕寺憬饘俜?wù)器的部署流程,因?yàn)榉?wù)器無需依賴外部交換設(shè)備,所有的網(wǎng)絡(luò)管理和配置工作都在DPU卡上完成,大大減少了對(duì)傳統(tǒng)物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的依賴。

在控制節(jié)點(diǎn)上,OpenStack的Neutron組件負(fù)責(zé)網(wǎng)絡(luò)服務(wù)的管理,并通過OVN(Open Virtual Network)來與DPU通信。DPU的SOC上運(yùn)行著OVS(Open vSwitch),這是整個(gè)方案中負(fù)責(zé)網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)和管理的關(guān)鍵組件。同時(shí),DPU的SOC側(cè)還運(yùn)行著OVN控制器(ovn-controller)和Ironic-dpu-agent,分別負(fù)責(zé)虛擬網(wǎng)絡(luò)的控制和裸金屬網(wǎng)絡(luò)的管理。

OVN控制器:負(fù)責(zé)與Neutron進(jìn)行通信,并根據(jù)網(wǎng)絡(luò)需求配置OVS,實(shí)現(xiàn)裸金屬服務(wù)器與虛擬機(jī)之間的網(wǎng)絡(luò)連接。

Ironic-dpu-agent:這是Ironic服務(wù)的一個(gè)代理,它通過控制和配置OVS上的端口,管理DPU網(wǎng)絡(luò)資源,負(fù)責(zé)為裸金屬服務(wù)器分配和管理網(wǎng)絡(luò)接口。

在這個(gè)架構(gòu)下,DPU卡上提供的PF、VF等網(wǎng)絡(luò)設(shè)備通過其代表接口(pfRep和vfRep)連接到OVS。裸金屬服務(wù)器通過這些網(wǎng)絡(luò)設(shè)備與DPU卡通信,進(jìn)而連接到整個(gè)虛擬網(wǎng)絡(luò)系統(tǒng)中。OVS通過在SOC上運(yùn)行的p0和p1端口負(fù)責(zé)管理所有的網(wǎng)絡(luò)流量,從而使裸金屬服務(wù)器能夠無縫地加入虛擬網(wǎng)絡(luò)。

這種架構(gòu)極大地提升了裸金屬服務(wù)器的網(wǎng)絡(luò)性能,同時(shí)減少了對(duì)外部交換機(jī)的依賴,降低了部署成本和復(fù)雜度。在實(shí)際應(yīng)用中,這種基于DPU的網(wǎng)絡(luò)架構(gòu)可以大幅提高數(shù)據(jù)中心的資源利用率,并為多租戶環(huán)境下的虛擬機(jī)和裸金屬服務(wù)器提供高效、安全的網(wǎng)絡(luò)隔離和互通。

裸金屬node節(jié)點(diǎn)綁定創(chuàng)建的虛擬port,Neutron Server 通過 OVN Plugin 將端口信息寫入 OVN NB DB,當(dāng)Ironic-dpu-agent 獲得node綁定port信息后,配置OVS的interface中的iface-id,然后通過ovn-controller下發(fā)流表,跟虛擬機(jī)網(wǎng)絡(luò)流標(biāo)下發(fā)方式一致。

網(wǎng)卡熱插拔

在原生Ironic中,可以實(shí)現(xiàn)一定程度網(wǎng)卡熱插拔,但是要求機(jī)器上有冗余的網(wǎng)卡設(shè)備,這些網(wǎng)卡設(shè)備可以在需要的時(shí)候被啟用/禁用。這種方式也有一些缺陷,一方面這不夠靈活,不同的用戶需求不一樣,冗余多少塊網(wǎng)卡不便于確定。另一方面,如果冗余的網(wǎng)卡沒有得到使用,造成了資源浪費(fèi)。

在基于 DPU 的方案中,如前文所述,裸金屬的網(wǎng)卡是由DPU的 PF/VF/SF 設(shè)備提供的,而 DPU 往往提供了大量的 VF/SF(數(shù)百個(gè)以上),足夠滿足用戶的需求。那么網(wǎng)卡的熱插拔就變成了 PF/VF/SF 設(shè)備的動(dòng)態(tài)插拔和配置問題,這仍然是由 Ironic-dpu-agent組件完成的。

3.? 測試與驗(yàn)證

3.1.? 網(wǎng)絡(luò)拓?fù)?/h3>

以下是示例網(wǎng)絡(luò)拓?fù)洌?/p>

其中,普通業(yè)務(wù)流量和存儲(chǔ)流量最好劃分VLAN。BMC 帶外管理網(wǎng)和千兆管理網(wǎng)需要打通,測試時(shí)也可簡單用同一個(gè)網(wǎng)絡(luò)。

3.2.? 軟件環(huán)境

依賴以下軟件環(huán)境:

類別 名稱 版本 來源 備注
OpenStack集群 OpenStack zed 開源社區(qū)
網(wǎng)絡(luò) neutron zed 內(nèi)部版本
存儲(chǔ) volume-attacher cloudV5.4-6 內(nèi)部版本
opi-bridge cloudV2-4 內(nèi)部版本
裸金屬組件 ironic zed 內(nèi)部版本
ironic-dpu-agent cloudV1.0 內(nèi)部版本

3.3.? 測試用例及結(jié)果

3.3.1.??創(chuàng)建資源

  • 創(chuàng)建網(wǎng)絡(luò)、子網(wǎng)、路由器、鏈接路由器和子網(wǎng)
openstack network create <network_name>

openstack subnet create --network <network_name>

--subnet-range <subnet_cidr>

--gateway <gateway_ip> --dns-nameserver <dns_ip> <subnet_name>

##路由器

openstack router create <router_name>

###鏈接

openstack router add subnet <router_name> <subnet_name>

  • 創(chuàng)建flavor
openstack flavor create <flavor_name> --ram <ram_in_mb> --vcpus <vcpus> --disk <disk_in_gb>

###裸機(jī)屬性設(shè)置

openstack flavor set --property resources:VCPU=<vcpus>

--property resources:MEMORY_MB=<ram_in_mb>

--property resources:DISK_GB=<disk_in_gb>

--property capabilities:boot_option=local <flavor_name>

  • 創(chuàng)建鏡像
openstack image create <image_name>

--disk-format raw

--container-format bare

--file <path_to_image_file>

--public
openstack image set --property hypervisor_type=baremetal <image_name>

  • 創(chuàng)建node
openstack baremetal node create

--driver <driver_name>

--driver-info ipmi_address=<bmc_ip_address>

--driver-info ipmi_username=<bmc_username>

--driver-info ipmi_password=<bmc_password>

--property cpus=<cpu_count>

--property memory_mb=<memory_in_mb>

--property local_gb=<disk_size_in_gb>

--property cpu_arch=<architecture>

3.3.2.? 創(chuàng)建裸金屬服務(wù)器實(shí)例

創(chuàng)建裸金屬實(shí)例與創(chuàng)建虛擬機(jī)操作流程一致,選擇裸金屬的flavor即可:

openstack server create --flavor bm-flavor-01 --image centos8.5 --boot-from-volume --network net01 bm-01

3.3.3.??安全組

創(chuàng)建裸金屬實(shí)例與創(chuàng)建虛擬機(jī)安全組添加一樣,創(chuàng)建port的時(shí)候選擇一個(gè)安全組即可:

openstack port create --network net01 --vnic-type direct port01 --security-group default

3.3.4.??連通性驗(yàn)證

在同一個(gè)net01下創(chuàng)建VM、BM,然后驗(yàn)證BM和VM的網(wǎng)絡(luò)互通情況

創(chuàng)建VM:

openstack port create --network net01 --vnic-type direct? port01

openstack server create --flavor test-flavor- --image centos8.5? --port port01 vm01

登錄通過bmc登錄裸機(jī)bm-01驗(yàn)證:

ping? <vm_ip>

3.3.5.??網(wǎng)卡熱插拔

先卸載port,再添加port:

openstack port delete-port01

openstack baremetal port set --node <node_id> --port <neutron_port_id>

4.? 方案總結(jié)

DPU賦能的Openstack裸金屬網(wǎng)絡(luò)解決方案,在以下幾個(gè)方面具有顯著優(yōu)勢(shì):

1)Overlay網(wǎng)絡(luò)終結(jié)在DPU側(cè),降低網(wǎng)絡(luò)的復(fù)雜性:通過在DPU側(cè)終結(jié)Overlay網(wǎng)絡(luò),可以減少中間網(wǎng)絡(luò)元素,擺脫了對(duì)物理交換機(jī)的依賴,簡化整體網(wǎng)絡(luò)拓?fù)浼軜?gòu)。這種方式不僅降低了網(wǎng)絡(luò)的復(fù)雜性,提高了網(wǎng)絡(luò)的可管理性,還減少了設(shè)備成本和運(yùn)維成本,使整個(gè)網(wǎng)絡(luò)更加經(jīng)濟(jì)高效。

2)支持統(tǒng)一的SDN控制器,提升網(wǎng)絡(luò)靈活性和響應(yīng)速度:采用統(tǒng)一的SDN控制器實(shí)現(xiàn)策略下發(fā)和調(diào)度,SDN網(wǎng)絡(luò)不僅支持VLAN還可以使用Vxlan和Geneve,擺脫VLAN網(wǎng)絡(luò)4096的限制。同時(shí),有效簡化SDN軟件架構(gòu),提高網(wǎng)絡(luò)的靈活性和響應(yīng)速度,降低維護(hù)和管理的復(fù)雜性。

3)通過SDN實(shí)現(xiàn)安全組,降低運(yùn)維成本:通過SDN網(wǎng)絡(luò)的ACL功能,可以在不依賴物理交換機(jī)的情況下實(shí)現(xiàn)安全組功能。這樣可以直接在DPU上應(yīng)用安全規(guī)則,而不需要通過物理交換機(jī)的防火墻規(guī)則,從而避免對(duì)其他業(yè)務(wù)的影響并降低運(yùn)維成本。

4)支持網(wǎng)絡(luò)接口熱插拔,提升網(wǎng)絡(luò)設(shè)備靈活性:利用DPU的動(dòng)態(tài)特性,可以實(shí)現(xiàn)網(wǎng)絡(luò)接口的熱插拔。這意味著在不影響服務(wù)器運(yùn)行的情況下,可以增加新的網(wǎng)絡(luò)接口或移除現(xiàn)有接口,從而提高系統(tǒng)的靈活性和服務(wù)的可用性。

綜上所述,DPU驅(qū)動(dòng)的Openstack裸金屬網(wǎng)絡(luò)方案通過一系列創(chuàng)新設(shè)計(jì),不僅提高了網(wǎng)絡(luò)的可管理性、可擴(kuò)展性和安全性,還增強(qiáng)了系統(tǒng)的靈活性和服務(wù)的可用性,從而為裸金屬服務(wù)器提供了更加強(qiáng)大和高效的網(wǎng)絡(luò)支持。

本方案來自于中科馭數(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)營成本。

中科馭數(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è)圖譜