Tutorial: Criar e usar discos com o Conjunto de Dimensionamento de Máquina Virtual com o Azure PowerShell

Os Conjuntos de Dimensionamento de Máquina Virtual usam discos para armazenar o sistema operacional, os aplicativos e os dados da instância da VM. Ao criar e gerir um conjunto de dimensionamento, é importante escolher um tamanho de disco e a configuração adequados para a carga de trabalho esperada. Este tutorial abrange como criar e gerir discos de VM. Neste tutorial você aprende sobre:

  • Discos de SO e discos temporários
  • Discos de dados
  • Discos Standard e Premium
  • Desempenho do disco
  • Anexar e preparar discos de dados

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Discos do Azure predefinidos

Quando um conjunto de dimensionamento é criado ou dimensionado, são anexados automaticamente dois discos a cada instância de VM.

Disco do sistema operativo – os discos do sistema operativo podem ter o tamanho máximo de 2 TB e alojam o sistema operativo da instância de VM. O disco do SO está identificado como /dev/sda por predefinição. A configuração da colocação em cache do disco do SO está otimizada para desempenho do SO. Devido a esta configuração, o disco do SO não deve alojar aplicações nem dados. Para aplicações e dados, utilize discos de dados, que são descritos posteriormente neste artigo.

Disco temporário – os discos temporários utilizam uma unidade de estado sólido que está localizada no mesmo anfitrião do Azure da instância de VM. Estes são discos de alto desempenho e podem ser usados para operações como processamento temporário de dados. No entanto, se a instância de VM for movida para um novo anfitrião, todos os dados armazenados num disco temporário são removidos. O tamanho do disco temporário é determinado pelo tamanho da instância de VM. Os discos temporários estão identificados como /dev/sdb e têm um ponto de montagem de /mnt.

Discos de dados do Azure

Podem ser adicionados mais discos de dados se precisar de instalar aplicações e armazenar dados. Os discos de dados devem ser utilizados em qualquer situação em que se pretenda armazenamento de dados durável e reativo. Cada disco de dados tem a capacidade máxima de 4 TB. O tamanho da instância de VM determina quantos discos de dados podem ser anexados. Para cada vCPU de VM, podem ser expostos dois discos de dados.

Tipos de disco de VM

A tabela seguinte fornece uma comparação dos cinco tipos de disco para o ajudar a decidir qual utilizar.

Disco Ultra SSD Premium v2 SSD Premium SSD Standard HDD Standard
Tipo de disco SSD SSD SSD SSD HDD
Cenário As cargas de trabalho de E/S intensivas, como o SAP HANA, bases de dados de escalão superior (por exemplo, SQL e Oracle) e outras cargas de trabalho com bastantes transações. Cargas de trabalho sensíveis ao desempenho e produção que exigem consistentemente latência baixa e IOPS e débito elevados Cargas de trabalho confidenciais de produção e de desempenho Servidores Web, aplicações empresariais pouco utilizadas e dev/test Cópia de segurança, acesso pouco frequente e não crítico
Tamanho máximo do disco 65 536 GiB 65 536 GiB 32,767 GiB 32,767 GiB 32,767 GiB
Débito máximo 4000 MB/s 1200 MB/s 900 MB/s 750 MB/s 500 MB/s
IOPS Máximo 160 000 80.000 20 000 6000 2,000, 3,000*
Utilizável como Disco do SO? No No Sim Sim Sim

*Aplica-se apenas a discos com performance plus (pré-visualização) ativado.

Para obter um vídeo que aborda algumas diferenças de alto nível para os diferentes tipos de disco, bem como algumas maneiras de determinar o que afeta seus requisitos de carga de trabalho, consulte Opções de armazenamento em bloco com o Armazenamento em Disco do Azure e o Elastic SAN.

Criar e anexar discos

Pode criar e anexar discos quando criar um conjunto de dimensionamento ou com um conjunto de dimensionamento existente.

A partir da versão 2019-07-01da API, você pode definir o tamanho do disco do sistema operacional em um conjunto de escala de máquina virtual com a propriedade storageProfile.osDisk.diskSizeGb . Após o provisionamento, talvez seja necessário expandir ou reparticionar o disco para usar todo o espaço. Saiba mais sobre como expandir o volume em seu sistema operacional no Windows ou Linux.

