Pigsty v2.3 发布:应用生态丰富


Pigsty v2.3 现已发布,此版本进一步完善了监控系统、应用生态、并跟进 PostgreSQL 例行的小版本更新(CVE修复)。

Pigsty v2.3 跟随 PostgreSQL 主干小版本进行更新,包括 15.4, 14.9, 13.12, 12.16 以及 16.beta3,此更新修复了一个 CVE 安全漏洞。此外高可用管控 Patroni 也升级到 3.1 版本,解决了一些 BUG 。

v2.3 提供了对 FerretDB 的支持,它是一个构建在 PostgreSQL 之上,真正开源的 MongoDB 替代。用户可以使用 MongoDB 客户端访问它,但是真正的数据都存储在底层的 PostgreSQL 里。

v2.3 还默认添加了一款名为 NocoDB 的开源应用:这是 AirTable 的开源替代:这是一个数据库-电子表格的混合体,可以用低代码的方式快速打造一个多人在线协作应用。

Pigsty v2.3 新增了为主机节点集群绑定一个 L2 VIP 的功能,使用 VRRP 协议确保全链路上没有单点,并提供了完整的监控:keepalived_exporter 被用于收集监控数据。而且每一个 Node VIP (keepalived)与 PGSQL VIP (vip-manager)都会添加到 blackbox_exporter 的 ICMP / PING 监控列表中。

在监控系统上,Pigsty v2.3 在 v2.2 的基础上进行了打磨优化:新增了 VIP 监控,VIP 与节点 PING 指标被加入到 NODE / PGSQL 监控的醒目位置;PGSQL 监控新增了锁等待树视图;REDIS 监控进行了风格优化;MinIO 监控适配的新的监控指标名称;MySQL / MongoDB 监控新增了实现存根,为后续实现奠定基础。

MongoDB 支持?

MongoDB 是一个很受欢迎的 NoSQL 文档数据库。但由于开源协议问题(SSPL),与软件定位问题(Postgres发型版),Pigsty 决定使用 FerretDB 来提供对 MongoDB 的支持。FerretDB 是一个有趣的开源项目:它让 PostgreSQL 可以提供 MongoDB 的能力。

MongoDB 与 PostgreSQL 是两个非常不同的数据库系统:MongoDB 使用文档模型,使用专用的查询语言进行交互 。但是鉴于 PostgreSQL 也提供了完整的 JSON/JSONB/GIN 功能支持,所以这么做在理论上也是完全可行的:FerretDB 负责将你的 SON 查询转换为 SQL 查询:

use test

在 Pigsty 定义一个 FerretDB 集群与其他类型的数据库并无二致,你仅需要提供核心的身份参数:集群名称与实例号。需要关注的是 mongo_pgurl 参数,它指定了 FerretDB 底层使用的 PostgreSQL 地址。

ferret:

你可以直接填入一个已由 Pigsty 创建的任意 PostgreSQL 服务地址。数据库不需要预先配置什么,你只需要确保所使用的用户具有 DDL 权限即可。

配置完成后,使用 ./mongo.yml -l ferret 即可完成安装。当然,如果你更喜欢使用容器,也可以直接 cd pigsty/app/ferretdb; make 使用 docker-compose 拉起 FerretDB 使用。安装完成后,你可以使用任何 MongoDB Client 访问 FerretDB,例如 MongoSH:

mongosh 'mongodb://test:[email protected]:27017/test?authMechanism=PLAIN'

对于那些希望从 MongoDB 迁移到 PostgreSQL 的用户来说,这是一种改造成本极小的折衷手段。Pigsty 同样提供了另一种支持方式 MongoFDW:在 PostgreSQL 中使用 SQL 查询现有的 MongoDB 集群。

新应用:NocoDB

在 Pigsty v2.3 中,添加了对 NocoDB 的内置支持,你可以使用默认的 Docker Compose 模板,一键拉起 NocoDB 并使用内置的 PostgreSQL 作为存储。

NocoDB 是 Airtable 的开源替代品,那 AirTable 又是什么呢?其实有点类似于 Google Docs / 腾讯云文档。但是提供了非常丰富的接口,钩子,可以用来实现一些非常强大的功能。

NocoDB 可以让各种关系型数据库变身成为 Excel ,运行你自己的本地云文档软件。它也可以让用户用低代码的方式实现一些需求:比如你可以把自动生成的表单发送给别人填写,将结果自动整理成为实时共享、可协作、可编程的多维表格。

在 Pigsty 中,拉起 NocoDB 非常容易,只需要一行命令即可。你可以修改 .env 中的 DATABASE_URL 参数来使用不同的数据库。

cd ~/pigsty/app/nocodb; make up

Node VIP 支持

