Comprimir dados quando é para ser escrito no disco

3

Eu tenho um servidor que é usado para computação científica, cada usuário tem uma máquina virtual (Linux ou Windows) para seu uso. o problema é que os relatórios gerados por esses cálculos ocupam uma quantidade enorme de armazenamento quando muitos usuários usam esse servidor.

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

update1: Usamos o Vsphere como o hypervisor e o H.D.D para armazenamento

    
por Yashar 26.02.2018 / 08:48

2 respostas

3

Você pode compactar e / ou desduplicar seu armazenamento inline. Existem várias maneiras de conseguir 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 local ou compartilhado criado sobre esse recurso pode usar esses recursos, portanto, algo tão simples quanto o NFS sobre o ZFS pode fazer o que você deseja com um pool compartilhado em todas as VMs.

O Linux pode usar o btrfs, que é um sistema de arquivos com vários dispositivos que suporta desduplicação e compactação em linha. Idéias iguais às acima. O Btrfs tem menos requisitos de hardware do que o ZFS, mas a desduplicação em linha ainda é bastante intensiva (como em você seria mais bem atendido fazendo isso em um conjunto de dados compartilhado maior usando o sistema de arquivos). Algo para se lembrar sobre o btrfs é que ele é um sistema de arquivos primeiro e um segundo 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 várias ofertas de NAS / SAN que incluem essa funcionalidade. O uso de um para armazenamento compartilhado usaria bem a desduplicação e a compactação, sendo um produto com suporte e enlatado. O FreeNAS é um exemplo de um desses sistemas, que pode usar o ZFS. Os dispositivos Synology NAS também podem e geralmente usam o btrfs.

    
por 27.02.2018 / 06:53
1

Concordo com @ SmallLoanOf1M, mas apenas outra ideia que você poderia fazer é compactar os relatórios dentro da VM - dessa forma você não coloca a carga no hypervisor subjacente (ou seja, Xen Dom0) e 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 gzip se quiser compactação mais lenta, mas melhor, ou xz se quiser derreter sua CPU.

    
por 02.03.2018 / 22:56