Anexar discos durante a criação do conjunto de dimensionamento

Crie um conjunto de escala de máquina virtual com New-AzVmss. Quando lhe for pedido, forneça um nome de utilizador e palavra-passe para as instâncias de VM. Para distribuir o tráfego pelas instâncias de VM individuais, é também criado um balanceador de carga. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80, bem como permitir o tráfego de ambiente de trabalho remoto na porta TCP 3389 e a comunicação remota do PowerShell na porta TCP 5985.

São criados dois discos com o parâmetro -DataDiskSizeGb. O primeiro disco tem 64 GB de tamanho e o segundo disco tem 128 GB. Quando solicitado, forneça as suas próprias credenciais administrativas pretendidas para as instâncias de VM no conjunto de dimensionamento:

New-AzResourceGroup -Name "myResourceGroup" -Location "East US"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -OrchestrationMode "Flexible" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -DataDiskSizeInGb 64,128

A criação e configuração de todas as instâncias de VM e recursos do conjunto de dimensionamento demora alguns minutos.

Anexar um disco a um conjunto de dimensionamento existente

Também pode anexar discos a um conjunto de dimensionamento existente. Use o conjunto de escala criado na etapa anterior para adicionar outro disco com Add-AzVmssDataDisk. O exemplo seguinte anexa um disco de 128 GB adicional a um conjunto de dimensionamento existente:

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -CreateOption Empty `
  -Lun 2 `
  -DiskSizeGB 128

# Update the scale set to apply the change
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Como alternativa, se você quiser adicionar um disco de dados a uma instância individual em um conjunto de escala, use Add-AzVmssVMDataDisk.

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId 1
Add-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -LUN 2 -DiskSizeInGB 1 -CreateOption Empty -StorageAccountType Standard_LRS
Update-AzVmssVM -VirtualMachineScaleSetVM $VirtualMachine

Listar os discos anexados

Para exibir informações sobre discos anexados a um conjunto de escalas, use Get-AzVmss da seguinte maneira:

Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"

Na propriedade VirtualMachineProfile.StorageProfile, é apresentada a lista de DataDisks. São apresentadas informações sobre o tamanho do disco, a camada de armazenamento e o LUN (Número de Unidade Lógica). O resultado de exemplo seguinte detalha os três discos de dados anexados ao conjunto de dimensionamento:

DataDisks[0]                            :
  Lun                                   : 0
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 64
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[1]                            :
  Lun                                   : 1
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[2]                            :
  Lun                                   : 2
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS

Desligar um disco

Quando já não precisar de um determinado disco, pode desanexá-lo do conjunto de dimensionamento. O disco é removido de todas as instâncias de VM no conjunto de dimensionamento. Para desanexar um disco de um conjunto de escalas, use Remove-AzVmssDataDisk e especifique o LUN do disco. Os LUNs são mostrados na saída de Get-AzVmss na seção anterior. O exemplo seguinte desanexa o LUN 3 do conjunto de dimensionamento:

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Detach a disk from the scale set
Remove-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -Lun 2

# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Como alternativa, se você quiser remover um disco de dados para uma instância individual em um conjunto de escala, use Remove-AzVmssVMDataDisk.

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "c91dfbd9"
Remove-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -Lun 2
Update-AzVmssVM -VirtualMachineScaleSetVM -VM $VirtualMachine

Clean up resources (Limpar recursos)

Para remover o conjunto de escala e os discos, exclua o grupo de recursos e todos os seus recursos com Remove-AzResourceGroup. O parâmetro -Force confirma que pretende eliminar os recursos sem uma linha de comandos adicional para fazê-lo. O parâmetro -AsJob devolve o controlo à linha de comandos, sem aguardar a conclusão da operação.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Próximos passos

Neste tutorial, aprendeu a criar e utilizar discos com conjuntos de dimensionamento com o Azure PowerShell:

  • Discos de SO e discos temporários
  • Discos de dados
  • Discos Standard e Premium
  • Desempenho do disco
  • Anexar e preparar discos de dados

Avance para o próximo tutorial para saber como utilizar uma imagem personalizada para as instâncias de VM do conjunto de dimensionamento.