本文介绍如何使用 Azure CLI 管理和监视备份Azure Files(snapshot 和 vaulted 备份)。 Azure CLI提供了用于管理Azure资源的命令行体验。 这是生成自定义自动化以使用Azure资源的绝佳工具。 还可以使用 Azure portal、Azure PowerShell、REST API 管理Azure Files备份。
若要了解 Azure Files支持的备份和还原方案、区域可用性和限制,请参阅 support matrix。 有关常见问题,请参阅 常见问题。
先决条件
本文假定你已有由 Azure Backup 备份的Azure Files。 如果没有,请参阅使用 CLI 备份Azure Files为文件共享配置备份。 本文将使用以下资源:
-
资源组:
azurefiles - RecoveryServicesVault:azurefilesvault
- 存储帐户:afsaccount
- 文件共享:
azurefiles
如果希望在本地运行 CLI 引用命令,install Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行Azure CLI。
如果使用本地安装,请使用 az login 命令登录到Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅Azure CLI登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用 Azure CLI 的扩展。
运行 az 版本查找已安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- 本教程需要 2.0.18 或更高版本的Azure CLI。
监视作业
当触发备份或还原操作时,备份服务会创建一个跟踪任务。 若要监视已完成或当前正在运行的作业,请使用 az 备份作业列表 cmdlet。 使用 CLI,还可以暂停当前正在运行的作业或 wait,直到作业完成。
以下示例显示了 azurefilesvault 恢复服务保管库的备份作业的状态:
az backup job list --resource-group azurefiles --vault-name azurefilesvault
[
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
"location": null,
"name": "d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
"properties": {
"actionsInfo": null,
"activityId": "3cef43ed-0af4-43e2-b9cb-1322c496ccb4",
"backupManagementType": "AzureStorage",
"duration": "0:00:29.718011",
"endTime": "2020-01-13T08:05:29.180606+00:00",
"entityFriendlyName": "azurefiles",
"errorDetails": null,
"extendedInfo": null,
"jobType": "AzureStorageJob",
"operation": "Backup",
"startTime": "2020-01-13T08:04:59.462595+00:00",
"status": "Completed",
"storageAccountName": "afsaccount",
"storageAccountVersion": "MicrosoftStorage"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
},
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/1b9399bf-c23c-4caa-933a-5fc2bf884519",
"location": null,
"name": "1b9399bf-c23c-4caa-933a-5fc2bf884519",
"properties": {
"actionsInfo": null,
"activityId": "2663449c-94f1-4735-aaf9-5bb991e7e00c",
"backupManagementType": "AzureStorage",
"duration": "0:00:28.145216",
"endTime": "2020-01-13T08:05:27.519826+00:00",
"entityFriendlyName": "azurefilesresource",
"errorDetails": null,
"extendedInfo": null,
"jobType": "AzureStorageJob",
"operation": "Backup",
"startTime": "2020-01-13T08:04:59.374610+00:00",
"status": "Completed",
"storageAccountName": "afsaccount",
"storageAccountVersion": "MicrosoftStorage"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
}
]
创建备份策略
Azure Files Azure Backup策略定义备份的创建方式和时间、恢复点的保留期以及数据保护和恢复规则。
选择备份层:
可以通过使用以下参数执行 az 备份策略 create 命令来创建备份策略:
- --backup-management-type - Azure Storage
- --workload-type - AzureFileShare
- --name - 策略的名称
- --policy - JSON 文件,其中包含有关计划和保留的相应详细信息
- --resource-group - 保管库的资源组
- --vault-name - 保管库的名称
示例
az backup policy create --resource-group azurefiles --vault-name azurefilesvault --name schedule20 --backup-management-type AzureStorage --policy samplepolicy.json --workload-type AzureFileShare
示例 JSON (samplepolicy.json)
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupPolicies/schedule20",
"location": null,
"name": "schedule20",
"properties": {
"backupManagementType": "AzureStorage",
"protectedItemsCount": 0,
"retentionPolicy": {
"dailySchedule": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionTimes": [
"2020-01-05T08:00:00+00:00"
]
},
"monthlySchedule": null,
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": null,
"yearlySchedule": null
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": null,
"scheduleRunFrequency": "Daily",
"scheduleRunTimes": [
"2020-01-05T08:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
},
"timeZone": "UTC",
"workLoadType": “AzureFileShare”
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
创建每天配置多个备份的备份策略的示例
此示例 JSON 满足以下要求:
- 计划:在接下来的 12 个小时内,从上午 8 点 (UTC) 开始,每 4 小时备份一次。
- 保留期:每日 - 5 天,每周 - 连续 12 周的每个星期日,每月 - 每个月的第一个星期日,持续 60 个月,每年 - 每年一月的第一个星期日,持续 10 年。
{
"properties":{
"backupManagementType": "AzureStorage",
"workloadType": "AzureFileShare",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Hourly",
"hourlySchedule": {
"interval": 4,
"scheduleWindowStartTime": "2021-09-29T08:00:00.000Z",
"scheduleWindowDuration": 12
}
},
"timeZone": "UTC",
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionTimes": null,
"retentionDuration": {
"count": 5,
"durationType": "Days"
}
},
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": null,
"retentionDuration": {
"count": 12,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleDaily": null,
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": null,
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleDaily": null,
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": null,
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
}
}
成功创建策略后,命令的输出会显示在执行命令时作为参数传递的策略 JSON。
可以根据需要修改策略的时间表和保留期部分。
示例
如果要将每月第一个星期日的备份保留两个月,请根据以下示例更新每月计划:
"monthlySchedule": {
"retentionDuration": {
"count": 2,
"durationType": "Months"
},
"retentionScheduleDaily": null,
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2020-01-05T08:00:00+00:00"
]
}
修改策略
可以使用 az 备份项 set-policy修改备份策略来更改备份频率或保留范围。
若要更改策略,请定义以下参数:
- --container-name:承载文件共享的storage帐户的名称。 若要检索容器的 name 或 friendly name,请使用 az 备份容器列表命令。
- --name:要更改其策略的文件共享名称。 若要检索备份项的 name 或 友好名称,请使用 az 备份项列表命令。
- --policy-name:要为文件共享设置的备份策略的名称。 可以使用 az 备份策略列表查看保管库的所有策略。
以下示例为 afsaccount 存储帐户中存在的 azurefiles 文件共享设置 schedule2 备份策略。
az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --name "AzureFileShare;azurefiles" --backup-management-type azurestorage --out table
还可以通过提供以下两个其他参数,使用容器和项的易记名称来运行上一个命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --name azurefiles --backup-management-type azurestorage --out table
Name ResourceGroup
------------------------------------ ---------------
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles
输出中的“Name”属性对应于备份服务为更改策略操作创建的作业的名称。 若要跟踪作业的状态,请使用 az backup job show cmdlet。
停止对文件共享的保护
有两种方法可以停止保护Azure Files:
- 停止所有将来的备份作业,并删除所有恢复点。
- 停止所有将来的备份作业,但保留恢复点。
可能会与将恢复点保存在存储中相关的成本,因为由 Azure 备份创建的基础快照会被保留。 离开恢复点的好处是以后可以还原文件共享(如果需要)。 有关保留恢复点的成本信息,请参阅定价详细信息。 如果选择删除所有恢复点,则无法还原文件共享。
若要停止对文件共享的保护,请定义以下参数:
- --container-name:承载文件共享的storage帐户的名称。 若要检索容器的 name 或 friendly name,请使用 az 备份容器列表命令。
- --item-name:要停止保护的文件共享的名称。 若要检索备份项的 name 或 友好名称,请使用 az 备份项列表命令。
停止保护但保留恢复点
若要在保留数据时停止保护,请使用 az 备份保护禁用 cmdlet。
以下示例停止对azurefiles文件共享的保护,但保留所有恢复点。
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --out table
还可以通过提供以下两个其他参数,使用容器和项的易记名称来运行上一个命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --out table
Name ResourceGroup
------------------------------------ ---------------
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles
输出中的“Name”属性对应于备份服务为停止保护操作创建的作业的名称。 若要跟踪作业的状态,请使用 az backup job show cmdlet。
停止保护而不保留恢复点
若要停止保护而不保留恢复点,请使用 az 备份保护禁用 cmdlet,并将 delete-backup-data 选项设置为 true。
以下示例停止对azurefiles文件共享的保护,并且不保留恢复点。
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --delete-backup-data true --out table
还可以通过提供以下两个其他参数,使用容器和项的易记名称来运行上一个命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --delete-backup-data true --out table
恢复对文件共享的保护
如果停止了对Azure Files但保留恢复点的保护,则可以稍后恢复保护。 如果不保留恢复点,则无法恢复保护。
若要恢复对文件共享的保护,请定义以下参数:
- --container-name:承载文件共享的storage帐户的名称。 若要检索容器的 name 或 friendly name,请使用 az 备份容器列表命令。
- --item-name:要恢复保护的文件共享的名称。 若要检索备份项的 name 或 友好名称,请使用 az 备份项列表命令。
- --policy-name:要恢复文件共享保护的备份策略的名称。
以下示例使用 az 备份保护恢复 cmdlet 通过使用 azurefiles 备份策略恢复对 文件共享的保护。
az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount” --item-name “AzureFileShare;azurefiles” --policy-name schedule2 --out table
还可以通过提供以下两个其他参数,使用容器和项的易记名称来运行上一个命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --policy-name schedule2 --out table
Name ResourceGroup
------------------------------------ ---------------
75115ab0-43b0-4065-8698-55022a234b7f azurefiles
输出中的“Name”属性对应于备份服务为您的简历保护操作创建的作业的名称。 若要跟踪作业的状态,请使用 az backup job show cmdlet。
注销存储帐户
如果要使用不同的恢复服务保险库保护特定存储帐户中的文件共享,请先在该存储帐户中停止对所有文件共享的保护。 然后,从当前用于保护的恢复服务保管库中注销该帐户。
需要提供一个容器名称才能注销存储账户。 若要检索容器的 name 或 友好名称,请使用 az backup container list 命令。
以下示例使用 `az backup container unregister` cmdlet 从 `azurefilesvault` 注销 `afsaccount` 存储帐户。
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --out table
还可以通过提供以下其他参数,使用容器的易记名称来运行上一 cmdlet:
-
--backup-management-type:
azurestorage
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --out table