Перемещение DevTest Labs и расписания в другой регион

Вы можете переместить DevTest Labs и связанные с ними расписания в другой регион. Чтобы переместить лабораторию, создайте копию существующей лаборатории в другом регионе. При перемещении лаборатории и наличии виртуальной машины в целевом регионе можно переместить расписания лаборатории.

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

  • Экспорт шаблона Azure Resource Manager (ARM) лаборатории.
  • Измените шаблон, добавив или обновив целевой регион и другие параметры.
  • Используйте шаблон для создания новой лаборатории в целевом регионе.
  • Настройте новую лабораторию.
  • Переместите данные в новую лабораторию.
  • Перемещение расписаний в новую лабораторию.
  • Удаление ресурсов в исходном регионе.

Необходимые компоненты

  • Убедитесь, что службы и функции, используемые вашей учетной записью, поддерживаются в целевом регионе.

  • Если используются предварительные версии функции, убедитесь, что ваша подписка внесена в список разрешенных подписок для целевого региона.

  • DevTest Labs не сохраняет или не предоставляет пароли из экспортированного шаблона ARM. Вам нужно знать пароли и секреты:

    • виртуальных машин;
    • сохраненных секретов;
    • личных маркеров доступа закрытых репозиториев артефактов для перемещения частных репозиториев вместе с лабораторией.
  • При перемещении расписания лаборатории убедитесь, что виртуальная машина вычислений существует в целевом регионе.

Перемещение лаборатории

В следующем разделе описывается создание и настройка шаблона ARM для перемещения лаборатории из одного региона в другой.

Расписание можно переместить без перемещения лаборатории, если у вас есть виртуальная машина в целевом регионе. Если вы хотите переместить расписание без перемещения лаборатории, см . раздел "Переместить расписание".

Подготовка к перемещению лаборатории

При перемещении лаборатории необходимо выполнить некоторые действия, чтобы подготовиться к перемещению. Вам нужно:

  • Подготовка виртуальной сети
  • Экспорт шаблона ARM лаборатории
  • Изменение шаблона
  • Развертывание шаблона для перемещения лаборатории
  • Настройка новой лаборатории
  • Переключение дисков ОС виртуальных машин вычислений на новые виртуальные машины
  • Очистка исходной лаборатории

Подготовка виртуальная сеть

Чтобы приступить к работе, экспортируйте и измените шаблон Resource Manager.

  1. Войдите на портал Azure.

  2. Если у вас нет Группы ресурсов в целевом регионе, создайте ее.

  3. Переместите текущую виртуальная сеть в новый регион и группу ресурсов, выполнив действия, описанные в статье "Перемещение виртуальной сети Azure в другой регион".

    Кроме того, можно создать новую виртуальную сеть, если вам не нужно ничего делать с исходной.

Экспорт шаблона ARM лаборатории

Затем вы экспортируете шаблон JSON, содержащий параметры, описывающие лабораторию.

Чтобы экспортировать шаблон с помощью портала Azure:

  1. Выберите Все ресурсы, а затем выберите группу ресурсов для лаборатории.

  2. Выберите Экспортировать шаблон.

  3. Выберите " Скачать " в шаблоне экспорта.

  4. Найдите скачанный c портала ZIP-файл и распакуйте его в любую выбранную папку.

    В ZIP-файле содержатся JSON-файлы, содержащие шаблон и скрипты для развертывания шаблона. Он содержит все ресурсы лаборатории, перечисленные в формате шаблона ARM, за исключением ресурсов общей коллекции образов.

Изменение шаблона

Чтобы шаблон ARM был правильно развернут в новом регионе, необходимо изменить несколько его частей.

