沙箱环境
Pigsty 提供了一个标准的四节点 沙箱环境,用于学习、测试与功能演示。
沙箱使用固定的 IP 地址和预定义的身份标识符,便于复现各种演示用例。
环境描述
默认的沙箱环境由 4 个节点组成,默认使用配置文件 ha/full.yml。
| ID | IP 地址 | 节点名 | PostgreSQL | 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-2 |
|||
| 4 | 10.10.10.13 |
node-3 |
pg-test-3 |
沙箱的配置可以概括表示为以下配置文件:

PostgreSQL 集群
沙箱带有一个位于 meta 节点上的单实例 PostgreSQL 集群 pg-meta:
沙箱中还有一个由三个实例组成的 PostgreSQL 高可用集群 pg-test,部署在另外三个节点上:
两个可选的 L2 VIP 分别绑定在 pg-meta 和 pg-test 集群的主实例上。
基础设施
在 meta 节点上还部署有:
- ETCD 集群:单节点
etcd集群,为 PostgreSQL HA 提供 DCS 服务 - Silo 集群:由 MINIO 模块管理的单节点
minio集群,提供 S3 兼容对象存储服务
ha/full.yml 还声明了三种 Redis 示例拓扑,并在 Infra 节点启用了 Docker 安装开关;标准 deploy.yml 不会部署这两个可选模块,需要按需另行执行 ./redis.yml 与 ./docker.yml。
创建沙箱
Pigsty 提供了开箱即用的模板,您可以使用 Vagrant 在本地创建沙箱,或使用 Terraform 在云上创建沙箱。
当然,您也可以自己手工准备并置备这些节点。
本地沙箱(Vagrant)
本地沙箱使用 VirtualBox/libvirt 创建本地虚拟机,可以在您的 Mac / PC 上免费运行。
运行完整的 4 节点沙箱,您的机器应至少拥有 4 核 CPU 与 8GB 内存。
当前 Vagrant 配置统一使用 Vagrant Cloud 上的 cloud-image/* Box。可用镜像、源码固定的版本以及架构说明以 Vagrant 文档 为准;未在源码中固定版本的 Box 会由 Vagrant 解析其当前可用版本。
云沙箱(Terraform)
云沙箱使用公有云 API 创建虚拟机,可以轻松创建和销毁,按需付费,非常适合快速测试。
使用 spec/aliyun-full.tf 模板在阿里云上创建 4 节点沙箱:
更多详情请参考 Terraform 文档。
其他规格
除了标准的 4 节点沙箱,Pigsty 还提供了其他规格的环境:
以下 Makefile 快捷目标均在 ~/pigsty/vagrant 目录中执行:
单节点开发箱(meta)
最简单的 1 节点环境,用于快速上手、开发和测试:
双节点环境(dual)
2 节点环境,用于测试主从复制:
三节点环境(trio)
3 节点环境,用于测试基本高可用:
生产仿真环境(simu)
20 节点的大型仿真环境,用于模拟生产环境进行完整测试:
该环境包含:
- 3 个基础设施节点(
meta1,meta2,meta3) - 2 个 HAProxy 代理节点
- 4 个 MINIO(Silo)节点
- 5 个 ETCD 节点
- 6 个 PostgreSQL 节点(2 个集群,每个 3 节点)