部署架构与前置条件
部署架构说明
业务连续性(Halo Shield)的典型部署为一主二备三个 Halo 节点,并在相同的三台服务器上部署三节点 etcd 集群:
- Halo 数据库:一主(Leader)二备(Replica),主备之间通过物理流复制保持数据同步。
- etcd 集群:三个节点,一般与 Halo 数据库部署在相同的服务器上,负责存储集群状态与 leader 锁。
- clustermgr:每个 Halo 节点上运行一个 clustermgr 服务进程,管理本地 Halo 实例。
- VIP:绑定在当前主库节点上,应用通过 VIP 统一访问数据库;主备切换时 VIP 自动漂移到新主库。
部署示例:
| 节点 | IP | 角色 | etcd 名称 | etcd 地址 |
|---|---|---|---|---|
| node1 | 192.168.10.146 | Leader | etcd_node1 | 192.168.10.146:2379 |
| node2 | 192.168.10.147 | Replica | etcd_node2 | 192.168.10.147:2379 |
| node3 | 192.168.10.148 | Replica | etcd_node3 | 192.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 互相访问。
端口与网络要求
| 端口 | 用途 | 说明 |
|---|---|---|
| 1921 | Halo 数据库 | 主从复制与客户端连接 |
| 2379 | etcd client | clustermgr 连接 etcd |
| 2380 | etcd peer | etcd 集群内部通信 |
| 8008 | clustermgr REST API | 健康检查与监控 |
- 节点间 2379/2380/1921/8008 需互通。
- 防火墙需放行上述端口,且不影响 etcd 心跳。
安装步骤指引
业务连续性集群的部署有两种方式,完整步骤见第二篇 安装的集群安装章节: