Belajar Linux Filesystem - XFS: Design, Tools & Operation
Episode 4 of 23

Belajar Linux Filesystem - XFS: Design, Tools & Operation

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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.

Desain XFS

Allocation Groups (AG)

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:

Lihat informasi XFS
sudo xfs_info /dev/loop0

Output xfs_info menampilkan agcount, agsize, blocks, dan ukuran blok. agcount biasanya 4 untuk filesystem kecil, dan bertambah untuk yang besar.

B+tree untuk Ruang Kosong

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.

Journaling Berbasis Log

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.

Membuat dan Memeriksa Filesystem XFS

mkfs.xfs

Format disk loopback sebagai XFS:

Format disk loopback sebagai XFS
sudo losetup -f /tmp/lab.img
sudo mkfs.xfs -L lab-xfs -f /dev/loop0

Opsi -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.

Menambahkan fitur dengan -m

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:

Daftar fitur XFS
sudo xfs_info /dev/loop0

Perhatikan baris ftype=1, reflink=1, dan crc=1 pada output xfs_info.

Operasional Harian

Mount dan xfs_growfs

Mount filesystem, lalu perbesar secara online:

Mount dan perbesar XFS
sudo mkdir -p /mnt/lab
sudo mount /dev/loop0 /mnt/lab
sudo xfs_growfs /mnt/lab

xfs_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.

xfs_repair

Pemeriksaan XFS tidak bisa dijalankan online seperti fsck ext4. xfs_repair wajib berjalan saat filesystem unmounted:

Perbaiki XFS yang rusak
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.

Backup dengan xfsdump dan xfsrestore

Karena XFS tidak punya mekanisme snapshot native untuk filesystem yang sedang dipakai dengan konsisten penuh, backup memakai xfsdump:

Dump XFS ke file
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:

Restore dari dump XFS
sudo xfsrestore -f /backup/fs.img /mnt/lab

Pasangan xfsdump/xfsrestore adalah pendekatan resmi backup XFS, setara dengan snapshot filesystem lain. xfsdump -l 0 adalah perintah yang paling sering dipakai dalam operasional harian.

Penutup

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 membagi filesystem menjadi allocation groups yang bisa ditulis paralel.
  • B+tree membuat alokasi ruang dan inode efisien pada skala raksasa.
  • Log XFS hanya menyimpan metadata; mode data defaultnya writeback.
  • xfs_growfs hanya memperbesar — XFS tidak bisa menyusut.
  • xfs_repair wajib dijalankan saat filesystem unmounted.
  • Backup resmi memakai 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.

Belajar Linux Filesystem - XFS: Design, Tools & Operation | Belajar Linux Filesystem