Belajar RAID - ZFS RAIDZ (dRAID, AnyRaid)
Episode 8 of 23

Belajar RAID - ZFS RAIDZ (dRAID, AnyRaid)

Episode ini membahas RAID berbasis ZFS: perbedaan RAIDZ1/2/3, alasan ZFS tidak memakai mdadm plus RAID 5, RAIDZ expansion yang stabil di OpenZFS 2.4, serta dRAID dan AnyRaid untuk storage berkapasitas besar.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Sampai episode 7, kita bekerja di level block device dengan mdadm. Episode 8 ini membuka dimensi baru: RAID di dalam filesystem. ZFS membawa konsep RAIDZ yang menggabungkan manajemen penyimpanan, checksum, dan snapshot dalam satu lapisan — dan inilah alasan banyak admin modern berpindah dari hardware RAID ke ZFS.

Kenapa ini penting? Karena RAIDZ bukan sekadar cara menggabungkan disk. Ia menghadirkan integritas data: setiap blok di-checksum, setiap baca diverifikasi, dan setiap kegagalan dideteksi sebelum merusak data. Di episode ini kalian akan memahami mengapa ZFS menolak kombinasi mdadm plus RAID 5, dan bagaimana RAIDZ1/2/3 bekerja. Mari mulai dari fondasinya.

Satu catatan sebelum lanjut: ZFS adalah filesystem, bukan sekadar alat pembuat array. Karena itu aturan yang berlaku berbeda dari mdadm — contohnya, kalian tidak bisa mencampur disk dengan ukuran sangat berbeda dalam satu vdev tanpa kehilangan efisiensi. Konsep ini akan terasa asing jika kalian terbiasa bekerja di level block device, tapi akan masuk akal setelah kalian melihat bagaimana ZFS mengelola data secara keseluruhan.

Mengapa ZFS Tidak Memakai mdadm plus RAID 5

Masalah Tulis Parity yang Tidak Atomik

Kombinasi mdadm dan RAID 5 dikenal dengan istilah write hole: saat listrik padam di tengah penulisan stripe, sebagian blok data dan parity bisa tidak sinkron. Karena mdadm tidak mencatat urutan tulis, setelah reboot array "terlihat" bersih padahal datanya rusak diam-diam.

ZFS menutup lubang ini dengan urutan tulis yang ketat: data selalu ditulis dulu, checksum dihitung, lalu parity dihitung dari data yang sudah konsisten. Tidak ada jendela di mana parity bisa meleset dari data. Inilah salah satu alasan fundamental ZFS lebih aman untuk parity RAID.

Checksum dan Self-healing

Selain itu, ZFS menyimpan checksum untuk setiap blok. Saat ZFS membaca blok dan menemukan mismatch, ia tahu persis blok mana yang rusak. Jika ada disk mirror atau parity yang bisa menghitung ulang, ZFS memperbaiki blok itu secara otomatis — konsep yang disebut self-healing. mdadm tidak bisa melakukan ini karena tidak menyimpan checksum.

RAIDZ1, RAIDZ2, RAIDZ3

Membuat Pool RAIDZ

RAIDZ adalah jawaban ZFS untuk parity. Angka di belakangnya menunjukkan jumlah parity: RAIDZ1 satu parity, RAIDZ2 dua parity, RAIDZ3 tiga parity.

Membuat pool RAIDZ1
sudo zpool create tank raidz1 /dev/sdb /dev/sdc /dev/sdd
zpool status tank

Perintah zpool create tank raidz1 membuat pool bernama tank dari tiga disk. Output zpool status tank menampilkan config: dengan vdev raidz1 dan semua disk berstatus ONLINE.

Kapasitas dan Overhead

Kapasitas RAIDZ mengikuti aturan yang sama dengan RAID konvensional: RAIDZ1 menyisakan N-1 kapasitas, RAIDZ2 menyisakan N-2, RAIDZ3 menyisakan N-3. Namun ada aturan penting: ZFS menganjurkan jumlah disk yang seimbang dan menolak vdev RAIDZ yang terlalu kecil.

Memilih Level

  • RAIDZ1: hemat, cocok untuk data yang bisa direplikasi lain.
  • RAIDZ2: standar untuk data penting — tahan dua disk gagal sekaligus.
  • RAIDZ3: untuk array sangat besar atau data yang sangat berharga.

Info

