本文档介绍了可用区虚拟化,Google 使用此方法将公共可用区映射到数据中心内的内部物理硬件集群。可用区虚拟化让我们能够无缝扩展可用区、升级硬件以及停用物理基础架构,而不会影响客户。如果您的应用分布在多个项目中,并且您希望了解 Google 如何在整个物理基础架构中分布其可用区,请参阅本主题。
Google Cloud 资源托管在全球多个区域。 区域是独立的地理位置,由多个地区组成。可用区和区域是对底层物理资源的逻辑抽象。区域由 3 个或更多可用区组成,这些可用区位于 3 个或更多物理数据中心内。墨西哥、大阪和蒙特利尔有三个可用区,位于一个或两个物理数据中心内。这些区域目前正在扩展到至少三个物理数据中心。在 Google Cloud 中构建解决方案时,请参考 Cloud 位置、Google Cloud Platform 服务等级协议以及适当的 Google Cloud 产品文档中的指南。
将资源置于某个区域的多个可用区可以降低影响您的应用的物理和软件基础架构故障的风险。将资源布置在不同区域中可以实现更高程度的故障独立性。
如需查看 Google Cloud 地理位置列表,请参阅区域和可用区。如需详细了解如何构建弹性应用,请参阅有关灾难恢复规划的 Google Cloud 解决方案系列。
集群
所有 Google Cloud 硬件都会被组织为“集群”。集群代表由建筑物、电源和制冷基础架构支持的一组计算、网络和存储资源。基础架构组件通常支持单个集群,从而确保集群共享的依赖项更少。
图 1:asia-east1
区域中有三个可用区。每个可用区都有自己的集群,其中包含各个资源。
但是,具有高度展示的可靠性和下游冗余性的组件可以在集群之间共享。例如,多个集群通常共享一个公用电网变电站,因为变电站非常可靠,并且集群使用冗余电源系统。Google Cloud 设计的物理基础架构可支持 Google Cloud 服务的服务等级协议 (SLA) 和服务等级目标 (SLO)。
可用区到集群的映射
项目首次使用某个区域时,Google Cloud 会为该区域中的每个可用区选择一个唯一集群,该集群是此项目的可用区级资源的默认集群。但是,硬件限制可能会导致其他集群用于该可用区。此选择称为可用区到集群的映射。按项目选择默认的可用区到集群的映射,以便每位客户都能获得相同的功能和性能。在某个项目中,逻辑可用区与物理集群之间的映射是一致的,但另一个项目可能基于项目的可用区级资源具有完全不同的可用区到集群的映射。一个项目绝不会将两个可用区映射到同一个物理集群。
您可以使用 Virtual Private Cloud (VPC) 网络来保持项目之间的可用区到集群的映射的一致性。Google Cloud 会尝试将相同的可用区到集群的映射分配给共享一个 VPC 网络的所有项目。您可能希望各个项目之间一致的可用区到集群映射适用于可预测的原子化应用组件故障。
虚拟化可用区
随着区域的扩展,每个可用区受到多个集群支持。我们的目标是将具有共享基础架构(例如建筑物或冷却基础架构)的集群划分到逻辑可用区,以使共享基础架构故障仅影响一个区域内的一个可用区。
图 2 asia-east1
中的三个可用区有两个已扩展,因此现在有两个集群。
尽量减少用来维护客户工作量的集群数量。您的可用区级工作负载通常包含在单个集群中。但是,如果在映射的主集群中未提供额外的容量或专用硬件,则可用区到集群的映射可能包含其他集群。
图 3 显示的图表展示了两个项目的可用区到集群的映射:
- 项目 Fizz 将两个集群映射到
asia-east1-a
,因为只有集群 z 支持 GPU 工作负载,只有集群 y 支持 TPU 工作负载。 - 项目 Fizz 和项目 Buzz 将不同的集群映射到
asia-east1-b
。
虽然可用区到集群的映射很少发生变化,但随着容量需求和底层硬件产品的演变,确实会进行更改。例如,集群会添加到可用区以提高容量,并在停用后从可用区中移除。在任何维护事件期间,Google 都会尝试尽可能使用实时迁移功能来限制停机时间。
如果集群发生服务中断,系统会在 Google Cloud 状态信息中心报告与该集群关联的逻辑可用区发生服务中断,但是,并非所有客户资源都会受到影响,因为此可用区可能包含多个集群。因此,一些客户可能不会受到单个集群服务中断的影响。我们强烈建议您采用多可用区级架构,以尽可能降低服务中断造成的影响。
共享网络和虚拟化可用区
Virtual Private Cloud (VPC) 网络是虚拟化网络,可在项目中的资源之间提供连接。多个项目可以共享 VPC 网络以启用跨项目连接,并且组织可以对等互连共享 VPC 网络以启用跨组织连接。我们的可用区虚拟化映射算法会尝试将同一可用区到集群映射分配给共享 VPC 网络的所有项目,或通过 VPC 对等互连扩展其 VPC 网络。即使项目位于不同的 Google Cloud 组织中,也是如此。随着网络复杂性随着项目和 VPC 的数量增多而增加,维护一致的可用区映射会变得更具挑战性,因此无法保证。
后续步骤
- 详细了解全球、区域和地区资源。
- 详细了解地理位置和地区。