仿真环境
用于生产测试的 42 节点仿真环境
Pigsty 提供了一个 42 节点 的生产仿真环境,用于模拟真实生产环境进行完整测试与压测。
仿真环境使用固定的 IP 地址和预定义的身份标识符,可以用于复现各种生产场景与边缘案例。
环境描述
仿真环境由 42 个节点组成,默认使用配置文件 simu.yml。
基础设施节点
3 个基础设施节点承载核心管理服务:
| ID | IP 地址 | 节点名 | INFRA | ETCD | MINIO |
|---|---|---|---|---|---|
| 1 | 10.10.10.10 | meta | infra-1 | etcd-1 | minio-1 |
| 2 | 10.10.10.11 | meta-1 | infra-2 | etcd-2 | minio-2 |
| 3 | 10.10.10.12 | meta-2 | infra-3 | etcd-3 | minio-3 |
ETCD 集群
5 节点的 ETCD 集群,为 PostgreSQL 高可用提供分布式共识服务:
| ID | IP 地址 | 节点名 | ETCD |
|---|---|---|---|
| 1 | 10.10.10.10 | meta | etcd-1 |
| 2 | 10.10.10.11 | meta-1 | etcd-2 |
| 3 | 10.10.10.12 | meta-2 | etcd-3 |
| 4 | 10.10.10.13 | node-1 | etcd-4 |
| 5 | 10.10.10.14 | node-2 | etcd-5 |
MinIO 集群
4 节点的 MinIO 集群,提供 S3 兼容的对象存储服务,用于数据库备份与 PITR 归档:
| ID | IP 地址 | 节点名 | MINIO |
|---|---|---|---|
| 1 | 10.10.10.10 | meta | minio-1 |
| 2 | 10.10.10.11 | meta-1 | minio-2 |
| 3 | 10.10.10.12 | meta-2 | minio-3 |
| 4 | 10.10.10.13 | node-1 | minio-4 |
PostgreSQL 集群
仿真环境包含多个 PostgreSQL 集群,用于测试不同的部署场景:
pg-meta - 单节点元数据库集群:
| ID | IP 地址 | 节点名 | PostgreSQL |
|---|---|---|---|
| 1 | 10.10.10.10 | meta | pg-meta-1 |
pg-test - 3 节点高可用测试集群:
| ID | IP 地址 | 节点名 | PostgreSQL | 角色 |
|---|---|---|---|---|
| 1 | 10.10.10.41 | pg41 | pg-test-1 | primary |
| 2 | 10.10.10.42 | pg42 | pg-test-2 | replica |
| 3 | 10.10.10.43 | pg43 | pg-test-3 | replica |
pg-src - 3 节点源集群(用于迁移/同步测试):
| ID | IP 地址 | 节点名 | PostgreSQL | 角色 |
|---|---|---|---|---|
| 1 | 10.10.10.45 | pg45 | pg-src-1 | primary |
| 2 | 10.10.10.46 | pg46 | pg-src-2 | replica |
| 3 | 10.10.10.47 | pg47 | pg-src-3 | replica |
pg-dst - 3 节点目标集群(用于迁移/同步测试):
| ID | IP 地址 | 节点名 | PostgreSQL | 角色 |
|---|---|---|---|---|
| 1 | 10.10.10.48 | pg48 | pg-dst-1 | primary |
| 2 | 10.10.10.49 | pg49 | pg-dst-2 | replica |
| 3 | 10.10.10.50 | pg50 | pg-dst-3 | replica |
创建仿真环境
Pigsty 提供了开箱即用的模板,您可以使用 Vagrant 在本地创建仿真环境,或使用 Terraform 在云上创建。
本地仿真环境(Vagrant)
本地仿真环境使用 VirtualBox/libvirt 创建本地虚拟机,需要较强的硬件配置。
运行完整的 42 节点仿真环境,您的机器应至少拥有 16 核 CPU 与 64GB 内存。
cd ~/pigsty
make simu # 使用默认 RockyLinux 9 镜像创建 42 节点仿真环境
make simu9 # 使用 RockyLinux 9 创建
make simu12 # 使用 Debian 12 创建
make simu24 # 使用 Ubuntu 24.04 创建
更多详情请参考 Vagrant 文档。
云仿真环境(Terraform)
云仿真环境使用公有云 API 创建虚拟机,可以轻松创建和销毁,按需付费。
使用 spec/aliyun-simu.tf 模板在阿里云上创建 42 节点仿真环境:
cd ~/pigsty/terraform
cp spec/aliyun-simu.tf terraform.tf
terraform init
terraform apply
更多详情请参考 Terraform 文档。
部署仿真环境
创建好节点后,SSH 登录到管理节点,执行标准安装流程:
# 下载并解压 Pigsty
curl -fsSL https://repo.pigsty.io/get | bash; cd ~/pigsty
# 引导安装 Ansible
./bootstrap
# 使用仿真配置模板
./configure -c simu
# 执行完整部署
./deploy.yml
仿真环境的配置文件为 conf/simu.yml,您可以根据需要进行调整。
使用场景
仿真环境适用于以下场景:
生产环境验证
- 在部署到真实生产环境前,使用仿真环境验证配置和剧本
- 测试大规模集群的部署流程和时间
- 验证监控、告警、备份等运维功能
高可用测试
- 测试多节点 ETCD 集群的故障转移
- 测试 PostgreSQL 主从切换和自动故障恢复
- 测试 MinIO 集群的数据冗余和恢复
迁移与同步测试
- 使用
pg-src和pg-dst集群测试数据库迁移 - 测试逻辑复制、CDC 等数据同步场景
- 验证跨集群数据一致性
性能压测
- 测试不同硬件规格下的数据库性能
- 评估连接池、读写分离等优化效果
- 进行容量规划和资源评估
与沙箱环境的区别
| 特性 | 沙箱环境 | 仿真环境 |
|---|---|---|
| 节点数 | 4 节点 | 42 节点 |
| 硬件需求 | 4C8G 起 | 16C64G 起 |
| ETCD | 单节点 | 5 节点 |
| MinIO | 单节点 | 4 节点 |
| PG 集群 | 2 个 | 4+ 个 |
| 适用场景 | 学习、测试、演示 | 生产验证、压测、迁移测试 |
| 创建命令 | make full | make simu |