Что заполняет /dev/mapper/ubuntu–vg-ubuntu–lv, если смонтировано на /, но общий размер показывает только часть используемого пространства?

Вопрос или проблема

У меня проблема с виртуальной машиной, на которой работает Nextcloud. Версия – Ubuntu 22.04 LTS.

Система постоянно указывает, что логический том /dev/mapper/ubuntu–vg-ubuntu–lv полон (использовано 100%). Чтобы поддерживать работу системы, мне приходилось постоянно увеличивать размер виртуального диска и расширять логический том (используя это руководство).

В настоящее время логический том имеет размер 440 ГБ, из которых 35 ГБ свободно.

Хранилище Nextcloud и резервный диск смонтированы в /mnt: хранилище Nextcloud (/mnt/nextcloud) – это диск iSCSI на NAS, в настоящее время на нем хранится 3 ТБ данных. Резервный диск (348 ГБ) также смонтирован в /mnt (/mnt/carpetarespaldosnas).

miusuario@nextcloud:~$ df -h
Файловая система                  Размер  Использовано Доступно Использ% Смонтировано на
tmpfs                             3.2G  1.7M  3.2G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  440G  387G   35G  92% /
tmpfs                              16G   28K   16G   1% /dev/shm
tmpfs                             5.0M     0  5.0M   0% /run/lock
/dev/sda2                         2.0G  254M  1.6G  14% /boot
/dev/sda1                         1.1G  6.1M  1.1G   1% /boot/efi
/dev/sdb1                          24T  3.1T   20T  14% /mnt/nextcloud
tmpfs                             3.2G  4.0K  3.2G   1% /run/user/1000
miusuario@nextcloud:~$ sudo du -cha --max-depth=1 /mnt 2>/dev/null
1.3G    /mnt/NCBACKUP-OLD
1002M   /mnt/NCBACKUP
4.0K    /mnt/ncdata
3.1T    /mnt/nextcloud
349G    /mnt/carpetarespaldosnas
3.5T    /mnt
3.5T    всего

Поскольку логический том смонтирован на /, я пробовал различные способы определить его общий размер, чтобы выяснить, что занимает место, но он не показывает более 30 ГБ использованными.

miusuario@nextcloud:~$ sudo du -cha --max-depth=1 --exclude=/mnt / 2>/dev/null
0       /lib64
28K     /dev
0       /proc
4.5G    /usr
4.0K    /opt
260M    /boot
4.0K    /media
0       /libx32
0       /sbin
0       /lib32
308K    /home
3.8G    /swap.img
1.8G    /snap
124M    /root
1.7M    /run
240K    /tmp
20G     /var
0       /bin
0       /lib
4.0K    /srv
16K     /lost+found
11M     /etc
0       /sys
30G     /
30G     всего

Таким образом, у меня нет представления о том, что заполняет диск или что фактически использует пространство.

Я был бы признателен за вашу помощь. Я носитель испанского языка, извините, если что-то написано неправильно. Спасибо

Ответ или решение

Как IT-эксперт, я понимаю, что проблема, с которой вы столкнулись, заключается в том, что логический том /dev/mapper/ubuntu--vg-ubuntu--lv, смонтированный в корневую файловую систему /, показывает использование 100%, в то время как команды df и du отображают разное количество занятых данных. Давайте подробно разберем это.

1. Проблема с отображением дискового пространства

На первый взгляд, кажется, что всё должно совпадать, но это не всегда так. Основная причина, по которой df может показывать 100% использования, а du — значительно меньше, заключается в том, что некоторые файлы могут быть открыты и использовать пространство, но они не видны при выполнении du.

2. Файлы, которые могут не отображаться

a. Удаленные файлы, используемые процессами

Если какой-то процесс удаляет файл, но при этом продолжает его использовать, пространство, занимаемое этим файлом, все еще учитывается в визуализированных данных df, но не отображается в результатах du. Этот сценарий очень часто наблюдается с такими файлами, как журналы и временные файлы.

Решение

Чтобы выявить такие файлы, можно использовать команду lsof (list open files):

sudo lsof | grep deleted

Эта команда покажет файлы, которые были удалены, но по-прежнему открыты процессами, и тем самым занимают место на диске.

b. Папки с закладками (bind mounts)

Если у вас есть монтированные точки (например, /mnt), которые могут быть использованы в файловой системе следующим образом, то используемое пространство может не учитываться при использовании du, если вы не исключите соответствующие директории. Ваши монтированные тома каждый имеют свое собственное пространство, и если файлы в них не видны, они не будут отображаться в du, если вы не исключите нужные директории.

3. Использование du и анализ пространства

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

Наиболее используемые директории
sudo du -h / | sort -hr | head -n 20

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

Анализ незанятого пространства

Раздел var может занимать большое пространство, особенно если там находятся временные файлы или журналы:

sudo du -h /var | sort -hr | head -n 20

4. Docker и контейнеры

Если вы используете Docker, возможно, контейнеры занимают гораздо больше места, чем вы ожидали. Проверьте, нет ли остановленных контейнеров или неиспользуемых образов:

sudo docker system df

5. Подводя итог

Ваша проблема может заключаться в использовании пространства файлами, которые были удалены, но остаются открытыми, или в контейнерах Docker (если они используются). Применив указанные выше команды, вы должны быть в состоянии точно определить, какое пространство занято и что именно его использует.

Рекомендуется также регулярно очищать ненужные файлы, такие как временные, и следить за работой системы, чтобы избежать таких ситуаций в будущем. Если проблема остается неразрешенной, вам может потребоваться оценить и оптимизировать используемое программное обеспечение, возможно, изменив архитектуру хранения данных вашего Nextcloud.

Оцените материал
Добавить комментарий

Капча загружается...