Apakah menghitung IOPS untuk ZFS RAIDZ berbeda dengan menghitung IOPS untuk RAID5 & RAID6?

13

Saat menghitung IOPS untuk array RAID tradisional, seseorang dapat menggunakan rumus berikut (Dipinjam dari Mendapatkan IOPS v1.3 pada Symantec Connect):

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

Dimana:

  • Efektif adalah jumlah efektif IOPS
  • Isingle adalah IOPS rata-rata satu drive .
  • n adalah jumlah disk dalam array
  • READ% adalah sebagian kecil dari pembacaan yang diambil dari profil disk
  • WRITE% adalah fraksi dari penulisan yang diambil dari profil disk
  • F adalah penalti penulisan RAID :

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

Formula pada dasarnya adalah fungsi dari:

  • IOPS untuk setiap drive individual dalam array
  • Jumlah disk. Lebih banyak disk berarti lebih banyak IOPS
  • Denda RAID untuk setiap operasi penulisan.
    • RAID5 & RAID6 membutuhkan 4+ operasi disk untuk setiap penulisan. Pengontrol harus membaca blok dan kemudian membaca data paritas (dua operasi), menghitung data paritas baru dan kemudian memperbarui blok paritas dan memperbarui blok data (Dua operasi lagi). RAID6 memiliki dua blok paritas dan karenanya memerlukan tiga kali baca dan tiga tulisan. RAID5 & RAID6 array karena itu mampu IOPS lebih sedikit daripada RAID1.
    • RAID1 & RAID10 hanya membutuhkan 2 penulisan, satu untuk setiap disk di mirror.

Dan untuk menjadi jelas, ini semua memberikan perkiraan kinerja teoretis. Berbagai pengontrol dan metode RAID memiliki trik untuk mempercepatnya.

Setara dengan ZFS dari RAID5 & RAID6 adalah RAIDZ dan RAIDZ2. Saat menghitung IOPS untuk array RAIDZ, dapatkah saya menggunakan rumus yang sama yang saya gunakan untuk RAID5 & RAID6, atau apakah ZFS memiliki trik khusus untuk mengurangi jumlah operasi yang diperlukan untuk operasi penulisan.

Apakah ada formula yang berbeda untuk digunakan ketika menghitung IOPS untuk array RAIDZ?

Stefan Lasiewski
sumber
1
Besar pertanyaan. Saya menantikan untuk membaca jawaban ...
EEAA
1
Iops adalah mitos tetapi dokumen ini dapat memberikan beberapa wawasan. info.nexenta.com/rs/nexenta/images/…
tony roth
IOPS mungkin teoretis, tetapi dapat memberikan penjelasan mengapa array RAID10 biasanya akan mengungguli array RAID5, mengingat drive yang sama.
Stefan Lasiewski
Satu kutipan penting dari dokumen Nexenta: "Dalam konfigurasi RAIDZ-2, satu IO yang masuk ke VDEV perlu dipecah dan ditulis di semua disk data. Kemudian paritas harus dihitung dan ditulis ke disk sebelum IO dapat menyelesaikannya. Jika semua disk memiliki latensi yang sama, semua operasi ke disk akan selesai pada saat yang sama, sehingga menyelesaikan IO ke VDEV dengan kecepatan satu disk . Jika ada disk lambat dengan latensi tinggi di RAIDZ-2 VDEV, IO ke VDEV tidak lengkap sampai IO pada drive paling lambat selesai. "
Stefan Lasiewski

Jawaban:

13

Ini lebih mudah dijawab ...

Semuanya disaring di sini: rekomendasi ZFS RAID: ruang, kinerja, dan MTTDL dan Pandangan Lebih Dekat pada ZFS, Vdevs, dan Kinerja

  • RAIDZ dengan satu drive paritas akan memberikan Anda kinerja IOPS disk tunggal, tetapi n-1 kali agregat bandwidth dari disk tunggal.

