Múltiplos tipos de RAID em um pool do ZFS

2

Lendo a página Wiki do Ubuntu no ZFS ( link ) eu encontrei algumas habilidades reivindicadas do ZFS que eu não consigo encontrar documentação de. Se as alegações forem possíveis, eu adoraria saber como fazê-las

Ari has a single disk workstation. She buys a new disk and plugs it in. ZFS automatically adds the new disk space into the pool. Her home directory is mirrored, while her OS and temp space is striped automatically in the background.

Jack has three disks of different sizes. Configuring a sensible partition and RAID set-up is completely trial and error. ZFS abstracts the three disks into one pool of space, and gives the best balance of performance and security. Jack declares that some media directories do not need to be fault-tolerant, and ZFS transparently stripes them across all the disks.

Ambas as cotações parecem indicar que é possível ter uma mistura de regiões tolerantes a falhas e regiões de alto desempenho em um único pool. De toda a documentação que li, isso não é possível ... alguém mais sabe como fazer isso?

    
por chew socks 09.09.2015 / 00:04

2 respostas

3

Estes parágrafos são enganosos e mal informados.

Ari has a single disk workstation. She buys a new disk and plugs it in. ZFS automatically adds the new disk space into the pool.

O ZFS não adiciona automaticamente um disco recém-inserido a um pool. Você precisa executar o comando zpool para informar como deseja que o disco seja usado.

Her home directory is mirrored

Há espelhamento apenas se Ari pediu, mas dado o restante da frase, não pode ser o caso.

while her OS and temp space is striped automatically in the background.

Se o espelhamento foi escolhido, não pode haver striping. Se striping foi escolhido, não pode haver espelhamento. No último caso, não há "striping in the background" ou "strip pós-configuração" com o ZFS. A distribuição é feita uma vez na hora da gravação.

Jack has three disks of different sizes. Configuring a sensible partition and RAID set-up is completely trial and error.

Talvez, mas mais fácil do que com o gerenciamento tradicional de volumes.

ZFS abstracts the three disks into one pool of space, and gives the best balance of performance and security.

O espelhamento triplo proporcionará o melhor desempenho de leitura e a melhor segurança aqui.

Jack declares that some media directories do not need to be fault-tolerant, and ZFS transparently stripes them across all the disks.

Você não pode definir propriedades em diretórios, você faz isso com conjuntos de dados (por exemplo, sistemas de arquivos) e pools. A criação de vários sistemas de arquivos é uma operação leve com o ZFS.

Para resumir:

Você não pode ter um sistema de arquivos espelhado e um listrado em um único conjunto. Todos os conjuntos de dados pertencentes a um pool compartilham a mesma configuração de RAID do pool subjacente.

Supondo que os blocos idem (por exemplo, zfs set copies=2 dataset ) sejam usados para fornecer tolerância a falhas, o ZFS fará o melhor possível, mas não há garantia de 100% de que todos os pares de blocos terminarão em discos diferentes.

Mesmo no caso de todos os blocos idem estarem fisicamente localizados em discos diferentes, o pool não sobreviveria a uma falha completa no disco (ou, mais precisamente, não sobreviveria a uma reinicialização após uma falha completa no disco ). As cópias do ZFS protegerão contra erros de mídia limitados (consulte o parágrafo Andreas), mas não uma indisponibilidade total do disco. Chamar o "espelhamento" de configuração do Ari é enganoso.

Eu nunca aconselharia essa configuração. Os blocos do Ditto são um ótimo recurso se você tiver um único disco, mas ainda quiser algum nível de proteção contra falha parcial da mídia (blocos defeituosos) ou se usar a deduplicação em um pool não redundante. Caso contrário, as expectativas não devem ser definidas muito altas e o espelhamento ou o raidz são o caminho a seguir com vários pools de discos.

Observe que uma combinação de espelhamento, raidz e distribuição com três discos de tamanho diferente é possível com o ZFS, criando vários pools baseados em partição. Por exemplo, digamos que você tenha discos de 4 TB, 3 TB e 2 TB. Você pode dividir todos os seus discos em partições de 1TB, criar um raidz de 2 TB com 1 + 1 + 1 partições, uma faixa de 3 TB com 1 + 1 + 1 partições, um espelho de 1 TB com partição 1 + 1 e um único dispositivo de 1 TB pool com a partição restante. Não espere um desempenho estelar com essa configuração de raid mista e esforce-se para que os aplicativos não acessem simultaneamente os vários pools.

    
por 09.09.2015 / 01:06
4

O que eles estão aludindo aqui é uma configuração em que você simplesmente adiciona todos os discos a um pool (sem um pai mirror ou raidz group controlando os discos).

Nesta configuração, o número de dispositivos em que um arquivo é colocado é ditado pelo atributo copies , que é controlado pelo comando zfs set - portanto, alguns dados (pelo sistema de arquivos ZFS) no conjunto terão maior falha tolerância do que outros dados e permite a tolerância a falhas em dispositivos de tamanho misto.

    
por 09.09.2015 / 00:13