文档下载建议反馈入口

  • 硬件
  • 操作系统
  • 软件依赖
  • 端口
  • 安装包和可视化安装程序
  • libprotobuf 安装
  • 节点配置

裸机部署准备

硬件

说明

为了提高可用性,降低数据丢失的风险,建议在单台计算机上只运行一个节点。KaiwuDB 采用跨节点复制机制,如果在一台计算机上同时运行多个节点,当计算机发生故障时,更有可能丢失数据。

下表列出使用裸机安装包部署 KaiwuDB 所需的硬件规格要求。

项目要求
CPU 和内存- 单节点配置建议不低于 4 核 8G。
- 对于数据量大、复杂工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。
磁盘- 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。
- 使用 HDD 硬盘部署单机版本时,避免设备数过多或每秒写入测点数过高,否则数据写入性能将显著下降;不建议使用 HDD 部署分布式集群版本。
- 磁盘至少能够实现 500 IOPS 和 30 MB/s 处理效率。
- KaiwuDB 系统自身启动不会占用过多磁盘容量(低于 1G)。实际所需磁盘大小主要取决于用户的业务量,更多详细信息,参见预估磁盘使用量
文件系统建议使用 ext4 文件系统。

操作系统

KaiwuDB 支持在以下服务器操作系统进行安装部署。

操作系统版本ARM_64x86_64
Anolis8
KylinOSV10 SP2
V10 SP3 2403
UbuntuV20.04
V22.04
V24.04
UOS1070e
Windows ServerWSL2

说明

未提及的操作系统版本也许可以运行 KaiwuDB,但尚未得到 KaiwuDB 官方支持。

软件依赖

安装时,KaiwuDB 会对依赖进行检查。如果缺少依赖会退出安装并提示依赖缺失。如果目标机器不能联网,用户需要在能联网的机器上根据目标机器的操作系统下载好所有依赖文件,然后将依赖文件复制到目标机器上进行安装。

下表列出需要在目标机器安装的依赖。

依赖版本说明
OpenSSLv1.1.1+N/A
libprotobufv3.6.1+Ubuntu 18.04 版本默认的 libprotobuf 版本低于所需版本,用户需要在部署前提前安装高版本的 libprotobuf 或者使用安装包内提供的高版本 libprotobuf 完成安装。具体操作说明,参见libprotobuf 安装
GEOSv3.3.8+可选依赖
xz-libsv5.2.0+N/A
libgccv7.3.0+N/A

端口

下表列出 KaiwuDB 服务默认使用的端口。在安装部署前,确保目标机器的以下端口没有被占用且没有被防火墙拦截。如需使用其他端口,可在安装部署过程中进行修改。

端口号说明
8080数据库 Web 服务端口
26257数据库服务端口、节点监听端口和对外连接端口
27257数据库时序引擎间的 brpc 通信端口

安装包和可视化安装程序

根据不同的使用场景,获取安装包或可视化安装程序:

  • 安装包:适用于生产环境部署和具备 Linux 操作经验的用户。支持脚本部署kwbase CLI 部署两种方式,可灵活配置集群参数,具备完整的命令行管理功能。
  • 可视化安装程序:适用于初学者和偏好图形化操作的用户。通过直观的向导界面简化部署流程,降低技术门槛,使用前需确保目标机器具备图形化桌面环境支持。

安装包

获取系统环境对应的 DEB 或 RPM 安装包,将安装包复制到待安装 KaiwuDB 的目标机器上,然后解压缩安装包:

tar -zxvf <package_name>

解压后生成的目录包含以下文件:

文件说明
add_user.sh安装、启动 KaiwuDB 后,为 KaiwuDB 数据库创建用户。
deploy.cfg安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。
deploy.sh安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。
packages 目录存放 DEB、RPM、镜像包和 libprotobuf 包。
utils 目录存放工具类脚本。

可视化安装程序

获取系统环境对应的可视化向导安装程序(.AppImage 格式),复制到待安装 KaiwuDB 的目标机器上。

libprotobuf 安装

说明

以下步骤仅适用于 Ubuntu 18.04 操作系统。

检查当前系统中是否已安装 libprotobuf 及其版本是否符合要求(3.6.1 及以上版本)。

dpkg -l | grep libprotobuf
  • 如果未安装 libprotobuf,手动安装 packages 目录下的 libprotobuf 文件。

    dpkg -i ./libprotobuf23_3.12.4_amd64.deb
    
  • 如果系统中已经安装了 libprotobuf,但版本低于 3.6.1:

    1. 查看 libprotobuf 版本的相关依赖:

      apt-cache rdepends <libprotobuf_package>
      
    2. 确认没有其他重要包依赖于当前版本后,手动安装 packages 目录下的 libprotobuf 文件。

      dpkg -i ./libprotobuf23_3.12.4_amd64.deb
      

节点配置

SSH 免密登录

  1. 登录当前节点,生成公私密钥对。

    ssh-keygen -f ~/.ssh/id_rsa -N ""
    

    参数说明:

    • -f ~/.ssh/id_rsa:指定生成的密钥对文件目录。
    • -N:将密钥密码设置为空,以实现免密登录。
  2. 将密钥分发至集群其它节点。

    ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no <target_node>
    
  3. 确认是否可以使用 SSH 免密登录到集群其它节点。

    ssh <target_node>
    

时钟同步

KaiwuDB 采用中等强度的时钟同步机制来维持数据的一致性。当节点检测到自身的机器时间与集群中至少 50% 的节点的机器时间的误差值超过集群最大允许时间误差值(默认为 500 ms)的 80% 时,该节点会自动停止,从而避免违反数据一致性,带来读写旧数据的风险。每个节点都必须运行 NTP(Network Time Protocol,网络时间协议)或其他时钟同步软件,防止时钟漂移得太远。

以下示例以 CentOS 7 为例,介绍如何配置时钟同步。

  1. 使用 SSH 登录到将要部署集群的节点。

  2. 关闭 timesyncd 服务。

    timedatectl set-ntp no
    
  3. 安装 NTP 服务。

    sudo apt install ntp
    
  4. 关闭 NTP 后台进程。

    service ntp stop
    
  5. 通过 NTP 服务同步机器时间。

    ntpdate -u 0.cn.pool.ntp.org
    
  6. 打开 /etc/ntp.conf 文件,查找 serverpool 的相关配置并将其修改为如下内容。

    server 0.cn.pool.ntp.org iburst
    server 1.cn.pool.ntp.org iburst
    server 2.cn.pool.ntp.org iburst
    server 3.cn.pool.ntp.org iburst
    
  7. 启动 NTP 服务。

    service ntp start
    
  8. 在所有要安装 KaiwuDB 服务的集群节点上重复执行以上步骤。