Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo aborda a expansão de discos de sistema operacional (SO) e discos de dados para uma máquina virtual (VM) Linux. Você pode adicionar discos de dados para fornecer mais espaço de armazenamento e também pode expandir um disco de dados existente. O tamanho padrão do disco rígido virtual para o sistema operacional normalmente é de 30 GB em uma VM Linux no Azure. Este artigo aborda a expansão de discos de SO ou discos de dados. Não é possível expandir o tamanho dos volumes segmentados.
Um disco de SO tem uma capacidade máxima de 4.095 GiB. No entanto, muitos sistemas operacionais são particionados com registro mestre de inicialização (MBR) por padrão. O MBR limita o tamanho utilizável a 2 TiB. Se precisar de mais de 2 TiB, considere anexar discos de dados para armazenamento de dados. Se você precisar armazenar dados no disco do sistema operacional e precisar de espaço extra, converta-os em uma tabela de partição GUID (GPT).
Advertência
Certifique-se sempre de que o sistema de ficheiros está num estado saudável e que o tipo de tabela de partições de disco (GPT ou MBR) pode suportar o novo tamanho. Faça backup dos dados antes de executar operações de expansão de disco. Para obter mais informações, consulte o início rápido do Backup do Azure.
Identificar um objeto de disco de dados do Azure dentro do sistema operacional
Quando você expande um disco de dados que tem vários discos de dados na VM, pode ser difícil relacionar os LUNs (números de unidade lógica) do Azure aos dispositivos Linux. Se o disco do sistema operacional precisar de expansão, ele será claramente rotulado no portal do Azure como o disco do sistema operacional.
Comece identificando a relação entre a utilização do disco, o ponto de montagem e o dispositivo, com o df
comando.
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 xfs 97G 1.8G 95G 2% /
<truncated>
/dev/sdd1 ext4 32G 30G 727M 98% /opt/db/data
/dev/sde1 ext4 32G 49M 30G 1% /opt/db/log
Aqui você pode ver, por exemplo, que o /opt/db/data
sistema de arquivos está quase cheio e está localizado na /dev/sdd1
partição. A saída de df
mostra o caminho do dispositivo, quer o disco seja montado através do caminho do dispositivo ou pelo UUID (preferido) no fstab. Observe a coluna Tipo, que indica o formato do sistema de arquivos. O formato é importante mais tarde.
Agora, localize o LUN que corresponde a /dev/sdd
ao examinar o conteúdo de /dev/disk/azure/scsi1
. A saída do comando a seguir ls
mostra que o dispositivo conhecido como /dev/sdd
dentro do sistema operacional Linux está localizado em LUN1
quando você procura no portal do Azure.
sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep 9 21:54 ./
drwxr-xr-x. 4 root root 80 Sep 9 21:48 ../
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root 13 Sep 9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root 12 Sep 9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root 13 Sep 9 21:54 lun2-part1 -> ../../../sde1
Expandir um disco gerenciado do Azure
Expanda sem interrupções
Você pode expandir seus discos gerenciados sem deslocalizar sua VM. A configuração de cache do host do disco não altera se você pode ou não expandir um disco de dados sem deslocalizar sua VM.
Este recurso tem as seguintes limitações.
Importante
Esta limitação não se aplica a SSD Premium v2 ou Ultra Disks.
Se um disco HDD padrão, SSD padrão ou SSD Premium tiver 4 TiB ou menos, desaloque sua VM e desanexe o disco antes de expandi-lo além de 4 TiB. Se um desses tipos de disco já for maior que 4 TiB, você poderá expandi-lo sem deslocalizar a VM e desanexar o disco.
- É suportado apenas para discos de dados.
- Não há suporte para discos compartilhados.
- Deve ser instalado e usar uma das seguintes opções:
- A CLI do Azure mais recente.
- O módulo mais recente do Azure PowerShell.
- Portal do Azure.
- Um modelo do Azure Resource Manager com uma versão de API
2021-04-01
ou mais recente.
- Não está disponível em algumas VMs clássicas. Use este script para obter uma lista de produtos clássicos de VM que suportam expansão sem tempo de inatividade.
Expanda com Ultra Disks e SSD Premium v2
A expansão de discos Ultra e de discos SSD Premium v2 sem tempo de inatividade está sujeita às seguintes limitações adicionais:
- Não é possível expandir um disco enquanto uma cópia em segundo plano dos dados também estiver ocorrendo nesse disco. Um exemplo é quando um disco está sendo preenchido a partir de instantâneos.
- Você pode expandir VMs usando controladores NVMe com discos Ultra ou SSD Premium v2 sem tempo de inatividade durante esta pré-visualização pública. Como esta versão é uma visualização pública, você deve usá-la apenas para testar a funcionalidade de expansão sem tempo de inatividade. Não expanda VMs em produção.
Nas seguintes regiões, pode expandir VMs que estão a usar controladores NVMe com discos Ultra Disks ou SSD Premium v2 sem tempo de inatividade. Use o portal do Azure, a CLI do Azure ou o módulo do Azure PowerShell:
- Sudeste Asiático
- Brasil Sul
- Canadá Central
- Alemanha Centro-Oeste
- Índia Central (atualmente não suportado em VMs V6)
Nas seguintes regiões, pode expandir VMs que estão a usar controladores NVMe com discos Ultra Disks ou SSD Premium v2 sem tempo de inatividade. Use apenas a CLI do Azure ou um módulo do Azure PowerShell. Atualmente, não é possível usar o portal do Azure:
- Ásia Leste
- West Central US (atualmente não suportado em VMs V6)
Aguarde até 10 minutos para que o tamanho correto seja refletido em VMs Windows e Linux VMs. Para VMs Linux, você deve executar uma função de nova verificação do Linux. Para uma VM do Windows que não tenha uma carga de trabalho, você deve executar uma função de nova verificação do Windows. Você pode fazer uma nova varredura imediatamente, mas se o tempo for dentro de 10 minutos, talvez seja necessário fazer uma nova varredura para exibir o tamanho correto.
Expandir disco gerenciado do Azure
Verifique se você tem a CLI do Azure mais recente instalada e está conectado a uma conta do Azure usando az login.
Este artigo requer uma VM existente no Azure com pelo menos um disco de dados conectado e preparado. Se você ainda não tiver uma VM que possa usar, consulte Criar e preparar uma VM com discos de dados.
Nos exemplos a seguir, substitua os nomes dos parâmetros de espaço reservado como myResourceGroup e myVM por seus próprios valores.
Importante
Se o disco atender aos requisitos em Expandir sem tempo de inatividade, você poderá ignorar as etapas 1 e 3.
A redução de um disco existente não é suportada e pode resultar em perda de dados.
Depois de expandir os discos, expanda o volume no SO para tirar partido do disco maior.
As operações em discos rígidos virtuais não podem ser executadas com a VM em execução. Desaloque a VM com az vm deallocate. O exemplo a seguir deslocaliza a VM chamada myVM no grupo de recursos chamado myResourceGroup:
az vm deallocate --resource-group myResourceGroup --name myVM
A VM deve ser desalocada para expandir o disco rígido virtual. Parar a VM com
az vm stop
não libera os recursos de computação. Para liberar recursos de computação, useaz vm deallocate
.Exiba uma lista de discos geridos em um grupo de recursos com az disk list. O exemplo a seguir mostra uma lista de discos gerenciados no grupo de recursos chamado myResourceGroup:
az disk list \ --resource-group myResourceGroup \ --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \ --output table
Expanda o disco necessário com az disk update. O exemplo a seguir expande o disco gerenciado chamado myDataDisk para 200 GB:
az disk update \ --resource-group myResourceGroup \ --name myDataDisk \ --size-gb 200
Quando você expande um disco gerenciado, o tamanho atualizado é arredondado para o tamanho do disco gerenciado mais próximo.
Inicie sua VM com az vm start. O exemplo a seguir inicia a VM chamada myVM no grupo de recursos chamado myResourceGroup:
az vm start --resource-group myResourceGroup --name myVM
Expandir uma partição de disco e um sistema de arquivos
Você pode usar muitas ferramentas para executar o redimensionamento de partições. As ferramentas detalhadas no restante deste artigo são as mesmas que certos processos automatizados usam, como o cloud-init. Conforme descrito aqui, a growpart
ferramenta com o gdisk
pacote fornece compatibilidade universal com discos GPT porque versões mais antigas de algumas ferramentas, como fdisk
não suportavam GPT.
Detetar um tamanho de disco alterado
Se você usou o procedimento mencionado anteriormente para expandir um disco de dados sem tempo de inatividade, o tamanho do disco relatado não será alterado até que o dispositivo seja verificado novamente. A nova varredura normalmente acontece apenas durante o processo de inicialização. Para chamar esta nova análise quando desejado, use o procedimento a seguir. Quando você usa os métodos neste artigo, observe que, neste exemplo, o disco de dados está atualmente /dev/sda
e foi redimensionado de 256 GiB para 512 GiB.
Identifique o tamanho atualmente reconhecido na primeira linha de saída de
fdisk -l /dev/sda
:sudo fdisk -l /dev/sda
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 Linux
Insira um
1
caractere no arquivo de nova varredura para este dispositivo. Note a referência asda
no exemplo. O identificador de disco muda se um dispositivo de disco diferente for redimensionado.echo 1 | sudo tee /sys/class/block/sda/device/rescan
Verifique se o novo tamanho do disco agora é reconhecido.
sudo fdisk -l /dev/sda
Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 Linux
O restante deste artigo usa o disco do sistema operativo para os exemplos do procedimento para aumentar o tamanho de um volume a nível do sistema operativo. Se o disco expandido for um disco de dados, use as orientações anteriores para identificar o dispositivo de disco de dados. Siga estas instruções como orientação. Substitua o dispositivo de disco de dados (por exemplo, /dev/sda
), números de partição, nomes de volume, pontos de montagem e formatos de sistema de arquivos, conforme necessário.
Considere todas as orientações do sistema operacional Linux como genéricas e que podem ser aplicadas em qualquer distribuição, mas geralmente correspondem às convenções do editor do mercado nomeado. Consulte a documentação da Red Hat para obter os requisitos do pacote em qualquer distribuição baseada na Red Hat ou que alegue compatibilidade com a Red Hat.
Aumentar o tamanho do disco do SO
As instruções a seguir se aplicam a distribuições Linux endossadas.
Antes de continuar, faça uma cópia de backup completa da sua VM ou, no mínimo, tire um instantâneo do disco do seu sistema operacional.
No Ubuntu 16.x e mais recentes, a partição raiz do disco do sistema operativo e os sistemas de ficheiros são automaticamente expandidos para usar todo o espaço contíguo livre no disco raiz pelo cloud-init. Uma pequena quantidade de espaço livre deve estar disponível para a operação de redimensionamento. Neste caso, a sequência é a seguinte:
- Aumente o tamanho do disco do SO conforme descrito anteriormente.
- Reinicie a VM e, em seguida, acesse a VM usando a conta de usuário raiz .
- Verifique se o disco do sistema operacional agora exibe um tamanho de sistema de arquivos aumentado.
Como mostrado no exemplo a seguir, o disco do sistema operativo foi redimensionado através do portal para 100 GB. O sistema de arquivos /dev/sda1
montado em /
agora exibe 97 GB.
df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 314M 0 314M 0% /dev
tmpfs tmpfs 65M 2.3M 63M 4% /run
/dev/sda1 ext4 97G 1.8G 95G 2% /
tmpfs tmpfs 324M 0 324M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 324M 0 324M 0% /sys/fs/cgroup
/dev/sda15 vfat 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 ext4 20G 44M 19G 1% /mnt
tmpfs tmpfs 65M 0 65M 0% /run/user/1000
user@ubuntu:~#
Expanda sem interrupção o suporte para SKU clássico de VM
Se estiver a usar uma SKU de VM clássica, poderá não suportar o redimensionamento de discos sem interrupção.
Use o seguinte script do PowerShell para determinar com quais SKUs de VM ele está disponível:
Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}
foreach($vmSize in $vmSizes){
foreach($capability in $vmSize.Capabilities)
{
if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
{
$vmSize.Name
}
}
}