XFS adalah filesystem default RHEL/Rocky yang dirancang untuk throughput tinggi dan kapasitas besar. Episode ini membahas allocation groups, B+tree, dan journaling XFS, lalu praktik dengan mkfs.xfs, xfs_info, xfs_growfs, xfs_repair, serta xfsdump/xfsrestore.

XFS adalah jawaban Linux untuk workload berat: file raksasa, media streaming, backup server, dan database besar. Karena desainnya yang berorientasi paralelisme, XFS menjadi default di RHEL, Rocky, dan AlmaLinux. Jika kalian bekerja di ekosistem Red Hat, menguasai XFS adalah keharusan.
Kunci desain XFS ada tiga: allocation groups, B+tree, dan journaling yang dioptimalkan untuk skala besar. Lalu kita praktik dengan mkfs.xfs, xfs_info, xfs_growfs, xfs_repair, dan pasangan backup xfsdump/xfsrestore. Satu fakta penting yang membedakan XFS dari ext4: XFS tidak bisa menyusut — hanya bisa membesar.
Episode ini akan berjalan paling mulus jika kalian sudah menguasai konsep episode 2, karena XFS adalah contoh nyata bagaimana inode, alokasi blok, dan journaling diimplementasikan dengan cara yang berbeda.
XFS membagi filesystem menjadi beberapa allocation group, masing-masing berukuran sama dengan inode table dan metadata-nya sendiri. Setiap AG bisa dialokasikan secara independen, sehingga beberapa proses bisa menulis ke filesystem yang sama secara paralel tanpa saling mengunci satu mutex global.
Periksa struktur AG:
sudo xfs_info /dev/loop0Output xfs_info menampilkan agcount, agsize, blocks, dan ukuran blok. agcount biasanya 4 untuk filesystem kecil, dan bertambah untuk yang besar.
Untuk menemukan ruang kosong, ext4 memakai struktur yang lebih sederhana, sedangkan XFS memakai B+tree — struktur seimbang yang mencari rentang blok kosong dengan kompleksitas logaritmik. B+tree juga dipakai untuk inode, sehingga XFS menangani puluhan juta inode tanpa degradasi pencarian.
Konsekuensinya: XFS sangat efisien pada filesystem raksasa dan beban paralel, tetapi biaya metadata per file sedikit lebih tinggi dibanding ext4.
XFS memakai journal yang disebut log, dialokasikan di dalam filesystem (atau perangkat log eksternal dengan mkfs.xfs -l). Log XFS tidak menyimpan data — hanya metadata — dan dirancang untuk recovery cepat setelah crash. Mode data=writeback adalah default XFS, jadi tidak ada jaminan data di-journal seperti data=ordered ext4.
Format disk loopback sebagai XFS:
sudo losetup -f /tmp/lab.img
sudo mkfs.xfs -L lab-xfs -f /dev/loop0Opsi -f memaksa memformat ulang meski sudah ada filesystem sebelumnya. Untuk mengatur ukuran log secara eksplisit: mkfs.xfs -l size=64m. Untuk stripe RAID, kalian bisa memberi -d su=64k,sw=4 sesuai geometri array — kita bahas di episode 8.
XFS modern mendukung fitur per-filesystem yang diatur saat mkfs:
-m reflink=1: mengaktifkan reflink/COW (default di kernel modern), dasar dari cp --reflink.-m rmapbt=1: reverse mapping B+tree, membantu pemulihan dan cp --reflink untuk snapshot.-m crc=1: CRC32 untuk metadata — default sejak kernel 4.2.Cek fitur yang aktif:
sudo xfs_info /dev/loop0Perhatikan baris ftype=1, reflink=1, dan crc=1 pada output xfs_info.
Mount filesystem, lalu perbesar secara online:
sudo mkdir -p /mnt/lab
sudo mount /dev/loop0 /mnt/lab
sudo xfs_growfs /mnt/labxfs_growfs memperbesar XFS ke ukuran perangkat maksimum tanpa unmount. Karena XFS tidak mendukung penyusutan, ukur partisi dengan benar sejak awal — kesalahan berarti harus recreate dari backup.
Pemeriksaan XFS tidak bisa dijalankan online seperti fsck ext4. xfs_repair wajib berjalan saat filesystem unmounted:
sudo umount /mnt/lab
sudo xfs_repair -n /dev/loop0-n melakukan pemeriksaan tanpa mengubah apa pun (dry-run). Tanpa -n, xfs_repair akan memperbaiki kerusakan struktur. Sebagai catatan, XFS sangat tahan korupsi berkat CRC pada metadata.
Karena XFS tidak punya mekanisme snapshot native untuk filesystem yang sedang dipakai dengan konsisten penuh, backup memakai xfsdump:
sudo xfsdump -l 0 -f /backup/fs.img /mnt/lab-l 0 berarti level 0 (full backup). Level 1-9 menyimpan hanya perubahan sejak level sebelumnya — incremental backup bawaan XFS. Untuk memulihkan:
sudo xfsrestore -f /backup/fs.img /mnt/labPasangan xfsdump/xfsrestore adalah pendekatan resmi backup XFS, setara dengan snapshot filesystem lain. xfsdump -l 0 adalah perintah yang paling sering dipakai dalam operasional harian.
XFS menawarkan arsitektur yang berbeda dari ext4: allocation groups untuk paralelisme, B+tree untuk skala besar, dan CRC pada metadata untuk integritas. Konsekuensinya, XFS unggul untuk throughput tinggi dan file besar, tetapi tidak mendukung penyusutan dan backup lewat snapshot perlu bantuan eksternal.
Inti yang harus dibawa pulang:
xfs_growfs hanya memperbesar — XFS tidak bisa menyusut.xfs_repair wajib dijalankan saat filesystem unmounted.xfsdump dengan level 0-9 incremental.Di episode 5 selanjutnya kita masuk ke filesystem COW pertama: btrfs — subvolume, snapshot, dan Copy-on-Write. Kalian akan melihat snapshot instan, checksum, dan send/receive yang menjadi keunggulan btrfs, lengkap dengan mode multi-device RAID.