Compartilhar via

使用 Azure PowerShell 备份Azure Files

本文介绍如何使用 Azure PowerShell 通过 Azure Backup 恢复服务保管库备份Azure Files。 还可以使用 Azure portalCLIREST API 备份Azure Files。

先决条件

在备份Azure Files之前,请确保满足以下先决条件:

  • 了解更多关于恢复服务保管库的信息。

  • 查看 Azure 库中的 Az.RecoveryServices cmdlet 参考引用。

  • 查看恢复服务的 PowerShell 对象层次结构:

    Recovery Services 对象层次结构

设置 PowerShell

注意事项

建议使用 Azure Az PowerShell 模块与Azure交互。 若要开始,请参阅“Install Azure PowerShell”。 若要了解如何迁移到 Az PowerShell 模块,请参阅 Migrate Azure PowerShell从 AzureRM 迁移到 Az

注意事项

Azure PowerShell目前不支持按小时计划的备份策略。 使用Azure portal应用此功能。 了解详细信息

按如下所述设置 PowerShell:

  1. 下载最新版本的 Azure PowerShell

    注意事项

    Azure Files备份所需的最低 PowerShell 版本为 Az.RecoveryServices 2.6.0。 最新版本或至少最低版本有助于避免现有脚本出现问题。 使用以下 PowerShell 命令安装最低版本:

    Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
    
  2. 使用以下命令查找用于Azure Backup的 PowerShell cmdlet:

    Get-Command *azrecoveryservices*
    
  3. 查看Azure Backup、Azure Site Recovery和恢复服务保管库的别名和 cmdlet。 下面是可能显示的内容示例。 此 cmdlet 列表并不完整。

    恢复服务 cmdlet 列表

  4. 使用 Connect-AzAccount 登录到Azure帐户。

  5. 在出现的网页上,系统会提示输入帐户凭据。

    或者,可以使用 -Credential 参数,将帐户凭据作为参数包含在 Connect-AzAccount cmdlet 中 。

    如果你是代表租户工作的云服务提供商(CSP)合作伙伴,请将客户指定为租户。 使用其租户 ID 或租户主域名。 例如,Connect-AzAccount -Tenant "fabrikam.com"。

  6. 由于一个帐户可以有多个订阅,因此请将要使用的订阅与帐户关联在一起:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  7. 如果您是首次使用 Azure Backup,请使用 Register-AzResourceProvider cmdlet 将 Azure 恢复服务提供程序注册到您的订阅中:

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. 验证提供程序是否已成功注册:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. 在命令输出中,确认 RegistrationState 是否更改为 Registered。 如果不是,请再次运行 Register-AzResourceProvider cmdlet。

创建恢复服务保管库

必须将恢复服务保管库(作为资源管理器中的资源)放置在一个资源组中。 可以使用现有资源组,也可以使用 New-AzResourceGroup cmdlet 创建资源组。 创建资源组时,请指定资源组的名称和位置。

请按照以下步骤创建恢复服务保管库:

  1. 如果没有现有资源组,请使用 New-AzResourceGroup cmdlet 创建新的资源组。 此示例演示在中国北部区域创建一个新的资源组:

    New-AzResourceGroup -Name "test-rg" -Location "China North 2"
    
  2. 使用 New-AzRecoveryServicesVault cmdlet 创建保管库。 请为保管库指定您使用的与资源组相同的位置。

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "China North 2"
    

在订阅中查看保管库

若要查看订阅中的所有资源保管库,请使用 Get-AzRecoveryServicesVault

Get-AzRecoveryServicesVault

输出如下所示。 输出提供关联的资源组和位置。

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : ChinaNorth2
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

设置保管库上下文

将保管库对象存储在变量中,并设置保管库上下文。

许多Azure Backup cmdlet 都需要恢复服务保管库对象作为输入,因此将保管库对象存储在变量中很方便。

