Linux / Perbandingan ext4, XFS, dan Btrfs: perbedaan dan cara memilih

Saat memilih ext4, XFS, atau Btrfs, bandingkan dukungan distribusi, fitur yang dibutuhkan, perubahan ukuran, dan prosedur pemulihan sebelum mempertimbangkan mana yang lebih baru. Pertimbangkan ext4 untuk pengelolaan yang familier dan penyusutan saat tidak terpasang, XFS untuk server dengan penyimpanan besar serta I/O serentak, dan Btrfs untuk snapshot, kompresi, serta checksum data bawaan. Pembagian ini merupakan titik awal; kinerja dan kesesuaian operasional tetap harus diperiksa pada lingkungan Anda.

Artikel ini membandingkan tiga sistem berkas untuk disk lokal pada PC Linux dan server serbaguna. Sistem berkas mengatur penyimpanan serta pencarian isi file dan informasi seperti nama, lokasi, dan izin. Jika hubungan disk, partisi, dan mount belum jelas, pelajari perbedaan disk, partisi, dan sistem berkas terlebih dahulu.

Perbedaan ext4, XFS, dan Btrfs secara ringkas

Metadata adalah informasi pengelolaan seperti lokasi, ukuran, dan izin file. Journaling memakai catatan perubahan untuk membantu memulihkan konsistensi sistem berkas setelah penghentian tak terduga; mekanisme ini tidak menggantikan cadangan atau menjamin seluruh isi file tetap utuh. Copy-on-Write (CoW) menulis isi yang berubah ke ruang baru, lalu memperbarui rujukannya.

Kriteria ext4 XFS Btrfs
Rancangan dasar Journaling Journaling metadata CoW
Snapshot bawaan Tidak ada Tidak ada Snapshot subvolume
Checksum isi file Tidak tersedia secara baku Tidak tersedia secara baku Aktif secara baku, dengan pengecualian seperti file NOCOW
Kompresi bawaan Tidak ada Tidak ada Didukung; bergantung pada pengaturan dan karakteristik data
Memperbesar ukuran Dapat dilakukan saat terpasang jika didukung Dilakukan saat terpasang Dapat dilakukan saat terpasang
Memperkecil ukuran Dapat dilakukan saat tidak terpasang Jangan menganggapnya didukung secara umum untuk produksi; periksa dukungan Technology Preview yang terbatas Dapat dilakukan saat terpasang; periksa ruang kosong dan batas tiap perangkat
Alat utama e2fsck dan resize2fs dari e2fsprogs xfs_repair dan xfs_growfs dari xfsprogs Perintah btrfs dari btrfs-progs
Pertimbangan utama Alat yang familier, operasi sederhana, dan penyusutan offline Penyimpanan besar, I/O serentak, serta dukungan server dari distribusi Snapshot, kompresi, pemeriksaan integritas, serta pemeliharaan yang sesuai

“Tidak ada” berarti fitur tersebut tidak disediakan oleh sistem berkas itu sendiri. ext4 dan XFS dapat memakai snapshot dari Logical Volume Manager (LVM), perangkat penyimpanan, atau platform virtualisasi. Salinan file yang berbagi blok, seperti reflink XFS, juga berbeda dari snapshot seluruh sistem berkas pada suatu waktu. Baris checksum membahas isi file biasa; baris ini tidak berarti ext4 dan XFS tidak melindungi metadata.

ext4: pengelolaan yang familier dan penyusutan offline

ext4, singkatan dari Fourth Extended Filesystem, melanjutkan keluarga ext2 dan ext3. Panduan instalasi Debian 13 menyatakan bahwa ext4 dipilih secara baku pada sebagian besar kasus. Jika tidak ada kebutuhan fitur khusus, ext4 layak dipertimbangkan bersama alat instalasi dan pemulihan distribusi. Status sebagai pilihan baku tidak membuktikan bahwa ext4 selalu lebih cepat atau lebih aman. Lihat panduan instalasi resmi Debian 13 untuk pilihan yang disediakan distribusi tersebut.

Mode umum data=ordered pada ext4 melakukan journaling metadata dan mengatur urutan penulisan data terkait. Mode ini tidak menyimpan salinan kedua seluruh isi file dalam journal. Karena itu, sistem berkas yang berhasil dipasang setelah listrik padam belum tentu mempertahankan penulisan terakhir aplikasi. Dokumentasi administrasi ext4 dari kernel Linux menjelaskan mode-mode tersebut.

