Перемещение универсальной виртуальной машины из локальной среды в Azure Stack Hub

Внимание!

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

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

Универсальный образ диска — это образ, подготовленный с помощью Sysprep для удаления любой уникальной информации (например, учетных записей пользователей), что позволяет повторно использовать его для создания нескольких виртуальных машин. Универсальные виртуальные жесткие диски хорошо подходят для создания образов, которые облачный оператор Azure Stack Hub планирует использовать в качестве элементов Marketplace.

Перемещение изображения

Найдите раздел, который соответствует вашим потребностям при подготовке виртуального жесткого диска.

Выполните действия, описанные в разделе Подготовка виртуального жесткого диска Windows или VHDX к отправке в Azure , чтобы правильно обобщить виртуальный жесткий диск перед отправкой. Для Azure Stack Hub необходимо использовать виртуальный жесткий диск.

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

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

  1. Вы будете использовать модули PowerShell, найденные с Hyper-V. Активация Hyper-V устанавливает, поддерживающие модули PowerShell. Вы можете проверка, что у вас есть модуль, открыв PowerShell с запросом с повышенными привилегиями и выполнив следующий командлет:

    Get-Command -Module hyper-v
    

    Если у вас нет команд Hyper-V, см. статью Работа с Hyper-V и Windows PowerShell.

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

    get-vhd <path-to-your-VHD>
    

    Командлет вернет объект VHD и отобразит атрибуты, например:

    ComputerName            : YOURMACHINENAME
    Path                    : <path-to-your-VHD>
    VhdFormat               : VHD
    VhdType                 : Fixed
    FileSize                : 68719477248
    Size                    : 68719476736
    MinimumSize             : 32212254720
    LogicalSectorSize       : 512
    PhysicalSectorSize      : 512
    BlockSize               : 0
    ParentPath              :
    DiskIdentifier          : 3C084D21-652A-4C0E-B2D1-63A8E8E64C0C
    FragmentationPercentage : 0
    Alignment               : 1
    Attached                : False
    DiskNumber              :
    IsPMEMCompatible        : False
    AddressAbstractionType  : None
    Number                  :
    
  3. С помощью объекта VHD проверка, который соответствует требованиям для Azure Stack Hub.

    Кроме того, Azure Stack Hub поддерживает только образы из виртуальных машин поколения 1 (1).

  4. Если виртуальный жесткий диск несовместим с Azure Stack Hub, необходимо вернуться к исходному образу и Hyper-V, создать виртуальный жесткий диск, соответствующий требованиям, и отправить его. Чтобы свести к минимуму возможные повреждения в процессе отправки, используйте AzCopy.

Как исправить виртуальный жесткий диск

Для совместимости виртуального жесткого диска с Azure Stack Hub необходимо выполнить следующие требования.

VHD имеет фиксированный тип

Определение. Используйте get-vhd командлет для получения объекта VHD.
Исправление. Вы можете преобразовать VHDX-файл в VHD, динамически расширяющийся диск в диск фиксированного размера, но нельзя изменить поколение виртуальной машины. Используйте диспетчер Hyper-V или PowerShell для преобразования диска.

Виртуальный жесткий диск имеет минимальный виртуальный размер не менее 20 МБ

Определение. Используйте get-vhd командлет для получения объекта VHD.
Исправление. Используйте диспетчер Hyper-V или PowerShell для изменения размера диска.

Виртуальный жесткий диск выравнивается

Определение. Используйте get-vhd командлет для получения объекта VHD.
Исправление. Размер виртуальной машины должен быть кратным одному (1) МБ.

Виртуальный размер дисков должен соответствовать 1 МиБ. Если виртуальный жесткий диск является долей от 1 МиБ, необходимо изменить размер диска до кратного 1 МиБ. Диски, с размером равным долям МиБ, вызывают ошибки при создании образов из отправленного виртуального жесткого диска. Чтобы проверить размер, можно использовать командлет PowerShell Get-VHD, чтобы отобразить "Size", который должен быть кратен 1 МиБ в Azure, и "FileSize", который будет равен "Size" плюс 512 байтам для нижнего колонтитула VHD.

Используйте диспетчер Hyper-V или PowerShell для изменения размера диска.

Длина большого двоичного объекта VHD

Определение: используйте командлет для get-vhd отображения. Size
Исправление. Длина большого двоичного объекта VHD = виртуальный размер + длина нижнего колонтитула виртуального жесткого диска (512). Небольшой колонтитул в конце BLOB-объекта описывает свойства VHD-файла. Size значение должно быть кратным 1 МиБ в Azure, и FileSizeзначение , которое будет равно Size + 512 байт для нижнего колонтитула VHD.

Используйте диспетчер Hyper-V или PowerShell для изменения размера диска.

Виртуальные машины поколения 1

Определение. Чтобы проверить, относится ли виртуальная машина к поколению 1, используйте командлет Get-VM | Format-Table Name, Generation.
Исправление. Вам потребуется повторно создать виртуальную машину в гипервизоре (Hyper-V).

Отправка в учетную запись хранения

Вы можете отправить виртуальный жесткий диск с помощью портала или с помощью контейнера, созданного на портале, используйте AzCopy.

Портал для создания URL-адреса SAS и отправки виртуального жесткого диска

  1. Войдите на портал пользователя Azure Stack Hub.

  2. Выберите Учетные записи хранения и выберите существующую учетную запись хранения или создайте новую учетную запись хранения.

  3. Выберите Большие двоичные объекты в колонке учетной записи хранения для учетной записи хранения. Выберите Контейнер для создания контейнера.

  4. Введите имя контейнера, а затем выберите BLOB-объект (анонимный доступ на чтение только для больших двоичных объектов).

  5. Если вы собираетесь использовать AzCopy для отправки образа, а не портала, создайте маркер SAS. Выберите Подписанный URL-адрес в учетной записи хранения, а затем щелкните Создать SAS и строка подключения. Скопируйте URL-адрес SAS службы BLOB-объектов и запишите его. Этот URL-адрес будет использоваться при использовании AzCopy для отправки виртуального жесткого диска.

  6. Выберите контейнер и нажмите кнопку Отправить. Загрузите свой виртуальный жесткий диск.

AzCopy VHD

Используйте Обозреватель службы хранилища Azure или AzCopy, чтобы снизить вероятность повреждения виртуального жесткого диска в процессе отправки и ускорить отправку. Ниже описано, как использовать AzCopy на Windows 10 компьютере. AzCopy — это служебная программа командной строки, которую можно использовать для копирования больших двоичных объектов или файлов в учетную запись хранения или из нее.

  1. Если у вас не установлен AzCopy, установите AzCopy. Инструкции по скачиванию и началу работы с AzCopy см. в статье Начало работы с AzCopy. Запишите, где хранится двоичный файл. Вы можете добавить AzCopy в свой путь , чтобы использовать его из командной строки PowerShell.

  2. Откройте PowerShell, чтобы использовать AzCopy из оболочки.

  3. Используйте AzCopy для отправки виртуального жесткого диска в контейнер в учетной записи хранения.

    set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
    azcopy cp "/path/to/file.vhd" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS] --blob-type=PageBlob
    

Примечание

Отправьте виртуальный жесткий диск с помощью синтаксиса, аналогичного отправке одного файла в виртуальный каталог. Добавьте --blob-type=PageBlob , чтобы убедиться, что виртуальный жесткий диск по умолчанию передается в виде страничного BLOB-объекта, а не как блокировать .

Дополнительные сведения об использовании AzCopy и других средств хранения см. в статье Использование средств передачи данных в хранилище Azure Stack Hub.

Создание образа в Azure Stack Hub

  1. Войдите на портал пользователя Azure Stack Hub.

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

  2. На пользовательском портале выберите Все службы>Образы>Добавить.

  3. В разделе Создание образа:

    1. Введите имя изображения.

    2. Выберите Подписка.

    3. Создайте образ или добавьте его в группу ресурсов.

    4. Выберите расположение (регион) своего ASDK.

    5. Выберите тип ОС , соответствующий вашему образу.

    6. Нажмите кнопку Обзор , а затем перейдите к учетной записи хранения, контейнеру и виртуальному жесткому диску. Щелкните Выбрать.

    7. Выберите тип учетной записи.

      • Диски ценовой категории "Премиум" (SSD) поддерживаются твердотельными накопителями и обеспечивают согласованную производительность с низкой задержкой. Они обеспечивают оптимальное соотношение цены и производительности и идеально подходят для приложений с интенсивным вводом-выводом и для производственных рабочих нагрузок.
      • Диски уровня "Стандартный" (HDD) поддерживаются магнитными накопителями и предпочтительнее для приложений, где доступ к данным осуществляется редко. Диски, избыточные между зонами, поддерживаются хранилищем, избыточным между зонами (ZRS), которое реплицирует данные между несколькими зонами и доступно, даже если одна зона не работает.
    8. Выберите Чтение и запись для перехвата узла.

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

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

Дальнейшие действия

Общие сведения о перемещении виртуальной машины в Azure Stack Hub