Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Site Recovery вносит вклад в стратегию непрерывности бизнеса и аварийного восстановления (BCDR), организуя репликацию, резервирование и восстановление виртуальных машин Azure, а также локальных виртуальных машин и физических серверов.
В этой статье описывается, как использовать Windows PowerShell вместе с Azure Resource Manager для репликации Hyper-V виртуальных машин в Azure. Пример, приведённый в этой статье, показывает, как воспроизвести одну виртуальную машину, работающую на Hyper-V-хосте, чтобы Azure.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
Azure PowerShell
Azure PowerShell предоставляет cmdlets для управления Azure с использованием Windows PowerShell. Site Recovery PowerShell cmdlets, доступные с Azure PowerShell for Azure Resource Manager, помогают защитить и восстановить ваши серверы в Azure.
Вам не обязательно быть экспертом по PowerShell, чтобы использовать эту статью, но вам нужно понимать базовые концепции, такие как модули, cmdlets и сессии. Для получения дополнительной информации см. документацию PowerShell и использование Azure PowerShell с Azure Resource Manager.
Примечание.
Microsoft, партнёры в программе поставщик облачных решений (CSP), могут настраивать и управлять защитой серверов клиентов по соответствующим CSP-подпискам (tenant subscriptions).
Перед началом работы
Убедитесь, что у вас есть следующие требования:
- A Microsoft Azure account. Начните с бесплатной пробной версии. Кроме того, вы можете узнать о ценах на Azure Site Recovery Manager.
- Azure PowerShell. Для получения информации об этом релизе и способах его установки смотрите в разделе «Установить Azure PowerShell».
Кроме того, конкретный пример, описанный в этой статье, имеет следующие требования:
- Хост Hyper-V, работающий Windows Server 2012 R2 или Microsoft Hyper-V Server 2012 R2, содержащий одну или несколько виртуальных машин. Hyper-V серверы должны быть подключены к Интернету либо напрямую, либо через прокси.
- Виртуальные машины, которые вы хотите воспроизвести, должны соответствовать этим требованиям.
Шаг 1: Войдите в свой аккаунт Azure
Откройте консоль PowerShell и выполните эту команду, чтобы войти в свой аккаунт Azure. Cmdlet открывает веб-страницу с запросом ваших учетных данных:
Connect-AzAccount.- В качестве альтернативы вы можете включить учетные данные вашей учетной записи в
Connect-AzAccountcmdlet, используя параметр Credential . - Если вы — партнер CSP, работающий от имени арендатора, вам потребуется указать заказчика в качестве арендатора. Для этого нужно ввести идентификатор или основное доменное имя арендатора. Например:
Connect-AzAccount -Tenant "fabrikam.com"
- В качестве альтернативы вы можете включить учетные данные вашей учетной записи в
Свяжите подписку, которую собираетесь использовать, с учетной записью, так как последняя может иметь несколько подписок:
Set-AzContext -Subscription $SubscriptionNameУбедитесь, что ваша подписка зарегистрирована для использования провайдеров Azure для Recovery Services и Site Recovery, используя следующие команды:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServicesПроверьте, что в командном выходе RegistrationState установлен на Registered, можно перейти к шагу 2. Если нет, зарегистрируйте отсутствующего провайдера в подписке, выполнив следующие команды:
Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServicesПроверьте, что провайдеры успешно зарегистрировались, используя следующие команды:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Шаг 2: Настройте хранилище
Создайте группу ресурсов Azure Resource Manager для создания хранилища или используйте существующую группу ресурсов. Создайте новую группу ресурсов следующим образом. Переменная содержит имя группы ресурсов, которую
$ResourceGroupNameвы хотите создать, а $Geo переменная содержит Azure регион для создания группы ресурсов (например, «Brazil South»).New-AzResourceGroup -Name $ResourceGroupName -Location $GeoЧтобы получить список групп ресурсов в вашей подписке, запустите
Get-AzResourceGroupcmdlet.Создайте новый хранилище Azure Recovery Services следующим образом:
$vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
Вы можете получить список существующих хранилищ с Get-AzRecoveryServicesVault помощью cmdlet.
Шаг 3: Задайте контекст хранилища Recovery Services
Настройте контекст хранилища следующим образом:
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Шаг 4: Создать Hyper-V сайт
Создайте новый Hyper-V сайт следующим образом:
$sitename = "MySite" #Specify site friendly name New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitenameЭтот cmdlet запускает задание Site Recovery для создания сайта и возвращает объект работы Site Recovery. Дождитесь завершения работы и убедитесь, что она успешно выполнена.
Используйте
Get-AzRecoveryServicesAsrJobcmdlet для получения объекта задания и проверьте текущий статус задания.Сгенерируйте и скачайте регистрационный ключ сайта следующим образом:
$SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitenameСкопируйте загруженный ключ на Hyper-V-хост. Вам нужен ключ, чтобы зарегистрировать Hyper-V хоста на сайте.
Шаг 5: Установите провайдера и агента
Скачайте установщик последней версии провайдера от Microsoft.
Запустите установщик на Hyper-V хосте.
В конце установки переходите к этапу регистрации.
При запросе введите загруженный ключ и завершите регистрацию Hyper-V хоста.
Проверьте, что Hyper-V хост зарегистрирован на сайте следующим образом:
$server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
Если у вас Hyper-V ядерный сервер, скачайте файл настройки и следуйте следующим шагам:
Извлеките файлы из AzureSiteRecoveryProvider.exe в локальный каталог, выполнив следующую команду:
AzureSiteRecoveryProvider.exe /x:. /qВыполните следующую команду:
.\setupdr.exe /iРезультаты записываются в %ProgramData%\ASRLogs\DRASetupWizard.log.
Зарегистрируйте сервер, выполнив следующую команду:
cd C:\Program Files\Microsoft Azure Site Recovery Provider\DRConfigurator.exe" /r /Friendlyname "FriendlyName of the Server" /Credentials "path to where the credential file is saved"
Шаг 6: Создайте политику репликации
Перед началом указанный аккаунт хранения должен находиться в том же регионе Azure, что и хранилище, и иметь включённую гео-репликацию.
Создайте политику репликации следующим образом:
$ReplicationFrequencyInSeconds = "300"; #options are 30,300,900 $PolicyName = “replicapolicy” $Recoverypoints = 6 #specify the number of recovery points $storageaccountID = Get-AzStorageAccount -Name "mystorea" -ResourceGroupName "MyRG" | Select-Object -ExpandProperty Id $PolicyResult = New-AzRecoveryServicesAsrPolicy -Name $PolicyName -ReplicationProvider “HyperVReplicaAzure” -ReplicationFrequencyInSeconds $ReplicationFrequencyInSeconds -NumberOfRecoveryPointsToRetain $Recoverypoints -ApplicationConsistentSnapshotFrequencyInHours 1 -RecoveryAzureStorageAccountId $storageaccountIDПроверьте возвращённое задание, чтобы убедиться, что создание политики репликации успешно выполнено.
Получите защитный контейнер, соответствующий месту, следующим образом:
$protectionContainer = Get-AzRecoveryServicesAsrProtectionContainerСвяжите контейнер защиты с политикой репликации следующим образом:
$Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]Ждите, пока работа в ассоциации будет успешно завершена.
Получите карту контейнера защиты.
$ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
Шаг 7: Включите защиту виртуальных машин
Получите защищённый элемент, соответствующий желанной виртуальной машине, следующим образом:
$VMFriendlyName = "Fabrikam-app" #Name of the VM $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyNameВключите защиту виртуальной машины. Если к защищаемой вами виртуальной машине подключено больше одного диска, укажите диск операционной системы с помощью параметра OSDiskName .
$OSType = "Windows" # "Windows" or "Linux" $DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -RecoveryAzureStorageAccountId $StorageAccountID -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupIDЧтобы Azure Site Recovery создал управляемые диски для реплицированной виртуальной машины в Azure, используйте следующую команду:
$DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -LogStorageAccountId $StorageAccountId -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupID -Size "Standard_D4s_v3" -UseManagedDisksForReplication $true -UseManagedDisk $trueПримечание.
Чтобы использовать Azure Managed Disks для реплицированной виртуальной машины, укажите оба
-UseManagedDisksForReplication $trueварианта и-UseManagedDisk $true. Аккаунт хранения, указанный ,-LogStorageAccountIdиспользуется для репликационных журналов, а реплицированные диски в Azure создаются как управляемые диски.Дождитесь, пока виртуальные машины перейдут в защищенное состояние после начальной репликации. Это может занять некоторое время в зависимости от таких факторов, как объем данных для репликации и доступная пропускная способность для Azure. Когда действует защищённое состояние, штат работы и StateDescription обновляются следующим образом:
PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob PS C:\> $DRjob | Select-Object -ExpandProperty State Succeeded PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription CompletedОбновить свойства восстановления (например, размер роли VM) и сеть Azure для подключения сетевой карты VM после отказа.
PS C:\> $nw1 = Get-AzVirtualNetwork -Name "FailoverNw" -ResourceGroupName "MyRG" PS C:\> $VMFriendlyName = "Fabrikam-App" PS C:\> $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName PS C:\> $UpdateJob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $rpi -PrimaryNic $VM.NicDetailsList[0].NicId -RecoveryNetworkId $nw1.Id -RecoveryNicSubnetName $nw1.Subnets[0].Name PS C:\> $UpdateJob = Get-AzRecoveryServicesAsrJob -Job $UpdateJob PS C:\> $UpdateJob | Select-Object -ExpandProperty state PS C:\> Get-AzRecoveryServicesAsrJob -Job $job | Select-Object -ExpandProperty state Succeeded
Примечание.
Если вы хотите репликацию на управляемые диски с поддержкой CMK в Azure, выполните следующие шаги с использованием Az PowerShell 3.3.0 и далее:
- Включите резервное подключение к управляемым дискам путем обновления свойств виртуальной машины
- Используйте
Get-AzRecoveryServicesAsrReplicationProtectedItemcmdlet для получения идентификатора диска для каждого диска защищённого элемента - Создайте объект словаря с помощью
New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"cmdlet для сопоставления идентификатора диска с набором шифрования диска. Эти наборы шифрования диска должны быть заранее созданы вами в целевой области. - Обновите свойства виртуальной машины с помощью
Set-AzRecoveryServicesAsrReplicationProtectedItemcmdlet, передавая объект словаря в параметре DiskIdToDiskEncryptionSetMap .
Шаг 8. Проведение тестового аварийного переключения
Запустите тестовое отказное переключение следующим образом:
$nw = Get-AzVirtualNetwork -Name "TestFailoverNw" -ResourceGroupName "MyRG" #Specify Azure vnet name and resource group $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName $TFjob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $VM -Direction PrimaryToRecovery -AzureVMNetworkId $nw.IdПроверьте, что тестовая виртуальная машина создана в Azure. Задача тестового отказа приостанавливается после создания тестовой виртуальной машины в Azure.
Чтобы очистить и завершить тестовое переключение на резерв, запустите:
$TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
Дальнейшие действия
Узнайте больше о Azure Site Recovery с помощью cmdlets Azure Resource Manager PowerShell.