部署准备
硬件
说明
为了提高可用性,降低数据丢失的风险,建议在单台计算机上只运行一个节点。KaiwuDB 采用跨节点复制机制,如果在一台计算机上同时运行多个节点,当计算机发生故障时,更有可能丢失数据。
下表列出部署 KaiwuDB 所需的硬件规格。
| 项目 | 要求 |
|---|---|
| CPU 和内存 | 单节点配置建议不低于 4 核 8G。对于数据量大、复杂的工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。 |
| 磁盘 | - 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。 - 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。 - KaiwuDB 系统自身启动不会占用过多磁盘容量(低于 1G)。实际所需磁盘大小主要取决于用户的业务量。 |
| 文件系统 | 建议使用 ext4 文件系统。 |
操作系统
在以下操作系统及对应的 CPU 架构组合上,KaiwuDB 可满足企业级生产质量的要求,产品特性经过全面且系统化的验证:
| 操作系统 | 版本 | 裸机-ARM64 | 裸机-x86_64 | 裸机-LoongArch_64 | 容器-ARM64 | 容器-x86_64 |
|---|---|---|---|---|---|---|
| CentOS | 7 | ✓ | ||||
| 8 | ✓ | |||||
| KylinOS | V10 SP2 | ✓ | ✓ | ✓ | ✓ | |
| V10 SP3 2303 | ✓ | ✓ | ||||
| V10 SP3 2403 | ✓ | ✓ | ✓ | ✓ | ✓ | |
| openEuler | 22.03 | ✓ | ✓ | |||
| 24.03 | ✓ | ✓ | ||||
| Ubuntu | 20.04 | ✓ | ✓ | ✓ | ✓ | |
| 22.04 | ✓ | ✓ | ✓ | ✓ | ||
| 24.04 | ✓ | ✓ | ✓ | ✓ | ||
| UOS | 1070e | ✓ | ✓ | ✓ | ✓ |
说明
- 容器部署需要目标机器已安装 Docker。如未安装,请参考 Docker 官方安装文档 进行安装。对于无法联网的环境,可下载 Docker 二进制包进行离线安装,详见 Docker 离线安装指南。
- 如果系统开启了 SELinux,将无法使用
service命令管理 KaiwuDB,部署前建议关闭 SELinux。 - 以下环境不支持可视化模式:
- CentOS
- openEuler
- KylinOS V10 SP3 2403 LoongArch_64 架构
- 如需在其他 Linux 发行版上裸机部署,可先通过
ldd --version检查 glibc 版本,>= 2.28 理论上即可运行,但尚未得到 KaiwuDB 官方支持。
软件依赖
安装时,KaiwuDB 会对软件依赖进行检查。如果缺少依赖会退出安装并提示依赖缺失。如果目标机器无法联网,需在可联网的机器上根据目标机器的操作系统提前下载所有依赖文件,再将依赖文件复制到目标机器上进行安装。
裸机部署
下表列出需要在目标机器安装的依赖:
| 平台 | 系统类型 | libc | libgcc | libstdc++ |
|---|---|---|---|---|
| x86_64、aarch64 | Debian 系列 | libc6 >= 2.28 | libgcc1/libgcc-s1 >= 7.3.0 | libstdc++6 >= 7.3.0 |
| RedHat 系列 | glibc >= 2.28 | libgcc >= 8.3.0 | libstdc++ >= 8.3.0 | |
| 龙芯 | Debian 系列 | libc6 >= 2.28 | libgcc1/libgcc-s1 >= 8.3.0 | libstdc++6 >= 8.3.0 |
| RedHat 系列 | glibc >= 2.28 | libgcc >= 8.3.0 | libstdc++ >= 8.3.0 |
容器部署
除上述依赖外,还需在目标机器上安装 Docker Compose(1.20.0 及以上版本)。
在线安装:参考 Docker Compose 官方安装文档
离线安装:参考 Docker Compose 离线安装指南
Ubuntu/Debian 系统快速安装:
sudo apt-get install docker-compose
端口要求
下表列出 KaiwuDB 服务默认使用的端口。如需使用其他端口,可在安装部署过程中进行修改。
| 端口号 | 说明 |
|---|---|
8080 | 数据库 Web 服务端口 |
26257 | 数据库服务端口、节点监听端口和对外连接端口 |
27257 | 数据库时序引擎间的 brpc 通信端口 |
安装程序
KaiwuDB 安装程序封装为 .run 自解压可执行包,内置所有部署所需资源,支持命令行模式、终端图形交互模式和可视化 GUI 模式三种交互方式。
KaiwuDB 提供以下安装程序版本:
| 部署类型 | 系统架构 |
|---|---|
| 裸机 | x86_64(Intel/Hygon)、aarch64(4K/64K) |
| 容器 | x86_64(Intel/Hygon)、aarch64(4K/64K) |
根据实际部署类型和目标机器的系统架构获取对应的安装程序,并复制到目标机器上。
节点配置
SSH 免密登录
登录当前节点,生成公私密钥对。
ssh-keygen -f ~/.ssh/id_rsa -N ""参数说明:
-f ~/.ssh/id_rsa:指定生成的密钥对文件目录。-N:将密钥密码设置为空,以实现免密登录。
将密钥分发至集群其它节点。
ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no <target_node>确认是否可以使用 SSH 免密登录到集群其它节点。
ssh <target_node>
时钟同步
KaiwuDB 采用中等强度的时钟同步机制来维持数据的一致性。当节点检测到自身的机器时间与集群中至少 50% 的节点的机器时间的误差值超过集群最大允许时间误差值(默认为 500 ms)的 80% 时,该节点会自动停止,从而避免违反数据一致性,带来读写旧数据的风险。每个节点都必须运行 NTP(Network Time Protocol,网络时间协议)或其他时钟同步软件,防止时钟漂移得太远。
以下示例以 CentOS 7 为例,介绍如何配置时钟同步。
使用 SSH 登录到将要部署集群的节点。
关闭 timesyncd 服务。
timedatectl set-ntp no安装 NTP 服务。
sudo apt install ntp关闭 NTP 后台进程。
service ntp stop通过 NTP 服务同步机器时间。
ntpdate -u 0.cn.pool.ntp.org打开
/etc/ntp.conf文件,查找server和pool的相关配置并将其修改为如下内容。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启动 NTP 服务。
service ntp start在所有要安装 KaiwuDB 服务的集群节点上重复执行以上步骤。