← 返回文章列表
信创 4 分钟阅读 炬鲸团队

炬鲸 OBSERVE 信创适配实录:麒麟/统信 + 飞腾/鲲鹏/海光全栈跑通

记录 OBSERVE 全组件迁移到麒麟/统信 + 飞腾/鲲鹏/海光全栈的实际过程:ARM64 性能实测、系统与数据库方言适配清单,以及可复用的验收清单。

这篇文章记录我们把 OBSERVE 全套组件迁移到信创环境的实际过程,包括踩过的坑。目标读者是负责信创落地的基础架构负责人。

一、适配范围与架构形态

信创环境常见的组合是:操作系统麒麟 V10 / 统信 UOS,CPU 飞腾(ARM64)、鲲鹏(ARM64)或海光(x86_64),数据库达梦或人大金仓。OBSERVE 的适配策略是不改业务逻辑、只换运行时底座:采集器、存储层、查询层分别提供 ARM64 与 x86_64 双架构镜像,元数据层完成对达梦/金仓的方言适配。部署上单机与集群两种形态都支持,小规模(日增日志 < 500GB)单机三进程即可,中大规模走分布式存储。

二、CPU 架构:ARM64 上最容易忽略的两件事

迁移到飞腾/鲲鹏最常见的问题不是编译,而是:

  1. 字节序与内存对齐:少数从 x86 时代带过来的 C 扩展在 ARM 上会触发对齐错误,排查时优先怀疑直接操作裸内存的模块;
  2. JDK 选型:ARM64 上务必用厂商提供或经验证的 JDK(如毕昇 JDK、aarch64 版 OpenJDK),避免默认的 x86 JDK 走翻译层运行导致性能腰斩。

实测同等核数下,鲲鹏 920 跑日志写入与检索的吞吐约为同代 x86 服务器的 80%—95%,差异主要来自单核性能,集群水平扩展可以弥补。海光因为本身就是 x86_64,迁移工作量主要在系统和数据库层,CPU 侧基本无需改动。

三、操作系统:麒麟/统信的三个注意点

  • systemd 差异:麒麟与统信的 systemd 版本与 RHEL 略有差异,安装时用系统自带的 service 模板,不要硬套 CentOS 的启动脚本;
  • OpenSSL 版本:信创系统 OpenSSL 偏旧,采集器与存储节点之间 TLS 统一用 1.2,别默认开 1.3;
  • glibc 兼容:二进制以麒麟 V10 的 glibc 为基准编译、向上兼容统信,避免在新 glibc 上编译后跑在旧系统报 symbol 缺失。

四、数据库:达梦/金仓的方言适配清单

元数据(用户、告警规则、看板配置)落到达梦或金仓时,改动集中在:

  1. AUTO_INCREMENT 换成序列;
  2. 分页语法换成各引擎的 LIMIT/OFFSET 变体;
  3. 字符串类型长度与默认排序规则差异,涉及索引的字段要统一 collation。

日志和指标这类海量时序数据不落传统关系库,而是落到自研列式存储引擎,因此数据库国产化对查询性能几乎无影响——这是把元数据与时序数据分离带来的直接好处。列式引擎本身是纯 Go/C 实现,与 CPU 指令集强相关,但我们已经为 ARM64 单独编译了优化版本。

五、一个可复用的验收清单

上线前按此清单验收:

  1. 飞腾/鲲鹏/海光三种 CPU 各跑一遍完整写入与检索压测,确认吞吐在可接受区间;
  2. 麒麟 V10 与统信 UOS 各做一次干净安装 + 重启自检;
  3. 达梦/金仓做一次主备切换演练,确认元数据不丢、服务自动恢复;
  4. 全部组件去 x86 依赖,ldd 检查无缺失库;
  5. 跑满 72 小时稳定性测试,重点盯 ARM64 节点有无偶发对齐崩溃。