Чтобы обновить шаблон с помощью портала Azure, выполните следующие действия.

  1. На портале Azure выберите Создать ресурс.

  2. В строке Поиск в Marketplace введите развертывание шаблона и нажмите клавишу ВВОД.

  3. Выберите Развертывание шаблона.

    Снимок экрана: Azure Marketplace с выбранным развертыванием шаблона.

  4. Нажмите кнопку создания.

  5. Выберите Создать собственный шаблон в редакторе.

  6. Выберите Загрузить файл и следуйте инструкциям, чтобы загрузить файл template.json, скачанный в предыдущем разделе.

  7. В редакторе внесите следующие изменения в файл template.json:

    1. Замените оригинал location на новый регион, в котором требуется выполнить развертывание, например westus2 , southeastasia и т. д. Чтобы получить коды расположения регионов, см. раздел Расположения Azure. Код региона — это имя региона без пробелов, например Центральная часть США = centralus.

      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "location": "centralus",
      
    2. Если у вас есть параметр "Все виртуальные машины в одной группе ресурсов" в разделе "Параметры лаборатории", также обновите следующие значения в шаблоне ARM:

      • Измените значение apiVersion ресурса microsoft.devtestlab/labs на 2018-10-15-preview.
      • Добавьте vmCreationResourceGroupId в раздел properties.
      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "apiVersion": "2018-10-15-preview",
          "name": "[parameters('labs_lj_dtl_rgsettings_name')]",
          "location": "<regionName>",
          "properties": {
            "vmCreationResourceGroupId": "/subscriptions/<subscriptionID>/resourceGroups/<myResourceGroup>",
            "labStorageType": "Premium",
      
    3. Найдите ресурс "type": "microsoft.devtestlab/labs/users". Удалите весь раздел secretStore, включая параметры keyVaultld и keyVaultUri.

      secretStore": {
        "keyVaultUri": "<vaultvalue>"
        "keyVaultld": "<id>"
      }
      
    4. Найдите ресурс "type": "microsoft.devtestlab/labs/virtualnetworks". Если вы создали виртуальную сеть ранее на этих этапах, необходимо добавить фактическое имя подсети в /subnets/[SUBNET_NAME]. Если вы решили переместить виртуальную сеть в новый регион, пропустите этот шаг.

    5. Найдите ресурс "type": "microsoft.devtestlab/labs/virtualmachines".

      1. В разделе "Свойства" добавьте "password": "RANDOM_PASSWORD"

        Примечание.

        Для создания новой виртуальной машины требуется свойство "пароль". Мы вводим случайный пароль, так как в дальнейшем мы заменим диск ОС на исходную виртуальную машину.

      2. Для виртуальных машин с общим IP-адресом добавьте этот фрагмент кода в раздел "properties.networkInterface",

        Виртуальная машина Windows с RDP:

        "networkInterface": {
          "sharedPublicIpAddressConfiguration": {
            "inboundNatRules": [
              {
                "transportProtocol": "tcp",
                "backendPort": 3389
              }
            ]
          }
        }
        

        Виртуальная машина Linux с SSH:

         "networkInterface": {
            "sharedPublicIpAddressConfiguration": {
              "inboundNatRules": [
                {
                  "transportProtocol": "tcp",
                  "backendPort": 22
                }
              ]
            }
          }
        
    6. В разделе ресурсов microsoft.devtestlab/labs/users/secrets ниже приведен параметр "свойства". заменив YOUR_STORED_PASSWORD собственным паролем;

      Внимание

      Используйте secureString для значений паролей.

      "value": "YOUR_STORED_PASSWORD"
      
    7. В разделе ресурсов microsoft.devtestlab/labs/artifactsources ниже приведен параметр "свойства". заменив YOUR_STORED_PASSWORD собственным паролем; Снова используйте secureString для значений паролей.

      "securityToken": "YOUR_PAT_TOKEN_VALUE"
      
    8. В редакторе сохраните шаблон.

Развертывание шаблона для перемещения лаборатории

Используйте шаблон для создания новой лаборатории в целевом регионе.

  1. На странице Настраиваемое развертывание обновите все параметры с соответствующими значениями, определенными в шаблоне.

  2. Введите следующие значения:

    Имя. Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Выберите имя группы ресурсов, созданной в предыдущем разделе.
    Местонахождение Выберите расположение для лаборатории. Например, центральная часть США.
    Имя лаборатории Имя должно быть другим.
    Идентификатор виртуальной сети Должен быть перемещен или создан новый.
  3. Выберите Review + create (Просмотреть и создать).

  4. Нажмите кнопку создания.

  5. Чтобы просмотреть состояние развертывания, щелкните значок колокольчика (уведомления) в верхней части экрана. Появится уведомление Выполняется развертывание. Подождите, пока развертывание завершится.

Настройка новой лаборатории

Хотя большинство ресурсов лаборатории были реплицированы в новом регионе с помощью шаблона ARM, некоторые изменения по-прежнему нужно перемещать вручную.

  1. Добавьте коллекцию вычислений обратно в лабораторию, если в исходной.
  2. Добавьте политики "Виртуальные машины на пользователя", "Виртуальные машины на лабораторию" и "Разрешенные размеры виртуальных машин" обратно в перемещенную лабораторию.

Переключение дисков ОС виртуальных машин вычислений на новые виртуальные машины

