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


Создание образа виртуальной машины Azure Stack HCI с помощью образа в учетной записи служба хранилища Azure

Область применения: Azure Stack HCI версии 23H2

В этой статье описывается создание образов виртуальной машины для Azure Stack HCI с помощью исходных образов из учетной записи служба хранилища Azure. Вы можете создавать образы виртуальных машин с помощью портал Azure или Azure CLI, а затем использовать эти образы виртуальных машин для создания виртуальных машин Arc в Azure Stack HCI.

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

Перед началом работы убедитесь, что выполнены следующие предварительные требования.

  • Обязательно просмотрите и завершите предварительные требования.

  • Для пользовательских образов в учетной записи служба хранилища Azure у вас есть следующие дополнительные предварительные требования:

    • У вас должен быть виртуальный жесткий диск, загруженный в учетную запись служба хранилища Azure. Узнайте, как отправить образ VHD в учетной записи служба хранилища Azure.
    • При использовании VHDX:
      • Образ VHDX должен быть типом 2-го поколения и безопасной загрузкой.
      • Образ VHDX должен быть подготовлен с помощью sysprep /generalize /shutdown /oobe. Дополнительные сведения см. в разделе "Параметры командной строки Sysprep".
  • При использовании клиента для подключения к кластеру Azure Stack HCI см. статью "Подключение к Azure Stack HCI" через клиент Azure CLI.

  • Убедитесь, что у вас есть роль участника данных BLOB-объектов хранилища в учетной записи хранения, используемой для образа. Дополнительные сведения см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.

  • Убедитесь, что вы отправляете VHD или VHDX в качестве образа BLOB-объекта страницы в учетную запись хранения. Поддерживаются только образы BLOB-объектов страниц для создания образов виртуальных машин с помощью учетной записи хранения.

Добавление образа виртуальной машины из учетной записи служба хранилища Azure

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

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

Вход и установка подписки

  1. Подключитесь к серверу в системе Azure Stack HCI.

  2. Вход. Тип:

    az login --use-device-code
    
  3. Задайте подписку.

    az account set --subscription <Subscription ID>
    

Задайте некоторые параметры.

  1. Задайте подписку, группу ресурсов, расположение, путь к изображению в локальной общей папке и тип ОС для образа. Замените параметры соответствующими < > значениями.
$subscription = "<Subscription ID>"
$resource_group = "<Resource group>"
$location = "<Location for your Azure Stack HCI cluster>"
$osType = "<OS of source image>"
$imageName = "<VM image name>"
$imageSourcePath = "<path to the source image in the Storage account>"

Параметры описаны в следующей таблице.

Параметр Описание
subscription Группа ресурсов для кластера Azure Stack HCI, которую вы связываете с этим изображением.
resource_group Группа ресурсов для кластера Azure Stack HCI, которую вы связываете с этим изображением.
location Расположение для кластера Azure Stack HCI. Например, это может быть eastus.
imageName Имя образа виртуальной машины, созданного начиная с образа в локальной общей папке.
Примечание. Azure отклоняет все имена, содержащие ключевое слово Windows.
imageSourcePath Путь к URL-адресу SAS БОЛЬШОго двоичного объекта образа в учетной записи хранения. Дополнительные сведения см. в инструкциях по получении URL-адреса SAS БОЛЬШОго двоичного объекта образа в учетной записи хранения.
Примечание. Убедитесь, что все амперсанды в пути экранируются с двойными кавычками, и вся строка пути упаковывается в одинарные кавычки.
os-type Операционная система, связанная с исходным образом. Это может быть Windows или Linux.

Ниже приведен пример выходных данных.

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "myhci-rg"
PS C:\Users\azcli> $location = "eastus"
PS C:\Users\azcli> $osType = "Windows"
PS C:\Users\azcli> $imageName = "myhci-storacctimage"
PS C:\Users\azcli> $imageSourcePath = 'https://vmimagevhdsa1.blob.core.windows.net/vhdcontainer/Windows_InsiderPreview_ServerStandard_en-us_VHDX_25131.vhdx?sp=r"&"st=2022-08-05T18:41:41Z"&"se=2022-08-06T02:41:41Z"&"spr=https"&"sv=2021-06-08"&"sr=b"&"sig=X7A98cQm%2FmNRaHmTbs9b4OWVv%2F9Q%2FJkWDBHVPyAc8jo%3D'

Создание образа виртуальной машины из образа в учетной записи служба хранилища Azure

  1. Выберите настраиваемое расположение для развертывания образа виртуальной машины. Пользовательское расположение должно соответствовать пользовательскому расположению для кластера Azure Stack HCI. Получите идентификатор пользовательского расположения для кластера Azure Stack HCI. Выполните следующую команду:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for HCI cluster>" --query id -o tsv)
    
  2. Создайте образ виртуальной машины, начиная с указанного образа Marketplace. Обязательно укажите предложение, издатель, sku и версию для образа Marketplace.

    az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
    

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

    В этом примере путь к хранилищу был указан с помощью --storage-path-id флага и убедитесь, что данные рабочей нагрузки (включая виртуальную машину, образ виртуальной машины, диск данных, отличные от ОС), помещаются в указанный путь к хранилищу.

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

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

Ниже приведен пример выходных данных.

