Jak uzyskać powiadomienie o błędach ECC w systemie Linux?

23

Jak uzyskać powiadomienie, gdy maszyna z systemem Linux wyposażona w pamięć ECC rozpozna awarię pamięci? Interesują mnie zarówno błędy, które można naprawić, jak i błędy, których nie można naprawić.

  • jeśli wiadomość jest napisana do dmesg / syslog, to już jest w porządku, ale chciałbym wiedzieć, czego szukać
  • instalacja dodatkowych demonów (takich jak smartmontools dla dysków twardych) jest dopuszczalna
  • Innym sposobem byłoby monitorowanie Nagios / Icinga
  • nie wszystkie monitorowane maszyny mają IPMI

Interesujące systemy mają płyty Supermicro (X9SCM-F), w odniesieniu do HP N54L Microserver jestem tylko ciekawostką, ale nie przejmuję się zbytnio. Wszystkie systemy działają w systemie Linux Debian lub Ubuntu.

Jens Erat
źródło
Opisz typ serwera i markę / model, wersję dystrybucji systemu operacyjnego i wszelkie inne istotne szczegóły dotyczące sprzętu.
ewwhite
2
Nawet nie wiedziałem, że to zgłoszono ...
Halfgaar,
Uruchamianie mcelogpodczas monitorowania syslog wydaje się być właściwą drogą.
Jens Erat

Odpowiedzi:

6

Jądro Linux obsługuje wykrywanie i korekcja błędów ( EDAC ) funkcje niektórych chipsetów. W obsługiwanym systemie z ECC status kontrolera pamięci jest dostępny poprzez sysfs:

/sys/devices/system/edac/mc

Drzewo katalogów w tych lokalizacjach powinno odpowiadać Twojemu sprzętowi, np .:

/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
...

W zależności od sprzętu może być konieczne jawne załadowanie odpowiedniego sterownika edac, patrz:

find /lib/modules/$(uname -r) -name '*edac*'

edac-utilsPakiet zapewnia frontend wiersza poleceń oraz biblioteka dla dostępu do tych danych, na przykład:

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

Możesz skonfigurować jakieś zadanie cron, które okresowo wywołuje eac-utili przekazuje wyniki do twojego systemu monitorowania, gdzie możesz następnie skonfigurować niektóre powiadomienia.

Poza tym bieganie mcelogjest ogólnie dobrym pomysłem. Zależy od systemu, ale nie dające się naprawić / skorygowane błędy ECC są prawdopodobnie zgłaszane również jako wyjątek kontroli maszyny ( MCE ). To znaczy, nawet krótkie okresy dławienia procesora z powodu wyższej temperatury są zgłaszane jako MCE.

maxschlepzig
źródło
9

mcelogmonitoruje kontroler pamięci i zgłasza zdarzenia błędu pamięci do syslog, aw niektórych konfiguracjach może offline uszkodzone strony pamięci . Jest to oczywiście dodatek do jego zwykłego użycia do monitorowania wyjątków sprawdzania komputera i szeregu innych błędów sprzętowych.

Większość dystrybucji Linuksa ma skonfigurowaną usługę do uruchamiania go jako demona, np. Dla EL 6:

chkconfig mcelog on
service mcelog start
Michael Hampton
źródło
Nie jest już obsługiwany przez Ubuntu. Instalacja powoduje błędy.
DimiDak,
Tak, dziękuję Widziałem to, jeśli się nie mylę, mówi o Ubuntu18, ale nie działa również na Ubuntu 14.
DimiDak
@DimiDak To inny problem i tutaj nie ma znaczenia. Jeśli potrzebujesz pomocy, możesz zadać nowe pytanie.
Michael Hampton
Facet, który opublikował pytanie, mówi: „Wszystkie systemy działają pod Debianem lub Ubuntu”, a twoja odpowiedź na to nie działa. Więc to całkiem istotne ...
DimiDak
6

To zależy od sprzętu serwera. Whitebox lub system Supermicro poradzą sobie z tym inaczej niż Dell, HP czy IBM ...

Jedną z wartości dodanych funkcji wysokiej klasy serwerów jest poziom integracji sprzętu / systemu operacyjnego. Ładniejsze serwery zgłaszają to, czego szukasz, jako część agentów zarządzania i / lub rozwiązania zarządzania pozapasmowego (ILO, DRAC, IPMI).

Powinieneś używać narzędzi rodzimych dla twojej platformy sprzętowej.

Fragment serwerów HP ProLiant z systemem Linux i agentami HP Management:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

i

Trap-ID=6052
Advanced ECC Memory  Engaged

lub bardziej dotkliwy

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

lub najgorsze ... Ignorowanie błędu przez 6 dni, aż do awarii serwera z powodu złej pamięci RAM

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

Zostały one zarejestrowane, wysłano pułapki SNMP i e-maile.

Zasadniczo w buforze pierścieniowym jądra zobaczysz wyjątki sprawdzania maszyny, dzięki czemu możesz sprawdzić dmesglub uruchomić mcelog . W moich doświadczeniach ze sprzętem Supermicro bez IPMI nie złapałem wszystkiego, a mimo to błędy RAM prześlizgnęły się przez pęknięcia i spowodowały awarie. Niestety doprowadziło to do archaicznych zasad wypalania pamięci RAM przed wdrożeniem systemu.

ewwhite
źródło