Criar armazenamento de discos de VM no Azure Stack Hub

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

Descrição Geral

O Azure Stack Hub suporta a utilização de discos geridos e discos não geridos em VMs, como um sistema operativo (SO) e um disco de dados.

Os discos geridos simplificam a gestão de discos para VMs IaaS do Azure ao gerir as contas de armazenamento associadas aos discos da VM. Só tem de especificar o tamanho do disco de que precisa e o Azure Stack Hub cria e gere o disco automaticamente.

Os discos não geridos exigem que crie uma conta de armazenamento para armazenar os discos. Os discos que criar são referidos como discos de VM e são armazenados em contentores na conta de armazenamento.

Diretrizes de melhores práticas

Recomenda-se que utilize discos geridos para VMs para facilitar a gestão e o equilíbrio de capacidade. Não tem de preparar uma conta de armazenamento e contentores antes de utilizar discos geridos. Ao criar vários discos geridos, os discos são distribuídos em múltiplos volumes, o que ajuda a equilibrar a capacidade dos volumes.

Para discos não geridos, para melhorar o desempenho e reduzir os custos gerais, recomendamos que coloque cada disco não gerido num contentor separado. Embora possa colocar discos de SO e discos de dados no mesmo contentor, a melhor prática é que um contentor tenha um disco de SO ou um disco de dados, mas não ambos ao mesmo tempo.

Se adicionar um ou mais discos de dados a uma VM, utilize contentores adicionais como localização para armazenar estes discos. O disco do SO para VMs adicionais também deve estar nos seus próprios contentores.

Quando cria VMs, pode reutilizar a mesma conta de armazenamento para cada nova máquina virtual. Apenas os contentores que criar devem ser exclusivos.

Adicionar novos discos

A tabela seguinte resume como adicionar discos com o portal e com o PowerShell:

Método Opções
Portal do utilizador - Adicione novos discos de dados a uma VM existente. Os novos discos são criados pelo Azure Stack Hub.

- Adicione um ficheiro de disco (.vhd) existente a uma VM criada anteriormente. Para tal, tem de preparar o .vhd e, em seguida, carregar o ficheiro para o Azure Stack Hub.
PowerShell - Crie uma nova VM com um disco do SO e, ao mesmo tempo, adicione um ou mais discos de dados a essa VM.

Utilizar o portal para adicionar discos a uma VM

Por predefinição, quando utiliza o portal para criar uma VM para a maioria dos itens do marketplace, apenas o disco do SO é criado.

Depois de criar uma VM, pode utilizar o portal para:

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

Coloque cada disco não gerido que adicionar num contentor separado.

Utilizar 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, em seguida, Máquinas virtuais. Exemplo: dashboard da VM

  2. Selecione uma VM que tenha sido criada anteriormente a partir da lista.

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

  4. Para o disco de dados:

    • Introduza o LUN. O LUN tem de ser um número válido.
    • Selecione Criar disco. Captura de ecrã que mostra como criar um novo disco de dados.
  5. No painel Criar disco gerido :

    • Introduza o Nome do disco.
    • Selecione um Grupo de recursos existente ou crie um novo.
    • Selecione a Localização. Por predefinição, a localização está definida para o mesmo contentor que contém o disco do SO.
    • Selecione o Tipo de conta. Exemplo: Anexar um novo disco à vm

    Nota

    Os discos Premium (SSD) e os discos padrão (HDD) são suportados pela mesma infraestrutura de armazenamento no Azure Stack Hub. Proporcionam o mesmo desempenho.

    • Selecione o Tipo de origem.

      Crie um disco a partir de um instantâneo de outro disco, um blob numa conta de armazenamento ou crie um disco vazio.

      Instantâneo: selecione um instantâneo, se estiver disponível. O instantâneo tem de estar disponível na subscrição e localização da VM.

      Blob de armazenamento:

    • Selecione o Tamanho (GiB).

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

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

  6. Depois de o Azure Stack Hub criar o disco e o anexar à VM, o novo disco é listado nas definições do disco da VM em Discos de dados.

    Exemplo: Ver disco

