Configuração do pool do ZFS - é necessário aviso

3

Temos 20 unidades SATA de 2 TB para serem usadas em um pool do ZFS. Estou seguindo alguns conselhos sobre a melhor maneira de obter um bom desempenho de E / S, além de poder oferecer alguma redundância (3 falhas de disco antes que a perda de dados seja o que pretendemos alcançar).

Estou um pouco confuso sobre se preciso usar o espelhamento ou o raidz.

As 20 unidades serão conectadas a 2 controladores de ataque de 16 portas (10 em cada controlador). Talvez eu crie volumes raid de hardware para cada lote de 10 discos e depois no zfs, então espelhe os dois volumes raid disponíveis, criando assim um super volume?

Qualquer conselho seria ótimo.

    
por Shannon Pace 19.01.2011 / 03:57

5 respostas

6

Com 20 discos, você tem muitas opções. Estou supondo que você já tenha unidades para o sistema operacional, portanto, os 20 discos seriam unidades de dados dedicadas. No meu Sun Fire x4540 (48 unidades) , Eu aloquei 20 unidades em uma configuração espelhada e 24 em uma configuração raidz1 listrada (6 discos por raidz e 4 vdevs listrados). Dois discos são para o sistema operacional e o restante são peças de reposição.

Qual controlador você está usando? Você pode consultar: Recomendações do controlador ZFS SAS / SATA

Não use o ataque ao hardware, se puder. O ZFS prospera quando as unidades são apresentadas como discos brutos no SO.

Seu desempenho no raidz1 aumenta com o número de faixas nos grupos raidz1. Com 20 discos, você pode usar 4 grupos de raidz1 compostos de 5 discos cada ou 5 grupos de 4 discos. O desempenho neste último será melhor. Sua tolerância a falhas nessa configuração estaria sustentando a falha de 1 disco por grupo (por exemplo, potencialmente 4 ou 5 discos podem falhar nas condições corretas).

A velocidade de leitura de um grupo raidz1 ou raidz2 é equivalente à velocidade de leitura de um disco. Com a configuração acima, suas velocidades máximas teóricas de leitura seriam equivalentes àquelas de 4 ou 5 discos (para cada vdev / grupo de discos raidz1).

A execução da configuração espelhada maximizaria a velocidade, mas você se deparará com as limitações de largura de banda do seu controlador nesse ponto. Você pode não precisar desse tipo de velocidade, então eu sugiro uma combinação de raidz1 e listras. Nesse caso, você pode sustentar um disco com falha por par espelhado (por exemplo, 10 discos podem falhar se forem os certos).

De qualquer forma, você deve considerar um arranjo hot-spare, não importa qual solução você vá. Talvez 18 discos em um arranjo espelhado com 2 hot-spares ou um raidz1 de 3 discos de 3 faixas com 2 hot-spares ...

Quando criei minha primeira configuração do ZFS, usei essa nota da Sun para ajudar a entender o desempenho do nível de RAID ...

link

Exemplos com 20 discos:

Pares espelhados de 20 discos.

  pool: vol1
 state: ONLINE
 scrub: scrub completed after 3h16m with 0 errors on Fri Nov 26 09:45:54 2010
config:

        NAME        STATE     READ WRITE CKSUM
        vol1        ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t1d0  ONLINE       0     0     0
            c5t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t1d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t1d0  ONLINE       0     0     0
            c9t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t2d0  ONLINE       0     0     0
            c5t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t2d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t2d0  ONLINE       0     0     0
            c9t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t3d0  ONLINE       0     0     0
            c5t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t3d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t3d0  ONLINE       0     0     0
            c9t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t4d0  ONLINE       0     0     0
            c5t4d0  ONLINE       0     0     0

Raidz1 de 20 discos com 4 faixas de raidz1 vdevs de 5 discos.

  pool: vol1
 state: ONLINE
 scrub: scrub completed after 14h38m with 0 errors on Fri Nov 26 21:07:53 2010
config:

        NAME        STATE     READ WRITE CKSUM
        vol1        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t4d0  ONLINE       0     0     0
            c7t4d0  ONLINE       0     0     0
            c8t4d0  ONLINE       0     0     0
            c9t4d0  ONLINE       0     0     0
            c4t5d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t5d0  ONLINE       0     0     0
            c7t5d0  ONLINE       0     0     0
            c8t5d0  ONLINE       0     0     0
            c9t5d0  ONLINE       0     0     0
            c4t6d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t6d0  ONLINE       0     0     0
            c7t6d0  ONLINE       0     0     0
            c8t6d0  ONLINE       0     0     0
            c9t6d0  ONLINE       0     0     0
            c4t7d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t7d0  ONLINE       0     0     0
            c7t7d0  ONLINE       0     0     0
            c8t7d0  ONLINE       0     0     0
            c9t7d0  ONLINE       0     0     0
            c6t0d0  ONLINE       0     0     0

