ECC 메모리가 장착 된 Linux 시스템이 메모리 오류를 인식하면 알림을 받으려면 어떻게합니까? 수정 가능한 오류와 수정할 수없는 오류 모두에 관심이 있습니다.
- 메시지가 dmesg / syslog에 작성된 경우 이미 문제가 없지만 찾을 내용을 알고 싶습니다.
- 추가 데몬 (하드 드라이브 용 smartmontools) 설치는 허용됩니다
- Nagios / Icinga 모니터링은 또 다른 방법입니다.
- 모니터링 할 모든 시스템에 IPMI가있는 것은 아닙니다.
관심있는 시스템에는 HP N54L 마이크로 서버에 관한 Supermicro 보드 (X9SCM-F)가 있습니다. 모든 시스템은 데비안 또는 우분투 리눅스를 실행합니다.
답변
리눅스 커널이 지원하는 오류 검출 및 정정 ( 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로보고됩니다.
답변
mcelog
메모리 컨트롤러를 모니터링하고 메모리 오류 이벤트 를 syslog에보고하며 일부 구성에서는 오프라인 불량 메모리 페이지가 있을 수 있습니다 . 물론 이것은 일반적으로 기계 검사 예외 및 다양한 기타 하드웨어 오류를 모니터하는 데 사용됩니다.
대부분의 Linux 배포판에는 서비스를 데몬으로 실행하도록 설정되어 있습니다 (예 : EL 6).
chkconfig mcelog on
service mcelog start
답변
서버 하드웨어에 따라 다릅니다. 화이트 박스 또는 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 번인 정책이 발생했습니다.