Ручная очистка btrfs, например от подтомов созданных Docker
Чтобы узнать, на каких разделах установлена Btrfs с вашей системой, вы можете выполнить следующую команду:
Эта команда покажет информацию о всех Btrfs-разделах, включая устройства, UUID, размер, состояние и точки монтирования.
Если вы хотите узнать только о точке монтирования раздела с Btrfs, вы можете использовать команду:
Эта команда покажет точку монтирования корневой файловой системы, которая должна быть установлена с Btrfs, если вы использовали Btrfs во время установки.
Для смонтирования Btrfs раздела самого верхнего уровня обходя настройки монтирования томов с раздела, по умолчанию, можно использовать следующую команду в терминале:
где:
- `sudo` - запуск команды от имени суперпользователя;
- `mount` - команда монтирования файловых систем;
- `-o` - опции монтирования;
- `subvolid=0` - указание как volume ID точки монтирования;
- `/dev/sdXY` - путь к разделу, который нужно примонтировать;
- `/mnt` - точка монтирования для примонтированного раздела.
Эта команда примонтирует указанный раздел в точку монтирования `/mnt`, игнорируя настройки монтирования тома по умолчанию, и используя volume ID самого верхнего уровня для указания точки монтирования.
После монтирования, для поиска всех подтомов системы в точке монтирования Btrfs-раздела можно использовать следующую команду:
Приведенная выше команда отобразит размер подтома в байтах, используемое и доступное пространство. Вот пример вывода:
```
Data, single: total=10.00GiB, used=9.00GiB
System, single: total=4.00MiB, used=32.00KiB
Metadata, single: total=1.00GiB, used=739.24MiB
GlobalReserve, single: total=96.00MiB, used=0.00B
```
Эти выходные данные показывают, что общий размер подтома составляет 10,00 ГБ, из которых 9,00 ГБ занято и 1,00 ГБ доступно. Выходные данные также показывают информацию о размере и использовании метаданных и системных подтомов.
Чтобы радикально удалить все ненужные подтома от контейнеров Docker, которыми вы например вообще уже давно не пользуетесь, и даже забыли для чего они вам, вам необходимо выполнить следующие шаги:
- Остановите все контейнеры Docker, работающие на вашей системе:
Для удаления всех подтомов в указанной директории можно воспользоваться следующей командой:
Эта команда найдет все подтомы в директории /var/lib/docker/btrfs/subvolumes/
, включая все поддиректории в ней, и удалит их, используя команду btrfs subvolume delete
.
Обратите внимание, что эта команда удалит все подтомы в указанной директории, включая данные контейнеров и томов данных, которые они содержат. Поэтому убедитесь, что вы действительно хотите удалить все подтомы в этой директории, перед выполнением этой команды.
Также обратите внимание, что эта команда может занять некоторое время для выполнения, особенно если у вас есть много подтомов или они содержат большой объем данных.
Естественно делайте это только в том случае, если вам это действительно необходимо, и вы точно знаете для чего вы это делаете.
-
- Roman Sakhno
Комментарии (2):
естественно прежде чем использовать ручную очистку, сначала стоит использовать авто очистку с помощью штатных средства docker 1) Вы можете удалить неиспользуемые или устаревшие образы с помощью команды docker image prune 2) Для очистки неиспользуемых контейнеров Docker использует команду docker container prune 3) очистить неиспользуемые Docker тома, то есть те тома, которые не привязаны ни к одному контейнеру docker volume prune Проверяет все тома, созданные в Docker. Удаляет все неиспользуемые тома, то есть те, которые не привязаны ни к одному контейнеру. Освобождает дисковое пространство на хосте, занятое неиспользуемыми томами. 4) Очистка неиспользуемых сетей: docker network prune
Ответить
стоит понимать, что при создании снапшотов в btrfs с хранением их на том же диске, если допустим у вас диск 220гб всего. И на нём занято 100гб, вы записываете на диск ещё 50гб итого 150. делаете снапшот, а затем удаляете эти 50гб. Так как вы сделали снапшот, то места на диске так и останется занято 150 гб. Чтобы освободить эти 50гб, нужно удалить и снапшот. И создать новый уже без данных на 50гб. Тогда место не будет заниматься впустую. При условии что эти 50гб данных вам были не нужны. но естественно удалять снапшот не нужно если вы желаете их сохранить.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.