btrfs i brak wolnego miejsca

8

Po wykonaniu tej operacji przekonwertowałem partycję ext4 na btrfs i usunąłem objętość zapisu. Następnie włączyłem kompresję (lzo) systemu plików w pliku fstab i jak dotąd wszystko jest poprawne.

Następnie wymusiłem kompresję wszystkich plików za pomocą polecenia defragmentacji z parametrem -c, że nowa kompresja zostanie zastosowana do wszystkich plików.

Robiąc to, zauważyłem, że moje ssd zostało całkowicie wypełnione - zanim miałem 6 gigabajtów wolnego miejsca. Nie, nic mi nie zostało.

easteregg@x201s:~$ btrfs fi df /
Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

i

easteregg@x201s:~$ df -ha
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda1          75G   60G  852M  99% /

Więc teraz. Jak mogę odzyskać wolne miejsce? Spodziewałem się uzyskać więcej miejsca dzięki kompresji Lzo. I teraz!

Fs jest poprawnie zamontowany.

easteregg@x201s:~$ mount
/dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo)

Wszelkie pomysły, jak rozwiązać ten problem?

jajko wielkanocne
źródło
Teraz mam rację: nie można dokonać ponownego bilansowania online. To wyjaśnia, dlaczego nic dla mnie nie działało. Właśnie uruchomiłem system ratunkowy i ponownie zrównoważyłem cały dysk, a następnie wykonałem polecenie defragmentacji z włączoną kompresją. Teraz mam około 17 koncertów wolnego miejsca! fajnie :)
easteregg
1
Najlepszą praktyką jest utrzymywanie minimalnego zestawu migawek i usuwanie niepotrzebnych, aby uniknąć marnowania miejsca na woluminie, ponieważ btrfs to system plików kopiowania przy zapisie, w miarę upływu czasu coraz więcej bloków danych będzie zmienianych, dzięki czemu migawki zajmują coraz więcej miejsca na dysku.
Terry Wang,
2
Zobacz także to pytanie , które zawiera dokładne wyjaśnienie i przydatne komentarze.
ignis

Odpowiedzi:

8

Wiem, że to pytanie jest stare - ale na dzień dzisiejszy polecenie równowagi rozwiązuje następujące kwestie:

Podczas konwersji będzie dużo miejsca, aby przenieść do niego rzeczy. Po przydzieleniu nie będzie już wyświetlany jako „bezpłatny” lub „nieprzydzielony”. Aby to naprawić, po prostu uruchom saldo

btrfs balance start "path"

możesz także powiedzieć komendę balance, aby wyrównać tylko części, które są używane dla określonego procentu - jak 0%, co oznaczałoby, że części są puste:

btrfs balance start "path" -dusage=0 -musage=0

parametr -d oznacza opcje dla danych. parametr -m oznacza opcje dla metadanych.

grać z poleceniem równowagi, powinno to pomóc.

wuppi
źródło
5

Spójrz na dane wyjściowe z btrfs fi df:

Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

totalCzęść jest przydzielona przestrzeń, podczas gdy usedjest faktycznie wykorzystywany przez btrfs. Różnica między totali used(około 15 GB) to brakujące miejsce. Jak widać, został już przydzielony do bloków metadanych.

Mam tylko hobby z btrfs, ale nie sądzę, że konwersja ext4 jest najlepszym sposobem na stworzenie dobrze zorganizowanego systemu plików btrfs. Na szczęście możesz ponownie zrównoważyć cały system plików, aby ponownie wykonać wszystkie alokacje.

Jak zawsze używaj kopii zapasowych.

ramslök
źródło