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


Хранение и совместное использование образов в Коллекции вычислений Azure

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

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

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

При использовании коллекции для хранения образов, создается несколько типов ресурсов:

Ресурс Description
Источник образа Это ресурс, который можно использовать для создания версии образа в коллекции. Источником образа может быть существующая виртуальная машина Azure (универсальная или специализированная), управляемый образ, моментальный снимок, VHD или версия образа в другой коллекции.
Галерея Как и Azure Marketplace, коллекция — это репозиторий для администрирования и совместного использования образов и других ресурсов, но здесь, в отличие от Azure Marketplace, доступ к коллекции контролируете вы.
Определение образа Определения образов создаются в коллекции и содержат сведения об образе и требованиях для создания с их помощью виртуальных машин. Эти сведения включают в себя: определение, относится ли этот образ к Windows или к Linux, заметки о выпуске, а также минимальные и максимальные требования к памяти. Это определение типа изображения.
Версия образа Версия образа используется для создания виртуальной машины с помощью коллекции. В зависимости от требований для вашей среды, у вас может быть несколько версий образа. Так же как и управляемый образ при использовании версии образа для создания виртуальной машины, версия образа используется для создания новых дисков для виртуальной машины. Версии образов можно использовать несколько раз.

Рисунок, показывающий, как использовать несколько версий образа в коллекции

Определения образов

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

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

Определение образа Publisher ПРЕДЛОЖЕНИЕ Sku
myImage1 Contoso Finance Раздел
myImage2 Contoso Finance Внешний интерфейс
myImage3 Тестирование Finance Внешний интерфейс

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

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

  • Состояние операционной системы: операционная система может быть универсальной или специализированной. Это обязательное поле.
  • Операционная система: Windows или Linux. Это обязательное поле.
  • Hyper-V generation (Поколение Hyper-V): вы можете указать, был ли этот образ создан на основе виртуального диска 1-го или 2-го поколения Hyper-V. Значение по умолчанию — поколение 1.

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

  • Описание: с помощью этого параметра можно предоставить подробную информацию о назначении образа. Например, у вас может быть определение образа для внешнего сервера с предварительно установленным приложением.

  • Лицензионное соглашение: можно указать, какое именно лицензионное соглашение действует для данного определения.

  • Заявление о конфиденциальности и Заметки о выпуске: вы можете добавлять в Azure заметки о выпуске и заявления о конфиденциальности и указывать в определении образа их URI.

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

  • Тег: при создании определений образов в них можно добавлять теги. Дополнительные сведения о тегах см. в статье Использование тегов для организации ресурсов.

  • Рекомендации относительно максимальных и минимальных требований к виртуальному ЦП и памяти: если для образа предусмотрены соответствующие рекомендации, эту информацию можно включить в определение.

  • Запрещенные типы дисков: здесь можно указать требования к подсистеме хранения виртуальной машины. Например, если образ не предназначен для работы на обычных HDD, их можно добавить в список запрещенных.

  • Сведения о плане покупки для образов из Marketplace — -PurchasePlanPublisher, -PurchasePlanName и -PurchasePlanProduct. Дополнительные сведения о плане покупки см. в статьях Поиск образов в Azure Marketplace и Предоставление сведений о плане покупки Azure Marketplace при создании образов.

  • Архитектура

    • Архитектура x64 или ARM64
  • Функции позволяют указать дополнительные функции и параметры SecurityType, поддерживаемые на изображении, в зависимости от типа коллекции:

    Функции Принятые значения Определение Поддерживается в
    IsHibernateSupported True, False Создайте виртуальные машины с поддержкой гибернации. Частный, прямой общий доступ, сообщество
    IsAcceleratedNetworkSupported True, False Создайте виртуальные машины с поддержкой ускорения сети. Если задано значение True в определении образа, запись виртуальных машин, которые не поддерживают ускоренную сеть, не поддерживается. Частный, прямой общий доступ, сообщество
    DiskControllerType ["SCSI", "NVMe"], ["SCSI"] Задайте для этого тип диска SCSI или NVMe. Виртуальные машины и диски NVMe могут быть записаны только в определениях образов, которые помечены для поддержки NVMe. Частный, прямой общий доступ, сообщество

    При указании SecurityType с помощью features параметра он ограничивает функции безопасности, включенные на виртуальной машине. Некоторые типы ограничены на основе типа коллекции, в которую они хранятся:

    SecurityType Определение Поддерживается в
    ConfidentialVMSupported Это универсальный образ 2-го поколения, который не содержит большой двоичный объект VMGS. Виртуальная машина 2-го поколения или конфиденциальная виртуальная машина можно создать из этого типа образа. Частный, прямой общий доступ, сообщество
    Конфиденциальная виртуальная машина Из этого типа образа можно создать только конфиденциальные виртуальные машины. Private
    TrustedLaunchSupported Это универсальный образ 2-го поколения, который не содержит большой двоичный объект VMGS. Виртуальная машина 2-го поколения или виртуальная машина TrustedLaunch можно создать из этого типа образа. Частный, прямой общий доступ, сообщество
    TrustedLaunch Из этого типа образа можно создать только виртуальную машину TrustedLaunch. Private
    TrustedLaunchAndConfidentialVmSupported Это универсальный образ 2-го поколения, который не содержит большой двоичный объект VMGS. Виртуальная машина 2-го поколения, виртуальная машина TrustedLaunch или Конфиденциальная виртуальная машина можно создать из этого типа образа. Частный, прямой общий доступ, сообщество

    Дополнительные сведения см. в примерах интерфейса командной строки для добавления функций определения изображений и SecurityType или примеров PowerShell.

    **КонфиденциальныйVM поддерживается только в регионах, где он доступен, можно найти поддерживаемые регионы здесь.