Pigsty v2.3 新增了为主机节点集群绑定一个 L2 VIP 的功能,使用 VRRP 协议确保全链路上没有单点,并提供了完整的监控。

在古早的 Pigsty 版本中(0.5前),曾经提供过基于 Keepalived 的 L2 VIP 功能实现。但随后被 HAProxy + VIP-Manager 所取代:HAProxy 不挑网络,可以进行灵活的健康检查、流量分发,更是提供了一个简单易用的管控界面。而 VIP Manager 则可以将一个 L2 VIP 绑定在数据库集群主库上。

但通用的 L2 VIP 需求仍然是存在的,例如,如果用户选择使用 HAProxy 集群接入,那么 HAProxy 本身的可靠性如何保证?尽管你可以使用 DNS LB 的方式进行切换,但 VRRP 在可靠性与易用性上显然更胜一筹。此外,MinIO / ETCD ,Prometheus 这些组件,有时也会有这样的需求。

想要为集群绑定一个 L2 VIP 其实很简单,只需要启用 vip_enabled,分配一个 VLAN 中唯一的 VirtualRouterID 号与 VIP 地址就可以了。默认情况下,所有集群成员使用 BACKUP 初始状态以非抢占模式工作。你可以通过设置 vip_role 与 vip_preempt 来改变这一行为。

L2 VIP 会自动被纳入监控中。当 MASTER 宕机后, BACKUP 会立即进行接管。

监控系统改进

Pigsty v2.2 基于 Grafana 10 对监控系统进行了彻底的翻新重制。v2.3 在 v2.2 的基础上进行了更多优化。

例如,新增的 NODE VIP 监控面板用于展示一个 VIP 的状态:所属集群/成员,网络RT,KA的状态等等等等。

上图展示了一个 L2 VIP 自动故障转移的现场监控:绑定在 3 节点集群 MinIO 上。当原本的 Master (.27)宕机后,(.26)立即完成接管。

同样的信息也被展示在 NODE 与 PGSQL 监控面板的关键位置:例如,Overview 的实例列表中,现在就会添加 VIP 的快速导航(紫色):

同理,在 NODE Cluster 与 PGSQL Cluster  中也会在醒目处列出 VIP 与所有成员的 ICMP 可达性状态(Ping 网络延迟)。

此外,在 PGCAT 中新增了默认 1s 刷新的 PGCAT Locks 监控面板,可以直观的观察数据库当前活跃的情况,以及锁等待的情况。

锁等待会组织成一棵等待树,用 Level 与缩进标识层次。你可以选择不同的刷新率,最快每秒 10 次。

在 REDIS 监控上,相关的监控面板也统一按照 PGSQL 与 NODE 的风格进行适配与调整:

更丝滑的构建流程

Pigsty v2.2 提供了官方 Yum 源,在 v2.3 中则默认启用了全站 HTTPS。所有

当你选择直接从互联网下载 Pigsty 所需的软件时,可能会遭遇到功夫网的烦恼。例如,默认的 Grafana / Prometheus Yum 源下载速度极慢。除此之外,还有一些零散的 RPM 包需要通过 Web URL 的方式,而不是 repotrack RPM 的方式进行下载。

在 Pigsty v2.2 中,解决了这个问题。Pigsty 提供了一个官方的 yum 源:http://get.pigsty.cc ,并配置为默认的上游源之一。所有零散的 RPM,需要翻墙的 RPM 都放置其中,可以有效加快在线安装/构建速度。

此外, Pigsty 还在 v2.2 中提供了对信创操作系统,统信 UOS 1050e uel20 的支持,满足一些特殊客户的特殊需求。Pigsty 针对这些系统重新编译了 PG相关的 RPM 包,为有需求的客户提供支持。

安装

Pigsty v2.3 的安装命令为:

bash -c "$(curl -fsSL https://get.pigsty.cc/latest)"

一行命令,即可在全新机器上完整安装 Pigsty. 如果你想要尝鲜 beta 版本,将 latest 换为 beta 即可。对于没有互联网访问的特殊环境,也可以使用以下链接下载 Pigsty,以及打包了所有软件的离线安装包:

https://get.pigsty.cc/v2.3.0/pigsty-v2.3.0.tgz
https://get.pigsty.cc/v2.3.0/pigsty-pkg-v2.3.0.el7.x86_64.tgz
https://get.pigsty.cc/v2.3.0/pigsty-pkg-v2.3.0.el8.x86_64.tgz
https://get.pigsty.cc/v2.3.0/pigsty-pkg-v2.3.0.el9.x86_64.tgz

以上,就是 Pigsty v2.3 带来的变化。

更多细节,可参考 Pigsty 官方文档Github Release Note


相關推薦

2023-09-05

