Управление резервными копиями файловых ресурсов Azure с помощью Azure CLI
Интерфейс командной строки Azure предоставляет возможности командной строки для управления ресурсами Azure. Это отличный инструмент для создания пользовательской автоматизации для использования ресурсов Azure. В этой статье объясняется, как выполнять задачи по управлению общими папками Azure, резервное копирование которых осуществляется службой Azure Backup. Эти действия можно также выполнить с помощью портала Azure.
Необходимые компоненты
В этой статье предполагается, что у вас уже есть резервная копия общего файлового ресурса Azure, Azure Backup. Если у вас ее нет, см. раздел резервное копирование файловых ресурсов Azure с помощью интерфейса командной строки для настройки резервного копирования общих файловых ресурсов. В этой статье вы используете следующие ресурсы.
- Группа ресурсов: azurefiles
- RecoveryServicesVault: azurefilesvault
- Учетная запись хранения: afsaccount
- Общая папка: azurefiles
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этим руководством требуется Azure CLI версии 2.0.18 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Мониторинг заданий
При запуске операций резервного копирования или восстановления служба резервного копирования создает задание для отслеживания. Чтобы отслеживать выполненные или выполняемые в данный момент задания, используйте командлет az backup job list. С помощью CLI вы также можете приостановить выполнение текущего задания или дождаться его завершения .
В следующем примере отображается состояние заданий резервного копирования для хранилища служб восстановления 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"
}
]
Создание политики
Политику архивации можно создать, выполнив команду az backup policy create со следующими параметрами:
- --backup-management-type – служба хранилища Azure
- --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 предназначен для выполнения следующих требований:
- Расписание. Создавать резервную копию каждые 4 часа, начиная с 08:00 (UTC) в течение следующих 12 часов.
- Хранение: ежедневные копии — 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 backup item set-policy.
Чтобы изменить политику, определите следующие параметры.
- --container-name: имя учетной записи хранения, в которой размещена общая папка. Чтобы получить имя или понятное имя контейнера, используйте команду az backup container list.
- --name: имя общей папки, для которой необходимо изменить политику. Чтобы получить имя или понятное имя архивированного элемента, используйте команду az backup item list.
- --policy-name: имя политики резервного копирования, которую вы хотите задать для общей папки. Чтобы просмотреть все политики для хранилища, можно использовать команду az backup policy list.
В следующем примере задается политика резервного копирования schedule2 для общей папки azurefiles, которая находится в учетной записи хранения afsaccount.
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.
Остановка защиты файлового ресурса
Есть два способа отключить защиту файловых ресурсов Azure:
- остановить все будущие задания резервного копирования и удалить все точки восстановления.
- Можно остановить все будущие задания резервного копирования, но сохранить точки восстановления.
При хранении точек восстановления в хранилище могут возникать затраты, поскольку базовые моментальные снимки, созданные Azure Backup, будут сохранены. Преимуществом использования точек восстановления является возможность восстановления общей папки позже, если требуется. Дополнительные сведения о тарифах на хранение точек восстановления см. в описании цен. Если вы удалите все точки восстановления, вы не сможете восстановить файловый ресурс.
Чтобы отключить защиту для общей папки, определите следующие параметры.
- --container-name: имя учетной записи хранения, в которой размещена общая папка. Чтобы получить имя или понятное имя контейнера, используйте команду az backup container list.
- --item-name: имя общего файлового ресурса, для которого требуется отключить защиту. Чтобы получить имя или понятное имя архивированного элемента, используйте команду az backup item list.
Отключение защиты и сохранение точек восстановления
Чтобы остановить защиту при сохранении данных, используйте командлет az backup protection disable.
В следующем примере останавливается защита для общей папки 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.
Отключение защиты без сохранения точек восстановления
Чтобы отключить защиту без удержания точек восстановления, используйте командлет az backup protection disable, указав для параметра 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, но сохранили точки восстановления, вы можете возобновить защиту позже. Если точки восстановления не сохранены, вы не сможете возобновить защиту.
Чтобы возобновить защиту для общей папки, задайте следующие параметры.
- --container-name: имя учетной записи хранения, в которой размещена общая папка. Чтобы получить имя или понятное имя контейнера, используйте команду az backup container list.
- --item-name: имя общего файлового ресурса, для которого необходимо возобновить защиту. Чтобы получить имя или понятное имя архивированного элемента, используйте команду az backup item list.
- --policy-name: имя политики резервного копирования, для которой требуется возобновить защиту для общей папки.
В следующем примере используется командлет az backup protection resume для возобновления защиты файлового ресурса azurefiles с помощью политики резервного копирования schedule1.
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.
Отмена регистрации учетной записи хранения
Если вы хотите защитить файловые ресурсы в определенной учетной записи хранения с помощью другого хранилища служб восстановления, сначала отключите защиту для всех файловых ресурсов в этой учетной записи хранения. Затем отмените регистрацию учетной записи в хранилище служб восстановления, которое сейчас используется для защиты.
Чтобы отменить регистрацию учетной записи хранения, необходимо указать имя контейнера. Чтобы получить имя или понятное имя контейнера, используйте команду az backup container list.
В следующем примере выполняется отмена регистрации учетной записи хранения afsaccount из azurefilesvault с помощью командлета az backup container unregister.
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --out table
Вы также можете запустить предыдущий командлет, используя понятное имя для контейнера, предоставив следующий дополнительный параметр:
- --backup-management-type: azurestorage
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --out table
Следующие шаги
Дополнительные сведения см. в статье Устранение неполадок резервного копирования файловых ресурсов Azure.