Belajar RAID - Konsep Dasar & Level RAID
Episode 2 of 23

Belajar RAID - Konsep Dasar & Level RAID

Episode ini mengupas tiga mekanisme dasar RAID — striping, mirroring, dan parity — serta level RAID 0, 1, 4, 5, 6, 10, dan nested, termasuk cara menghitung kapasitas dan overhead serta tradeoff URE untuk disk besar.

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

Pendahuluan

Episode 1 sudah menjelaskan mengapa RAID ada. Sekarang saatnya membangun fondasi teknis: bagaimana RAID sebenarnya bekerja. Episode 2 ini memperkenalkan tiga mekanisme dasar — striping, mirroring, dan parity — lalu merangkainya menjadi level RAID yang akan kalian temui di produksi.

Memahami level RAID dengan benar adalah pembeda antara admin yang sekedar menjalankan perintah dan admin yang bisa merancang storage. Kalian akan belajar membaca angka di belakang level seperti "RAID 5" dan tahu persis apa yang didapat dan apa yang dikorbankan. Mari mulai dari mekanisme yang paling sederhana.

Tiga Mekanisme Dasar

Striping: Distribusi Data Antar Disk

Striping membagi data menjadi potongan (stripe) dan mendistribusikannya ke beberapa disk secara bergantian. Ukuran tiap potongan disebut chunk size. Dengan striping, tulis dan baca besar bisa memanfaatkan beberapa disk sekaligus, sehingga throughput meningkat. Kelemahan terbesarnya: tanpa parity atau mirror, satu disk mati berarti seluruh array mati.

Striping pada 4 disk
data: A1 A2 A3 A4 B1 B2 B3 B4
disk1: A1 B1 | disk2: A2 B2 | disk3: A3 B3 | disk4: A4 B4

Chunk size yang terlalu kecil membuat overhead seek tinggi, terlalu besar membuat distribusi tidak merata. Nilai umum adalah 64K atau 512K, dan akan kita bahas untuk tuning di episode 18.

Mirroring: Duplikasi Data

Mirroring menulis data yang sama ke dua disk atau lebih secara lengkap. Setiap tulis menghasilkan duplikat, sehingga jika satu disk gagal, salinan tetap utuh. Baca bisa dibagi ke kedua disk untuk menambah throughput baca, sementara tulis dikenakan biaya ganda.

Mirroring pada 2 disk
disk1: A1 B1 C1 | disk2: A1 B1 C1

Mirroring adalah mekanisme paling sederhana dan paling cepat saat recovery, karena rebuild cukup menyalin dari disk pasangan tanpa menghitung apa pun.

Parity: Checksum Terdistribusi

Parity adalah data checksum yang dihitung dari isi beberapa blok data, biasanya memakai operasi XOR. Jika satu blok data hilang, blok itu bisa dihitung ulang dari blok data lain plus parity. Parity membutuhkan kapasitas jauh lebih kecil daripada mirroring — hanya satu atau dua disk — tapi setiap tulis memaksa sistem membaca blok lain dan menghitung parity, yang menambah overhead.

Parity XOR sederhana
a = 0b1010, b = 0b1100
parity = a XOR b = 0b0110
a = parity XOR b (rekonstruksi saat a hilang)

Nanti di episode 18 kita akan melihat bagaimana ZFS dan mdadm memilih algoritma parity yang efisien.

Level RAID dan Formula Kapasitas

RAID 0 dan RAID 1

  • RAID 0 memakai striping murni, tanpa redundancy. Kapasitas adalah N kali kapasitas disk. Cocok untuk data yang boleh hilang atau performa maksimal, misalnya cache dan scratch.
  • RAID 1 memakai mirroring. Kapasitas adalah N/2 untuk sepasang disk. Cocok untuk OS, boot, dan data yang butuh redundancy penuh.
Formula kapasitas dalam satu baris
# RAID 0: kapasitas = N * kapasitas_disk
# RAID 1: kapasitas = (N/2) * kapasitas_disk
# RAID 5: kapasitas = (N-1) * kapasitas_disk
# RAID 6: kapasitas = (N-2) * kapasitas_disk

Perintah mdadm --detail /dev/md0 nantinya menampilkan jumlah device aktif dan jumlah yang digunakan, sehingga kalian bisa mengecek apakah kapasitas sesuai formula.

