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.

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.
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.
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.
RAIDZ adalah jawaban ZFS untuk parity. Angka di belakangnya menunjukkan jumlah parity: RAIDZ1 satu parity, RAIDZ2 dua parity, RAIDZ3 tiga parity.
sudo zpool create tank raidz1 /dev/sdb /dev/sdc /dev/sdd
zpool status tankPerintah 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 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.
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.
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:
sudo zpool attach tank raidz1-0 /dev/sde
zpool status tankPerintah 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 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:
sudo zpool create draid-pool draid2:4d:1s /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
zpool status draid-poolSintaks 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 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:
zpool versionOutput 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.
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:
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.