Episode ini membahas RAID pada media solid-state: dukungan TRIM dan discard di array mdadm, wear-leveling dan endurance, overhead parity untuk SSD, serta peran SLOG/ZIL dan L2ARC pada ZFS untuk cache dan log tulis.

Semua pembahasan kita sejauh ini mengasumsikan HDD. Episode 10 ini membahas hal yang banyak admin lupakan: RAID di atas SSD dan NVMe berperilaku berbeda. SSD punya sel flash dengan jumlah tulis terbatas, dan RAID parity bisa mempercepat penuaan flash kalau tidak diatur dengan benar.
Namun media solid-state juga membuka peluang baru: latensi sangat rendah, TRIM untuk mengembalikan ruang, dan desain cache ZFS seperti SLOG dan L2ARC. Di episode ini kalian akan belajar melindungi umur SSD sekaligus memaksimalkan performanya di dalam array. Mari mulai dari TRIM.
Saat HDD menghapus file, data lama bisa ditimpa kapan saja. SSD tidak bisa menimpa begitu saja — halaman flash harus di-erase dulu sebelum ditulis ulang. TRIM memberi tahu SSD blok mana yang sudah tidak terpakai sehingga controller bisa membersihkannya di latar belakang. Tanpa TRIM, SSD akan melambat seiring waktu karena harus terus mengkopi halaman yang masih berisi data basi.
mdadm meneruskan perintah TRIM (disebut discard) ke disk anggota selama fitur bitmaps diaktifkan:
sudo tune2fs -o discard /dev/md0
sudo fstrim -v /mnt/raidPerintah fstrim -v /mnt/raid mengirim TRIM secara manual untuk seluruh ruang kosong. Menambahkan opsi discard di tune2fs membuat kernel mengirim TRIM otomatis saat file dihapus — untuk workload tertentu, jadwal fstrim berkala lebih ramah performa.
Untuk memastikan TRIM bekerja melewati array, periksa apakah MD mendukung discard:
sudo mdadm --detail /dev/md0 | grep -i "discard\|bitmap"Output mdadm --detail menampilkan fitur seperti resync dan potensi bitmap. mdadm mengaktifkan discard secara otomatis pada metadata versi 1.1 dan 1.2 — salah satu alasan memilih metadata modern di episode 4.
SSD menulis data dalam unit besar di tingkat internal (mempengaruhi endurance), meskipun OS mengirim tulis kecil. Wear-leveling adalah mekanisme controller untuk menyebar penulisan ke seluruh sel agar tidak ada sel yang cepat aus. Jumlah total tulis yang bisa ditampung diukur dengan TBW (Terabytes Written) — nilai ini menentukan umur SSD.
RAID 5 dan 6 memberlakukan read-modify-write: setiap tulis kecil memaksa sistem membaca blok, menghitung parity, lalu menulis dua kali (data dan parity). Ini menggandakan jumlah tulis fisik yang harus ditanggung SSD. Di ZFS, ada tambahan lain: setiap blok juga menyimpan checksum dan metadata ZFS.
Dampaknya, dua hal yang harus diperhatikan:
NVMe adalah protokol yang dirancang untuk media solid-state, dengan ratusan ribu IOPS dan latensi mikro-detik. Menggabungkan beberapa NVMe dalam array bisa memberi throughput giga-byte per detik. Namun di banyak sistem, perangkat NVMe memiliki endurance yang lebih rendah dibanding SSD SATA enterprise — pengecekan angka TBW menjadi wajib.
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/nvme0n1 /dev/nvme1n1Perintah mdadm --create --level=0 di atas membuat striping murni. RAID 0 tidak memberi redundancy — cocok untuk cache scratch atau data yang bisa dibangun ulang. Untuk data penting, pertimbangkan mirror atau RAID 10 di atas NVMe meski biaya kapasitasnya dua kali lipat.
ZFS menulis setiap tulis sinkron ke ZIL (ZFS Intent Log) untuk menjamin konsistensi, lalu menggabungkannya ke disk utama di latar belakang. Dengan menempatkan ZIL di perangkat cepat bernama SLOG (Separate Intent Log), kalian memindahkan beban tulis sinkron dari disk data ke perangkat yang lebih cepat:
sudo zpool add tank log /dev/nvme1n1p1
zpool status tankPerintah zpool add tank log /dev/nvme1n1p1 menambahkan sebuah partisi NVMe sebagai perangkat log. Output zpool status menampilkan bagian logs terpisah. SLOG tidak menyimpan data permanen — cukup cermin kecil dari tulis sinkron, sehingga bisa berupa NVMe dengan endurance tinggi.
L2ARC adalah cache baca berbasis SSD yang terletak di depan disk HDD:
sudo zpool add tank cache /dev/nvme2n1
zpool status tankPerintah zpool add tank cache menambahkan SSD sebagai L2ARC. Data yang sering dibaca dari HDD akan ter-serve dari SSD dengan latensi jauh lebih rendah. L2ARC bersifat volatile terhadap reboot — isinya tidak bertahan, hanya mempercepat setelah warming up.
Info
Jangan salah mengira SLOG dan L2ARC sebagai pengganti RAM. L2ARC hanya berguna jika kapasitasnya berkali-kali lebih besar dari ARC RAM; jika lebih kecil dari ARC, ia justru membuang resource. Ukur workload dengan zpool iostat sebelum menambah cache.
Pada hardware RAID, cache tulis dilindungi baterai atau supercap agar tulis di cache tidak hilang saat listrik padam. Di dunia ZFS, peran yang sama dimainkan oleh SLOG yang andal — disarankan perangkat dengan power-loss protection, atau NVDIMM untuk latensi terendah dan data yang aman saat mati listrik.
Episode 10 menjelaskan bahwa RAID di atas SSD dan NVMe menuntut perhatian ekstra: aktifkan TRIM, pahami dampak parity pada endurance, dan manfaatkan desain cache ZFS — SLOG untuk tulis sinkron dan L2ARC untuk baca — agar media solid-state kalian awet sekaligus cepat.
Inti yang harus dibawa pulang:
Di episode 11 selanjutnya kita akan membahas boot, partitioning & OS integration — menempatkan /boot di array, integrasi GRUB, GPT vs MBR, alignment 4K, serta urutan luks-on-raid versus raid-on-luks. Kalian akan belajar membuat sistem yang bisa boot langsung dari RAID.