btrfs: Przydzielono OGROMNE metadane


14

Mam dysk SSD 256 GB, na którym przekonwertowałem główny system plików ext4 root na btrfs. Usunąłem podwolumnę kopii zapasowej ext4, włączyłem kompresję i defragmentowałem rekurencyjnie, aby włączyć ją we wszystkich plikach.

btrfs fi df / ma wyjście, które mnie martwi:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Jeśli dobrze rozumiem dane wyjściowe, 65 GB (1/4 mojego dysku!) Jest zarezerwowane na metadane i nie jest dostępne do przechowywania plików. Jeśli to prawda, byłoby to ogromne marnotrawstwo miejsca na dysku. Czy rozumiem poprawnie? Czy można zmienić rozmiar części dysku przydzielonej do metadanych?

Odpowiedzi:


16

Po pierwsze, upewnij się, że twoje jądro i przestrzeń użytkownika BTRFS są aktualne.

Zgodnie z Btrfs FAQ , nie można zmienić rozmiar rozmiar bloku metadanych. Możesz jednak spróbować uruchomić btrfs balance start -m <punkt zamontowania>, który przeniesie metadane na cały dysk i, jako efekt uboczny, prawdopodobnie zwolni nieprzydzielone miejsce.

Jeśli to nie zadziała, być może trzeba będzie wykonać kopię zapasową danych i ponownie utworzyć system plików. (Spójrz na to, aby uzyskać więcej informacji.)


Dziękuję za odpowiedź. Jądro to 3.11.2, narzędzia btrfs mają wersję v.20.20-rc, więc nie sądzę, żebym był tu nieaktualny. Próbowałem uruchomić saldo, ale potem napotkałem następujący błąd: spinics.net/lists/linux-btrfs/msg26977.html i nie mam ochoty na kompilowanie nowszego jądra tylko w tym celu. : P Zastanawiam się, czy te 65 GB to blok metadanych, których nie można zmienić rozmiaru, czy też ten termin odnosi się do czegoś innego. W przeciwnym razie naprawdę nie rozumiem, w jaki sposób utworzono blok metadanych o takim rozmiarze.
— Gnurou

Niestety jestem tylko użytkownikiem btrfs, a nie ekspertem, więc moja pomoc jest ograniczona. W każdym razie możliwe jest, że w procesie konwersji z ext4 występuje usterka.
— hololeap

11
Tak więc potrzebna łatka dostała się do stabilnego jądra i próbowałem tego, co zasugerowałeś. Równoważenie rzeczywiście zmniejszyło ilość zarezerwowanego obszaru dla metadanych do 3 GB, a zajęte miejsce jest teraz wyświetlane jako wolne miejsce w „df”. Zauważ, że nie musisz ponownie balansować całego dysku, możesz zrobić btrfs balance start -m <punkt montowania>, aby ponownie balansować metadane, co jest znacznie szybsze. Dzięki za wnikliwą odpowiedź!
— Gnurou,

Cieszę się, że mogłem pomóc!
— hololeap

„nie można zmienić rozmiaru bloku metadanych”. Nie ma to znaczenia dla tego pytania - FAQ mówi o wielkości jednostki alokacji, a nie o ilości miejsca przydzielonego na metadane.
— Vladimir Panteleev

1

Spowoduje to zmniejszenie rozmiaru metadanych.

sudo btrfs balance start -v -musage=0 /path
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.