Il calcolo degli IOPS per ZFS RAIDZ è diverso dal calcolo degli IOPS per RAID5 e RAID6?


13

Quando si calcola IOPS per array RAID tradizionali, è possibile utilizzare la seguente formula (preso in prestito da Ottenere The Hang Of IOPS v1.3 su Symantec Connect):

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

Dove:

  • Ieffective è il numero effettivo di IOPS
  • Isingle è lo IOPS medio di una singola unità .
  • n è il numero di dischi nell'array
  • READ% è la frazione di letture prese dalla profilazione del disco
  • WRITE% è la frazione di scritture prese dalla profilazione del disco
  • F è la penalità di scrittura RAID :

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

La formula è essenzialmente una funzione di:

  • IOPS per ogni singola unità dell'array
  • Il numero di dischi. Più dischi significa più IOPS
  • La penalità RAID per ogni operazione di scrittura.
    • RAID5 e RAID6 richiedono 4+ operazioni su disco per ogni scrittura. Il controller deve leggere il blocco e quindi leggere i dati di parità (due operazioni), calcolando i nuovi dati di parità, quindi aggiornare il blocco di parità e aggiornare il blocco di dati (Altre due operazioni). RAID6 ha due blocchi di parità e quindi richiede tre letture e tre scritture. Gli array RAID5 e RAID6 sono quindi in grado di contenere meno IOPS rispetto a RAID1.
    • RAID1 e RAID10 richiedono solo 2 scritture, una per ciascun disco nel mirror.

E per essere chiari, tutto ciò fornisce una stima delle prestazioni teoriche. Vari controller e metodi RAID hanno dei trucchi per accelerare questo.

L'equivalente di ZFS di RAID5 e RAID6 è RAIDZ e RAIDZ2. Nel calcolare IOPS per array RAIDZ, posso usare la stessa formula che uso per RAID5 e RAID6 o ZFS ha trucchi speciali per ridurre il numero di operazioni richieste per le operazioni di scrittura.

Esiste una formula diversa da utilizzare per il calcolo degli IOPS per array RAIDZ?


1
Ottima domanda Non vedo l'ora di leggere le risposte ...
EEAA

1
gli iop sono mitici ma questo documento può fornire alcune informazioni. info.nexenta.com/rs/nexenta/images/…
tony roth,

Gli IOPS possono essere teorici, ma possono fornire una spiegazione del perché un array RAID10 in genere supererà un array RAID5, date le stesse unità.
Stefan Lasiewski,

Una citazione notevole dal documento Nexenta: "In una configurazione RAIDZ-2, un singolo IO che entra nel VDEV deve essere suddiviso e scritto su tutti i dischi di dati. Deve quindi avere la parità calcolata e scritta su disco prima del L'IO potrebbe essere completato. Se tutti i dischi hanno la stessa latenza, tutte le operazioni sui dischi verranno completate contemporaneamente, completando così l'IO sul VDEV alla velocità di un disco . Se è presente un disco lento con latenza elevata in RAIDZ-2 VDEV, l'IO verso il VDEV non si completa fino al completamento dell'IO sull'unità più lenta. "
Stefan Lasiewski,

Risposte:


13

È più facile rispondere ...

Qui è tutto distillato: raccomandazioni RAID ZFS: spazio, prestazioni e MTTDL e uno sguardo più attento a ZFS, Vdevs e prestazioni

  • RAIDZ con un'unità di parità offre prestazioni IOPS di un singolo disco, ma n-1 volte la larghezza di banda aggregata di un singolo disco.

Quindi, se devi ridimensionare, ridimensiona con il numero di vdev RAIDZ ... Ad esempio con 16 dischi, 4 gruppi di RAIDZ a 4 dischi avrebbero un potenziale IOPS maggiore rispetto a 2 gruppi di RAIDZ a 8 dischi.

Sorprendente, vero?

Di solito vado con mirror a strisce (RAID 1 + 0) sulle mie installazioni ZFS. Lo stesso concetto si applica. Più coppie speculari == prestazioni migliori.

In ZFS, puoi espandere solo in unità di un vdev completo. Quindi, mentre l'espansione di un set RAID 1 + 0 significa aggiungere più coppie, fare lo stesso per i set RAIDZ significa aggiungere più gruppi RAIDZ di uguale composizione.


Un buon articolo, ma è così vecchio che mancano il confronto dei collegamenti tra ZFS RAID1 e RAID5 (mancano "Risultati del modello di parità singola" e "Risultati del modello di parità doppia"). Ratti!
Stefan Lasiewski,

RAIDZ con un'unità di parità offre prestazioni IOPS di un singolo disco Questo è interessante, è un valore costante indipendentemente dalle percentuali di lettura e scrittura? Ad esempio, le prestazioni di RAID5 variano ampiamente a seconda della percentuale di versi di lettura e scrittura. Un array 3 Disk 15K può variare tra 130IOPS e 500IOPS a seconda della razione di lettura / scrittura. 50% di letture e 50% di scritture comporteranno prestazioni IOPS superiori a quelle di un singolo disco. L'uso di 3+ ​​mandrini migliora le prestazioni rispetto a 1 mandrino, giusto?
Stefan Lasiewski,

Penso solo al ridimensionamento di vdev e che le prestazioni in scrittura sono uguali a 1 disco, indipendentemente dalla composizione di quel vdev; mirror, RAIDZ, RAIDZ2, ecc. I dischi all'interno dei vdev sono lì per aumentare la tua capacità. Il numero di vdev viene utilizzato per costruire le prestazioni di striping. Le letture dai vdev verranno ridimensionate con il numero di unità.
ewwhite

1
Ho una notevole esperienza con questo, e posso confermare che nella maggior parte dei casi, RAIDZ NON supererà lo stesso numero di dischi lanciati in un array equivalente RAID5 / 6 tradizionale. La maggior parte degli array RAID5 / 6 tradizionali ottiene prestazioni IOPS (quella a cui quasi tutti tengono, anche quando non pensano di farlo) quando si aggiungono mandrini al set RAID, mentre ZFS no. In cambio, ZFS non perderà i tuoi dati e non soffre del problema "RAID write hole". Inoltre, tutte le istantanee, i cloni, la compressione e così via. E l'ARCO. E .. hai avuto l'idea.
Nex7,

2
Voglio solo essere chiaro: ZFS, dal suo stesso design, non vincerà guerre per le prestazioni. Puoi trovare filesystem alternativi e gestori di volumi (o combinazioni) che possono superare ZFS sullo stesso hardware (ext4 e una scheda RAID Adaptec, per esempio). L'unica eccezione a ciò di cui sono a conoscenza proviene da letture facilmente memorizzabili nella cache, in cui l'ARC spesso dà a ZFS un vantaggio sulla maggior parte delle alternative. Ma quando si tratta di scrivere? No. Lo sforzo che ZFS dedica all'integrità dei dati e al modo in cui gestisce le scritture non vincerà quasi mai concorsi sulla velocità. I compromessi sono integrità e set di funzionalità.
Nex7,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.