硬件置备
Pigsty 运行在节点(物理机或虚拟机)之上,本文档介绍硬件相关的规划与准备。
节点
Pigsty 目前运行在具有 Linux 内核和 x86_64 / aarch64 架构的节点上。
“节点” 指的是 SSH 可访问 且提供裸 Linux 操作系统环境的资源。
它可以是物理机、虚拟机或配备 systemd、sudo 和 sshd 的类似操作系统的容器。
部署 Pigsty 至少需要 1 个节点,您可以准备更多并在 一次性安装 中设置所有内容,或稍后添加它们。
最小节点规格要求是 1C1G,建议至少使用 2C2G。越高越好,没有上限。参数将根据可用资源自动调优。
功能性 HA 设置至少需要 3 个节点才能工作,或使用 2 个节点进行半 HA 设置。
规格
您需要多少个节点?这取决于您的资源和需求。
最简单的设置,所有内容都在单个节点上运行,安装四个基本模块:
| ID | NODE | PGSQL | INFRA | ETCD |
|---|---|---|---|---|
| 1 | node-1 | pg-meta-1 | infra-1 | etcd-1 |
如果为备份/PITR 配置了外部 S3/MinIO,此设置可用于生产。
双节点设置启用数据库复制和半 HA 功能:
| ID | NODE | PGSQL | INFRA | ETCD |
|---|---|---|---|---|
| 1 | node-1 | pg-meta-1 (主节点) | infra-1 | etcd-1 |
| 2 | node-2 | pg-meta-2 (副本) |
虽然比单节点设置更强大,但 HA 有限制:
- 如果
node-1故障,无自动故障转移 - 需要手动提升node-2 - 如果
node-2故障,自动故障转移有效 -node-1自动提升
这种"半 HA"设置只能从特定节点故障中自动恢复。
真正的 HA 设置,可以从任何单个节点故障中自动恢复:
| ID | NODE | PGSQL | INFRA | ETCD |
|---|---|---|---|---|
| 1 | node-1 | pg-meta-1 | infra-1 | etcd-1 |
| 2 | node-2 | pg-meta-2 | infra-2 | etcd-2 |
| 3 | node-3 | pg-meta-3 | infra-3 | etcd-3 |
Pigsty 沙箱 使用的标准演示环境:
| ID | NODE | PGSQL | INFRA | ETCD |
|---|---|---|---|---|
| 1 | node-1 | pg-meta-1 | infra-1 | etcd-1 |
| 2 | node-2 | pg-test-1 | etcd-2 | |
| 3 | node-3 | pg-test-2 | etcd-3 | |
| 4 | node-4 | pg-test-3 |
磁盘
Pigsty 将使用 /data 作为默认数据目录,如果您有专用的主数据磁盘,建议将其挂载到那里,
并为额外的磁盘驱动器使用 /data1、/data2、/dataN。
如果您将其挂载到别处,您必须相应地更改以下参数:
| 名称 | 描述 | 默认值 |
|---|---|---|
node_data | 节点主数据目录 | /data |
pg_fs_main | PostgreSQL 主数据目录 | /data |
pg_fs_backup | PostgreSQL 备份数据目录 | /data/backups |
etcd_data | ETCD 数据目录 | /data/etcd |
prometheus_data | Prometheus 数据目录 | /data/prometheus |
loki_data | Loki 数据目录 | /data/loki |
minio_data | MinIO 数据目录 | /data/minio |
redis_fs_main | Redis 数据目录 | /data/redis |
我们建议使用 ext4 或 xfs 作为数据磁盘的文件系统。它们对 PostgreSQL 有最佳性能。
虽然 ext4 有更多的数据恢复工具,但 xfs 对小文件更高效。
如果您运行 MinIO,建议使用 xfs,否则,建议使用 ext4 作为默认选项。
Pigsty 的工作假设是 /data 目录属于 root:root,权限为 755。
管理员可以分配一级目录的所有权和权限。每个应用在其子目录中运行时将使用专用用户。
网络
Pigsty 需要 静态网络 才能工作,您应该为每个节点明确分配一个 固定的 IPv4 地址。
在单节点安装中,如果没有固定 IP 地址,可以使用 127.0.0.1 作为变通方法。
IP 地址将用作节点的 唯一标识符,它应该是绑定到用于 内部 网络通信的主网络接口的主 IP 地址。
使用公共 IP 地址作为节点标识符可能导致安全和连接问题。
要使用可选的节点 VIP 和 PG VIP 功能,请确保所有节点位于同一 L2 网络内。
执行标准(在线)安装 时需要互联网访问。 但 Pigsty 可以通过离线软件包进行 离线安装,在这种情况下不需要互联网访问。
VIP
Pigsty 支持 NODE 集群(keepalived)和 PGSQL 集群(vip-manager)的可选 L2 VIP。
要使用 L2 VIP 功能,您必须为它们明确分配一个 L2 VIP。 在您自己的硬件上运行时这不是大问题,但在公有云环境中工作时可能成为问题。
域名
Pigsty 为以下具有 WebUI 的服务使用本地静态域名。
您可以为这些服务分配自定义域名,或使用真实域名。
只需在 infra_portal 中更改它们。
| 域名 | 名称 | 端口 | 组件 | 描述 |
|---|---|---|---|---|
h.pigsty | home | 80/443 | Nginx | 默认服务器,本地仓库 |
g.pigsty | grafana | 3000 | Grafana | 监控和可视化 |
p.pigsty | prometheus | 9058 | Prometheus | 时间序列数据库 |
a.pigsty | alertmanager | 9059 | AlertManager | 告警聚合和路由 |
域名是可选的,要使用它们,用户有责任将以下记录添加到您的 /etc/hosts 文件(本地静态解析),
或将它们添加到您的 DNS 服务器/公共 DNS 供应商。
10.10.10.10 h.pigsty g.pigsty p.pigsty a.pigsty