Adicionar um disco de dados a partir de uma conta de armazenamento

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

  1. Selecione a conta de Armazenamento a utilizar.

  2. Selecione o Contentor onde pretende colocar o disco de dados. No painel Contentores , pode criar um novo contentor, se quiser. Em seguida, pode alterar a localização do novo disco para o seu próprio contentor. Quando utiliza um contentor separado para cada disco, distribui o posicionamento do disco de dados que melhora o desempenho.

  3. Selecione Selecionar para guardar a seleção.

    Captura de ecrã que mostra como selecionar um contentor.

Anexar um disco de dados existente a uma VM

  1. Preparar um ficheiro .vhd para utilização como disco de dados para uma VM. Carregue esse ficheiro .vhd para uma conta de armazenamento que utiliza com a VM à qual pretende anexar o ficheiro .vhd.

  2. Depois de carregar o ficheiro .vhd, está pronto para anexar o VHD a uma VM. No menu do lado esquerdo, selecione Máquinas virtuais.
    Captura de ecrã que mostra as máquinas virtuais selecionadas.

  3. Selecione 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 Ficheiro VHD. A página Contas de armazenamento é aberta.

    Exemplo: selecionar um ficheiro VHD

  6. Em Contas de armazenamento, selecione a conta a utilizar e, em seguida, selecione um contentor que contenha o ficheiro .vhd que carregou anteriormente. Selecione o ficheiro .vhd e, em seguida, selecione Selecionar para guardar a seleção.

    Exemplo: selecionar um contentor

  7. Em Anexar disco existente, o ficheiro que selecionou está listado em Ficheiro VHD. Atualize a definição colocação em cache do anfitrião do disco e, em seguida, selecione OK para guardar a nova configuração do disco para a VM.

    Exemplo: Anexar o ficheiro VHD

  8. Depois de o Azure Stack Hub criar o disco e o anexar à VM, o novo disco é listado nas definições de disco da VM em Discos de Dados.

    Exemplo: Concluir a anexação do disco

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

Pode utilizar o PowerShell para aprovisionar uma VM e adicionar novos discos de dados ou anexar um disco gerido pré-existente ou um ficheiro .vhd como um disco de dados.

O cmdlet Add-AzVMDataDisk adiciona um disco de dados a uma VM. Pode adicionar um disco de dados quando cria uma VM ou pode adicionar um disco de dados a uma VM existente. Para um disco não gerido, especifique o parâmetro VhdUri para distribuir os discos por diferentes contentores.

Adicionar discos de dados a uma nova VM

Os exemplos seguintes utilizam 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 utilizar discos geridos ou discos não geridos.

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

O script seguinte cria um objeto de VM e, em seguida, armazena-o na $VirtualMachine variável. Os comandos atribuem um nome e tamanho à VM e, em seguida, 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 geridos

Os três comandos seguintes adicionam discos de dados geridos à máquina virtual armazenada no $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 seguinte adiciona um disco do SO como um disco gerido à máquina virtual armazenada no $VirtualMachine.

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

Adicionar discos não geridos

Os três comandos seguintes atribuem caminhos de três discos de dados não geridos às $DataDiskVhdUri01variáveis , $DataDiskVhdUri02e $DataDiskVhdUri03 . Defina um nome de caminho diferente no URL para distribuir os discos por diferentes contentores:

$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 seguintes adicionam discos de dados à máquina virtual armazenada no $VirtualMachine. Cada comando especifica o nome e 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 seguintes comandos adicionam um disco de SO não gerido à máquina virtual armazenada no $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 nova máquina virtual

Utilize os seguintes comandos do PowerShell para definir a imagem do SO, 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 seguintes utilizam 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 com o nome VirtualMachine com o cmdlet Get-AzVM . O comando armazena a VM na $VirtualMachine variável:

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

Adicionar disco gerido

Os três comandos seguintes adicionam os discos de dados geridos à 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 gerido

Os três comandos seguintes atribuem caminhos para três discos de dados às $DataDiskVhdUri01variáveis , $DataDiskVhdUri02e $DataDiskVhdUri03 . Os diferentes nomes de caminhos nos URIs do VHD indicam contentores diferentes para a colocação 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 três comandos seguintes adicionam os discos de dados à VM armazenada na $VirtualMachine variável. Cada comando especifica o nome, a localização 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

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

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

Passos seguintes

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