Вопрос или проблема
У меня есть эта ошибка
session_write_close(): Write failed: No space left on device (28)
и вот вывод df -h
root@localhost:/dev/mapper# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 791M 1.1M 790M 1% /run
/dev/mapper/vg00-lv01 155G 149G 0 100% /
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda1 488M 361M 91M 80% /boot
tmpfs 791M 8.0K 791M 1% /run/user/1001
и вот размеры папок var:
root@localhost:/var# du -sh * | sort -h
0 lock
0 run
4.0K crash
4.0K local
4.0K mail
4.0K opt
20K spool
52K tmp
64K snap
2.4M backups
240M cache
246M log
1.6G www
1.8G lib
Как это исправить?
Так что du -sh * не показывает полную картину того, что занимает 149G.
Я бы сделал что-то вроде:
du -a 2>/dev/null | sort -n -r | head -n 20
или
du -sh * 2>/dev/null | grep G
Чтобы понять, что легче всего очистить.
Также можно произвести небольшую очистку в папке с логами, например, очистить старые и настроить ротацию логов. Это будет немного бесполезно для вашего текущего положения.
Я вижу www, так что предположительно веб-сервер. Вероятно, стоит попробовать понять, что было добавлено на сервер (патчи, деплой) и попробовать очистить.
Проверьте с помощью lsof, нет ли чего-либо, что потенциально может много записывать, и оцените, можно ли завершить процессы, открывающие эти файлы, и очистить файлы.
Если всё в порядке, то следующей логичной шагом, вероятно, будет предположение, что вам нужны все вещи, занимающие место, и расширение группы томов.
Если это не вариант и вы в отчаянии, есть способы, такие как возврат резервного пространства (это может привести к быстрым последствиям, полагаю).
Статьи для дальнейшего чтения:
/dev/mapper/ full
https://help.univention.com/t/how-to-how-to-extend-a-lvm-volume-group/17146
Ответ или решение
Если вы столкнулись с ошибкой "Нет места на устройстве" и система указывает на то, что раздел /dev/mapper/vg00-lv01 заполнен на 100%, вам необходимо принять меры, чтобы освободить пространство и обеспечить стабильную работу системы. Проявите внимание к деталям, придерживайтесь четкого плана действий и учитывайте специфическую архитектуру вашего сервера. Рассмотрим основные шаги, которые стоит предпринять для решения этой проблемы:
1. Первоначальная оценка ситуации:
Ваша любая интервенция начинается с глубокого анализа текущей ситуации. На основании перечисленных вами данных видно, что основная файловая система /dev/mapper/vg00-lv01
имеет размер в 155 ГБ и заполнена полностью. Это может привести к неработоспособности приложений и сервисов, включая важные системные процессы.
2. Поиск ограничивающих файлов и директорий:
Используйте команду du
для выявления крупных файлов и директорий. Попробуйте запустить:
du -a / | sort -n -r | head -n 20
Эта команда выведет 20 самых больших объектов в вашей файловой системе, что поможет быстро оценить, какие из них занимают наибольший объем и, возможно, являются причиной нехватки места.
Для более точной оценки в конкретных директориях, например в /var
, используйте:
du -sh /var/* | grep G
3. Очистка ненужных данных:
-
Кэш и временные файлы: Папка
/var/cache
содержит временные данные, которые можно безопасно удалить для освобождения места. Используйте командуapt-get clean
илиyum clean all
в зависимости от используемого дистрибутива Linux для очистки временных файлов пакетов. -
Логи: Папка
/var/log
может содержать устаревшие или избыточные лог-файлы. Используйтеlogrotate
для автоматической ротации и удаления старых логов. Убедитесь в том, что вы сконфигурировалиlogrotate
надлежащим образом.
4. Проверка активных процессов:
Команда lsof
полезна для выявления файлов, которые активно используются процессами. Это может помочь в выявлении потенциальных утечек:
lsof +L1
5. Резервные копии и архивы:
Если папка /var/www
содержит резервные копии или старые версии проекта, подумайте об их переносе на внешний носитель или удалении, предварительно убедившись, что они не требуются.
6. Управление файловой системой и изменение её размера:
Если все вышеперечисленные действия не помогли, необходимо рассмотреть возможность расширения тома Logical Volume
:
- Проверьте доступность свободного пространства в группе томов
Volume Group
с помощьюvgdisplay
. - При наличии свободного места используйте команды
lvextend
иresize2fs
(илиxfs_growfs
, в зависимости от файловой системы) для увеличения размера LVM.
7. Альтернативные меры:
Если расширение возможно, но нежелательно, вы можете временно сократить резервное пространство суперпользователя, однако стоит быть осторожным с этой процедурой:
tune2fs -m 1 /dev/mapper/vg00-lv01
Эта команда уменьшает резервное пространство до 1%, но может негативно повлиять на стабильность, если диск вновь переполнится.
Заключение:
Проанализировав и применив данные меры, вы без сомнения сможете восстановить нормальное функционирование системы. Постоянный мониторинг использования дискового пространства и проактивный подход к управлению файлами помогут предотвратить повторение подобной ситуации в будущем.