区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性是存储选项,可让您在 Compute Engine 中实现高可用性 (HA) 服务。区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性可在同一区域中的两个可用区之间同步复制数据,并在遇到一个可用区级故障时确保磁盘数据的高可用性。
区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性卷适用于需要较低恢复点目标 (RPO) 和恢复时间目标 (RTO) 的工作负载。如需详细了解 RPO 和 RTO,请参阅灾难恢复规划基础知识。
区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性卷旨在与区域级托管式实例组搭配使用。本文档简要介绍了如何使用区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性卷构建高可用性服务。
如果您决定使用 区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性,请务必比较可提高服务可用性的不同选项以及不同服务架构的费用、性能和弹性。
同步磁盘复制简介
区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性(预览版)卷(也称为复制磁盘)在区域内具有主可用区和次要可用区,用于存储磁盘数据:
- 主可用区就是您要挂接磁盘的计算实例所在的可用区。
- 次要可用区是您在同一区域内选择的备用可用区。。
Compute Engine 会在这两个可用区中维护磁盘的副本。将数据写入磁盘时,Compute Engine 会将这些数据同步复制到两个可用区中的磁盘副本,以确保高可用性。每个可用区级副本的数据分布在相应可用区内的多个物理机器中,以确保耐用性。可用区级副本可确保磁盘的数据保持可用,并防止其中一个磁盘可用区发生服务中断。
可用区副本状态
区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性(预览版)磁盘副本状态会显示可用区副本与磁盘内容相比的状态。磁盘的可用区级副本始终处于以下磁盘副本状态之一:
- 同步:副本可用,同步接收对磁盘执行的所有写入,并与磁盘上的所有数据保持同步。
- 正在同步:副本可用,但仍在与另一个副本的磁盘上的数据进行同步。
- 不同步:副本暂时不可用,不与磁盘上的数据同步。
如需了解如何检查和跟踪可用区副本状态,请参阅监控磁盘副本状态。
同步复制磁盘的复制状态
根据各个可用区级副本的状态,您的区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性(预览版)卷可以处于以下复制状态之一:
- 完全复制:这两个可用区中的副本均可用,并与最新的磁盘数据同步。
- 正在同步:可用区级副本可用,但其中一个可用区级副本正在与最新的磁盘数据同步。
- 已降级:由于故障或服务中断,其中一个可用区级副本的状态为
out of sync
。
如果磁盘复制状态为 catching up
或 degraded
,则其中一个可用区级副本不会使用所有数据进行更新。在此期间,健康状况良好的副本可用区发生任何服务中断故障都会导致磁盘不可用,直到健康状况良好的副本可用区恢复为止。
当您的 区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性卷正在进行同步时,Google Cloud 会开始修复正在同步的可用区级副本。Google 建议您等待受影响的可用区级副本与磁盘上的数据同步,此时其状态会更改为 Synced
。可用区级副本随后转换为同步状态后,复制磁盘状态会更改回 Fully replicated
状态。
如果复制磁盘长时间处于 catching up
或 degraded
状态,并且不符合组织的 RPO 要求,我们建议您通过以下任一方式拍摄主副本的快照:
- 启用计划快照。
- 创建区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性磁盘的手动快照。
创建快照后,您可以使用该快照作为来源来创建新的区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性磁盘。这会将快照恢复到新磁盘。您的新磁盘也会以具有健康数据复制的完全复制状态开始。
如需了解如何检查区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性磁盘的复制状态,请参阅确定磁盘的复制状态。
副本恢复检查点
副本恢复检查点是一个磁盘属性,表示完全复制磁盘的最新crash-consistent时间点。Compute Engine 会自动为每个复制磁盘创建和保留单个副本恢复检查点。磁盘完全复制后,Compute Engine 大约每 10 分钟将其检查点刷新一次,以确保检查点保持最新。当磁盘复制状态为 degraded
时,Compute Engine 可让您通过该磁盘的副本恢复检查点创建标准快照。生成的标准快照会从完全复制磁盘的最新崩溃一致版本捕获数据。
在极少数情况下,如果磁盘降级,与最新磁盘数据同步的可用区级副本也可能会在不同步的副本完成同步之前失败。您无法将磁盘强制挂接到任一可用区中的计算实例。您的复制磁盘将不可用,必须将数据迁移到新磁盘。在这种情况下,如果没有任何适用于磁盘的现有标准快照,您仍然可以使用根据副本恢复检查点创建的标准快照从不完整副本恢复磁盘数据。
Compute Engine 会自动为每个已装载的 区域级 Persistent Disk 或 Hyperdisk Balanced 高可用性(预览版)磁盘创建副本恢复检查点。创建这些检查点不会产生任何额外费用。但是,使用这些检查点将复制磁盘迁移到正常运行的可用区时,您需要支付创建快照和计算实例所产生的任何适用存储费用。
详细了解如何使用副本恢复检查点恢复复制磁盘数据。
复制磁盘故障切换
如果某个可用区发生服务中断,该可用区将无法访问,并且该可用区中的计算实例无法在其磁盘上执行读写操作。为了允许实例继续对复制磁盘执行读写操作,Compute Engine 允许将磁盘数据迁移到磁盘具有副本的其他可用区。此过程称为故障切换。
故障切换过程涉及将可用区级副本与受影响可用区中的实例分离,然后将可用区级副本挂接到次要可用区中的新实例。Compute Engine 会将磁盘上的数据同步复制到次要可用区,以确保在单个副本发生故障时快速进行故障切换。
通过应用专用的区域级控制平面进行故障切换
应用专用的区域级控制平面不是 Google Cloud 服务。在设计高可用性服务架构时,您必须构建自己的应用专用区域级控制平面。此应用控制平面决定哪个实例必须挂接复制磁盘,以及哪个实例是当前主实例。
在复制磁盘的主实例或数据库中检测到故障时,高可用性服务架构的应用专用区域级控制平面可以自动启动到次要可用区中的备用实例的故障切换。在故障切换期间,应用专用的区域级控制平面将复制磁盘重新挂接到次要可用区中的备用实例。然后,Compute Engine 会根据健康检查信号将所有流量定向到该实例。
总体故障切换延迟时间是除故障检测时间以外,以下延迟时间的总和:
- 将复制磁盘挂接到备用实例不到 1 分钟
- 应用初始化和崩溃恢复所需的时间
如需了解详情,请参阅了解应用专用的区域级控制平面。
灾难恢复基础组件页面介绍了 Compute Engine 上可用的基础组件。
通过强制挂接进行故障切换
区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性(预览版)的优点之一是,如果发生罕见的可用区级服务中断,您可以手动将工作负载故障转移到另一个可用区。如果原始可用区发生服务中断,在该可用区副本恢复之后,您才可以完成分离操作。在这种情况下,您可能需要将次要可用区级副本挂接到新的计算实例,而无需将主可用区级副本与主实例分离。此过程称为强制挂接。force-attach
如果主可用区中的计算实例不可用,您可以将磁盘强制挂接到次要可用区中的实例。要执行此任务,您必须执行以下任一操作:
- 在要强制挂接的复制磁盘所在的可用区中启动另一个计算实例。
- 在该可用区中保留一个热备用计算实例。热备用是指运行中的实例,与主可用区中的实例相同。这两个实例具有相同的数据。
Compute Engine 在不到一分钟的时间内执行强制挂接操作。总恢复时间目标 (RTO) 不仅取决于存储故障切换(复制磁盘的强制挂接操作),还取决于其他因素,包括下列各项:
- 是否必须先创建次要实例
- 底层文件系统检测热连接磁盘所需的时间长度
- 相应应用的恢复时间
如需详细了解如何使用强制挂接功能对计算实例进行故障切换,请参阅使用 force-attach
对复制磁盘进行故障切换。
限制
以下部分列出了适用于区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性(预览版)的限制。
复制磁盘的一般限制
- 您只能将区域级永久性磁盘挂接到使用 E2、N1、N2 和 N2D 机器类型的虚拟机。
- 您只能将 Hyperdisk Balanced 高可用性挂接到支持的机器类型。
- 您无法通过映像或通过映像创建的磁盘创建区域级永久性磁盘。
- 使用只读模式时,您最多可以将一个区域级平衡永久性磁盘挂接到 10 个虚拟机实例。
- 区域级标准永久性磁盘的大小下限为 200 GiB。
- 您只能增加 区域级 Persistent Disk 或Hyperdisk Balanced 高可用性卷的大小;而无法减小其大小。
- 区域级 Persistent Disk 和 Hyperdisk Balanced 高可用性卷与其对应的可用区级磁盘具有不同的性能特征。如需了解详情,请参阅块存储性能。
- 如果您通过克隆可用区级磁盘来创建复制磁盘,则两个可用区级副本在创建时不会完全同步。创建后,您一般可以在 3 分钟内使用区域级磁盘克隆。不过,您可能需要等待几十分钟,磁盘才会完全复制,恢复点目标 (RPO) 才会接近于零。了解如何检查复制磁盘是否已完全复制。
副本恢复检查点的限制
- 副本恢复检查点是设备元数据的一部分,不会单独显示任何磁盘数据。您只能将该检查点用作创建降级磁盘快照的机制。使用检查点创建快照后,您可以使用快照恢复数据。
- 您只能在磁盘降级时通过副本恢复检查点创建快照。
- 仅当磁盘完全复制后,Compute Engine 才会刷新磁盘的副本恢复检查点。
- Compute Engine 仅为磁盘维护一个副本恢复检查点,并且仅维护该检查点的最新版本。
- 您无法查看副本恢复检查点的确切创建和刷新时间戳。
- 您只能使用 Compute Engine API 根据副本恢复检查点创建快照。
后续步骤
- 了解磁盘价格。
- 了解如何创建和管理复制磁盘。
- 了解如何监控磁盘的副本状态。
- 了解如何确定磁盘的复制状态。
- 了解如何管理复制磁盘的故障。
- 了解如何创建复制磁盘的快照。
- 了解如何使用复制磁盘构建高可用性服务。
- 了解如何在 Google Cloud 上构建可扩缩的弹性 Web 应用。
- 查看灾难恢复计划指南。