Editar: Ou, se você quiser dois pools de armazenamento, poderá dividir seus 20 discos em dois grupos:

10 disks in mirrored pairs (5 per controller).
AND
3 stripes of 3-disk raidz1 groups
AND
1 global spare...

Isso oferece dois tipos de armazenamento, boa redundância, uma unidade sobressalente e você pode testar o desempenho de cada pool consecutivamente.

    
por 19.01.2011 / 04:27
3

Dê uma olhada no Guia de práticas recomendadas .

we have 20 2tb sata drives to be used in a zfs pool. i am after some advice on the best way to achieve good i/o performance, whilst being able to offer some redundancy (3 disk failures before data loss is what we are looking to achieve).

O ZFS com RAIDZ-3 (RAID de tripla paridade) fornecerá a redundância que você está procurando. O desempenho de E / S - como em qualquer configuração RAID-5-ish - será melhor para as leituras do que para as gravações, e se é "bom o suficiente" ou não depende muito do seu hardware. Outras pessoas podem ser capazes de fornecer informações melhores sobre essa área (os sistemas de arquivos ZFS com os quais trabalho não foram projetados com desempenho como consideração principal).

the 20 drives will be plugged into 2 16-port raid controllers (10 on each controller). maybe i create hardware raid volumes for each lot of 10 disks and then in zfs, i mirror the two available raid volumes, creating one super volume?

Uma das grandes vantagens do ZFS é combinar o RAID, o gerenciamento de volumes e o gerenciamento do sistema de arquivos em um único local, oferecendo um único ponto de gerenciamento para o seu ambiente. Você terá muito mais flexibilidade se configurar seus discos em uma configuração JBOD.

    
por 19.01.2011 / 04:15
2

Todo mundo dizendo para você usar o RAIDZ está errado. O RAIDZ é terrível para performance! O espelhamento é melhor para o desempenho! Use o RAIDZ apenas quando precisar de mais espaço do que o desempenho.

Você tem 20 discos. Crie 9 vdevs de espelhos bidirecionais e duas hot spares. Isso dá a você sua falha de três discos e 18 TB de armazenamento.

Não use RAID de hardware . Configure seu controlador raid em JBOD (às vezes chamado de "passthrough"), se possível. Se não, crie 20 RAID0 (uma coisa terrível para fazer, mas a menos terrível se você não puder configurar o JBOD). Qualquer outra configuração derrota o ZFS.

Distribua os discos pelos controladores o máximo que puder (o melhor é 1-1, mas percebo que isso não é prático na sua situação). Compre mais controladores, se possível.

    
por 26.07.2012 / 12:04
1

Shannon, em uma configuração similar, criei pools RAIDZ2 de 15 discos. O desempenho foi bom, mas o tempo para reconstruir o ataque após uma falha no disco foi significativo. Algo como 30 horas, e eu estava usando discos de 500GB. Eu acho que eu estava limitado pela largura de banda do controlador de armazenamento (U160 scsi) mais do que qualquer outra coisa, mas eu prevejo que você descobrirá que leva mais tempo do que você gostaria.

Ao fazer o upsizing para discos de 2TB, acabei com reconstruções de 120 horas, o que pareceu muito. Acabei de reconstruir com RAIDZ2 de 9 discos.

É fácil testar isso em seu ambiente; construa sua matriz, preencha-a e, em seguida, puxe um disco e aguarde a reconstrução. Lembre-se de que, com o ZFS, apenas o espaço realmente usado será reconstruído (resilvered no jargão do zfs), portanto, é necessário preencher o array para fazer um bom teste.

Se eu fosse você, faria 2x RAIDZ2, 9 e 10 discos cada e um hot spare. Você terá que usar um sinalizador -f para fazer com que o ZFS permita que você adicione raidz2 de tamanho não idêntico ao mesmo pool.

Observe que, com minha configuração RAIDZ2 sugerida, se três discos no mesmo pool falharem, você é lavado. OTOH se 4 discos, 2 em cada pool, falharem, você está OK.

    
por 19.01.2011 / 06:20
0

Não use o ataque de hardware em conjunto com o ZFS. O sistema de arquivos não terá conhecimento de nenhum problema que o controlador de hardware esteja ciente e não reagirá de acordo.

Você pode usar o RAIDZ3 para obter segurança contra falhas de 3 discos. Os espelhos também conseguiriam isso, mas haveria limitações em quais 3 discos. Isso faria mais sentido se você escolhesse uma probabilidade de falha do que arbitrariamente diz que você pode permitir que 3 discos falhem.

O desempenho em uma situação como esta será primeiramente limitado pela conectividade de rede (eu suponho que a maior parte da matriz é usada para servir arquivos através de uma rede de alguma forma) e a CPU do computador (toda essa paridade não vai se computar e o ZFS ainda não usará aceleradores de criptografia).

    
por 19.01.2011 / 04:16