保管库上下文是在保管库中受保护的数据的类型。 使用 Set-AzRecoveryServicesVaultContext 来设置。 设置上下文后,它将应用于所有后续 cmdlet。

以下示例设置testvault的保管库上下文:

Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext

获取保管库 ID

我们计划根据Azure PowerShell准则弃用保管库上下文设置。 你可以选择存储或获取保管库 ID,并将其传递给相关命令。 因此,如果你尚未设置保管库上下文或想要指定为某个保管库运行的命令,请将保管库 ID 作为 -vaultID 传递给所有相关命令,如下所示:

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID

配置备份策略

备份策略指定了备份计划,以及备份恢复点的保留期限。

一个备份策略至少与一个保留策略相关联。 保留策略确定恢复点保留的时长。 可以为备份进行设置,以便每日、每周、每月或每年保留。 利用多个备份策略,还可以配置每小时备份的保留期。

重要

以下 cmdlet 用于备份策略:

  • 使用 Get-AzRecoveryServicesBackupRetentionPolicyObject 查看默认备份保留策略。
  • 使用 Get-AzRecoveryServicesBackupSchedulePolicyObject 查看默认备份计划策略。
  • 使用 New-AzRecoveryServicesBackupProtectionPolicy 创建新备份策略。 提供计划和保留策略对象作为输入。

选择备份层:

  • 快照层

若要创建一个备份策略,该策略每天为Azure Files快照备份配置多个备份,请运行以下 cmdlet:

  1. 提取计划策略对象。

    $schPol=Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
    $schPol
    
    

    示例输出:

    ScheduleRunFrequency    : Hourly
    ScheduleRunDays         :
    ScheduleRunTimes        :
    ScheduleInterval        : 8
    ScheduleWindowStartTime : 12/22/2021 8:00:00 AM
    ScheduleWindowDuration  : 16
    ScheduleRunTimeZone     : India Standard Time
    
    
  2. 根据需要设置计划的不同参数。

    $schpol.ScheduleInterval=4
    $schpol.ScheduleWindowDuration=12
    
    

    前面的配置可以帮助你在上午 8 点 - 晚上 8 点(上午 8 点 + 12 小时)的时间窗口中每天计划 4 次备份。 你也可以使用以下 cmdlet 设置时区:

    $timeZone= $timeZone=Get-TimeZone -ListAvailable |Where-Object{$_.Id-match "Russia Time Zone 11"}
    $schPol.ScheduleRunTimeZone=$timeZone.Id
    

    要创建具有每日计划的策略,请运行以下 cmdlet:

    $UtcTime = Get-Date -Date "2019-03-20 01:30:00Z"
    $UtcTime = $UtcTime.ToUniversalTime()
    $schpol.ScheduleRunTimes[0] = $UtcTime
    
  3. 使用以下 cmdlet 提取保留策略对象:

    $retPol=Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
    
  4. 根据要求设置保留值。

    $retPol.DailySchedule.DurationCountInDays=15
    
  5. 使用 New-AzRecoveryServicesBackupProtectionPolicy 创建新的备份策略。

    可以将以前设置的计划和保留策略对象作为输入来传递。

    New-AzRecoveryServicesBackupProtectionPolicy -Name "FilesPolicytesting" -WorkloadType AzureFiles -RetentionPolicy $retpol -SchedulePolicy $schpol
    

    输出显示策略配置:

    Name           WorkloadType   BackupManagementType ScheduleFrequency  BackupTime    WindowStartTime     Interval   WindowDuration TimeZone
                                                                         (UTC)                                         (Hours)      
    ----          ------------    -------------------- -----------------  ------------  ---------------       -------- -------------- --------
    FilesPolicy
    testing        AzureFiles      AzureStorage         Hourly                          12/22/2021 8:00:00 AM     4        12         Russia Time Zone 11
    
    

启用备份

定义备份策略后,可以使用策略为Azure Files启用保护。