Penyusutan merupakan perbedaan operasional yang penting. resize2fs dapat memperbesar ext4 yang memenuhi syarat saat terpasang, tetapi penyusutan memerlukan unmount. Memperkecil sistem berkas root biasanya membutuhkan lingkungan boot terpisah dan waktu henti. Alat ini tidak mengubah ukuran partisi, sehingga ukuran sistem berkas dan penyimpanan di bawahnya harus dikelola secara terpisah. Cocokkan kondisi dukungan lingkungan Anda dengan manual resize2fs.

Misalnya, jika ruang disk kelak akan dibagi ulang antara sistem operasi dan area data, bandingkan dukungan penyusutan serta waktu henti sebelum instalasi. Jika kebutuhan utamanya snapshot untuk kembali ke kondisi sebelumnya, memilih ext4 saja belum mencukupi: lapisan LVM atau mekanisme cadangan dan snapshot lain juga perlu dirancang.

XFS: server dengan penyimpanan besar dan I/O serentak

XFS mengelola penyimpanan melalui kelompok alokasi dan layak dievaluasi untuk file besar serta I/O dari banyak pekerjaan secara bersamaan. Red Hat Enterprise Linux (RHEL) 10 memakai XFS sebagai sistem berkas lokal baku. Jika distribusi, alat penyimpanan, dan prosedur pemulihan organisasi telah disiapkan untuk XFS, dukungan operasional itu juga menjadi dasar pemilihan. Panduan perbandingan dan pengelolaan sistem berkas RHEL 10 menjelaskan dukungan serta penggunaannya.

XFS diperbesar menggunakan xfs_growfs saat terpasang. Perangkat di bawahnya harus menyediakan ruang tambahan terlebih dahulu; memperbesar disk atau logical volume saja belum tentu memperbesar sistem berkas. Dalam rencana perluasan, bedakan lapisan disk, partisi, logical volume, dan sistem berkas yang diubah.

Hindari menyebut penyusutan XFS selalu mustahil atau tersedia secara umum. Catatan rilis RHEL 10.0 menjelaskan penyusutan terbatas pada kelompok alokasi terakhir sebagai Technology Preview, dengan syarat tidak ada data atau metadata yang dialokasikan pada rentang yang dihapus. Ini berbeda dari prosedur produksi umum untuk memperkecil ke ukuran sembarang. Jika penyusutan merupakan kebutuhan penting, jangan memilih XFS dengan mengandalkan fitur terbatas ini: periksa dukungan produksi distribusi atau rencanakan cadangan dan pemulihan ke sistem berkas baru yang lebih kecil. Kondisinya tersedia pada catatan RHEL 10.0 tentang penyusutan XFS terbatas dan manual xfs_growfs.

Masukkan XFS sebagai kandidat untuk server file atau server yang menyimpan file data besar, tetapi jangan memutuskan hanya berdasarkan ukuran file. Periksa frekuensi pembuatan dan penghapusan file kecil, jumlah pekerjaan serentak, penulisan sinkron, serta kebutuhan latensi dengan kondisi yang menyerupai layanan nyata.

Btrfs: menggabungkan snapshot, kompresi, dan checksum

Btrfs menggunakan CoW serta menyediakan subvolume, snapshot, kompresi transparan, dan checksum data maupun metadata. Checksum adalah nilai pemeriksaan yang dihitung dari isi tersimpan untuk mendeteksi perubahan ketika data dibaca kembali. Fedora memakai Btrfs secara baku pada edisi desktop dan spin, tetapi pilihan desktop ini tidak berarti semua konfigurasi server atau disk didukung. Lihat pengenalan fitur resmi Btrfs dan panduan Btrfs Fedora.

Subvolume adalah pohon direktori yang dapat dikelola secara mandiri dalam sebuah sistem berkas. Pada awalnya, snapshot berbagi blok data dengan sumbernya, kemudian memakai ruang tambahan seiring perubahan isi. Ini dapat menyimpan kondisi sebelum pembaruan, tetapi memilih Btrfs saja tidak otomatis menyiapkan snapshot berkala, retensi, atau menu pemulihan boot. Periksa alat distribusi dan susunan subvolume secara bersamaan.

Snapshot pada disk yang sama tidak menggantikan cadangan terpisah. Sumber dan snapshot bergantung pada penyimpanan serta blok yang sama, sehingga kegagalan perangkat atau kerusakan blok bersama dapat memengaruhi keduanya. Subvolume yang bersarang juga tidak disertakan secara rekursif dalam snapshot induknya. Aplikasi yang sedang menulis, seperti basis data, memerlukan cadangan aplikasi atau penghentian sementara penulisan agar keadaan yang disimpan konsisten. Dokumentasi subvolume dan snapshot Btrfs menjelaskan cakupan serta batasannya.

