通过


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

Azure 磁盘存储的可靠性

Azure 磁盘存储为Azure虚拟机(VM)提供托管磁盘。 它专为任务关键型工作负荷构建,可确保企业级可靠性和可用性。 数据会自动复制,以防止硬件故障,有多个冗余选项来满足持久性要求。

使用 Azure 时,可靠性是共同的责任。 Microsoft提供了一系列功能来支持复原和恢复。 你负责了解这些功能如何在你使用的所有服务中工作,并选择满足业务目标和运行时间目标所需的功能。

本文介绍如何使Azure 磁盘存储应对各种潜在中断和问题,包括暂时性故障、可用性区域故障和区域范围的故障。 它还介绍了备份和恢复选项,并重点介绍了有关Azure 磁盘存储服务级别协议(SLA)的关键信息。

重要

考虑磁盘的可靠性时,还需要考虑 VM、网络基础结构和在 VM 上运行的应用程序的可靠性。 如果其他组件不同样具有复原能力,则仅提高磁盘的复原能力可能会造成有限的影响。 根据复原能力要求,可能需要跨多个区域进行配置更改。

生产部署建议

Azure Well-Architected Framework 提供有关可靠性、性能、安全性、成本和操作的建议。 若要了解这些领域如何相互影响并有助于构建可靠的 Azure 磁盘存储 解决方案,请参阅 Azure 磁盘存储 的架构最佳实践

可靠性体系结构概述

每个虚拟机(VM)将磁盘用于不同的目的:

  • OS 磁盘:单个 OS 磁盘运行操作系统。 默认情况下,它是保留数据的托管磁盘。 还可以使用 非托管的临时 OS 磁盘。 避免使用 OS 磁盘来存储应用程序或数据。
  • 数据磁盘:用于存储应用程序和数据的零个或多个托管磁盘。
  • 临时磁盘:每个 VM 随附的非持久性非托管磁盘。

本指南特别侧重于可可靠地保存数据的托管磁盘。 若要详细了解不同的磁盘角色,请参阅 磁盘角色

托管磁盘专为 99.999% 的 VM 可用率而设计,并提供至少 99.999999999%(11个9)的持久率。 使用托管磁盘时,您的数据将被复制三次。 如果这三个副本中的一个不可用,Azure会自动在后台生成数据的新副本。 这可确保数据的持久性和高容错能力。

默认情况下,托管磁盘使用本地冗余存储(LRS)。 LRS 在单个数据中心内保留磁盘数据的三个副本,以防止硬件故障,例如驱动器或服务器机架问题。

尽管 LRS 可保护磁盘免受服务器机架和驱动器故障的影响,但它不会考虑数据中心内的火灾或洪水等灾难。 为了更高的保护级别,请使用 区域冗余存储(ZRS),它会将你的磁盘复制到多个可用区。

对于在多个 VM 上运行的应用程序,在跨多个可用性区域分布时,多个 VM 具有最高的可用性 SLA。 对于分布在多个可用区的 VM 和磁盘,每个磁盘及其父 VM 会分别位于同一可用区,这样即使某个可用区发生故障,也能防止多个 VM 出现故障。

当区域不可用或工作负荷对 VM 间延迟敏感时,请跨多个 容错域部署 VM 和磁盘。 容错域不提供区域冗余,但它们减少了硬件故障、网络中断或电源中断的影响。 如果一个存储容错域出现故障,这可以防止多个 VM 失败。

暂时性故障的复原能力

暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。

与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循Azure暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议

托管磁盘会自动从Azure基础结构中的暂时性故障中恢复。

应对可用区故障的弹性

可用性区域 是 Azure 区域内在物理上独立的若干数据中心组。 当某个区域发生故障时,服务可以切换到其他可用的区域。

可通过两种方法将可用性区域与托管磁盘配合使用:

  • 可以部署 区域冗余(ZRS)磁盘,该磁盘位于区域中的三个可用性区域中。 为了获得最佳可靠性,我们建议使用 ZRS 磁盘,因为 ZRS 磁盘提供自动区域复原能力。
  • 可以部署 区域性 LRS 磁盘,该磁盘仅位于单个区域。 在使用区域 LRS 磁盘时,你负责将工作负荷配置为能够抵御区域故障。 为此,可以部署多个 VM 和磁盘,并将其分散到可用性区域。