PS > $customLocationID=(az customlocation show --resource-group $resource_group --name "myhci-cl" --query id -o tsv)
PS C:\Users\azcli> az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "extendedLocation": {
    "name": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.ExtendedLocation/customLocations/myhci-cl",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-storacctimage",
  "location": "eastus",
  "name": "windos",
  "properties": {
    "identifier": null,
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {
        "downloadSizeInMB": 7876
      },
        "progressPercentage": 100,
      "provisioningStatus": {
        "operationId": "cdc9c9a8-03a1-4fb6-8738-7a8550c87fd1*31CE1EA001C4B3E38EE29B78ED1FD47CCCECF78B4CEA9E9A85C0BAEA5F6D80CA",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-storagepath",
    "version": null
  },
  "resourceGroup": "myhci-rg",
  "systemData": {
    "createdAt": "2023-11-03T20:17:10.971662+00:00",
    "createdBy": "[email protected]",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T21:08:01.190475+00:00",
    "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
    "lastModifiedByType": "Application"
  },
  "tags": null,
  "type": "microsoft.azurestackhci/galleryimages"
}
PS C:\Users\azcli>

Вывод списка образов виртуальных машин

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

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

  1. Запустите PowerShell с правами администратора.

  2. Задайте некоторые параметры.

    $subscription = "<Subscription ID associated with your cluster>"
    $resource_group = "<Resource group name for your cluster>"
    
  3. Список всех образов виртуальных машин, связанных с кластером. Выполните следующую команду:

    az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
    

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

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

    К этим изображениям относятся:

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

Ниже приведен пример выходных данных.

PS C:\Users\azcli> az stack-hci-vm image list --subscription "<Subscription ID>" --resource-group "myhci-rg"
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[
  {
    "extendedLocation": {
      "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
      "type": "CustomLocation"
    },
    "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/microsoft.azurestackhci/marketplacegalleryimages/w
inServer2022Az-01",
    "location": "eastus",
    "name": "winServer2022Az-01",
    "properties": {
      "hyperVGeneration": "V2",
      "identifier": {
        "offer": "windowsserver",
        "publisher": "microsoftwindowsserver",
        "sku": "2022-datacenter-azure-edition-core"
      },
      "imagePath": null,
      "osType": "Windows",
      "provisioningState": "Succeeded",
      "status": {
        "downloadStatus": {
          "downloadSizeInMB": 6710
        },
        "progressPercentage": 100,
        "provisioningStatus": {
          "operationId": "19742d69-4a00-4086-8f17-4dc1f7ee6681*E1E9889F0D1840B93150BD74D428EAE483CB67B0904F9A198C161AD471F670ED",
          "status": "Succeeded"
        }
      },
      "storagepathId": null,
      "version": {
        "name": "20348.2031.231006",
        "properties": {
          "storageProfile": {
            "osDiskImage": {
              "sizeInMB": 130050
            }
          }
        }
      }
    },
    "resourceGroup": "myhci-rg",
    "systemData": {
      "createdAt": "2023-10-30T21:44:53.020512+00:00",
      "createdBy": "[email protected]",
      "createdByType": "User",
      "lastModifiedAt": "2023-10-30T22:08:25.495995+00:00",
      "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
      "lastModifiedByType": "Application"
    },
    "tags": {},
    "type": "microsoft.azurestackhci/marketplacegalleryimages"
  }
]
PS C:\Users\azcli>

Дополнительные сведения об этой команде CLI см. в списке образов az stack-hci-vm.

Просмотр свойств образа виртуальной машины

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

Выполните следующие действия, чтобы использовать Azure CLI для просмотра свойств изображения:

  1. Запустите PowerShell с правами администратора.

  2. Задайте следующие параметры.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. Свойства изображения можно просматривать двумя способами: указать идентификатор или указать имя и группу ресурсов. При указании идентификатора образа Marketplace выполните следующие действия.

    1. Задайте следующий параметр.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-marketplaceimage"
      
    2. Выполните следующую команду, чтобы просмотреть свойства.

      az stack-hci-vm image show --ids $mktplaceImageID

      Ниже приведен пример выходных данных для этой команды:

      PS C:\Users\azcli> az stack-hci-vm image show --ids $mktplaceImageID
      Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
      {
        "extendedLocation": {
          "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
          "type": "CustomLocation"
        },
        "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-marketplaceimage",
        "location": "eastus",
        "name": "myhci-marketplaceimage",
        "properties": {
          "containerName": null,
          "hyperVGeneration": null,
          "identifier": null,
          "imagePath": null,
          "osType": "Windows",
          "provisioningState": "Succeeded",
          "status": null,
          "version": null
        },
        "resourceGroup": "myhci-rg",
        "systemData": {
          "createdAt": "2022-08-05T20:52:38.579764+00:00",
          "createdBy": "[email protected]",
          "createdByType": "User",
          "lastModifiedAt": "2022-08-05T20:52:38.579764+00:00",
          "lastModifiedBy": "[email protected]",
          "lastModifiedByType": "User"
        },
        "tags": null,
        "type": "microsoft.azurestackhci/galleryimages"
      }
      PS C:\Users\azcli> 
      

Удаление образа виртуальной машины

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

  1. Запустите PowerShell с правами администратора.

  2. Настройте следующие параметры:

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Markeplace image name>"    
    
  3. Удалите существующий образ виртуальной машины. Выполните следующую команду:

    az stack-hci-vm image delete --subscription $subscription --resource-group $resource_group --name $mktplaceImage --yes
    

Вы можете удалить изображение двумя способами:

  • Укажите имя и группу ресурсов.
  • Укажите идентификатор.

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

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "myhci-rg"
PS C:\Users\azcli> $mktplaceImage = "myhci-marketplaceimage"
PS C:\Users\azcli> az stack-hci-vm image delete --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Are you sure you want to perform this operation? (y/n): y
PS C:\Users\azcli> az stack-hci-vm image show --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ResourceNotFound: The Resource 'Microsoft.AzureStackHCI/marketplacegalleryimages/myhci-marketplaceimage' under resource group 'myhci-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
PS C:\Users\azcli>

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