Deteksi kesalahan dan pemulihan adalah kemampuan yang berbeda. btrfs scrub memeriksa checksum serta informasi lain, tetapi perbaikan isi yang rusak membutuhkan salinan redundan blok terkait yang telah diverifikasi baik. Jika konfigurasi satu disk menyimpan hanya satu salinan data, checksum dapat menunjukkan kerusakan tanpa menyediakan sumber untuk memulihkannya. File dengan NOCOW juga merupakan pengecualian terhadap checksum data. Lihat dokumentasi resmi scrub Btrfs untuk syarat pemeriksaan dan perbaikan.

Kompresi dapat mengurangi pemakaian ruang serta I/O sesuai karakteristik data, tetapi video atau arsip yang sudah terkompresi mungkin memperoleh sedikit manfaat. Untuk citra mesin virtual (VM) atau basis data yang sering ditimpa, pertimbangkan CoW, fragmentasi, dan retensi snapshot bersama-sama. Penerapan NOCOW secara menyeluruh demi kinerja juga memengaruhi checksum data dan kompresi. Dokumentasi opsi mount Btrfs menjelaskan interaksinya.

Jika menggabungkan disk, periksa setiap profil Redundant Array of Independent Disks (RAID) secara terpisah. Pengenalan fitur resmi menyebut RAID5/6 masih eksperimental dan belum siap untuk produksi. Jangan menyamakannya dengan profil lain; periksa versi kernel dan alat beserta status fitur Btrfs.

Sistem berkas mana yang sesuai dengan lingkungan Anda?

Kriteria berikut menghubungkan perbedaan fitur dengan kebutuhan nyata. Tabel ini bukan peringkat atau rekomendasi konfigurasi yang berlaku untuk semua lingkungan.

Situasi Kandidat awal Periksa sebelum memilih
PC umum atau pengembangan Pilihan baku yang didukung distribusi Integrasi instalasi, enkripsi, pembaruan, dan pemulihan. Nama yang belum dikenal saja bukan alasan mengganti Btrfs yang menjadi pilihan baku
Mungkin perlu diperkecil kelak ext4 Apakah unmount dan waktu henti dapat diterima, serta apakah partisi atau logical volume di bawahnya juga dapat diubah dengan aman
Server besar dengan akses serentak Pertimbangkan XFS bersama kandidat lain Dukungan distribusi, kinerja beban nyata, rencana perluasan, dan prosedur pemulihan untuk pindah ke volume lebih kecil
Snapshot dan integritas Btrfs Pembuatan, pembersihan, dan pemulihan snapshot; pemantauan ruang kosong; cadangan pada penyimpanan terpisah
Basis data atau penyimpanan VM Konfigurasi yang didukung vendor produk serta distribusi Penulisan sinkron, latensi, pengaturan CoW, cadangan konsisten, dan pengujian dengan beban nyata

Jika tujuannya mengembalikan sistem operasi setelah pembaruan gagal, periksa pula subvolume yang benar-benar dipulihkan alat pemulihan. Rancangan berbeda menurut apakah data pengguna harus tetap mutakhir atau ikut kembali ke waktu yang sama dengan sistem operasi. Pada server yang area datanya hanya terus membesar, dukungan distribusi serta prosedur perluasan dan pencadangan mungkin lebih penting daripada penyusutan.

Menyamakan kondisi dalam perbandingan kinerja

Nama sistem berkas saja tidak memprediksi kecepatan. Pada SSD yang sama pun, membuat banyak file kecil, membaca file besar secara berurutan, dan melakukan penulisan sinkron basis data dapat memberikan hasil berbeda. Uji penyalinan singkat juga dapat sangat dipengaruhi cache memori.

  • Penyimpanan: gunakan SSD atau HDD, koneksi, tingkat pemakaian, dan ruang kosong yang sama.
  • Beban kerja: samakan ukuran dan jumlah file, rasio baca/tulis, akses berurutan atau acak, serta jumlah pekerjaan serentak.
  • Fitur dan pengaturan: catat kompresi, CoW, snapshot, enkripsi, dan opsi mount. Jangan memperlakukan fitur yang diaktifkan dan dinonaktifkan sebagai kondisi yang sama.
  • Ketahanan data: samakan penulisan sinkron aplikasi dan kebijakan cache perangkat. Melemahkan jaminan penyimpanan data bukan sekadar peningkatan kinerja.
  • Versi dan pengukuran: catat versi kernel serta alat administrasi. Periksa latensi dan variasi antarpercobaan selain throughput.

Untuk server penyimpanan log, misalnya, uji penambahan log, rotasi, kompresi, dan pencadangan yang saling bertumpang tindih, bukan hanya penyalinan satu file besar. Bandingkan penghematan ruang dari kompresi dengan biaya penggunaan CPU. Jika keunggulan terukur kecil, pertimbangkan pula biaya dan risiko migrasi sebelum mengganti sistem berkas yang sudah berjalan.