Версии образов

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

Свойства версии образа:

  • Номер версии. Используется в качестве имени версии образа. Он всегда находится в формате: MajorVersion.MinorVersion.Patch. Если при создании виртуальной машины вы указываете, что нужно использовать последнюю версию, выбирается последний образ на основе максимального основного номера версии, затем дополнительного номера версии, а затем номера исправления.
  • Источник. Источником может быть виртуальная машина, управляемый диск, моментальный снимок, управляемый образ или другая версия образа.
  • "Дата окончания жизненного цикла". Указывает дату окончания срока действия для версии образа. Даты окончания срока действия представлены для информации. Пользователи по-прежнему смогут создавать виртуальные машины из версий после даты окончания срока действия.

Универсальные и специализированные образы

Коллекция вычислений Azure поддерживает два состояния операционной системы. Как правило, перед созданием образа соответствующая виртуальная машина должна быть переведена в универсальное состояние. Универсализация — это процесс, в ходе которого из виртуальной машины удаляются сведения о конкретном компьютере и пользователе. Для Linux можно воспользоваться параметрами waagent -deprovision и -deprovision+user. Для Windows с этой целью используется средство Sysprep.

Специализированные виртуальные машины не прошли процесс удаления определенных сведений и учетных записей компьютера. Кроме того, виртуальные машины, созданные на основе специализированных образов, не связаны osProfile с ними. Это означает, что у специализированных образов есть как определенные преимущества, так и некоторые ограничения.

  • Виртуальные машины и масштабируемые наборы, созданные на базе специализированного образа, можно быстрее развернуть и запустить. Так как они создаются из источника, который уже прошел первую загрузку, виртуальные машины, созданные из этих образов, быстрее загружаются.
  • Для входа на виртуальные машины, созданные на основе специализированного образа, можно использовать учетные записи виртуальной машины, послужившей источником для данного образа.
  • У таких виртуальных машин имя компьютера совпадает с именем компьютера виртуальной машины, на базе которой был создан образ. Чтобы избежать конфликтов, это значение нужно изменить.
  • osProfile используется для передачи на виртуальную машину определенной конфиденциальной информации через secrets. Вследствие этого при работе с хранилищем ключей KeyVault, WinRM и другими функциями, которые используют secrets в составе osProfile, могут возникать определенные проблемы. В ряде случаев для обхода соответствующих ограничений можно использовать идентификаторы управляемых служб (MSI).

Примечание.

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

Обновление ресурсов

В ресурсы коллекции можно вносить определенные изменения после их создания. Список возможных изменений приведен в таблице ниже.

Коллекция вычислений Azure:

  • Description

Определение образа

  • Рекомендуемое число виртуальных ЦП
  • Рекомендуемая память
  • Description
  • Дата окончания жизненного цикла
  • ReleaseNotes

Версия образа

  • Количество региональных реплик
  • Целевые регионы
  • Исключить из последних
  • Дата окончания жизненного цикла

Совместное использование

Существует три основных способа совместного использования образов коллекции вычислений Azure в зависимости от того, с кем вы хотите поделиться:

