Как я могу получить уведомление, когда машина Linux, оснащенная памятью ECC, распознает сбой памяти? Меня интересуют как исправимые, так и не исправляемые ошибки.
Интересующие системы имеют платы Supermicro (X9SCM-F), относительно микросервера HP N54L мне просто любопытно, но мне все равно. Все системы работают под управлением Debian или Ubuntu Linux.
mcelog
будет контролировать контроллер памяти и сообщать о событиях ошибок памяти в системный журнал, а в некоторых конфигурациях может автономные страницы с плохой памятью. Это, конечно, в дополнение к его обычному использованию для отслеживания исключений проверки машины и множества других аппаратных ошибок.
В большинстве дистрибутивов Linux есть служба, настроенная для запуска в качестве демона, например для EL 6:
chkconfig mcelog on
service mcelog start
Это зависит от вашего серверного оборудования. Белый ящик или система Supermicro справятся с этим иначе, чем Dell, HP или IBM ...
Одна из дополнительных функций высокопроизводительных серверов заключается в том, что существует уровень интеграции оборудования и ОС. Серверы Nicer сообщают, что вы ищете как часть агентов управления и / или решения для внешнего управления (ILO, DRAC, IPMI).
Вам следует использовать инструменты, встроенные в вашу аппаратную платформу.
Выдержка из серверов HP ProLiant под управлением Linux и агентов управления HP:
Trap-ID=6056
ECC Memory Correctable Errors detected.
и
Trap-ID=6052
Advanced ECC Memory Engaged
или более серьезный
Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.
или худшее ... Игнорирование ошибки в течение 6 дней, пока сервер не выйдет из строя из-за плохой оперативной памяти
0004 Repaired 22:21 12/01/2008 22:21 12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)
0007 Repaired 02:58 12/07/2008 02:58 12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during
memory initialization,
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.
0008 Repaired 19:31 12/08/2009 19:31 12/08/2009 0001
LOG: ASR Detected by System ROM
Они были зарегистрированы, плюс были отправлены ловушки SNMP и электронные письма.
Как правило, вы увидите исключения машинной проверки в кольцевом буфере ядра, чтобы вы могли проверить dmesg
или беги mcelog. По моему опыту работы с оборудованием Supermicro без IPMI, он не улавливал все, и у меня все еще возникали ошибки ОЗУ, проскальзывающие через трещины и вызывающие сбои. К сожалению, это привело к архаичные политики выгорания RAM перед развертыванием системы.
В Ядро Linux поддерживает обнаружение и исправление ошибок (EDAC) особенности некоторых чипсетов. В поддерживаемой системе с ECC статус вашего контроллера памяти доступен через sysfs:
/sys/devices/system/edac/mc
Дерево каталогов в этих местах должно соответствовать вашему оборудованию, например:
/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...
В зависимости от вашего оборудования вам, возможно, придется явно загрузить правильный драйвер edac, см .:
find /lib/modules/$(uname -r) -name '*edac*'
В edac-utils
пакет предоставляет интерфейс командной строки и библиотеку для доступа к этим данным, например:
edac-util -rfull
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0
Вы можете настроить какое-то задание cron, которое периодически вызывает eac-util
и передает результаты в вашу систему мониторинга, где вы затем можете настроить некоторые уведомления.
В дополнение к этому, бег mcelog
вообще хорошая идея. Зависит от системы, но о неисправимых / исправимых ошибках ECC, скорее всего, сообщается как об исключении проверки машины (MCE), также. Я имею в виду, что даже короткие периоды троттлинга процессора из-за более высокой температуры сообщаются как MCE.
В rasdaemon
пакет был создан как замена edac-tools
, а новые ядра даже не поддерживают edac-tools
или mcelog
.
Обновление драйверов ядра Linux EDAC изменило способ управления счетчиками ошибок памяти в пользовательском пространстве, поэтому edac-tools
и mcelog
фактически устарели.
Как упоминалось другим автором mcelog
устарел и заменен на rasdaemon
. я сделал записать о том, как установить и настроить его во многих дистрибутивах Linux, включая инструкции по правильной установке меток DIMM.