2025年9月25日: PostgreSQL 18 发布!

宣布发布 pg_cirrus v1.0 - 轻松设置 PostgreSQL 集群

发布于 2023-09-25,作者 Stormatics
相关开源项目

我们很高兴地宣布 pg_cirrus 1.0 正式可用。这个自动化工具简化了 3 节点集群的设置过程,使用户能够更轻松地设置和管理 PostgreSQL 的高可用性。

我们知道配置 PostgreSQL 集群可能是一项复杂且耗时的任务,因此我们设计了 pg_cirrus 来帮助使该过程更快、更高效。

主要功能

配置管理

我们通过一个 Python 包装脚本简化了配置管理,该脚本执行用于主节点、备用节点和 pgpool 节点的 Ansible playbook。清单和变量文件在运行时动态生成。此外,pg_cirrus 可以在非默认端口 5432 上设置 PostgreSQL 数据库服务器。

负载均衡

我们使用 pgpool 确保了 PostgreSQL 集群内的适当负载均衡,即写入请求转到主 PostgreSQL 服务器,读取请求转到备用 PostgreSQL 服务器。

自动故障转移

如果主节点发生故障,其中一个备用节点将自动提升为新主节点。如果新提升的主节点也发生故障,第三个节点将被提升以处理读取和写入请求。

用户体验

为了提供更好的用户体验,pg_cirrus 包含一个命令行界面,可在运行时从用户处获取配置详细信息。我们还为用户提供了 conf.yml.in、vault.yml.in 和 inventory.in 模板文件。用户还可以查看保存在 /var/log/pgpool_logs 中的 pgpool 日志。为避免无效输入,pg_cirrus 中使用了异常处理。如果 pg_cirrus 在执行某个 playbook 期间失败,其余的 playbook 将不会执行,pg_cirrus 将优雅地退出。

复制

在 pg_cirrus 中,使用 pg_basebackup 设置物理复制。来自主节点的所有数据都会复制到备用节点。设置主节点后,会在主节点上针对备用节点创建复制槽。故障转移后,当一个备用节点被提升为新主节点时,会在新提升的主节点上创建一个复制槽,其余备用节点将继续从此新主节点进行复制。

安全

为了确保 pg_cirrus 的安全性,密码使用 Ansible Vault 进行存储。集群的所有节点都限制在同一子网内,而只有 pgpool 节点可以通过密码从子网外部访问。主节点和备用节点只能在集群内部通过密码访问。

链接

为了帮助您开始使用 pg_cirrus,我们提供了以下资源:

关于 Stormatics

Stormatics 提供 PostgreSQL 专业服务。我们的使命是帮助企业可靠地扩展 PostgreSQL,以支持其任务关键型数据。