长期支持版本

    社区创新版本

      关键特性

      AI专项

      智能时代,操作系统需要面向AI不断演进。一方面,在操作系统开发、部署、运维全流程以AI加持,让操作系统更智能;另一方面,openEuler已支持Arm,x86,RISC-V等全部主流通用计算架构,在智能时代,openEuler也率先支持NVIDIA、昇腾等主流AI处理器,成为使能多样性算力的首选。

      • OS for AI:openEuler兼容NVIDIA、Ascend等主流算力平台的软件栈,为用户提供高效的开发运行环境。通过将不同AI算力平台的软件栈进行容器化封装,即可简化用户部署过程,提供开箱即用的体验。同时,openEuler也提供丰富的AI框架,方便大家快速在openEuler上使用AI能力。

        • openEuler已兼容CANN、CUDA等硬件SDK,以及TensorFlow、PyTorch、MindSpore等相应的AI框架软件,支持AI应用在openEuler上高效开发与运行。
        • openEuler AI软件栈容器化封装优化环境部署过程,并面向不同场景提供以下三类容器镜像。
          1. SDK镜像:以openEuler为基础镜像,安装相应硬件平台的SDK,如Ascend平台的CANN或NVIDIA的CUDA软件。
          2. AI框架镜像:以SDK镜像为基础,安装AI框架软件,如PyTorch或TensorFlow。此外,通过此部分镜像也可快速搭建AI分布式场景,如Ray等AI分布式框架。
          3. 模型应用镜像:在AI框架镜像的基础上,包含完整的工具链和模型应用。

        相关使用方式请参考openEuler AI 容器镜像用户指南

      • AI for OS:当前,openEuler和AI深度结合,一方面使用基础大模型,基于大量openEuler操作系统的代码和数据,训练出openEuler Copilot System,初步实现代码辅助生成、智能问题智能分析、系统辅助运维等功能,让openEuler更智能。

        • 智能问答:openEuler Copilot System智能问答平台目前支持web和智能shell两个入口。

          1. 工作流调度:原子化智能体操作流程:通过采用“流”的组织形式,openEuler Copilot System允许用户将智能体的多个操作过程组合成一个内部有序、相互关联的多步骤“工作流”;即时数据处理:智能体在工作流的每个步骤中生成的数据和结果能够立即得到处理,并无缝传递到下一个步骤;智能交互:在面对模糊或复杂的用户指令时,openEuler Copilot System能主动询问用户,以澄清或获取更多信息。
          2. 任务推荐:智能响应:openEuler Copilot System能够分析用户输入的语义信息;智能指引:openEuler Copilot System综合分析当前工作流的执行状况、功能需求以及关联任务等多维度数据,为用户量身定制最适宜的下一步操作建议。
          3. RAG:openEluer Copilot System中的RAG技术能更强的适应多种文档格式和内容场景,在不为系统增加较大负担的情况下,增强问答服务体验。
          4. 语料治理:语料治理是openEuler Copilot System中的RAG技术的基础能力之一,其通过片段相对关系提取、片段衍生物构建和OCR等方式将语料以合适形态入库,以增强用户查询命中期望文档的概率。

          相关使用方式请参考openEuler Copilot System 智能问答用户指南

        • 智能调优:openEluer Copilot System 智能调优功能目前支持智能shell入口。 在上述功能入口,用户可通过与openEluer Copilot System进行自然语言交互,完成性能数据采集、系统性能分析、系统性能优化等作业,实现启发式调优。

        • 智能诊断:

          1. 巡检:调用Inspection Agent,对指定IP进行异常事件检测,为用户提供包含异常容器ID以及异常指标(cpu、memory等)的异常事件列表。
          2. 定界:调用Demarcation Agent,对巡检结果中指定异常事件进行定界分析,输出导致该异常事件的根因指标TOP3。
          3. 定位:调用Detection Agent,对定界结果中指定根因指标进行Profiling定位分析,为用户提供该根因指标异常的热点堆栈、热点系统时间、热点性能指标等信息。
        • 智能容器镜像:openEuler Copilot System目前支持通过自然语言调用环境资源,在本地协助用户基于实际物理资源拉取容器镜像,并且建立适合算力设备调试的开发环境。当前版本支持三类容器,并且镜像源已同步在dockerhub发布,用户可手动拉取运行:

          1. SDK层:仅封装使能AI硬件资源的组件库,例如:cuda、cann等。
          2. SDK + 训练/推理框架:在SDK层的基础上加装tensorflow、pytorch等框架,例如:tensorflow2.15.0-cuda12.2.0、pytorch2.1.0.a1-cann7.0.RC1等。
          3. SDK + 训练/推理框架 + 大模型:在第2类容器上选配几个模型进行封装,例如llama2-7b、chatglm2-13b等语言模型。

      openEuler Embedded

      openEuler Embedded围绕以制造、机器人为代表的OT领域持续深耕,通过行业项目垂直打通,不断完善和丰富嵌入式系统软件栈和生态。openEuler发布面向嵌入式领域的版本openEuler 24.03 LTS SP1,构建了一个相对完整的综合嵌入系统软件平台,在南北向生态、关键技术特性、基础设施、落地场景等方面都有显著的进步。未来openEuler Embedded将协同openEuler社区生态伙伴、用户、开发者,逐步扩展支持龙芯等新的芯片架构和更多的南向硬件,完善工业中间件、嵌入式AI、嵌入式边缘、仿真系统等能力,打造综合嵌入式系统软件平台解决方案。

      • 南向生态:openEuler Embedded Linux当前主要支持ARM64、x86-64、ARM32、RISC-V等多种芯片架构,未来计划支持龙芯等架构,从24.03 版本开始,南向支持大幅改善,已经支持树莓派、海思、瑞芯微、瑞萨、德州仪器、飞腾、赛昉、全志等厂商的芯片。openEuler 24.03 LTS SP1新增鲲鹏920支持。
      • 嵌入式弹性虚拟化底座:openEuler Embedded的弹性虚拟化底座是为了在多核片上系统(SoC, System On Chip)上实现多个操作系统共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构部署等多种实现形态。
      • 混合关键性部署框架: openEuler Embedded打造了构建在融合弹性底座之上混合关键性部署框架,并命名为MICA(MIxed CriticAlity),旨在通过一套统一的框架屏蔽下层弹性底座形态的不同,从而实现Linux和其他OS运行时便捷地混合部署。依托硬件上的多核能力使得通用的Linux和专用的实时操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。
      • 北向生态:600+嵌入式领域常用软件包的构建;提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和hichain点对点认证模块,实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通;支持iSula容器,可以实现在嵌入式上部署openEuler或其他操作系统容器,简化应用移植和部署。支持生成嵌入式容器镜像,最小大小可到5MB,可以部署在其他支持容器的操作系统之上。
      • UniProton硬实时系统:UniProton 是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。目前关键能力如下:
        1. 支持Cortex-M、ARM64、X86_64、riscv64架构,支持M4、RK3568、RK3588、X86_64、Hi3093、树莓派4B、鲲鹏920、昇腾310、全志D1s。
        2. 支持树莓派4B、Hi3093、RK3588、X86_64设备上通过裸金属模式和openEuler Embedded Linux混合部署。
        3. 支持通过gdb在openEuler Embedded Linux侧远程调试。

      DevStation 开发者工作站支持

      openEuler首个面向开发者的开发者工作站Devstation正式发布,预装VSCODE,Devstation将打通部署,编码,编译,构建,发布全流程,开发者可以方便的使用oeDeploy完成AI软件栈,云原生软件栈部署,使用oeDevPlugin插件进行一键拉取代码仓,一键使用AI4C编译器编译,一键调用EulerMaker,轻松使用Devstation版本进行软件开发;同时Devstation将会集成openEuler新型包管理体系EPKG,可以进行多环境,多版本安装,方便开发者在不同版本之间进行切换。

      • 开发者友好的集成环境:发行版预装了广泛的开发工具和 IDE,如 VS Code系列等。支持多种编程语言,满足从前端、后端到全栈开发的需求。
      • 软件包管理与自动部署:提供简单便捷的软件包管理工具,支持通过一键安装和更新多种开发环境。同时,内置 Docker、Isula 等容器技术,方便开发者进行应用容器化与自动化部署,提供新型包管理体系EPKG,支持多版本部署,大大降低开发者在安装不同开发工具时的使用门槛。
      • 图形化编程环境:集成了图形化编程工具,降低了新手的编程门槛,同时也为高级开发者提供了可视化编程的强大功能。
      • AI开发支持:针对 AI 领域的开发者,预装了 TensorFlow、PyTorch 等机器学习框架,同时优化了硬件加速器(如 GPU、NPU)的支持,提供完整的 AI 模型开发与训练环境。同时,openEuler Devstation集成了openEuler Copilot System,提供AI助手服务,帮助用户解决大部分操作系统使用问题。
      • 调试与测试工具:内置 GDB、CUnit、gtest、perf等调试工具和测试、调优工具,帮助开发者快速调试和自动化测试,提升开发效率。
      • 版本控制和协作:集成 Git、SVN 等版本控制工具,并支持多种远程协作工具,如 Slack、Mattermost 和 GitLab,使得团队开发和远程协作更加顺畅。
      • 安全与合规检查:提供安全扫描和代码合规性检查工具,帮助开发者在开发阶段就能发现并修复潜在的安全漏洞和代码问题。

      epkg新型软件包

      epkg是一款新型软件包,支持普通用户在操作系统中安装及使用。新的软件包格式相比现有软件包,主要解决多版本兼容性问题,用户可以在一个操作系统上通过简单地命令行安装不同版本的软件包。同时支持环境环境实现环境的创建/切换/使能等操作,来使用不同版本的软件包。目前epkg主要支持非服务类的软件包的安装和使用。

      • 多版本兼容:支持普通用户安装,支持安装不同版本的软件包,不同版本的同一软件包安装不冲突。使能用户在同一个节点上,快速安装同一软件包的不同版本,实现多版本软件包的共存。
      • 环境管理:支持环境环境实现环境的创建/切换/使能等操作,用户通过环境的切换,在环境中使用不同的channel,实现在不同的环境中使用不同版本的软件包。用户可以基于环境,快速实现软件包版本的切换。
      • 普通用户安装:epkg支持普通用户安装软件包,普通用户能够自行创建环境,对个人用户下的环境镜像管理,无需特权版本。降低软件包安装引起的安全问题。

      GCC 14多版本编译工具链支持

      为了使能多样算例新特性,满足不同用户对不同硬件特性支持的需求,在 openEuler 24.03 LTS SP1 版本推出 openEuler GCC Toolset 14编译工具链,该工具链提供一个高于系统主 GCC 版本的副版本 GCC 14编译工具链,为用户提供了更加灵活且高效的编译环境选择。通过使用 openEuler GCC Toolset 14副版本编译工具链,用户可以轻松地在不同版本的 GCC 之间进行切换,以便充分利用新硬件特性,同时享受到 GCC 最新优化所带来的性能提升。
      为了与系统默认主版本 GCC 解耦,防止副版本 GCC 安装与主版本GCC 安装的依赖库产生冲突,openEuler GCC Toolset 14工具链的软件包名均以前缀“gcc-toolset-14-”开头,后接原有GCC软件包名。
      此外,为便于版本切换与管理,本方案引入SCL版本切换工具。SCL工具的核心就是会在/opt/openEuler/gcc-toolset-14 路径下提供一个enable脚本,通过注册将 gcc-toolset-14 的环境变量注册到 SCL 工具中,从而可以使用 SCL 工具启动一个新的 bash shell,此 bash shell 中的环境变量即为 enable 脚本中设置的副版本环境变量,从而实现主副版本 GCC 工具链的便捷切换。

      内核创新

      openEuler 24.03 LTS SP1基于 Linux Kernel 6.6内核构建,在此基础上,同时吸收了社区高版本的有益特性及社区创新特性。

      • 内存管理folio特性:Linux内存管理基于page(页)转换到由folio(拉丁语 foliō,对开本)进行管理,相比page,folio可以由一个或多个page组成,采用struct folio参数的函数声明它将对整个(1个或者多个)页面进行操作,而不仅仅是PAGE_SIZE字节,从而移除不必要复合页转换,降低误用tail page问题;从内存管理效率上采用folio减少LRU链表数量,提升内存回收效率,另一方,一次分配更多连续内存减少page fault次数,一定程度降低内存碎片化;而在IO方面,可以加速大IO的读写效率,提升吞吐。全量支持匿名页、文件页的large folio,提供系统级别的开关控制,业务可以按需使用。对于ARM64架构,基于硬件contiguous bit技术(16个连续PTE只占一个 TLB entry),可以进一步降低系统TLB miss,从而提升整体系统性能。24.03 LTS SP1版本新增支持anonymous shmem分配mTHP与支持mTHP的lazyfree,进一步增加内存子系统对于large folio的支持;新增page cache分配mTHP的sysfs控制接口,提供系统级别的开关控制,业务可以按需使用。

      • MPTCP特性支持:MPTCP协议诞生旨在突破传统 TCP 协议的单一路径传输瓶颈,允许应用程序使用多个网络路径进行并行数据传输。这一设计优化了网络硬件资源的利用效率,通过智能地将流量分配至不同传输路径,显著缓解了网络拥塞问题,从而提高数据传输的可靠性和吞吐量。 目前,MPTCP 在下述网络场景中已经展现出了其优秀的性能:

        1. 网络通路的选择:在现有的网络通路中,根据延迟、带宽等指标评估,选择最优的通路。
        2. 无缝切网:在不同类型网络之间切换时,数据传输不中断。
        3. 数据分流:同时使用多个通道传输,对数据包进行分发实现并发传输,增加网络带宽。

        在实验环境中,采用MPTCP v1技术的RSYNC文件传输工具展现出了令人满意的效率提升。具体而言,传输1.3GB大小的文件时,传输时间由原来的114.83 s缩短至仅14.35s,平均传输速度由原来的11.08 MB/s提升至88.25 MB/s,可以极大程度的缩减文件传输时间。同时,实验模拟了传输过程中一条或多条路径突发故障而断开的场景,MPTCP在此种场景下可以将数据无缝切换至其他可用的数据通道,确保数据传输的连续性与完整性。 在openEuler 24.03 LTS SP1中,已经完成了对linux主线内核6.9中MPTCP相关特性的全面移植与功能优化。

      • ext4文件系统支持Large folio:iozone性能总分可以提升80%,iomap框架回写流程支持批量映射block。支持ext4默认模式下批量申请block,大幅优化各类benchmark下ext4性能表现(华为贡献)。ext4 buffer io读写流程以及pagecache回写流程弃用老旧的buffer_head框架,切换至iomap框架,并通过iomap框架实现ext4支持large folio。24.03 LTS SP1版本新增对于block size < folio size场景的小buffered IO(<=4KB)的性能优化,性能提升20%。

      • xcall/xint特性:随着Linux内核的发展,系统调用成为性能瓶颈,尤其是在功能简单的调用中。AARCH64平台上的SYSCALL共享异常入口,包含安全检查等冗余流程。降低SYSCALL开销的方法包括业务前移和批量处理,但需业务适配。XCALL提供了一种无需业务代码感知的方案,通过优化SYSCALL处理,牺牲部分维测和安全功能来降低系统底噪,降低系统调用处理开销。 内核为了使中断处理整体架构统一,将所有中断处理全部归一到内核通用中断处理框架中,同时随着内核版本演进,通用中断处理框架附加了很多与中断处理自身的功能关系不大的安全加固和维测特性,这导致中断处理的时延不确定性增大。xint通过提供一套精简的中断处理流程,来降低中断处理的时延和系统底噪。

      • 按需加载支持failover特性:cachefiles在按需模式下,如果守护进程崩溃或被关闭,按需加载相关的读取和挂载将返回-EIO。所有挂载点必须要在重新拉起 daemon 后重新挂载后方可继续使用。这在公共云服务生产环境中发生时是无法接受的,这样的I/O错误将传播给云服务用户,可能会影响他们作业的执行,并危及系统的整体稳定性。cachefiles failover 特性避免了守护进程崩溃后重新挂载所有挂载点,只需快速重新拉起守护进程即可,用户和服务是不感知守护进程崩溃的。

      • 可编程调度特性:支持可编程调度功能,为用户态提供可编程的调度接口,是CFS算法的扩展。用户可以根据实际的业务场景定制化调度策略,bypass原有的CFS调度算法。提供的功能包括支持标签机制、支持任务选核可编程、支持负载均衡可编程、支持任务选择可编程、支持任务抢占可编程以及kfunc接口函数。

      • 支持 SMC-D with loopback-ism 特性:SMC-D (Shared Memory Communication over DMA) 是一种兼容 socket 接口,基于共享内存,透明加速 TCP 通信的内核网络协议栈。SMC-D 早期只能用于 IBM z S390 架构机器,SMC-D with loopback-ism 技术通过创建虚拟设备 loopback-ism 模拟 ISM 功能,使得 SMC-D 可用于非 S390 架构机器,成为内核通用机制。SMC-D with loopback-ism适用于采用TCP协议进行OS内进程间或容器间通信的场景,通过旁路内核TCP/IP协议栈等方法,实现通信加速。结合使用smc-tools工具,可以通过LD_PRELOAD预加载动态库的方法实现TCP协议栈透明替换,无需更改原有应用程序。根据社区反馈结果,与原生TCP相比,SMC-D with loopback-ism能够提升网络吞吐量提升40%以上。

      • IMA RoT特性:当前,Linux IMA(Integrity Measurement Architecture)子系统主要使用 TPM 芯片作为可信根(Root of Trust,RoT)设备,针对度量列表提供完整性证明,其在编码上也与 TPM 的操作紧耦合。而机密计算等新场景要求 IMA 可使用新型 RoT 设备,例如 openEuler 已支持的 VirtCCA。本特性为一套 IMA RoT 设备框架,在 IMA 子系统和 RoT 设备之间实现一个抽象层,既简化各类 RoT 设备对 IMA 子系统的适配,也方便用户和 IMA 子系统对各类 RoT 设备实施配置和操作。

      • 支持脚本类病毒程序防护:目前勒索病毒主要是脚本类文件(如JSP文件),而当前内核防御非法入侵的IMA完整性保护技术,主要针对ELF类病毒文件。脚本类病毒文件通过解释器运行,能够绕开内核中的安全技术实施攻击。为了支持内核中的IMA完整性保护技术可以检查系统中间接执行的脚本类文件,通过系统调用execveat()新增执行检查的flags,查验其执行权限,并在检查中调用IMA完整性度量接口以实现对脚本类文件的完整性保护。经测试验证,目前已经支持脚本解释器主动调用execveat()系统调用函数并传入AT_CHECK参数对脚本文件进行可执行权限检查(包括IMA检查),只有当权限检查成功后,才可继续运行脚本文件。

      • haltpoll特性:haltpoll特性通过虚拟机guest vcpu在空闲时进行轮询的机制,避免vcpu唤醒时发送IPI中断,降低了中断发送和处理的开销,并且由于轮询时虚拟机不需要陷出,减少了陷入陷出的开销,该特性能够降低进程间通信时延,显著提升上下文切换效率,提升虚机性能。

      • 内核TCP/IP协议栈支持CAQM拥塞:内核TCP/IP协议栈支持CAQM拥塞控制算法:CAQM是一种主动队列管理算法,一种网络拥塞控制机制,主要运行于数据中心使用TCP传输数据的计算端侧节点和传输路径上的网侧交换机节点。通过网侧交换节点主动计算网络空闲带宽和最优带宽分配,端侧协议栈与网侧交换机协同工作,在高并发场景下获得网络交换机“零队列“”拥塞控制效果和极低传输时延。CAQM算法通过在以太链路层增加拥塞控制标记字段,实现动态调整队列长度,减少延迟和丢包,提高网络资源的利用率。对于数据中心低延时通算场景,可极大减少延迟和丢包的发生,增强用户体验。在数据中心典型场景下,对比经典Cubic算法,关键指标提升:1)传输时延:CAQM vs Cubic 时延降低92.4%。2)带宽利用率:在交换机队列缓存占用降低90%的情况下,仍保持TCP传输带宽利用率逼近100%(99.97%)。CAQM算法使用说明:1)本算法需要端侧服务器和网侧交换机协同配合,故中间节点交换机,需要支持CAQM协议(协议头识别,拥塞控制字段调整等);2)本算法通过内核编译宏(CONFIG_ETH_CAQM)控制,默认不使能,用户需通过打开编译宏,重新编译替换内核后,使能算法功能。

      NestOS容器操作系统

      NestOS是在openEuler社区孵化的云底座操作系统,集成了rpm-ostree支持、ignition配置等技术。采用双根文件系统、原子化更新的设计思路,使用nestos-assembler快速集成构建,并针对K8S、OpenStack等平台进行适配,优化容器运行底噪,使系统具备十分便捷的集群组建能力,可以更安全的运行大规模的容器化工作负载。

      • 开箱即用的容器平台:NestOS集成适配了iSulad、Docker、Podman等主流容器引擎,为用户提供轻量级、定制化的云场景OS。
      • 简单易用的配置过程:NestOS通过ignition技术,可以以相同的配置方便地完成大批量集群节点的安装配置工作。
      • 安全可靠的包管理:NestOS使用rpm-ostree进行软件包管理,搭配openEuler软件包源,确保原子化更新的安全稳定状态。
      • 友好可控的更新机制:NestOS使用zincati提供自动更新服务,可实现节点自动更新与重新引导,实现集群节点有序升级而服务不中断。
      • 紧密配合的双根文件系统:NestOS采用双根文件系统的设计实现主备切换,确保NestOS运行期间的完整性与安全性。

      syscare特性增强

      SysCare是一个系统级热修复软件,为操作系统提供安全补丁和系统错误热修复能力,主机无需重新启动即可修复该系统问题。​ SysCare将内核态热补丁技术与用户态热补丁技术进行融合统一,用户仅需聚焦在自己核心业务中,系统修复问题交予SysCare进行处理。后期计划根据修复组件的不同,提供系统热升级技术,进一步解放运维用户提升运维效率。

      • 热补丁制作:用户仅需输入目标软件的源码RPM包、调试信息RPM包与待打补丁的路径,无需对软件源码进行任何修改,即可生成对应的热补丁RPM包。
      • 热补丁生命周期管理:SysCare提供一套完整的,傻瓜式补丁生命周期管理方式,旨在减少用户学习、使用成本,通过单条命令即可对热补丁进行管理。依托于RPM系统,SysCare构建出的热补丁依赖关系完整,热补丁分发、安装、更新与卸载流程均无需进行特殊处理,可直接集成放入软件仓repo。
      • 内核热补丁与用户态热补丁融合:SysCare基于upatch和kpatch技术,覆盖应用、动态库、内核,自顶向下打通热补丁软件栈,提供用户无感知的全栈热修复能力。
      • 新增特性:支持重启后按照用户操作顺序恢复。ACCEPTED状态热补丁。

      iSula支持NRI插件式扩展

      NRI (Node Resource Interface), 是用于控制节点资源的公共接口, 是CRI兼容的容器运行时插件扩展的通用框架。它为扩展插件提供了跟踪容器状态,并对其配置进行有限修改的基本机制。允许将用户某些自定的逻辑插入到OCI兼容的运行时中,此逻辑可以对容器进行受控更改,或在容器生命周期的某些时间点执行 OCI 范围之外的额外操作。iSulad新增对NRI插件式扩展的支持,减少k8s场景下对于容器资源管理维护成本,消除调度延迟,规范信息的一致性。
      NRI插件通过请求isula-rust-extension组件中启动的NRI runtime Service服务与iSulad建立连接后,可订阅Pod与Container的生命周期事件:

      1. 可订阅Pod生命周期事件,包括:creation、stopping和removal。
      2. 可订阅Container生命周期事件,包括creation、post-creation、starting、post-start、updating、post-update、stopping和removal。

      iSulad在接收到k8s下发的CRI请求后,对于所有订阅了对应生命周期事件的NRI插件都发送的请求,NRI插件可在请求中获得Pod与Container的元数据与资源信息。之后NRI插件可根据需求更新Pod与Container的资源配置,并将更新的信息传递给iSulad,iSulad将更新后的配置传递给容器运行时,生效配置。

      oeAware采集、调优插件等功能增强

      oeAware是在openEuler上实现低负载采集感知调优的框架,目标是动态感知系统行为后智能使能系统的调优特性。传统调优特性都以独立运行且静态打开关闭为主,oeAware将调优拆分为采集、感知和调优三层,每层通过订阅方式关联,各层采用插件式开发尽可能复用。 oeAware 的每个插件都是按oeAware 标准接口开发的动态库,包含若干个实例,每个实例可以是一个独立的采集、感知或调优功能集,每个实例包含若干个topic,其中 topic 主要用于提供采集或者感知的数据结果,这些数据结果可供其他插件或者外部应用进行调优或分析。

      • SDK提供的接口可以实现订阅插件的topic,回调函数接收oeAware的数据,外部应用可以通过SDK开发定制化功能,例如完成集群各节点信息采集,分析本节点业务特征。
      • PMU信息采集插件:采集系统PMU性能记录。
      • Docker 信息采集插件:采集当前环境Docker的一些参数信息。
      • 系统信息采集插件:采集当前环境的内核参数、线程信息和一些资源信息(CPU、内存、IO、网络)等。
      • 线程感知插件:感知关键线程信息。
      • 评估插件:分析业务运行时系统的NUMA和网络信息,给用户推荐使用的调优方式。
      • 系统调优插件:(1)stealtask :优化CPU调优 (2)smc_tune(SMC-D):基于内核共享内存通信特性,提高网络吞吐,降低时延 (3)xcall_tune :跳过非关键流程的代码路径,优化 SYSCALL的处理底噪。
      • Docker调优插件:利用cpuburst特性在突发负载下环境CPU性能瓶颈。

      KubeOS特性增强

      KubeOS是针对云原生场景而设计、轻量安全的云原生操作系统及运维工具,提供基于kubernetes的云原生操作系统统一运维能力。KubeOS设计了专为容器运行的云原生操作系统,通过根目录只读,仅包含容器运行所需组件,dm-verity安全加固,减少漏洞和攻击面,提升资源利用率和启动速度,提供云原化的、轻量安全的操作系统。KubeOS支持使用kubernetes原生声明式API,统一对集群worker节点OS的进行升级、配置和运维,从而降低云原生场景的运维难度、解决用户集群节点OS版本分裂,缺乏统一的OS运维管理方案的问题。
      KubeOS新增配置能力、定制化镜像制作能力和rootfs完整性保护dm-verity如图所示,具体能力如下:

      • KubeOS支持集群参数统一配置,支持通过KubeOS统一settings配置,支持如下配置:
        (1)KubeOS支持limits.conf文件参数统一配置;
        (2)KubeOS支持containerd、kubelet等集群参数统一配置。
      • KubeOS支持镜像定制化,镜像制作时支持systemd服务、grub密码、系统盘分区、用户/用户组、文件、脚本和persist分区目录的自定义配置。
      • KubeOS支持静态完整性保护dm-verity,支持在虚拟机镜像制作时开启dm-verity,对rootfs进行完整行校验,并支持dm-verity开启时的升级和配置。

      IMA特性增强

      内核完整性度量架构(IMA, Integrity Measurement Architecture)是Linux开源,且在业界被广泛使用的文件完整性保护技术。在实际应用场景中,IMA可以用来对系统运行的程序发起完整性检查,一方面检测应用程序篡改,另一方面通过白名单机制以保证只有经过认证(如签名或HMAC)的文件才可以被运行。 目前运行在Linux操作系统上的应用程序可分为两种:

      • 二进制可执行程序:即符合ELF格式标准的程序文件,可直接通过exec/mmap系统调用运行。
      • 解释器类应用程序:即通过解释器间接运行的程序文件,如通过Bash/Python/Lua等解释器加载运行的脚本程序,或JVM运行的Java程序等。

      对于二进制可执行程序,IMA可以通过在exec/mmap系统调用的hook函数发起度量或校验流程,从而实现完整性保护。 但是针对解释器类应用程序,现有的IMA机制无法进行有效保护。其原因是此类应用程序主要通过read系统调用由解释器加载并解析运行,而IMA无法将其和其他可变的文件(如配置文件、临时文件等)进行区分,一旦针对read系统调用配置开启IMA机制,则会将其他可变文件也纳入保护范围,而可变文件无法预先生成度量基线或校验凭据,从而导致完整性检查失败。 因此本特性旨在对现有IMA机制进行增强,有效提升对解释器类应用程序的完整性保护能力。

      异构可信根

      典型的攻击手段往往伴随着信息系统真实性、完整性的破坏,目前业界的共识是通过硬件可信根对系统关键组件进行度量/验证,一旦检测到篡改或仿冒行为,就执行告警或拦截。 当前业界主流是采用TPM作为信任根,结合完整性度量软件栈逐级构筑系统信任链,从而保证系统各组件的真实性和完整性。openEuler当前支持的完整性度量特性包括:度量启动、IMA文件度量、DIM内存度量等。
      openEuler 24.03 LTS SP1版本在内核的integrity子模块中实现了一套可信根框架,南向支持多种可信根驱动,北向提供统一度量接口,对接上层完整性保护软件栈,将完整性度量特性的硬件可信根支持范围从单TPM扩展为多元异构可信根。

      secGear特性增强

      secGear远程证明统一框架是机密计算远程证明相关的关键组件,屏蔽不同TEE远程证明差异,提供Attestation Agent和Attestation Service两个组件,Agent供用户集成获取证明报告,对接证明服务;Service可独立部署,支持iTrustee、virtCCA远程证明报告的验证。

      远程证明统一框架聚焦机密计算相关功能,部署服务时需要的服务运维等相关能力由服务部署第三方提供。远程证明统一框架的关键技术如下:

      • 报告校验插件框架:支持运行时兼容iTrustee、vritCCA、CCA等不同TEE平台证明报告检验,支持扩展新的TEE报告检验插件。
      • 证书基线管理:支持对不同TEE类型的TCB/TA基线值管理及公钥证书管理,集中部署到服务端,对用户透明。
      • 策略管理:提供默认策略(易用)、用户定制策略(灵活)。
      • 身份令牌:支持对不同TEE签发身份令牌,由第三方信任背书,实现不同TEE类型相互认证。
      • 证明代理:支持对接证明服务/点对点互证,兼容TEE报告获取,身份令牌验证等,易集成,使用户聚焦业务。

      根据使用场景,支持点对点验证和证明服务验证两种模式。
      证明服务验证流程如下:
      (1)用户(普通节点或TEE)对TEE平台发起挑战。
      (2)TEE平台通过证明代理获取TEE证明报告,并返回给用户。
      (3)用户端证明代理将报告转发到远程证明服务。
      (4)远程证明服务完成报告校验,返回由第三方信任背书的统一格式身份令牌。
      (5)证明代理验证身份令牌,并解析得到证明报告校验结果。
      点对点验证流程(无证明服务)如下:
      (1)用户向TEE平台发起挑战,TEE平台返回证明报告给用户。
      (2)用户使用本地点对点TEE校验插件完成报告验证。
      注意:点对点验证和远程证明服务验证时的证明代理不同,在编译时可通过编译选项,决定编译有证明服务和点对点模式的证明代理。

      容器干扰检测,分钟级完成业务干扰源(CPU/IO)识别与干扰源发现

      gala-anteater是一款基于AI的操作系统灰度故障的异常检测平台,集成了多种异常检测算法,通过自动化模型预训练、线上模型的增量学习和模型更新,可以实现系统级故障发现和故障点上报。 在线容器高密部署场景下,存在资源无序竞争现象,导致容器实例间相互干扰,使用gala-anteater可以分钟级完成业务干扰源(CPU/IO)识别与干扰源发现,辅助运维人员快速跟踪并解决问题,保障业务Qos。

      gala-anteater通过线上线下相结合,利用在线学习技术,实现模型的线下学习,线上更新,并应用于线上异常检测。

      1. Offline: 首先,利用线下历史KPI数据集,经过数据预处理、特征选择,得到训练集;然后,利用得到的训练集,对无监督神经网络模型(例如Variational Autoencoder)进行训练调优。最后,利用人工标注的测试集,选择最优模型。
      2. Online: 将线下训练好的模型,部署到线上,然后利用线上真实的数据集,对模型进行在线训练以及参数调优,然后利用训练好的模型,进行线上环境的实时异常检测。

      Aops适配authHub统一用户鉴权

      authhub是一个基于oauth2协议开发的统一用户鉴权中心,Aops通过authHub管理应用注册,实现应用间的统一用户鉴权。 authHub基于oauth2协议,实现统一用户鉴权中心,用户鉴权中心功能包括:

      • 应用管理:应用部署后需要在authHub应用管理界面进行注册和配置,用户可以使用注册的应用的功能。
      • 用户鉴权:在authHub管理的应用中,用户可以实现单点登录和单点登出。

      微服务性能问题分钟级定界/定位(TCP,IO,调度等)

      基于拓扑的根因推导技术提供了大规模集群情况下的故障检测、根因定位服务,新增云原生场景故障定界定位能力,特别是针对网络L7层协议,如HTTPS、PGSQL、MYSQL等。这项技术通过 gala-gopher、gala-spider和 gala-anteater实现,新增内容提供了更细粒度的故障定界能力,通过这种能力运维团队可以快速定位问题源头,从而提高系统的稳定性和可靠性。该服务主要功能如下:

      • 指标采集服务:gala-gopher 通过 ebpf 技术提供网络、IO相关的指标采集上报功能。
      • 集群拓扑构建服务:gala-spider 通过接受指标采集服务上报的数据信息,构建容器、进程级别的调用关系拓扑图构建。
      • 故障检测服务:gala-anteater通过故障检测模型对应用上报的指标采集进行分类, 判断是否发生异常。
      • 根因定位服务:gala-anteater 通过节点异常信息和拓扑图信息, 定位导致此次异常的根因节点。

      utsudo项目发布

      Sudo 是 Unix 和 Linux 操作系统中常用的工具之一,它允许用户在需要超级用户权限的情况下执行特定命令。然而, 传统 Sudo 在安全性和可靠性方面存在一些缺陷,为此 utsudo 项目应运而生。 utsudo 是一个采用 Rust 重构 Sudo 的项目,旨在提供一个更加高效、安全、灵活的提权工具,涉及的模块主要有通用工具、整体框架和功能插件等。

      基本功能

      • 访问控制:可以根据需求,限制用户可以执行的命令,并规定所需的验证方式。
      • 审计日志:可以记录和追踪每个用户使用 utsudo 执行的命令和任务。
      • 临时提权:允许普通用户通过输入自己的密码,临时提升为超级用户执行特定的命令或任务。
      • 灵活配置:可以设置参数如命令别名、环境变量、执行参数等,以满足复杂的系统管理需求。

      增强功能
      utsudo在openEuler 24.09版本中是0.0.2版本,当前版本主要功能有:

      • 提权流程:把普通用户执行命令的进程,提权为root权限。
      • 插件加载流程:实现了对插件配置文件的解析,以及对插件库的动态加载。

      utshell 项目发布

      utshell 是一个延续了 bash 使用习惯的全新 shell,它能够与用户进行命令行交互,响应用户的操作去执行命令并给予 反馈。并且能执行自动化脚本帮助运维。

      基本功能

      • 命令执行:可以执行部署在用户机器上的命令,并将执行的返回值反馈给用户。
      • 批处理:通过脚本完成自动任务执行。
      • 作业控制:能够将用户命令作为后台作业,从而实现多个命令同时执行。并对并行执行的任务进行管理和控制。
      • 历史记录:记录用户所输入的命令。
      • 别名功能:能够让用户对命令起一个自己喜欢的别名,从而个性化自己的操作功能。

      增强功能
      utshell在openEuler24.09版本中是0.5版本,当前版本主要功能有:

      • 实现对shell脚本的解析。
      • 实现对第三方命令的执行。

      GCC for openEuler

      GCC for openEuler基线版本已经从GCC 10.3升级到GCC 12.3版本,支持自动反馈优化、软硬件协同、内存优化、SVE向量化、矢量化数学库等特性。

      1. GCC版本升级到12.3,默认语言标准从C14/C++14升级到C17/C++17标准,支持Armv9-a架构,X86的AVX512 FP16等更多硬件架构特性。
      2. 支持结构体优化,指令选择优化等,充分使能ARM架构的硬件特性,运行效率高,在SPEC CPU 2017等基准测试中性能大幅优于上游社区的GCC 10.3版本。
      3. 支持自动反馈优化特性,实现应用层MySQL数据库等场景性能大幅提升。

      功能描述

      • 支持ARM架构下SVE矢量化优化,在支持SVE指令的机器上启用此优化后能够提升程序运行的性能。
      • 支持内存布局优化,通过重新排布结构体成员的位置,使得频繁访问的结构体成员放置于连续的内存空间上,提升Cache的命中率,提升程序运行的性能。
      • 支持SLP转置优化,在循环拆分阶段增强对连续访存读的循环数据流分析能力,同时在SLP矢量化阶段,新增转置操作的分析处理,发掘更多的矢量化机会,提升性能。
      • 支持冗余成员消除优化,消除结构体中从不读取的结构体成员,同时删除冗余的写语句,缩小结构体占用内存大小,降低内存带宽压力,提升性能。
      • 支持数组比较优化,实现数组元素并行比较,提高执行效率。
      • 支持ARM架构下指令优化,增强ccmp指令适用场景,简化指令流水。
      • 支持if语句块拆分优化,增强程序间常量传播能力。
      • 增强SLP矢量优化,覆盖更多矢量化场景,提升性能。
      • 支持自动反馈优化,使用perf收集程序运行信息并解析,完成编译阶段和二进制阶段反馈优化,提升MySQL数据库等主流应用场景的性能。

      Gazelle特性增强

      Gazelle是一款高性能用户态协议栈。它基于DPDK在用户态直接读写网卡报文,共享大页内存传递报文,使用轻量级LwIP协议栈。能够大幅提高应用的网络I/O吞吐能力。专注于数据库网络性能加速,兼顾高性能与通用性。本次版本新增容器场景xdp部署模式及openGauss数据库tpcc支持,丰富用户态协议栈。

      • 高性能(超轻量):基于 dpdk、lwip 实现高性能轻量协议栈能力。
      • 极致性能:基于区域大页划分、动态绑核、全路径零拷贝等技术,实现高线性度并发协议栈。
      • 硬件加速:支持 TSO/CSUM/GRO 等硬件卸载,打通软硬件垂直加速路径。
      • 通用性(posix 兼容):接口完全兼容 posix api,应用零修改,支持 udp 的 recvfrom 和 sendto 接口。
      • 通用网络模型:基于 fd 路由器、代理式唤醒等机制实现自适应网络模型调度,udp 多节点的组播模型,满足任意网络应用场景。
      • 易用性(即插即用):基于 LD_PRELOAD 实现业务免配套,真正实现零成本部署。
      • 易运维(运维工具):具备流量统计、指标日志、命令行等完整运维手段。

      新增特性

      • 支持基于ipvlan 的l2模式网卡上通过xdp的方式部署使用Gazelle。
      • 新增中断模式,可以支持在无流量或低流量场景下,lstack不再占满CPU核。
      • 优化pingpong模式的网络,在数据包进行pingpong收发时,优化报文的发送行为。
      • 新增对openGauss数据库的单机及单主备tpcc测试支持。

      virtCCA机密虚机

      virtCCA机密虚机特性基于鲲鹏920系列S-EL2能力,在TEE侧实现机密虚机能力,实现现有普通虚机中的软件栈无缝迁移到机密环境中。基于Arm CCA标准接口,在Trustzone固件基础上构建TEE虚拟化管理模块,实现机密虚机间的内存隔离、上下文管理、生命周期管理和页表管理等机制,支持客户应用无缝迁移到机密计算环境中。

      1. 设备直通: 设备直通是基于华为鲲鹏920新型号通过预埋在PCIE Root Complex里的PCIE保护组件,在PCIE总线上增加选通器,对CPU与外设间的通信进行选通,即对SMMU的Outbound Traffic和Inbound Traffic的控制流和数据流进行控制,以此保证整体数据链路的安全性。 基于virtCCA PCIPC的设备直通能力,实现对PCIE设备的安全隔离和性能提升,存在以下优势:
        (1)安全隔离
        TEE侧控制设备的访问权限,Host侧软件无法访问TEE侧设备;
        (2)高性能
        机密设备直通,相比业界加解密方案,数据面无损耗;
        (3)易用性
        兼容现有开源OS,无需修改开源OS内核驱动代码。
      2. 国密硬件加速: 国密硬件加速是基于华为鲲鹏芯片,通过KAE加速器能力复用到安全侧,并采用openEuler UADK用户态加速器框架,提供客户机密虚机内国密加速性能提升以及算法卸载的能力。

      海光CSV3支持

      海光第三代安全虚拟化技术(CSV3)在前二代技术的基础上继续增强,在CPU内部实现了虚拟机数据的安全隔离,禁止主机操作系统读写CSV3虚拟机内存,禁止主机操作系统读写虚拟机嵌套页表,保证了虚拟机数据的完整性,实现了CSV3虚拟机数据机密性和完整性的双重安全。

      安全内存隔离单元
      安全内存隔离单元是海光第三代安全虚拟化技术的专用硬件,是实现虚拟机数据完整性的硬件基础。该硬件集成于CPU内部,放置于CPU核心访问内存控制器的系统总线路径上。该硬件可获取CSV3虚拟机安全内存的信息,包括内存物理地址,虚拟机VMID,及相关的权限等。CPU在访问内存时,访问请求先经过安全内存隔离单元做合法性检查,若访问允许,继续访问内存,否则访问请求被拒绝。
      以CSV3架构图为例,在CSV3虚拟机运行过程中读取或写入内存时,先经过页表翻译单元完成虚拟机物理地址(GPA, Guest Physical Address)到主机物理地址(HPA, Host Physical Address)的转换,再向地址总线发出内存访问请求。访问请求中除了包含读写命令、内存地址(HPA),还必须同时发出访问者的VM ID。
      当CPU读取内存数据时,若安全内存隔离单元判断内存读取请求者的VMID错误,返回固定模式的数据。当CPU写入内存数据时,若安全内存隔离单元判断内存写入请求者的VMID错误,丢弃写入请求。

      安全处理器
      安全内存隔离单元是海光第三代安全虚拟化保护虚拟机内存完整性的核心硬件,对此硬件单元的配置必须保证绝对安全,无法被主机操作系统修改。
      海光安全处理器是SoC内独立于主CPU之外的处理器,是CPU的信任根。安全处理器在CPU上电后,通过内置验签密钥验证固件的完整性,并加载执行。安全处理器具有独立硬件资源和封闭的运行环境,是CPU内最高安全等级硬件,管理整个CPU的安全。安全内存隔离单元的内容仅安全处理器有权限配置和管理,主机操作系统无权读写。
      在虚拟机启动时,主机操作系统向安全处理器发送请求,安全处理器对安全内存隔离单元做初始配置。虚拟机运行期间,安全处理器固件更新安全内存隔离单元。虚拟机退出后,安全处理器清除安全内存隔离单元的配置。安全处理器会检查主机发来的配置请求是否合法,主机向安全处理器发起的任何非法配置请求,都会被拒绝。
      虚拟机整生命周期内,安全内存隔离单元都在安全处理器的管理控制之下,保证了其配置的安全性。

      Virtual Machine Control Block(VMCB)保护
      Virtual Machine Control Block(VMCB)是虚拟机的控制信息块,保存了虚拟机ID(VMID),虚拟机页表基地址,虚拟机寄存器页面基地址等控制信息,主机操作系统通过修改虚拟机控制信息能够影响并更改虚拟机内存数据。
      CSV3增加了对虚拟机控制信息的保护,安全处理器负责创建VMCB,并配置于安全内存隔离单元的硬件保护之下。主机操作系统无法更改CSV3虚拟机VMCB的内容。
      为更好的与主机操作系统的软件配合,CSV3创建了真实VMCB与影子VMCB页面。主机操作系统创建影子VMCB,填入控制信息,传递给安全处理器。安全处理器创建真实VMCB页面,复制影子VMCB中除虚拟机ID,虚拟机页表基地址,虚拟机寄存器页面基地址等关键信息之外的控制信息,并自行添加关键控制信息。虚拟机使用真实VMCB页面启动和运行,阻止了主机操作系统对虚拟机VMCB的攻击。

      密码套件openHiTLS

      openHiTLS旨在通过提供轻量化、可裁剪的软件技术架构及丰富的国际主流及中国商用密码算法、协议,满足云计算、大数据、AI、金融等多样化行业的安全需求。它具备算法先进、性能卓越、安全可靠、开放架构及多语言平滑兼容等特点,为开发者提供了一套安全、可扩展的密码解决方案。通过社区共建与生态建设,openHiTLS推动密码安全标准在各行各业的加速落地,同时构建以openEuler为核心的安全开源生态,为用户带来更加安全、可靠的数字环境。

      支持主流的密码协议和算法
      支持国际主流及中国商用密码算法和协议,可根据场景需求选择合适的密码算法和协议。

      • 支持中国商用密码算法:SM2、SM3、SM4等
      • 支持国际主流算法:AES、RSA、(EC)DSA、(EC)DH、SHA3、HMAC等
      • 支持GB/T 38636-2020 TLCP标准,即双证书国密通信协议
      • 支持TLS1.2、TLS1.3、DTLS1.2协议

      开放架构实现全场景密码应用覆盖
      通过开放架构、技术创新及全产业链的应用实践,向产业界提供一站式全场景覆盖。

      • 灵活南、北向接口:北向统一接口行业应用快速接入;南向设备抽象,广泛的运行在各类业务系统
      • 多语言平滑兼容:统一接口层(FFI)提供多语言兼容的能力,一套密码套件支持多种语言应用
      • 广泛的产品应用实践:全产业链应用场景密码技术实践,确保密码套件在不同场景下的高性能、高安全和高可靠

      分层分级解耦、按需裁剪,实现密码套件轻量化
      加密内存成本无法回避,分层分级解耦实现密码算法软件极致成本。

      • 分层分级解耦:TLS、证书、算法功能分层解耦、算法抽象、调度管理、算法原语分级解耦、高内聚低耦合、按需组合
      • 高级抽象接口:提供高级抽象接口,避免算法裁剪引入对外接口变更,降低软件成本前提下,保持对外接口不变
      • 极致成本:按需裁剪,特性依赖关系自动管理,可实现PBKDF2 + AES算法BIN20K、堆内存1K、栈内存256字节

      密码算法敏捷架构,应对后量子迁移
      通过密码算法敏捷架构、技术创新实现应用快速迁移和先进算法的快速演进。

      • 统一北向接口:提供对算法标准化、可扩展的接口,避免算法切换造成接口变动,上层业务应用需要大范围适配新接口
      • 算法插件化管理框架:实现对算法插件化管理,算法Provider层支持算法运行时动态加载,提供热加载算法的能力
      • 算法使用配置化:支持通过配置文件获取算法信息,可避免算法标识代码硬编码

      AI集群慢节点快速发现 Add Fail-slow Detection

      AI集群在训练过程中不可避免会发生性能劣化,导致性能劣化的原因很多且复杂。现有方案是在发生性能劣化之后利用日志分析,但是从日志收集到问题定界根因诊断以及现网闭环问题需要长达3-4天之久。基于上述痛点问题,我们设计了一套在线慢节点定界方案,该方案能够实时在线观测系统关键指标,并基于模型和数据驱动的算法对观测数据进行实时分析给出劣慢节点的位置,便于系统自愈或者运维人员修复问题。 基于分组的指标对比技术提供了AI集群训练场景下的的慢节点/慢卡检测能力。这项技术通过 gala-anteater实现,新增内容包括配置文件、算法库、慢节点空间维度对比算法和慢节点时间维度对比,最终输出慢节点异常时间、异常指标以及对应的慢节点/慢卡ip, 从而提高系统的稳定性和可靠性。该服务主要功能如下:

      • 配置文件:主要包括待观测指标类型、指标算法配置参数以及数据接口,用于初始化慢节点检测算法。
      • 算法库:包括常用的时序异常检测算法spot算法,k-sigma算法,异常节点聚类算法和相似度度量算法。
      • 数据:包括指标数据、作业拓扑数据以及通信域数据,指标数据表示指标的时序序列,作业拓扑数据表示训练作业所用的节点信息,通信域数据表示节点通信的连接关系,包括数据并行、张量并行和流水线并行等。
      • 指标分组对比: 包括组内空间异常节点筛选和单节点时间异常筛选。组内空间异常节点筛选根据异常聚类算法输出异常节点;单节点时间异常筛选根据单节点历史数据进行时序异常检测判断节点是否异常。

      rubik在离线混部调度协同增强

      云数据中心资源利用率低(< 20%)是行业普遍存在的问题,提升资源利用率已经成为了一个重要的技术课题。将业务区分优先级混合部署(简称混部)运行是典型有效的资源利用率提升手段。然而,将多种类型业务混合部署能够显著提升集群资源利用率,也带来了共峰问题,会导致关键业务服务质量(QoS)受损。因此,如何在提升资源利用率之后,保障业务 QoS 不受损是技术上的关键挑战。 rubik 是 openEuler提供的容器混部引擎,提供一套自适应的单机算力调优和服务质量保障机制,旨在保障关键业务服务质量不下降的前提下,提升节点资源利用率。

      • Cache 及内存带宽控制:支持对低优先级虚拟机的 LLC 和内存带宽进行限制,当前仅支持静态分配。
      • CPU 干扰控制:支持CPU时间片us级抢占及SMT干扰隔离,同时具有防优先级反转能力。
      • 内存资源抢占:支持在节点OOM时优先杀死离线业务,从而保证在线业务的服务质量。
      • memcg异步内存回收:支持限制混部时离线应用使用的总内存,并在在线内存使用量增加时动态压缩离线业务内存使用。
      • QuotaBurst柔性限流:支持关键在线业务被 CPU 限流时允许短时间突破 limit 限制,保障在线业务运行的服务质量。
      • PSI 指标观测增强:支持 cgroup v1 级别的压力信息统计,识别和量化资源竞争导致的业务中断风险,支撑用户实现 硬件资源利用率提升。
      • IOCost限制业务io权重:支持限制混部是离线业务的磁盘读写速率,防止离线业务争抢在线业务的磁盘带宽,从而提升在线业务服务质量。
      • CPI指标观测:支持通过观察CPI指标统计当前节点的压力,识别并驱逐离线业务以保证在线应用的服务质量。

      此版本新增以下特性:

      • 节点CPU/内存干扰控制和驱逐:支持通过观测当前节点的CPU和内存水位,在资源紧张情况下通过驱逐离线业务,保证节点水位安全。

      CFGO反馈优化特性增强

      日益膨胀的代码体积导致当前处理器前端瓶颈成为普遍问题,影响程序运行性能。编译器反馈优化技术可以有效解决此类问题。 CFGO(Continuous Feature Guided Optimization)是GCC for openEuler和毕昇编译器的反馈优化技术名,指多模态(源代码、二进制)、全生命周期(编译、链接、链接后、运行时、OS、库)的持续反馈优化,主要包括以下两类优化技术:

      • 代码布局优化:通过基本块重排、函数重排、冷热分区等技术,优化目标程序的二进制布局,提升i-cache和i-TLB命中率。
      • 高级编译器优化:内联、循环展开、向量化、间接调用等提升编译优化技术受益于反馈信息,能够使编译器执行更精确的优化决策。

      GCC CFGO反馈优化共包含三个子特性:CFGO-PGO、CFGO-CSPGO、CFGO-BOLT,通过依次使能这些特性可以缓解处理前端瓶颈,提升程序运行时性能。为了进一步提升优化效果,建议CFGO系列优化与链接时优化搭配使用,即在CFGO-PGO、CFGO-CSPGO优化过程中增加-flto=auto编译选项。

      • CFGO-PGO

      CFGO-PGO在传统PGO优化的基础上,利用AI4C对部分优化遍进行增强,主要包括inline、常量传播、去虚化等优化,从而进一步提升性能。

      • CFGO-CSPGO

      PGO的profile对上下文不敏感,可能导致次优的优化效果。通过在PGO后增加一次CFGO-CSPGO插桩优化流程,收集inline后的程序运行信息,从而为代码布局和寄存器优化等编译器优化遍提供更准确的执行信息,实现性能进一步提升。

      • CFGO-BOLT

      CFGO-BOLT在基线版本的基础上,新增aarch64架构软件插桩、inline优化支持等优化,最终进一步提升性能。

      AI4C编译选项调优和AI编译优化提升典型应用性能

      AI4C(AI for Compiler)代表AI辅助编译优化套件,是一个使用AI技术优化编译选项和优化遍关键决策的软件框架,旨在突破当前编译器领域的两个关键业务挑战:

      1. 性能提升困难:传统编译器优化开发周期长,新的编译优化技术与已有编译优化过程难以兼容达到1+1>=2的效果,导致性能提升无法达到预期效果。
      2. 调优效率低下:硬件架构或者软件业务场景变更,需要根据新的负载条件投入大量人力成本,重新调整编译优化的成本模型,导致调优时间长。

      AI4Compiler框架提供编译选项自动调优和AI模型辅助编译优化两个主要模块。 框架上层调度模块驱动中层编译器核心优化过程,通过不同编译器各自的适配模块调用底层AI模型和模型推理引擎,以优化特性相关数据和硬件架构参数作为模型输入特征运行模型推理,获得编译过程关键参数最佳决策,从而实现编译优化。

      • 编译自动调优(Autotuner)
        AI4C的自动调优基于OpenTuner(2015 Ansel et al.)开发,通过插件驱动编译器采集优化特性相关参数信息,通过搜索算法调整关键决策参数(例如循环展开系数),通过插件注入编译过程修改决策,运行编译输出二进制获得反馈因子,迭代自动调优。
        (1)已集成一系列搜索算法,动态选择算法并共享搜索进;
        (2)支持用户配置yaml自定义搜索空间和扩展底层搜索算法;
        (3)支持细粒度代码块调优与粗粒度编译选项自动调优;
        (4)在cormark、dhrystone、Cbench等benchmark上获得3%~5%不等的收益。
      • AI辅助编译优化(ACPO)
        ACPO提供全面的工具、库、算法,为编译器工程师提供简单易用的接口使用AI模型能力,替代或增强编译器中启发式优化决策算法。在编译器优化过程中,使用插件提取优化遍的输入结构化数据作为模型输入特征,getAdvice运行预训练模型获得决策系数,编译器使用模型决策结果替代部分启发式决策,获得更好的性能。
        (1)解耦编译器与AI模型和推理引擎,帮助算法开发者专注AI算法模型开发,简化模型应用成本,同时兼容多个编译器、模型、AI推理框架等主流产品,提供AI模型的热更新能力;
        (2)实践落地IPA Loop Inline、RTL Loop Unroll等不同优化阶段和优化过程,获得相对显著的收益。

      RPM国密签名支持

      根据国内相关安全技术标准,在某些应用场景中需要采用国密算法实现对重要可执行程序来源的真实性和完整性保护。openEuler当前采用RPM格式的软件包管理,软件包签名算法基于openPGP签名规范。openEuler 24.03 LTS SP1版本基于RPM包管理机制扩展对于SM2签名算法和SM3摘要算法的支持。

      本特性主要基于RPM组件以及其调用的GnuPG2签名工具,在现有openPGP签名体系的基础上,进行国密算法使能。在RPM软件包签名场景,用户可调用gpg命令生成SM2签名私钥和证书,并调用rpmsign命令为指定的RPM包添加基于SM2+SM3算法的数字签名。在RPM软件包验签场景,用户可调用rpm命令导入验签证书,并通过校验RPM包的数字签名信息从而验证软件包的真实性和完整性。

      oneAPI 框架支持

      Unified Acceleration Foundation(UXL)正在推动构建开放的异构加速软件框架的标准化。其中oneAPI作为初始项目的目标是提供一种跨行业、开放、基于标准的统一编程模型,并为异构加速器(如 CPU、GPU、FPGA 和专用加速器)提供统一的开发体验。oneAPI规范扩展了现有的开发者编程模型,通过并行编程语言(Data Parallel C++)或者一组加速软件库以及底层的硬件抽象接口(Level Zero)来支持跨架构的编程,从而支持多种加速硬件和处理器平台。为了提供兼容性并提高开发效率,oneAPI 规范基于行业标准,提供了多种开放的、跨平台和易用的开发者软件套件。

      为了在openEuler上完整的支持oneAPI,我们从openEuler 24.03 LTS开始分别集成了oneAPI的开发环境Basekit和运行态环境的Runtime容器镜像。并从openEuler 24.03 LTS SP1开始,openEuler原生支持了oneAPI系列底层框架库的适配和集成,包括oneAPI运行所需的各类依赖库,以及英特尔的图形加速编译器,以及OpenCL的runtime,和支持不同平台(x86_64和aarch64)的底层硬件抽象层(Level-Zero)等。同时为了完整支持Data Parallels C++和基于加速库的API的编程模式,我们也对oneAPI官方提供的各类软件包在openEuler上做了相应的适配和验证的工作,这样我们可以方便的通过在openEuler中增加oneAPI的官方DNF/YUM源来安装和更新所有的oneAPI的运行依赖、开发工具和调试工具等。

      OpenVINO 支持

      OpenVINO是一套开源的AI工具套件和运行库,其能用于优化几乎各类主流框架的深度学习模型,并在各种Intel处理器和加速器以及其他硬件平台如ARM上以最佳性能进行部署并高效提供AI服务。我们从openEuler 24.03 LTS SP1开始,提供了OpenVINO原生的适配和集成,从而在openEuler上提供了完整的OpenVINO的计算能力。

      OpenVINO的模型转化功能可以将已经使用流行框架(如 TensorFlow、PyTorch、ONNX和PaddlePaddle等)训练的模型进行转换和优化。并在各类的Intel处理器和加速器或者ARM的硬件环境中进行部署,包括在本地、设备端、浏览器或云端等场景下提供服务能力。

      鲲鹏KAE加速器

      鲲鹏加速引擎KAE(Kunpeng Accelerator Engine)是基于鲲鹏920处理器提供的硬件加速器解决方案,包含了KAE加解密和KAEZip。KAE加解密和KAEZip分别用于加速SSL(Secure Sockets Lyaer) / TLS(Transport Layer Security)应用和数据压缩,可以显著降低处理器消耗,提高处理器效率。此外,鲲鹏加速引擎对应用层屏蔽了其内部细节,用户通过OpenSSL、zlib标准接口即可实现快速迁移现有业务。 KAE加解密是鲲鹏加速引擎的加解密模块,使用鲲鹏加速引擎实现RSA/SM3/SM4/DH/MD5/AES算法,结合无损用户态驱动框架,提供高性能对称加解密、非对称加解密算法能力,兼容OpenSSL 1.1.1x系列版本,支持同步&异步机制。 KAEzip是鲲鹏加速引擎的压缩模块,使用鲲鹏硬加速模块实现deflate算法,结合无损用户态驱动框架,提供高性能Gzip/zlib格式压缩接口。通过加速引擎可以实现不同场景下应用性能的提升,例如在分布式存储场景下,通过zlib加速库加速数据压缩和解压。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份