Compartilhar via


Usar a imagem do Azure Marketplace para criar uma imagem de VM para o GPU do Azure Stack Edge Pro

APLICA-SE A: Sim, ao SKU do Pro GPUAzure Stack Edge Pro - GPUSim, ao SKU do Pro 2Azure Stack Edge Pro 2Sim, ao SKU do Pro RAzure Stack Edge Pro RSim, ao SKU do Mini RAzure Stack Edge Mini R

Para implantar as VMs no dispositivo GPU do Azure Stack Edge Pro, é necessário criar uma imagem de VM que poderá ser usada para criar VMs. Este artigo descreve as etapas necessárias para criar uma imagem de VM a partir de uma imagem do Azure Marketplace. Você pode usar essa imagem de VM para implantar VMs no dispositivo GPU do Azure Stack Edge Pro.

Fluxo de trabalho de imagem de VM

As etapas a seguir descrevem o fluxo de trabalho da imagem da VM usando um fluxo de trabalho do Azure Marketplace:

  1. Conecte o Azure Cloud Shell ou um cliente com a CLI do Azure instalada.
  2. Pesquise no Azure Marketplace e identifique a imagem preferencial.
  3. Crie um novo disco gerenciado a partir da imagem do Marketplace.
  4. Exporte um VHD do disco gerenciado para a conta de Armazenamento do Microsoft Azure.
  5. Limpe o disco gerenciado.

Para obter mais informações, acesse Implantar uma VM no dispositivo Azure Stack Edge Pro usando o Azure PowerShell.

Pré-requisitos

Para usar as imagens do Azure Marketplace para o Azure Stack Edge, verifique se você está conectado ao Azure de uma das maneiras a seguir.

Pesquisar imagens do Azure Marketplace

Identifique uma imagem específica do Azure Marketplace que deseja usar. O Azure Marketplace hospeda milhares de imagens de VMs.

Para encontrar algumas das imagens frequentemente mais usadas do Marketplace que correspondam aos seus critérios de pesquisa, execute o comando a seguir.

az vm image list --all [--publisher <Publisher>] [--offer <Offer>] [--sku <SKU>]

Os últimos três sinalizadores são opcionais, mas excluí-los retornará uma longa lista.

Alguns exemplos de consultas são:

#Returns all images of type "Windows Server"
az vm image list --all --publisher "MicrosoftWindowsserver" --offer "WindowsServer"

#Returns all Windows Server 2019 Datacenter images from West US published by Microsoft
az vm image list --all --location "westus" --publisher "MicrosoftWindowsserver" --offer "WindowsServer" --sku "2019-Datacenter"

#Returns all VM images from a publisher
az vm image list --all --publisher "Canonical"

Aqui está um exemplo de saída quando imagens de VMs de um determinado editor, oferta e SKU foram consultadas.

PS /home/user> az vm image list --all --publisher "Canonical" --offer "UbuntuServer" --sku "12.04.4-LTS"
[
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201402270",
    "version": "12.04.201402270"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201404080",
    "version": "12.04.201404080"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201404280",
    "version": "12.04.201404280"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201405140",
    "version": "12.04.201405140"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201406060",
    "version": "12.04.201406060"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201406190",
    "version": "12.04.201406190"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201407020",
    "version": "12.04.201407020"
  },
  {
    "offer": "UbuntuServer",
    "publisher": "Canonical",
    "sku": "12.04.4-LTS",
    "urn": "Canonical:UbuntuServer:12.04.4-LTS:12.04.201407170",
    "version": "12.04.201407170"
  }
]
PS /home/user>

Neste exemplo, selecionaremos o Windows Server 2019 Datacenter Core, versão 2019.0.20190410. Identificaremos essa imagem pelo URN (Número de Recurso Universal).

Lista de imagens do Marketplace

Imagens do Marketplace usadas com frequência

Abaixo está uma lista de URNs para algumas das imagens mais frequentemente usadas. Se você quiser apenas a versão mais recente de um determinado sistema operacional, o número da versão poderá ser substituído por “mais recente” no URN. Por exemplo, “MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest”.

