Linux에서 ECC 오류에 대한 알림을 받으려면 어떻게합니까?


23

ECC 메모리가 장착 된 Linux 시스템이 메모리 오류를 인식하면 알림을 받으려면 어떻게합니까? 수정 가능한 오류와 수정할 수없는 오류 모두에 관심이 있습니다.

  • 메시지가 dmesg / syslog에 작성된 경우 이미 문제가 없지만 찾을 내용을 알고 싶습니다.
  • 추가 데몬 (하드 드라이브 용 smartmontools) 설치는 허용됩니다
  • Nagios / Icinga 모니터링은 또 다른 방법입니다.
  • 모니터링 할 모든 시스템에 IPMI가있는 것은 아닙니다.

관심있는 시스템에는 HP N54L 마이크로 서버에 관한 Supermicro 보드 (X9SCM-F)가 있습니다. 모든 시스템은 데비안 또는 우분투 리눅스를 실행합니다.


서버 유형 및 제조업체 / 모델, OS 배포 버전 및 기타 관련 하드웨어 세부 사항을 설명하십시오.
ewwhite

2
나는 그것이보고되었다는 것을 몰랐다 ...
Halfgaar

mcelogsyslog를 모니터링하는 동안 실행 하는 것은 갈 길처럼 보입니다.
Jens Erat

답변:


6

리눅스 커널이 지원하는 오류 검출 및 정정 ( 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

주기적으로 호출 eac-util하고 결과를 모니터링 시스템에 공급하는 일종의 크론 작업 을 설정하여 일부 알림을 구성 할 수 있습니다.

그 외에도 달리기 mcelog는 일반적으로 좋은 생각입니다. 시스템에 따라 다르지만 수정할 수없는 / 수정 가능한 ECC 오류는 MCE (machine check exception ) 로도 보고 될 수 있습니다. 더 높은 온도로 인해 짧은 기간의 CPU 조절조차도 MCE로보고됩니다.


9

mcelog메모리 컨트롤러를 모니터링하고 메모리 오류 이벤트 를 syslog에보고하며 일부 구성에서는 오프라인 불량 메모리 페이지가 있을 수 있습니다 . 물론 이것은 일반적으로 기계 검사 예외 및 다양한 기타 하드웨어 오류를 모니터하는 데 사용됩니다.

대부분의 Linux 배포판에는 서비스를 데몬으로 실행하도록 설정되어 있습니다 (예 : EL 6).

chkconfig mcelog on
service mcelog start

더 이상 우분투에서 지원하지 않습니다. 설치시 오류가 발생합니다.
DimiDak


예, 고맙습니다. 실수하지 않으면 우분투 18에 대해 이야기하지만 우분투 14에서도 작동하지 않습니다.
DimiDak

@DimiDak 그것은 다른 문제이며 여기서는 관련이 없습니다. 도움이 필요한 경우 새로운 질문을 할 수 있습니다.
Michael Hampton

질문을 게시 한 사람은 "모든 시스템이 데비안 또는 우분투를 실행합니다"라고 말하고 답변이 효과가 없습니다. 그래서 그것은 매우 관련이 있습니다 ...
DimiDak

6

서버 하드웨어에 따라 다릅니다. 화이트 박스 또는 Supermicro 시스템은 Dell, HP 또는 IBM과 다르게 처리합니다.

고급 서버의 부가 가치 기능 중 하나는 하드웨어 / OS 통합 수준이 있다는 것입니다. Niceer 서버는 관리 에이전트 및 / 또는 대역 외 관리 솔루션 (ILO, DRAC, IPMI)의 일부로 원하는 것을보고합니다.

하드웨어 플랫폼 고유의 도구를 사용해야합니다.

Linux 및 HP 관리 에이전트를 실행하는 HP ProLiant 서버에서 발췌 :

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.

또는 최악의 ... 잘못된 RAM으로 인해 서버가 충돌 할 때까지 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 트랩과 이메일이 전송되었습니다.

일반적으로 커널 링 버퍼에 Machine Check Exceptions가 표시되므로 mcelog를 확인 dmesg하거나 실행할 수 있습니다 . IPMI가없는 Supermicro 장비에 대한 경험에서 모든 것을 포착하지 못했지만 여전히 균열을 통해 RAM 오류가 발생하여 중단이 발생했습니다. 불행히도 이로 인해 시스템 배포 전에 고풍스러운 RAM 번인 정책이 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.