跳到主要内容

部署架构与前置条件

部署架构说明​

业务连续性(Halo Shield)的典型部署为一主二备三个 Halo 节点,并在相同的三台服务器上部署三节点 etcd 集群:

  • Halo 数据库:一主(Leader)二备(Replica),主备之间通过物理流复制保持数据同步。
  • etcd 集群:三个节点,一般与 Halo 数据库部署在相同的服务器上,负责存储集群状态与 leader 锁。
  • clustermgr:每个 Halo 节点上运行一个 clustermgr 服务进程,管理本地 Halo 实例。
  • VIP:绑定在当前主库节点上,应用通过 VIP 统一访问数据库;主备切换时 VIP 自动漂移到新主库。

部署示例:

节点IP角色etcd 名称etcd 地址
node1192.168.10.146Leaderetcd_node1192.168.10.146:2379
node2192.168.10.147Replicaetcd_node2192.168.10.147:2379
node3192.168.10.148Replicaetcd_node3192.168.10.148:2379

VIP 示例为 192.168.10.110,绑定网卡 ens160(需按实际环境调整)。本章后续的配置与命令示例均基于上述部署。

前置条件​

部署业务连续性集群前,需确认以下条件已满足:

  • 已准备一主二备环境,物理复制必须搭建完成。
  • 所有节点 Halo 版本一致。
  • 主库已创建 replication 用户 replica(用于主从之间的流复制连接;若尚未创建,请执行以下命令):
CREATE USER replica REPLICATION PASSWORD '123456';
  • 主库已创建 clustermgr 管理用户(clustermgr 需要以 SUPERUSER 身份连接 Halo,用于管理实例状态、执行切换以及运行 pg_rewind 修复时间线分叉;若尚未创建,请执行以下命令):
psql -c "CREATE USER clustermgr SUPERUSER PASSWORD 'clustermgr';"
  • 关键参数已设置:
wal_level = replica
hot_standby = on
max_wal_senders = 10
max_replication_slots = 10
wal_log_hints = on
  • 主从之间可通过 IP 与端口 1921 互相访问。

端口与网络要求​

端口用途说明
1921Halo 数据库主从复制与客户端连接
2379etcd clientclustermgr 连接 etcd
2380etcd peeretcd 集群内部通信
8008clustermgr REST API健康检查与监控
  • 节点间 2379/2380/1921/8008 需互通。
  • 防火墙需放行上述端口,且不影响 etcd 心跳。

安装步骤指引​

业务连续性集群的部署有两种方式,完整步骤见第二篇 安装的集群安装章节:

  • 一键部署(推荐):使用 Halo 1.0.16 提供的 halo_1.0.16_installer 一键安装脚本完成整个集群的自动化部署,详见一键部署。
  • 手工部署:通过 etcd_config.sh 与 clustermgr_config.sh 两个自动化脚本逐项完成安装配置(环境变量准备、etcd 集群部署、clustermgr 部署、systemd 服务注册、sudoers 权限配置、启动与校验等),详见手工部署。

安装完成后,各组件关键配置项的说明见配置详解;集群日常操作见常用命令与操作。