Восстановление входа в vCenter Server Appliance 5.5 при переполнении дисков
Иногда администраторы VMware сталкиваются с неприятной ситуацией: внезапно перестаёт работать вход в vCenter Server Appliance (vCSA) 5.5. Причина может оказаться банальной, но весьма критичной — на сервере просто заканчивается свободное место на одном или нескольких разделах.
Недавно у меня произошёл именно такой случай. После попытки войти в систему я заметил, что вход невозможен. Первым делом я проверил дисковое пространство и увидел, что два раздела оказались полностью забиты:
Результат оказался таким:
Оба раздела — /storage/core и /storage/db — были переполнены, что полностью блокировало работу сервиса.
Причина проблемы
В базе знаний VMware есть статья, посвящённая подобному симптому. Оказывается, это известная ошибка в vCenter Server 5.5U2. Основная причина — чрезмерное количество записей в журнале базы данных vPostgres.
Во время работы vCenter база может создавать очень много сообщений вида:
Если уровень логирования настроен слишком подробно, файлы журналов быстро занимают всё дисковое пространство, что и приводит к сбою.
Шаги по решению
1. Остановка сервисов
Сначала нужно полностью остановить работу vCenter и встроенной базы данных:
2. Настройка параметров логирования
Переходим в каталог с конфигурацией базы данных и редактируем файл postgresql.conf
. Обязательно сделайте резервную копию перед изменениями:
В файле следует уменьшить уровень логирования. Найдите параметр log_min_messages
и замените его на:
Это снизит количество сообщений, записываемых в журнал, и позволит избежать повторного переполнения диска.
3. Очистка старых логов
Далее можно удалить все устаревшие файлы журналов (оставив только последний):
Таким образом вы освободите место на разделе /storage/db.
Очистка каталога /storage/core
В моём случае ситуация осложнилась тем, что забит был не только каталог с базой данных, но и раздел /storage/core. Там со временем накапливаются старые дампы памяти и файлы core
, которые можно без опасений удалить.
Сначала проверим содержимое:
Пример вывода:
Как видно, файлы могут достигать десятков гигабайт. Удаляем их командой:
Перезапуск сервисов
После освобождения места можно снова запустить vCenter и базу данных:
Если всё сделано правильно, вход в систему снова станет доступен.
Итог
Проблема возникает из-за чрезмерного логирования в vPostgres на vCSA 5.5U2.
Решение — уменьшить уровень логирования, очистить старые журналы и удалить накопившиеся файлы в
/storage/core
.После перезапуска сервисов система возвращается в нормальный режим работы.
💡 Совет: чтобы не столкнуться с этим снова, стоит периодически проверять дисковое пространство и настраивать автоматическую очистку старых логов. Это простое действие поможет избежать простоя в будущем.
Дополнительные меры профилактики
1. Мониторинг дискового пространства
Чтобы заранее видеть, когда разделы начинают заполняться, можно использовать стандартные инструменты Linux.
Например, проверить все разделы в удобном виде можно так:
Для мониторинга конкретных каталогов (например, /storage/core
и /storage/db
) удобно применять команду du
:
Эти команды покажут общий объём данных внутри папок. Если нужно узнать, какие именно файлы занимают больше всего места, используйте:
Здесь выводятся 20 самых «тяжёлых» файлов и папок в каталоге.
2. Автоматическая очистка логов через cron
Чтобы больше не сталкиваться с переполнением раздела из-за старых логов, можно настроить автоматическую очистку. Для этого используется планировщик задач cron
.
Открываем редактор crontab:
И добавляем, например, такую строку:
Что делает эта команда:
запускается каждый день в 03:00 ночи;
ищет все файлы старше 7 дней в каталоге
/storage/db/vpostgres
;удаляет их автоматически.
Аналогично можно очистить и папку /storage/core
, если там часто появляются дампы:
Здесь будут удаляться файлы старше 14 дней.
3. Настройка уведомлений (опционально)
Ещё один полезный приём — настроить уведомления, чтобы администратор знал, что место заканчивается. Для этого можно объединить df
с почтовым уведомлением.
Простейший пример скрипта:
Скрипт можно добавить в cron, чтобы он проверял состояние диска, например, каждые 6 часов.
Итоговое резюме
Теперь статья стала полноценным практическим руководством:
мы разобрались, почему vCSA 5.5 перестаёт пускать в систему;
пошагово очистили диски;
настроили снижение уровня логирования в vPostgres;
добавили автоматическую очистку через cron и мониторинг дисков;
показали, как настроить уведомления.
Таким образом, администратор может не только решить проблему разового переполнения, но и предотвратить её повторение в будущем.
спасибо: http://www.stankowic-development.net/?p=8846&lang=enclear