Di ZFS, kesalahan umum adalah membuat satu vdev RAIDZ besar lalu menambah disk satu-satu. ZFS tidak bisa menambah disk ke vdev RAIDZ secara langsung (kecuali fitur expansion yang akan kita bahas) — pola yang benar adalah menambah vdev baru berupa mirror atau RAIDZ lain.

RAIDZ Expansion dan dRAID

RAIDZ Expansion

Salah satu keterbatasan historis RAIDZ adalah tidak bisa menambah disk ke vdev yang ada. Fitur RAIDZ expansion — yang stabil di OpenZFS 2.3 dan matang di 2.4 — mengubah ini. Kini kalian bisa menambah satu disk ke vdev RAIDZ:

Ekspansi vdev RAIDZ
sudo zpool attach tank raidz1-0 /dev/sde
zpool status tank

Perintah zpool attach tank raidz1-0 /dev/sde menambah /dev/sde ke vdev dan memulai redistribusi data. Prosesnya bertahap dan bisa berjalan lama, tapi tidak perlu downtime.

dRAID: Declustered RAID

dRAID adalah varian RAIDZ yang mendistribusikan parity dan data secara lebih merata menggunakan distributed spare. Keuntungannya: saat rebuild, kerja didistribusikan ke semua disk, bukan hanya beberapa disk, sehingga rebuild jauh lebih cepat dan tekanan disk lebih merata. Cocok untuk storage besar dengan banyak disk:

Membuat pool dRAID
sudo zpool create draid-pool draid2:4d:1s /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
zpool status draid-pool

Sintaks draid2:4d:1s berarti dua parity, empat data disk, dan satu spare logis yang tersebar. dRAID sudah matang di OpenZFS 2.4 dan menjadi pilihan utama untuk storage rack dengan puluhan disk.

AnyRaid dan Perbandingan Akhir

AnyRaid di OpenZFS 2.4

AnyRaid adalah fitur baru di OpenZFS 2.4 yang membebaskan kalian dari aturan kaku RAIDZ: kini kalian bisa mendesain topologi parity dan data secara fleksibel, misalnya menyebar data ke lebih banyak disk daripada yang dibutuhkan untuk parity. Ini menjembatani fleksibilitas mirip RAID 10 dengan efisiensi RAIDZ:

Cek versi OpenZFS
zpool version

Output zpool version harus menampilkan versi ZFS yang valid. AnyRaid, RAIDZ expansion, dan dRAID semuanya membutuhkan OpenZFS 2.4 ke atas — pastikan distro atau repository kalian sudah menyediakannya.

Kapan Memilih

  • RAIDZ1/2: jumlah disk 3 sampai 10, data penting tapi tidak kritis.
  • RAIDZ3: 11 disk ke atas atau data sangat berharga.
  • dRAID: 16 disk ke atas, mengutamakan rebuild cepat dan distribusi merata.
  • AnyRaid: topologi non-standar yang butuh fleksibilitas desain.

Penutup

Episode 8 memperkenalkan ekosistem RAID ZFS: RAIDZ1/2/3 yang aman dari write hole berkat checksum, RAIDZ expansion untuk menambah disk, dRAID untuk storage besar dengan rebuild cepat, dan AnyRaid untuk desain topologi fleksibel di OpenZFS 2.4.

Inti yang harus dibawa pulang:

  • ZFS menutup write hole RAID 5 lewat urutan tulis dan checksum per blok.
  • RAIDZ1, RAIDZ2, RAIDZ3 adalah parity dengan kapasitas N-1, N-2, N-3.
  • Checksum dan self-healing membuat ZFS mendeteksi korupsi diam-diam.
  • RAIDZ expansion menambah disk ke vdev tanpa membangun ulang.
  • dRAID mendistribusikan spare dan mempercepat rebuild pada array besar.
  • AnyRaid memberi kebebasan desain topologi parity dan data di OpenZFS 2.4.

Di episode 9 selanjutnya kita akan membahas RAID 10 & performance workloads — mengapa mirror-plus-stripe jadi favorit database dan VM, cara menghitung IOPS, serta kapan memilih RAID 10 dibanding RAIDZ atau RAID 6. Kalian akan belajar mendesain storage untuk beban kerja yang menuntut.

Belajar RAID - ZFS RAIDZ (dRAID, AnyRaid) | Belajar RAID