文档下载建议反馈入口

  • 部署准备
  • 部署 KaiwuDB
  • 配置许可证

单节点裸机部署

本文介绍如何使用 KaiwuDB 二进制安装包在单个节点上安装部署 KaiwuDB。

提示

KaiwuDB 支持基于 DRBD 块设备复制的开源软件方案,实现主备节点间的数据复制,如需实现单机高可用性,请先参阅单机高可用性方案

部署准备

硬件

下表列出部署 KaiwuDB 所需的硬件规格。

项目要求
CPU 和内存单节点配置建议不低于 4 核 8G。对于数据量大、复杂的工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。
磁盘- 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。
- 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。
- KaiwuDB 系统自身启动不会占用过多磁盘容量(低于 1G)。实际所需磁盘大小主要取决于用户的业务量以及是否开启 KaiwuDB 压缩等可以减少原始数据磁盘占用的功能。实际部署时,用户可以根据实际的业务规模和性能要求规划硬件资源。更多详细信息,参见预估磁盘使用量
文件系统建议使用 ext4 文件系统。

操作系统

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

操作系统版本架构
Anolis8.6ARM_64
8.6x86_64
KylinOSV10 SP3 2403
V10 SP3 2303
ARM_64
V10 SP3 2403
V10 SP3 2303
x86_64
UbuntuV18.04x86_64
V20.04ARM_64
V20.04x86_64
V22.04ARM_64
V22.04x86_64
V24.04ARM_64
V24.04x86_64
UOS1060ex86_64
1060eARM_64

说明

未提及的操作系统版本也许可以运行 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
squashfs-toolsanyN/A
libgccv7.3.0+N/A
mountanyN/A
squashfuseany可选依赖

端口要求

下表列出 KaiwuDB 服务需要映射的端口。在安装部署前,确保目标机器的以下端口没有被占用且没有被防火墙拦截。在安装部署时,用户可以修改 deploy.cfg 文件中的端口配置参数。

端口号说明
8080数据库 Web 服务端口
26257数据库服务端口和对外连接端口

安装包

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

tar -zxvf <package_name>

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

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

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
      

部署 KaiwuDB

部署 KaiwuDB 时,系统将对配置文件、运行环境、硬件配置和软件依赖进行检查。如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求。如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。

在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KaiwuDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。

部署完成后,系统会将 KaiwuDB 封装成系统服务(名称为 kaiwudb),并生成以下文件:

  • kaiwudb.service:配置 KaiwuDB 的 CPU 资源占用率。
  • kaiwudb_env:配置 KaiwuDB 启动参数。

前提条件

  • 待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求。
  • 安装用户为 root 用户或者拥有 sudo 权限的普通用户。
    • root 用户和配置 sudo 免密的普通用户在执行部署脚本时无需输入密码。
    • 未配置 sudo 免密的普通用户在执行部署脚本时,需要输入密码进行提权。

部署步骤

