发布 pg_cirrus v1.0 版本 - 无忧的 PostgreSQL 集群设置

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

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

我们理解配置 PostgreSQL 集群可能是一项复杂且耗时的任务,因此我们设计了 pg_cirrus 来帮助加快此过程并提高效率。

主要功能

配置管理

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

负载均衡

我们使用 pgpool 确保 PostgreSQL 集群内的适当负载均衡,即 WRITE 请求发送到主 PostgreSQL 服务器,READ 请求发送到备 PostgreSQL 服务器。

自动故障转移

如果主节点发生故障,其中一个备节点将自动提升为新的主节点。如果新提升的主节点也发生故障,则第三个节点将提升以处理 READ 和 WRITE 请求。

用户体验

为了获得更好的用户体验,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,以满足其关键任务数据的需求。