Como aumentar o tamanho do disco de uma máquina virtual KVM

0
317

[ad_1]

Shutterstock.com/zentilia

KVM é uma tecnologia de virtualização incorporada ao kernel do Linux. Você pode criar máquinas virtuais e interagir com o KVM usando ferramentas como virsh, virt-manager e GNOME Boxes.

Ficar sem espaço em disco é um dos problemas mais comuns para convidados de VM. Você pode ter iniciado com um disco intencionalmente pequeno ao testar uma nova máquina virtual. Com o tempo você acumula arquivos até que o disco virtual esteja quase cheio. Veja como redimensionar sua unidade no local, sem precisar copiar arquivos para uma unidade maior separada.

Desligue sua máquina virtual

Comece desligando sua máquina virtual. Você pode encerrar no sistema operacional convidado, usando os controles em sua interface de administração ou emitindo o virsh shutdown domínio:

$ sudo virsh list
 Id   Name          State
------------------------------
 -    ubuntu22.04   running

$ sudo virsh shutdown ubuntu22.04
Domain ubuntu22.04 is being shutdown

Aguarde até que a máquina virtual seja desligada. vai desaparecer do virsh list saída após desligar. Você pode visualizar os detalhes de máquinas virtuais inativas adicionando o --all bandeira:

$ sudo virsh list --all
 Id   Name          State
------------------------------
 -    ubuntu22.04   shut off

Encontre a localização do disco

Em seguida, você precisa identificar o caminho em que o disco da VM é salvo. Cada máquina virtual obtém um arquivo de imagem de disco que armazena todo o conteúdo de seu sistema de arquivos. Vários formatos podem ser usados, incluindo QCOW2, VDI, VMDK e VHDX.

A maioria das máquinas virtuais criadas em um ambiente KVM moderno terá uma imagem de disco QCOW2 armazenada no /var/lib/libvirt/images diretório. O nome do arquivo corresponderá ao nome da máquina virtual mostrada na virsh list saída do comando.

Você pode verificar o caminho para o disco de uma VM executando virsh domblklist:

$ sudo virsh domblklist ubuntu22.04
 Target   Source
-----------------------------------------------------
 sdb      /var/lib/libvirt/images/ubuntu22.04.qcow2

Isso confirma que o arquivo a ser redimensionado para esta VM é /var/lib/libvirt/images/ubuntu22.04.qcow2.

Excluir instantâneos de máquina virtual

Você não pode redimensionar imagens de disco que tenham instantâneos armazenados nelas. Você precisará excluir os instantâneos antes de redimensionar. Se você precisar manter os instantâneos, primeiro clone a máquina virtual e use a cópia para acessar os estados dos instantâneos. Você pode excluir os instantâneos da máquina virtual original e continuar com a operação de redimensionamento.

a virsh snapshot-list O comando revelará se sua VM possui instantâneos:

$ virsh snapshot-list ubuntu22.04
 Name         Creation Time               State
---------------------------------------------------
 13-09-2022   2022-09-13 22:36:41 +0100   shutoff

Exclua-os com snapshot-delete domínio. O instantâneo a ser excluído é identificado por <vm-name> <snapshot-name> sintaxe.

$ virsh snapshot-delete ubuntu22.04 13-09-2022

Alterar o tamanho do disco

a qemu-img O comando agora pode ser usado para redimensionar o disco. Seus argumentos são o caminho para o arquivo de imagem do disco e a quantidade de capacidade adicional a ser adicionada ao disco.

$ sudo qemu-img resize /var/lib/libvirt/images/ubuntu22.04.qcow2 +16G

a +16G significa que o disco será 16 GB maior que seu tamanho atual. Você também pode usar outros sufixos padrão, como M para megabytes e T para terabytes. Ignorando o + A notação diz ao QEMU para tornar o disco de um tamanho específico, como 1T para fornecer 1 TB de capacidade.

O processo de redimensionamento deve levar apenas alguns segundos. Não necessariamente terá um efeito imediato no uso total do disco do seu host, dependendo do formato de imagem usado.

