Criar armazenamento em disco de VM no Azure Stack Hub

Este artigo descreve como criar armazenamento em disco de VM (máquina virtual) usando o portal do Azure Stack Hub ou o PowerShell.

Visão geral

O Azure Stack Hub dá suporte ao uso de discos gerenciados e discos não gerenciados em VMs, como um so (sistema operacional) e um disco de dados.

Os discos gerenciados simplificam o gerenciamento de disco para VMs IaaS do Azure gerenciando as contas de armazenamento associadas aos discos de VM. Você só tem que especificar o tamanho do disco necessário e o Azure Stack Hub criará e gerenciará o disco para você.

Discos não gerenciados exigem que você crie uma conta de armazenamento para armazenar os discos. Os discos criados são chamados de discos de VM e armazenados em contêineres na conta de armazenamento.

Diretrizes de práticas recomendadas

É recomendável que você use discos gerenciados para VMs para facilitar o gerenciamento e o equilíbrio de capacidade. Você não precisa preparar uma conta de armazenamento e contêineres antes de usar discos gerenciados. Ao criar vários discos gerenciados, eles são distribuídos em vários volumes, o que ajuda a balancear a capacidade dos volumes.

Para discos não gerenciados, para melhorar o desempenho e reduzir os custos gerais, recomendamos que você coloque cada disco não gerenciado em um contêiner separado. Embora você possa colocar discos do sistema operacional e discos de dados no mesmo contêiner, a melhor prática é que um contêiner deve conter um disco do sistema operacional ou um disco de dados, mas não ambos ao mesmo tempo.

Se você adicionar um ou mais discos de dados a uma VM, use contêineres adicionais como um local para armazenar esses discos. O disco do sistema operacional para VMs adicionais também deve estar em seus próprios contêineres.

Ao criar VMs, você pode reutilizar a mesma conta de armazenamento para cada nova máquina virtual. Somente os contêineres criados devem ser exclusivos.

Adicionando novos discos

A tabela a seguir resume como adicionar discos usando o portal e usando o PowerShell:

Método Opções
Portal do usuário – Adicionar novos discos de dados a uma VM existente. Novos discos são criados pelo Azure Stack Hub.

– Adicione um arquivo de disco existente (.vhd) a uma VM criada anteriormente. Para fazer isso, você deve preparar o .vhd e carregar o arquivo no Azure Stack Hub.
PowerShell – Crie uma nova VM com um disco do sistema operacional e, ao mesmo tempo, adicione um ou mais discos de dados a essa VM.

Usar o portal para adicionar discos a uma VM

Por padrão, quando você usa o portal para criar uma VM para a maioria dos itens do marketplace, somente o disco do sistema operacional é criado.

Depois de criar uma VM, você pode usar o portal para:

  • Crie um disco de dados e anexe-o à VM.
  • Carregue um disco de dados existente e anexe-o à VM.

Coloque cada disco não gerenciado que você adicionar em um contêiner separado.

Usar o portal para criar e anexar um novo disco de dados

  1. No portal, selecione Todos os serviços e, em seguida, Computação e Máquinas virtuais. Exemplo: VM dashboard

  2. Selecione uma VM que foi criada anteriormente na lista.

  3. Para a VM, selecione Discos e Adicionar disco de dados. Captura de tela que mostra como anexar um novo disco à VM.

  4. Para o disco de dados:

    • Insira o LUN. O LUN deve ser um número válido.
    • Selecione Criar disco. Captura de tela que mostra como criar um disco de dados.
  5. Na folha Criar disco gerenciado :

    • Insira o Nome do disco.
    • Selecione um grupo de recursos existente ou crie um novo.
    • Selecione o Local. Por padrão, o local é definido como o mesmo contêiner que contém o disco do sistema operacional.
    • Selecione o Tipo de conta. Exemplo: anexar um novo disco à vm

    Observação

    Discos Premium (SSD) e HDD (discos standard) são apoiados pela mesma infraestrutura de armazenamento no Azure Stack Hub. Eles fornecem o mesmo desempenho.

    • Selecione o Tipo de origem.

      Crie um disco de um instantâneo de outro disco, um blob em uma conta de armazenamento ou crie um disco vazio.

      Instantâneo: selecione uma instantâneo, se ela estiver disponível. O instantâneo deve estar disponível na assinatura e no local da VM.

      Blob de armazenamento:

      • Adicione o URI do blob de armazenamento que contém a imagem de disco.
      • Selecione Procurar para abrir a folha contas de armazenamento. Para obter instruções, consulte Adicionar um disco de dados de uma conta de armazenamento.
      • Selecione o tipo de sistema operacional da imagem: Windows, Linux ou Nenhum (disco de dados).
    • Selecione o Tamanho (GiB).

      Os custos de disco aumentam com base no tamanho do disco.

    • Selecione Criar. O Azure Stack Hub cria e valida o disco gerenciado.

  6. Depois que o Azure Stack Hub cria o disco e o anexa à VM, o novo disco é listado nas configurações de disco da VM em Discos de dados.

    Exemplo: Exibir disco

