规划在虚拟机上安装 AlloyDB Omni

本文档介绍了如何在支持容器运行时的任何 Linux 环境中运行 AlloyDB Omni。

如需大致了解 AlloyDB Omni,请参阅 AlloyDB Omni 概览

大小和容量

大小和容量会直接影响 AlloyDB Omni 实例的性能、可靠性和成本效益。迁移现有数据库时,所需的 CPU 和内存资源与来源数据库系统的要求类似。

计划从使用匹配的 CPU、RAM 和磁盘资源的部署开始,并将来源系统配置用作 AlloyDB Omni 基准配置。在对 AlloyDB Omni 实例执行充分测试后,您或许可以减少资源消耗。

调整 AlloyDB Omni 环境的大小包括以下步骤:

  1. 定义工作负载。

    • 数据量:估算您将在 AlloyDB Omni 中存储的数据总量。请同时考虑当前数据以及随时间推移的预计增长情况。

    • 事务速率:确定预期的每秒事务数量 (TPS),包括读取、写入、更新和删除。

    • 并发:估算访问数据库的并发用户数量或连接数量。

    • 性能要求:为不同类型的查询和操作定义可接受的响应时间。

  2. 确保您的硬件符合大小调整要求。

    • CPU:AlloyDB Omni 可从具有多个 CPU 核心的系统中受益,并且 AlloyDB Omni 会根据工作负载进行线性扩缩。不过,开源 PostgreSQL 通常不会从多于 16 个的 vCPU 中受益。请考虑以下事项:

      • 基于工作负载并发和计算需求的核心数量。
      • 由于 CPU 世代或平台发生变化而可能带来的任何性能提升。
    • 内存:为用于缓存数据的 AlloyDB Omni 共享缓冲区以及用于查询处理的工作内存分配足够的 RAM。确切要求取决于工作负载。首先可为每个 vCPU 分配 8 GB 的 RAM。

    • 存储

      • 类型:根据您的需求,选择本地 NVMe 存储以提高性能,或选择 SAN 存储以实现可伸缩性和数据共享。

      • 容量:确保有足够的存储空间以用于数据量、索引、预写式日志 (WAL)、备份和未来增长。

      • IOPS:根据工作负载的读写模式估算所需的每秒输入/输出操作数 (IOPS)。在公有云中运行 AlloyDB Omni 时,请考虑存储类型的性能特征,以了解您是否需要增加存储容量以实现特定 IOPS 目标。

运行 AlloyDB Omni 的前提条件

在运行 AlloyDB Omni 之前,请确保您满足以下硬件和软件要求。

硬件要求

操作系统/平台 硬件最低要求 推荐的硬件
Linux
  • CPU:支持 AVX2 的 x86-64 或 ARM CPU
  • RAM:2 GB
  • 磁盘可用空间1:10 GB
  • CPU:支持 AVX2 的 x86-64 或 ARM CPU
  • RAM:为分配给 AlloyDB Omni 的每个 vCPU 提供 8 GB
  • 磁盘空间1:20GB+
macOS
  • CPU:支持 AVX2 的 Intel CPU 或 M 芯片
  • RAM:2 GB
  • 磁盘可用空间1:10 GB
  • CPU:支持 AVX2 的 Intel CPU 或 M 芯片
  • RAM:为分配给 AlloyDB Omni 的每个 vCPU 提供 8 GB
  • 磁盘可用空间1:20GB+
  1. 我们建议您使用专用的固态硬盘 (SSD) 存储设备来存储数据。如果您将实体设备用于此用途,我们建议您将其直接挂接到宿主机。

软件要求

操作系统/平台 最低软件要求 推荐的软件
Linux1
  • 以下操作系统之一:
    • Ubuntu 22.04+
    • Debian 11
    • RHEL 8.10
  • Linux 内核版本 4.18+
  • 启用了 Cgroup v1 或 v2
  • Docker Engine 20.10+ 或 Podman 4.2.0+
  • 以下操作系统之一:
    • Ubuntu 22.04+
    • Debian 11 或 12
    • RHEL 9
  • Linux 内核版本 6.1+,或是支持 MADV_COLLAPSEMADV_POPULATE_WRITE 指令的任何低于 5.3 的 Linux 内核版本
  • 启用了 Cgroupsv2
  • Docker Engine 25.0.0+ 或 Podman 5.0.0+
macOS
  • Docker Desktop 4.20+
  • Docker Desktop 4.30+
  1. AlloyDB Omni 假定 SELinux(如果存在)已在主机上配置为允许容器运行,包括访问文件系统(或者 SELinux 设置为宽容模式)。

支持的存储类型

AlloyDB Omni 支持数据库实例中的块存储卷上的文件系统。对于较小的开发或试用系统,请使用运行容器的主机的本地文件系统。对于企业工作负载,请使用为 AlloyDB Omni 实例预留的存储。根据数据库工作负载设置的需求,可将存储设备配置为采用单例配置(每个容器一个磁盘设备),也可以配置为采用合并配置(多个容器从同一磁盘设备读写数据)。

本地 NVMe 或 SAN 存储

本地非易失性快速内存 (NVMe) 存储和存储区域网络 (SAN) 存储都具有独特的优势。选择合适的解决方案取决于您的具体工作负载要求、预算和未来的可伸缩性需求。

如需确定最佳存储选项,请考虑以下事项:

  • 如需优先考虑绝对性能,请选择本地 NVMe。
  • 如果您需要大规模的共享存储空间,请选择 SAN。
  • 如果您需要在性能和共享之间达到平衡,请考虑使用 NVMe over Fabrics 的 SAN,以便更快地访问数据。

本地 NVMe 存储

NVMe 是一种专为固态硬盘 (SSD) 设计的高性能协议。对于需要快速访问数据的应用,本地 NVMe 存储具有以下优势:

  • NVMe SSD 可直接连接到外设组件互连快速 (PCIe) 总线,以提供快速的读写速度。
  • 本地 NVMe 存储可提供最短的延迟时间。
  • 本地 NVMe 存储可提供最高的吞吐量。

对本地 NVMe 存储扩容需要向各个服务器添加更多驱动器。不过,向各个服务器添加更多驱动器会导致存储池碎片化,并且可能导致管理变得复杂。本地 NVMe 存储并非专为在多个服务器之间共享数据而设计的。由于本地 NVMe 存储位于本地,因此服务器管理员必须使用硬件或软件廉价磁盘冗余阵列 (RAID) 来防范磁盘故障。否则,单个 NVMe 设备发生故障将导致数据丢失。

SAN 存储

SAN 是一种专用存储网络,可将多个服务器连接到共享存储设备池(这些设备通常是 SSD 或集中式 NVMe 存储)。虽然 SAN 不如本地 NVMe 快,但现代 SAN(尤其是使用 NVMe over Fabrics 的 SAN)仍可为大多数企业工作负载提供出色的性能。

  • SAN 具有高度可伸缩性。如需增加存储容量或提升性能,请添加新的存储阵列或升级现有存储阵列。SAN 在存储层提供冗余,以防范存储介质故障。

  • SAN 在数据共享方面表现出色。对于需要高可用性的企业环境,多个服务器可以访问和共享存储在 SAN 上的数据。如果发生服务器故障,您可以将 SAN 存储提供给数据中心内的其他服务器,从而可更快地恢复。

后续步骤