Główny system plików mojego Kubuntu (zamontowany pod /) to Btrfs. Nie używam -o discardjako opcji montowania. Oznacza to, że muszę działać fstrimna żądanie .
W przeszłości napotkałem ten problem: btrfs, nie ma już miejsca na dysku . Zauważyłem, fstrim -v /że prawie nie przycina się miejsca. Moje rozwiązanie miało działać btrfs balance start /wcześniej fstrim. Oto sedno mojej odpowiedzi .
Dzisiaj jest inaczej. Może spóźniłem się z konserwacją. Oto co się dzieje:
# fstrim -v /
/: 24 KiB (24576 bytes) trimmed
# btrfs balance start /
ERROR: error during balancing '/': No space left on device
Usunąłem kilka podwoluminów (migawek) btrfs subvolume delete …i to nie pomogło. Nie pamiętam zbyt dobrze szczegółów, ale myślę, że wcześniej mogłem biegać, btrfs balance …ponieważ wstępne fstrimprzycięcie przynajmniej kilku MiB, nie tak małych jak 24 KiB, jak dzisiaj. Teraz wydaje się, że jest to sytuacja typu catch-22, w której działałby fstrimlub btrfs balancedziałałby tylko, gdyby drugi wykonał swoją pracę jako pierwszy.
Dla przypomnienia, są to niektóre statystyki, które pokazują, że mam dużo miejsca:
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 112G 43G 68G 39% /
# btrfs fi df /
Data, single: total=108.73GiB, used=41.00GiB
System, single: total=64.00MiB, used=16.00KiB
Metadata, single: total=3.00GiB, used=1.02GiB
GlobalReserve, single: total=352.00MiB, used=0.00B
Uwaga: Podczas normalnej pracy nie mam jeszcze „brak wolnego miejsca na urządzeniu”. Myślę, że Btrfs ciągle dopasowuje nowe zapisy do już pobranych fragmentów. Jednak w przeszłości uderzyłem „brak miejsca…” apt-get upgrade, potem wyzdrowiałem z btrfs balancei fstrim. Nie wiem kiedy (jeśli) to znów mnie uderza. Chciałbym przeprowadzić konserwację, zanim otrzymam „brak miejsca…” podczas robienia czegoś ważnego.
Jak wyjść z tej sytuacji tak fstrimi btrfs balancenie blokują się nawzajem? Czy mogę to naprawić z poziomu mojego uruchomionego systemu?
W rzeczywistości już to naprawiłem, moja odpowiedź jest poniżej. Pytanie jest do wykorzystania w przyszłości. Dodaj kolejne rozwiązanie.
Dodatkowe informacje:
$ uname -a
Linux foobar 4.4.0-78-generic #99-Ubuntu SMP […] x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
# dpkg -l | grep btrfs
ii btrfs-tools 4.4-1ubuntu1 amd64 Checksumming Copy on Write Filesystem utilities