如需部署 KaiwuDB,遵循以下步骤。

  1. 登录待部署节点,编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。

    说明

    默认情况下,deploy.cfg 配置文件中包含集群配置参数。请删除或注释 [cluster] 集群配置项。

    配置文件示例:

    [global]
    secure_mode=tls
    management_user=kaiwudb
    rest_port=8080
    kaiwudb_port=26257
    data_root=/var/lib/kaiwudb
    cpu=1
    encrypto_store=true
    
    [local]
    node_addr=your-host-ip
    
    # [cluster]
    # node_addr=your-host-ip, your-host-ip
    # ssh_port=22
    # ssh_user=admin
    

    参数说明:

    • global:全局配置
      • secure_mode:是否开启安全模式,支持以下三种取值:
        • insecure:使用非安全模式。
        • tls:(默认选项)开启 TLS 安全模式。开启安全模式后,KaiwuDB 生成 TLS 证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录。
        • tlcp:开启 TLCP 安全模式。开启安全模式后,KaiwuDB 生成 TLCP 证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录。
      • management_user:KaiwuDB 的管理用户,默认为 kaiwudb。安装部署后,KaiwuDB 创建相应的管理用户以及和管理用户同名的用户组。
      • rest_port:KaiwuDB Web 服务端口,默认为 8080
      • kaiwudb_port:KaiwuDB 服务端口,默认为 26257
      • data_root:数据目录,默认为 /var/lib/kaiwudb
      • cpu: 可选参数,用于指定 KaiwuDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。注意:如果部署环境为 Ubuntu 18.04 版本,部署完成后,需要将 kaiwudb.service 文件中的 CPUQuota 修改为整型值,例如,将 180.0% 修改为 180%,以确保设置生效。具体操作步骤,参见配置 CPU 资源占用率
      • encrypto_store: 可选参数,用于在部署时启用关系数据库存储加密功能。默认情况下,该参数不会显示,需要用户手动添加到配置文件中并设置为 true。启用后,系统将在 /etc/kaiwudb/certs 目录下自动生成存储密钥,使用 SM4 加密算法对数据进行加密。KaiwuDB 支持通过 --store-encryption 启动参数,在部署后进行目录加密、解密、存储密钥更新和算法更换等操作,更多信息,参见存储加密
    • local:本地节点配置
      • node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KaiwuDB 服务端口。
  2. deploy.sh 脚本添加运行权限。

    chmod +x ./deploy.sh
    
  3. 执行单机部署安装命令。

    ./deploy.sh install --single
    

    执行成功后,控制台输出以下信息:

    INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...
    
  4. 根据系统提示重新加载 systemd 守护进程的配置文件。

    systemctl daemon-reload
    
  5. 启动 KaiwuDB 节点。

    ./deploy.sh start
    

    执行成功后,控制台输出以下信息:

    START COMPLETED: KaiwuDB has started successfuly.
    
  6. 查看 KaiwuDB 节点状态。

    ./deploy.sh status
    

    或者

    systemctl status kaiwudb
    
  7. (可选)配置 KaiwuDB 开机自启动。

    配置 KaiwuDB 开机自启动后,如果系统重启,则自动启动 KaiwuDB。

    systemctl enable kaiwudb
    
  8. (可选)执行 add_user.sh 脚本创建数据库用户。如果跳过该步骤,系统将默认使用部署数据库时使用的用户,且无需密码访问数据库。

    ./add_user.sh
    Please enter the username: 
    Please enter the password:
    

    执行成功后,控制台输出以下信息:

    [ADD USER COMPLETED]:User creation completed.
    

配置许可证

KaiwuDB 数据库集群启动后,只有具有 admin 权限的管理员可以登录数据库并通过 cluster.license 集群参数将许可证添加到已启动的集群中。成功启动 KaiwuDB 集群后,如果集群中的当前节点数量未超过许可证限制的节点数量时,用户可以设置许可证成功。否则,用户设置许可证失败。此时,用户需要先缩容集群,等节点数量满足许可证要求后,方可成功设置许可证。数据库会自动检查许可证的有效性。如果有效,则激活集群并允许其他用户登录。否则,将拒绝其他用户登录。有关许可证管理的详细信息,参见许可证管理

  1. 联系open in new window KaiwuDB 技术支持人员,获取 .lic 格式的 KaiwuDB 许可证文件。

  2. 复制文件中的许可证码,通过以下命令将许可证码添加到已启动的数据库中。

    SET CLUSTER SETTING cluster.license = '<your-license-code>';
    

    其中,your-license-code 应替换为从 .lic 文件中提取的许可证码。有关 cluster.license 参数的详细信息,参见集群实时参数

  3. (可选)查看许可证信息。

    SHOW LICENSE;
    

    用户也可以通过 kwdb_internal.kwdb_license 系统视图查看许可证信息。有关详细信息,参见系统视图

  4. (可选)更新许可证。

    许可证过期后,只有具有 admin 权限的管理员可以登录数据库并通过 cluster.license参数更新许可证。