... {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 rpmdb -v --rebuilddb sleep $((5*60)) yum info kernel {code} Если после этого yum info kernel выдаёт ошибку {code} sed -e 's|$releasever|6|g' -i /etc/yum.repos.d/CentOS-Base.repo yum info kernel {code} Если и это не помогло - попробуйте разобраться с ним самостоятельно, либо забэкапьте старые версии Carbon Reductor командой: {code} tar cfz /root/reductors.tar.gz /usr/local/old_Reductor* {code} и слейте на внешний сервер и переустановите CentOS 6.7 (обязательно 6.7, да). h2. Обновите ядро до последнего Если yum в итоге заработал: {code} yum -y install kernel sync reboot {code}
|
... Вручную это можно сделать так. {code} yum -y erase reductor yum -y install http://download5.carbonsoft.ru/reductor/reductor.rpm {code} h2. Восстановите настройки из одного из бэкапов h3. Если делали автоматические бэкапы Если делали автоматический бэкап с помощью service reductor export и забирали на удалённый сервер Залейте бэкап на сервер Carbon Reductor, например в файл /root/reductor_backup_2015.08.28.tar.gz и выполните {code} service reductor import /root/reductor_backup_2015.08.28.tar.gz {code} h3. Если бэкапы настроек и своих списков не были настроены Просмотрите какой из бэкапов редуктора имеющийся на сервере имеет не пустой конфиг (число рядом с именем файла - число строк в нём): {code} wc -l /usr/local/old_Reductor*/userinfo/config {code} Подставьте версию этого редуктора в команду: {code} /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/ {code} h2. Проверьте, что сервер не уходит в панику при следующих действиях Для исключения побочных эффектов на время этого шага лучше выключить зеркало трафика {code} 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 {code} h2. Попробуйте запустить Carbon Reductor {code} service reductor restart {code} затем запустите выгрузки {code} service reductor update {code} после них диагностику {code} service reductor check {code} если там нет ругани на что-то кроме tcpdump / проверенные пакеты, то включайте зеркало обратно, подождите 2 минуты и снова диагностику. h2. Верните Carbon Reductor в автозагрузку {code} chkconfig --level 345 reductor on {code}
|