基于DPU的Openstack裸金属服务网络解决方案

  • 10/22 14:47

1.  方案背景和挑战

裸金属服务器作为一类特别设计的计算类云服务,向最终用户提供了云端部署的专属物理服务器,这意味着最终用户不再需要与其他租户共享硬件资源,从而确保了资源的独占性、性能的最优化以及数据的最高级别安全。

裸金属服务器作为云上资源的重要部分,其网络需要与云主机和容器同样连接在VPC下,并且能够像云主机和容器一样使用云上的网络功能和能力。

当前,基于OpenStack的裸金属服务实现主要依赖于Ironic组件,并通过OpenStack的Neutron网络组件来实现裸金属服务器的网络连接。在该方案下,裸金属服务器的网络使用的是物理网卡,因此网络配置依赖于物理上的网络拓扑(例如需要知道裸金属网卡连接到交换机的端口编号),物理网络拓扑连接完成后就确定了,为了实现 VPC 等网络功能,需要对裸金属服务器的上联交换机做一些动态配置,以实现网络的切换。

Neutron原本是为虚拟机网络环境设计的,因此在应用于裸金属服务时,便暴露出了不足之处,带来了一系列的问题与挑战,具体体现在以下几个方面:

a. 网络管理复杂性增加,提高了管理难度

- VLAN支持要求:Ironic的网络实现需要物理交换机的VLAN支持,并且要实现VLAN和VPC的匹配和转换,以确保裸金属服务器能够正确地接入网络。这不仅增加了网络配置的复杂性,也提高了管理难度。

- 拓扑要求:物理网络拓扑需要能够支持VLAN的划分和管理,这可能涉及到复杂的网络设备配置和维护。

b. SDN集成困难,降低网络性能

- 流量转换需求:在裸金属场景下,直接使用软件定义网络(SDN)技术存在困难。通常需要将网络流量引导到一个特定的网络节点进行转换,这不仅会降低网络性能,还会增加网络管理的复杂度。

- 性能与管理权衡:这种流量转换机制可能导致网络性能下降,同时也增加了网络管理和维护的工作量。

c. 安全组实现困难,增加运维成本

- 安全组规则不适用:传统裸金属服务器直接连接到物理交换机,导致OpenStack的安全组规则无法直接应用于裸金属服务器。安全组是OpenStack中用于控制网络流量的安全机制,其规则定义了允许或拒绝的网络流量类型。

- 交换机防火墙规则影响:如果尝试通过物理交换机的防火墙规则来实现类似的安全控制,可能会影响到其他业务的正常运行,并且会大幅增加运维成本。

d. 网卡热插拔支持不足,限制了系统灵活性

- 物理限制:传统裸金属服务器的物理网卡不支持热插拔功能。这意味着在不关闭服务器的情况下,无法添加或移除网络适配器,这限制了系统的灵活性和服务的可用性。

- 维护与更新挑战:缺乏热插拔支持使得网络维护和更新变得更加困难,可能需要计划停机时间,从而影响服务的连续性和用户体验。

基于OpenStack的裸金属服务网络实现,虽然借助Ironic和Neutron组件获得了良好的表现,但在网络管理、SDN集成、安全组应用以及网卡热插拔支持等方面仍面临一系列挑战。这些挑战需要通过技术创新和架构优化来逐步解决,以提高裸金属服务的性能、安全性和管理效率。

2.  方案介绍

2.1. 整体方案架构

为了解决上文提到的问题与挑战,本方案创新性的引入了DPU组件,并仍然使用Openstack Ironic node资源来管理裸金属实例。在开源Ironic组件(ironic-api、ironic-conductor)之外,我们自研了Ironic-dpu-agent组件,运行在每个裸金属节点的DPU Soc中,用于管理裸金属实例的存储、网络资源。

整体方案架构如下图:

各组件作用如下:

  • Ironic-api:裸金属rest api服务。
  • Ironic-conductor:裸金属实例的任务控制服务,负责裸金属开关机、重启、部署等任务。
  • Ironic-dpu-agent:运行在DPU Soc上,与Ironic-conductor通过RPC通信,负责管理本节点裸金属实例的存储、网络资源。
  • Neutron-server:OpenStack网络服务,为裸金属实例提供network、subnet、port管理功能。

2.2. 方案详细描述

在基于DPU的OpenStack裸金属网络方案中,裸金属服务器的网络配置完全由DPU卡负责,裸金属服务器本身不需要任何传统的物理网卡。DPU卡为裸金属服务器提供物理功能(PF)、虚拟功能(VF)或可分割功能(SF)设备,作为网络接口。这些网络接口完全由DPU的系统级芯片(SOC)侧的Open vSwitch(OVS)进行配置,无需依赖外部物理交换机即可实现网络连接。

在该方案中,DPU负责处理包括VXLAN、Geneve等在内的各种虚拟网络协议,能够支持虚拟机与裸金属服务器之间的网络互通,保证灵活且高效的网络连接。这种网络拓扑简化了裸金属服务器的部署流程,因为服务器无需依赖外部交换设备,所有的网络管理和配置工作都在DPU卡上完成,大大减少了对传统物理网络基础设施的依赖。

在控制节点上,OpenStack的Neutron组件负责网络服务的管理,并通过OVN(Open Virtual Network)来与DPU通信。DPU的SOC上运行着OVS(Open vSwitch),这是整个方案中负责网络流量转发和管理的关键组件。同时,DPU的SOC侧还运行着OVN控制器(ovn-controller)和Ironic-dpu-agent,分别负责虚拟网络的控制和裸金属网络的管理。

