原因:OBD-2014 : XXXX's cpu does not support avx

在 virtualBox + CentO S 7 的实验环境, 安装OCP预校验,失败

原因:[OBD-2014] XXX’s cpu does not support avx。

之前同样的环境,装过OCP,是可以的,现在打不开了,重装就报错了,是版本新加了校验吗?

有什么解决或者忽略的办法吗?

感觉日志定位错误太难了!!!不够简洁明了

1 个赞

报错信息:

[OBD-2014] XXX’s cpu does not support avx

意思是:你当前机器的 CPU 不支持 AVX 指令集,而当前 OCP(OceanBase Control Plane)或 OBD(OceanBase Deployment) 的版本在安装或运行时做了 AVX 支持的校验,导致直接报错。
之前为什么可以装?

这是因为:
旧版本 OCP/OBD 并没有强制做 AVX 检测
但 新版本 出于性能或稳定性要求,加入了 AVX 检查,不符合就直接中断安装

所以你同样的环境,在旧版本中没问题,但现在遇到新版本的 AVX 检查,无法通过了。
是否有办法跳过 AVX 校验?

官方在 OceanBase 的 obd 工具中 目前没有提供跳过 AVX 检查的选项。这是一个硬件层面的校验。
但是如果你想尝试在不符合的环境中“强行”安装,有以下思路(非官方推荐):

1️ 换用旧版本:

找到之前成功安装的 OCP/OBD 版本(比如 3.x、4.x),用它继续部署。

这些版本通常没有 AVX 校验。

2️ 更换支持 AVX 的机器:

使用支持 AVX 的 CPU 机器部署(云上机器/虚拟机/物理机)。

如 Intel Sandy Bridge 及以上的 CPU 都支持 AVX。

3️ 二进制修改(风险较大):

理论上,可以尝试 patch 掉可执行文件里的 AVX 检查逻辑(例如修改 OBD Python 代码、或者二进制文件)。

但这会破坏完整性,也不推荐,且未来升级依旧可能出错。

使用之前能安装的软件包,现在安装也报 不支持 avx了