实例、集群和节点

要使用 Bigtable,您可以创建实例,其中包含您的应用可以连接的集群。每个集群均包含节点,也就是管理数据和执行维护任务的计算单元。

本页面详细介绍了 Cloud Bigtable 实例、集群和节点。

在阅读本页内容之前,您应先熟悉 Bigtable 概览

实例

Bigtable 实例是数据的容器。实例具有一个或多个位于不同可用区的集群。每个集群至少有 1 个节点

表属于实例,而不属于集群或节点。如果您有一个具有多个集群的实例,则您正在使用复制功能。这意味着您不能将表分配给单个集群或者为实例中的每个集群创建独特的垃圾回收政策。您也不能让每个集群在同一个表中存储不同的数据集。

您需要了解以下几个重要的实例属性:

  • 存储类型(SSD 或 HDD)
  • 应用配置文件,主要用于使用复制功能的实例

以下各部分对这些属性进行了介绍。

存储类型

创建实例时,您必须选择实例的集群是用固态硬盘 (SSD) 还是普通硬盘 (HDD) 来存储数据。SSD 通常是最有效且最具成本效益的选择,但并非总是如此。

SSD 和 HDD 之间的选择是永久性的,而且实例中的每个集群都必须使用相同类型的存储设备,因此请务必选择适合您的用例的类型。请参阅在 SSD 和 HDD 存储空间之间进行选择中的详细说明,以帮助您做出决定。

应用配置文件

创建实例后,Bigtable 会使用该实例来存储应用配置文件。对于使用复制功能的实例,应用配置文件可控制应用连接到实例集群的方式。

如果您的实例不使用复制功能,您仍然可以使用应用配置文件为每个应用或一个应用中的每个函数提供单独的标识符。然后,您可以在 Google Cloud 控制台中分别查看每个应用配置文件的图表

如需详细了解应用配置文件,请参阅应用配置文件。如需了解如何设置实例的应用配置文件,请参阅配置应用配置文件

集群

集群代表特定位置中的 Bigtable 服务。每个集群属于一个 Bigtable 实例,而一个实例最多可以在 8 个区域中具有集群。 当您的应用向 Bigtable 实例发送请求时,这些请求实际上由实例中的集群之一进行处理。

每个集群位于一个可用区中。 一个实例最多可以在 8 个提供 Bigtable 的区域中具有集群。一个区域中的每个可用区只能包含一个集群。例如,如果实例在 us-east1-b 中有一个集群,则您可以在同一区域中的不同可用区(例如 us-east1-c)或一个单独区域中的一个可用区(例如 europe-west2-a)中添加一个集群。

您可以在一个实例中创建的集群数取决于所选区域中的可用区数。例如,如果您在分别包含 3 个可用区的 8 个区域中创建集群,则实例最多可以有 24 个集群。如需提供 Bigtable 的可用区和区域列表,请参阅 Bigtable 位置

只有一个集群的 Bigtable 实例不使用复制功能。如果您向实例添加第二个集群,则 Cloud Bigtable 会自动开始复制您的数据,具体过程是在集群所在的每个可用区中分别保留数据的副本,并在各副本之间同步更新。您可以为应用选择要连接的集群,以便将不同类型的流量彼此隔离。您还可以让 Cloud Bigtable 平衡各集群之间的流量。如果某个集群不可用,您可以从一个集群故障切换到另一个集群。如需详细了解复制功能的工作原理,请参阅复制功能概览

节点

一个实例中的每个集群都有 1 个或多个节点,这类节点是 Bigtable 用于管理数据的计算资源。

在后台,Bigtable 将表中的所有数据拆分为单独的。这些片会存储在独立于节点但与节点位于同一可用区的磁盘中。一个片与一个节点相关联。

每个节点负责:

  • 跟踪磁盘上的特定片。
  • 处理传入的片读写请求。
  • 对片执行维护任务,例如定期压缩

集群必须有足够的节点来为其当前工作负载和所存储的数据量提供支持。否则,集群可能无法处理传入请求,而延迟也可能会增加。监控集群的 CPU 和磁盘使用率,并在实例的指标超出下面列出的建议和限制时向该实例添加节点

如需详细了解 Bigtable 如何存储和管理数据,请参阅 Bigtable 架构

CPU 使用量

针对 CPU 使用率,Bigtable 会报告以下指标:

指标 说明
平均 CPU 利用率

集群中所有节点的平均 CPU 利用率。 如果实例中的表启用了变更数据流,则包含变更数据流活动。

建议的最大值为应对短暂的用量高峰提供了提升空间。

如果某个集群超过为您的配置推荐的最大值的时间超过几分钟,请为集群添加节点。

最热节点的 CPU 利用率

集群中最繁忙节点的 CPU 利用率。我们会继续提供此指标以确保连贯性,但在大多数情况下,您应该改为使用另一个更为准确的指标,即“最热节点的高粒度 CPU 利用率”。

