Exclui automaticamente os arquivos gravando zeros no Linux

5

Nós executamos VMs Ubuntu de thin-provisioned que fazem muitas gravações e exclusões de arquivos. Enquanto o uso do disco nos convidados aumenta lentamente (net escreve - apaga) o tamanho do disco virtual nos hosts cresce muito mais rapidamente porque os hosts não têm como saber que muitos dos blocos são liberados.

Regularmente, colocamos cada VM offline e escrevemos zeros nos blocos livres no sistema de arquivos guest. Isso nos permite reduzir o disco virtual no host.

Eu queria saber se alguém sabe de um utilitário que podemos instalar nos convidados, que iria automaticamente escrever zeros toda vez que um arquivo fosse deletado. Se tal utilitário existisse, poderíamos então automatizar o encolhimento dos discos virtuais no host sem escrever manualmente zeros sobre os arquivos excluídos no guest.

Espero que a pergunta seja clara e agradecemos antecipadamente por qualquer ajuda

    
por David Semeria 16.01.2015 / 18:44

2 respostas

4

Use o comando fstrim .

Eu faço isso para VMs e outros sistemas de arquivos thin-provisioned, ZFS zvols e armazenamento baseado em SSD com um script cron fácil:

#!/bin/bash

for fs in $(lsblk -o MOUNTPOINT,DISC-MAX,FSTYPE | grep -E '^/.* [1-9]+.* ' | awk '{print $1}')
  do fstrim $fs > /dev/null 2>&1
done
    
por 16.01.2015 / 21:38
1

Não conheço nenhum programa, utilitário ou serviço que zeraria automaticamente os arquivos excluídos. Ele precisaria conectar-se às chamadas do sistema ou executá-las dentro do kernel para obter a automação que você está procurando.

Existem utilitários que excluem arquivos por zerando-os primeiro . Você não disse o que o programa está fazendo e excluindo arquivos, mas talvez seja um script ou algo que você possa conectar a esses utilitários?

Caso contrário, não, não é uma maneira fácil e automática de fazer isso. Essa é a desvantagem do thin-provisioning.

    
por 16.01.2015 / 21:32