Posso compactar de forma transparente alguns arquivos em um compartilhamento de samba

2

Estamos executando um servidor Ubuntu que é um controlador de domínio primário para vários clientes Windows XP usando o samba.

Alguns dos nossos processos em execução no Windows geram grandes quantidades de arquivos xml. Infelizmente, não temos nenhuma influência sobre como esses dados são armazenados (por exemplo, não podemos alterar os programas para (des) gzipar os arquivos xml quando eles são carregados / salvos, eles são fornecidos por terceiros e somos obrigados a usar esses programas por contrato).

Como nossos discos rígidos estão transbordando regularmente, pergunto-me se existe algo como a compactação NTFS para o Ubuntu / Linux para compactar esses arquivos de forma transparente para os clientes.

Mais alguns antecedentes:

  • O processamento desses arquivos sempre significa que eles são lidos completamente na memória, modificados e gravados novamente.
  • Apenas um cliente acessará um diretório desses arquivos por vez para que não haja problemas de simultaneidade e bloqueio.
  • O servidor já possui 4 unidades de dados de 2 TB. Não há mais espaço físico para adicionar mais (e eu gostaria de evitar adicionar mais discos)
  • Os dados devem permanecer ativos por cerca de dois anos, depois disso, eles serão arquivados e excluídos dos discos.

Eu acho que a solução perfeita seria algum tipo de plug-in para o servidor samba que é chamado sempre que um arquivo que corresponde a um curinga / regex é criado / gravado ou lido, o qual usa gzip / ungzip para compactar / descompactar o arquivo a mosca.

Como alternativa, eu poderia imaginar um driver de sistema de arquivos do Windows que faz o mesmo no lado do cliente.

Eu gostaria de evitar quaisquer etapas manuais neste processo, porque é muito propenso a erros.

Existe algo assim? Eu já usei o Google, mas não encontrei nenhuma solução.

(Gostaria de ter criado uma tag de compactação para isso, mas não tenho permissão para fazer isso ainda.)

    
por dummzeuch 05.10.2010 / 11:09

1 resposta

2

Você pode montar um sistema de arquivos de compactação em um diretório dentro do compartilhamento SAMBA e salvar seus arquivos XML nele. O FUSE fornece pelo menos três sistemas de arquivos que podem ser usados para essa finalidade: compFUSEd, FuseCompress e LZOlayer_fs.

Existe também um patch no kernel para conectar a compressão transparente ao sistema de arquivos ext2 , mas ele tem um histórico de ser abandonado e depois levado novamente, é apenas para ext2 (não ext3 / 4), e é definitivamente mais invasivo do que usar o FUSE.

    
por Riccardo Murri 05.10.2010 / 16:14