如果未配置可用性区域支持,则磁盘 为非区域区域 ,并可能放置在该区域的任何可用性区域中。 这些磁盘被认为是“LRS”,因为它们在区域中进行复制。

区域冗余磁盘

区域冗余存储(ZRS)在一个区域内同步地将数据复制到三个可用区。 为托管磁盘启用区域冗余时,Azure可确保任何单个区域中的故障不会影响数据可用性。

区域冗余磁盘的示意图,其副本分布在该区域的三个可用性区域。

可以在 VM 之间共享 ZRS 磁盘,以提高群集或分布式应用程序(如 SQL FCI、SAP ASCS/SCS 或 GFS2)的可用性。 可以在不同可用区中将共享 ZRS 磁盘附加到主虚拟机和辅助虚拟机,同时利用分布在多个可用性区域的 ZRS 磁盘和虚拟机的优势。 如果主区域失败,则可以使用 SCSI 永久保留快速故障转移到辅助 VM。

如果将 ZRS 磁盘作为数据磁盘附加到出现故障的区域中的单个 VM,则可以从故障 VM 上强制分离该磁盘,并将其附加到另一个 VM。

要求

  • 区域支持: 有关支持 ZRS 托管磁盘的区域列表,请参阅 托管磁盘的冗余选项

  • 磁盘类型: 高级 SSD 和标准 SSD 托管磁盘支持区域冗余磁盘。 高级 SSD v2、超级磁盘或标准 HDD 托管磁盘不支持 ZRS。

Cost

由于跨多个区域维护数据所需的额外复制开销和基础结构,ZRS 的成本高于 LRS。 确切的成本差异因区域和磁盘类型而异。 有关详细的定价信息,请参阅Azure托管磁盘定价

配置可用性区域支持

  • 创建新的 ZRS 磁盘: 若要创建新的 ZRS 托管磁盘, 请参阅 Tutorial - 使用适用于 Linux VM 的 Azure CLI 管理Azure磁盘,或 Tutorial:使用 Windows VM 的 Azure PowerShell 管理磁盘。 在创建磁盘期间选择 ZRS 磁盘层。

    你负责将磁盘附加到 VM,包括在不同区域中的多个 VM 上配置 共享磁盘 (如果这适用于工作负荷)。

  • 更改现有磁盘以使用 ZRS: 可以将现有的非区域(区域)磁盘转换为 ZRS。

    虽然无法将区域 LRS 磁盘转换为 ZRS,但可以从快照创建新的 ZRS 磁盘。 有关分步迁移过程和要求,请参阅 将磁盘从 LRS 转换为 ZRS

  • 禁用可用性区域支持: 无法更改现有 ZRS 磁盘的可用性区域配置。 相反,您需要使用上一个磁盘中的快照创建具有新配置的新磁盘,并删除旧磁盘。

所有区域正常时的行为

本部分介绍将托管磁盘配置为使用 ZRS 时会发生什么情况,并且所有可用性区域都正常运行。

  • 跨区域操作: 在使用具有区域冗余磁盘的VM时,Azure自动管理在不同可用性区域之间的流量的路由。 在正常作期间,请求以透明方式分布在各个区域。

  • 跨区域数据复制: ZRS 磁盘跨区域中的多个可用性区域同步复制每个写入。 写入操作仅在数据存储在多个区域中的群集中后完成。 此方法提供很强的一致性和高可用性,但与 LRS 磁盘相比,此方法可能会带来略高写入延迟。

区域故障期间的行为

本部分描述当托管磁盘被配置为使用 ZRS 时可预期的情况,以及发生可用性区域中断时的状况。

  • 检测和响应: 某些区域中断可能仅影响磁盘、仅 VM 或两者。 你观察到的行为取决于区域中断是否影响连接到磁盘的虚拟机。

    如果 VM 保持正常运行,但磁盘受中断影响,VM 将继续运行。 Microsoft自动重定向磁盘操作,以针对正常可用性区域中的数据工作,无需执行任何操作。

    如果 VM 已关闭,则需要将工作负荷切换到其他可用性区域中的另一个 VM。

    • 共享磁盘: 如果已在其他区域中创建了辅助 VM 并配置 了共享磁盘,则辅助 VM 可以使用该磁盘,无需进行配置更改。

    • 未共享的磁盘: 可以将磁盘从失败的 VM 中强制分离,然后将其附加到正常区域中的 VM。 若要执行强制分离,请执行以下操作:

  • 预期数据丢失: 区域故障期间不会发生数据丢失。

  • 预期的停机时间: 在多个 VM 之间共享磁盘时,不会造成停机。

  • Redistribution: Azure 会自动将流量重新路由到健康区域内磁盘的另一个副本。

区域恢复

Azure自动检测以前失败的区域是否正常,并将数据同步还原到恢复的区域。

区域 LRS 磁盘

区域 LRS(本地冗余存储)磁盘驻留在特定的可用性区域中,并且仅附加到该区域中的虚拟机。 磁盘数据的所有副本都位于同一区域。 单个区域 LRS 磁盘和虚拟机不提供区域复原能力。 如果包含磁盘的区域遇到服务中断,则磁盘可能不可用。

此图显示了一个区域 LRS 磁盘,其所有副本都位于单个可用性区域中。

对于多 VM 工作负荷,可以通过跨不同可用性区域部署多个 VM 及其区域 LRS 磁盘来实现区域复原。 此方法是实现 Web 服务器、应用程序层和数据库群集等工作负载的高可用性的最常用方法。 如果一个区域出现故障,您可以通过使用运行正常的区域中的虚拟机来配置工作负载,以继续运行。

图中显示了不同区域中的三个 VM,每个 VM 都有其自己的区域 LRS 磁盘。

此多区域分发模式适用于所有磁盘类型,包括仅支持 LRS 的高级 SSD v2 和超级磁盘。 有关此方法的详细信息,请参阅 跨可用性区域分配 VM 和磁盘

要求

  • 区域支持:可用性区域的所有区域都支持区域 LRS 托管磁盘。

  • 磁盘类型: 所有托管磁盘类型都支持区域 LRS 部署。

Cost

区域 LRS 磁盘按与非区域磁盘相同的费率收费。 有关详细的定价信息,请参阅Azure托管磁盘定价

配置可用性区域支持

  • 创建具有可用性区域支持的新磁盘: 若要创建具有区域 LRS 冗余的新托管磁盘, 请参阅 Tutorial - 使用适用于 Linux VM 的 Azure CLI 管理Azure磁盘,或 Tutorial:使用 Windows VM 的 Azure PowerShell 管理磁盘。

    在创建磁盘期间选择可用性区域。

    重要

    仅当跨区域延迟太高而无法满足需求时,才建议固定到单个可用性区域,并且验证延迟是否不符合要求。 区域资源本身不能提供对可用区中断的复原能力。 若要提高区域资源的复原能力,需要将单独的资源显式部署到多个可用性区域,并配置流量路由和故障转移。 有关详细信息,请参阅 区域资源和区域复原能力

  • 更改现有磁盘的可用性区域配置: 无法更改现有区域 LRS 磁盘的可用性区域配置。 相反,您需要使用上一个磁盘中的快照创建具有新配置的新磁盘,并删除旧磁盘。

所有区域正常时的行为

本部分介绍当托管磁盘配置为使用区域 LRS 时会发生什么情况,并且所有可用性区域都正常运行。

  • 跨区域操作: 同一区域中的区域性 VM 与区域 LRS 磁盘之间的流量仍保留在可用性区域中。

    跨区域部署多个 VM 时,负责跨 VM 分发传入请求。 每个 VM 读取和写入其自己的区域磁盘。

  • 跨区域数据复制: 所有到区域 LRS 磁盘的写入操作都在可用性区域中同步复制。

    跨区域部署多个 VM 时,如果工作负荷需要跨 VM 的数据一致性,则需负责同步数据,例如使用数据库复制或应用程序层复制。

区域故障期间的行为

