Belajar Linux Filesystem - Advanced btrfs
Episode 13 of 23

Belajar Linux Filesystem - Advanced btrfs

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.

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

Pendahuluan

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.

Block-Group-Tree

Mengapa Block-Group-Tree Diperkenalkan

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:

Cek fitur block-group-tree
sudo btrfs inspect-internal dump-super /dev/loop0 | grep -i compat

Output menampilkan compat_ro_flags yang mencakup block-group-tree jika aktif.

Mengonversi Filesystem Lama

Fitur ini bisa ditambahkan ke filesystem yang sudah ada saat sistem boot, lewat opsi mount khusus:

Konversi block-group-tree
mount -o block-group-tree /dev/loop0 /mnt/lab

Setelah aktif dan di-mount, block-group-tree dipakai untuk alokasi baru. Pastikan kernel dan btrfs-progs kalian cukup baru sebelum mengaktifkannya.

Profil Redundansi: raid1c3 dan raid1c4

Tiga atau Empat Salinan

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:

Buat btrfs raid1c3 tiga perangkat
sudo mkfs.btrfs -m raid1c3 -d raid1c3 /dev/loop0 /dev/loop1 /dev/loop2

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

Kapan Memakainya

  • raid1c3: penyimpanan kritis dengan tiga disk — keseimbangan biaya dan proteksi.
  • raid1c4: empat salinan untuk data yang tidak boleh hilang dengan harga berapa pun.

Perhatikan bahwa raid5 dan raid6 di btrfs masih dianggap eksperimental; raid1c3/raid1c4 adalah alternatif yang lebih aman untuk redundansi ganda.

Kompresi dan Balance Filter

Pilih Algoritma Kompresi

btrfs mendukung zstd, lzo, dan zlib. Perbandingan singkat:

  • zstd: rasio terbaik, cepat, dan level bisa diatur — rekomendasi default.
  • lzo: tercepat, rasio lebih rendah — cocok untuk data yang dibaca sering.
  • zlib: rasio tertinggi, lambat — untuk arsip statis.

Atur saat mount atau per-subvolume:

Kompresi zstd level 3
sudo mount -o compress=zstd:3 /dev/loop0 /mnt/lab

compress=zstd:3 memakai zstd level 3 — seimbang antara kecepatan dan rasio. Kompresi transparan: file dibaca kembali tanpa dekompresi manual.

Balance dengan Filter

Balance mendistribusikan ulang alokasi. Dengan filter, kalian mengendalikan apa yang dipindahkan secara presisi:

Balance hanya data terpakai 60%
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.

qgroups untuk Manajemen Ruang

qgroup dan Hirarki

qgroup (quota group) menghitung pemakaian dengan memperhitungkan shared blok COW antar subvolume — sesuatu yang tidak bisa dilakukan quota tradisional:

Aktifkan dan lihat qgroup
sudo btrfs quota enable /mnt/lab
sudo btrfs qgroup show /mnt/lab

Setelah diaktifkan, btrfs qgroup show menampilkan pemakaian unik dan bersama per group. Ini dasar untuk melaporkan pemakaian yang akurat pada sistem dengan banyak snapshot.

Limit dan Kinerja

qgroup bisa membatasi pemakaian group:

Batas qgroup 10GB
sudo btrfs qgroup limit 10G 1/100 /mnt/lab

Catatan: qgroup yang diaktifkan pada filesystem dengan banyak tulis menambah overhead. Aktifkan hanya jika benar-benar butuh laporan pemakaian per subvolume.

btrfs-progs 7.x

btrfs property dan Perbaikan check

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.
  • Pemeriksaan btrfs check yang lebih andal untuk kasus-kasus korupsi yang sebelumnya gagal.
Lihat properti subvolume
sudo btrfs property get /mnt/lab
sudo btrfs property set /mnt/lab compression zstd

btrfs property menampilkan dan mengatur properti filesystem secara deklaratif — cara modern menggantikan edit mount options satu-satu.

Remap Tree: Partial Block COW

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.

Penutup

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:

  • Block-group-tree memisahkan metadata alokasi — default sejak kernel 6.19.
  • raid1c3 dan raid1c4 memberi tiga sampai empat salinan untuk proteksi ekstra.
  • zstd adalah rekomendasi kompresi default; level bisa diatur.
  • Balance filter membatasi perpindahan blok secara presisi.
  • qgroup menghitung pemakaian termasuk shared blok COW.
  • Remap tree masih eksperimental — perhatikan roadmap btrfs-progs 8.x.

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.

Belajar Linux Filesystem - Advanced btrfs | Belajar Linux Filesystem