btrfs terus berkembang dengan fitur yang membuatnya semakin matang untuk produksi. Episode ini membahas block-group-tree, profil raid1c3/raid1c4, kompresi zstd/lzo/zlib, qgroups dan balance filter, lalu tooling btrfs-progs 7.x termasuk remap tree eksperimental.

btrfs adalah filesystem yang paling cepat berevolusi di ekosistem Linux. Episode 5 membahas dasarnya; episode 13 ini masuk ke fitur-fitur yang baru matang dalam beberapa tahun terakhir — mulai dari block-group-tree yang menjadi default, profil redundansi tiga salinan, hingga tooling btrfs-progs 7.x.
Fitur-fitur ini relevan bagi kalian yang mempertimbangkan btrfs untuk produksi: penyimpanan disk banyak, kompresi, dan manajemen alokasi yang lebih presisi. Beberapa masih eksperimental — kami akan menandainya dengan jelas.
Kita mulai dari perubahan arsitektur paling penting, lalu tooling, dan diakhiri dengan teknologi yang masih dalam pengembangan aktif.
Pada btrfs lama, informasi block group (kumpulan blok dengan profil alokasi yang sama) disimpan di pohon extent. Saat filesystem penuh, pohon ini menjadi sangat besar dan operasi alokasi menjadi lambat. Block-group-tree memisahkan metadata block group ke pohon terpisah, sehingga pembacaan dan alokasi jauh lebih cepat.
Block-group-tree menjadi default sejak kernel 6.19 dan btrfs-progs 6.12+. Periksa apakah filesystem kalian memakainya:
sudo btrfs inspect-internal dump-super /dev/loop0 | grep -i compatOutput menampilkan compat_ro_flags yang mencakup block-group-tree jika aktif.
Fitur ini bisa ditambahkan ke filesystem yang sudah ada saat sistem boot, lewat opsi mount khusus:
mount -o block-group-tree /dev/loop0 /mnt/labSetelah aktif dan di-mount, block-group-tree dipakai untuk alokasi baru. Pastikan kernel dan btrfs-progs kalian cukup baru sebelum mengaktifkannya.
btrfs mendukung profil RAID selain yang umum. raid1c3 menyimpan tiga salinan data dan metadata; raid1c4 menyimpan empat. Ini cocok untuk disk banyak dengan kebutuhan perlindungan sangat tinggi:
sudo mkfs.btrfs -m raid1c3 -d raid1c3 /dev/loop0 /dev/loop1 /dev/loop2Berbeda dengan raid1 standar yang hanya dua salinan, raid1c3 bertahan dari dua disk gagal bersamaan. Alokasinya memerlukan minimal tiga perangkat, dan masing-masing salinan diletakkan di perangkat berbeda.
Perhatikan bahwa raid5 dan raid6 di btrfs masih dianggap eksperimental; raid1c3/raid1c4 adalah alternatif yang lebih aman untuk redundansi ganda.
btrfs mendukung zstd, lzo, dan zlib. Perbandingan singkat:
Atur saat mount atau per-subvolume:
sudo mount -o compress=zstd:3 /dev/loop0 /mnt/labcompress=zstd:3 memakai zstd level 3 — seimbang antara kecepatan dan rasio. Kompresi transparan: file dibaca kembali tanpa dekompresi manual.
Balance mendistribusikan ulang alokasi. Dengan filter, kalian mengendalikan apa yang dipindahkan secara presisi:
sudo btrfs balance start -dusage=60 -musage=50 /mnt/lab-dusage=60 memindahkan blok data dengan pemakaian di bawah 60 persen; -musage=50 untuk metadata. Filter bisa dikombinasikan dengan -dlimit, -ddevid, dan -dprofiles untuk menyasar target tertentu.
qgroup (quota group) menghitung pemakaian dengan memperhitungkan shared blok COW antar subvolume — sesuatu yang tidak bisa dilakukan quota tradisional:
sudo btrfs quota enable /mnt/lab
sudo btrfs qgroup show /mnt/labSetelah diaktifkan, btrfs qgroup show menampilkan pemakaian unik dan bersama per group. Ini dasar untuk melaporkan pemakaian yang akurat pada sistem dengan banyak snapshot.
qgroup bisa membatasi pemakaian group:
sudo btrfs qgroup limit 10G 1/100 /mnt/labCatatan: qgroup yang diaktifkan pada filesystem dengan banyak tulis menambah overhead. Aktifkan hanya jika benar-benar butuh laporan pemakaian per subvolume.
btrfs-progs 7.x (v7.1 adalah versi terbaru per penulisan series ini) membawa perbaikan signifikan:
btrfs property yang lebih baik untuk mengatur properti subvolume seperti kompresi dan flags.btrfs check yang lebih andal untuk kasus-kasus korupsi yang sebelumnya gagal.sudo btrfs property get /mnt/lab
sudo btrfs property set /mnt/lab compression zstdbtrfs property menampilkan dan mengatur properti filesystem secara deklaratif — cara modern menggantikan edit mount options satu-satu.
Salah satu arah pengembangan btrfs adalah remap tree — mekanisme eksperimental untuk memungkinkan COW parsial pada blok yang dibagikan. Dengan remap tree, blok besar yang berbagi bisa dipecah sebagian, mengurangi penggunaan ruang berlebih saat snapshot dimodifikasi sebagian kecil. Fitur ini masih eksperimental dan belum untuk produksi.
Advanced btrfs menunjukkan arah filesystem modern: efisiensi alokasi (block-group-tree), redundansi yang fleksibel (raid1c3/raid1c4), kompresi yang dapat diatur, dan manajemen ruang berbasis qgroup. Dengan btrfs-progs 7.x, tooling mulai mengejar fitur kernel.
Inti yang harus dibawa pulang:
Di episode 14 selanjutnya kita membahas advanced ZFS (OpenZFS 2.4) — BRT untuk fast dedup, RAIDZ expansion yang stabil, AnyRaid, quotas default, special vdev, zfs rewrite, dan tuning recordsize/ashift. Kalian akan melihat di mana ZFS berada di tahun 2026.