SO SKU Versão URN
Windows Server 2019 Datacenter 17763.1879.2104091832 MicrosoftWindowsServer:WindowsServer:2019-Datacenter:17763.1879.2104091832
Windows Server 2019 Datacenter (disco pequeno de 30 GB) 17763.1879.2104091832 MicrosoftWindowsServer:WindowsServer:2019-Datacenter-smalldisk:17763.1879.2104091832
Windows Server 2019 Datacenter Core 17763.1879.2104091832 MicrosoftWindowsServer:WindowsServer:2019-Datacenter-Core:17763.1879.2104091832
Windows Server 2019 Datacenter Core (disco pequeno de 30 GB) 17763.1879.2104091832 MicrosoftWindowsServer:WindowsServer:2019-Datacenter-Core-smalldisk:17763.1879.2104091832
Área de Trabalho do Windows Windows 10 20H2 Pro 19042.928.2104091209 MicrosoftWindowsDesktop:Windows-10:20h2-pro:19042.928.2104091209
Ubuntu Server Canonical Ubuntu Server 18.04 LTS 18.04.202002180 Canonical:UbuntuServer:18.04-LTS:18.04.202002180
Ubuntu Server Canonical Ubuntu Server 16.04 LTS 16.04.202104160 Canonical:UbuntuServer:16.04-LTS:16.04.202104160

Criar um novo disco gerenciado a partir da imagem do Marketplace

Crie um Disco Gerenciado do Azure a partir da imagem do Marketplace escolhida.

  1. Defina alguns parâmetros.

    $urn = <URN of the Marketplace image> #Example: “MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest”
    $diskName = <disk name> #Name for new disk to be created
    $diskRG = <resource group> #Resource group that contains the new disk
    
  2. Crie o disco e gere uma URL de acesso do SAS.

    az disk create -g $diskRG -n $diskName --image-reference $urn
    $sas = az disk grant-access --duration-in-seconds 36000 --access-level Read --name $diskName --resource-group $diskRG
    $diskAccessSAS = ($sas | ConvertFrom-Json)[0].accessSas
    

Veja um exemplo de saída:

PS /home/user> $urn = “MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest”
PS /home/user> $diskName = "newmanageddisk1"
PS /home/user> $diskRG = "newrgmd1"
PS /home/user> az disk create -g $diskRG -n $diskName --image-reference $urn
{
  "burstingEnabled": null,
  "creationData": {
    "createOption": "FromImage",
    "galleryImageReference": null,
    "imageReference": {
      "id": "/Subscriptions/db4e2fdb-6d80-4e6e-b7cd-736098270664/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2019-Datacenter/Versions/17763.1935.2105080716",
      "lun": null
    },
    "logicalSectorSize": null,
    "sourceResourceId": null,
    "sourceUniqueId": null,
    "sourceUri": null,
    "storageAccountId": null,
    "uploadSizeBytes": null
  },
  "diskAccessId": null,
  "diskIopsReadOnly": null,
  "diskIopsReadWrite": 500,
  "diskMBpsReadOnly": null,
  "diskMBpsReadWrite": 100,
  "diskSizeBytes": 136367308800,
  "diskSizeGb": 127,
  "diskState": "Unattached",
  "encryption": {
    "diskEncryptionSetId": null,
    "type": "EncryptionAtRestWithPlatformKey"
  },
  "encryptionSettingsCollection": null,
  "extendedLocation": null,
  "hyperVGeneration": "V1",
  "id": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-736098270664/resourceGroups/newrgmd1/providers/Microsoft.Compute/disks/NewManagedDisk1",
  "location": "eastus",
  "managedBy": null,
  "managedByExtended": null,
  "maxShares": null,
  "name": "NewManagedDisk1",
  "networkAccessPolicy": "AllowAll",
  "osType": "Windows",
  "propertyUpdatesInProgress": null,
  "provisioningState": "Succeeded",
  "purchasePlan": null,
  "resourceGroup": "newrgmd1",
  "securityProfile": null,
  "shareInfo": null,
  "sku": {
    "name": "Premium_LRS",
    "tier": "Premium"
  },
  "supportsHibernation": null,
  "tags": {},
  "tier": "P10",
  "timeCreated": "2021-06-08T00:39:34.205982+00:00",
  "type": "Microsoft.Compute/disks",
  "uniqueId": "1a649ad4-3b95-471e-89ef-1d2ed1f51525",
  "zones": null
}

