Назад | Перейти на главную страницу

Остановите неудержимый контейнер openvz

У меня есть контейнер openvz, который НЕ останавливается с помощью стандартных инструментов vz. Как мне его убить? Я попробовал дестори VZ, но это не сработает.

Спасибо

Стандартный способ решения такой проблемы:

  1. Найдите все контейнерные процессы с помощью такой команды: https://gist.github.com/pavel-odintsov/3e7351ba4ceca33b8cc6
  2. Убейте все процессы контейнера вручную, используя kill -9
  3. Если какой-то процесс не может быть уничтожен, проверьте dmesg на предмет аппаратных ошибок (в большинстве случаев это связано с диском или другими ошибками ввода-вывода)
  4. Получите strace -f -p PID / lsof -p и ps aux | grep PID для этого процесса и отправьте его на bugzilla.openvz.org, но это ошибка
  5. Обновите ядро ​​OpenVZ и пользовательское пространство до последней версии, так как было исправлено множество ошибок с аналогичным эффектом.
  6. Перезагрузите сервер с помощью shutdown -r сейчас

Что ж, есть очень сложная часть ... Вы должны разобраться в процессе инициализации VPS и убить его, см.: http://forum.openvz.org/index.php?t=msg&goto=27976& Но ... На мой взгляд, у вас есть только один вариант - перезапустить HN.

Если VPS завис; посмотрите в свой системный журнал, есть ли какие-либо ошибки ядра, скорее всего, они вызывают "зависания" процессов. Кроме того, посмотрите на user_beancounters этого конкретного VPS. Иногда он зависает при установке / обновлении программного обеспечения, и если VPS не является производственным, оставьте его. Со временем он рассортируется.

стандартные списки vz

- Что это такое? Вы имели ввиду "стандартные инструменты vz" что ли?

Попробуйте (и покажите мне с помощью службы pastebin) vzctl exec VE_NUM ps axf чтобы увидеть, какие процессы там запущены и каковы их состояния. У меня были аналогичные проблемы с OpenVZ в Debian, но я должен быть уверен, что это именно то, что у меня было.

Я полагаю, вы знаете, что VE-остановка выполняется с помощью vzctl stop ;-)

Это немного жестковато, но лучший способ, который я нашел, чтобы остановить устойчивый контейнер, - это принудительно убить процессы контейнера. Команда vzpid с помощью grep можно легко найти:

ps ax | awk '{print $1}' | xargs vzpid | grep <container ID> | awk '{print $1}' | xargs kill -9

Теперь, когда вы запускаете vzlist -a он должен показать контейнер как "остановленный". Лучше, чем перезагружать HN imo.

vzctl chkpnt CTID --kill

killing...

Это (в большинстве случаев) так просто:

vzctl stop [CTID]

если возникнут какие-либо проблемы, перейдите к файлам блокировки (в моем install / vz / lock) и переименуйте / удалите файл блокировки с именем [CTID] .lck

vzctl start [CTID]

Вуаля, готово.