Как я становлюсь уведомленным, когда машина Linux, оборудованная памятью ECC, распознает сбой памяти? Я интересуюсь и корректируемыми и некорректируемыми ошибками.
Системы интереса имеют Супермикро платы (X9SCM-F), относительно HP N54L Microserver, я - просто сувениры, но не забочусь слишком много. Все системы выполняют Debian или Ubuntu Linux.
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- ის სწორი დრაივერი, შდრ .::121251] 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-job, რომელიც პერიოდულად დარეკავს eac-util
- ს და აწვდის შედეგებს თქვენს მონიტორინგის სისტემაში, სადაც შემდეგ შეგიძლიათ დააკონფიგურიროთ ზოგიერთი შეტყობინება.
ამის გარდა, მუშაობს mcelog
] ზოგადად კარგი იდეაა. ეს დამოკიდებულია სისტემაზე, მაგრამ გამოუსწორებელი / შესწორებადი ECC შეცდომები, სავარაუდოდ, აგრეთვე გამოცხადებულია, როგორც გამონაკლისი მანქანაში ( MCE ). ვგულისხმობ იმას, რომ CPU– ს დახურვის ხანმოკლე პერიოდებიც კი უფრო მაღალი ტემპერატურის გამო არის MCE.
mcelog
будет контролировать контроллер памяти и ] сообщать о событиях ошибки памяти в системный журнал, а в некоторых конфигурациях может отключать плохие страницы памяти . Это, конечно, в дополнение к его обычному использованию для мониторинга исключений проверки машины и множества других аппаратных ошибок.
В большинстве дистрибутивов Linux есть служба, настроенная для ее запуска в качестве демона, например для EL 6:
chkconfig mcelog on
service mcelog start
Это зависит от оборудования вашего сервера. Белый ящик или система Supermicro справятся с этим иначе, чем Dell, HP или IBM ...
Одна из дополнительных функций высокопроизводительных серверов заключается в том, что существует уровень интеграции оборудования и ОС. Более удобные серверы сообщат, что вы ищете как часть агентов управления и / или решения для внеполосного управления (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, проскальзывающие через трещины и вызывающие сбои. К сожалению, это привело к архаичным политикам сжигания ОЗУ перед развертыванием системы.
Пакет rasdaemon
был создан для замены edac-tools
, а новые ядра даже не поддерживают edac-tools
или mcelog.
.
Обновление драйверов ядра EDAC linux изменило способ управления счетчиками ошибок памяти в пользовательском пространстве, поэтому edac-tools
и mcelog
фактически устарели.