Aumentar a confiabilidade particionando discos de tamanho diferente?

8

Eu entendo que o ZFS preferiria todos os discos com o mesmo tamanho. No entanto, no caso de eu ter dois discos com tamanho diferente (1 TB e 1,5 TB), gostaria de ter certa redundância, mas não de espelhamento. Então eu cortei dois discos em 5 partições, com cada partição aproximadamente 500GB e criei um pool "raidz" ... zfs felizmente obrigado. A configuração realmente aumenta a confiabilidade? O pensamento é que, se um disco não for totalmente quebrado, e apenas uma parte dele falhar, ainda posso acessar os dados?

    
por python152 04.10.2016 / 23:34

3 respostas

3

The thought is that if a disk doesn't go totally busted, and only portion of it fails, I can still access the data?

Em teoria, esse pensamento está correto. Contanto que você encontre um erro em um único dispositivo do seu RAIDZ1 vdev, o ZFS poderá informar e corrigir o erro, supondo que os outros dispositivos estejam livres de erros.

O que pode diferir na realidade são várias coisas:

  • Erros podem abranger partições e, portanto, dois ou mais dispositivos serão afetados, o que pode resultar em erros irrecuperáveis ou até mesmo perda total do conjunto (dependendo da localização e da quantidade de erros). Você poderia usar RAIDZ2 ou Z3 para atenuar isso um pouco, mas o problema está sempre lá.
  • Durante o resilver de uma partição, o disco precisa ler (2 vezes) e gravar (1 vez) no mesmo disco simultaneamente e aleatoriamente. A menos que você use o Solaris 11.3 com resilvering sequencial, isso será muito lento. Até que você tenha terminado o processo de resilver, estará vulnerável a erros nas outras partições. Se o seu tempo de resilvering for maior, sua chance de encontrar um URE adicional aumenta. Também coloca carga adicional na unidade, aumentando a chance de falha completa da unidade.
  • Imagine que sua terceira partição (a última no disco de 1,5 TB) mostre erros suficientes para degradar o pool e solicitar uma substituição. Se você não pode adicionar outro disco, você não pode fazer uma substituição sem desligar / exportar, e mesmo assim é mais complicado que o normal.

Com base nesses pontos, aconselho não fazer isso se a confiabilidade for seu objetivo principal. Assumindo uma situação de hardware fixa, eu faria um dos seguintes procedimentos:

  1. Use espelhos e perca 500 GB, mas ganhe uma configuração simples com fácil expansão no futuro
  2. Use dois pools separados e copies = 2 se você quiser alguma resiliência contra erros menores (falha completa no disco mataria apenas 2/5 ou 3/5 de seus dados em comparação com sua configuração)
  3. Use outros sistemas de arquivos além do ZFS se quiser ter seu bolo e comê-lo também
por 05.10.2016 / 14:36
5

O que você está descrevendo é um pouco brega.

O ZFS deseja discos completos de tamanho e capacidade iguais. Isso é essencial por vários motivos, mas também faz sentido.

Tudo o que você faria na situação descrita é adicionar complexidade ao ambiente e aumentar seu risco.

    
por 04.10.2016 / 23:50
4

Vamos colocar desta forma:

  • Se você tiver 1 TB de dados no disco um, poderá replicá-lo no disco dois e poderá perder o disco.

  • Se você tiver 1,5 TB de dados no disco dois, poderá replicar apenas os primeiros 1 TB de dados no disco um. Nesse cenário, se o disco dois falhar, você perderá dados.

O ZFS é muito capaz, mas como regra geral, de acordo com os dois pontos acima, as configurações de discos mistos são bobas e não super úteis. Se você se preocupa com confiabilidade e redundância, finja que o segundo disco também é de apenas 1 TB.

    
por 05.10.2016 / 00:58