Adicionar um disco de dados de uma conta de armazenamento

Para obter mais informações sobre como trabalhar com contas de armazenamento no Azure Stack Hub, consulte Introdução ao armazenamento do Azure Stack Hub.

  1. Selecione a Conta de armazenamento a ser usada.

  2. Selecione o Contêiner no qual você deseja colocar o disco de dados. Na folha Contêineres , você pode criar um novo contêiner, se desejar. Em seguida, você pode alterar o local do novo disco para seu próprio contêiner. Ao usar um contêiner separado para cada disco, você distribui o posicionamento do disco de dados que melhora o desempenho.

  3. Escolha Selecionar para salvar a seleção.

    Captura de tela que mostra como selecionar um contêiner.

Anexar um disco de dados existente a uma VM

  1. Prepare um arquivo .vhd para uso como disco de dados para uma VM. Carregue esse arquivo .vhd em uma conta de armazenamento que você usa com a VM à qual deseja anexar o arquivo .vhd.

  2. Depois que o arquivo .vhd for carregado, você estará pronto para anexar o VHD a uma VM. No menu à esquerda, selecione Máquinas virtuais.
    Captura de tela que mostra as máquinas virtuais selecionadas.

  3. Escolha a VM na lista.

  4. Na página da VM, selecione Discos e, em seguida, selecione Anexar existente.

    Exemplo: anexar um disco existente

  5. Na página Anexar disco existente , selecione Arquivo VHD. A página Contas de armazenamento é aberta.

    Exemplo: selecionar um arquivo VHD

  6. Em Contas de armazenamento, selecione a conta a ser usada e, em seguida, escolha um contêiner que contém o arquivo .vhd que você carregou anteriormente. Selecione o arquivo .vhd e escolha Selecionar para salvar a seleção.

    Exemplo: selecionar um contêiner

  7. Em Anexar disco existente, o arquivo selecionado está listado em Arquivo VHD. Atualize a configuração cache do host do disco e selecione OK para salvar a nova configuração de disco para a VM.

    Exemplo: Anexar o arquivo VHD

  8. Depois que o Azure Stack Hub cria o disco e o anexa à VM, o novo disco é listado nas configurações de disco da VM em Discos de Dados.

    Exemplo: concluir a anexação de disco

Usar o PowerShell para adicionar vários discos a uma VM

Você pode usar o PowerShell para provisionar uma VM e adicionar novos discos de dados ou anexar um disco gerenciado pré-existente ou um arquivo .vhd como um disco de dados.

O cmdlet Add-AzVMDataDisk adiciona um disco de dados a uma VM. Você pode adicionar um disco de dados ao criar uma VM ou adicionar um disco de dados a uma VM existente. Para um disco não gerenciado, especifique o parâmetro VhdUri para distribuir os discos para contêineres diferentes.

Adicionar discos de dados a uma nova VM

Os exemplos a seguir usam comandos do PowerShell para criar uma VM com três discos de dados. Os comandos são fornecidos com várias partes devido às pequenas diferenças ao usar discos gerenciados ou discos não gerenciados.

Criar recursos de rede e configuração de máquina virtual

O script a seguir cria um objeto de VM e o armazena na $VirtualMachine variável . Os comandos atribuem um nome e um tamanho à VM e criam os recursos de rede (rede virtual, sub-rede, adaptador de rede virtual, NSG e endereço IP público) para a VM.

# Create new virtual machine configuration
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine" `
                                      -VMSize "Standard_A2"

# Set variables
$rgName = "myResourceGroup"
$location = "local"

# Create a subnet configuration
$subnetName = "mySubNet"
$singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24

# Create a vnet configuration
$vnetName = "myVnetName"
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
                                  -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet

# Create a public IP
$ipName = "myIP"
$pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
                                  -AllocationMethod Dynamic

# Create a network security group configuration
$nsgName = "myNsg"
$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
                                                -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
                                                -SourceAddressPrefix Internet -SourcePortRange * `
                                                -DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
                                       -Name $nsgName -SecurityRules $rdpRule

# Create a NIC configuration
$nicName = "myNicName"
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName `
                                   -Location $location -SubnetId $vnet.Subnets[0].Id `
                                   -NetworkSecurityGroupId $nsg.Id -PublicIpAddressId $pip.Id

Adicionar discos gerenciados

Os três comandos a seguir adicionam discos de dados gerenciados à máquina virtual armazenada em $VirtualMachine. Cada comando especifica o nome e as propriedades adicionais do disco.

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 `
                                        -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 `
                                        -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk3' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 `
                                        -CreateOption Empty

O comando a seguir adiciona um disco do sistema operacional como um disco gerenciado à máquina virtual armazenada em $VirtualMachine.

