Поделиться через


Резервное копирование общей папки Azure с помощью PowerShell

В этой статье описывается, как использовать Azure PowerShell для резервного копирования общей папки Файлов Azure через хранилище Служб восстановления Azure Backup.

В статье описывается выполнение следующих задач:

  • Настройте PowerShell и зарегистрируйте поставщика служб восстановления.
  • Создайте хранилище служб восстановления.
  • Настройте резервное копирование общей папки Azure.
  • Запустите задание резервного копирования.

Перед началом работы

Настройка PowerShell

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Примечание.

В настоящее время Azure PowerShell не поддерживает политики резервного копирования с почасовым расписанием. Этой функцией можно воспользоваться на портале Azure. Подробнее

Настройка PowerShell:

  1. Загрузите последнюю версию Azure PowerShell.

    Примечание.

    Минимальная версия PowerShell, необходимая для резервного копирования общих папок Azure — Az.RecoveryServices 2.6.0. Использование последней версии или по крайней мере минимальной версии позволяет избежать проблем с существующими сценариями. Установите минимальную версию с помощью следующей команды PowerShell:

    Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
    
  2. Найдите командлеты PowerShell для Azure Backup с помощью следующей команды:

    Get-Command *azrecoveryservices*
    
  3. Отображаются псевдонимы и командлеты для службы архивации Azure, Azure Site Recovery и хранилища Служб восстановления. Ниже приведен пример того, что нам необходимо. Это неполный список командлетов.

    Список командлетов Служб восстановления

  4. Чтобы войти в учетную запись Azure, используйте командлет Connect-AzAccount.

  5. На появившейся веб-странице вам будет предложено ввести учетные данные.

    Кроме того, учетные данные можно добавить в качестве параметра в командлет Connect-AzAccount, используя параметр -Credential.

    Если вы партнер CSP, работающий от имени клиента, вам потребуется указать заказчика в качестве клиента. Для этого нужно ввести идентификатор или основное доменное имя клиента. Например: Connect-AzAccount-Tenant "fabrikam.com".

  6. Свяжите подписку, которую собираетесь использовать, с учетной записью, так как последняя может иметь несколько подписок.

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  7. Если вы используете службу архивации Azure впервые, выполните командлет Register-AzResourceProvider, чтобы зарегистрировать поставщика Служб восстановления Azure в своей подписке.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. Убедитесь в успешной регистрации поставщиков, выполнив следующие команды:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. В выходных данных команды для RegistrationState должно быть установлено значение Registered. Если это не так, повторно выполните командлет Register-AzResourceProvider.

Создание хранилища Служб восстановления

Хранилище Служб восстановления представляет собой ресурс Resource Manager, поэтому вам потребуется разместить его в группе ресурсов. Вы можете использовать имеющуюся группу ресурсов или создать новую, выполнив командлет New-AzResourceGroup. При создании группы ресурсов укажите ее имя и расположение.

Чтобы создать хранилище Служб восстановления, выполните описанные ниже действия.

  1. Вы можете использовать имеющуюся группу ресурсов или создать новую, выполнив командлет New-AzResourceGroup. В этом разделе вы создадите группу ресурсов в регионе Западная часть США.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. С помощью командлета 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. Укажите объекты политики расписания и хранения в качестве входных данных.

Чтобы создать политику резервного копирования, которая создает несколько резервных копий в день, выполните следующие действия.

  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
    
    

    Приведенная выше конфигурация позволяет запланировать создание 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
    
  3. Извлеките объект политики хранения с помощью следующего командлета:

    $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 с помощью этой политики.

Извлечение политики резервного копирования

Получить соответствующий объект политики можно с помощью командлета 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 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.

  1. Получите учетную запись хранения из контейнера в хранилище, в котором хранятся резервные копии данных, с помощью команды Get-AzRecoveryServicesBackupContainer.
  2. Чтобы запустить задание резервного копирования, получите сведения об общей папке Azure с помощью команды Get-AzRecoveryServicesBackupItem.
  3. Выполните резервное копирование по требованию с помощью командлета 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 используются при создании резервных копий. Обычно задание завершается ко времени, когда команда возвращает эти выходные данные.

Следующие шаги