Btrfs (B-tree File System) memiliki fitur quota management yang memungkinkan administrator mengatur batas penggunaan ruang disk pada level subvolume. Dengan fitur ini, penggunaan disk dapat dibatasi secara lebih granular dan terkontrol.
Mengaktifkan Quota pada Filesystem Btrfs #
Sebelum quota dapat digunakan, fitur quota harus diaktifkan terlebih dahulu pada filesystem.
btrfs quota enable /mountpoint
Perintah di atas hanya perlu dijalankan satu kali untuk setiap filesystem. Setelah quota diaktifkan, seluruh subvolume yang sudah ada maupun yang akan dibuat dapat dikonfigurasi quotanya.
Mengatur Quota pada Subvolume #
Quota dapat diterapkan pada subvolume menggunakan perintah berikut:
btrfs qgroup limit 1g /mountpoint/subvol1
btrfs qgroup limit 512m /mountpoint/subvol2
Penjelasan:
1g→ membatasi subvolumesubvol1hingga maksimal 1 GB.512m→ membatasi subvolumesubvol2hingga maksimal 512 MB.- Nilai limit dapat ditentukan dalam satuan bytes, KB, MB, GB, atau TB.
Membatasi Data Eksklusif (Exclusive Data) #
Secara default, quota menghitung seluruh penggunaan data, termasuk data yang dibagi (shared) dengan subvolume lain. Jika ingin membatasi hanya data eksklusif, gunakan opsi -e.
btrfs qgroup limit -e 1g /mountpoint/subvol1
Penjelasan:
-e(exclusive limit) → membatasi hanya data yang unik dan dimiliki eksklusif oleh subvolume tersebut.- Data yang dibagi (shared) dengan subvolume atau snapshot lain tidak dihitung dalam limit.
- Contoh: jika
subvol1memiliki snapshot yang berbagi blok data dengan subvolume lain, maka blok data bersama tersebut tidak akan masuk perhitungan quota. Quota hanya berlaku untuk data baru atau unik yang ditulis kesubvol1.
Mengecek Penggunaan dan Limit Quota #
Untuk melihat penggunaan dan limit quota pada subvolume tertentu:
btrfs qgroup show -r /mountpoint/subvol1
Untuk tampilan informasi yang lebih lengkap dan detail:
btrfs qgroup show -pcre /mountpoint/subvol1
Mengelola Qgroup Secara Hierarkis #
Btrfs mendukung pengelolaan quota group (qgroup) secara hierarkis dengan konsep parent–child. Dengan mekanisme ini, beberapa subvolume dapat dikelompokkan ke dalam satu qgroup induk dan berbagi satu quota group.
Contoh Membuat Qgroup Parent #
btrfs qgroup create 1/100 /mountpoint
btrfs qgroup assign 0/261 1/100 /mountpoint
btrfs qgroup assign 0/262 1/100 /mountpoint
btrfs qgroup limit 20G 1/100 /mountpoint
Penjelasan:
1/100→ qgroup parent yang dibuat secara manual.0/261dan0/262→ qgroup default dari subvolume dengan ID 261 dan 262.- Kedua subvolume tersebut dijadikan child dari qgroup parent
1/100. 20G→ batas total quota yang berlaku untuk seluruh child qgroup di bawah1/100.
Dengan konfigurasi ini, dua subvolume (ID 261 dan 262) akan berbagi total limit 20 GB. Jika salah satu subvolume menggunakan ruang lebih besar, maka ruang yang tersedia untuk subvolume lainnya akan berkurang.
Menghapus Relasi Parent–Child Qgroup #
Untuk melepaskan subvolume dari qgroup parent:
btrfs qgroup remove 0/261 1/100 /mountpoint
Perintah ini hanya menghapus relasi parent–child, tanpa menghapus qgroup maupun subvolume.
Menghapus Qgroup #
Untuk menghapus qgroup yang tidak lagi digunakan:
btrfs qgroup destroy 1/100 /mountpoint
Pastikan qgroup tersebut sudah tidak memiliki child sebelum dihapus.
Rescan Quota #
Jika terjadi ketidaksesuaian data quota (misalnya akibat operasi snapshot, restore, atau crash), lakukan rescan quota untuk menyinkronkan kembali data penggunaan disk.
btrfs quota rescan /mountpoint
Rescan diperlukan agar informasi quota kembali konsisten dan akurat. Proses ini dapat memakan waktu tergantung ukuran filesystem dan jumlah subvolume.