- Описание проблемы
- Полуавтоматическое восстановление (экспериментально)
- Ручное восстановление:
Описание проблемы
Недавно имела место проблема (подробнее - https://twitter.com/carbon_reductor/status/638653119556096000 ), приводившая к постепенному повисанию сервера, после этого могли возникнуть
Статья актуальна в ситуации, когда при обновлении Carbon Reductor произошёл kernel panic или сбой питания, дисковый кэш не успел записаться на диск и в итоге Carbon Reductor не стартует, либо сервер уходит в панику при старте.
В случае паники при старте - отключите автостарт редуктора по этой статье.
Одним из основных признаков этой проблемы может служить вес папки:
du -sh /usr/local/Reductor
около 600кб, вместо 90мб.
Внимание! Статья имеет потенциально опасные действия, не выполняйте их не убедившись в том, что проблема имеет место.
Полуавтоматическое восстановление (экспериментально)
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 #он отключался, чтобы диагностика автоматически не стартанула редуктор до того как это потребуется
Если после этого сервер запаниковал - попробуйте повторить дважды.
Если паники продолжаются и после этого - переходим к ручному восстановлению ниже в статье, пункт "Проверьте, что сервер не уходит в панику при следующих действиях"
Ручное восстановление:
Все дальнейшие действия лучше согласовывать с технической поддержкой.
Приведите yum в рабочее состояние
yum info kernel
[root@reductor local]# yum info kernel ... Ошибка: database disk image is malformed
эту ошибку можно исправить командой:
[root@reductor local]# yum clean dbcache ... Сброс источников:base epel extras updates 6 sqlite файлы удалены
Если не работает или выдаёт ошибки связанные с no such table packages
rm -f /var/lib/rpm/__*
rpmdb --initdb
rpmdb -v --rebuilddb
sleep $((5*60))
yum info kernel
Если после этого yum info kernel выдаёт ошибку
sed -e 's|$releasever|6|g' -i /etc/yum.repos.d/CentOS-Base.repo yum info kernel
Если и это не помогло - попробуйте разобраться с ним самостоятельно, либо забэкапьте старые версии Carbon Reductor командой:
tar cfz /root/reductors.tar.gz /usr/local/old_Reductor*
и слейте на внешний сервер и переустановите CentOS 6.7 (обязательно 6.7, да).
Обновите ядро до последнего
Если yum в итоге заработал:
yum -y install kernel sync reboot
На текущий момент 01.09.2015 актуальное ядро - 2.6.32-573
Удалите и установите Carbon Reductor заново
Скорее всего штатными средствами обновиться не удастся, т.к. yum будет считать, что версия - последняя.
Вручную это можно сделать так.
yum -y erase reductor
yum -y install http://download5.carbonsoft.ru/reductor/reductor.rpm
Восстановите настройки из одного из бэкапов
Если делали автоматические бэкапы
Если делали автоматический бэкап с помощью service reductor export и забирали на удалённый сервер
Залейте бэкап на сервер Carbon Reductor, например в файл
/root/reductor_backup_2015.08.28.tar.gz
и выполните
service reductor import /root/reductor_backup_2015.08.28.tar.gz
Если бэкапы настроек и своих списков не были настроены
Просмотрите какой из бэкапов редуктора имеющийся на сервере имеет не пустой конфиг (число рядом с именем файла - число строк в нём):
wc -l /usr/local/old_Reductor*/userinfo/config
Подставьте версию этого редуктора в команду:
/bin/cp -vap /usr/local/old_Reductor.ВЕРСИЯ_РЕДУКТОРА/userinfo/* /usr/local/Reductor/userinfo/ /bin/cp -vap /usr/local/old_Reductor.ВЕРСИЯ_РЕДУКТОРА/lists/our.* /usr/local/Reductor/lists/
Проверьте, что сервер не уходит в панику при следующих действиях
Для исключения побочных эффектов на время этого шага лучше выключить зеркало трафика
cd /usr/local/Reductor/reductor_container/lib/modules/ ls # скопируйте имя этой папки в буфер ln -s имя_этой_папки $(uname -r) chroot /usr/local/Reductor/reductor_container/ depmod -a modprobe xt_reductor modprobe ipt_FORBIDDEN exit rmmod xt_reductor rmmod ipt_FORBIDDEN
Попробуйте запустить Carbon Reductor
service reductor restart
затем запустите выгрузки
service reductor update
после них диагностику
service reductor check
если там нет ругани на что-то кроме tcpdump / проверенные пакеты, то включайте зеркало обратно, подождите 2 минуты и снова диагностику.
Верните Carbon Reductor в автозагрузку
chkconfig --level 345 reductor on