Qual é a melhor maneira de configurar um novo servidor ZFS com muito armazenamento?

6

Assuma a seguinte configuração de unidade (com o ZFS):

Controller 1    Drive1    Drive4    Drive7    Drive10
Controller 2    Drive2    Drive5    Drive8    Drive11
Controller 3    Drive3    Drive6    Drive9    Drive12

Configuração do VDEV:

vdev1: drive1, drive2, drive3 vdev2: drive4, drive5, drive6 vdev3: drive7, drive8, drive9 vdev4: drive10, drive11, drive12

É melhor (para confiabilidade) adicionar todos os vdevs ao mesmo zpool ou ter zpools separados (um para cada vdev)? Além disso, se perdêssemos um único vdev, perderíamos o array inteiro? Não precisamos de toda a capacidade de armazenamento em um único local - os zpools menores seriam encontrados do ponto de vista de armazenamento.

Atualização: Para a pergunta do 3dinfluence sobre o pool de inicialização, que estará em um conjunto RAID1. Eu não gosto de misturar o sistema operacional e as matrizes RAID multi-terabytes.

    
por Jon Bailey 21.07.2009 / 13:48

2 respostas

6

A maneira como o ZFS funciona é que dentro do pool ele possui conjuntos ou grupos de raid. Para expandir a capacidade, você precisa adicionar grupos adicionais no mesmo nível de raid ao pool. O IO é então separado de todos os grupos dentro do zpool que possuem blocos livres. Portanto, um zpool com um grande número de conjuntos de discos pequenos é rápido e altamente disponível.

Por isso, sugiro que você coloque todas as unidades em um pool como grupos de 3 discos raidz ou 6 grupos de espelhos de unidade.

Opção Raidz

  • pool do ZFS
    • raidz Drive1, Drive2, Drive3
    • raidz Drive4, Drive5, Drive6
    • raidz Drive7, Drive8, Drive9
    • raidz Drive10, Drive11, Drive12

Prós

  • Isso permitiria que sua configuração sobrevivesse a uma falha do controlador.
  • Ele também distribuirá seu IO por todos os 4 grupos no pool, o que melhorará ainda mais a taxa de transferência.

Opção de espelho

  • pool do ZFS
    • espelho Drive1, Drive2
    • espelhar Drive3, Drive4
    • espelho Drive5, Drive6
    • espelhar Drive7, Drive8,
    • espelho Drive9, Drive10
    • espelhar o Drive11, o Drive12

Prós

  • Isso permitiria que sua configuração sobrevivesse a uma falha do controlador.
  • Ele também espalhará seu IO em todos os 6 grupos no pool, o que pode ser mais rápido.

Contras

  • Você perderá 50% da capacidade bruta das unidades.
por 21.07.2009 / 15:03
5

Concordo com as sugestões do 3dinfluence. No entanto, uma solução ainda melhor IMHO seria usar RAID-Z2 (semelhante ao RAID6; ou seja, dois discos de "paridade" em vez de apenas um) com dois conjuntos como este:

  • raidz2 # 1: 1,4,2,5,3,6
  • raidz2 # 2: 7,10,8,11,9,12

Agora, se um único disco falhar, você ainda terá um disco de "paridade" sobrando (comparado ao RAID-Z, você já teria perdido todas as suas informações de redundância)! Se você usar disco rígido de alta capacidade, isso pode ser uma boa ideia, pois a recuperação do ZFS (preenchendo o disco de substituição, ou seja, recriando as informações de redundância no novo disco) pode levar muito tempo e seus dados correm risco durante todo esse tempo - se você usar com RAID-Z. (Uma falha de controlador único não derrubará um conjunto RAID-Z2 - mas, nesse caso, a redundância seria perdida).

Outra questão importante: você também deve pensar em discos sobressalentes - especialmente se decidir usar o RAID-Z porque uma falha de disco único deixará seus dados em risco até você substituir o disco disco com falha . (Os discos preferem falhar na noite de sexta-feira, o que significa que você talvez não tenha redundância durante o fim de semana inteiro!)

Mantendo o problema do disco reserva em mente, você pode até querer usar essa configuração:

  • raidz2 # 1: 1,4,2,5,3
  • raidz2 # 2: 7,10,8,6,9
  • discos sobressalentes: 11,12

Esta configuração seria mais segura com uma pequena perda na capacidade total .

    
por 22.07.2009 / 00:37