如何快速部署OpenEuler/ubs-engine?零基础入门指南与核心功能演示
如何快速部署OpenEuler/ubs-engine零基础入门指南与核心功能演示【免费下载链接】ubs-engineUbs-engine provides resource pooling and dynamic scheduling for memory/DPU and other resources, supports distributed automatic primary node selection, and implements N-1 HA. It servers as the core control-plane reference implementation for UB compution system.项目地址: https://gitcode.com/openeuler/ubs-engine前往项目官网免费下载https://ar.openeuler.org/ar/OpenEuler/ubs-engine是一款功能强大的资源池化与动态调度引擎专为现代数据中心和云计算环境设计。作为openEuler社区的核心控制平面参考实现ubs-engine提供了内存、DPU等关键资源的智能调度与管理能力支持分布式自动主节点选举并实现了N-1高可用架构。本文将为您提供完整的零基础入门指南帮助您快速掌握ubs-engine的部署方法和核心功能。 环境准备与依赖安装在开始部署之前您需要确保系统环境满足以下要求操作系统要求openEuler 24.03 LTS SP3/SP4推荐ARM64架构基础依赖安装对于openEuler 24.03 LTS SP3/SP4系统执行以下命令一键安装所有构建依赖# 进入项目目录 cd ubs-engine # 一键安装所有构建依赖 dnf builddep -y ubs-engine.spec如果使用其他openEuler版本需要手动安装依赖并源码编译ubs-comm组件# 安装基础依赖 yum install -y libboundscheck libxml2-devel numactl-libs openssl-devel rapidjson-devel patch libvirt-devel cpp-httplib-devel kernel-devel # 源码编译ubs-comm-devel和ubs-comm-lib sudo dnf install -y git rpm-build rpmdevtools gcc gcc-c make mkdir -p /tmp/src git clone -b openEuler-24.03-LTS-SP4 https://gitcode.com/src-openeuler/ubs-comm.git /tmp/src/ubs-comm rpmdev-setuptree cp /tmp/src/ubs-comm/ubs-comm.spec ~/rpmbuild/SPECS/ cp -rf /tmp/src/ubs-comm/ubs-comm-*.tar.gz ~/rpmbuild/SOURCES/ sudo dnf builddep -y ~/rpmbuild/SPECS/ubs-comm.spec rpmbuild -ba ~/rpmbuild/SPECS/ubs-comm.spec 快速构建与安装ubs-engine提供了多种构建选项满足不同场景需求1. 源码获取git clone https://gitcode.com/openeuler/ubs-engine.git cd ubs-engine2. 构建项目ubs-engine支持四种构建类型您可以根据实际需求选择# Release构建生产环境默认 bash build.sh # Debug构建开发调试 bash build.sh -D # RelWithDebInfo构建生产调试 bash build.sh -T RelWithDebInfo # MinSizeRel构建最小化二进制 bash build.sh -T MinSizeRel3. 生成RPM包# 构建并打包为RPM bash build.sh package构建完成后您将在output/目录下找到以下RPM包output/ ├── ubs-engine-version-release.aarch64.rpm # 主程序包 ├── ubs-engine-client-libs-version-release.aarch64.rpm # 客户端运行时库 ├── ubs-engine-client-devel-version-release.aarch64.rpm # 客户端开发包 ├── python3-ubs-engine-version-release.aarch64.rpm # Python API包 ├── ubs-engine-rmrs-version-release.aarch64.rpm # 内存池化插件 ├── ubs-engine-ucache-version-release.aarch64.rpm # ucache插件 ├── ubs-engine-virtagent-version-release.aarch64.rpm # 虚拟化代理插件 ├── ubs-engine-processmem-version-release.aarch64.rpm # processmem插件 └── ubs-engine-debuginfo-version-release.aarch64.rpm # 调试信息 核心功能演示内存池化与动态调度ubs-engine的核心功能之一是实现内存资源的池化管理。通过智能调度算法系统可以将集群内节点的剩余内存组成全局资源池实现资源的动态分配和回收。内存借用流程特点NUMA借用优化跨NUMA节点的内存访问确定性归属借用确保内存的确定性归属地址借用灵活的内存地址空间管理共享内存借用支持多节点共享内存访问分布式自动选举机制ubs-engine采用去中心化架构支持N-1节点故障高可用。系统通过分布式动态选举机制在秒级内完成主节点选举确保集群的高可用性。选举关键特性选举正确性确保任何时候只有一个主节点选举延迟秒级完成选举过程系统容错性支持1~N-1节点故障网络分区处理避免脑裂问题高可靠性与故障处理ubs-engine提供了完善的高可用保障机制确保在各种故障场景下的系统稳定性。故障处理能力带外重启方案BMC下电命令劫持支持回迁确认带内重启方案OS重启命令劫持确保业务连续性计划外故障OS Panic处理支持超时防呆 开发与测试单元测试执行ubs-engine提供了完善的测试框架支持开发者进行单元测试和集成测试# 运行所有UT测试 bash build.sh ut # 运行特定测试用例 bash build.sh ut -- --gtest_filterTestRackHttpClient.* # 运行单个测试用例 bash build.sh ut -- --gtest_filterTestUbseMemControllerAddrApi.CheckAddrResourceStateExist覆盖率报告生成生成覆盖率报告并启动HTTP服务器查看# 生成覆盖率报告 bash build.sh ut -C # 生成覆盖率报告并启动HTTP服务器 bash build.sh ut -C -H 软件架构解析ubs-engine采用模块化设计主要包含以下核心组件核心模块libubse动态库提供资源管理接口ubsectl命令行工具提供管理功能ubse-daemon主工作进程提供核心资源管理功能内部架构api server北向接口暴露层ubs turbo增值调优能力adv controllers业务相关资源管理base controllers基础资源管理能力adapter plugins南向对接能力️ 部署场景配置通算场景部署在均质无中心化部署场景中ubs-engine提供MatrixServer范围内统一的集群资源管理北向为上层应用在各节点提供SideCar接入能力内部动态选主数据平滑资源请求由主节点负责资源调度决策智算场景部署在单OS域内部署场景中ubs-engine只需提供单机OS域内的资源管理北向上层应用各节点SideCar接入与带外UBFM交互操控UB资源 数据对账机制ubs-engine实现了完善的数据对账机制确保系统数据的一致性周期对账对账周期为5分钟不可配置只完成master、agent间的mem controller数据对账不与OBMM进行周期对账对账处理原则内存借入方数据以agentobmm为准内存借出方数据以借入方为准 性能指标与优势关键性能指标内存调度性能10ms/GB的快速内存借用内核页迁移8GB/s的数据迁移速度选举延迟秒级完成分布式选举故障恢复6秒级内完成重新选主核心优势资源利用率提升通过内存池化技术提升集群资源利用率高可用保障支持N-1节点故障确保业务连续性智能调度基于负载的动态资源调度优化应用性能生态兼容与普罗生态兼容的监控度量体系 总结与展望OpenEuler/ubs-engine作为现代数据中心的核心资源管理引擎为云计算、边缘计算等场景提供了强大的资源池化与动态调度能力。通过本文的指南您已经掌握了ubs-engine的快速部署方法、核心功能特性以及开发测试流程。ubs-engine的持续演进将为openEuler生态系统带来更多创新功能包括更智能的资源调度算法、更完善的故障处理机制以及更广泛的应用场景支持。无论是企业级数据中心还是边缘计算节点ubs-engine都能为您提供可靠、高效的资源管理解决方案。开始您的ubs-engine之旅吧 体验下一代资源调度引擎带来的性能提升与运维简化。【免费下载链接】ubs-engineUbs-engine provides resource pooling and dynamic scheduling for memory/DPU and other resources, supports distributed automatic primary node selection, and implements N-1 HA. It servers as the core control-plane reference implementation for UB compution system.项目地址: https://gitcode.com/openeuler/ubs-engine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考