做django后台网站,wordpress 更改模板路径,英文网站 字体大小,公司网站作用1. 背景介绍
1.1. 业务背景
在云原生技术迅速发展的当下#xff0c;容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择#xff0c;但裸金属服务器依然有其独特的价值和应用场景#xff0c;是云原生架构中不可或缺的一部分。
裸金属服务器是一种高级…1. 背景介绍
1.1. 业务背景
在云原生技术迅速发展的当下容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择但裸金属服务器依然有其独特的价值和应用场景是云原生架构中不可或缺的一部分。
裸金属服务器是一种高级的云计算解决方案它成功地融合了传统云主机的灵活性、便捷性与物理服务器的强大性能与独立性。作为一类特别设计的计算类云服务裸金属服务器直接向用户提供了云端部署的专属物理服务器这意味着客户不再需要与其他租户共享硬件资源从而确保了资源的独占性、性能的最优化以及数据的最高级别安全。
这种服务模式特别适合那些运行核心数据库系统、承载关键业务应用、实施大规模高性能计算项目或处理海量大数据分析的任务。裸金属服务器以其强大的计算能力能够高效处理复杂的计算密集型作业同时保证了低延迟和高吞吐量是驱动企业数字化转型和创新业务场景的重要基石。
1.2. 问题与挑战
传统的裸金属服务通常采用Openstack Ironic架构并通过PXE和TFTP实现安装引导流程服务器的本地盘作为裸金属服务器的存储资源。这种方式导致了用户体验差、灵活性不足等诸多问题难以满足用户越来越高的业务和技术需求。
Ironic 采用本地物理盘进行启动时首先将远程镜像下载并写入到本地物理盘中然后再从本地盘启动进入系统。流程如下 可以看到其重点是通过 PXE 启动一个小系统在内存中运行这个小系统中运行了 Ironic 定制的 ironic-python-agent简称 IPAIPA 负责从 Glance 下载真正的用户镜像并写入到本地磁盘上。
物理服务器支持基于云盘的无盘启动方式Ironic 也支持无盘启动但目前支持的协议有限仅支持 iSCSI Boot且仍然依赖PXE。
目前在云原生生态中提供裸金属服务的开源组件只有 metal3或称Metal Kubed但我们对其调研后发现metal3只是抽象了裸金属的一个生命周期状态机但裸金属本身的网络、存储、镜像管理等都依赖外部实现而且目前仅有基于 Ironic 的实现。因此相关的方案架构和 Ironic 没有区别。
因此我们总结裸金属服务器部署和存储的关键痛点
部署周期长传统裸金属服务采用PXETFTP技术安装引导部署时间长约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训练等对计算性能和数据隔离有着极高要求的行业。本方案以其独特的技术优势有望成为行业标准吸引更广泛的客户群体推动整个云服务市场的多元化与高端化发展。
本方案来自于中科驭数软件研发团队团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成不仅拥有丰富的实战经验还对行业趋势具备敏锐的洞察力该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案帮助最终客户加速数字化转型提升业务效能同时降低运营成本。