RAID 5 dan RAID 6

  • RAID 5 memakai striping dengan parity tunggal. Parity disebar merata ke semua disk, bukan satu disk khusus. Kapasitas berguna N-1. Tahan terhadap satu disk gagal.
  • RAID 6 memakai striping dengan parity ganda (dua blok parity per stripe). Kapasitas berguna N-2. Tahan terhadap dua disk gagal, cocok untuk array besar atau disk berkapasitas tinggi.

RAID 4, RAID 10, dan Nested Level

  • RAID 4 memakai parity pada satu disk khusus. Sederhana secara konsep, tapi disk parity menjadi bottleneck tulis, sehingga jarang dipakai.
  • RAID 10 menggabungkan mirror dan striping: disk dipasang berpasangan sebagai mirror, lalu semua pasangan di-stripe. Kapasitas N/2, dengan rebuild yang cepat karena hanya menyalin dari pasangan.
  • RAID 50 dan 60 adalah nested level: beberapa array RAID 5 atau 6 digabung dengan striping untuk menyeimbangkan redundancy dan performa.
LevelMekanismeKapasitasTahan GagalKasus Penggunaan
RAID 0StripingN0 diskCache, scratch
RAID 1MirrorN/21 diskOS, boot
RAID 5Striping + parityN-11 diskNAS umum
RAID 6Striping + parity gandaN-22 diskDisk besar
RAID 10Mirror + stripingN/21 per grupDatabase

URE dan Tradeoff RAID 5 vs RAID 6

Bit Error Rate dan Rebuild Gagal

Setiap disk memiliki Unrecoverable Read Error (URE) — probabilitas bahwa satu bit tidak bisa dibaca saat dibutuhkan. Untuk HDD umum, angka ini sekitar 1 bit per 10 pangkat 14 bit yang dibaca, artinya sekitar 12,5TB. Saat rebuild RAID 5, seluruh isi array harus dibaca untuk menghitung ulang data disk yang hilang. Jika kapasitas array sudah mendekati angka URE, peluang menemukan satu bit yang tidak bisa dibaca selama rebuild menjadi besar.

Menampilkan URE disk lewat smartctl
sudo smartctl -a /dev/sda | grep -i read

Perintah smartctl -a /dev/sda menampilkan atribut SMART termasuk error rate. Kita akan membaca SMART secara rutin di episode 13.

Implikasi untuk Disk Besar

Untuk disk 4TB ke atas dengan banyak disk dalam satu array, RAID 5 mulai berisiko: kegagalan satu disk saat rebuild bisa dibarengi URE pada disk lain, dan array akan gagal total. RAID 6 memberi dua lapis parity sehingga masih bisa survive satu kegagalan lagi selama rebuild. Inilah alasan utama banyak tim storage beralih ke RAID 6 atau RAIDZ2 untuk disk besar.

Warning

Rebuild RAID 5 pada array disk besar adalah momen paling berbahaya dalam umur array. Selama rebuild, semua disk bekerja keras membaca data penuh — tekanan yang sama justru bisa memicu kegagalan disk kedua. RAID 6 atau RAIDZ2 direkomendasikan untuk array dengan kapasitas besar.

Penutup

Episode 2 memberi kalian bahasa teknis untuk berbicara tentang RAID: striping mendistribusikan data, mirroring menduplikasinya, dan parity melindunginya dengan checksum. Kalian juga sudah bisa menghitung kapasitas untuk level 0, 1, 5, 6, dan 10, serta memahami mengapa URE membuat RAID 6 lebih menarik untuk disk besar.

Inti yang harus dibawa pulang:

  • Striping menambah performa, mirroring menambah redundancy, parity menambah keduanya dengan harga tulis.
  • Formula kapasitas: RAID 0 memakai N, RAID 1 dan 10 memakai N/2, RAID 5 memakai N-1, RAID 6 memakai N-2.
  • RAID 10 adalah kombinasi mirror dan striping dengan rebuild cepat.
  • URE membuat rebuild RAID 5 berisiko pada array disk besar.
  • RAID 6 dan RAIDZ2 adalah jawaban untuk kapasitas dengan disk besar.

Di episode 3 selanjutnya kita akan membahas software vs hardware vs firmware RAID — kelebihan dan kekurangan kernel MD driver dengan mdadm, controller hardware dengan cache baterai, serta fake RAID IMSM dan DDF. Kalian akan tahu jalur implementasi mana yang tepat untuk kebutuhan kalian.