你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
启动存储帐户故障转移
本文内容
Microsoft 致力于确保 Azure 服务一直可用。 但偶尔可能发生计划外服务中断。 为了帮助最大程度地减少故障时间,Azure 存储支持客户管理的故障转移,使数据在部分中断和完全中断期间保持可用。
本文介绍了如何使用 Azure 门户、PowerShell 或 Azure CLI 为存储帐户启动帐户故障转移。 要详细了解帐户故障转移,请参阅 Azure 存储灾难恢复规划和故障转移 。
先决条件
在启动客户管理的故障转移之前,请查看灾难恢复指南 一文中详述的这些重要主题。
可能的数据丢失 :在计划外的存储帐户故障转移期间,预计会发生数据丢失。 要详细了解计划外帐户故障转移的影响以及如何应对数据丢失的问题,请参阅预计数据丢失和不一致 部分。
异地冗余 :在执行故障转移之前,必须为存储帐户配置异地冗余。 在故障转移过程开始之前,必须完成从主要区域到次要区域的初始同步。 如果未为帐户配置异地冗余,可以按照更改存储帐户的复制方式 一文中描述的步骤进行更改。 有关 Azure 存储冗余选项的详细信息,请参阅 Azure 存储冗余 一文。
了解不同类型的帐户故障转移 :客户管理的故障转移有两种类型。 有关每种类型的潜在用例及其差异,请参阅规划故障转移 一文。
规划不支持的功能和服务 :请在启动故障转移之前,查看不支持的功能和服务 一文并采取相应的措施。
支持的存储帐户类型 :请确保存储帐户类型可用于启动故障转移。 请参阅支持的存储帐户类型 。
设置对计时和成本的预期 :完成客户管理的故障转移过程所需的时间可能有所不同,但通常不到一小时。 计划外故障转移会导致异地冗余配置丢失。 重新配置异地冗余存储 (GRS) 通常需要额外的时间和成本。 有关详细信息,请参阅故障转移的时间和成本 部分。
启动故障转移
可以使用 Azure 门户、PowerShell 或 Azure CLI 启动任一类型(计划内或计划外)的客户管理的故障转移。
完成以下步骤,使用 Azure 门户启动帐户故障转移:
导航到“存储帐户”。
从“数据管理”组中选择“冗余” 。 下图展示了存储帐户的异地冗余配置和故障转移状态。
验证是否已针对异地冗余存储(GRS、RA-GRS、GZRS 或 RA-GZRS)配置存储帐户。 如果未配置,请从“冗余”下拉列表中选择所需的冗余配置,然后选择“保存”提交更改 。 更改异地冗余配置后,数据将从主要区域同步到次要区域。 此同步需要几分钟时间,并且仅当复制完所有数据之后才能启动故障转移。 在同步完成之前,将显示以下消息:
选择“准备客户管理的故障转移”选项,如下图所示 :
选择要为之做准备的故障转移类型。 确认页因所选故障转移类型而异。
如果选择 Unplanned Failover
:
将显示一条警告,提醒你可能会丢失数据,并提示你在故障转移后需要手动重新配置异地冗余:
如果选择 Planned failover
(预览):
将显示“上次同步时间”值 。 所有数据同步到次要区域后才会进行故障转移,防止数据丢失。
由于每个区域中的冗余配置在计划内故障转移或故障回复期间不会更改,因此无需在故障转移后手动重新配置异地冗余。
查看“准备故障转移”页 。 准备就绪后,键入“是”,然后选择“故障转移”以确认并启动故障转移过程 。
将显示一条消息,指示故障转移正在进行中:
要获取存储帐户的当前冗余和故障转移信息,然后启动故障转移,请执行以下步骤:
安装适用于 PowerShell 的 Azure 存储预览模块
除了客户启动的故障转移以外,要使用 PowerShell 启动和监视计划内客户管理的帐户故障转移(预览版) ,请安装 Az.Storage 5.2.2-preview 模块 。 模块的早期版本支持客户管理的故障转移(计划外),但不支持计划内故障转移。 预览版支持新的 FailoverType
参数。 有效值包括 planned
或 unplanned
。
在 PowerShell 5.1 上安装并运行预览模块
建议的最佳做法包括安装和使用最新版本的 PowerShell。 如果使用旧版 PowerShell 安装预览版模块时遇到问题,则可能需要先将 PowerShellGet 更新到最新版本 ,然后再安装 Az.Storage 5.2.2 预览版模块。
要安装最新版本的 PowerShellGet 和 Az.Storage 预览模块,请执行以下步骤:
使用以下 cmdlet 更新 PowerShellGet:
Install-Module PowerShellGet –Repository PSGallery –Force
关闭并重新打开 PowerShell
使用以下 cmdlet 安装 Az.Storage 预览版模块:
Install-Module -Name Az.Storage -RequiredVersion 5.2.2-preview -AllowPrerelease
通过运行以下命令确定是否已安装更高版本的 Az.Storage 模块:
Get-InstalledModule Az.Storage -AllVersions
如果还安装了更高版本(如 5.3.0 或 5.4.0),则需要先显式导入预览版本,然后才能使用它。
再次关闭并重新打开 PowerShell
在运行任何其他命令之前,请使用以下命令导入模块的预览版本:
Import-Module Az.Storage -RequiredVersion 5.2.2
通过运行以下命令验证是否支持 FailoverType
参数:
Get-Help Invoke-AzStorageAccountFailover -Parameter FailoverType
若要详细了解如何安装 Azure PowerShell,请参阅安装 Azure Az PowerShell 模块 。
使用 PowerShell 获取存储帐户的当前状态
在故障转移之前检查存储帐户的状态。 检查可能影响故障转移的属性,例如:
主要区域和次要区域及其状态
存储类型和访问层
当前故障转移状态
上次同步时间
存储帐户 SKU 转换状态
# Log in first with Connect-AzAccount
Connect-AzAccount
# Specify the resource group name and storage account name
$rgName = "<your resource group name>"
$saName = "<your storage account name>"
# Get the storage account information
Get-AzStorageAccount `
-Name $saName `
-ResourceGroupName $rgName `
-IncludeGeoReplicationStats
要将显示中的属性列表优化为最相关的集,请考虑将上面示例中的 Get-AzStorageAccount
命令替换为以下命令:
Get-AzStorageAccount `
-Name $saName `
-ResourceGroupName $rgName `
-IncludeGeoReplicationStats `
| Select-Object Location,PrimaryLocation,SecondaryLocation,StatusOfPrimary,StatusOfSecondary,@{E={$_.Kind};L="AccountType"},AccessTier,LastGeoFailoverTime,FailoverInProgress,StorageAccountSkuConversionStatus,GeoReplicationStats `
-ExpandProperty Sku `
| Select-Object Location,PrimaryLocation,SecondaryLocation,StatusOfPrimary,StatusOfSecondary,AccountType,AccessTier,@{E={$_.Name};L="RedundancyType"},LastGeoFailoverTime,FailoverInProgress,StorageAccountSkuConversionStatus `
-ExpandProperty GeoReplicationStats `
| fl
使用 PowerShell 启动存储帐户的故障转移
Invoke-AzStorageAccountFailover `
-ResourceGroupName $rgName `
-Name $saName `
-FailoverType <planned|unplanned> # Specify either planned or unplanned failover
要获取存储帐户的当前冗余和故障转移信息,然后启动故障转移,请执行以下步骤:
安装适用于 Azure CLI 的 Azure 存储预览版扩展
安装最新版本的 Azure CLI。 有关详细信息,请参阅安装 Azure CLI 。
使用以下命令安装 Azure CLI 存储预览版扩展:
az extension add -n storage-preview
使用 Azure CLI 获取存储帐户的当前状态
运行以下命令以获取存储帐户的当前异地复制信息。 将尖括号 (<> ) 中的占位符值替换为你自己的值:
az storage account show \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--expand geoReplicationStats
有关 storage account show
命令的详细信息,请运行:
az storage account show --help
使用 Azure CLI 启动存储帐户的故障转移
运行以下命令以启动存储帐户的故障转移。 将尖括号 (<> ) 中的占位符值替换为你自己的值:
az storage account failover \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--failover-type <planned|unplanned>
有关 storage account failover
命令的详细信息,请运行:
az storage account failover --help
监视故障转移
可以使用 Azure 门户、PowerShell 或 Azure CLI 监视故障转移的状态。
故障转移的状态显示在 Azure 门户的“通知”中、活动日志中和存储帐户的“冗余”页上 。
通知
要检查故障转移的状态,请选择 Azure 门户全局页面标头最右侧的钟形通知图标:
活动日志
要查看故障转移的详细状态,请在通知中选择“活动日志中的更多事件”链接,或转到存储帐户的“活动日志”页 :
冗余页
将显示存储帐户“冗余”页上的消息以提供故障转移状态更新:
如果故障转移即将完成,则冗余页可能会将原始次要区域显示为新的主要区域,但仍会显示一条消息,指示故障转移正在进行:
故障转移完成后,“冗余”页将显示上次故障转移时间和新的主要区域的位置。 如果已完成计划的故障转移,则还会显示新的次要区域。 下图显示了计划外故障转移后的新存储帐户状态:
计划外故障转移的重要影响
当你启动存储帐户的计划外故障转移时,辅助终结点的 DNS 记录将更新,以便辅助终结点成为主终结点。 启动故障转移前,请务必先了解它对存储帐户的潜在影响。
若要在启动故障转移前估计可能造成的数据丢失程度,请检查“上次同步时间”属性。 如需详细了解如何检查“上次同步时间”属性,请参阅检查存储帐户的“上次同步时间”属性 。
启动后故障转移所花费的时间通常不到一小时。
在故障转移完成后,存储帐户类型自动转换为新的主要区域中的本地冗余存储 (LRS)。 可以为帐户重新启用异地冗余存储 (GRS) 或读取访问权限异地冗余存储 (RA-GRS)。 请注意,从 LRS 转换为 GRS 或 RA-GRS 会产生额外费用。 产生该费用是因为将数据重新复制到新的次要区域需要支付网络流出量费用。 有关其他信息,请参阅带宽定价详细信息 。
在你为存储帐户重新启用 GRS 后,Microsoft 便会开始将帐户中的数据复制到新的次要区域。 复制时间取决于许多因素,其中包括:
存储帐户中对象的数量和大小。 许多小型对象可能比较少但较大的对象花费的时间更长。
可用于后台复制的资源,例如 CPU、内存、磁盘和 WAN 容量。 实时流量优先于异地复制。
每个 Blob 的快照数(如果使用 Blob 存储)。
数据分区策略 (如果使用表存储)。 复制过程不能扩展到超过所用分区键数量的地步。
如果发生计划外故障转移,主要区域中的所有数据就会在次要区域成为新的主要区域时丢失。 重新启用异地冗余后,需要重复对主要区域的存储帐户进行的所有写入操作。 有关详细信息,请参阅 Azure 存储灾难恢复计划和故障转移 。
Azure 存储资源提供程序在故障转移过程中不会进行故障转移。 因此,Azure 存储 REST API 的位置 属性在故障转移完成后会继续返回原始位置。
存储帐户故障转移是服务中断的临时解决方案,不应用作数据迁移策略的一部分。 有关如何迁移存储帐户的信息,请参阅 Azure 存储迁移概述 。
另请参阅