目前,在国家的支持下,国产操作系统蓬勃发展。KingbaseES共享集群在开发过程中,已经考虑了诸多跨平台问题,但是在和各个厂商的操作系统适配中,仍然有一些意想不到的问题。
在aarch64平台和loongarch64平台上,由于底层汇编指令的变更,需要修改一些自旋锁、原子操作等相关操作的实现,这些已经在代码中解决。在一些操作系统上,默认SHELL为dash,需要将/bin/sh由dash重定向为bash。除此之外,最为常见的适配问题是crm_mon无法显示的问题。这个问题在多个国产系统中均存在,且目前只能通过配置进行有效的解决。
命令crm_mon,是clusterware实时展示集群状态的工具。静态的查看集群状态,可以通过crm_mon -1或者crm status,这两个命令仅能输出此刻的状态,不能持续刷新终端界面。而crm_mon这个命令,是可以的。因此在观察clusterware集群状态时,crm_mon是一个非常好用的工具。
工具crm_mon在展示集群状态时,需要根据操作系统配置,通过libncurses打开终端,然后向终端实时刷新式输出集群状态信息。但是在某些操作系统中,执行crm_mon,报出如下错误:
crm_mon
Error opening terminal: xterm
这是什么情况?
报错信息提示,打开名为xterm终端出现错误。
首先会有第一个疑问,为什么是xterm?这是因为系统配置了默认TERM,TERM是常见的系统环境变量,一般为xterm,可以通过如下命令查看默认terminal