Tutorial: Criar e usar discos com um conjunto de dimensionamento de máquinas virtuais com o Azure PowerShell

Os Conjuntos de Dimensionamento de Máquinas Virtuais usam discos para armazenar o sistema operacional da instância de VM, os aplicativos e os dados. Ao criar e gerenciar um conjunto de dimensionamento, é importante escolher um tamanho e uma configuração de disco apropriados para a carga de trabalho esperada. Este tutorial aborda como criar e gerenciar os discos de VM. Neste tutorial, você aprenderá:

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

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

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Screenshot that shows the Cloud Shell button in the Azure portal

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 o comando.

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

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

Discos padrão do Azure

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

Disco do sistema operacional – os discos do sistema operacional podem ser dimensionados para até 2 TB e hospedar o sistema operacional da instância de VM. O disco do sistema operacional é rotulado /dev/sda por padrão. A configuração de cache do disco do SO é otimizada para desempenho do SO. Devido a essa configuração, o disco do sistema operacional não deve hospedar aplicativos ou dados. Para aplicativos e dados, utilize um disco de dados, que é detalhado posteriormente neste artigo.

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

Discos de dados do Azure

Outros discos de dados podem ser adicionados caso você precise instalar aplicativos e armazenar dados. Os discos de dados devem ser usados em qualquer situação onde o armazenamento de dados durável e responsivo é desejado. Cada disco de dados tem uma capacidade máxima de 4 TB. O tamanho da instância de VM determina quantos discos de dados podem ser anexados. Para cada vCPU da VM, podem ser anexados dois discos de dados.

Tipos de disco da máquina virtual

A tabela a seguir fornece uma comparação dos cinco tipos de disco para ajudar você a decidir qual usar.

Disco Ultra SSD Premium v2 SSD Premium SSD Standard HDD Standard
Tipo de disco SSD SSD SSD SSD HDD
Cenário Cargas de trabalho de E/S intensiva, como SAP HANA, bancos de dados de camada superior (por exemplo, SQL, Oracle) e outras cargas de trabalho de transações pesadas. Cargas de trabalho sensíveis à produção e ao desempenho que exigem consistentemente baixa latência e alta IOPS e taxa de transferência Cargas de trabalho sensíveis à produção e ao desempenho Servidores Web, aplicativos empresariais pouco usados e desenvolvimento/teste Backup, não crítico, acesso não frequente
Tamanho máximo do disco 65.536 GiB 65.536 GiB 32.767 GiB 32.767 GiB 32.767 GiB
Taxa de transferência máxima 4\.000 MB/s 1\.200 MB/s 900 MB/s 750 MB/s 500 MB/s
IOPS Máxima 160.000 80.000 20.000 6.000 2.000, 3.000*
Utilizável como disco do sistema operacional? No No Sim Sim Yes

*Aplica-se apenas a discos com desempenho otimizado (versão prévia) habilitado.

Para 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, confira Bloquear opções de armazenamento com o Armazenamento em Disco do Azure e o Elastic SAN.

Criar e anexar discos

Você pode criar e anexar discos ao criar um conjunto de dimensionamento ou com um conjunto de dimensionamento existente.

Desde a versão 2019-07-01 da API, é possível definir o tamanho do disco do sistema operacional em um conjunto de dimensionamento de máquinas virtuais com a propriedade storageProfile.osDisk.diskSizeGb. Após o provisionamento, talvez seja necessário expandir ou reparticionar o disco para uso do espaço inteiro. Saiba mais sobre como expandir o volume em seu sistema operacional em Windows ou Linux.

Anexar discos na criação do conjunto de dimensionamento

Crie um conjunto de dimensionamento de máquinas virtuais com New-AzVmss. Quando solicitado, forneça um nome de usuário e senha para as instâncias da VM. Para distribuir o tráfego para as instâncias de VM individuais, um balanceador de carga também é criado. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80, além de permitir o tráfego de área de trabalho remota na porta TCP 3389 e comunicação remota do PowerShell na porta TCP 5985.

Dois discos são criados com o parâmetro -DataDiskSizeGb. É o primeiro disco tem 64 GB de tamanho e o segundo, 128 GB. Quando solicitado, forneça suas próprias credenciais administrativas desejadas 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

Leva alguns minutos para criar e configurar todos os recursos e as instâncias de VM do conjunto de dimensionamento.

Anexar um disco ao conjunto de dimensionamento existente

Você também pode anexar discos a um conjunto de dimensionamento existente. Use o conjunto de dimensionamento criado na etapa anterior para adicionar outro disco com Add-AzVmssDataDisk. O exemplo a seguir anexa um disco adicional de 128 GB em 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 desejar adicionar um disco de dados a uma instância individual em um conjunto de dimensionamento, use Add-AzVMDataDisk.

$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 discos anexados

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

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

Na propriedade VirtualMachineProfile.StorageProfile, é exibida a lista DataDisks. São exibidas informações sobre o tamanho do disco, a camada de armazenamento e o LUN (número de unidade lógica). A saída de exemplo abaixo 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

Desanexar um disco

Quando não precisar mais de determinado disco, você poderá 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 dimensionamento, 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 a seguir 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 desejar remover um disco de dados para uma instância individual em um conjunto de dimensionamento, use Remove-AzVMDataDisk.

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

Limpar os recursos

Para remover o conjunto de dimensionamento e os discos, exclua o grupo de recursos e todos os seus recursos com Remove-AzResourceGroup. O parâmetro -Force confirma que você deseja excluir os recursos sem um prompt adicional para fazer isso. O parâmetro -AsJob retorna o controle ao prompt sem aguardar a conclusão da operação.

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

Próximas etapas

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

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

Siga para o próximo tutorial para aprender a usar uma imagem personalizada para suas instâncias de VM do conjunto de dimensionamento.