Восстановление после kernel panic или хард ресета

по сравнению с
Текущая oleg
на сен 02, 2015 18:18.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (17)

просмотр истории страницы
h1. Приведите yum в рабочее состояние
{toc}

h1. Описание проблемы

Недавно имела место проблема (подробнее - https://twitter.com/carbon_reductor/status/638653119556096000 ), приводившая к постепенному повисанию сервера, после этого могли возникнуть

Статья актуальна в ситуации, когда при обновлении Carbon Reductor произошёл kernel panic или сбой питания, дисковый кэш не успел записаться на диск и в итоге Carbon Reductor не стартует, либо сервер уходит в панику при старте.

В случае паники при старте - отключите автостарт редуктора по [этой статье|reductor5:Kernel Panic при загрузке].

Одним из основных признаков этой проблемы может служить вес папки:

{code}
du -sh /usr/local/Reductor
{code}

около 600кб, вместо 90мб.

*Внимание! Статья имеет потенциально опасные действия, не выполняйте их не убедившись в том, что проблема имеет место.*

h1. Полуавтоматическое восстановление (экспериментально)

{code}
curl -L http://download5.carbonsoft.ru/reductor/september_hotfix.sh | bash #hotfix
chkconfig --level 345 reductor off #отключаем автостарт редуктора на случай паники при рестарте
sync
service reductor restart #здесь вероятна паника, не пугаемся
chkconfig --level 345 reductor on #в случае, если паники не было
service crond restart #он отключался, чтобы диагностика автоматически не стартанула редуктор до того как это потребуется
{code}

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

Если паники продолжаются и после этого - переходим к ручному восстановлению ниже в статье, пункт "Проверьте, что сервер не уходит в панику при следующих действиях"

h1. Ручное восстановление:

Все дальнейшие действия лучше согласовывать с технической поддержкой.

h2. Приведите yum в рабочее состояние

{code}
yum info kernel
{code}

{code}
[root@reductor local]# yum info kernel
...
Ошибка: database disk image is malformed
{code}

эту ошибку можно исправить командой:

{code}
[root@reductor local]# yum clean dbcache
...
Сброс источников:base epel extras updates
6 sqlite файлы удалены
{code}

Если не работает или выдаёт ошибки связанные с no such table packages

{code}
rm -f /var/lib/rpm/__*
rpmdb —initdb --initdb
rpmdb -v —rebuilddb --rebuilddb
sleep $((5*60))
yum info kernel
и слейте на внешний сервер и переустановите CentOS 6.7 (обязательно 6.7, да).

h12. Обновите ядро до последнего

Если yum в итоге заработал:
На текущий момент 01.09.2015 актуальное ядро - 2.6.32-573

h12. Удалите и установите Carbon Reductor заново

Скорее всего штатными средствами обновиться не удастся, т.к. yum будет считать, что версия - последняя.
Вручную это можно сделать так.

{code}
yum -y erase reductor
{code}

h12. Восстановите настройки из одного из бэкапов

h2. Если делали автоматические бэкапвы
h3. Если делали автоматические бэкапы

Если делали автоматический бэкап с помощью service reductor export и забирали на удалённый сервер
{code}

h23. Если бэкапы настроек и своих списков не были настроены

Просмотрите какой из бэкапов редуктора имеющийся на сервере имеет не пустой конфиг (число рядом с именем файла - число строк в нём):
{code}

h12. Проверьте, что сервер не уходит в панику при следующих действиях

Для исключения побочных эффектов на время этого шага лучше выключить зеркало трафика
{code}

h12. Попробуйте запустить Carbon Reductor

{code}
если там нет ругани на что-то кроме tcpdump / проверенные пакеты, то включайте зеркало обратно, подождите 2 минуты и снова диагностику.

h12. Верните Carbon Reductor в автозагрузку

{code}