你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用弹性集群横向扩展

本文提供了针对 Azure Database for PostgreSQL 灵活服务器弹性集群执行水平缩放操作的分步说明。

Azure Database for PostgreSQL 弹性群集通过向群集添加更多工作器节点来提供水平缩放。 缩放 PostgreSQL 弹性群集时,可以通过为数据库提供更多资源或更多节点来处理增长,以便进行并行查询处理。 通过最短的停机时间和内置的分片管理,可以获得所有这些优势。

横向扩展方法

根据工作流和自动化需求,使用多种方法之一将工作器节点添加到弹性群集,包括 Azure 门户、Azure CLI 或自动化,或者通过 ARM 模板和 API 实现自动化。 以下部分提供了门户和 CLI 的分步说明,并阐述缩放后的再平衡。

使用 Azure 门户

  1. 打开资源:在 Azure 门户中,导航到 Azure Database for PostgreSQL 灵活服务器弹性群集。

  2. 转到“计算 + 存储:在”设置“部分下,选择”计算 + 存储”。 此页面显示群集节点的当前配置。

    显示弹性群集的“概述”页的屏幕截图。

  3. 调整节点计数:查找“节点计数”字段。 将数字增加到所需的总节点数(对于 GA 中的大多数群集,介于 2 到 20 之间)。 例如,若要将四个节点群集加倍到八个节点,请将滑块增加到 8。 Azure 预配其他工作器节点以达到此计数。

    显示如何选择“计算 + 存储”页的屏幕截图。

  4. 应用更改:选择“保存”。 出现提示时确认横向扩展操作。 Azure 开始将节点添加到群集。 此作联机执行,通常不会中断现有连接或查询。 部署可能需要几分钟。 可以在门户通知中监视进度。 完成后,群集的节点计数将反映新值。

注释

必须显式触发分片重新均衡的后台进程,以便将现有数据在所有节点之间重新分布。 此操作不会中断数据的读取和写入。

重新平衡

将节点添加到群集后,任何新数据修改或新添加的分布式表都使用所有可用节点。 在重新分发之前,现有的数据分片会保持在其原有位置。 在线再平衡可确保在移动数据时,应用程序的读取和写入操作能持续进行,并且中断最小。

横向扩展弹性群集时,重新均衡群集可确保现有数据完全分布,并且数据库使用所有可用节点。 使用 citus_rebalance_start 函数启动重新平衡过程。 此操作在所有节点上均匀分配现有数据。

SELECT citus_rebalance_start();

并行重新均衡

默认再平衡操作按顺序执行多个分片移动。 在某些情况下,你可能希望以牺牲使用更多资源(例如计算、内存和网络带宽)来更快地平衡。 在这些情况下,可以将再平衡操作配置为并行执行多个分片移动。

citus.max_background_task_executors_per_node 参数允许分片重新均衡等任务并行运行。 可以根据需要增加默认值(1),以提高并行度。

ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();

此外,还可以配置 citus_rebalance_start 函数,以便根据不同的策略重新平衡分片,以最好地匹配数据库工作负荷。 添加额外的后台任务执行器后,下面是使用并行工作者重新均衡分片的示例:

SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);

注意事项

缩放后监视群集:在 Azure 门户的“监视”图表上检查弹性群集的 CPU 使用率、内存使用情况和 IO 消耗量。 横向扩展操作后,验证添加节点是否反映了吞吐量和响应时间指标的改进,这取决于您的工作负荷。 如有必要,请进一步调整。

调整弹性集群的规模使成本随资源呈线性变化。 添加节点将计算和存储成本乘以节点数。 例如,一个包含两个 vCore 的四节点群集的成本大约是单个双 vCore 服务器成本的四倍,因为你运行的是四台服务器。 始终在门户中查看定价影响。 在保存之前更改配置时,Azure 门户中会更新预估成本,以确保其符合您的预算。

高可用性:如果群集启用了区域冗余的高可用性,扩展操作还会为任何新节点配置备用资源。 Azure 服务会自动处理此问题。 预计横向扩展需要的时间要稍长一些,因为它为每个添加的节点设置 HA 副本。 该过程和故障时间特性几乎相同,对于主对和备用对则成倍增加。

只读副本:如果将群集配置为使用只读副本,则必须按照特定作顺序将节点添加到群集。 首先,将节点数添加到主群集并保存更改。 成功完成后,对只读副本环境进行相应的更改并保存更改。 在主环境和只读副本环境更新和同步之前,主群集上的新节点不符合进行群集操作的条件。

注释

尚未提供从弹性群集中移除节点(横向缩减)的功能。

使用上述缩放技术,Azure Database for PostgreSQL 弹性群集可以灵活地在需求增加时无缝启动和扩展数据库。 您可以享受到单个终结点的简便性以及分布式 Postgres 基础设施的强大功能。 继续监视 Azure 的文档,以获取有关弹性群集功能和缩放最佳做法的最新更新。