仿真环境

用于生产测试的 42 节点仿真环境

Pigsty 提供了一个 42 节点 的生产仿真环境,用于模拟真实生产环境进行完整测试与压测。

仿真环境使用固定的 IP 地址和预定义的身份标识符,可以用于复现各种生产场景与边缘案例。


环境描述

仿真环境由 42 个节点组成,默认使用配置文件 simu.yml

基础设施节点

3 个基础设施节点承载核心管理服务:

IDIP 地址节点名INFRAETCDMINIO
110.10.10.10metainfra-1etcd-1minio-1
210.10.10.11meta-1infra-2etcd-2minio-2
310.10.10.12meta-2infra-3etcd-3minio-3

ETCD 集群

5 节点的 ETCD 集群,为 PostgreSQL 高可用提供分布式共识服务:

IDIP 地址节点名ETCD
110.10.10.10metaetcd-1
210.10.10.11meta-1etcd-2
310.10.10.12meta-2etcd-3
410.10.10.13node-1etcd-4
510.10.10.14node-2etcd-5

MinIO 集群

4 节点的 MinIO 集群,提供 S3 兼容的对象存储服务,用于数据库备份与 PITR 归档:

IDIP 地址节点名MINIO
110.10.10.10metaminio-1
210.10.10.11meta-1minio-2
310.10.10.12meta-2minio-3
410.10.10.13node-1minio-4

PostgreSQL 集群

仿真环境包含多个 PostgreSQL 集群,用于测试不同的部署场景:

pg-meta - 单节点元数据库集群:

IDIP 地址节点名PostgreSQL
110.10.10.10metapg-meta-1

pg-test - 3 节点高可用测试集群:

IDIP 地址节点名PostgreSQL角色
110.10.10.41pg41pg-test-1primary
210.10.10.42pg42pg-test-2replica
310.10.10.43pg43pg-test-3replica

pg-src - 3 节点源集群(用于迁移/同步测试):

IDIP 地址节点名PostgreSQL角色
110.10.10.45pg45pg-src-1primary
210.10.10.46pg46pg-src-2replica
310.10.10.47pg47pg-src-3replica

pg-dst - 3 节点目标集群(用于迁移/同步测试):

IDIP 地址节点名PostgreSQL角色
110.10.10.48pg48pg-dst-1primary
210.10.10.49pg49pg-dst-2replica
310.10.10.50pg50pg-dst-3replica

创建仿真环境

Pigsty 提供了开箱即用的模板,您可以使用 Vagrant 在本地创建仿真环境,或使用 Terraform 在云上创建。

本地仿真环境(Vagrant)

本地仿真环境使用 VirtualBox/libvirt 创建本地虚拟机,需要较强的硬件配置。

运行完整的 42 节点仿真环境,您的机器应至少拥有 16 核 CPU64GB 内存

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,您可以根据需要进行调整。


使用场景

仿真环境适用于以下场景:


与沙箱环境的区别

特性沙箱环境仿真环境
节点数4 节点42 节点
硬件需求4C8G 起16C64G 起
ETCD单节点5 节点
MinIO单节点4 节点
PG 集群2 个4+ 个
适用场景学习、测试、演示生产验证、压测、迁移测试
创建命令make fullmake simu