Tutorial – Gerenciar discos do Azure com o Azure CLI
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Máquinas virtuais (VMs) do Azure usam discos para armazenar o sistema operacional, aplicativos e dados. Ao criar uma VM, é importante escolher um tamanho de disco e a configuração apropriada para a carga de trabalho esperada. Este tutorial mostra como implantar e gerenciar os discos de VM. Você saberá mais sobre:
- Discos de sistema operacional e discos temporários
- Discos de dados
- Discos Standard e Premium
- Desempenho do disco
- Anexar e preparar os discos de dados
- Instantâneos de disco
Discos padrão do Azure
Quando uma máquina virtual do Azure é criada, dois discos são automaticamente anexados à máquina virtual.
Disco do sistema operacional - Os discos do sistema operacional podem ser dimensionados para até 2 TB e hospedar o sistema operacional das máquinas virtuais. 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 ser usado para aplicativos ou dados. Para aplicativos e dados, utilize um disco de dados, que é detalhado posteriormente neste tutorial.
Disco temporário - Discos temporários utilizam uma unidade de estado sólido localizada no mesmo host do Azure que a máquina virtual. Os discos temporários são altamente eficazes e podem ser usados para operações como o processamento de dados temporário. No entanto, se a 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 máquina virtual. Os discos temporários são rotulados /dev/sdb e têm um ponto de montagem de /mnt.
Discos de dados do Azure
Para instalar aplicativos e dados de armazenamento, outros discos de dados podem ser adicionados. Os discos de dados devem ser usados em qualquer situação onde o armazenamento de dados durável e responsivo é desejado. O tamanho da máquina virtual determina quantos discos de dados podem ser anexados a uma VM.
Tipos de disco da máquina virtual
O Azure fornece dois tipos de discos.
Discos Standard - apoiados por HDDs e oferecem armazenamento econômico e eficaz. Os discos Standard são ideais para uma carga de trabalho econômica de desenvolvimento e teste.
Discos Premium – apoiados por disco de baixa latência e alto desempenho baseado em SSD. Perfeitos para VMs que executam carga de trabalho de produção. Os tamanhos de VM com um S no nome do tamanho normalmente são compatíveis com o Armazenamento Premium. Por exemplo, as VMs das séries DS, DSv2, GS e FS são compatíveis com o Armazenamento Premium. Ao escolher o tamanho de um disco, o valor é arredondado para o tipo seguinte. Por exemplo, se o tamanho do disco for maior que 64 GB, mas menor que 128 GB, o tipo de disco será P10.
Tamanhos de unidades 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 | 2\.048 | 4\.096 | 8\.192 | 16.384 | 32.767 |
IOPS provisionada base por disco | 120 | 120 | 120 | 120 | 240 | 500 | 1\.100 | 2\.300 | 5\.000 | 7\.500 | 7\.500 | 16.000 | 18.000 | 20,000 |
**IOPS provisionada expandida por disco | N/D | N/D | N/D | N/D | N/D | N/D | N/D | N/D | 8,000 | 16.000 | 20,000 | 20,000 | 20,000 | 20,000 |
Taxa de transferência provisionada 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/D | N/D | N/D | N/D | N/D | N/D | N/D | N/D | 300 MB/s | 600 MB/s | 900 MB/s | 900 MB/s | 900 MB/s | 900 MB/s |
Máximo de IOPS de intermitência por disco | 3\.500 | 3\.500 | 3\.500 | 3\.500 | 3\.500 | 3\.500 | 3\.500 | 3\.500 | 30.000* | 30.000* | 30.000* | 30.000* | 30.000* | 30.000* |
Taxa de transferência de intermitência máxima 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 da intermitência | 30 min | 30 min | 30 min | 30 min | 30 min | 30 min | 30 min | 30 min | Ilimitado* | Ilimitado* | Ilimitado* | Ilimitado* | Ilimitado* | Ilimitado* |
Qualificado para reserva | Não | 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 somente a discos com o bursting sob demanda habilitado.
** Aplica-se apenas a discos com o desempenho extra (prévia) ativado.
Quando você provisiona um disco de armazenamento premium, ao contrário do armazenamento padrão, a capacidade, IOPS e taxa de transferência de disco são garantidos. Por exemplo, se você criar um disco P50, o Azure provisionará uma capacidade de armazenamento de 4.095 GB, 7.500 IOPS e uma taxa de transferência de 250 MB/s para o disco. O aplicativo pode usar a capacidade e o desempenho no todo ou em parte. Os discos SSD Premium são projetados para fornecer as latências baixas de milissegundos de dígito único e a IOPS de destino e a taxa de transferência descritas na tabela anterior 99,9% do tempo.
Embora a tabela acima identifique a IOPS máxima por disco, um nível mais alto de desempenho pode ser obtido com a distribuição de vários discos de dados. Por exemplo, 64 discos de dados podem ser anexados à VM Standard_GS5. Se cada um desses discos for dimensionado como um P30, será possível chegar a um máximo de 80.000 IOPS. Para obter informações detalhadas sobre o máximo de IOPS por VM, veja Tipos e tamanhos de VM.
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell interativo gratuito que pode ser usado para executar as etapas neste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, selecione Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole o código no Cloud Shell e depois pressione Enter para executá-lo.
Criar e anexar discos
Discos de dados podem ser criados e anexados no momento da criação de VM ou a uma VM existente.
Anexar disco na criação da VM
Crie um grupo de recursos com o comando az group create.
az group create --name myResourceGroupDisk --location eastus
Crie uma máquina virtual com o comando az vm create. O exemplo a seguir cria uma VM chamada myVM, adiciona uma conta de usuário chamada azureuser e gera as chaves SSH, caso ainda não existam. O --datadisk-sizes-gb
argumento é utilizado para especificar que um disco adicional deve ser criado e anexado à máquina virtual. Para criar e anexar mais de um disco, utilize uma lista delimitada por espaço dos valores de tamanho de disco. No exemplo a seguir, uma VM é criada com dois discos de dados, ambos os 128 GB. Como os tamanhos de disco são 128 GB, esses discos são configurados como P10, 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
Anexar disco à máquina virtual existente
Para criar e anexar um novo disco a uma máquina virtual existente, utilize o comando az vm disk attach. O exemplo a seguir cria um disco premium de 128 gigabytes de tamanho e anexa-o à VM criada na última etapa.
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name myDataDisk \
--size-gb 128 \
--sku Premium_LRS \
--new
Preparar discos de dados
Depois que um disco é anexado à máquina virtual, o sistema operacional precisa ser configurado para usar o disco. O exemplo a seguir mostra como configurar um disco manualmente. Esse processo também pode ser automatizado utilizando a inicialização por nuvem, que é abordada em um tutorial posterior.
Crie uma conexão SSH com a máquina virtual. Substitua o endereço IP de exemplo pelo endereço IP público de sua 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%
Grave um sistema de arquivos na partição utilizando o comando mkfs
. Use partprobe
para tornar o sistema operacional ciente da alteração.
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1
Monte o novo disco para que ele seja acessível no sistema operacional.
sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive
O disco agora pode ser acessado por meio do ponto de montagem /datadrive
, que pode ser verificado ao executar o comando df -h
.
df -h | grep -i "sd"
A saída mostra a nova unidade montada em /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 seja remontada após uma reinicialização, ela deve ser adicionada ao arquivo /etc/fstab. Para fazer isso, obtenha o UUID do disco com o blkid
utilitário.
sudo -i blkid
A saída exibe o UUID da unidade, /dev/sdc1
nesse caso.
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"
Observação
A edição inadequada do arquivo /etc/fstab pode resultar em um sistema não inicializável. Se não tiver certeza, consulte a documentação de distribuição para obter informações sobre como editá-lo corretamente. Também é recomendável que um backup do arquivo /etc/fstab seja criado antes da edição.
Abra o arquivo /etc/fstab
em um editor de texto conforme a seguir:
sudo nano /etc/fstab
Adicione uma linha semelhante a esta ao arquivo /etc/fstab, substituindo o valor UUID pelo seu.
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
para sair do editor.
Agora que o disco foi configurado, feche a sessão SSH.
exit
Tirar um instantâneo do disco
Ao criar um instantâneo do disco, o Azure cria uma cópia do disco de apenas leitura, de um ponto no tempo. Instantâneos de máquina virtual do Azure são úteis para salvar rapidamente o estado de uma máquina virtual antes de fazer alterações de configuração. No caso de um problema ou erro, a VM pode ser restaurada usando um instantâneo. Quando uma máquina virtual tem mais de um disco, um instantâneo é tirado de cada disco independentemente dos outros. Para fazer backups consistentes de aplicativos, considere parar a máquina virtual antes de tirar instantâneos de disco. Como alternativa, utilize o serviço de Backup do Azure, que permite realizar backups automáticos, enquanto a máquina virtual está em execução.
Create snapshot
Antes de criar um instantâneo, você precisará da ID ou do nome do disco. Use az vm show para mostrar a ID do disco. Neste exemplo, a ID do disco é armazenada em uma variável e utilizada em uma etapa posterior.
osdiskid=$(az vm show \
-g myResourceGroupDisk \
-n myVM \
--query "storageProfile.osDisk.managedDisk.id" \
-o tsv)
Agora que você tem a ID, use az snapshot create para criar um instantâneo do disco.
az snapshot create \
--resource-group myResourceGroupDisk \
--source "$osdiskid" \
--name osDisk-backup
Como criar o disco a partir de um 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
Como restaurar a máquina virtual a partir de um 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 nova máquina virtual a partir do disco de instantâneo.
az vm create \
--resource-group myResourceGroupDisk \
--name myVM \
--attach-os-disk mySnapshotDisk \
--os-type linux
Reanexar um disco de dados
Todos os discos de dados precisam ser anexados novamente à máquina virtual.
Use o comando az disk list para localizar o nome do disco de dados. Este exemplo coloca o nome do disco em uma variável chamada datadisk
, que será usada na próxima etapa.
datadisk=$(az disk list \
-g myResourceGroupDisk \
--query "[?contains(name,'myVM')].[id]" \
-o tsv)
Use o comando az vm disk attach para anexar o disco.
az vm disk attach \
–g myResourceGroupDisk \
--vm-name myVM \
--name $datadisk
Próximas etapas
Neste tutorial, você aprendeu sobre tópicos de discos da VM como:
- Discos de sistema operacional e discos temporários
- Discos de dados
- Discos Standard e Premium
- Desempenho do disco
- Anexar e preparar os discos de dados
- Instantâneos de disco
Vá para o próximo tutorial para saber como automatizar a configuração da máquina virtual.