Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать Azure PowerShell для резервного копирования файлов Azure с помощью хранилища Служб восстановления Azure Backup .
Предпосылки
Перед резервной копией файлов Azure убедитесь, что выполнены следующие предварительные требования:
Ознакомьтесь со справочником по командлету Az.RecoveryServices в библиотеке Azure.
Изучите следующую иерархию объектов PowerShell для служб восстановления.
Настройка PowerShell
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. Перенос Azure PowerShell с AzureRM на Az.
Примечание.
В настоящее время Azure PowerShell не поддерживает политики резервного копирования с почасовым расписанием. Используйте портал Azure для применения этой функции. Подробнее
Настройка PowerShell:
Загрузите последнюю версию Azure PowerShell.
Примечание.
Минимальная версия PowerShell, необходимая для резервного копирования файлов Azure, — Az.RecoveryServices 2.6.0. Последняя версия или по крайней мере минимальная версия помогает избежать проблем с существующими скриптами. Установите минимальную версию с помощью следующей команды PowerShell:
Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
Найдите командлеты PowerShell для Azure Backup с помощью следующей команды:
Get-Command *azrecoveryservices*
Отображаются псевдонимы и командлеты для службы архивации Azure, Azure Site Recovery и хранилища Служб восстановления. Ниже приведен пример того, что вы можете увидеть. Это неполный список командлетов.
Чтобы войти в учетную запись Azure, используйте командлет PowerShell Connect-AzAccount.
На появившейся веб-странице вам будет предложено ввести учетные данные.
Кроме того, учетные данные можно добавить в качестве параметра в командлет Connect-AzAccount, используя параметр -Credential.
Если вы являетесь партнером поставщика облачных служб (CSP), работающего от имени клиента, укажите клиента в качестве клиента. Для этого нужно ввести идентификатор или основное доменное имя клиента. Например: Connect-AzAccount -Tenant "fabrikam.com".
Свяжите подписку, которую собираетесь использовать, с учетной записью, так как последняя может иметь несколько подписок.
Select-AzSubscription -SubscriptionName $SubscriptionName
Если вы используете службу архивации Azure впервые, выполните командлет Register-AzResourceProvider, чтобы зарегистрировать поставщика Служб восстановления Azure в своей подписке.
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
Проверьте, что поставщики были успешно зарегистрированы.
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
В выходных данных команды убедитесь, что RegistrationState изменяется на Registered. Если это не так, повторно выполните командлет Register-AzResourceProvider.
Создайте хранилище служб восстановления
Хранилище Служб восстановления представляет собой ресурс Resource Manager, поэтому вам потребуется разместить его в группе ресурсов. Вы можете использовать имеющуюся группу ресурсов или создать новую, выполнив командлет New-AzResourceGroup. При создании группы ресурсов укажите ее имя и расположение.
Чтобы создать хранилище Служб восстановления, выполните описанные ниже действия.
Создайте новую группу ресурсов с помощью командлета New-AzResourceGroup , если у вас нет существующего. В этом примере мы создаём группу ресурсов в регионе Запад США.
New-AzResourceGroup -Name "test-rg" -Location "West US"
С помощью командлета New-AzRecoveryServicesVault создайте хранилище. Укажите то же местоположение для хранилища, что и для группы ресурсов.
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
Просмотр хранилищ в подписке
Выполнив командлет Get-AzRecoveryServicesVault, вы получите список всех хранилищ в подписке.
Get-AzRecoveryServicesVault
Выход аналогичен приведенному ниже. Выходные данные предоставляют связанную группу ресурсов и расположение.
Name : Contoso-vault
ID : /subscriptions/1234
Type : Microsoft.RecoveryServices/vaults
Location : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId : 1234-567f-8910-abc
Properties : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
Установить контекст хранилища
Сохраните объект хранилища в переменной и задайте контекст хранилища.
Многие командлеты Azure Backup требуют объект хранилища для Служб восстановления в качестве входных данных, поэтому удобно хранить этот объект в переменной.
Контекст хранилища — это тип данных, защищаемых в хранилище. Задайте его с помощью Set-AzRecoveryServicesVaultContext. Заданный контекст применяется ко всем последующим командлетам.
Следующий пример задает контекст хранилища для testvault
:
Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext
Получение идентификатора хранилища
Мы планируем отказаться от параметра контекста хранилища в соответствии с рекомендациями Azure PowerShell. Вместо этого можно сохранить или извлечь идентификатор хранилища и передать его в соответствующие команды. Если вы не указали контекст хранилища или хотите указать команду для выполнения в определенном хранилище, передайте идентификатор хранилища как -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
Настройка политики резервного копирования
Политика архивации определяет расписание резервного копирования и время хранения резервных точек восстановления.
Политика резервного копирования связана по крайней мере с одной политикой хранения. Политика хранения определяет, сколько времени сохраняется точка восстановления. Выполнение резервного копирования можно настроить ежедневно, еженедельно, ежемесячно или ежегодно. С помощью нескольких политик резервного копирования можно также настроить ежечасное сохранение резервных копий.
Внимание
Для политик резервного копирования используются следующие командлеты:
- Просмотрите политику хранения резервных копий по умолчанию с помощью
Get-AzRecoveryServicesBackupRetentionPolicyObject
. - Просмотр политики расписания резервного копирования по умолчанию с помощью
Get-AzRecoveryServicesBackupSchedulePolicyObject
. - Создайте политику резервного копирования с помощью
New-AzRecoveryServicesBackupProtectionPolicy
. Укажите объекты политики расписания и хранения в качестве входных данных.
Выберите уровень резервного копирования:
Чтобы создать политику резервного копирования, которая настраивает несколько резервных копий в день для резервного копирования моментальных снимков файлов Azure, выполните следующие командлеты:
Получите объект политики расписания.
$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
Задайте необходимые параметры расписания.
$schpol.ScheduleInterval=4 $schpol.ScheduleWindowDuration=12
Приведенная выше конфигурация позволяет запланировать создание 4-х резервных копий в день за период с 08:00 по 20:00 (08:00 + 12 часов). Также можно задать часовой пояс, как указано в следующем командлете:
$timeZone= $timeZone=Get-TimeZone -ListAvailable |Where-Object{$_.Id-match "Russia Time Zone 11"} $schPol.ScheduleRunTimeZone=$timeZone.Id
Чтобы создать политику с ежедневным расписанием, выполните следующий командлет:
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z" $UtcTime = $UtcTime.ToUniversalTime() $schpol.ScheduleRunTimes[0] = $UtcTime
Извлеките объект политики хранения с помощью следующего командлета:
$retPol=Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
Задайте требуемые значения для хранения.
$retPol.DailySchedule.DurationCountInDays=15
Создайте новую политику резервного копирования с помощью команды 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 с помощью политики.
Извлечение политики резервного копирования
Получить соответствующий объект политики можно с помощью командлета Get-AzRecoveryServicesBackupProtectionPolicy. Используйте эту командлет для просмотра политик, связанных с типом рабочей нагрузки, или чтобы получить определённую политику.
Получение политики для типа рабочей нагрузки
Приведенный пример извлекает политики для типа задачи работы AzureFiles.
Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"
Пример выходных данных:
Name WorkloadType BackupManagementType BackupTime DaysOfWeek
---- ------------ -------------------- ---------- ----------
dailyafs AzureFiles AzureStorage 1/10/2018 12:30:00 AM
Примечание.
Часовой пояс поля BackupTime в PowerShell — UTC. Однако при отображении времени архивации на портале Azure время меняется в соответствии с локальным часовым поясом.
Получение конкретной политики
Следующая политика извлекает политику резервного копирования с именем dailyafs.
$afsPol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"
Включение защиты и применение политики
Включите защиту с помощью команды Enable-AzRecoveryServicesBackupProtection. После того как политика будет связана с хранилищем, резервное копирование будет инициировано в соответствии с расписанием политики.
В следующем примере включается защита для Azure Files testAzureFS в учетной записи хранения testStorageAcct с политикой 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 при подготовке к общедоступной доступности.
При включении резервной копии для файлов Azure пользователь получает имя общей папки в качестве имени сущности и создается элемент резервной копии. Имя элемента резервного копирования — это уникальный идентификатор, создаваемый службой Azure Backup. Обычно идентификатор является понятным именем. Для обработки сценариев обратимого удаления, где удаляется общая папка и создается новая с тем же именем, файлы Azure теперь используют уникальный идентификатор.
Чтобы узнать уникальный идентификатор каждого элемента, выполните команду Get-AzRecoveryServicesBackupItem с соответствующими фильтрами дляbackupManagementType and WorkloadType, чтобы получить все соответствующие элементы. Затем просмотрите поле с именем в возвращенном объекте или ответе PowerShell.
Рекомендуется перечислить элементы, а затем извлечь их уникальное имя из поля с именем в ответе. Используйте это значение для фильтрации элементов с помощью параметра Name. В противном случае используйте параметр FriendlyName для получения элемента с его идентификатором.
Внимание
Убедитесь, что PowerShell обновлен до минимальной версии (Az.RecoveryServices 2.6.0) для резервного копирования файлов Azure. В этой версии для команды Get-AzRecoveryServicesBackupItem доступен фильтр FriendlyName.
Передайте имя файлов Azure в параметр FriendlyName . Если передать имя общей папки параметру Name , эта версия выдает предупреждение, чтобы передать имя параметру FriendlyName .
Если не установить минимальную версию, это может привести к сбою существующих скриптов. Установите минимальную версию PowerShell с помощью следующей команды:
Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
Активирование резервного копирования по запросу
Чтобы выполнить резервное копирование по запросу для защищенного файла Azure, используйте командлет Backup-AzRecoveryServicesBackupItem :
- Получите учетную запись хранения из контейнера в хранилище, в котором хранятся резервные копии данных, с помощью команды Get-AzRecoveryServicesBackupContainer.
- Запустите задание резервного копирования, получите сведения о файлах Azure с помощью Get-AzRecoveryServicesBackupItem.
- Выполните резервное копирование по требованию с помощью командлета Backup-AzRecoveryServicesBackupItem.
Чтобы выполнить резервное копирование по запросу, сделайте следующее:
$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job = Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem
Эта команда возвращает задачу с идентификатором для отслеживания, как показано в примере ниже.
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. Обычно задание завершается ко времени, когда команда возвращает эти выходные данные.
Следующие шаги
- Восстановление файлов Azure с помощью Azure PowerShell.
- Пример скрипта на GitHub для использования модуля Runbook службы автоматизации Azure для планирования резервных копий.