Совместное использование: Люди Группы Субъект-служба Все пользователи в определенном клиенте подписки (или) Общедоступный доступ ко всем пользователям в Azure
Общий доступ к RBAC Да Да Да No No
RBAC + Общая коллекция Direct Да Да Да Да Нет
Коллекция RBAC + Community Да Да Да No Да

Разрешения RBAC, необходимые для создания образа ACG:

Образы ACG можно создавать пользователями из различных источников, включая виртуальные машины, диски и моментальные снимки и виртуальные жесткие диски. В этом разделе описаны различные разрешения пользователя, необходимые для создания образа коллекции вычислений Azure. Идентифицирует без необходимых разрешений не сможет создавать образы ACG.

  • Пользователям потребуется разрешение на запись на виртуальной машине для создания версии образа ACG.
  • Для azure SDK используйте свойства properties.storageProfile.source.virtualMachineId, для этого свойства требуется API версии 2023-07-03 или версии 1.4.0 (или более поздней) пакета SDK для .NET.
Тип источника Требуемые разрешения
Виртуальная машина Write
Диск или моментальный снимок Write
VHD Запись (listKeys)
Управляемый образ Читать
Изображение из коллекции Читать

Дополнительные сведения о встроенных ролях Azure см. в нашей документации для предоставления разрешений RBAC

Неглубокая репликация

При создании версии образа можно выбрать режим неглубокой репликации для разработки и тестирования. Неглубокая репликация пропускает копирование образа, поэтому версия образа готова быстрее. Однако это также означает, что вы не сможете развернуть большое количество виртуальных машин из этой версии образа. Это напоминает то, как работали старые управляемые образы.

Неглубокая репликация также может быть полезной, если у вас есть большие образы (до 32 ТБ), которые не часто развертываются. Так как исходный образ не копируется, можно использовать диски большего размера. Но их нельзя также использовать для одновременного развертывания большого количества виртуальных машин.

Чтобы задать образ для неглубокой репликации, используйте --replication-mode Shallow с интерфейсом командной строки Azure.

Поддержка пакета SDK

Следующие пакеты SDK поддерживают создание Коллекций вычислений Azure:

Шаблоны

Вы можете создать ресурс Коллекции вычислений Azure с помощью шаблонов. Существует несколько шаблонов быстрого запуска:

Часто задаваемые вопросы

Чтобы получить список всех ресурсов Коллекции вычислений Azure в разных подписках, к которым вы имеете доступ на портале Azure, выполните следующие действия:

  1. Откройте портал Azure.
  2. Прокрутите страницу вниз и выберите Все ресурсы.
  3. Выберите все подписки, из которых вы хотите включить в список все ресурсы.
  4. Найдите ресурсы типа Коллекция вычислений Azure.

Чтобы получить список всех ресурсов Коллекции вычислений Azure в разных подписках, к которым у вас есть доступ, выполните следующую команду в Azure CLI:

   az account list -otsv --query "[].id" | xargs -n 1 az sig list --subscription

Да. Существует 3 сценария, в зависимости от типов образов, которые у вас могут быть.

Сценарий 1. Если у вас есть управляемый образ, из него можно создать определение образа и версию образа. Дополнительные сведения см. в статье Создание и определение образа и версии образа.

Сценарий 2. Если у вас есть неуправляемый образ, можно создать управляемый образ из него, а затем создать определение образа и версию образа.

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

Можно ли создать версию образа из специализированного диска?

Да, вы можете создать виртуальную машину на основе специализированного образа.

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

Можно ли реплицировать версии образа в облаках, таких как Azure, управляемые 21Vianet или Azure Для Германии или Azure для государственных организаций Cloud?

Нет, вы не можете реплицировать версии образа в облаках.

Можно ли реплицировать версии образов между подписками?

Нет, можно реплицировать версии образов между регионами в рамках подписки и использовать их в других подписках с помощью RBAC.

Можно ли предоставлять общий доступ к версиям образов в клиентах Microsoft Entra?

Да, для предоставления общего доступа пользователям других клиентов можно использовать функции управления доступом на основе ролей (RBAC). Если же вы планируете использовать эту возможность в большом масштабе, ознакомьтесь с разделом о предоставлении доступа к образам коллекции другим клиентам Azure с помощью PowerShell или CLI.

Сколько времени занимает репликация версии образа между целевыми регионами?

Время репликации версии образа полностью зависит от размера образа и количества регионов, в которые он реплицируется. Однако рекомендуется сохранить изображение небольшим, а исходные и целевые регионы закрываются для получения наилучших результатов. Можно проверить состояние репликации, используя флажок ReplicationStatus.

