使用 RPM Orchestrator 的 AlloyDB Omni 概览

选择文档版本:

AlloyDB Omni 提供了一个编排平台,用于在非 Kubernetes 环境(例如 Red Hat Enterprise Linux (RHEL) 和使用 Red Hat Package Manager (RPM) 软件包的兼容系统)中部署和管理 AlloyDB Omni。RPM 编排器部署选项将类似云的灵活性和自动化功能扩展到本地和虚拟机 (VM) 基础架构。

借助使用 RPM 编排器的 AlloyDB Omni,企业可以使用标准 RPM 软件包安装、配置和管理 AlloyDB Omni 实例。这种方法支持对虚拟机基础架构进行了大量投资,并围绕自动化工具(例如 Ansible)建立了成熟运营实践的组织。RPM 编排器部署选项直接在 Linux 虚拟机或裸金属服务器上运行,而无需 Docker 等容器化层或 Kubernetes 等编排系统。

使用场景

RPM 编排器部署选项支持以下使用场景:

使用场景 说明
拥有虚拟机基础架构的企业 支持 Kubernetes 不是标准配置的公司,或具有应用依赖项的容器化环境,这些环境偏好标准虚拟机或裸金属部署。
简化的运营方式 使用熟悉的工具(例如 Ansible)自动执行数据库部署、配置和生命周期管理。
高可用性 (HA) 和灾难恢复 (DR) 设置具有自动故障切换和恢复机制的弹性 AlloyDB Omni 集群。
混合环境 确保本地数据中心和云虚拟机之间数据库操作的一致性。
旧版系统集成 与为非容器化环境设计的现有应用和系统集成。

福利

RPM 编排器部署选项具有以下优势:

  • 快速部署:自动执行从预配到验证的整个生命周期,从而显著缩短设置 AlloyDB Omni 集群的时间并降低其复杂性。
  • 无缝集成:与标准 Linux 软件包管理 (RPM) 和热门自动化框架(例如 Ansible)原生集成,让团队能够使用现有技能和工具集成。
  • 一致的体验:提供与 AlloyDB Omni Kubernetes 操作器相当的管理和运营用户体验和功能集,从而确保不同部署模型之间的一致性。
  • 企业级高可用性 (HA) 和灾难恢复 (DR):支持灵活的高可用性和灾难恢复配置,以满足业务连续性需求。
  • 强大的安全性:有助于实施多方面的安全策略,包括用户管理、使用证书 (SSL) 的网络安全以及与系统(例如 Microsoft Active Directory)的集成。
  • 集中式管理:使用 AlloyDB Omni 服务为管理虚拟机上的 AlloyDB Omni 提供统一的控制平面。
  • 可观测性和审核:支持使用 rsyslog 与外部日志记录服务器(例如 Elastic Stack)集成,以实现集中式日志管理、监控和审核。
  • 数据保护:包含用于简化备份和恢复配置及策略的功能。
  • 连接池:支持部署 PgBouncer 以优化数据库连接并提高性能。
  • 舰队管理:让您能够大规模管理多个 AlloyDB Omni 集群。

架构

AlloyDB Omni 定义了提供灵活性的组件层次结构。这种灵活性有助于您最大限度地提高数据可用性,并优化查询性能和吞吐量。借助这种方法,您可以监控 AlloyDB Omni 部署,并根据工作负载调整其规模和大小。

下图展示了裸金属或虚拟机环境中的 AlloyDB Omni 部署分类。

AlloyDB Omni 虚拟机部署拓扑。

图 1. AlloyDB Omni 虚拟机部署拓扑

层次结构中的顶级资源是 AlloyDB Omni 部署,其中包含一个主集群和一个或多个次要集群。 AlloyDB Omni 集群有一个或多个实例,这些实例是用户连接到的计算资源的抽象。集群包含一个主实例(读写)和一个或多个可选的读取池实例(只读)。每个实例都有自己的访问端点。您可以选择为独立部署设置具有单个节点的主实例,也可以为高可用性部署设置具有多个节点的主实例。所有节点都使用软件包部署了 AlloyDB Omni 和其他相关组件。

主实例包含一个旨在处理事务工作负载的活跃(读写)节点。对于超出基本测试、实验和开发的数据库集群,请设置具有额外备用节点的高可用性。 为了避免在因主节点(用于处理读写事务)可用性丢失而导致故障时丢失数据 (RPO=0),请配置备用节点的同步复制模式 RPORPO 定义为恢复点目标。

