pool ZFS RAID 10 com tamanho de discos mistos

3

Eu tenho 4 discos: 2x2TB e 2x1TB. Tudo do mesmo RPM 7200 e fabricante. OS é o Ubuntu 16.04. Eu quero fazer um pool de RAID 10, mas ouvi dizer que o tamanho dos discos de mistura não é uma boa abordagem para o ZFS - corrija-me se eu estiver errado ... Então, qual é melhor dessas 3 opções ("m" significa espelho):

  1. Espelhos inteiros de discos: (2TB m 2TB) + (1TB m 1TB).
  2. Dividir discos de 2 TB em partições de 1 TB: (1 TB m 1 TB) + (1 TB m 1 TB) + (1 TB m 1 TB).
  3. Dois pools separados: (2TB m 2TB) e (1TB m 1TB).

Pessoalmente, eu realmente não gosto da terceira opção, mas talvez seja a mais estável? Eu sou novo no ZFS então por favor sugira.

Eu fiz uma imagem para ilustrar a segunda opção:

    
por Artico 24.03.2018 / 09:51

1 resposta

1

Antes de responder à sua pergunta, um aviso: obviamente, é mais simples usar apenas o hardware duplicado. Vale a pena notar que, embora seus dispositivos sejam do mesmo fabricante e tenham o mesmo número de RPMs, o throughput será diferente entre eles para um determinado tamanho IO (porque os drives de 2TB provavelmente têm maior densidade de bytes por toque) e o número de IOPS será o mesmo entre eles, mesmo que as unidades de 2 TB serão atingidas duas vezes mais freqüentemente em uma situação de leitura aleatória. Basicamente, você terá desempenho assimétrico, de qualquer forma, onde os discos de 2 TB são ~ 2x melhores em grandes pedidos de veiculação, e os discos de 1 TB são ~ 2x melhores em IOs aleatórios curtos.

Vou responder assumindo que você não quer vender suas unidades de 1 TB para comprar outra unidade de 2 TB. De sua pergunta eu não posso realmente dizer - qual é o nível de replicação desejado? Não importa o que, há duas diretrizes que você deve tentar seguir:

  1. É melhor deixar o ZFS configurar discos cheios no zpool , porque a semântica de falha quando uma unidade falha é muito mais simples do que se duas partições podem falhar juntas (quando o disco em que ambas estão em falha).
  2. É mais fácil adicionar novos discos ao conjunto posteriormente se o seu nó de nível superior no conjunto for um vdev distribuído. Dessa forma, você sempre pode adicionar grupos de novos dispositivos duplicados ao mesmo tempo e não importa se os tamanhos deles correspondem aos dos dispositivos existentes no pool.

Se você quiser um espelho de 2 discos, sua opção 1 parece ser a melhor para mim. Se você comprar outro disco, compre um segundo do mesmo tipo e adicione-os como um novo espelho no nó distribuído nesta árvore:

striped
    mirror
        2TB
        2TB
    mirror
        1TB
        1TB

Se você quiser um espelho de 3 discos, você poderia fazer um espelho como este, mas adicionar dispositivos a ele mais tarde é mais difícil (adicioná-los como outro espelho? adicioná-los como outra faixa na área de 1TB?):

mirror
    2TB
    2TB
    striped
        1TB
        1TB

Se você quiser fazer o RAID-Z, eu recomendaria apenas não usar dispositivos de tamanhos diferentes, ou você poderia comprar mais dispositivos de 2 TB e 1 TB e distribuir vários grupos de RAID-Z.

Um método alternativo para replicar dados no ZFS é a configuração copies=N que você pode definir nos sistemas de arquivos do pool. Isso pode ser tentador para o seu caso de uso, mas note que não ajuda em todos os problemas de perda de dados - uma falha no nível do dispositivo ainda resultará em falha no uso de todo o pool. (O principal caso de uso para isso é corrupções dentro de um disco.)

    
por 27.03.2018 / 02:16