文档 v3.7.0 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本。
多节点部署
你可以参考 配置教程 ,将一个单机 Pigsty 节点逐步扩展为多节点高可用部署。 但是完成这些工作最简单的办法,始终是在部署前就预先规划一切,并且一次性完成整个环境的置备。
单节点部署
我们已经在 快速上手 一节中演示了单节点安装的流程 —— 最简单的部署方式。
单节点没有高可用性,也没有冗余,如果您确实要将其用于生产环境,请为 PG 配置外部 MinIO / S3 / NFS… 作为远程备份仓库,这样能提供最低数据完整性灾难恢复能力。
Pigsty 有很多单节点 配置模板 供您参考。
你可以使用 Vagrant 默认的 meta.rb 来在本地置备此环境所需的虚拟机。
或者使用 Terraform 默认的 meta.tf 来在阿里云上置备此环境。
双节点部署
半高可用设置
双节点设置可实现一主一从的数据库物理复制和半高可用功能:
| ID | IP 地址 | NODE | PGSQL | INFRA | ETCD |
|---|---|---|---|---|---|
| 1 | 10.10.10.10 |
meta |
pg-meta-1 |
infra-1 |
etcd-1 |
| 2 | 10.10.10.11 |
node-1 |
pg-meta-2 |
虽然比单节点设置更加健壮,但双节点架构的高可用性有限制:
- 如果
node-2故障,自动故障转移正常工作 -node-1会自动被提升 - 如果
node-1故障,无法进行自动故障切换 - 需要手动提升node-2
也就是说,这种"半高可用"设置只能从 特定的节点故障 中自动恢复,只允许坏其中一台特定的节点2。
您可以使用 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