Sistem produksi menuntut filesystem yang diperkuat dari semua sisi. Episode ini membahas memastikan journal dan checksum aktif, mount options ketat untuk /tmp, quota dan limits, RAID plus snapshot plus backup offsite, UPS untuk filesystem COW, serta urutan fsck saat boot.

Sejauh ini kita membangun kemampuan. Episode 21 mengubah fokus menjadi pertahanan: langkah konkret untuk memastikan filesystem produksi tahan terhadap kegagalan, serangan, dan kesalahan manusia. Hardening bukan satu fitur — melainkan berlapis-lapis pengaman yang saling menutupi.
Kita mulai dari dasar yang sering diabaikan: memastikan journal dan checksum benar-benar aktif. Lalu mount options yang ketat, quota dan limits, kombinasi RAID + snapshot + backup offsite, UPS untuk filesystem COW, dan urutan fsck saat boot yang benar.
Di akhir episode ini, kalian punya checklist yang bisa langsung diterapkan ke server produksi.
Sebelum membangun hal rumit, pastikan fondasi aktif:
sudo dumpe2fs -h /dev/sda1 | grep -E "Filesystem features|Journal"
sudo xfs_info /dev/sda1Untuk ext4, pastikan has_journal ada di fitur dan tidak ada ^has_journal. Untuk XFS, periksa log=internal dan crc=1. Untuk btrfs/ZFS, pastikan checksum aktif dan bukan nodatacow:
sudo btrfs subvolume show /mnt/lab | grep flags
zfs get checksum labpool/dataMenonaktifkan journal atau checksum demi performa tanpa pemahaman penuh adalah keputusan paling berbahaya dalam filesystem — perlindungan crash dan deteksi korupsi hilang sekaligus.
Partisi yang bisa dieksekusi tanpa perlu — terutama /tmp — wajib di-mount dengan batasan:
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,mode=1777,size=2G 0 0Option noexec,nodev,nosuid mencegah eksekusi binary dari area tulis publik, memblokir perangkat, dan menonaktifkan setuid. Untuk /var, /home, dan partisi data lain, terapkan kebijakan serupa jika workload mengizinkan.
Verifikasi option yang aktif:
findmnt -no OPTIONS /tmpTanpa quota, satu proses nakal bisa memenuhi seluruh disk dan menghentikan layanan lain. Aktifkan limit sejak awal:
sudo tune2fs -O quota /dev/sda1
sudo mount -o usrquota /dev/sda1 /home
sudo setquota -u www-data 0 20G 0 0 /homeUntuk btrfs, gunakan qgroup (episode 8):
sudo btrfs quota enable /mnt/data
sudo btrfs qgroup limit 50G 1/0 /mnt/dataJangan lupa memantau kapasitas global dan memberi peringatan sebelum disk benar-benar penuh — quota adalah jaring pengaman, bukan satu-satunya pertahanan.
Tiga mekanisme berbeda menangani tiga jenis kegagalan:
Ketiganya saling melengkapi, tidak saling menggantikan. RAID tidak melindungi dari file terhapus; snapshot tidak melindungi dari disk mati; backup tidak melindungi dari keterlambatan restore.
sudo zpool create data mirror sda sdb # RAID
sudo zfs snapshot data@harian-$(date +%F) # snapshot harian
sudo zfs send data@harian-$(date +%F) | ssh offsite "zfs receive backup" # offsitePola yang sama berlaku untuk btrfs: mirror multi-device + snapshot + send/receive. Yang penting bukan alatnya, melainkan ketiga lapis itu hadir dan terjadwal.
btrfs dan ZFS bergantung pada atomicity operasi pointer — jika listrik mati di tengah urutan operasi, transaksi bisa berada di keadaan tak konsisten. Meskipun keduanya dirancang untuk pulih dari crash, kejadian yang berulang meningkatkan risiko.
Ini alasan pentingnya UPS (Uninterruptible Power Supply) pada server yang memakai btrfs atau ZFS:
Pastikan sistem melakukan unmount dan export pool secara bersih saat UPS mengirim sinyal:
sudo zpool export dataSinkronkan power management dengan UPS melalui apcupsd atau nut, dan uji prosedur shutdown beberapa kali. Filesystem COW yang sehat adalah yang jarang mengalami pemadaman paksa.
fsck yang berjalan otomatis saat boot bisa menggantung sistem jika meminta input interaktif. Konfigurasikan timeout:
fsck.mode=force fsck.repair=yesParameter kernel fsck.repair=yes membuat fsck memperbaiki otomatis tanpa menunggu input. Kombinasi fsck.mode=force memaksa pemeriksaan penuh untuk maintenance window.
Filesystem yang gagal saat boot sebaiknya masuk mode read-only daripada membiarkan tulis ke struktur yang rusak. Untuk ext4, opsi ini diatur saat mkfs atau mount:
/dev/sda1 / ext4 defaults,errors=remount-ro 0 1Dengan errors=remount-ro, filesystem menjadi read-only saat error — melindungi sisa data dari kerusakan tambahan sampai admin turun tangan.
systemd menangani urutan fsck lewat unit systemd-fsck. Pastikan ordering yang benar:
systemctl status systemd-fsck-root.service
systemd-analyze verify /etc/fstabsystemd-analyze verify /etc/fstab memvalidasi entri fstab dan dependensi unit yang dihasilkan. Perbaiki semua warning sebelum menyatakan sistem siap produksi.
Production hardening adalah disiplin, bukan daftar sekali jalan. Memastikan journal dan checksum aktif, mount options yang ketat, quota, tiga lapis perlindungan data, UPS untuk COW, dan urutan fsck yang benar — semua itu membentuk pertahanan yang berlapis. Setiap lapis bisa gagal, tapi tidak sekaligus.
Inti yang harus dibawa pulang:
/tmp dan area publik dengan noexec,nodev,nosuid.fsck.repair=yes, errors=remount-ro, dan validasi fstab dengan systemd.Di episode 22 — episode terakhir — kita membahas ekosistem, alternatif, dan refleksi akhir. Kita bandingkan semua filesystem, kenali alternatif seperti F2FS dan NILFS2, garis bawahi bahwa RAID bukan filesystem dan filesystem bukan backup, lalu rekap seluruh series dengan checklist produksi lengkap. Perjalanan kalian hampir selesai.