PS /home/user> $sas = az disk grant-access --duration-in-seconds 36000 --access-level Read --name $diskName --resource-group $diskRG
PS /home/user>  $diskAccessSAS = ($sas | ConvertFrom-Json)[0].accessSas
PS /home/user>

Exportar um VHD do disco gerenciado para o Armazenamento do Microsoft Azure

Essa etapa exporta um VHD do disco gerenciado para sua conta de armazenamento de blobs do Azure preferencial. Esse VHD poderá ser usado para criar imagens de VM no Azure Stack Edge.

  1. Defina a conta de armazenamento de destino onde o VHD será copiado.

    $storageAccountName = <destination storage account name>
    $containerName = <destination container name>
    $destBlobName = <blobname.vhd> #Blob that will be created, including .vhd extension
    $storageAccountKey = <storage account key>
    
  2. Copie o VHD para a conta de armazenamento de destino.

    $destContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
    Start-AzureStorageBlobCopy -AbsoluteUri $diskAccessSAS -DestContainer $containerName -DestContext $destContext -DestBlob $destBlobName
    

    A cópia do VHD leva vários minutos para ser concluída. Verifique se a cópia foi concluída antes de executar o seguinte comando. O campo de status exibe “Sucesso” quando concluído.

    Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName
    

Veja um exemplo de saída:

PS /home/user> $storageAccountName = "edgeazurevmeus"
PS /home/user> $containerName = "azurevmmp"
PS /home/user> $destBlobName = "newblobmp.vhd"
PS /home/user> $storageAccountKey = "n9sCytWLdTBz0F4Sco9SkPGWp6BJBtf7BJBk79msf1PfxJGQdqSfu6TboZWZ10xyZdc4y+Att08cC9B79jB0YA=="

PS /home/user> $destContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
PS /home/user> Start-AzureStorageBlobCopy -AbsoluteUri $diskAccessSAS -DestContainer $containerName -DestContext $destContext -DestBlob $destBlobName

   AccountName: edgeazurevmeus, ContainerName: azurevmmp

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------
newblobmp.vhd        PageBlob  -1                                             2021-06-08 00:50:10Z                                         False

PS /home/user> Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName

CopyId                  : 24a1e3f5-886a-490d-9dd7-562bb4acff58
CompletionTime          :
Status                  : Pending
Source                  : https://md-lfn221fppr2c.blob.core.windows.net/d4tb2hp5ff2q/abcd?sv=2018-03-28&sr=b&si=4f588db1-9aac-44d9-9607-35497cc08a7f
BytesCopied             : 696254464
TotalBytes              : 136367309312
StatusDescription       :
DestinationSnapshotTime :

PS /home/user> Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName

CopyId                  : 24a1e3f5-886a-490d-9dd7-562bb4acff58
CompletionTime          : 6/8/2021 12:57:26 AM +00:00
Status                  : Success
Source                  : https://md-lfn221fppr2c.blob.core.windows.net/d4tb2hp5ff2q/abcd?sv=2018-03-28&sr=b&si=4f588db1-9aac-44d9-9607-35497cc08a7f
BytesCopied             : 136367309312
TotalBytes              : 136367309312
StatusDescription       :
DestinationSnapshotTime :

Limpar o disco gerenciado

Para excluir o disco gerenciado que você criou, siga estas etapas:

az disk revoke-access --name $diskName --resource-group $diskRG
az disk delete --name $diskName --resource-group $diskRG --yes

A exclusão levará alguns minutos para ser concluída.

Próximas etapas

Implantar VMs no dispositivo GPU do Azure Stack Edge Pro.