PIGSTY

多节点部署

如何在多个节点上安装 Pigsty

有一个配置 教程 可以将 Pigsty 从单节点扩展到多节点。 但最简单的方法始终是预先规划一切并一次性置备它们。


单节点部署

我们已经在 快速开始 部分演示了单节点安装,这可能是最简单的设置。

IDIP 地址NODEPGSQLINFRAETCD
110.10.10.10metapg-meta-1infra-1etcd-1

不建议把所有鸡蛋放在一个篮子里,但即使是这种单节点设置也可以用于生产环境, 只要为 PG 配置了外部 MinIO / S3 / NFS... 作为远程备份仓库。

有很多单节点 配置模板 供您参考。


双节点部署

半高可用设置

双节点设置可实现数据库复制和半高可用功能:

IDIP 地址NODEPGSQLINFRAETCD
110.10.10.10metapg-meta-1infra-1etcd-1
210.10.10.11node-1pg-meta-2

虽然比单节点设置更加健壮,但高可用性有限制:

  • 如果 node-1 故障,无法自动故障转移 - 需要手动提升 node-2
  • 如果 node-2 故障,自动故障转移正常工作 - node-1 会自动被提升

这种"半高可用"设置只能从特定的节点故障中自动恢复。

您可以使用 dual.yml 配置模板,并使用 Vagrant dual.rb 来置备此环境所需的虚拟机。


三节点部署

真正的高可用

一个能够从任意单节点故障中自动恢复的真正高可用设置:

IDIP 地址NODEPGSQLINFRAETCD
110.10.10.10node-1pg-meta-1infra-1etcd-1
210.10.10.11node-2pg-meta-2infra-2etcd-2
310.10.10.12node-3pg-meta-3infra-3etcd-3

您可以使用 trio.yml 配置模板,并使用 Vagrant trio.rb 来置备此环境所需的虚拟机。


四节点沙箱

这是 Pigsty 中使用的 沙箱演示 环境,具有一个基础设施节点和三个额外的数据节点:

IDIP 地址NODEPGSQLINFRAETCDMINIO
110.10.10.10metapg-meta-1infra-1etcd-1minio-1
210.10.10.11node-1pg-test-1
310.10.10.12node-2pg-test-1
410.10.10.13node-3pg-test-1

您可以使用 full.yml 配置模板,并使用 Vagrant full.rbTerraform full.tf 来置备此环境。


五节点构建

这个 pro.yml 是一个五节点构建环境,包含支持的 Linux 发行版

IDIP 地址NODEPGSQLINFRAETCD
110.10.10.8el8el8-1infra-1
210.10.10.9el9el9-1infra-2etcd-2
310.10.10.12u12u12-1infra-3
410.10.10.22u22u22-1infra-4
510.10.10.24u24u24-1infra-5

您可以使用 Vagrant pro.rbTerraform pro.tf 来置备此环境。


三十六节点仿真

一个包含 36 个节点的生产仿真环境(simu.yml),涵盖了所有 Pigsty 组件

IP 地址规格NODEPGSQLINFRAETCDMINIOREDIS
10.10.10.108C32Gmeta1pg-meta-1infra-1
10.10.10.118C32Gmeta2pg-meta-2infra-2
10.10.10.122C4Gpg12pg-v12-1
10.10.10.132C4Gpg13pg-v13-1
10.10.10.142C4Gpg14pg-v14-1
10.10.10.152C4Gpg15pg-v15-1
10.10.10.162C4Gpg16pg-v16-1
10.10.10.172C4Gpg17pg-v17-1
10.10.10.182C4Gproxy1
10.10.10.192C4Gproxy2
10.10.10.212C4Gminio1etcd-1minio-1redis-meta-1
10.10.10.222C4Gminio2etcd-2minio-2redis-meta-2
10.10.10.232C4Gminio3etcd-3minio-3redis-meta-3
10.10.10.242C4Gminio4etcd-4minio-4redis-meta-4
10.10.10.252C4Gminio5etcd-5minio-5redis-meta-5
10.10.10.401C2Gnode40pg-pitr-1
10.10.10.411C2Gnode41pg-test-1redis-test-1
10.10.10.421C2Gnode42pg-test-2redis-test-2
10.10.10.431C2Gnode43pg-test-3redis-test-3
10.10.10.441C2Gnode44pg-test-4redis-test-4
10.10.10.451C2Gnode45pg-src-1redis-src-1
10.10.10.461C2Gnode46pg-src-2redis-src-2
10.10.10.471C2Gnode47pg-src-3redis-src-3
10.10.10.481C2Gnode48pg-dst-1redis-dst-1
10.10.10.491C2Gnode49pg-dst-2redis-dst-2
10.10.10.501C2Gnode50pg-citus0-1
10.10.10.511C2Gnode51pg-citus0-2
10.10.10.521C2Gnode52pg-citus1-1
10.10.10.531C2Gnode53pg-citus1-2
10.10.10.541C2Gnode54pg-citus2-1
10.10.10.551C2Gnode55pg-citus2-2
10.10.10.561C2Gnode56pg-citus3-1
10.10.10.571C2Gnode57pg-citus3-2
10.10.10.581C2Gnode58pg-citus4-1
10.10.10.591C2Gnode59pg-citus4-2
10.10.10.884C8Gtest

您可以使用 Vagrant simu.rb 来置备此环境。 您可以在真实服务器(72C / 256G)上运行整个仿真,使用 Vagrant 的 libvirt 作为虚拟机提供程序。

  • 2 个基础设施节点,相互监控
  • 2 个专用代理节点运行 HAProxy
  • 5 节点 ETCD 集群可容忍 2 个节点故障,以及 5 节点 Redis Sentinel 集群
  • 5 节点 MinIO 集群,每个节点有 4 个磁盘
  • 10 个 PostgreSQL 集群:pg13 - pg15pg-srcpg-dstpg-pitrpg-test
  • 10 节点 Citus 集群有 5 个分片
  • Redis 独立集群 redis-srcredis-dst,以及原生集群 redis-test