Memilih filesystem adalah keputusan arsitektur yang jarang bisa diubah. Episode ini menyusun panduan pemilihan ext4, XFS, btrfs, ZFS, dan tmpfs berdasarkan workload, lengkap dengan tradeoff fitur, overhead RAM, dan realitas dukungan vendor.

Setelah 17 episode mempelajari setiap filesystem secara mendalam, episode 18 menjawab pertanyaan paling praktis: mana yang harus saya pilih? Tidak ada jawaban universal — yang ada adalah kerangka keputusan yang mempertimbangkan workload, tim, dan realitas dukungan.
Episode ini menyusun panduan pemilihan untuk ext4, XFS, btrfs, ZFS, dan tmpfs. Lalu kita membahas tradeoff yang sering diabaikan: biaya fitur, overhead RAM ZFS, dan politik dukungan vendor. Pada akhirnya kalian akan mendapat checklist yang bisa dijalankan di proyek nyata.
Ingat prinsip dari episode 10: cocokkan filesystem dengan workload, bukan sebaliknya.
ext4 adalah default Ubuntu dan Debian — filesystem paling teruji dan paling sederhana.
Cocok untuk:
Tidak ideal untuk:
Keunggulan terbesarnya adalah kesederhanaan: dokumentasi lengkap, recovery yang sudah sangat dipahami, dan overhead CPU/RAM yang hampir nol.
XFS adalah default RHEL, Rocky, dan AlmaLinux — dirancang untuk file besar dan beban paralel.
Cocok untuk:
Tidak ideal untuk:
btrfs adalah default openSUSE — membawa snapshot, kompresi, dan checksum ke dalam kernel.
Cocok untuk:
Tidak ideal untuk:
ZFS adalah pilihan TrueNAS dan storage enterprise — integritas, pool, dan RAIDZ dalam satu paket.
Cocok untuk:
Tidak ideal untuk:
tmpfs menyimpan semuanya di RAM dan swap:
Cocok untuk:
/dev/shm dan container ephemeral.Tidak ideal untuk:
Setiap fitur adalah biaya operasional. ZFS dengan snapshot, dedup, dan ARC adalah filesystem terkuat — tapi juga paling kompleks untuk dioperasikan dan di-debug. ext4 yang "membosankan" justru menjadi nilai karena siapa pun bisa mengelolanya.
Pertanyaan jujur untuk ditanyakan: siapa yang akan mengoperasikan storage ini selama tiga tahun ke depan? Jika jawabannya bukan ahli ZFS, pertimbangkan kesederhanaan.
ARC (Adaptive Replacement Cache) ZFS memakai RAM sistem secara dinamis, sering mencapai setengah memori total pada server besar:
arcstatNilai size menampilkan RAM yang dipakai ARC. Atur batasnya:
echo 8589934592 | sudo tee /sys/module/zfs/parameters/zfs_arc_maxIngat: RAM yang dipakai ARC bukan buangan — itu cache yang mempercepat baca. Tapi server dengan workload lain yang juga butuh memori harus menetapkan batas.
Dua realitas politik yang mempengaruhi pilihan:
Konsekuensi praktis: pilihan filesystem kadang ditentukan oleh ekosistem, bukan murni teknologi.
Gunakan alur bertingkat ini:
butuh snapshot native? → ya: btrfs / ZFS
→ butuh pool & RAIDZ? → ya: ZFS
→ bukan: btrfs
butuh throughput besar? → ya: XFS
kebutuhan umum / root / sederhana → ext4
data sementara di RAM → tmpfsTiga pertanyaan utama:
Jangan pilih berdasarkan opini — ukur di workload nyata. Replay jejak tulis aplikasi kalian dengan fio:
fio --name=uji --rw=randwrite --bs=8k --iodepth=16 --size=2G --direct=1 --runtime=60 --time_basedJalankan benchmark yang sama di ext4, XFS, btrfs, dan ZFS (dengan recordsize sesuai workload), lalu bandingkan. Data lebih meyakinkan daripada brosur. Gunakan fio --name=uji --rw=randwrite --bs=8k sebagai baseline yang sama untuk semua filesystem agar perbandingannya adil.
Memilih filesystem adalah keputusan yang mempertimbangkan teknologi dan manusia: workload menentukan kebutuhan, tim menentukan kompleksitas yang bisa dikelola, dan ekosistem menentukan dukungan yang tersedia. Tidak ada pilihan sempurna — hanya pilihan yang paling sesuai.
Inti yang harus dibawa pulang:
zfs_arc_max sesuai kebutuhan.Di episode 19 selanjutnya kita membahas cloud dan managed storage — perbedaan instance store dan EBS/gp3, filesystem untuk cloud images, object storage S3-compatible, serta EFS, Azure Files, dan GCP Filestore. Kalian akan belajar kapan storage lokal dan kapan layanan terkelola.