本部分介绍将托管磁盘配置为使用分区 LRS 时的预期情况,以及可用性区域停机时的影响。

  • 检测和响应: 如果您有一台带有区域 LRS 磁盘的 VM,您需负责检测区域故障并启动故障转移或其他响应。

    如果 VM 分布在多个区域,则您负责配置您的工作负载,以检测区域故障并继续在正常的区域中的 VM 上运行。

  • 预期数据丢失: LRS 复制提供至少 99.999999999%(11 个9)的耐用性,这意味着在区域恢复后,您的磁盘数据将会留存并可恢复。

    如果 VM 分布在多个可用区,那么仅位于故障区域磁盘上的数据将暂时不可用。 如果应用程序跨 VM 同步数据,则正常区域中的 VM 将继续使用自己的数据为请求提供服务。

  • 预期的停机时间: 在可用性区域恢复之前,单个区域 LRS 磁盘不可用。

    如果 VM 和磁盘分布在多个区域,则工作负荷可以继续在正常运行区域中的 VM 上运行。

  • 分配: 如果单个 VM 具有区域 LRS 磁盘,则需负责将流量重新路由到另一个 VM(如果有)。

    在跨可用区分布虚拟机时,可以将工作负载配置为自动将流量重新分配到健康区域中的虚拟机。

区域恢复

当发生故障的可用性区域恢复时,托管磁盘会自动恢复。 如果附加到磁盘的 VM 受到中断的影响,则会重启。 如果你在其他可用性区域中使用 VM 和磁盘,那么你需要负责将应用程序数据重新同步到这些资源。

测试区域故障

不能直接模拟磁盘级别的区域故障,但可以使用Azure Chaos Studio对虚拟机规模集中模拟区域缩减事件的支持模拟单个虚拟机丢失

应在服务中断期间测试应用程序对区域故障和托管磁盘行为的复原能力。 在模拟区域中断期间监视磁盘性能,并验证应用程序是否适当地处理增加的延迟。 实现自动化测试方案,验证应用程序是否可以处理临时 I/O 延迟,并强制对共享磁盘执行分离操作。

对区域范围的故障的复原能力

Azure 磁盘存储是一种单区域服务,可在特定Azure区域的边界内运行。 该服务不具备原生的多区域支持功能,也无法在区域之间自动故障转移。 如果某个区域不可用,则该区域中的托管磁盘资源也不可用。

用于复原的自定义多区域解决方案

可以通过在每个区域中部署虚拟机和磁盘,进行跨区域的数据复制或备份,并在必要时进行故障切换或从备份中恢复,来构建多区域解决方案。 你负责管理每个区域中的资源、协调和同步数据以及处理故障转移或还原。 一些常见方法包括:

备份和还原

Azure托管磁盘支持多种备份方法来防止数据丢失和损坏。 Azure磁盘备份是一种原生的基于云的解决方案,可自动执行快照生命周期管理。 它提供具有可配置保留策略的崩溃一致性增量备份。 这种无代理方法每天支持多个备份,不会影响应用程序性能,并与Azure 备份中心集成,以便进行集中管理。 可以使用 增量快照 来降低存储成本和备份时间。

对于 VM 级保护,Azure 备份为整个虚拟机(包括所有附加磁盘)提供应用程序一致性备份。 如果需要协调备份多个磁盘或应用程序感知备份,此方法是理想的方法。 对于数据库工作负荷,请考虑应用程序特定的备份解决方案,这些解决方案提供事务一致性保护和更快的恢复选项。

对于关键工作负荷,实现分层备份策略,将Azure磁盘备份、跨区域快照复制和应用程序级备份相结合,以实现事务一致性。 根据恢复要求、合规性需求和成本注意事项配置备份策略。

服务级别协议

Azure服务的服务级别协议(SLA)描述了每个服务的预期可用性以及解决方案必须满足的条件,以实现该可用性预期。 有关详细信息,请参阅 SLa for 联机服务

Azure 磁盘存储不提供自己的可用性 SLA,而是包含在 VM 的 SLA 中。 磁盘的配置可能会影响 VM 的可用性 SLA。