Memeriksa format saat ini dan merencanakan perubahan

Memeriksa sistem tanpa mengubahnya

Pada sistem Linux umum, perintah berikut membaca informasi perangkat, mount, dan kapasitas. lsblk dan findmnt berasal dari util-linux; pada GNU/Linux, df biasanya berasal dari coreutils. Perintah-perintah ini tidak membuat atau mengubah format sistem berkas.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
findmnt -T / -o TARGET,SOURCE,FSTYPE,OPTIONS
df -hT /

Gunakan lsblk untuk memeriksa hubungan antarlapisan perangkat dan FSTYPE. findmnt menunjukkan jenis serta opsi mount aktif sistem berkas yang memuat jalur root. df -hT / menampilkan jenis dan kapasitas sistem berkas itu. Ganti / dengan direktori data yang sebenarnya untuk memeriksa jalur tersebut.

Misalnya, jika findmnt melaporkan xfs pada FSTYPE, jalur itu berada di XFS. Kolom FSTYPE pada baris disk dapat kosong sementara partisi atau logical volume menampilkan formatnya. Kontainer dapat melaporkan overlay; jangan menganggapnya sebagai format disk host. Jika lsblk versi lama tidak mendukung MOUNTPOINTS, gunakan MOUNTPOINT. Lihat manual lsblk serta manual findmnt untuk rincian opsi.

Jika penggunaan ruang Btrfs berbeda dari perkiraan, btrfs filesystem usage dapat memperlihatkan alokasi data, metadata, dan perangkat secara bersamaan. Penghapusan file belum tentu langsung membebaskan ruang jika snapshot masih merujuk datanya. Gunakan penjelasan penggunaan ruang dan perubahan ukuran Btrfs, bukan hanya jumlah ukuran direktori.

Urutan migrasi ke sistem berkas lain

Menjalankan mkfs format lain pada sistem berkas yang sudah ada bukan konversi yang mempertahankan data. Rencana migrasi umum lebih mudah ditelaah jika memakai tujuan baru dan pemulihan yang diverifikasi.

  1. Identifikasi perangkat sumber, format, dan titik mount, serta dukungan aplikasi. Cadangkan ke penyimpanan independen dan pastikan data benar-benar dapat dipulihkan.
  2. Siapkan sistem berkas tujuan pada disk baru atau area terpisah yang tersedia. Sebelum memformat, pastikan sekali lagi bahwa sasaran itu benar dan kosong.
  3. Dapatkan data konsisten melalui waktu henti layanan atau mekanisme cadangan aplikasi. Salin atau pulihkan kepemilikan, izin, Access Control Lists (ACL, daftar kontrol akses), atribut tambahan, dan hard link yang dibutuhkan. Jangan menganggap alat penyalin isi file mempertahankan seluruh informasi ini.
  4. Verifikasi file dan aplikasi pada jalur baru, lalu ubah /etc/fstab serta konfigurasi layanan memakai pengenal sistem berkas baru, yaitu UUID. Migrasi root sistem operasi memerlukan prosedur terpisah yang mencakup bootloader dan lingkungan boot awal.
  5. Setelah reboot, periksa mount, layanan, serta izin. Pertahankan sumber dan cadangan sampai perpindahan terverifikasi agar, jika bermasalah, penulisan ke tujuan baru dapat dihentikan dan konfigurasi beserta sumber yang telah diverifikasi dapat digunakan kembali. Sertakan pula data yang dibuat setelah perpindahan dalam rencana rollback.

Urutan lapisan juga penting saat hanya mengubah ukuran. Biasanya penyimpanan di bawahnya diperbesar sebelum sistem berkas diperbesar; jika penyusutan didukung, perkecil sistem berkas sebelum mengurangi penyimpanan di bawahnya. Perubahan ukuran Btrfs juga tidak otomatis memperbarui tabel partisi. Prinsip ini bukan prosedur lengkap: enkripsi, LVM, serta RAID masing-masing memerlukan langkah yang didukung.

Gunakan alat sesuai sistem berkas saat menelusuri kesalahan. e2fsck ext4, xfs_repair XFS, dan alat pemeriksaan serta pemulihan Btrfs tidak saling menggantikan. Khususnya, jangan memakai btrfs check --repair sebagai langkah pertama yang rutin. Dokumentasi resmi menyarankan agar opsi itu tidak dipakai tanpa arahan pengembang atau pengguna berpengalaman. Pelajari fsck dan perhatian untuk pemeriksaan tiap sistem berkas serta peringatan alat pemeriksa Btrfs, dan siapkan cadangan serta rencana pemulihan sebelum perubahan.