Aumentando as partições do disco

Em seguida, inicialize sua máquina virtual e use o utilitário de gerenciamento de disco do sistema operacional convidado para estender a tabela de partição do disco para o espaço livre recém-alocado. Sem esta etapa, sua nova capacidade não estará acessível ao sistema operacional.

Linux resize2fs O comando aumentará automaticamente uma partição designada para o tamanho máximo permitido por qualquer espaço livre disponível:

$ sudo resize2fs /dev/sda

Encontre o dispositivo certo para mirar (/dev/sda no comando acima) executando df -h e procurando o sistema de arquivos que está montado /:

$ df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda          32G   17G  15G   53%  /

Para redimensionar graficamente a partição, você pode usar GParted ou GNOME Disks em um convidado Linux ou Gerenciamento de disco para uma máquina Windows.

Aqui está a máquina virtual Ubuntu 22.04 cujo disco foi redimensionado em 16 GB no exemplo acima. Depois de iniciar o convidado e abrir o GParted, os 16 GB de espaço livre são vistos como uma área não alocada no final do disco.

imagem de partições no gParted

O espaço é usado clicando com o botão direito do mouse na partição do sistema existente, selecionando “Resize/Move” no menu GParted e aumentando a partição por espaço livre no final. Depois de aplicar a operação, a partição tem uma capacidade útil de 48 GB, conforme esperado.

imagem de partições no gParted

redução de disco

As imagens de disco podem encolher se sua máquina virtual tiver alocado mais armazenamento do que o necessário. Esta é uma operação potencialmente arriscada. Faça backup de sua unidade antes de começar a redimensionar para poder recuperar se os dados forem excluídos:

$ sudo cp /var/lib/libvirt/images/ubuntu22.04.qcow2 ubuntu22.04.qcow2.bak

próximo a você tem que ajuste a tabela de partição de dentro da VM para que o espaço livre não alocado esteja disponível no disco. Ao redimensionar um disco de 32 GB para 20 GB, você precisa verificar se há pelo menos 12 GB de espaço livre no final da tabela de partições, por exemplo. Se você esquecer essa etapa, o redimensionamento removerá indiscriminadamente os dados do final do disco, corrompendo a tabela de partições e tornando sua VM não inicializável.

Esta máquina Windows 10 possui um disco de 40 GB, dos quais apenas 32 GB são alocados para partições. 8 GB de espaço não alocado no final da unidade significa que você pode reduzir a unidade com segurança para 8 GB.

imagem do utilitário de gerenciamento de disco do windows 10

Depois de preparar suas partições, você pode usar qemu-img resize para realizar a redução. O suporte para esta operação deve ser ativado manualmente a cada vez, incluindo o --shrink sinalizar com seu comando. Isso permite especificar um tamanho de destino menor que a capacidade atual do disco. Você também pode -8G sintaxe para reduzir o tamanho em uma quantidade predeterminada.

$ qemu-img resize --shrink /var/lib/libvirt/images/win10.qcow2 -8G

Após reiniciar o convidado, o Windows confirma que os 8 GB de espaço livre no final do disco foram removidos.

imagem do utilitário de gerenciamento de disco do windows 10

Resumo

As imagens de disco usadas por máquinas virtuais KVM podem ser redimensionadas com o virsh S qemu-img comandos Redimensionar um disco é confiável e deve ser concluído em segundos, mas não funciona quando as máquinas virtuais têm instantâneos armazenados. É sempre uma boa ideia fazer backup de sua imagem de disco antes de começar a trabalhar.

Algumas GUIs KVM, como GNOME Boxes, incluem suporte a redimensionamento, permitindo que você amplie um disco sem usar o terminal. Independentemente de como você aplica o redimensionamento, você deve iniciar a VM convidada posteriormente e ajustar a tabela de partição para usar o espaço. Isso permite que o sistema operacional use a capacidade aumentada do disco.

[ad_2]