1月26日,开源操作系统社区OpenCloudOS宣布发布首个正式版本:OpenCloudOS 8.5。OpenCloudOS 8.5基于Linux内核自主研发设计,其稳定性、安全性、兼容性和性能等核心能力均已得到长时间充分验证。作为可靠的企业级服务器Linux发行版,用户可将OpenCloudOS 8.5直接部署应用到生产系统,降低用户的系统运营成本。

OpenCloudOS移植了社区最新关键特性,并结合不同的业务场景进行了功能和性能优化,典型特性包括:容器资源视图隔离(cgroupfs)、云原生SLI、Monitor Buffer、ARM64热补丁、Page Cache Limit等。整体上OpenCloudOS的内核能在保障企业级稳定性的同时,享有社区的各种新技术和自研优化。

容器资源视图隔离(cgroupfs)

云原生场景中,容器的整体隔离性还不完整,其中,/proc、/sys 文件系统中的一些关键资源信息,还没有完整的容器化,导致在物理机/虚拟机中的一些常用命令(比如 free / top )在容器中运行时,不能准确展示容器视角的信息,这也是业界的一类顽疾。OpenCloudOS内核增强了容器资源视图隔离,实现了cpustat、cpuinfo、loadavg、meminfo、vmstat、uptime、DiskStats等关键资源视图的隔离,同时支持iotop等实用工具,还支持指定mount点的隐藏。整体提升了容器隔离性。

云原生SLI

SLI (Service Level Indicator) 是用于观测 Service level 的指标;SLO 是基于 SLI 指定的目标。从云原生的角度看,云原生 SLI 可以理解为针对云原生场景的可用于观测 Service level 的指标,具体来说即容器视角的的一些关键指标,这也是定义容器 SLO 的基础。另一方面,现有 Upstream Kernel 在 Cgroup 基本的统计和监控还比较原始和粗糙,缺乏可用的、容器视角的 SLI 数据采集和抽象。OpenCloudOS内核设计了云原生 SLI,通过在内核中实时的搜集和计算(低开销方式),提供充分的、专业的、不同维度的 SLI 指标,供上层( K8s )使用,用户可基于此定个相应的 SLO。

Monitor Buffer

OpenCloudOS内核提供的云原生常态监控工具,本质是用于监控干扰和抖动的内存区,当关键指标不符合预期(超限)时,自动记录相关上下文信息,能有效捕获随机出现的异常上下文,解决业务随机抖动的业界难题。

ARM64热补丁

内核热补丁技术是一种无需重启服务器,即可实现修改内核运行时代码的技术。不同厂商推出了自己的热补丁技术,包括Ksplice、Kgraft、Kpatch、Livepatch,但一直缺乏对ARM64架构的完美支持。OpenCloudOS基于Kpatch框架开发了ARM64热补丁特性,完整提供了ARM64环境中的热补丁解决方案,可在不影响业务正常运行的情况下,修复内核bug或者安全漏洞,以ARM64平台的运维能力和体验。

Page Cache Limit

page cache是linux内核的一种文件缓存机制,可提升系统的读写性能。但是过多的文件缓存,会占用大量的系统内存,可能会导致各种系统问题。OpenCloudOS实现了page cache limit特性,可以解决因page cache过多导致的各种问题,同时可增强实现容器级别的page cache limit(包括slab limit),可进一步增强容器的隔离性。

版本获取

OpenCloudOS 8.5版本获取

包括X86和ARM架构的ISO、sqfs和虚拟机镜像

基础软件包版本信息

kernel版本:5.4.119-19

gcc版本:8.5.0

glibc版本:2.28

编程语言支持:Python 3.9/3.8/3.6/2.7 ;PHP 7.4/7.3/7.2;Ruby 3.0/2.7/2.6/2.5;Node.js 16/14/13/12;Golang 1.16

开源数据库:MySQL 8.0;MariaDB 10.5/10.3;PostgreSQL 13/12/10/9.6;Redis  6/5

特色工具

其他特色工具和特性还在持续打磨中,比如:网络包全生命周期跟踪工具Nettrace;基于libperf和libtraceevent的灵活而轻量的监控框架。具体详见github链接地址:https://github.com/OpenCloudOS