组件

RPM 编排器部署选项包含一组软件组件,每个组件都作为 RPM 或 Debian 软件包安装,用于实现全堆栈、高可用性的 AlloyDB Omni 部署。参考架构依赖于这些组件进行数据库操作。

组件 说明
编排器 AlloyDB Omni 编排提供命令行和 Ansible 接口,可帮助您在分布式环境中部署和管理一个或多个 AlloyDB Omni 集群。
alloydbomni AlloyDB Omni 核心包含 PostgreSQL 和 Autopilot 功能,可提高性能和功能,以支持现代工作负载,例如在线分析处理 (OLAP) 和生成式 AI。
alloydbomni_monitor 借助 AlloyDB Omni 监控器,您可以从 AlloyDB Omni 中提取指标。
etcd etcd 提供了一个分布式配置系统,集群管理器使用该系统来存储 PostgreSQL 配置和状态信息。
集群管理器 中央控制平面负责编排集群范围内的操作。这包括启动集群、管理高可用性、处理故障切换、协调升级,以及为自动化工具(例如 Ansible 和 alloydbctl 命令行实用程序)公开接口。
节点管理器 在 AlloyDB Omni 集群中的每个节点上运行的代理。它与集群管理器交互,以在节点上执行任务,例如安装和配置 AlloyDB Omni、管理数据库服务生命周期(启动和停止)、监控节点健康状况以及收集日志和指标。
HAProxy HAProxy 充当 AlloyDB Omni 部署的负载均衡器。它公开了读写和只读端点。它与集群管理器协同工作,将流量重定向到适当的活跃节点。
keepalived keepalived 可以使用浮动虚拟 IP 地址为参与节点(例如 HAProxy)提供高可用性。
PgBouncer PgBouncer 是 PostgreSQL 数据库的轻量级连接池。
pgBackRest pgBackRest 是一款专为 PostgreSQL 设计的开源备份和恢复工具。

借助此架构,您可以在现有的 Linux 虚拟机环境中高效运行和运营 AlloyDB Omni,将 AlloyDB Omni 与其成熟运营实践的熟悉度相结合。

系统要求

AlloyDB Omni 部署堆栈的系统要求包括一组预配置为运行各种组件的虚拟机。每个 AlloyDB Omni 虚拟机都必须挂接一个配置了 ext4/xfs 文件系统的数据磁盘。磁盘大小根据数据大小估算。存储的性能特征会影响 AlloyDB Omni 的性能。下表提供了虚拟机的最低和推荐 CPU 及内存配置。

虚拟机类型 最低硬件和操作系统 (OS) 推荐的硬件和操作系统
控制器节点
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 2 个 vCPU
  • RAM:2 GB
  • 磁盘:10 GB
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 8 个 vCPU
  • RAM:8 GB
  • 磁盘:20 GB 或更多
负载平衡器节点
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 2 个 vCPU
  • RAM:2 GB
  • 磁盘:10 GB
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 16 个 vCPU
  • RAM:8 GB
  • 磁盘:20 GB 或更多
AlloyDB Omni(独立)
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 2 个 vCPU
  • RAM:16 GB
  • 磁盘:20 GB
  • 数据磁盘:数据大小的 2 倍
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 64 个 vCPU
  • RAM:AlloyDB Omni 的每个 vCPU 8 GB
  • 磁盘:20 GB
  • 数据磁盘:数据大小的 2 倍
AlloyDB Omni(高可用性)
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 4 个 vCPU
  • RAM:20 GB
  • 磁盘:10 GB
  • 数据磁盘:数据大小的 2 倍
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 64 个 vCPU
  • RAM:AlloyDB Omni 的每个 vCPU 8 GB 或更多
  • 磁盘:20 GB
  • 数据磁盘:数据大小的 2 倍
备份代码库节点
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 2 个 vCPU
  • RAM:2 GB
  • 磁盘:10 GB
  • 备份磁盘:N 天乘以数据大小
  • 操作系统:RHEL9
  • CPU:支持 AVX2 的 x86-64 8 个 vCPU
  • RAM:8 GB
  • 磁盘:20 GB
  • 备份磁盘:N 天乘以数据大小

高可用性部署参考架构

与单节点数据库设置相比,高可用性架构可提供更强的数据层级停机保护。此参考架构配置使用三节点设置,其中一个节点作为主活跃节点,其他节点作为同步流式复制的备用服务器,部署在不同的可用区中。如果主节点发生故障,其中一个备用节点将接管主节点以处理客户端查询。