OVN控制器:负责与Neutron进行通信,并根据网络需求配置OVS,实现裸金属服务器与虚拟机之间的网络连接。

Ironic-dpu-agent:这是Ironic服务的一个代理,它通过控制和配置OVS上的端口,管理DPU网络资源,负责为裸金属服务器分配和管理网络接口。

在这个架构下,DPU卡上提供的PF、VF等网络设备通过其代表接口(pfRep和vfRep)连接到OVS。裸金属服务器通过这些网络设备与DPU卡通信,进而连接到整个虚拟网络系统中。OVS通过在SOC上运行的p0和p1端口负责管理所有的网络流量,从而使裸金属服务器能够无缝地加入虚拟网络。

这种架构极大地提升了裸金属服务器的网络性能,同时减少了对外部交换机的依赖,降低了部署成本和复杂度。在实际应用中,这种基于DPU的网络架构可以大幅提高数据中心的资源利用率,并为多租户环境下的虚拟机和裸金属服务器提供高效、安全的网络隔离和互通。

裸金属node节点绑定创建的虚拟port,Neutron Server 通过 OVN Plugin 将端口信息写入 OVN NB DB,当Ironic-dpu-agent 获得node绑定port信息后,配置OVS的interface中的iface-id,然后通过ovn-controller下发流表,跟虚拟机网络流标下发方式一致。

网卡热插拔

在原生Ironic中,可以实现一定程度网卡热插拔,但是要求机器上有冗余的网卡设备,这些网卡设备可以在需要的时候被启用/禁用。这种方式也有一些缺陷,一方面这不够灵活,不同的用户需求不一样,冗余多少块网卡不便于确定。另一方面,如果冗余的网卡没有得到使用,造成了资源浪费。

在基于 DPU 的方案中,如前文所述,裸金属的网卡是由DPU的 PF/VF/SF 设备提供的,而 DPU 往往提供了大量的 VF/SF(数百个以上),足够满足用户的需求。那么网卡的热插拔就变成了 PF/VF/SF 设备的动态插拔和配置问题,这仍然是由 Ironic-dpu-agent组件完成的。

3.  测试与验证

3.1.  网络拓扑

以下是示例网络拓扑:

其中,普通业务流量和存储流量最好划分VLAN。BMC 带外管理网和千兆管理网需要打通,测试时也可简单用同一个网络。

3.2.  软件环境

依赖以下软件环境:

类别 名称 版本 来源 备注
OpenStack集群 OpenStack zed 开源社区
网络 neutron zed 内部版本
存储 volume-attacher cloudV5.4-6 内部版本
opi-bridge cloudV2-4 内部版本
裸金属组件 ironic zed 内部版本
ironic-dpu-agent cloudV1.0 内部版本

3.3.  测试用例及结果

3.3.1.  创建资源

  • 创建网络、子网、路由器、链接路由器和子网
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>

  • 创建flavor
openstack flavor create <flavor_name> --ram <ram_in_mb> --vcpus <vcpus> --disk <disk_in_gb>

###裸机属性设置

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>

  • 创建镜像
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>

  • 创建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.  创建裸金属服务器实例

创建裸金属实例与创建虚拟机操作流程一致,选择裸金属的flavor即可:

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

3.3.3.  安全组

创建裸金属实例与创建虚拟机安全组添加一样,创建port的时候选择一个安全组即可:

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

3.3.4.  连通性验证

在同一个net01下创建VM、BM,然后验证BM和VM的网络互通情况

创建VM:

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

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

登录通过bmc登录裸机bm-01验证:

ping  <vm_ip>

3.3.5.  网卡热插拔

先卸载port,再添加port:

openstack port delete-port01

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

4.  方案总结

DPU赋能的Openstack裸金属网络解决方案,在以下几个方面具有显著优势:

1)Overlay网络终结在DPU侧,降低网络的复杂性:通过在DPU侧终结Overlay网络,可以减少中间网络元素,摆脱了对物理交换机的依赖,简化整体网络拓扑架构。这种方式不仅降低了网络的复杂性,提高了网络的可管理性,还减少了设备成本和运维成本,使整个网络更加经济高效。

2)支持统一的SDN控制器,提升网络灵活性和响应速度:采用统一的SDN控制器实现策略下发和调度,SDN网络不仅支持VLAN还可以使用Vxlan和Geneve,摆脱VLAN网络4096的限制。同时,有效简化SDN软件架构,提高网络的灵活性和响应速度,降低维护和管理的复杂性。

3)通过SDN实现安全组,降低运维成本:通过SDN网络的ACL功能,可以在不依赖物理交换机的情况下实现安全组功能。这样可以直接在DPU上应用安全规则,而不需要通过物理交换机的防火墙规则,从而避免对其他业务的影响并降低运维成本。

4)支持网络接口热插拔,提升网络设备灵活性:利用DPU的动态特性,可以实现网络接口的热插拔。这意味着在不影响服务器运行的情况下,可以增加新的网络接口或移除现有接口,从而提高系统的灵活性和服务的可用性。

综上所述,DPU驱动的Openstack裸金属网络方案通过一系列创新设计,不仅提高了网络的可管理性、可扩展性和安全性,还增强了系统的灵活性和服务的可用性,从而为裸金属服务器提供了更加强大和高效的网络支持。

本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。

人工客服
(售后/吐槽/合作/交友)

相关资讯

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. 9.
  10. 10.
  11. 11.
  12. 12.
  13. 13.
  14. 14.
  15. 15.
  16. 16.
  17. 17.
  18. 18.
  19. 19.
  20. 20.
查看全部20条内容