Como recuperar espaço em disco de Máquinas Virtuais no Proxmox VE (utilizando fstrim e discard)
Guia passo a passo para habilitar e configurar o descarte de blocos (discard) e o comando fstrim em Máquinas Virtuais no Proxmox VE, liberando espaço não utilizado do storage SSD/NVMe.
Se a sua empresa utiliza o Proxmox VE para gerenciar a infraestrutura de servidores virtuais, é muito provável que você já tenha se deparado com o “mistério do espaço fantasma”.
Você acessa uma Máquina Virtual (seja Linux ou Windows), deleta arquivos antigos, limpa logs ou desinstala aplicações pesadas, liberando, por exemplo, 50 GB de espaço interno no sistema de arquivos. No entanto, ao olhar o painel administrativo do Proxmox ou monitorar o storage físico (SSD, NVMe ou SAN), o espaço ocupado pelo disco virtual daquela VM permanece exatamente o mesmo, sem reduzir sequer um único megabyte.
Com o tempo, esse comportamento faz com que os seus storages de provisionamento fino (Thin Provisioning) fiquem saturados, podendo causar o congelamento de todas as VMs em execução devido à falta de espaço físico.
Neste tutorial passo a passo, você aprenderá como configurar a opção Discard no Proxmox VE e rodar o utilitário fstrim dentro das máquinas virtuais para recuperar o espaço em disco deletado, mantendo seus storages otimizados e seguros.
Por que o Proxmox não libera o espaço automaticamente?
Em ambientes físicos, quando um arquivo é deletado, o sistema operacional apenas marca aqueles blocos do disco como “disponíveis para gravação”, mas não os preenche com zeros imediatamente.
Em ambientes virtuais, quando você usa discos com provisionamento fino (como LVM-Thin, ZFS, Ceph ou arquivos QCOW2), o hipervisor aloca blocos sob demanda à medida que a VM grava novos dados. Porém, quando você deleta um arquivo dentro da VM, o sistema operacional convidado (Guest OS) sabe que os blocos estão livres, mas o hipervisor (Proxmox/QEMU) no nível físico não recebe essa informação. Para o Proxmox, aqueles blocos continuam contendo dados válidos.
Para resolver isso, é necessário usar o comando TRIM (para SSDs/NVMes virtuais) ou o comando SCSI UNMAP, que avisa ao Proxmox que determinados blocos de dados não são mais necessários e podem ser devolvidos ao pool de armazenamento físico.
Pré-requisitos para a Otimização de Espaço
Para que a recuperação de espaço funcione, a sua infraestrutura precisa cumprir os seguintes requisitos:
- Storage com suporte a Thin Provisioning: LVM-Thin, ZFS, Ceph (RBD), QCOW2 ou diretórios com suporte a sparse files. (Storages do tipo LVM tradicional/thick ou partições EXT4 cruas sem sparse files não permitem devolução de espaço).
- Controladora de Disco VirtIO SCSI: A VM deve usar o driver de disco VirtIO SCSI (ou VirtIO SCSI Single), pois as controladoras antigas IDE e SATA virtuais não suportam o comando TRIM/UNMAP.
- QEMU Guest Agent Instalado: O agente do Proxmox deve estar rodando na VM para coordenar a limpeza e congelamento de arquivos se necessário.
Passo 1: Configurando o Disco Virtual no Proxmox VE
Antes de rodar qualquer comando na VM, precisamos habilitar o suporte físico ao descarte de blocos nas configurações de hardware do Proxmox.
- Acesse a interface web do Proxmox VE.
- Selecione a VM desejada no menu lateral esquerdo.
- Certifique-se de que a VM está desligada (algumas alterações de controladora exigem um reboot a frio).
- Vá na aba Hardware.
- Selecione o disco virtual (ex:
Hard Disk (scsi0)) e clique em Edit. - Marque a opção Discard (Ativar Descarte).
- Opcional (mas altamente recomendado): Certifique-se de que a controladora em SCSI Controller (na mesma aba Hardware) esteja configurada como
VirtIO SCSIouVirtIO SCSI Single. Se o seu disco estiver configurado como SATA ou IDE, você precisará desanexá-lo (Detach) e reanexá-lo (Add) como SCSI para que o TRIM funcione. - Ligue a VM.
+-------------------------------------------------------------+
| Proxmox VE - VM Hardware Settings |
|-------------------------------------------------------------|
| SCSI Controller: VirtIO SCSI Single |
| Hard Disk (scsi0): local-lvm:vm-100-disk-0, size=100G |
| -> [x] Discard (ENABLED) |
| -> [x] SSD Emulation (ENABLED - Opcional) |
+-------------------------------------------------------------+
Passo 2: Configurando o Sistema Convidado (Guest OS)
Com o hardware configurado para passar os comandos de descarte adiante, precisamos rodar a limpeza dentro do sistema operacional da VM.
Caso A: Máquinas Virtuais Linux (Ubuntu, Debian, CentOS, etc.)
No Linux, o utilitário responsável por disparar o descarte de blocos é o fstrim.
-
Acesse o terminal da sua VM Linux via SSH ou console.
-
Execute o comando abaixo manualmente para testar e ver quanto espaço pode ser recuperado imediatamente:
sudo fstrim -avA saída do comando mostrará algo como:
/boot: 120 MiB (125829120 bytes) trimmed on /dev/sda1 /: 45.3 GiB (48640827392 bytes) trimmed on /dev/mapper/ubuntu--vg-ubuntu--lvNeste exemplo, 45.3 GB de espaço físico foram instantaneamente devolvidos ao storage do Proxmox!
-
Para evitar ter que rodar esse comando manualmente, habilite o serviço de agendamento automático do
systemdque executa a limpeza semanalmente:sudo systemctl enable --now fstrim.timer -
Verifique o status do timer com o comando:
sudo systemctl status fstrim.timer
Caso B: Máquinas Virtuais Windows (Windows Server ou Windows 10/11)
No ecossistema Windows, o processo de descarte é chamado de “Otimização de Unidade”.
- Abra a VM Windows e faça login como Administrador.
- Abra o menu Iniciar e digite Desfragmentar e Otimizar Unidades.
- Selecione o disco do sistema (geralmente
C:) e clique no botão Otimizar (Optimize). - O Windows identificará o disco como um SSD virtual (se a opção SSD Emulation estiver marcada no hardware do Proxmox) ou executará um comando de otimização de provisionamento fino, liberando o espaço de imediato.
- Alternativamente, você pode disparar a limpeza via PowerShell como administrador:
Optimize-Volume -DriveLetter C -Defrag -Verbose
Erros Comuns e Resolução de Problemas
- Comando fstrim reporta “discard not supported”: Este erro ocorre quando o disco da VM foi adicionado usando uma controladora que não suporta comandos SCSI UNMAP (como IDE ou SATA tradicionais) ou quando o hardware físico do seu storage (ex: controladoras RAID antigas em servidores host) não repassa comandos TRIM. Certifique-se de alterar o barramento do disco para SCSI no Proxmox e marcar o checkbox Discard.
- A VM congela ou perde performance durante o fstrim:
Executar o descarte de blocos em discos muito grandes ou storages lentos (como HDs mecânicos sob ZFS sem cache SSD) pode gerar picos severos de I/O Delay (latência de disco). Para evitar lentidão na produção, evite usar a opção
discarddo tipo continuous (montar sistemas de arquivos Linux com a opçãodiscardno/etc/fstab). Em vez disso, use ofstrim.timersemanal para rodar em horários de baixo uso (madrugadas). - O espaço no Proxmox não diminui mesmo após o fstrim terminar com sucesso: Se você estiver usando snapshots na VM, o Proxmox manterá todos os blocos históricos salvos para garantir que você possa reverter o estado da máquina. O espaço físico real no storage só será efetivamente liberado após você deletar os snapshots antigos da VM.
Checklist de Saúde e Otimização de Storage Proxmox
Monitore periodicamente os storages físicos para evitar saturação:
- A controladora de disco de todas as VMs críticas está configurada como
VirtIO SCSIouVirtIO SCSI Single? - A opção
Discardestá ativada nas propriedades de hardware de cada disco virtual? - O
QEMU Guest Agentestá instalado e em execução no sistema operacional das VMs? - O serviço
fstrim.timerestá ativo e programado nas VMs Linux? - A tarefa de otimização automática de drives está ativada nas VMs Windows?
- Snapshots antigos e desnecessários foram removidos para permitir a consolidação de blocos?
- O recurso de Thin Provisioning está ativado no pool de storage do Proxmox (
local-lvmou pools ZFS)?
Como a WL Tech pode ajudar a otimizar sua infraestrutura de servidores
Manter storages de virtualização saudáveis e com alta performance exige monitoramento constante de latência, I/O Delay e provisionamento correto de recursos. A perda de controle sobre o consumo físico de blocos pode levar a paradas inesperadas e corrupção de sistemas de arquivos em momentos críticos.
A equipe de engenharia da WL Tech realiza auditorias completas de desempenho e arquitetura em ambientes Proxmox VE e VMware ESXi. Configuramos políticas de provisionamento seguro, ajustamos storages de alta performance baseados em ZFS e Ceph, estruturamos cache SSD e automatizamos rotinas de descarte e manutenção de espaço nas suas máquinas virtuais. Garantimos que sua empresa aproveite 100% da capacidade do hardware investido com segurança e resiliência.
Seus servidores virtuais estão consumindo muito espaço em disco ou apresentando lentidão? A WL Tech realiza o diagnóstico, otimização e reestruturação completa do seu ambiente Proxmox. Solicite um diagnóstico técnico gratuito ou fale com nossos especialistas no WhatsApp.