软件堆栈中的集群管理器组件执行集群配置。集群管理器还会监控 AlloyDB Omni 服务器,并在分布式配置系统(例如 etcd)的帮助下选择新的主节点。企业使用 RPO 和 RTO(恢复时间目标)作为可用性的关键衡量指标。高可用性架构设置可为可用区级故障提供接近零的 RPO 和 RTO。

其他节点部署基于 HAProxy 的负载均衡器,并为只读工作负载配置额外的端点。HAProxy 与集群管理器协同工作,以监控当前活跃节点,并在发生故障切换时切换到新的活跃节点。客户端连接到 HAProxy 节点以对数据库执行操作。下图展示了此高可用性部署架构。

AlloyDB Omni HA 部署架构。

图 2: 高可用性部署架构

RPM 编排器

借助使用 RPM 编排器的 AlloyDB Omni,您可以获得一个自动化平台和一个控制平面,用于在一组虚拟机或裸金属服务器上安装、设置和管理 AlloyDB Omni 数据库集群。这包括各种参考架构配置,例如独立、弹性、可伸缩的高可用性 (HA)。

AlloyDB Omni 集群管理器提供控制平面。 此组件是核心服务,可自动管理 AlloyDB Omni 集群并确保其高可用性,以帮助控制 AlloyDB Omni 集群的端到端生命周期。控制平面本身具有高可用性,可处理各种故障场景。

RPM 编排器部署选项是与 AlloyDB Omni 集群管理器服务通信的远程接口。编排器在专用节点(称为控制节点)上运行。 在此节点中,您可以通过安全通道远程管理一个或多个集群。为了与您的环境兼容,提供了多个 AlloyDB Omni 编排器。选择适合您自动化需求的编排器。

  • AlloyDB Omni 编排器 CLI(以 RPM 形式提供):建议用于使用 Shell 脚本自动执行集群部署和管理的环境。
  • RPM 编排器 Ansible(以 Ansible Collection 形式提供):建议用于使用内置 Ansible 自动化并准备好通过调用其他 Ansible 角色来扩展它的环境。提供了示例 Ansible playbook,以便与现有 Ansible playbook 直接集成。

AlloyDB Omni 编排器有助于执行以下与 AlloyDB Omni 集群相关的操作。基于 Ansible 的编排器为每个操作提供 Ansible 角色。命令行提供了一组使用 Shell 提示符或 Shell 脚本调用的命令。

  • Installation:在相应节点上安装各种集群组件。
  • Bootstrap:根据规范配置和启动所有组件。
  • Update:更新资源以使用较新版本或更新的配置。
  • Status:获取集群中所有组件或服务的状态。
  • List:获取集群中部署的可用资源列表。
  • Delete:删除集群资源。

编排器以 YAML 格式获取一组规范作为输入。

  • 部署规范:与定义虚拟机集群拓扑的 Ansible 清单格式相同。它包含各种虚拟机组(例如以下组)及其配置。
    • primary_instance_nodes:专用于 AlloyDB Omni 数据库服务器的节点。
    • cluster_manager_nodes:可选。运行 AlloyDB Omni 集群管理器服务器的节点。如果不存在专用集群管理器节点,您可以在 primary_instance_nodes 上部署集群管理器。
    • etcd_nodes:集群管理器将元数据存储在 etcd 上。如果未明确指定,etcd 可以与集群管理器节点在同一节点上运行。
    • load_balancer_nodes:这些是专用于基于 HAProxy 的负载均衡器的额外节点。
  • 资源规范:集群由一个或多个要部署和管理的集群资源组成,例如数据库集群和连接池。资源规范采用 YAML 格式,描述了要在集群中部署的资源。

限制

  • 预览版仅支持以下内容:
    • AlloyDB Omni PostgreSQL 18
    • 与 RHEL 版本 9 兼容的软件包
    • Intel x86 64 位平台
  • 不支持主要版本升级。
  • 不包含设置灾难恢复和读取池实例的说明。
  • AlloyDB Omni 监控不支持 SSL 连接。您必须将监控信息中心服务器部署在与 AlloyDB Omni 节点相同的专用网络上。
  • AlloyDB Omni 假定 SELinux(如果存在)已在主机上配置为宽容模式,包括访问文件系统。

后续步骤