Stripe array que armazena cada arquivo (inteiro) em um disco (zfs / lvm?)

1

Minha configuração é: duas unidades de disco rígido (3 TB + 4 TB), que eu quero usar como uma matriz de faixa.

Eu quero conseguir isso se uma das minhas unidades falhar, metade dos meus arquivos (na unidade boa) estará garantidamente segura. Em outras palavras, eu quero que cada um dos meus arquivos sejam inteiramente armazenados em qualquer uma das unidades, em vez de estarem espalhadas pelas duas unidades (divididas por blocos).

Esta tarefa pode ser executada pelo ZFS ou pelo LVM?

Se não, talvez outras opções disponíveis para essa tarefa?

Novamente, Eu quero combinar duas unidades em uma partição grande. E eu quero acessar arquivos armazenados no primeiro disco, quando o segundo está desligado.

    
por kallax 17.11.2016 / 12:51

2 respostas

0

Finalmente, depois de alguma pesquisa, descobri o que queria.

A palavra-chave certa para isso seria "union mount".

Existem algumas opções para o Linux:

  • OverlayFS
  • UnionFS, aufs
  • unionfs-fuse, funionfs, mhddfs e mergerfs

Minha escolha final é mergerfs . Eu vou explicar o porquê.

O OverlayFS está embutido no kernel (e isso é uma grande vantagem). Mas. Por design, ele sempre grava em uma partição, deixando outra intocada. É conveniente quando você precisa criar uma partição somente de leitura (como é feito em LiveCDs), mas eu quero escrever em ambas as partições igualmente.

Em seguida, o UnionFS e o aufs. Não tenho certeza sobre o UnionFS, mas o aufs precisa reconstruir o kernel (para aplicar patches aufs), o que é indesejável.

A terceira opção é o software baseado em FUSE. Alguns deles (funionfs) que eu não encontrei no repositório da minha distro, alguns deles (unionfs-fuse) tem o número de versão 1.0, então eu suponho que é bem crua.

Então eu tentei o mergerfs e não encontrei nenhum inconveniente (para o meu caso de uso). Pode usar volumes lógicos com qualquer sistema de arquivos e qualquer tamanho. Os arquivos não são espalhados por partes em todas as unidades (como em RAID0, lvm e zfs). Alguns dados ainda podem ser acessados se algumas unidades (menos que a contagem total) ficarem indisponíveis. Equilibrando! (novos arquivos serão gravados na unidade que tenha mais espaço livre). E não há necessidade de reconstruir o kernel:)

    
por 19.11.2016 / 20:55
0

A única configuração possível no ZFS seria criar dois conjuntos separados em um disco cada.

Se você os unir em um único conjunto, eles serão distribuídos de forma que a perda de um disco seja fatal para todo o pool. Se você não usar 'copies = 2', a perda de um único arquivo também será fatal.

A sugestão de Lambert é uma ótima solução alternativa, mas como você teria 2x3TB ao invés de 3 + 4TB, você precisaria de mais de 2.0 compactações (o que já é bastante difícil de alcançar para sistemas de usuário único).

    
por 18.11.2016 / 11:56