btrfs ERRORE: errore durante il bilanciamento - Spazio sul dispositivo rimasto


15

Il mio sistema Kubuntu 12.04 ha esaurito lo spazio sulla partizione di root e non si avvia. Il comando df -hmostra molto spazio disponibile (con solo il 37% utilizzato):

/dev/sda2        45G   17G   29G  37%

La pagina seguente indica che dovrei eseguire il comando balance:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space

$ sudo btrfs fi balance start -dusage=5 /mount/point

Non sono del tutto sicuro che questo sia l'approccio migliore, ma è l'unico che ho trovato. Tuttavia, quando eseguo quel comando, ottengo questo errore:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

Ottengo lo stesso errore con:

$ sudo btrfs fi balance start -dusage=1 /mount/point

Qual è la soluzione giusta?

Risposte:


15

Ci sono modi per balancecorrere in questa situazione.

sudo btrfs fi show
sudo btrfs fi df /mount/point
sudo btrfs fi balance start -dusage=10 /mount/point

Se il comando di bilanciamento termina con "Fine, è stato necessario ricollocare 0 di XX blocchi", è necessario aumentare il parametro percentuale "Dusage" fino a quando non viene trasferito almeno un blocco.

se il comando balance non riesce con:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

Potrebbe essere effettivamente necessario eliminare i file dal dispositivo per fare spazio. Quindi eseguire nuovamente il comando balance.

Tuttavia, grazie al Blog di Marc: btrfs - Risolvere i problemi completi del filesystem Btrfs ecco un'altra opzione:

Un trucco per aggirare questo è aggiungere un dispositivo (anche una chiave USB farà) al tuo filesystem btrfs. Ciò dovrebbe consentire l'avvio della bilancia, quindi è possibile rimuovere il dispositivo con l'eliminazione del dispositivo btrfs al termine della bilancia. È stato anche detto nella lista che il kernel 3.14 può risolvere alcuni problemi di bilanciamento che i kernel più vecchi non possono, quindi provalo se il tuo kernel è vecchio.


7
Ho scoperto che occasionalmente dovevo anche mount -oremount,clear_cache /mountpointcorreggere i calcoli dello spazio libero. (Si
corrompono

1
@rrauenza, grazie! Dovresti aggiungerlo come risposta :)
mwfearnley,

0

Ho provato di tutto nella risposta accettata e il blog di Marc, incluso l'incremento del -dusageparametro e l'aggiunta di un altro dispositivo a blocchi, il tutto inutilmente. Anche dopo aver eliminato alcuni file e liberato un po 'di spazio sul disco che era pieno, balancenon è stato possibile completare. Per qualche motivo sembrava sempre che i dati venissero spostati sul disco quasi pieno. Alla fine, ciò che ha funzionato per me è stato limitare il bilanciamento all'intero dispositivo:

btrfs balance start -ddevid=<dev_id> <path>

dove si dev_idpuò trovare con:

btrfs fi show 

Nessuno di questi ha funzionato
incontrato

Ciò ha provocato l'arresto anomalo del mio sistema e il volume è diventato non disponibile anche se ho riavviato il sistema. Ho installato un volume con EXT4 e ora spero di riuscire a sbarazzarmi del sistema BTRFS molto sensibile che considero un errore con molti problemi di progettazione.
Al Bundy,

0

sudo apt-btrfs-snapshot delete-old-than 3d Elimina le istantanee più vecchie di 3 giorni. Quando si spostano i dati, i dati dell'istantanea diventano fuori posto e i dati effettivi devono essere scritti in più punti sull'unità. Ciò rimuove le istantanee relative ai vecchi dati nelle vecchie posizioni e libera quei settori per riutilizzarli. Consiglio anche duperemove per deduplicare dati ed estensioni sul filesystem btrfs.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.