Обратите внимание, что виртуальные машины в новой лаборатории имеют те же характеристики, что и в старой лаборатории. Единственное отличие заключается в их дисках ОС.

  1. Создайте пустой диск в новом регионе.

    • Получите имя целевого диска ОС виртуальной машины в новой лаборатории. Вы можете найти виртуальную машину вычислений и его диск в группе ресурсов на странице виртуальной машины лаборатории.

    • Используйте AzCopy, чтобы скопировать старое содержимое диска в новые или пустые диски в новом регионе. Вы можете выполнять команды PowerShell из Dev Box или из Azure Cloud Shell.

      AzCopy — это предпочтительное средство для перемещения данных. Он оптимизирован для производительности. Одним из способов ускорения является непосредственное копирование данных, чтобы AzCopy не использовало пропускную способность сети компьютера. Используйте AzCopy в командной строке или в составе пользовательского сценария. См. подробнее о начале работы с AzCopy.

      # Fill in the source/target disk names and their resource group names
      $sourceDiskName = "SOURCE_DISK"
      $sourceRG = "SOURCE_RG"
      $targetDiskName = "TARGET_DISK"
      $targetRG = "TARGET_RG"
      $targetRegion = "TARGET_LOCATION"
      
      # Create an empty target disk from the source disk
      $sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      $targetDiskconfig = New-AzDiskConfig -SkuName $sourceDisk.Sku.Name -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetRegion -OsType $sourceDisk.OsType -CreateOption 'Upload'
      $targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
      
      # Copy the disk content from source to target
      $sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 1800 -Access 'Read'
      $targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 1800 -Access 'Write'
      azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob
      Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
      

      После этого в новом регионе появится новый диск.

    1. Замените диск ОС виртуальной машины в новой лаборатории на новый диск. Дополнительные сведения см. в статье "Изменение диска ОС, используемого виртуальной машиной Azure, с помощью PowerShell".

Перемещение расписания

Существуют следующие два способа переноса расписания.

  • Повторное создание расписаний вручную на перенесенных виртуальных машинах. Этот процесс может занять много времени и сопровождаться ошибками. Этот метод подходит при наличии нескольких расписаний и виртуальных машин.
  • Экспорт и повторное развертывание расписаний с помощью шаблонов ARM.

Выполните следующие действия, чтобы экспортировать и повторно развернуть расписание в другом регионе Azure с помощью шаблона ARM.

  1. Войдите на портал Azure.

  2. Перейдите в исходную группу ресурсов, которая содержала виртуальные машины.

  3. На странице Обзор группы ресурсов в разделе Ресурсы выберите Показать скрытые типы.

  4. Выберите все ресурсы с типом microsoft.devtestlab/schedules.

  5. Выберите Экспортировать шаблон.

    Снимок экрана: скрытые ресурсы в группе ресурсов с выбранными расписаниями.

  6. На странице Экспортировать шаблон группы ресурсов выберите Развернуть.

  7. На странице Пользовательское развертывание выберите Изменить шаблон.

  8. В коде шаблона измените все экземпляры "location": "<old location>" на "location": "<new location>" и нажмите кнопку Сохранить.

  9. На странице Пользовательское развертывание введите значения, соответствующие целевой виртуальной машине:

    Имя. Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Выберите имя группы ресурсов.
    Регион Выберите расположение для расписания лаборатории. Например, центральная часть США.
    Имя расписания Должно быть глобально уникальное имя.
    VirtualMachine_xxx_externalId Должна быть целевая виртуальная машина.

    Снимок экрана: страница пользовательского развертывания с новыми значениями расположения для соответствующих параметров.

    Внимание

    Каждое расписание должно иметь глобально уникальное имя; необходимо изменить имя расписания для нового расположения.

  10. Выберите Проверить и создать, чтобы создать развертывание.

  11. После завершения развертывания убедитесь, что новое расписание правильно настроено на новой виртуальной машине.

Отмена или очистка

Если после развертывания нужно начать заново, можно удалить лабораторию и повторить действия, описанные в разделах Подготовка и Перемещение этой статьи.

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

Чтобы удалить лабораторию с помощью портала Azure:

  1. На портале Azure разверните меню слева, чтобы открыть меню служб, и выберите Лаборатории DevTest, чтобы просмотреть список лабораторий.

  2. Найдите целевую лабораторию, которую нужно удалить, и щелкните правой кнопкой мыши кнопку Дополнительно (...) справа от списка.

  3. Выберите Удалить и подтвердите действие.

Вы также можете очистить исходные расписания, если они больше не используются. Перейдите к исходной группе ресурсов расписания (где вы экспортировали шаблоны из шага 5 выше) и удалите ресурс расписания.

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

В этой статье вы переместили DevTest Labs из одного региона в другой и очистили исходные ресурсы. Дополнительные сведения о перемещении ресурсов между регионами и аварийном восстановлении в Azure см. по следующей ссылке: