Tutorial - Gerir discos do Azure com a CLI do Azure

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

As máquinas virtuais (VMs) do Azure utilizam discos para armazenar o sistema operativo, as aplicações e os dados. Ao criar uma VM, é importante escolher um tamanho de disco e uma configuração adequados à carga de trabalho esperada. Este tutorial mostra como implementar e gerir discos de VM. Vai obter informações sobre:

  • Discos de SO e discos temporários
  • Discos de dados
  • Discos Standard e Premium
  • Desempenho do disco
  • Expor e preparar os discos de dados
  • Instantâneos de disco

Discos do Azure predefinidos

Quando uma máquina virtual do Azure é criada, dois discos são automaticamente expostos à máquina virtual.

Disco do sistema operativo – os discos do sistema operativo podem ter o tamanho máximo de 2 TB e alojam o sistema operativo das VMs. 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 ser utilizado para aplicações nem para dados. Para aplicações e dados, utilize discos de dados, que são descritos posteriormente neste tutorial.

Disco temporário - os discos temporários utilizam uma unidade de estado sólido que está localizada no mesmo anfitrião da VM do Azure. Os discos temporários são de elevado desempenho e servem para operações como o processamento de dados temporários. No entanto, se a 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 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

Para instalar aplicações e armazenar dados, podem ser adicionados mais discos de dados. Os discos de dados devem ser utilizados em qualquer situação em que se pretenda armazenamento de dados durável e reativo. O tamanho da máquina virtual determina quantos discos de dados podem ser expostos a uma VM.

Tipos de disco de VM

O Azure oferece dois tipos de discos.

Discos Standard - são apoiados por HDDs e oferecem armazenamento económico, mantendo o desempenho. Os discos Standard são ideais para uma carga de trabalho de desenvolvimento e teste económica.

Discos Premium - apoiados por discos baseados em SSD, de alto desempenho e de baixa latência. São perfeitos para as VMs com carga de trabalho de produção. Os tamanhos de VM com um S no nome do tamanho normalmente suportam o Armazenamento Premium. Por exemplo, as VMs das séries DS, DSv2, GS e FS oferecem suporte ao armazenamento premium. Quando selecionar um tamanho de disco, o valor é arredondado para o tipo seguinte. Por exemplo, se o tamanho do disco for superior a 64 GB, mas inferior a 128 GB, o tipo de disco será P10.


Tamanhos SSD Premium P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Tamanho do disco em GiB 4 8 16 32 64 128 256 512 1,024 2048 4,096 8,192 16,384 32 767
IOPS provisionadas de base por disco 120 120 120 120 240 500 1100 2300 5,000 7500 7500 16 000 18 000 20 000
**IOPS provisionadas expandidas por disco N/A N/D N/D N/D N/D N/D N/D N/A 8,000 16 000 20 000 20 000 20 000 20 000
Taxa de transferência provisionada de base por disco 25 MB/s 25 MB/s 25 MB/s 25 MB/s 50 MB/s 100 MB/s 125 MB/s 150 MB/s 200 MB/s 250 MB/s 250 MB/s 500 MB/s 750 MB/s 900 MB/s
**Taxa de transferência provisionada expandida por disco N/A N/D N/D N/D N/D N/D N/D N/A 300 MB/s 600 MB/s 900 MB/s 900 MB/s 900 MB/s 900 MB/s
IOPS de intermitência máxima por disco 3500 3500 3500 3500 3500 3500 3500 3500 30,000* 30,000* 30,000* 30,000* 30,000* 30,000*
Taxa de transferência máxima de burst por disco 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s*
Duração máxima do burst 30 minutos 30 minutos 30 minutos 30 minutos 30 minutos 30 minutos 30 minutos 30 minutos Ilimitado* Ilimitado* Ilimitado* Ilimitado* Ilimitado* Ilimitado*
Elegível para reserva No No No No No No No Não Sim, até um ano Sim, até um ano Sim, até um ano Sim, até um ano Sim, até um ano Sim, até um ano

*Aplica-se apenas a discos com bursting a pedido ativado.
** Aplica-se apenas a discos com desempenho mais (pré-visualização) ativado.

Ao provisionar um disco de armazenamento premium, ao contrário do armazenamento padrão, você tem garantida a capacidade, IOPS e taxa de transferência desse disco. Por exemplo, se você criar um disco P50, o Azure provisionará capacidade de armazenamento de 4.095 GB, 7.500 IOPS e taxa de transferência de 250 MB/s para esse disco. Seu aplicativo pode usar toda ou parte da capacidade e do desempenho. Os discos SSD Premium são projetados para fornecer baixas latências de milissegundos de um dígito e IOPS e taxa de transferência de destino descritas na tabela anterior 99,9% do tempo.

Enquanto a tabela acima identifica o IOPS máximo por disco, um nível mais elevado de desempenho pode ser alcançado ao repartir vários discos de dados. Por exemplo, podem ser anexados 64 discos de dados à VM Standard_GS5. Se cada um destes discos for dimensionado como um P30, pode ser alcançado um máximo de 80.000 IOPS. Para obter informações detalhadas sobre o IOPS máximo por VM, veja Tipos e tamanhos de VMs.

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e prima Enter para executá-lo.

Criar e anexar discos

Os discos de dados podem ser criados e expostos no momento de criação da VM ou para uma VM existente.

Expor o disco durante a criação de VM

Crie um grupo de recursos com o comando az group create.

az group create --name myResourceGroupDisk --location eastus