最热节点的高粒度 CPU 利用率

精确衡量集群中最繁忙节点的 CPU 利用率。我们建议您使用此指标来代替“最热节点的 CPU 利用率”,因为此指标更为准确。

最热节点不一定在每一时刻都是同一节点并且它可能会快速变化,尤其是在执行大规模批量作业或进行表扫描期间。

如果最热节点的 CPU 利用率频繁高于此推荐值,则即使您的平均 CPU 利用率尚属合理,也说明您对一小部分数据的访问频率可能大大高于其余数据。

  • 使用 Key Visualizer 工具识别表中可能导致 CPU 利用率高峰的热点。
  • 请检查您的架构设计,以确保其可以将读取和写入操作均匀分布到各表。
变更数据流 CPU 利用率

集群内所有节点上的变更数据流活动导致的平均 CPU 利用率。

应用配置文件、方法和表的 CPU 利用率

应用配置文件、方法和表的 CPU 利用率。

如果您发现集群的 CPU 使用率高于预期,请使用此指标来确定特定应用配置文件、API 方法或表的 CPU 使用率是否能够增加 CPU 负载。

这些指标的值不应超过以下值:

配置 推荐的最大值1
  1. 推荐的最大值适用于整个集群;对于应用配置文件、方法或表,没有建议的 CPU 利用率最大值。使用此更精细的指标来观察集群 CPU 使用率过高的可能原因。
  2. 建议的最大值可确保实例有足够的容量,能够在发生故障切换时以低延迟方式继续提供服务。例如,在具有两个集群的实例中,如果另一个集群不可用,每个集群必须能够以 70% 的速度处理所有流量。
单集群路由,任意数量的集群

平均 CPU 利用率为 70%
最热节点的 CPU 利用率为 90%

多集群路由,已启用自动扩缩,2 个或更多集群

平均 CPU 利用率为 70%
最热节点的 CPU 利用率为 90%

多集群路由,未启用自动扩缩,2 个集群

平均 CPU 利用率为 35%2
最热节点的 CPU 利用率为 45%2

多集群路由、未启用自动扩缩、3 个或更多集群

取决于您的配置。请参阅各种常见用例的复制设置的示例

磁盘使用量

针对磁盘使用率,Bigtable 会报告以下指标:

指标 说明
存储空间利用率(字节)

集群中存储的数据量。 此指标未涵盖变更数据流用量。

此值会影响您的成本。 另外,随着数据量增加,您可能还需要为每个集群添加节点(如下所述)。

存储空间利用率(% 上限)

集群的存储空间容量使用百分比。容量基于集群中的节点数量。 此指标未涵盖变更数据流用量。

一般情况下,请确保您的存储空间使用量不要超过总存储空间硬性限制的 70%,以便留出空间供添加更多数据。如果您不打算向实例添加大量数据,则可以将硬性限制完全用尽。

如果您的存储空间使用量超过建议的存储空间限制百分比,请为集群添加节点。您还可以删除现有数据,但删除的数据会占用更多(而不是更少)空间,直到执行压缩操作为止

如需详细了解如何计算此值,请参阅每个节点的存储空间利用率

变更数据流存储空间利用率(字节)

实例中各个表的变更数据流记录所占用的存储空间容量。此存储空间不计入存储空间总用量。您需要为变更数据流存储空间付费,但它不会包含在存储空间利用率(最大百分比)的计算中。

磁盘负载

您的集群用于 HDD 读取的带宽占可用带宽上限的百分比。仅适用于 HDD 集群。

如果此值经常达到 100%,延迟可能会增加。请向集群添加节点以减少磁盘负载百分比。

复制集群的节点

在使用复制功能的实例中,请确保各集群都有足够的节点为您的用例提供支持:

  • 如果您使用复制功能来提供高可用性,或者在您的任何应用配置文件中使用多集群路由,则各集群的节点数量应当相同。另外,建议的 CPU 利用率(如上文的 CPU 使用率中所示)将减半。

    此项配置有助于确保在需要自动故障切换时,响应速度快的集群有足够的容量来处理您的所有流量。

  • 如果您的所有应用配置文件都使用单集群路由,则各集群的节点数量可以有所不同。如果需要,您可以根据集群的工作负载调整每个集群的大小。

    由于 Bigtable 会在每个集群中分别存储数据的副本,因此各集群必须始终具有足够的节点,为您的磁盘使用率提供支持以及在各集群之间复制写入内容。

    如有必要,您仍然可以从一个集群手动故障切换到另一个集群。但是,如果一个集群的节点数量多于另一个集群,而您需要故障切换到节点较少的集群,则可能需要先添加节点。无法保证在您需要进行故障切换时一定有其他节点可供使用,因此您需要事先预留一些节点,而实现此目的的唯一途径是将这些预留的节点添加到您的集群中。

后续步骤