实例、集群和节点
要使用 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 平衡各集群之间的流量。如果某个集群不可用,您可以从一个集群故障切换到另一个集群。如需详细了解复制功能的工作原理,请参阅复制功能概览。
在大多数情况下,您应该为单个集群启用自动扩缩, 以便 Bigtable 会根据需要添加和移除节点, 处理集群的工作负载
节点
一个实例中的每个集群都有 1 个或多个节点,这类节点是 Bigtable 用于管理数据的计算资源。
在后台,Bigtable 将表中的所有数据拆分为单独的片。这些片会存储在独立于节点但与节点位于同一可用区的磁盘中。一个片与一个节点相关联。
每个节点负责:
- 跟踪磁盘上的特定片。
- 处理传入的片读写请求。
- 对片执行维护任务,例如定期压缩。
集群必须有足够的节点来为其当前工作负载和所存储的数据量提供支持。否则,集群可能无法处理传入请求,而延迟也可能会增加。监控集群的CPU 和 磁盘用量以及为实例添加节点 当其指标超过 规划容量。
如需详细了解 Bigtable 如何存储和管理数据,请参阅 Bigtable 架构。
复制集群的节点
如果您的实例有多个集群,那么在配置自动扩缩的节点数上限或手动分配节点时,您需要考虑故障转移。
您需要手动从一个集群进行故障切换,或自动进行故障切换时 发生故障切换时,接收方集群最好有足够的容量来 支持加载。您始终可以分配足够的节点来 这可能会产生高昂的费用,也可以依靠自动扩缩来添加节点 但需要注意的是,如果发生故障, 在集群扩容时提高性能
如果您的所有应用配置文件都使用单集群路由,则各集群的节点数量可以有所不同。如果需要,您可以根据集群的工作负载调整每个集群的大小。
由于 Bigtable 会在每个集群中分别存储数据的副本,因此各集群必须始终具有足够的节点,为您的磁盘使用率提供支持以及在各集群之间复制写入内容。
如有必要,您仍然可以从一个集群手动故障切换到另一个集群。但是,如果一个集群的节点数量多于另一个集群,而您需要故障切换到节点较少的集群,则可能需要先添加节点。无法保证在您需要进行故障切换时一定有其他节点可供使用,因此您需要事先预留一些节点,而实现此目的的唯一途径是将这些预留的节点添加到您的集群中。