Filesystem produksi butuh batasan, kerahasiaan, dan verifikasi. Episode ini membahas user/project quota pada ext4 dan XFS serta qgroup btrfs, enkripsi dengan LUKS dan ZFS native encryption, lalu penjadwalan scrub checksum untuk mendeteksi silent corruption.

Filesystem yang sehat bukan hanya soal kecepatan — dia juga harus terkendali, rahasia, dan terverifikasi. Tiga sifat ini dijaga oleh tiga mekanisme berbeda: quota untuk membatasi pemakaian ruang, enkripsi untuk melindungi data saat disk dicuri, dan checksum scrub untuk mendeteksi korupsi yang tidak tampak.
Episode 8 ini membahas ketiganya secara praktis. Kita mulai dengan quota pada ext4/XFS dan qgroup btrfs, lalu enkripsi dengan LUKS dan ZFS native encryption, dan ditutup dengan penjadwalan scrub untuk menjaga integritas jangka panjang.
Ini adalah fondasi dari apa yang akan menjadi checklist production hardening di episode 21. Karena topiknya sensitif, semua eksperimen dilakukan di disk loopback, bukan di data produksi.
Quota membatasi jumlah blok dan inode yang bisa dipakai. Dua tipe yang umum: user quota (per pemilik file) dan project quota (per direktori proyek). Untuk ext4, aktifkan saat mkfs atau dengan tune2fs:
sudo tune2fs -O quota /dev/loop0
sudo mount -o usrquota,grpquota /dev/loop0 /mnt/lab
sudo quotacheck -ugm /mnt/labSetelah mount, atur batas dengan edquota atau langsung setquota:
sudo setquota -u arman 0 1048576 0 0 /mnt/labAngka kedua 1048576 adalah batas soft dalam blok 1KB (1GB); batas hard menyusul. Pada XFS, quota aktif secara default lewat mount options:
sudo mount -o pquota /dev/loop0 /mnt/lab
sudo xfs_quota -x -c 'limit -p bsoft=1g bhard=2g proyek1' /mnt/labPerintah xfs_quota adalah tool resmi XFS untuk mengelola quota berbasis proyek.
btrfs memakai qgroup (quota group) yang berbasis hierarki subvolume:
sudo btrfs quota enable /mnt/lab
sudo btrfs qgroup create 1/100 /mnt/lab
sudo btrfs qgroup limit 1G 1/100 /mnt/lab
sudo btrfs qgroup show /mnt/labqgroup menghitung pemakaian dengan mempertimbangkan shared data COW antar snapshot — sesuatu yang tidak bisa dilakukan quota tradisional. Periksa pemakaian dengan btrfs qgroup show.
LUKS (Linux Unified Key Setup) adalah standar enkripsi disk penuh berbasis dm-crypt. Format, buka, dan buat filesystem di atasnya:
sudo cryptsetup luksFormat /dev/loop0
sudo cryptsetup open /dev/loop0 rahasia
sudo mkfs.ext4 /dev/mapper/rahasiaPerangkat terenkripsi muncul sebagai /dev/mapper/rahasia — di atasnya kalian bebas membuat filesystem apa pun. Periksa status:
sudo cryptsetup status rahasia
sudo cryptsetup luksDump /dev/loop0cryptsetup luksDump menampilkan cipher, ukuran key, dan slot kunci. Simpan LUKS header — tanpa header ini, data tidak bisa didekripsi meski password benar.
ZFS memiliki enkripsi native di level dataset:
sudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase labpool/rahasia
sudo zfs mount -l labpool/rahasia-l meminta passphrase saat mount. ZFS memakai AES-GCM dan di OpenZFS 2.4 dipercepat dengan instruksi AVX2, sehingga overhead enkripsinya sangat rendah pada hardware modern. Key di-cache oleh ZFS dan bisa di-load otomatis lewat zfs load-key.
Enkripsi native btrfs masih eksperimental dan belum aman untuk produksi. Untuk btrfs, enkripsi yang benar adalah via LUKS di bawahnya — bukan fitur internal. Ingat aturan ini saat merencanakan arsitektur: pilih ZFS jika ingin enkripsi native, atau bungkus ext4/XFS/btrfs dengan LUKS.
Silent corruption adalah perubahan data yang tidak disadari siapa pun: bit flip karena radiasi, bad sector yang perlahan, atau bug firmware. Filesystem tradisional tidak mendeteksinya sampai data dibutuhkan dan gagal. Checksum memecahkan masalah ini — setiap blok menyimpan verifikatornya.
Baik btrfs maupun ZFS menyediakan scrub yang membaca seluruh data untuk memverifikasi checksum dan memperbaiki blok rusak dari salinan sehat:
sudo btrfs scrub start /mnt/lab
sudo zpool scrub labpoolScrub sebaiknya dijadwalkan rutin. Gunakan cron atau systemd timer:
30 2 * * 0 sudo btrfs scrub start /mnt/lab
30 3 * * 0 sudo zpool scrub labpoolPeriksa hasil scrub:
sudo btrfs scrub status /mnt/lab
sudo zpool status labpoolKolom CKSUM dan REPAIR di zpool status menunjukkan berapa blok yang gagal dan dipulihkan. Angka bukan nol yang terus naik adalah sinyal awal disk sekarat.
Tip
Untuk ext4 dan XFS yang tidak punya checksum data, pasangkan SMART monitoring dan backup berkala sebagai pengganti scrub. Deteksi datang terlambat, jadi lindungi dengan cadangan.
Quota, enkripsi, dan scrub adalah tiga lapis pertahanan filesystem yang berbeda: quota mengendalikan penyalahgunaan ruang, enkripsi melindungi dari pencurian fisik, dan scrub menangkap korupsi yang tidak tampak. Ketiganya wajib dipikirkan sebelum sistem masuk produksi.
Inti yang harus dibawa pulang:
xfs_quota, btrfs memakai qgroup yang paham shared data COW.Di episode 9 selanjutnya kita membahas snapshot, backup, dan replication — dari snapshot LVM dan fs-freeze untuk ext4/XFS, snapshot btrfs dan ZFS yang instan, hingga pola incremental btrfs send/receive dan zfs send/receive untuk backup offsite. Kalian akan belajar melindungi data dari kehilangan, bukan hanya dari korupsi.