多节点部署
如何在多个节点上安装 Pigsty
有一个配置 教程 可以将 Pigsty 从单节点扩展到多节点。 但最简单的方法始终是预先规划一切并一次性置备它们。
单节点部署
我们已经在 快速开始 部分演示了单节点安装,这可能是最简单的设置。
不建议把所有鸡蛋放在一个篮子里,但即使是这种单节点设置也可以用于生产环境, 只要为 PG 配置了外部 MinIO / S3 / NFS... 作为远程备份仓库。
有很多单节点 配置模板 供您参考。
双节点部署
半高可用设置
双节点设置可实现数据库复制和半高可用功能:
虽然比单节点设置更加健壮,但高可用性有限制:
- 如果
node-1
故障,无法自动故障转移 - 需要手动提升node-2
- 如果
node-2
故障,自动故障转移正常工作 -node-1
会自动被提升
这种"半高可用"设置只能从特定的节点故障中自动恢复。
您可以使用 dual.yml
配置模板,并使用
Vagrant dual.rb
来置备此环境所需的虚拟机。
三节点部署
真正的高可用
一个能够从任意单节点故障中自动恢复的真正高可用设置:
ID | IP 地址 | NODE | PGSQL | INFRA | ETCD |
---|---|---|---|---|---|
1 | 10.10.10.10 | node-1 | pg-meta-1 | infra-1 | etcd-1 |
2 | 10.10.10.11 | node-2 | pg-meta-2 | infra-2 | etcd-2 |
3 | 10.10.10.12 | node-3 | pg-meta-3 | infra-3 | etcd-3 |
您可以使用 trio.yml
配置模板,并使用
Vagrant trio.rb
来置备此环境所需的虚拟机。
四节点沙箱
这是 Pigsty 中使用的 沙箱演示 环境,具有一个基础设施节点和三个额外的数据节点:
ID | IP 地址 | NODE | PGSQL | INFRA | ETCD | MINIO |
---|---|---|---|---|---|---|
1 | 10.10.10.10 | meta | pg-meta-1 | infra-1 | etcd-1 | minio-1 |
2 | 10.10.10.11 | node-1 | pg-test-1 | |||
3 | 10.10.10.12 | node-2 | pg-test-1 | |||
4 | 10.10.10.13 | node-3 | pg-test-1 |
您可以使用 full.yml
配置模板,并使用
Vagrant full.rb
或 Terraform full.tf
来置备此环境。
五节点构建
这个 pro.yml
是一个五节点构建环境,包含支持的 Linux 发行版。
ID | IP 地址 | NODE | PGSQL | INFRA | ETCD |
---|---|---|---|---|---|
1 | 10.10.10.8 | el8 | el8-1 | infra-1 | |
2 | 10.10.10.9 | el9 | el9-1 | infra-2 | etcd-2 |
3 | 10.10.10.12 | u12 | u12-1 | infra-3 | |
4 | 10.10.10.22 | u22 | u22-1 | infra-4 | |
5 | 10.10.10.24 | u24 | u24-1 | infra-5 |
您可以使用 Vagrant pro.rb
或 Terraform pro.tf
来置备此环境。
三十六节点仿真
一个包含 36 个节点的生产仿真环境(simu.yml
),涵盖了所有 Pigsty 组件
IP 地址 | 规格 | NODE | PGSQL | INFRA | ETCD | MINIO | REDIS |
---|---|---|---|---|---|---|---|
10.10.10.10 | 8C32G | meta1 | pg-meta-1 | infra-1 | |||
10.10.10.11 | 8C32G | meta2 | pg-meta-2 | infra-2 | |||
10.10.10.12 | 2C4G | pg12 | pg-v12-1 | ||||
10.10.10.13 | 2C4G | pg13 | pg-v13-1 | ||||
10.10.10.14 | 2C4G | pg14 | pg-v14-1 | ||||
10.10.10.15 | 2C4G | pg15 | pg-v15-1 | ||||
10.10.10.16 | 2C4G | pg16 | pg-v16-1 | ||||
10.10.10.17 | 2C4G | pg17 | pg-v17-1 | ||||
10.10.10.18 | 2C4G | proxy1 | |||||
10.10.10.19 | 2C4G | proxy2 | |||||
10.10.10.21 | 2C4G | minio1 | etcd-1 | minio-1 | redis-meta-1 | ||
10.10.10.22 | 2C4G | minio2 | etcd-2 | minio-2 | redis-meta-2 | ||
10.10.10.23 | 2C4G | minio3 | etcd-3 | minio-3 | redis-meta-3 | ||
10.10.10.24 | 2C4G | minio4 | etcd-4 | minio-4 | redis-meta-4 | ||
10.10.10.25 | 2C4G | minio5 | etcd-5 | minio-5 | redis-meta-5 | ||
10.10.10.40 | 1C2G | node40 | pg-pitr-1 | ||||
10.10.10.41 | 1C2G | node41 | pg-test-1 | redis-test-1 | |||
10.10.10.42 | 1C2G | node42 | pg-test-2 | redis-test-2 | |||
10.10.10.43 | 1C2G | node43 | pg-test-3 | redis-test-3 | |||
10.10.10.44 | 1C2G | node44 | pg-test-4 | redis-test-4 | |||
10.10.10.45 | 1C2G | node45 | pg-src-1 | redis-src-1 | |||
10.10.10.46 | 1C2G | node46 | pg-src-2 | redis-src-2 | |||
10.10.10.47 | 1C2G | node47 | pg-src-3 | redis-src-3 | |||
10.10.10.48 | 1C2G | node48 | pg-dst-1 | redis-dst-1 | |||
10.10.10.49 | 1C2G | node49 | pg-dst-2 | redis-dst-2 | |||
10.10.10.50 | 1C2G | node50 | pg-citus0-1 | ||||
10.10.10.51 | 1C2G | node51 | pg-citus0-2 | ||||
10.10.10.52 | 1C2G | node52 | pg-citus1-1 | ||||
10.10.10.53 | 1C2G | node53 | pg-citus1-2 | ||||
10.10.10.54 | 1C2G | node54 | pg-citus2-1 | ||||
10.10.10.55 | 1C2G | node55 | pg-citus2-2 | ||||
10.10.10.56 | 1C2G | node56 | pg-citus3-1 | ||||
10.10.10.57 | 1C2G | node57 | pg-citus3-2 | ||||
10.10.10.58 | 1C2G | node58 | pg-citus4-1 | ||||
10.10.10.59 | 1C2G | node59 | pg-citus4-2 | ||||
10.10.10.88 | 4C8G | test |
您可以使用 Vagrant simu.rb
来置备此环境。
您可以在真实服务器(72C / 256G)上运行整个仿真,使用 Vagrant 的 libvirt
作为虚拟机提供程序。
- 2 个基础设施节点,相互监控
- 2 个专用代理节点运行 HAProxy
- 5 节点 ETCD 集群可容忍 2 个节点故障,以及 5 节点 Redis Sentinel 集群
- 5 节点 MinIO 集群,每个节点有 4 个磁盘
- 10 个 PostgreSQL 集群:
pg13
-pg15
、pg-src
、pg-dst
、pg-pitr
、pg-test
- 10 节点 Citus 集群有 5 个分片
- Redis 独立集群
redis-src
和redis-dst
,以及原生集群redis-test