O cálculo de IOPS para ZFS RAIDZ é diferente do que o cálculo de IOPS para RAID5 e RAID6?

11

Ao calcular o IOPS para matrizes RAID tradicionais, pode-se usar a seguinte fórmula (emprestada de Obtendo o bloqueio do IOPS v1.3 no Symantec Connect):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Onde:

  • Ineficaz é o número efetivo de IOPS
  • O Isingle é um IOPS médio da unidade single drive
  • n é o número de discos na matriz
  • READ% é a fração de leituras tiradas do perfil do disco
  • WRITE% é a fração de gravações tiradas do perfil de disco
  • F é a penalidade de gravação RAID :

    RAID Level      Write Penalty
    RAID-0          1
    RAID-1          2
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

A fórmula é essencialmente uma função de:

  • IOPS para cada unidade individual na matriz
  • O número de discos. Mais discos significa mais IOPS
  • A penalidade de RAID para cada operação de gravação.
    • RAID5 & O RAID6 requer 4+ operações de disco para cada gravação. O controlador deve ler o bloco e ler os dados de paridade (duas operações), calculando os novos dados de paridade e, em seguida, atualizar o bloco de paridade e atualizar o bloco de dados (mais duas operações). O RAID6 possui dois blocos de paridade e, portanto, requer três leituras e três gravações. RAID5 & Matrizes RAID6 são, portanto, capazes de menos IOPS do que RAID1.
    • RAID1 & O RAID10 requer apenas 2 gravações, uma para cada disco no espelho.

E, para ser claro, tudo isso fornece uma estimativa do desempenho teórico. Vários controladores e métodos de RAID possuem truques para acelerar alguns desses itens.

O equivalente de RAID5 & O RAID6 é o RAIDZ e o RAIDZ2. Ao calcular IOPS para matrizes RAIDZ, posso usar a mesma fórmula que uso para RAID5 & RAID6, ou o ZFS tem truques especiais para reduzir o número de operações necessárias para operações de gravação.

Existe uma fórmula diferente para usar ao calcular IOPS para matrizes RAIDZ?

    
por Stefan Lasiewski 15.08.2013 / 20:42

1 resposta

13

Isso é mais fácil de responder ...

Tudo é destilado aqui: Recomendações do RAID do ZFS: espaço, desempenho e MTTDL e Uma análise mais detalhada do ZFS, Vdevs e desempenho

  • O RAIDZ com uma unidade de paridade fornecerá a você um desempenho de IOPS de um único disco, mas n-1 vezes a largura de banda agregada de um único disco.

Portanto, se você precisar escalar, dimensione com o número de vdevs RAIDZ ... Por exemplo, com 16 discos, 4 grupos de RAIDZ de 4 discos teriam maior potencial de IOPS do que 2 grupos de RAIDZ de 8 discos.

Surpreendente, certo?

Normalmente, participo de espelhos com faixas (RAID 1 + 0) nas minhas instalações do ZFS. O mesmo conceito se aplica. Pares mais espelhados == melhor desempenho.

No ZFS, você só pode expandir em unidades de um vdev completo. Então, enquanto a expansão de um conjunto RAID 1 + 0 significa adicionar mais pares, fazer o mesmo para conjuntos RAIDZ significa adicionar mais grupos RAIDZ de composição igual.

    
por 15.08.2013 / 20:55