tag 标签: 裸金属

相关博文
  • 热度 5
    2024-9-23 18:13
    279 次阅读|
    0 个评论
    1 方案背景和挑战 Openstack作为开源云计算领域的领军项目,凭借其强大的功能、灵活的架构以及活跃的社区支持,在全球范围内得到了广泛的采用。通过Openstack,企业和云服务提供商可以更加高效地管理和利用计算资源、存储资源和网络资源,实现业务的快速部署和灵活扩展,从而赢得市场竞争的先机。 Ironic作为Openstack的关键组件,提供了对裸金属服务的全面管理。通过Ironic,用户可以在云环境中直接控制和管理实体硬件,实现裸金属服务器的自动化部署、管理和监控。 原生的Ironic 采用本地物理盘进行启动,其首先将远程镜像下载并写入到本地物理盘中,然后再从本地盘启动进入系统。过程如下: 可以看到,其重点是通过方案具有以下问题和挑战: a. 部署启动周期长(20分钟左右),业务敏捷性低,用户体验差 (1)两次启动:在部署裸金属服务器时,首先会通过PXE启动一个小的、临时的系统环境,IPA会启动并执行部署任务。部署完成后,服务器会从已安装的操作系统启动。这两次启动过程增加了整体部署时间。 (2)镜像下载:IPA需要从Glance下载完整的用户镜像到内存中或临时存储,这个下载过程取决于镜像的大小和网络条件,可能会非常耗时。对于大型镜像或网络条件不佳的环境,这个步骤可能成为瓶颈。 (3)镜像写入本地盘:下载完镜像后,IPA还需要将这个镜像写入到服务器的本地磁盘上。这个过程也取决于磁盘的写入速度和镜像的大小,可能会进一步增加部署时间。 b. 消耗大量带宽,影响整体网络应用性能 全量下载系统镜像会消耗大量的网络带宽,尤其是在多节点部署或频繁更新镜像的场景下。这不仅增加了网络负载,还可能影响其他网络应用的性能。 c. 系统盘无法扩容,敏捷性和弹性低 在当前部署模型中,用户镜像被直接写入到服务器的本地磁盘上,并且通常是作为一个固定的分区或文件系统来配置的。这意味着如果后续需要增加系统盘的容量(例如,因为数据量增长或应用需求变化),可能需要重新部署整个服务器,这既耗时又复杂。 d. 依赖外部组件,增加系统复杂度和成本 部署过程依赖于多个外部组件,如PXE、TFTP、DHCP等,这些组件需要正确配置和维护。任何一个组件的故障都可能导致部署失败,增加了系统的复杂性和维护成本。 2 方案介绍 2.1 整体架构 为了解决OpenStack Ironic裸金属服务方案的问题,中科驭数基于DPU开发了ironic裸金属服务解决方案,整体架构图如下: 在本方案中,DPU支持裸金属服务器的网络和存储资源虚拟化,使得物理服务器能够像虚拟机一样灵活配置,动态添加或删除网卡、硬盘等资源。这为裸金属服务器提供了类似云服务的弹性,同时保持了物理机级别的性能。另外,DPU能够管理远程存储资源,如云盘,使得裸金属服务器可以使用云存储服务,同时通过DPU加速存储I/O,提高读写性能,使得云盘接近本地存储的体验。 本方案主要涉及glance、cinder、nova、neutron、ironic模块。仍然使用ironicnode资源管理裸金属实例。在开源ironic组件(ironic-api、ironic-conductor)之外,自研了ironic-dpu-agent组件,运行在每个裸金属节点的DPU Soc中,用于管理裸金属实例的存储、网络资源。本方案主要包含以下系统组件: Nova:对接ironic,为裸金属提供和虚拟机一致的操作。 Ironic-api:裸金属rest api服务。 Ironic-conductor:裸金属实例的任务控制服务,负责裸金属开关机、重启、部署等任务。 Ironic-dpu-agent:运行在DPU Soc上,与ironic-conductor通过RPC通信,负责管理本节点裸金属实例的存储、网络资源。在裸金属部署阶段,接收ironic-conductor下发的部署指令,在DPU内连接云盘并挂载到host。在裸金属运行时,接收ironic-conductor下发的添加、删除磁盘指令,为host动态添加、删除磁盘。\ Volume-attacher:负责裸金属磁盘的挂载、卸载操作。 Neutron:OpenStack网络服务,为裸金属实例提供network、subnet、port管理功能。 Cinder:OpenStack块存储服务,为裸金属实例提供云盘创建、删除等管理功能。 Glance:OpenStack镜像管理服务,为裸金属实例提供镜像上传、下载功能。 2.2 方案描述 在基于DPU的OpenStack裸金属服务方案下,实现了裸金属的部署启动、云盘热插拔、cloudinit、冷迁移等常用功能,以下对主要部分做详细描述,并和传统ironic方案进行部分对比。 2.2.1 基于DPU的无盘启动方案 在基于 DPU 的方案中,我们采用直接挂载云盘系统的方式,不使用本地盘,过程如下: nova-api接收到创建裸金属实例请求,调用nova-scheduler调度出ironic node。 nova-scheduler调用nova-compute孵化裸金属实例。 nova-compute根据指定的镜像,调用cinder创建出系统盘volume,cinder调用后端存储以快照方式克隆镜像卷,并不是完整拷贝,速度很快,一般在数秒内完成。 nova-compute的ironic virt driver根据指定的cinder volume在ironic中创建node的volume target,作为裸金属实例的云盘。之后调用ironic-api部署node。 ironic-conductor的dpu deploy driver调用node所对应的ironic-dpu-agent执行部署任务。 ironic-dpu-agent根据volume target在dpu内调用spdk映射云盘,给host侧挂载对应的系统盘。 系统盘挂载完成后,ironic-conductor通过BMC重启裸金属节点,此时BIOS能扫描到系统盘,启动进入系统,裸金属启动完成。 和 Ironic 传统方案相比,没有PXE过程,也只需启动一次。 2.2.2 存储对接 Ironic 原生存储对接方案: ironic的存储对接在host侧,host网络需和存储网络连通,且host中需安装相关组件,如下图: 为了完成云盘的挂载/卸载,host 中需要安装一个 ironic-agent,其调用 iscsi-initiator 或相应的存储客户端完成云盘的挂载/卸载操作。Ironic 的 StorageDriver 会配置好存储服务端,并调用 ironic-agent 完成云盘的操作。 基于DPU的存储对接方案: 在基于DPU 的方案中,系统盘和数据盘统一使用云盘,云盘由volume-attacher组件进行分配挂载。裸金属上看到的盘,是DPU 上的 spdk 通过 PCIE 模拟的设备。存储网络也是由 ovs 连接的和配置的。如下图所示: 相比于 Ironic 方案,DPU 方案有以下优势: 存储网络统一走DPU侧,隐藏了存储网络的细节,并可利用 DPU 进行网络加速; 兼容cinder后端存储,存储系统无需适配。云盘是通过cinder创建的,volume-attacher配置spdk连接云盘,模拟出对应的磁盘给到裸金属。 2.2.3 硬盘热插拔 如Ironic存储对接方案中所示,Ironic 中的 StorageDriver 调用 host 中的 ironic-agent 完成硬盘热插拔,用户镜像需安装相关依赖。 在基于DPU 的方案中,由于裸金属上的盘是 DPU 通过PCIE 模拟的,因此,通过动态调整 DPU 上的 spdk 配置,即可实现硬盘的热插拔。 3 方案测试结果 3.1 创建裸金属实例 与创建虚拟机流程类似,选择裸金属的flavor和镜像进行创建。 可以看到bm01、bm02两个裸金属实例,均为active状态。通过nova创建裸金属实例,ironic node中会关联instance uuid。 3.2 部署启动时间 我们定义裸金属的部署启动时间为:下发创建裸金属实例的命令,到裸金属实例网络IP可以ping通的时间。 在联创万通 LCWT R7220 服务器上,镜像 OS 为 Ubuntu 22.04 Server,内核版本为5.15.0-106-generic 时测得的启动时间:从创建到可 ping 通共耗时 161 秒(2min41s)。 基于 DPU 的裸金属服务方案启动时间在 2-3min 内,具体耗时取决于服务器类型和镜像版本。相比之下,我们测试传统 Ironic 本地盘方式在 20min 以上。 3.3 添加磁盘 添加磁盘前,裸金属系统内看到的磁盘列表: 添加磁盘后,裸金属系统内看到的磁盘列表,nvme2n1是新添加的磁盘: 3.4 删除磁盘 删除磁盘前,裸金属系统内看到的磁盘列表: 删除磁盘后,裸金属系统内看到的磁盘列表,nvme2n1被删除: 3.5 存储 iops 和吞吐 测试结果如下: 分类 测试项 写iops 写吞吐 读iops 读吞吐 随机读写 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 各测试项说明: 测试项中的NVMe-OF均指NVMe-OF over RDMA NVMe-OF+DPU+NVMe盘:基于 DPU 通过NVMe-OF协议连接Target,Target 后端是 NVMe物理盘 NVMe物理盘:直接对NVMe物理盘进行测试 可以看到,基于NVMe-OF的卸载方式下,DPU可以达到和NVMe本地盘近似的性能,几乎没有性能损耗。 4 方案优势 基于DPU的方案相较于传统的Ironic裸金属方案,在多个方面展现出了显著的优势。以下是这些优势的详细描述: a. 交付效率显著提升,大幅改善最终用户体验 云盘启动加速:传统Ironic方案多采用本地盘启动方式,这一过程涉及到镜像的下载、安装及配置,耗时较长,通常需要20分钟左右。而基于DPU的方案采用云盘启动,通过预先配置好的云盘镜像,可以极大地缩短启动时间至2-5分钟。这种快速启动能力对于需要快速部署和扩展的云环境尤为重要,能够显著提升资源交付的效率和灵活性。 b. 存算分离,提升服务敏捷性和弹性 基于DPU的方案实现了存储与计算资源的分离,这种设计使得计算和存储资源可以独立扩展和优化。当业务需求变化时,可以迅速调整计算或存储资源,而无需对整个系统进行大规模的调整,从而提升了服务的敏捷性和弹性。此外,存算分离还有助于实现资源的更高效利用,避免了资源瓶颈和浪费。这种特性对于需要快速响应市场变化和灵活调整业务规模的云环境尤为重要。 c. 控制面与数据面分离,提升安全性和资源利用率 控制面与数据面下沉至DPU:通过将控制面和数据面处理任务下沉到DPU,不仅减轻了Host CPU的负担,还实现了对存储网络和后端存储细节的隐藏。这种设计提升了系统的安全性,防止了潜在的安全威胁,还使得Host侧的资源能够完全专注于业务处理,从而提高了资源利用率。 不侵入用户镜像:基于DPU的方案不依赖于用户镜像进行功能实现,避免了因镜像更新或修改导致的兼容性问题,同时也简化了用户镜像的管理和维护工作。 d. 架构简化,降低复杂度和维护成本 不依赖PXE等组件:传统Ironic方案可能需要依赖PXE(预启动执行环境)等组件来实现网络启动和镜像部署。而基于DPU的方案则通过内置的网络和存储功能,实现了更为简洁的架构设计,降低了系统的复杂度和维护成本。 e. 性能优化,接近本地盘体验 硬件加速利用:DPU内置了多种硬件加速功能,能够充分利用这些特性来提升云盘的性能表现。从测试数据中可以看到,在基于DPU的方案中,云盘性能可以达到接近甚至等同于本地盘的性能水平,为用户提供了更加流畅和高效的数据访问体验。 综上所述,基于DPU的方案在交付效率、存储支持、安全性与资源利用率、架构简化以及性能优化等方面均展现出了显著的优势,为裸金属云服务的发展提供了新的动力和方向。 本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。
  • 热度 2
    2024-6-21 18:46
    409 次阅读|
    0 个评论
    1. 方案背景和挑战 裸金属服务器是云上资源的重要部分,其网络需要与云上的虚拟机和容器互在同一个VPC下,并且能够像容器和虚拟机一样使用云的网络功能和能力。 传统的裸金属服务器使用开源的 OpenStack Ironic组件,配合 OpenStack Neutron网络实现。 传统方案1:在Neutron使用VLAN网络时,每个VPC网络会分配一个唯一的VLAN标签。通过在裸金属服务器的网卡上配置相应交换机端口的VLAN标签,使其与目标网络的VLAN标签匹配,就可以将裸金属服务器的网络切换到对应的VPC中。 尽管VLAN网络在流量管理和网络隔离方面具有较高效率,但也存在一些缺点: 可扩展性有限,仅支持4096个VLAN,不能应用在大规模和复杂环境中; 管理复杂,需要一致性配置和手动维护; 广播域限制,可能导致网络拥塞。 为了解决传统方案1的扩展性和管理灵活性问题,业界逐渐开始采用传统方案2:利用SDN交换机进行VXLAN/Geneve处理。裸金属服务器通过VLAN接入SDN交换机,后者负责对数据包进行封装,然后将流量引入对应的VPC网络,实现裸机与虚拟机互通。如下图所示: 这种方案相比传统方案1,提升了网络的可扩展性,通过Overlay网络提高了网络可扩展性、灵活性和安全性。但是,这种方案仍面临很多问题与挑战: 网络架构割裂问题: 该方案未能实现虚拟网络与裸机网络架构的统一管理,导致两者的配置和管理流程存在差异,增加了运维团队的学习成本和操作复杂度。这种割裂不仅减缓了网络变更的响应速度,还可能引发配置错误,影响网络的稳定性和一致性。 成本与维护负担: 依赖SDN交换机进行网络封装处理,虽然带来了技术上的进步,但同时也引入了额外的硬件采购与维护成本。这些交换机的部署与升级都需要专业的技术支持,且设备本身的价格不菲,长期来看对预算造成压力。此外,特定品牌和型号的SDN交换机可能限制了技术选型的自由度,影响网络架构的扩展性和兼容性,不利于技术迭代和未来升级。 灵活性与扩展性局限: 在该方案中,裸金属服务器仅通过单一物理网卡接入SDN交换机,这种连接方式的固定性,限制了网络接口的灵活性和扩展能力。尤其是缺乏热插拔支持,意味着在需要调整网络配置或增加网络带宽时,必须停机操作,这不仅影响了业务连续性,也降低了数据中心的运维效率和资源的快速调配能力。 综上所述,尽管传统方案2在一定程度上改善了网络的扩展性和安全性,但其存在的架构复杂性、较高的成本投入、以及有限的灵活性和扩展性,成为制约裸金属服务高效运营和未来发展的主要障碍。因此,探索更优化的网络解决方案,以实现网络架构的统一管理、降低成本负担、并增强灵活性与扩展性,显得尤为迫切。 2. 方案介绍 2.1. 整体方案架构 本方案基于DPU的网络能力,采用开源 Kubernetes底座架构,以OVN/OVS做为网络转发面,整体架构如下图所示: 在集群架构中,裸金属服务器既可以单独使用,也可以作为Worker节点加入Kubernetes集群,部署Pod或虚拟机(VM)。无论是作为裸金属服务器,还是作为Worker节点,网络I/O均由DPU卸载,并通过OVN进行统一管理。在使用SmartNIC或普通网卡的Worker节点中,OVN的流表管理和下发逻辑保持不变,仅将网络I/O交由主机侧处理。整体方案采用统一的OVN控制器进行策略下发和调度,实现DPU裸机网络与Pod/VM之间的网络互通。 本方案的关键组件为自研,包括以下组件: ●bmctl:类似于 kubectl的一个便于操作裸金属的命令行工具。 ● ycloud-cni:为裸金属提供虚拟网卡配置功能,实现CNI接口,并对本地 OVS网络进行配置。 ● ycloud-ovn-controller:该组件执行K8S内资源到OVN资源的翻译工作,其作用相当于SDN系统的控制平面。监听所有和网络相关的资源事件,并根据资源变化情况更新OVN内的逻辑网络。 2.1. 方案详细描述 裸金属的网络完全由DPU卡来配置,裸金属机器本身可以不携带任何物理网卡,而是通过DPU提供的PF/VF设备作为网卡设备。这些设备由DPU SOC(SOC可以灵活对软件升级和部署服务)侧的OVS进行配置,而不依赖外部交换机,可以实现VXLAN、Geneve等各种虚拟网络,本方案具有性能优越、灵活性强、部署简化、管理统一、高可扩展性等优点,是一种高效和可靠的裸金属网络解决方案。如下图所示: 在裸金属方案中,网卡被抽象为弹性虚机网卡(VNic)对象,由bm-controller根据用户需求创建VNic对象,并由Ycloud-cni组件将VNic绑定到裸金属。在这个过程中,bm-controller会为Host侧分配PF/VF,并调用OVS将相应的端口绑定到OVS网桥,进行必要的配置。这种方案无需更改交换机的配置,同时将控制面和数据面都卸载到DPU中处理,使得管理流程与虚拟网络中的POD/VM基本一致。唯一的区别在于本地虚拟网络设备的生成过程,使用Ycloud-cni-ds处理配置DPU本地网络。如下图所示: 总体来说,基于DPU的裸金属网络方案为裸金属服务器提供了灵活且高效的网络管理解决方案。 基于DPU的裸金属方案使用DPU的VF设备提供网卡功能,动态配置网卡,无需冗余网卡。Ycloud-cni组件负责管理PF/VF设备,实现网卡的动态插拔和配置。相比原生Ironic的冗余网卡需求,这种方案更灵活高效,避免资源浪费。 DPU提供数百个以上的VF,足以满足不同用户需求,使得网卡的热插拔变得简单而高效,提高资源利用率。 3. 测试与验证 3.1. 资源创建 与其他k8s资源的创建类似,裸金属的通过一个yaml描述进行创建,同时创建POD、VM: kubectlapply-fbm-xxx.yaml kubectlapply-fpod-xxx.yaml kubectlapply-fvm-xxx.yaml 裸机yaml中网络信息: VM yaml中的网络信息: POD yaml中的网络信息: 查看资源信息如下: 创建后,可通过kubectl命令查看: 裸机可以看到bm-01、bm-02及bm-node3三个裸金属实例,均为Running状态。 我们提供了类似 kubectl的一个 bmctl命令行工具,方便进行管理维护。通过该命令,可以方便的进行登录、重启、网卡插拔等操作: 3.2. 联通性 验证BM跟POD和VM的网络互通情况 裸机和POD互通: 裸机和VM互通: 3.3. 热插拔 通过提供的 bmctl命令行工具操作。 添加网卡: bmctl addinterface bm-02 bm-02-vnicpf 查看网卡: 删除网卡: bmctl delinterface bm-02 bm-02-vnicpf 查看网卡bm-02 3.4. 统一管理 K8S纳管DPU节点,且DPU SOC中使用OVS,可以看到pf0hpf使用的是驭数的驱动。 4. 总结 4.1. 统一管理方案优势 DPU赋能的裸金属网络解决方案,在以下几个方面具有显著优势: 精简网络架构,提升管理效率:通过将Overlay网络的终结点设在DPU层面,该方案有效精简了网络层级,削减了不必要的组件,从而大幅降低了网络架构的复杂度。这一设计不仅增强了网络的可管理性,还为未来的扩展需求奠定了灵活的基础。 优化设备配置,实现成本与效率双赢:采用DPU为核心的技术路径,该方案成功减少了对物理交换机的依赖,从根本上简化了网络设备配置,降低了硬件成本及运维开支。此举不仅经济高效,也为网络环境的轻量化与高效运作提供了有力支撑。 增强网络接口灵活性,确保业务连续性:得益于DPU的动态特性,支持网络接口的热插拔成为可能。这意味着在服务器持续运行的同时,可以根据需要轻松添加或移除网络接口,确保了业务的不间断与基础设施的即时适应性。 统一控制,深化SDN潜能:整合统一的SDN控制器,实现策略精准下发与智能调度,不仅超越了传统VLAN的限制,兼容VXLAN和Geneve等先进技术,还内置了SDN ACL安全策略,模拟云环境下的安全组功能,强化了网络安全防护。这一策略不仅统一了管理界面,简化了SDN软件栈,还显著提高了网络的灵活性和响应速度,降低了维护难度,确保了网络管理的高效与直观。 综上所述,DPU驱动的裸金属网络方案通过一系列创新设计,从根本上重塑了网络的部署与管理方式,为追求高效、灵活及安全的现代数据中心提供了强有力的支持。 本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。
  • 热度 3
    2024-6-14 12:01
    749 次阅读|
    0 个评论
    1. 背景介绍 1.1. 业务背景 在云原生技术迅速发展的当下,容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择,但裸金属服务器依然有其独特的价值和应用场景,是云原生架构中不可或缺的一部分。 裸金属服务器是一种高级的云计算解决方案,它成功地融合了传统云主机的灵活性、便捷性与物理服务器的强大性能与独立性。作为一类特别设计的计算类云服务,裸金属服务器直接向用户提供了云端部署的专属物理服务器,这意味着客户不再需要与其他租户共享硬件资源,从而确保了资源的独占性、性能的最优化以及数据的最高级别安全。 这种服务模式特别适合那些运行核心数据库系统、承载关键业务应用、实施大规模高性能计算项目或处理海量大数据分析的任务。裸金属服务器以其强大的计算能力,能够高效处理复杂的计算密集型作业,同时保证了低延迟和高吞吐量,是驱动企业数字化转型和创新业务场景的重要基石。 1.2. 问题与挑战 传统的裸金属服务通常采用Openstack Ironic架构,并通过PXE和TFTP实现安装引导流程,服务器的本地盘作为裸金属服务器的存储资源。这种方式导致了用户体验差、灵活性不足等诸多问题,难以满足用户越来越高的业务和技术需求。 Ironic 采用本地物理盘进行启动时,首先将远程镜像下载并写入到本地物理盘中,然后再从本地盘启动进入系统。流程如下: 可以看到,其重点是通过 PXE 启动一个小系统(在内存中运行),这个小系统中运行了 Ironic 定制的 ironic-python-agent(简称 IPA),IPA 负责从 Glance 下载真正的用户镜像,并写入到本地磁盘上。 物理服务器支持基于云盘的无盘启动方式,Ironic 也支持无盘启动,但目前支持的协议有限,仅支持 iSCSI Boot,且仍然依赖PXE。 目前在云原生生态中,提供裸金属服务的开源组件只有 metal3(或称Metal Kubed),但我们对其调研后发现,metal3只是抽象了裸金属的一个生命周期状态机,但裸金属本身的网络、存储、镜像管理等都依赖外部实现,而且目前仅有基于 Ironic 的实现。因此,相关的方案架构和 Ironic 没有区别。 因此,我们总结裸金属服务器部署和存储的关键痛点: 部署周期长:传统裸金属服务采用PXE+TFTP技术安装引导,部署时间长(约20分钟),主要耗时在三个环节:(1)两次启动,(2)镜像下载,(3)镜像写入本地盘。这导致了业务弹性不足和效率低下,最终用户体验较差。 存储能力弱:服务器本地盘作为系统盘,无法实现灵活扩容、整机克隆和冷迁移等操作;数据保存在本地,如果挂载云存储则需要侵入用户镜像,且云存储客户端运行于 Host,消耗计算资源,影响运维效率和使用体验。 在云原生生态下无解决方案:目前在Kubenetes架构下,无法支持裸金属服务,不能以云原生统一的方式实现裸金属服务器的创建、删除、重启等操作,导致管理效率低下,服务器资源利用率低。 2. 方案介绍 2.1. 整体架构 为了解决传统裸金属服务方案的问题,中科驭数基于DPU开发了全新的云原生裸金属服务解决方案,整体架构图如下: 在本方案中,DPU支持裸金属服务器的网络和存储资源虚拟化,使得物理服务器能够像虚拟机一样灵活配置,动态添加或删除网卡、硬盘等资源。这为裸金属服务器提供了类似云服务的弹性,同时保持了物理机级别的性能。另外,DPU能够管理远程存储资源,如云盘,使得裸金属服务器可以使用云存储服务,同时通过DPU加速存储I/O,提高读写性能,使得云盘接近本地存储的体验。 我们定义了一类名为 BareMetalMachine 的 CRD 资源来管理裸金属实例,并自研了相关的 Kubenetes组件管理裸金属的生命周期,包含以下关键组件: bmctl:类似于 kubectl 的一个便于操作裸金属的命令行工具。 bm-controller:裸金属核心控制器,工作在 master 节点。负责裸金属对象生命周期的管理,通过 BMC 来操作裸金属服务器的电源(开关机、重启等)状态。 bm-api:作为K8s APIServer 的扩展,封装裸金属的 api 接口,实现 console、重启等功能。 bm-handler:作为DaemonSet 部署在 DPU Soc 上,负责该DPU上裸金属的管理。 ycloud-cni:为裸金属提供虚拟网卡配置功能,调用 OVS 进行配置。 ycloud-csi:为裸金属提供云盘挂载功能,最终通过SPDK 进行配置,SPDK 通过 PCIe给裸金属模拟磁盘。是一个框架,对接到外部或开源的 CSI Driver。 以上组件均为自研,完全基于云原生生态,在用户平面实现和Kubevirt虚机类似的管理操作,填补了云原生生态中管理裸金属服务的空白。 2.2. 方案描述 在基于DPU的裸金属服务方案下,实现了裸金属的部署启动、云盘热插拔、热扩容、cloudinit、冷迁移、快照恢复及克隆等常用功能,以下对主要部分做详细描述,并和传统 Ironic 方案进行部分对比。 2.2.1.基于DPU的无盘启动方案 在基于 DPU 的方案中,我们采用直接挂载云盘系统的方式,不使用本地盘,过程如下: bm-controller 根据裸金属资源描述,创建系统盘对应的 PVC,指定从原始镜像所在的PVC 进行克隆。 ycloud-csi 监听到 PVC 创建后,调用后端存储以快照方式克隆原始镜像卷,创建新的镜像卷。远程存储卷拷贝的时候采用的是快照方式(COW),并不是完整拷贝,速度很快,一般在数秒内完成。 镜像卷创建完成后,ycloud-csi 将其映射到DPU,调用 SPDK 进行配置,给Host 侧挂载对应的系统盘。 系统盘挂载完成后,bm-controller 通过 BMC重启裸金属节点,此时BIOS 能扫描到系统盘,启动进入系统,裸金属启动完成。 与Ironic 方案相比,没有 PXE 过程,也只需启动一次。 2.2.2.存储对接 Ironic 存储对接方案: Ironic 的存储对接在 Host 侧,Host 网络需和存储网络连通,且Host 中如安装相关组件,如下图: 为了完成云盘的挂载/卸载,Host 中需要安装一个 ironic-agent 及相应存储客户端,ironic-agent调用存储客户端完成云盘的挂载/卸载操作。Ironic 的 StorageDriver 会配置好存储服务端,并调用 ironic-agent 完成云盘的操作。 基于DPU的存储对接方案: 在基于DPU 的方案中,存储对接在DPU 侧,如下图所示: 裸金属上看到的盘,是DPU 上的 SPDK 通过 PCIe 模拟的设备。存储网络也是由 OVS 连接的和配置的。为了便于系统组件通过统一的框架屏蔽存储的细节,我们开发了ycloud-csi 这个基于 DPU的通用框架,可以和多种外部 CSI Driver进行对接。ycloud-csi 和 API Server 通信,监听 PVC 的更新,通过 CSI Driver 调用后端存储,并调用 SPDK 给Host 配置相应的模拟盘。 与 Ironic 方案相比,存储相关组件全部下沉到了DPU侧,存储网络也统一通过 DPU 侧OVS 对外连接,Host侧屏蔽了网络细节。 2.2.3.硬盘热插拔 如Ironic存储对接方案中所示,Ironic 中的 StorageDriver 调用 Host 中的 ironic-agent 完成硬盘热插拔,用户镜像需安装相关依赖。 在基于 DPU 的方案中,由于裸金属上的盘是 DPU 通过PCIe 模拟的,因此,通过动态调整 DPU 上的 SPDK 配置,即可实现硬盘的热插拔。 2.2.4.硬盘热扩容 Ironic 中,支持云盘热扩容,在 Cinder 中调整存储卷的大小后,刷新客户端即可。 在基于 DPU 的方案中,ycloud-csi 调用存储完成后端存储卷的扩容,然后通过 SPDK 支持 bdev 的热扩容,并通过PCIe 通知到 Host侧。 3. 方案测试结果 3.1. K8s上裸金属创建及管理 与其他K8s 资源的创建类似,裸金属的通过一个yaml描述进行创建,类似以下命令: kubectl apply -f bm-xxx.yaml (由于描述yaml较长,这里不贴出) 创建后,可通过 kubectl 命令查看: 可以看到bm-01、bm-02及 bm-node3三个裸金属实例,均为 Running 状态。 我们提供了类似 kubectl 的一个 bmctl 命令行工具,方便进行管理维护。通过该命令,可以方便的进行开关机、重启、硬盘插拔、网卡插拔等操作: 3.2. 部署启动时间 我们定义裸金属的部署启动时间为:下发创建裸金属实例的命令,到裸金属实例网络 IP 可以ping 通的时间。 在联创万通 LCWT R7220 服务器上,镜像 OS 为 Ubuntu 22.04 Server,内核版本为 5.15.0-106-generic 时测得的启动时间: 从创建到可ping 通共耗时 153 秒(2min33s)。 基于DPU的裸金属服务方案启动时间在 2-3min 内,具体耗时取决于服务器类型和镜像版本。相比之下,我们测试传统 Ironic 本地盘方式在 20min 以上。 3.3. CPU消耗 在裸金属实例上对多块盘同时执行 fio 测试,查看 CPU 消耗,可以看到,由于存储组件全部卸载到了DPU侧,Host几乎没有 CPU 消耗(fio 和 top 进程除外): 相比之下,若 Host 直接运行 Ceph RBD客户端连接存储,fio 读写时,通过Top可看到 RBD 内核进程: 将以上Ceph RBD 内核进程的消耗CPU 百分百相加,可以看到,fio读写时消耗CPU为 235.2% ,超过200%(即2个物理Core),在更多的盘读写时,会消耗更多CPU: 3.4. 硬盘热插拔 本测试为在不关机重启的情况下插拔云盘,测试结果显示可正常操作。 拔盘前: 拔盘后: 插入新盘后: 3.5. 硬盘热扩容 热扩容测试时,使用 fio 对目标盘进行读写,扩容过程中fio 的数据操作不受影响。 扩容前: 扩容后: 4. 总结 4.1. 方案优势 本方案创新性地在云原生架构框架下融入裸金属服务,依托自研的Kubenetes插件,巧妙运用DPU技术,实现系统盘与数据盘的云端托管,显著优化资源配置与管理效能。其核心优势概览如下: •填补空白,引领创新:鉴于目前云原生生态系统中缺乏成熟的开源裸金属服务解决方案,本方案的成功实施不仅填补了这一市场和技术空白,更为行业树立了新的标杆,推动了云原生技术的深入发展与应用。 •加速部署,效率飞跃:依托DPU驱动的云盘启动机制,与传统的本地盘启动方式相比,本方案极大提升了裸金属服务器的交付速度,部署时间从20分钟锐减至大约2分钟,显著增强了业务敏捷性。 •深度整合,简化管理:通过DPU挂载云盘,将裸金属服务器的控制面与数据面下沉至DPU层面,无需依赖用户自定义镜像,且存储客户端功能与用户系统完全隔离,确保了环境的纯净与管理的便捷。 •强化安全,隐匿复杂性:该方案有效屏蔽存储网络架构及后端存储细节,既增强了存储层面的安全防御能力,又简化了运维视图,提升了整体系统的安全性和可维护性。 •资源优化,专注业务:通过将存储功能外移到DPU,彻底释放了裸金属服务器本身的资源约束,确保所有服务器资源都能集中服务于业务需求,极大提升了资源的有效利用率。 •性能卓越,逼近本地:充分利用DPU提供的硬件加速能力,本方案中的云盘性能逼近甚至达到本地硬盘水平,确保了数据访问的高速度与低延迟,满足了高性能计算与大数据处理的严苛要求。 综上所述,本方案凭借其在部署效率、资源管理、安全性能、资源优化及技术创新方面的显著优势,为云原生环境下的裸金属服务应用开辟了新的路径,展现了强大的竞争力和前瞻视野。 4.2. 未来与展望 随着企业对高性能计算、数据安全及业务敏捷性的需求日益增长,本方案将进一步整合云原生架构的灵活性与物理服务器的性能优势,助力客户在激烈的市场竞争中脱颖而出。客户将享受到更短的业务上线时间、更低的总体拥有成本(TCO)、更强的数据安全性和定制化的高性能计算环境,从而加速数字化转型,推动业务创新与发展。 伴随云原生技术的普及与深化,裸金属服务作为关键基础设施之一,其市场需求将持续攀升,特别是在金融、电信、医疗、大数据分析和AI训练等对计算性能和数据隔离有着极高要求的行业。本方案以其独特的技术优势,有望成为行业标准,吸引更广泛的客户群体,推动整个云服务市场的多元化与高端化发展。 本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。