Jadi, jika Anda perlu skala, Anda skala dengan jumlah RAIDZ vdevs ... Misalnya dengan 16 disk, 4 grup RAIDZ 4-disk akan memiliki potensi IOPS lebih besar daripada 2 grup RAIDZ 8-disk.

Mengejutkan, bukan?

Saya biasanya menggunakan mirror bergaris (RAID 1 + 0) pada instalasi ZFS saya. Konsep yang sama berlaku. Lebih banyak pasangan cermin == kinerja yang lebih baik.

Di ZFS, Anda hanya dapat memperluas dalam unit vdev penuh. Jadi, sementara perluasan set RAID 1 + 0 berarti menambahkan lebih banyak pasangan, melakukan hal yang sama untuk set RAIDZ berarti menambahkan lebih banyak grup RAIDZ dari komposisi yang sama.

putih
sumber
Artikel bagus, tapi sudah sangat tua sehingga perbandingan tautan ZFS RAID1 vs RAID5 ("Hasil Model Paritas Tunggal" dan "Hasil Model Paritas Ganda" tidak ada). Tikus!
Stefan Lasiewski
RAIDZ dengan satu drive paritas akan memberi Anda kinerja IOPS disk tunggal. Ini menarik, apakah itu nilai konstan terlepas dari persentase baca dan tulis? Sebagai contoh, kinerja RAID5 sangat bervariasi tergantung pada persentase penulisan ayat baca. Array 3 Disk 15K dapat bervariasi antara 130IOPS dan 500IOPS tergantung pada rasio baca / tulis. 50% membaca & 50% menulis akan menghasilkan kinerja IOPS lebih dari satu disk. Menggunakan 3+ spindel meningkatkan kinerja vs. 1 spindel, benar?
Stefan Lasiewski
Saya hanya berpikir tentang penskalaan vdev dan bahwa kinerja pada penulisan sama dengan 1 disk, terlepas dari komposisi vdev itu; mirror, RAIDZ, RAIDZ2, dll. Disk di dalam vdev ada untuk meningkatkan kapasitas Anda. Jumlah vdevs digunakan untuk membangun kinerja striping Anda. Membaca dari vdevs akan diskala dengan # drive.
ewwhite
1
Saya memiliki sejumlah besar pengalaman dengan ini, dan dapat mengkonfirmasi untuk Anda bahwa dalam kebanyakan situasi, RAIDZ TIDAK akan mengungguli jumlah disk yang sama yang dilemparkan ke array setara RAID5 / 6 tradisional. Kebanyakan array RAID5 / 6 tradisional mendapatkan kinerja IOPS (yang hampir semua orang pedulikan, bahkan ketika mereka tidak berpikir demikian) ketika Anda menambahkan spindle ke set RAID, sedangkan ZFS tidak akan melakukannya. Sebagai imbalannya, ZFS tidak akan kehilangan data Anda, dan tidak mengalami masalah 'lubang penulisan RAID'. Ditambah lagi seluruh snapshot, klon, kompresi dan sebagainya. Dan ARC. Dan .. Anda mendapatkan idenya.
Nex7
2
Saya hanya ingin menjadi jelas - ZFS adalah dengan desainnya tidak akan memenangkan perang kinerja. Anda dapat menemukan sistem file & volume manajer alternatif (atau kombinasi) yang dapat mengungguli ZFS pada perangkat keras yang sama (ext4 & kartu Adaptec RAID, misalnya). Satu-satunya pengecualian untuk hal ini yang saya sadari berasal dari bacaan yang mudah di-cache, di mana ARC sering memberi ZFS langkah di sebagian besar alternatif. Tetapi ketika harus menulis? Tidak. Upaya yang ZFS habiskan untuk integritas data dan bagaimana ia menangani penulisan hampir tidak pernah akan memenangkan kontes kecepatan. Imbalannya adalah integritas dan set fitur.
Nex7