Como sou notificado de erros de ECC no Linux?

19

Como eu sou notificado, quando uma máquina Linux equipada com memória ECC reconhece uma falha de memória? Estou interessado em erros corrigíveis e incorrigíveis.

  • se uma mensagem for gravada no dmesg / o syslog, isso já está bom, mas adoraria saber o que procurar
  • instalar daemons adicionais (como smartmontools para discos rígidos) é aceitável
  • Monitoramento Nagios / Icinga seria outro caminho a percorrer
  • nem todas as máquinas a serem monitoradas têm IPMI

Sistemas de interesse têm placas Supermicro (X9SCM-F), com relação a um HP N54L Microserver. Sou apenas curioso, mas não me importo muito. Todos os sistemas executam Debian ou Ubuntu Linux.

    
por Jens Erat 11.11.2014 / 16:00

3 respostas

3

O kernel do Linux suporta a detecção e correção de erros (EDAC ) recursos de alguns chipsets. Em um sistema compatível com ECC , o status do seu controlador de memória pode ser acessado via sysfs:

/sys/devices/system/edac/mc

A árvore de diretórios nesses locais deve corresponder ao seu hardware, por exemplo:

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

Dependendo do seu hardware, você pode ter que carregar explicitamente o driver edac correto, cf.:

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

O edac-utils package fornece um frontend de linha de comando e uma biblioteca para acessar esses dados, por exemplo:

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

Você pode configurar algum tipo de cron-job que chame periodicamente eac-util e insira os resultados em seu sistema de monitoramento, onde você poderá configurar algumas notificações.

Além disso, executar mcelog geralmente é uma boa ideia. Depende do sistema, mas erros de ECC incorrigíveis / corrigíveis provavelmente são relatados como exceção de verificação de máquina ( MCE ), bem . Quer dizer, até mesmo breves períodos de afogamento da CPU devido a temperaturas mais altas são reportados como MCE.

    
por 16.12.2017 / 18:41
8

mcelog irá monitorar o controlador de memória e relatar eventos de erro de memória ao syslog, e em algumas configurações pode páginas com memória ruim offline . Isto é, naturalmente, além de seu uso usual para monitorar exceções de verificação de máquina e uma variedade de outros erros de hardware.

A maioria das distribuições do Linux tem um serviço configurado para executá-lo como um daemon, por exemplo, para EL 6:

chkconfig mcelog on
service mcelog start
    
por 11.11.2014 / 16:50
5

Isso depende do hardware do seu servidor. Um whitebox ou um sistema Supermicro lidará com isso de forma diferente de um Dell, HP ou IBM ...

Um dos recursos de valor agregado de servidores high-end é que há um nível de integração de hardware / SO. Servidores mais legais informarão o que você está procurando como parte dos agentes de gerenciamento e / ou solução de gerenciamento fora de banda (ILO, DRAC, IPMI).

Você deve usar as ferramentas nativas da sua plataforma de hardware.

Trecho de um servidor HP ProLiant que executa o Linux e os agentes de gerenciamento da HP:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

e

Trap-ID=6052
Advanced ECC Memory  Engaged

ou mais grave

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

ou o pior ... Ignorando um erro por 6 dias até o servidor travar por causa da RAM ruim

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

Estes foram registrados, além de traps SNMP e e-mails enviados.

Genericamente, você verá Exceções de Verificação de Máquina no buffer de anel do kernel, para que possa verificar dmesg ou executar mcelog . Em minhas experiências com o equipamento da Supermicro sem o IPMI, isso não pegou tudo, e eu ainda tinha erros de RAM escorregando pelas rachaduras e causando interrupções. Infelizmente, isso levou ao arcaico RAM burn-in políticas antes das implantações do sistema.

    
por 11.11.2014 / 16:52

Tags