Pigsty v2.3.1 现已发布。这个版本中PGVECTOR迎来 v0.5 史诗级更新,添加了新的 HNSW 索引支持。也对新发布的 PostgreSQL 16 RC1 提供了支持。此外,官方文档现在提供中文版本,现有文档也进行了丰富与完善。最后,还有例行的软件

2024-08-29

Pigsty v3.0 正式发布。这是时隔一年半后的又一个大版本更新,带来了海量扩展插件,提供 Oracle 与 SQL Server 兼容性的替换内核,以及完整在本地运行的 SOTA RDS 服务 Pigsty v3 提供了史无前例的 333 个可用扩展插件。包括 121 个扩展 R

2022-05-24

Pigsty v1.5 现已正式发布。此版本包含完整的 Docker 支持,无数使用数据库的软件均可开箱即用。其他改进包括:基础设施自我监控、更好的冷备份支持、兼容 Redis 与 GP 的新 CMDB、ETCD 作为高可用 DCS、更好的日志收集与呈现。Github

2023-08-06

Pigsty v2.2 现已发布,迎来史诗级重大升级,基于 Grafana v10 彻底重制,将 PG 可观测性拔高到一个全新阶段,带来了全新的用户体验。Demo:http://demo.pigsty.cc。 此外 Pigsty v2.2 还提供了一个42节点的生产仿真环境沙箱模板,支持了 Cit

2022-06-21

Pigsty v1.5.1 现已发布,具体更新内容如下: 内核 在PostgreSQL 14.0 至 14.3 中,出现了一个BUG。当你使用​​​​ CREATE INDEX CONCURRENTLY | REINDEX CONCURRENTLY 在线重建索引时,有可能会导致静默的 索引数据腐坏。 在 2022.06.16日,Pos

2023-09-16

多元共进|2023 Google 开发者大会精彩演讲回顾 Pigsty 在 PostgreSQL 16 发布后跟进了全新版本 Pigsty v2.4,提供了对 PostgreSQL 16 正式版的完整支持。此外在 v2.4 中,还对监控已有PG实例,特别是 RDS for PostgreSQL 与 PolarDB 提供了额外的支

2023-06-11

Pigsty v2.1.0 发布,为跟随PG社区主干的例行升级,添加 PG 11 - 16 支持,现在您可以使用 Pigsty 部署 PG 15.3 , 14.8, 13.11, 12.15, 与 16 beta1。v2.1 针对 PostgreSQL 16 进行了适配,改进了监控系统效果,添加了一系列便利命令工具,建议按需升

2023-04-01

Pigsty v2.0.2 现已发布,现在可以使用 pgvector 插件存储 AI Embedding,并执行高效的最近邻向量搜索。同时,2.0.2 修复了 MinIO CVE-2023-28432 高危漏洞,修复了一些 Bug,并对监控系统面板进行了优化,官方强烈建议升级。 具体更新内容

2023-09-26

Pigsty v2.4.1 现已发布,支持 Supabase、PostgresML,与大量实用新扩展插件。 Highlights Supabase 支持:使用 Pigsty 管理的外部 postgres 运行开源 Firebase 替代版本:配置示例 支持 PostgresML: 在 Postgres 中运行 LLM、向量运算、经典机器学

2024-08-15

Pigsty 创作者整理发布了 333 个 PostgreSQL 插件清单。 这 333 个扩展在 Pigsty 中都可用,其中 EL 可用 RPM扩展 326 个,Debian/Ubuntu 可用 DEB扩展 312 个。 除去 PostgreSQL 自带的 70 个 Contrib扩展

2023-06-07

Solon 是什么框架? 一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(全球第二级别的生态)。与其他框架相比,它解决了两个重要的痛点:启动慢,费资源。 解决痛点? 由于Solon Bean

2024-08-15

更复杂应用环境下对于性能和安全可信的需求。在8月15日发布的deepin V23正式版中,双方针对D3000进行了深度适配及调优。 2023年,飞腾宣布加入deepin(深度)社区,成立飞腾SIG组,为deepin(深度)社区中搭载飞腾系列处理器的

2023-09-08

另一个后来者对它出手:)。。。最近华为 mate 60 pro 的发布,也是鼓舞了很多人。 v2.0 发布已大半年了,原有的规划已全部完成。情况汇报: 部分名字调整(很大的量)。//在 v2.0发布时就干了这个 插件命名规范调整。//

2023-04-04

搭载openKylin操作系统的全球首款RISC-V笔记本电脑ROMA正式发布。ROMA一经亮相,便收获了开发者的广泛关注。作为全球首款原生RISC-V开发笔记本电脑,ROMA的发布为RISC-V的生态应用提供了更多可能,真正实现了RISC-V从物联网领域向通