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

13

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

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

Onde:

  • Ineficaz é o número efetivo de IOPS
  • Isingle é o IOPS médio de uma única unidade .
  • n é o número de discos na matriz
  • READ% é a fração de leituras obtidas do perfil do disco
  • WRITE% é a fração de gravações obtidas da criação de 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 e RAID6 requerem mais de 4 operações de disco para cada gravação. O controlador deve ler o bloco e, em seguida, ler os dados de paridade (duas operações), calcular os novos dados de paridade e 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. As matrizes RAID5 e RAID6 são, portanto, capazes de menos IOPS que o RAID1.
    • RAID1 e RAID10 requerem apenas 2 gravações, uma em cada disco no espelho.

E para ser claro, tudo isso fornece uma estimativa do desempenho teórico. Vários controladores e métodos RAID têm truques para acelerar parte disso.

O equivalente do ZFS de RAID5 e RAID6 é RAIDZ e RAIDZ2. Ao calcular o IOPS para matrizes RAIDZ, posso usar a mesma fórmula usada para RAID5 e RAID6 ou o ZFS possui 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 no cálculo de IOPS para matrizes RAIDZ?

Stefan Lasiewski
fonte
1
Ótima pergunta. Estou ansioso para ler as respostas ... #
2200
1
Oops são míticos, mas este documento pode fornecer algumas dicas. info.nexenta.com/rs/nexenta/images/...
roth tony
As IOPS podem ser teóricas, mas podem fornecer uma explicação sobre o motivo pelo qual uma matriz RAID10 geralmente supera uma matriz RAID5, considerando as mesmas unidades.
Stefan Lasiewski
Uma citação notável do documento Nexenta: "Em uma configuração RAIDZ-2, uma única E / S que entra no VDEV precisa ser dividida e gravada em todos os discos de dados. Em seguida, é necessário que a paridade seja calculada e gravada em disco antes do IO pode ser concluído. Se todos os discos tiverem a mesma latência, todas as operações serão concluídas ao mesmo tempo, completando a IO no VDEV na velocidade de um disco . Se houver um disco lento com alta latência em RAIDZ-2 VDEV, o IO para o VDEV não será concluído até que o IO na unidade mais lenta seja concluído. "
precisa saber é o seguinte

Respostas:

13

É mais fácil responder ...

Está tudo aqui: recomendações do ZFS RAID: espaço, desempenho e MTTDL e uma análise mais detalhada do ZFS, Vdevs e desempenho

  • O RAIDZ com uma unidade de paridade fornece o 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, escalar com o número de RAIDZ vdevs ... 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, uso espelhos listrados (RAID 1 + 0) nas minhas instalações do ZFS. O mesmo conceito se aplica. Mais pares espelhados == melhor desempenho.

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

ewwhite
fonte
Bom artigo, mas é tão antigo que a comparação de links do ZFS RAID1 vs RAID5 ("Resultados do modelo de paridade única" e "Resultados do modelo de paridade dupla" estão ausentes). Ratos!
Stefan Lasiewski
O RAIDZ com uma unidade de paridade fornecerá o desempenho de IOPS de um único disco. Isso é interessante: é um valor constante, independentemente das porcentagens de leitura versus gravação? Por exemplo, o desempenho do RAID5 varia muito, dependendo da porcentagem de leitura de versos gravados. Uma matriz de 3 discos 15K pode variar entre 130IOPS e 500IOPS, dependendo da taxa de leitura / gravação. 50% das leituras e 50% das gravações resultarão em desempenho IOPS maior que o de um único disco. O uso de mais de 3 eixos melhora o desempenho em relação a 1 eixo, correto?
Stefan Lasiewski
Eu apenas penso na escala do vdev e que o desempenho nas gravações é igual a 1 disco, independentemente da composição desse vdev; mirror, RAIDZ, RAIDZ2, etc. Os discos dentro dos vdevs estão lá para aumentar sua capacidade. O número de vdevs é usado para criar seu desempenho de distribuição. As leituras do vdevs serão dimensionadas com o número de unidades.
precisa saber é
1
Tenho uma experiência significativa com isso e posso confirmar para você que, na maioria das situações, o RAIDZ NÃO superará o mesmo número de discos lançados em um array equivalente tradicional do RAID5 / 6. A maioria das matrizes RAID5 / 6 tradicionais obtém desempenho de IOPS (a que quase todo mundo se importa, mesmo quando acha que não), à medida que você adiciona eixos ao conjunto RAID, enquanto o ZFS não. Em troca, o ZFS não perderá seus dados e não sofrerá com o problema do 'furo de gravação RAID'. Além disso, snapshots, clones, compactação e assim por diante. E o ARC. E você entendeu a ideia.
Nex7 22/08/2013
2
Eu só quero ser claro - o ZFS, por seu próprio design, não vencerá nenhuma guerra de desempenho. Você pode encontrar sistemas de arquivos alternativos e gerenciadores de volume (ou combinações) que podem superar o ZFS no mesmo hardware (ext4 e uma placa RAID Adaptec, por exemplo). A única exceção a isso que tenho conhecimento vem de leituras que são facilmente armazenadas em cache, em que o ARC geralmente dá ao ZFS uma vantagem sobre a maioria das alternativas. Mas quando se trata de escrever? Não. O esforço que o ZFS gasta na integridade dos dados e como ele lida com as gravações quase nunca vai ganhar concursos de velocidade. As compensações são integridade e conjunto de recursos.
Nex7 22/08/2013