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 elevado 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 latências de milissegundos de um dígito baixas 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 /datadrive
montagem, que pode ser verificado 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.