Обновить

Комментарии 13

Имя хоста отличное в примере в конце статьи.
А как насчет протестировать всю цепочку целиком? Попробуйте

echo «ioc0: attempting task abort!» > /dev/kmsg

из-под рута.
Тут всё сложно — для того, чтобы тестировать «с помощью kmsg», нужно иметь поднятую связку dmesg->netconsole->logstash<-dns<-chief. А это много двигающихся частей, и сложная «тестовая конфигурация», которую поднимать только ради проверки «регэкспы не попортились» смысла нет.

Да и в чём смысл пересылать сообщение через ядро, когда stdin то же самое даёт, только с меньшими сайд-эффектами? (Да и netconsole есть только на linux, а часть сотрудников маками пользуется — там как быть?).
Ну я имел в виду скорее полноценное интеграционное тестирование. Проверить регексы — это хорошо. И их надо проверять при каждом изменении. Это юнит-тестирование.
Но ведь надо иногда проверять и всю цепочку целиком, что быть уверенным что ты действительно получишь алерт при таком вот конкретном сообщении от ядра.
Это предпродакшен стенд, и под него есть отдельный environment. Но переподнимать его по каждому чиху — очевидный оверкил.
" nova-compute (написана на python) не отвечает на heartbeat'ы. "

Вот поэтому мы и стали писать свое а не использовать опенстек — ввиду того что данный продукт фундаментально крив, а если какие-то проблемы выплывут — будут в первую очередь претензии к нам.

IBM как-бы наш конкурент, но очень правильно сами пишут

• OpenStack remains an emerging technology
• It is not mature yet
• Error handling not robust
• Understanding the flow of calls and messages is needed
• Large volume of message based rpc calls
• Logging is not optimal (either too much or too little)
• You must be willing to look at code
• Networking (nova-network) is complicated
• Multiple bridges
• IPTables configuration not straight forward
© IBM Corporation
О да, вы нашли фатальный недостаток в чужом продукте. И только вы его можете устранить.

Nova используется в продакшене не менее чем парой сотен компаний (я за продакшен считаю только public self-serving) уже минимум три года.

Ту вы приходите и говорите, что вы сделаете лучше.

okay.jpg
Недостаток далеко не один к сожалению, и даже не 100.

OpenStack сегодня это как Apache Web Server.

Жутко перегружен, крив до безобразия. Ситуация с сотнями / тысячами разработчиков (и компаний которые очень хотят денег) — рак / лебедь /щука.

Потом пришел Сысоев и сделал все (nginx) как надо.

Насчет «сделаете» — сделали уже. Статья была тут на хабре но пришлось ненадолго выключить по ряду политических причин.
Скажите, вы его дальше маркетинга смотрели? Из всего опенстека keystone и nova — самые сильные компоненты (свифт не знаю, им другие люди занимаются), neutron тащится в отдалении.

К nova (при правильном планировании инфраструктуры) у меня лично комплект претензий микроскопический, в основном связанный либо с багами в edge cases (да, разумеется, баги в чужом ПО — это Фатальный Недостаток), либо с желанием как нибудь так исхитриться, чтобы и на ёлку влезть и ресурсов не потратить.

Насчёт «You must be willing to look at code» — я не верю в существование крупного проекта без этого.

А ваше исправление Фатального Недостатка подразумевает, что никому на этот код смотреть лучше не надо не придётся?
Уважаемый автор
а можно как нибудь увидеть список вот этих волшебных строк ЦЕЛИКОМ?

[message] =~ /ioc0: attempting task abort!/ or
[message] =~ /mptbase: ioc0:.+Code=\{Abort\}/ or
[message] =~ /Device offlined/ or

ну и с разбором кейсов… что откуда взялось?
Я попробую собрать. Начиная с определённого момента у нас для каждого сообщения полная строка и линк в багтрекере, но комплекты более ранних просто добавлялись по возникшим ситуациям.
Знаете это было бы офигенно даже хотя бы просто сам список куда нибудь на gist.github.com скопипастить =)
а если с разбором кейсов, то вообще очень круто
Ну, тут надо понимать, что делаем мы их под себя — чуть-чуть меняется железо, и комплект сообщений от других драйверов и совсем другой. А реакция на все сообщения с приоритетом ERROR/critical — откровенный перебор. На dell'овых серверах, например, можно получить «ошибку чтения» с CD-привода (виртуального, через IPMI) — и всем на неё пофигу. А у кого-то это может быть бизнес-критикал сообщение.

Например, kvm пишет как ошибку действия гостей: kvm [12599]: vcpu0 unhandled wrmsr: 0x682 data 0, хотя ничего такого это не означает. Просто реагировать на все error от ядра не стоит. Более того, местами имеет смысл реагировать на debug/info (флап интерфейса, который не должен флапать), и всё это исключительно business specific.

Так что имеет смысл это всё делать под конкретную инсталляцию.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
webzilla.com
Дата регистрации
Дата основания
2005
Численность
101–200 человек
Местоположение
США