В чем разница между исходным и целевым регионом?

Исходный регион — это регион, в котором будет создана версия образа. А целевые регионы — это регионы, в которых будет храниться копия вашей версии образа. Для каждой версии образа может быть только один исходный регион. Кроме того, убедитесь, что при создании версии образа вы передали расположение исходного региона как одно из целевых регионов.

Как указать исходный регион при создании версии образа?

При создании версии образа, чтобы указать исходный регион, можно использовать аргумент --location в интерфейсе командной строки и параметр -Location в PowerShell. Убедитесь, что управляемый образ, который вы используете в качестве базового образа для создания версии образа, находится в том же расположении, в котором планируется создать версию образа. Кроме того, убедитесь, что при создании версии образа вы передали расположение исходного региона как одно из целевых регионов.

Как задать число реплик версии образа, создаваемых в каждом регионе?

Задать число реплик версии образа, создаваемых в каждом регионе, можно двумя способами:

  1. Количество региональных реплик, которое указывает на число реплик, создаваемых на регион.
  2. Общее число реплик, которое используется по умолчанию для каждого региона, если не указано число региональных реплик.

Чтобы указать количество региональных реплик, передайте расположение вместе с количеством реплик, которые вы хотите создать в этом регионе: "Центрально-южная часть США = 2".

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

Чтобы указать общее количество реплик в интерфейсе командной строки Azure, используйте аргумент --replica-count в команде az sig image-version create.

Да, это возможно. Но мы рекомендуем вам держать группу ресурсов, коллекцию, определение образа и версию образа в одном расположении.

За использование Коллекции вычислений Azure плата не взимается, за исключением расходов на хранение версий образов и на исходящий трафик для репликации версий образов из исходного региона в целевые регионы.

Какую версию API следует использовать при создании образов?

Для работы с коллекцией, определениями образов и версиями образов рекомендуется использовать API версии 2018-06-01. Для работы с хранилищем, избыточным между зонами (ZRS), необходима версия 2019-03-01 или более поздняя.

Какую версию API следует использовать для создания виртуальной машины или масштабируемого набора виртуальных машин из версии образа?

Для развертываний виртуальной машины и масштабируемого набора виртуальных машин с помощью версии образа рекомендуется использовать API версии 2018-04-01 или более поздней.

Да, вы можете изменить для масштабируемого набора ссылку на исходный образ с управляемого образа на образ в Коллекции вычислений Azure, если в этих образах совпадают тип ОС, поколение Hyper-V и схема дисков данных.

Как обновить код для использования нового свойства и обеспечить точное предоставление разрешений во время создания образа виртуальной машины?

Для поля идентификатора виртуальной машины используйте поле VirtualMachineId в разделе GallerySource(GalleryImageVersionStorageProfile.GallerySource.VirtualMachineID). Для нового свойства требуется api-версия 2023-07-03 или версия 1.4.0 (или более поздней) пакета SDK для .NET.

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                GallerySource = new GalleryArtifactVersionFullSource()
                {
                    VirtualMachineId = new ResourceIdentifier(virtualMachineId),
                }
            },

Для виртуального жесткого диска в качестве источника используйте поле StorageAccountID в разделе GallerySource в разделе OSDiskImage или data disk Image(GalleryImageVersionStorageProfile.OSDiskImage.GallerySource.StorageAccountId). Для нового свойства требуется api-версия 2022-03-03

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                OSDiskImage = new GalleryOSDiskImage()
                {
                    GallerySource = new GalleryDiskImageSource()
                    {
                        StorageAccountId = new ResourceIdentifier(storageAccountId),
                        Uri = new Uri(blobUri),
                    }
                }
            },

Виртуальные машины, созданные на основе образа коллекции вычислений Azure, остаются не затронутыми из-за постоянных дисков. Однако операция горизонтального масштабирования VMSS завершится ошибкой, так как они полагаются на ссылку на исходный идентификатор образа, который будет потерян после удаления образа коллекции вычислений Azure.

Устранение неполадок

Сведения о решении типичных проблем с выполнением операций для ресурсов коллекции см. в руководстве по устранению неполадок.

Кроме того, вы сможете опубликовать вопрос с тегом azure-virtual-machines-images в разделе вопросов и ответов.

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

Узнайте, как развертывать образы с помощью Коллекции вычислений Azure.