检索备份策略

使用 Get-AzRecoveryServicesBackupProtectionPolicy 提取相关的策略对象。 请使用此 cmdlet 查看与某个工作负载类型关联的策略,或者获取特定策略。

检索针对某个工作负荷类型的策略

以下示例检索工作负载类型为 AzureFiles 的策略:

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

示例输出:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
dailyafs             AzureFiles         AzureStorage         1/10/2018 12:30:00 AM

注意事项

PowerShell 中“BackupTime”字段的时区是 UTC。 当备份时间显示在Azure portal中时,时间将调整为本地时区。

检索特定的策略

以下策略检索名为“dailyafs”的备份策略:

$afsPol =  Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"

启用保护并应用策略

使用 Enable-AzRecoveryServicesBackupProtection 启用保护。 将策略与保管库关联后,系统会根据策略计划触发备份。

以下示例在存储帐户 testStorageAcct 中为 Azure 文件 testAzureFS 启用策略 dailyafs 的保护:

Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol

此命令将等待,直到完成配置保护作业,并提供类似于以下示例的输出:

WorkloadName       Operation            Status                 StartTime                                                                                                         EndTime                   JobID
------------             ---------            ------               ---------                                  -------                   -----
testAzureFS       ConfigureBackup      Completed            11/12/2018 2:15:26 PM     11/12/2018 2:16:11 PM     ec7d4f1d-40bd-46a4-9edb-3193c41f6bf6

有关如何获取存储帐户中文件共享列表的详细信息,请参阅本文

重要说明:备份项标识

本部分概述了 Azure Files 备份在准备普遍可用时的重要更改。

为Azure Files启用备份时,用户将获取文件共享名称作为实体名称,并创建备份项。 备份项的名称是Azure Backup服务创建的唯一标识符。 标识符通常是易记名称。 为了处理软删除方案,当文件共享被删除并创建了一个具有相同名称的新文件共享时,Azure Files 现在使用唯一 ID。

若要了解每个项的唯一 ID,请运行带有适用于“backupManagementType”和“WorkloadType”的相关筛选器的“Get-AzRecoveryServicesBackupItem”命令,以获取所有相关项。 然后查看返回的 PowerShell 对象/响应中的名称字段。

建议将项列出,然后从响应的“名称”字段中检索其唯一名称。 通过此值可以筛选参数为“名称”的项。 否则,请使用参数“FriendlyName”检索具有其 ID 的项。

重要

确保将 PowerShell 升级到最低版本(Az.RecoveryServices 2.6.0),以便备份Azure Files。 在此版本中,FriendlyName 筛选器可用于 Get-AzRecoveryServicesBackupItem 命令。

将Azure Files的名称传递给 FriendlyName 参数。 如果将文件共享的名称传递给 Name 参数,则此版本将引发警告,将名称传递给 FriendlyName 参数。

如果未安装最低版本,则可能导致现有脚本失败。 使用以下 PowerShell 命令安装最低版本:

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

触发按需备份

若要为受保护的Azure Files运行按需备份,请使用 Backup-AzRecoveryServicesBackupItem cmdlet:

  1. 使用 Get-AzRecoveryServicesBackupContainer 从保管库中包含备份数据的容器中检索存储帐户。
  2. 启动备份作业,使用 Get-AzRecoveryServicesBackupItem 获取有关Azure Files的信息。
  3. 使用 Backup-AzRecoveryServicesBackupItem 运行按需备份。

按如下所示运行按需备份:

$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job =  Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem

该命令返回一个带有 ID 的作业用来跟踪,如以下示例所示:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS       Backup               Completed            11/12/2018 2:42:07 PM     11/12/2018 2:42:11 PM     8bdfe3ab-9bf7-4be6-83d6-37ff1ca13ab6

创建备份时,将使用Azure Files快照。 通常,该作业在命令返回此输出时完成。

后续步骤