跳转到主要内容

文档 v3.7.0 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本

多节点部署

如何在多个节点上安装 Pigsty,实现生产级别高可用?

你可以参考 配置教程 ,将一个单机 Pigsty 节点逐步扩展为多节点高可用部署。 但是完成这些工作最简单的办法,始终是在部署前就预先规划一切,并且一次性完成整个环境的置备。


单节点部署

我们已经在 快速上手 一节中演示了单节点安装的流程 —— 最简单的部署方式。

ID IP 地址 NODE PGSQL INFRA ETCD
1 10.10.10.10 meta pg-meta-1 infra-1 etcd-1

单节点没有高可用性,也没有冗余,如果您确实要将其用于生产环境,请为 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.rbTerraform 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.rbTerraform 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 - pg15pg-srcpg-dstpg-pitrpg-test
  • 10 节点 Citus 集群有 5 个分片
  • Redis 独立集群 redis-srcredis-dst,以及原生集群 redis-test