Compactando dados quando eles devem ser gravados no disco

Compactando dados quando eles devem ser gravados no disco

Tenho um servidor que é utilizado para computação científica, cada usuário possui uma máquina virtual (Linux ou Windows) para sua utilização. o problema é que os relatórios gerados por esses cálculos ocupam uma grande quantidade de armazenamento quando muitos usuários usam este servidor.

Eu quero saber se existe alguma maneira de compactar as saídas, não depois que o relatório for concluído, mas quando ele for gravado no disco

atualização1:Usamos Vsphere como hipervisor e HDD para armazenamento

Responder1

Você pode compactar e/ou desduplicar seu armazenamento em linha. Existem várias maneiras de fazer isso – algumas mais fáceis e outras mais eficazes.

Para começar, os sistemas Linux e UNIX podem usar o ZFS – um sistema de arquivos e gerenciador de volume que suporta compactação e desduplicação no nível do bloco. Qualquer sistema de armazenamento compartilhado ou local construído sobre isso pode usar esses recursos, portanto, algo tão simples como o NFS sobre o ZFS pode fazer o que você deseja com um pool compartilhado em todas as VMs.

O Linux pode usar btrfs, que é um sistema de arquivos para vários dispositivos que suporta desduplicação e compactação inline. Mesmas ideias acima. O Btrfs tem menos requisitos de hardware que o ZFS, mas a desduplicação in-line ainda é bastante intensiva (já que seria melhor fazê-lo em um conjunto de dados compartilhado maior usando qualquer um dos sistemas de arquivos). Algo a ter em mente sobre o btrfs é que ele é primeiro um sistema de arquivos e depois um gerenciador de volume. Ele também não oferece abstrações baseadas em blocos como o ZFS, portanto é puramente um sistema baseado em arquivos.

Existem diversas ofertas NAS/SAN que incluem essa funcionalidade. Usar um para armazenamento compartilhado faria bom uso da desduplicação e compactação, ao mesmo tempo que seria um produto enlatado e com suporte. FreeNAS é um exemplo de tal sistema, que pode usar ZFS. Os dispositivos Synology NAS também podem e geralmente usam btrfs.

Responder2

Eu concordo com @SmallLoanOf1M, mas apenas outra ideia que você pode fazer é compactar os relatórios dentro da VM - dessa forma, você não coloca a carga no hipervisor subjacente (ou seja, Xen Dom0) e o coloca dentro dos limites da CPU da VM .

Se você puder canalizar os dados, poderá sempre fazer algo como:

report-generator-program | lz4 > report-file.lz4

Ou use gzipse quiser uma compactação mais lenta, mas melhor, ou xzse quiser derreter sua CPU.

informação relacionada