Bootstrap

Ручная очистка btrfs, например от подтомов созданных Docker

Ручная очистка btrfs, например от подтомов созданных Docker

Чтобы узнать, на каких разделах установлена Btrfs с вашей системой, вы можете выполнить следующую команду:


sudo btrfs  fi show

Эта команда покажет информацию о всех Btrfs-разделах, включая устройства, UUID, размер, состояние и точки монтирования.

Если вы хотите узнать только о точке монтирования раздела с Btrfs, вы можете использовать команду:


sudo mount | grep 'on / '

Эта команда покажет точку монтирования корневой файловой системы, которая должна быть установлена с Btrfs, если вы использовали Btrfs во время установки.



Для смонтирования Btrfs раздела самого верхнего уровня обходя настройки монтирования томов с раздела, по умолчанию, можно использовать следующую команду в терминале:


sudo mount -o subvolid=0 /dev/sdXY /mnt

где:

- `sudo` - запуск команды от имени суперпользователя;
- `mount` - команда монтирования файловых систем;
- `-o` - опции монтирования;
- `subvolid=0` - указание как volume ID точки монтирования;
- `/dev/sdXY` - путь к разделу, который нужно примонтировать;
- `/mnt` - точка монтирования для примонтированного раздела.

Эта команда примонтирует указанный раздел в точку монтирования `/mnt`, игнорируя настройки монтирования тома по умолчанию, и используя volume ID самого верхнего уровня для указания точки монтирования.


После монтирования, для поиска всех подтомов системы в точке монтирования Btrfs-раздела можно использовать следующую команду:


sudo btrfs subvolume list  -a /mnt --sort=path

sudo btrfs fi df /mnt

Приведенная выше команда отобразит размер подтома в байтах, используемое и доступное пространство. Вот пример вывода:

```
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, которыми вы например вообще уже давно не пользуетесь, и даже забыли для чего они вам, вам необходимо выполнить следующие шаги:

  1. Остановите все контейнеры Docker, работающие на вашей системе:

sudo docker stop $(sudo docker ps -a -q)

Для удаления всех подтомов в указанной директории можно воспользоваться следующей командой:


sudo find /var/lib/docker/btrfs/subvolumes/ -mindepth 1 -maxdepth 1 -type d -exec btrfs subvolume delete {} +

Эта команда найдет все подтомы в директории /var/lib/docker/btrfs/subvolumes/, включая все поддиректории в ней, и удалит их, используя команду btrfs subvolume delete.

Обратите внимание, что эта команда удалит все подтомы в указанной директории, включая данные контейнеров и томов данных, которые они содержат. Поэтому убедитесь, что вы действительно хотите удалить все подтомы в этой директории, перед выполнением этой команды.

Также обратите внимание, что эта команда может занять некоторое время для выполнения, особенно если у вас есть много подтомов или они содержат большой объем данных.

Естественно делайте это только в том случае, если вам это действительно необходимо, и вы точно знаете для чего вы это делаете.

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

roman roman 07.12.2023 16:14:55

естественно прежде чем использовать ручную очистку, сначала стоит использовать авто очистку с помощью штатных средства docker 1) Вы можете удалить неиспользуемые или устаревшие образы с помощью команды docker image prune 2) Для очистки неиспользуемых контейнеров Docker использует команду docker container prune 3) очистить неиспользуемые Docker тома, то есть те тома, которые не привязаны ни к одному контейнеру docker volume prune Проверяет все тома, созданные в Docker. Удаляет все неиспользуемые тома, то есть те, которые не привязаны ни к одному контейнеру. Освобождает дисковое пространство на хосте, занятое неиспользуемыми томами. 4) Очистка неиспользуемых сетей: docker network prune

Ответить

roman roman 10.12.2023 20:39:23

стоит понимать, что при создании снапшотов в btrfs с хранением их на том же диске, если допустим у вас диск 220гб всего. И на нём занято 100гб, вы записываете на диск ещё 50гб итого 150. делаете снапшот, а затем удаляете эти 50гб. Так как вы сделали снапшот, то места на диске так и останется занято 150 гб. Чтобы освободить эти 50гб, нужно удалить и снапшот. И создать новый уже без данных на 50гб. Тогда место не будет заниматься впустую. При условии что эти 50гб данных вам были не нужны. но естественно удалять снапшот не нужно если вы желаете их сохранить.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: