Azure VM备份服务详解:功能、过程与最佳实践
Azure VM备份服务详解:功能、过程与最佳实践
Azure备份服务为Azure虚拟机(VM)提供独立且隔离的备份方案,以防止数据意外破坏。备份存储在恢复服务保管库中,支持配置和缩放,并经过优化以实现快速还原。备份过程包括创建快照并将数据传输到保管库,支持多种加密方式,同时提供详细的性能优化建议和成本计算方法。
本文介绍Azure备份服务如何备份Azure虚拟机(VM)。Azure备份提供独立且隔离的备份来防止VM上的数据被意外破坏。备份存储在提供恢复点内置管理的恢复服务保管库中。配置和缩放很简单,备份经过优化,可以轻松地根据需要还原。
在备份过程中,将创建快照,并会将数据传输到恢复服务保管库,而不影响生产工作负荷。快照提供了不同的一致性级别,如此文所述。可以选择在备份策略中选择基于代理的应用程序一致/文件一致备份或无代理崩溃一致备份。
Azure备份还针对数据库工作负荷(例如SQL Server和SAP HANA)提供了专门的工作负荷感知型产品/服务,可提供15分钟RPO(恢复点目标),并允许备份和还原单个数据库。
备份过程
下面介绍Azure备份如何对Azure VM完成备份:
- 对于选择进行备份的Azure VM,Azure备份服务将根据指定的备份计划启动备份作业。
- 如果选择了应用程序或文件系统一致备份,VM需要安装备份扩展才能协调快照过程。
- 如果选择了崩溃一致备份,则VM中不需要代理。
- 首次备份期间,如果VM已运行,则会在VM上安装备份扩展。
- 对于Windows VM,将安装VMSnapshot扩展。
- 对于Linux VM,将安装VMSnapshotLinux扩展。
- 对于正在运行的Windows VM,Azure备份会与卷影复制服务(VSS)互相配合,来创建VM的应用一致快照。
- 备份服务默认创建完整的VSS备份。
- 如果备份服务无法创建应用一致性快照,则会创建基础存储的文件一致性快照(因为当VM停止时,不会发生应用程序写入)。
- 对于Linux VM,Azure备份将创建文件一致性备份。对于应用一致性快照,需要手动自定义前脚本/后脚本。
- 对于Windows VM,Microsoft Visual C++ 2013 Redistributable(x64)版本12.0.40660已安装,卷影复制服务(VSS)的启动更改为自动,并添加了Windows Service IaaSVmProvider。
- 备份服务创建快照后,会将数据传输到保管库。
- 可以通过并行备份每个VM磁盘来优化备份。
- 对于每个要备份的磁盘,Azure备份将读取磁盘上的块,识别并只传输自上次备份以来已发生更改的数据块(增量传输)。
- 快照数据可能不会立即复制到保管库。在高峰期,可能需要好几个小时才能完成复制。每日备份策略规定的VM备份总时间不会超过24小时。
加密Azure VM备份
使用Azure备份备份Azure VM时,将使用存储服务加密(SSE)对VM进行静态加密。Azure备份还可以备份使用Azure磁盘加密进行加密的Azure VM。
加密 | 详细信息 | 支持 |
---|---|---|
SSE | Azure存储使用SSE提供静态加密,在存储数据之前,它会自动加密数据。Azure存储还会在检索数据之前解密数据。Azure备份支持使用两种类型的存储服务加密对VM进行备份:具有平台托管密钥的SSE:默认情况下,此加密适用于VM中的所有磁盘。在此处了解详细信息。具有客户管理密钥的SSE。使用CMK,可以管理用于对磁盘进行加密的密钥。在此处了解详细信息。 | Azure备份使用SSE对Azure VM进行静态加密。 |
Azure磁盘加密 | Azure磁盘加密可以加密Azure VM的OS磁盘和数据磁盘。Azure磁盘加密与在Key Vault中作为机密受到保护的BitLocker加密密钥(BEK)相集成。Azure磁盘加密还与Azure Key Vault密钥加密密钥(KEK)相集成。 | Azure备份支持备份仅使用BEK加密的,或者同时使用BEK和KEK加密的托管型和非托管型Azure VM。BEK和KEK都会得到备份和加密。由于KEK和BEK都会得到备份,拥有相应权限的用户可根据需要,将密钥和机密还原到Key Vault。这些用户还可以恢复已加密的VM。未经授权的用户或Azure无法读取已加密的密钥和机密。 |
对于托管和非托管Azure VM,备份服务支持仅经过BEK加密的或者同时经过BEK和KEK加密的VM。
备份的BEK(机密)和KEK(密钥)将会加密。只有在经授权的用户将它们还原到Key Vault之后,才能读取和使用它们。未经授权的用户和Azure都无法读取或使用备份的密钥或机密。
同时会备份BEK。因此,在BEK丢失的情况下,经授权的用户可将BEK还原到Key Vault并恢复加密的VM。只有拥有所需的权限级别的用户才可以备份和还原加密的VM或密钥和机密。
快照创建
Azure备份根据备份计划创建快照。如果选择了应用程序或文件系统一致备份,VM需要安装备份扩展才能协调快照过程。对于无代理多磁盘崩溃一致备份,则快照不需要VM代理。
- Windows VM:对于Windows VM,备份服务将与VSS相配合,来创建VM磁盘的应用一致性快照。默认情况下,Azure备份会执行完整的VSS备份(它在备份时会截断SQL Server等应用程序的日志,以获取应用程序级别的一致备份)。如果在Azure VM备份时使用SQL Server数据库,则可以修改设置以执行VSS副本备份(以保留日志)。有关详细信息,请参阅此文章。
- Linux VM:若要创建Linux VM的应用一致性快照,请使用Linux前脚本和后脚本框架编写自己的自定义脚本,以确保一致性。
- Azure备份只调用你编写的前脚本/后脚本。
- 如果前脚本和后脚本成功执行,Azure备份会将恢复点标记为应用程序一致。但是,在使用自定义脚本时,你最终需要为应用程序一致性负责。
- 详细了解如何配置脚本。
快照一致性
下表解释了不同的快照一致性类型:
快照 | 详细信息 | 恢复 | 注意事项 |
---|---|---|---|
应用程序一致 | 这是VM备份策略中的默认设置。应用一致性备份捕获内存内容和挂起的I/O操作。应用一致性快照使用VSS编写器(或适用于Linux的前/后脚本)来确保备份之前的应用数据一致性。 | 使用应用一致性快照恢复VM时,VM将会启动。不会发生数据损坏或丢失。应用将以一致的状态启动。 | Windows:所有VSS编写器均成功Linux:前/后脚本已配置并成功 |
文件系统一致性 | 这是VM备份策略中的默认设置。文件系统一致性备份通过同时创建所有文件的快照来提供一致性。 | 使用文件系统一致性快照恢复VM时,VM将会启动。不会发生数据损坏或丢失。应用需要实现自己的“修复”机制以确保还原的数据一致。 | Windows:某些VSS编写器失败Linux:默认值(如果前/后脚本未配置或失败) |
崩溃一致 | 崩溃一致快照是VM备份策略中的选择加入设置。如果VM在备份期间未运行,并且应用程序/文件一致备份失败,则Azure备份也会执行崩溃一致备份。只会捕获并备份在备份操作时磁盘上已存在的数据;不会捕获读/写主机缓存中的数据。 | 从VM启动过程开始,然后进行磁盘检查以修复损坏错误。在崩溃之前未传输到磁盘的任何内存中数据或写入操作将会丢失。应用实现自身的数据验证。例如,数据库应用可以使用其事务日志进行验证。如果事务日志中有条目不在数据库中,则数据库软件将回滚事务,直到数据一致。 | 当你选择应用程序/文件系统备份且VM处于关闭状态(已停止/解除分配)时以及重试快照时。你已选择无代理崩溃一致备份 |
注意:如果预配状态为“成功”,则Azure备份会执行文件系统一致性备份。如果预配状态为“不可用”或“失败”,则会执行崩溃一致性备份。如果预配状态为“正在创建”或“正在删除”,则意味着Azure备份正在重试操作。
备份和还原注意事项
注意事项 | 详细信息 |
---|---|
磁盘 | 备份VM磁盘属于并行操作。例如,如果VM有4个磁盘,则备份服务会尝试并行备份所有4个磁盘。备份是增量式的(仅备份已更改的数据)。 |
计划 | 若要减少备份流量,请在一天的不同时间备份不同的VM,并确保时间不重叠。同时备份VM会导致流量拥塞。 |
准备备份 | 注意准备备份所需的时间。准备时间可能包括安装或更新备份扩展的时间,以及按照备份计划触发快照的时间。 |
数据传输 | 考虑Azure备份识别上一备份中的增量更改所需的时间。在增量备份中,Azure备份将通过计算块的校验和来确定更改。如果某个块发生更改,则将该块标识为要传输到保管库。该服务将分析已标识的块,以试图进一步地尽量减少要传输的数据量。评估完所有更改的块后,Azure备份会将更改传输到保管库。创建快照之后,可能要经过一段滞后时间才会将它复制到保管库。在高峰时段,将快照传输到保管库可能需要长达8小时的时间。对于每日备份,VM的备份时间小于24小时。 |
初始备份 | 增量备份的总备份时间少于24小时,但第一次备份可能并非如此。初始备份所需的时间取决于数据大小和备份处理时间。 |
还原队列 | Azure备份同时处理来自多个存储账户的还原作业,因此还原请求会排入队列中。 |
还原副本 | 在还原过程中,将保管库中的数据复制到存储帐户。总还原时间取决于存储帐户的每秒I/O操作次数(IOPS)和吞吐量。若要减少复制时间,请选择一个不带其他应用程序写入和读取负载的存储帐户。 |
注意:Azure备份现在允许使用增强策略每天多次备份Azure VM。借助此功能,还可以定义备份作业触发的持续时间,并在Azure虚拟机频繁更新时将备份计划与工作时间保持一致。了解详细信息。
备份性能
这些常见的场景可能会影响总备份时间:
- 将新磁盘添加到受保护的Azure VM:如果VM正在进行增量备份,此时将一个新磁盘添加到其中,则备份时间将会增大。总备份时间可能会超过24小时,因为需要对新磁盘进行初始复制,并且需要对现有磁盘进行增量复制。
- 磁盘有碎片:如果磁盘上的更改是相邻的,则备份操作会更快。如果更改分散在磁盘的各个位置并出现碎片,则备份会变慢。
- 磁盘变动率:如果正在进行增量备份的受保护磁盘的每日变动率超过200GB,则备份可能需要花费很长时间(8小时以上)才能完成。
- 备份版本:最新版本的备份(称为“即时还原”版本)使用比校验和比较更佳的优化进程来识别更改。但是,如果使用即时还原并删除了备份快照,则备份将改用校验和比较。在这种情况下,备份操作将超过24小时(或失败)。
还原性能
这些常见的场景可能会影响总还原时间:
- 总还原时间取决于存储帐户的每秒输入/输出操作次数(IOPS)和吞吐量。
- 如果目标存储帐户加载了其他应用程序读写操作,则总还原时间可能会受到影响。 若要改进还原操作,请选择未加载其他应用程序数据的存储帐户。
最佳实践
我们建议在配置VM备份时遵循以下做法:
- 修改策略中设置的默认计划时间。例如,如果策略中的默认时间是凌晨12:00,请将时间递增几分钟,确保以最佳方式使用资源。
- 如果从单个保管库还原VM,强烈建议你使用不同的常规用途v2存储帐户,以确保目标存储帐户不会受到限制。例如,每个VM必须具有不同的存储帐户。例如,如果还原10个VM,请使用10个不同的存储帐户。
- 若要通过“即时还原”对使用高级存储的VM进行备份,建议从总的已分配存储空间中分配50%的可用空间,这只在首次备份时是必需的。首次备份完成后,50%的可用空间不再是备份的要求
- 每个存储帐户的磁盘数量限制与在基础结构即服务(IaaS)VM上运行的应用程序访问磁盘的频率有关。通常情况下,如果单个存储帐户上存在5至10个或以上磁盘,则可通过将一些磁盘移动到单独的存储帐户来均衡负载。
- 若要使用PowerShell还原具有托管磁盘的VM,请提供附加参数TargetResourceGroupName指定要将托管磁盘还原到的资源组,请在此了解详情。
备份成本
使用Azure备份进行备份的Azure VM按Azure备份定价计费。第一个备份成功完成后才会开始计费。存储和受保护的VM也会在此同时开始计费。只要针对VM的任何备份数据存储在保管库中,就会持续计费。如果对VM停止保护,但保管库中存在该VM的备份数据,则会继续计费。
针对特定VM的计费仅在停止保护并且删除全部备份数据后才会停止。当停止保护并且没有活动的备份作业时,最后一个成功的VM备份的大小将成为用于每月帐单的受保护实例大小。
如果选择了基于代理的应用程序一致备份或文件系统一致备份,则受保护的实例大小计算基于VM的实际大小。VM的大小是VM中除临时存储以外的所有数据之和。定价基于数据磁盘中存储的实际数据,而不是附加到VM的每个数据磁盘的最大支持大小。
注意:对于无代理崩溃一致备份,预览版期间,每个VM当前按0.5个受保护的实例(PI)收费。
与此类似,备份存储的收费是基于Azure备份中存储的数据量,即每个恢复点中实际数据之和。
以A2-Standard大小的VM为例,该VM有两个额外的数据磁盘,其最大大小各为32TB。下表显示了其中每个磁盘上存储的实际数据:
磁盘 | 最大大小 | 实际存在的数据 |
---|---|---|
OS磁盘 | 32TB | 17GB |
本地/临时磁盘 | 135GB | 5GB(不包括在备份中) |
数据磁盘1 | 32TB | 30GB |
数据磁盘2 | 32TB | 0GB |
此示例中,VM的实际大小为17GB + 30GB + 0GB = 47GB。此受保护实例大小(47GB)成为按月计费的基础。随着VM中数据量的增长,用于计费的受保护实例大小也会相应变化。