# Set OS Disk
$osDiskName = "osDisk"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $osDiskName  `
                                      -CreateOption FromImage -Windows

Adicionar discos não gerenciados

Os próximos três comandos atribuem caminhos de três discos de dados não gerenciados às $DataDiskVhdUri01variáveis , $DataDiskVhdUri02e $DataDiskVhdUri03 . Defina um nome de caminho diferente na URL para distribuir os discos para contêineres diferentes:

$DataDiskVhdUri01 = "https://contoso.blob.local.azurestack.external/test1/data1.vhd"
$DataDiskVhdUri02 = "https://contoso.blob.local.azurestack.external/test2/data2.vhd"
$DataDiskVhdUri03 = "https://contoso.blob.local.azurestack.external/test3/data3.vhd"

Os três comandos a seguir adicionam discos de dados à máquina virtual armazenada em $VirtualMachine. Cada comando especifica o nome e as propriedades adicionais do disco. O URI de cada disco é armazenado em $DataDiskVhdUri01, $DataDiskVhdUri02e $DataDiskVhdUri03.

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 `
                                        -VhdUri $DataDiskVhdUri01 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 `
                                        -VhdUri $DataDiskVhdUri02 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk3' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 `
                                        -VhdUri $DataDiskVhdUri03 -CreateOption Empty

Os comandos a seguir adicionam um disco do sistema operacional não gerenciado à máquina virtual armazenada em $VirtualMachine.

# Set OS Disk
$osDiskUri = "https://contoso.blob.local.azurestack.external/vhds/osDisk.vhd"
$osDiskName = "osDisk"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $osDiskName -VhdUri $osDiskUri `
                                      -CreateOption FromImage -Windows

Criar uma nova máquina virtual

Use os seguintes comandos do PowerShell para definir a imagem do sistema operacional, adicionar a configuração de rede à VM e, em seguida, iniciar a nova VM.

#Create the new VM
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName VirtualMachine -ProvisionVMAgent | `
                  Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
                  -Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nic.Id

New-AzVM -ResourceGroupName $rgName -Location $location -VM $VirtualMachine

Adicionar discos de dados a uma VM existente

Os exemplos a seguir usam comandos do PowerShell para adicionar três discos de dados a uma VM existente:

Obter máquina virtual

O primeiro comando obtém a VM chamada VirtualMachine usando o cmdlet Get-AzVM . O comando armazena a VM na $VirtualMachine variável:

$VirtualMachine = Get-AzVM -ResourceGroupName "myResourceGroup" `
                                -Name "VirtualMachine"

Adicionar disco gerenciado

Os próximos três comandos adicionam os discos de dados gerenciados à VM armazenada na $VirtualMachine variável. Cada comando especifica o nome e as propriedades adicionais do disco.

Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk1" -Lun 0 `
                      -Caching ReadOnly -DiskSizeinGB 10 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk2" -Lun 1 `
                      -Caching ReadOnly -DiskSizeinGB 11 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk3" -Lun 2 `
                      -Caching ReadOnly -DiskSizeinGB 12 -CreateOption Empty

Adicionar disco não gerenciado

Os próximos três comandos atribuem caminhos para três discos de dados às $DataDiskVhdUri01variáveis , $DataDiskVhdUri02e $DataDiskVhdUri03 . Os diferentes nomes de caminho nos URIs VHD indicam contêineres diferentes para o posicionamento do disco:

$DataDiskVhdUri01 = "https://contoso.blob.local.azurestack.external/test1/data1.vhd"
$DataDiskVhdUri02 = "https://contoso.blob.local.azurestack.external/test2/data2.vhd"
$DataDiskVhdUri03 = "https://contoso.blob.local.azurestack.external/test3/data3.vhd"

Os próximos três comandos adicionam os discos de dados à VM armazenada na $VirtualMachine variável. Cada comando especifica o nome, o local e as propriedades adicionais do disco. O URI de cada disco é armazenado em $DataDiskVhdUri01, $DataDiskVhdUri02e $DataDiskVhdUri03.

Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk1" `
                      -VhdUri $DataDiskVhdUri01 -LUN 0 `
                      -Caching ReadOnly -DiskSizeinGB 10 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk2" `
                      -VhdUri $DataDiskVhdUri02 -LUN 1 `
                      -Caching ReadOnly -DiskSizeinGB 11 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk3" `
                      -VhdUri $DataDiskVhdUri03 -LUN 2 `
                      -Caching ReadOnly -DiskSizeinGB 12 -CreateOption Empty

Atualizar o estado da máquina virtual

Esse comando atualiza o estado da VM armazenada em $VirtualMachine :-ResourceGroupName

Update-AzVM -ResourceGroupName "myResourceGroup" -VM $VirtualMachine

Próximas etapas

Para saber mais sobre as VMs do Azure Stack Hub, confira Considerações sobre Máquinas Virtuais no Azure Stack Hub.