Crie uma VM com o comando z vm create. O seguinte exemplo cria uma VM com o nome myVM, adiciona uma conta de utilizador com o nome azureuser e gera chaves SSH, caso não existam. O argumento --datadisk-sizes-gb é utilizado para especificar que um disco adicional deve ser criado e exposto à máquina virtual. Para criar e expor mais do que um disco, utilize uma lista delimitada por espaços dos valores de tamanho de disco. No exemplo seguinte, é criada uma VM com dois discos de dados, ambos de 128 GB. Porque os tamanhos de disco são de 128 GB, estes discos são configurados como P10s, que fornecem o máximo de 500 IOPS por disco.

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

Expor o disco a uma VM existente

Para criar e expor um disco novo a uma máquina virtual existente, utilize o comando az vm disk attach. O exemplo seguinte cria um disco premium, de 128 gigabytes de tamanho, e expõe-o à VM criada no último passo.

az vm disk attach \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name myDataDisk \
    --size-gb 128 \
    --sku Premium_LRS \
    --new

Preparar dados de discos

Depois de um disco ser exposto à máquina virtual, o sistema operativo tem de ser configurado para utilizar o disco. O exemplo seguinte mostra como configurar manualmente um disco. Este processo também pode ser automatizado através da inicialização da cloud, que é abordada num tutorial posterior.

Crie uma ligação SSH com a máquina virtual. Substitua o endereço IP de exemplo pelo IP público da máquina virtual.

ssh azureuser@10.101.10.10

Particione o disco com parted.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

Escreva um sistema de ficheiros na partição com o comando mkfs. Use partprobe para conscientizar o sistema operacional sobre a alteração.

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

Monte o disco novo para que fique acessível no sistema operativo.

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

O disco agora pode ser acessado através do ponto de montagem, que pode ser verificado /datadrive executando o df -h comando.

df -h | grep -i "sd"

A saída mostra a nova unidade montada no /datadrive.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

Para garantir que a unidade é remontada após uma reinicialização, tem de ser adicionada ao ficheiro etc/fstab. Para tal, obtenha o UUID do disco com o utilitário blkid.

sudo -i blkid

A saída apresenta o UUID da unidade, /dev/sdc1 neste caso.

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"

Nota

A edição incorreta do arquivo /etc/fstab pode resultar em um sistema não inicializável. Se não tiver a certeza, consulte a documentação de distribuição para obter mais informações sobre como editar corretamente este ficheiro. Também é recomendável que um backup do arquivo /etc/fstab seja criado antes da edição.

Abra o /etc/fstab arquivo em um editor de texto da seguinte maneira:

sudo nano /etc/fstab

Adicione uma linha semelhante à seguinte ao arquivo /etc/fstab , substituindo o valor UUID pelo seu próprio.

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  xfs    defaults,nofail   1  2

Quando terminar de editar o arquivo, use Ctrl+O para gravar o arquivo e Ctrl+X sair do editor.

Agora que o disco foi configurado, feche a sessão SSH.

exit

Tirar um instantâneo do disco

Quando tira um instantâneo de disco, o Azure cria uma cópia só de leitura de um ponto no tempo do disco. Os instantâneos de VM do Azure são úteis para guardar rapidamente o estado de uma VM antes de efetuar alterações de configuração. No caso de um problema ou erro, a VM pode ser restaurada usando um instantâneo. Quando uma VM tiver mais do que um disco, é tirado um instantâneo de cada disco independentemente dos outros. Para fazer cópias de segurança da aplicação, considere parar a VM antes de tirar instantâneos do disco. Em alternativa, utilize o Serviço Azure Backup, que permite efetuar cópias de segurança automatizadas enquanto a VM está em execução.

Criar instantâneo

Antes de criar um instantâneo, você precisa do ID ou nome do disco. Use az vm show para mostrar o ID do disco. Neste exemplo, o ID do disco é armazenado numa variável, para que possa ser utilizado num passo posterior.

osdiskid=$(az vm show \
   -g myResourceGroupDisk \
   -n myVM \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)

Agora que você tem o ID, use az snapshot create para criar um snapshot do disco.

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

Criar disco a partir de instantâneo

Esse instantâneo pode ser convertido em um disco usando az disk create, que pode ser usado para recriar a máquina virtual.

az disk create \
   --resource-group myResourceGroupDisk \
   --name mySnapshotDisk \
   --source osDisk-backup

Restaurar a máquina virtual a partir de instantâneo

Para demonstrar a recuperação da máquina virtual, exclua a máquina virtual existente usando az vm delete.

az vm delete \
--resource-group myResourceGroupDisk \
--name myVM

Crie uma máquina virtual nova a partir do disco do instantâneo.

az vm create \
    --resource-group myResourceGroupDisk \
    --name myVM \
    --attach-os-disk mySnapshotDisk \
    --os-type linux

Voltar a expor disco de dados

Todos os discos de dados têm de ser novamente expostos à máquina virtual.

Localize o nome do disco de dados usando o comando az disk list . Este exemplo coloca o nome do disco em uma variável chamada datadisk, que é usada na próxima etapa.

datadisk=$(az disk list \
   -g myResourceGroupDisk \
   --query "[?contains(name,'myVM')].[id]" \
   -o tsv)

Utilize o comando az vm disk attach para expor o disco.

az vm disk attach \
   –g myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

Próximos passos

Neste tutorial, aprendeu sobre os tópicos de discos de VM, como:

  • Discos de SO e discos temporários
  • Discos de dados
  • Discos Standard e Premium
  • Desempenho do disco
  • Expor e preparar os discos de dados
  • Instantâneos de disco

Avance para o próximo tutorial para saber mais sobre como automatizar a configuração da VM.