Główny system plików mojego Kubuntu (zamontowany pod /
) to Btrfs. Nie używam -o discard
jako opcji montowania. Oznacza to, że muszę działać fstrim
na żą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 fstrim
przycię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 fstrim
lub btrfs balance
dział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 balance
i 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 fstrim
i btrfs balance
nie 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
btrfs filesystem resize
resize
pomysłowi znacznie poprawiłem swoją odpowiedź .