Nel file system Btrfs ci sono blocchi allocati per dati regolari, metadati. Ci sono anche blocchi che vengono allocati per memorizzare le informazioni sul file system e anche su dove si trovano altri blocchi sul disco fisico. Quei blocchi possono solo memorizzare i dati. Molto occasionalmente, un tipo di blocco può riempirsi e iniziare a esaurire lo spazio. Tuttavia, potrebbe (e spesso c'è) ancora spazio disponibile in altri blocchi. Pertanto, è necessario liberare spazio su di esso.
C'è una funzione di bilanciamento disponibile in Btrfs FileSystem. L'operazione di bilanciamento libera effettivamente spazio negli altri blocchi per renderlo disponibile per l'allocazione.
1. Il comando seguente mostra quanto spazio è stato allocato sul tuo filesystem:
# btrfs fi show
2. Il comando sottostante mostra l'utilizzo del file:
# btrfs filesystem du /btr
3. Utilizzo completo del filesystem per dati e metadati (prima del bilanciamento):
# btrfs filesystem usage /btr
Il comando seguente viene utilizzato per il bilanciamento e questo comando esegue il bilanciamento completo senza filtri richiesti. Questa operazione è molto intensa e richiede potenzialmente molto tempo. Si consiglia di utilizzare i filtri di bilanciamento per restringere i dati bilanciati.
[Senza filtro]
# btrfs filesystem balance /btr
[Con filtro (usa dusage e musage)]
# btrfs filesystem balance start -dusage=5 /btr
Nota che non dovrebbe esserci spazio tra -d e utilizzo . Questo comando tenterà di riposizionare i dati in blocchi di dati vuoti o quasi vuoti (utilizzato al massimo il 5%, in questo esempio), consentendo di recuperare lo spazio e riassegnarlo ai metadati.
Se il comando di bilanciamento termina con "Fatto, è stato necessario riposizionare 0 blocchi su XX ", quindi è necessario aumentare il "dorso ” parametro percentuale fino a quando almeno un blocco non viene riposizionato. Se non usi i filtri, bilancia sia i dati che i metadati.
Un altro modo per bilanciare il filesystem btrfs tramite script
for i in 0 5 10 15 20 25 30 40 50 60 70 80 90 100 do echo "${0}: Running with ${i}%" sudo btrfs balance start -dusage=$i -musage=$i /btr/ done
Dopo il controllo del saldo tramite il comando seguente:
# btrfs filesystem usage /btr
A seconda di "btrfs filesystem du" e "btrfs filesystem usage" decidi i valori per -dusage e -musage.