it-swarm-ko.tech

ECC 칩킬 오류 : 어떤 DIMM?

Syslog의 다음 오류로 인해 서버의 DIMM이 잘못되는 경우가 종종 있습니다.

5 월 7 일 09:15:31 nolcgi303 커널 : EDAC k8 MC0 : 일반 버스 오류 : 참여 프로세서 (로컬 노드 응답), 시간 초과 (시간 초과 없음) 메모리 트랜잭션 유형 (일반 읽기), mem 또는 i/o (mem 액세스) , cache level (generic) 
 May 7 09:15:31 nolcgi303 kernel : MC0 : CE page 0xa0, offset 0x40, grain 8, syndrome 0xb50d, row 2, channel 0, label "": k8_edac 
 5 월 7 일 09:15:31 nolcgi303 커널 : MC0 : CE-정보 없음 : k8_edac 오류 오버플로 세트 
 5 월 7 일 09:15:31 nolcgi303 커널 : EDAC k8 MC0 : 확장 오류 코드 : ECC chipkill x4 오류

HP SmartStart CD를 사용하여 오류가 있지만 서버를 생산 중단해야하는 DIMM을 확인할 수 있습니다. 서버가 작동하는 동안 어떤 DIMM이 작동하지 않는지 알아낼 수있는 교활한 방법이 있습니까? 모든 서버는 RHEL 5를 실행하는 HP 하드웨어입니다.

8
markdrayton

EDAC 코드를 사용하는 것 외에도 CLI 전용 HP 유틸리티를 사용하여 시스템이 온라인 상태 일 때이를 확인할 수 있습니다. cli 버전은 웹 기반 버전보다 훨씬 가볍고 포트를 열거 나 데몬을 지속적으로 실행할 필요가 없습니다.

hpasmcli는 실패한 모듈의 카트리지 및 모듈 번호를 제공합니다. EDAC를 분석하는 것보다 조금 더 빠릅니다.

예:

hpasmcli -s "show dimm"

DIMM Configuration
------------------
Cartridge #: 0
Module #: 1
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 2
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 3
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 4
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

실패한 모듈의 상태가 변경됩니다.

4
Josh

MC0, 행 2 및 채널 0이 중요합니다. CPU0에서 DIMMA1을 교체해보십시오.

예를 들어, 16 개의 완전히 채워진 DIMM 슬롯과 2 개의 CPU가있는 Linux 서버에서 불량 DIMM을 식별해야했습니다. 콘솔에서 본 오류는 다음과 같습니다.

EDAC k8 MC1: general bus error: participating processor(local node Origin), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
EDAC MC1: CE page 0x103ca78, offset 0xf88, grain 8, syndrome 0x9f65, row 1, channel 0, label "": k8_edac
EDAC MC1: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC1: extended error code: ECC chipkill x4 error

내 서버의 잘못된 DIMM은 CPU1의 DIMMA0입니다.

EDAC는 Error Detection And Correction을 의미하며 http://www.kernel.org/doc/Documentation/edac.txt 및 /usr/share/doc/kernel-doc-2.6*/에 문서화되어 있습니다. 내 시스템 (RHEL5)의 Documentation/drivers/edac/edac.txt. CE는 "수정 가능한 오류"를 나타내며 설명서에서 알 수 있듯이 "CE는 DIMM이 실패하기 시작했음을 조기에 알립니다."

위의 EDAC 오류로 돌아가서 서버 콘솔에서 본 MC1 (메모리 컨트롤러 1)은 CPU1, 행 1은 Linux EDAC 문서에서 csrow1 (Chip-Select Row 1), 채널 0은 메모리 채널 0을 의미합니다. . http://www.kernel.org/doc/Documentation/edac.txt 에서 차트를 확인하여 csrow1과 채널 0이 DIMM_A0 (내 시스템의 DIMMA0)에 해당하는지 확인했습니다.

            Channel 0       Channel 1
    ===================================
    csrow0  | DIMM_A0       | DIMM_B0 |
    csrow1  | DIMM_A0       | DIMM_B0 |
    ===================================

    ===================================
    csrow2  | DIMM_A1       | DIMM_B1 |
    csrow3  | DIMM_A1       | DIMM_B1 |
    ===================================

(다른 예로 MC0, csrow4 및 채널 1에서 오류가 발생했다면 CPU0의 DIMMB2를 교체했을 것입니다.)

물론 실제로 내 서버에는 DIMMA0이라는 두 개의 DIMM 슬롯이 있지만 (각 CPU에 하나씩) MC1 오류는 dmidecode 출력의 "Bank Locator"아래에 나열된 CPU1에 해당합니다.

[[email protected] ~]# dmidecode -t memory | grep DIMMA0 -B9 -A8
Handle 0x002E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU0
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:  
--
Handle 0x003E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU1
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:

(내 워크 스테이션에서 dmidecode는 실제로 내 DIMM의 부품 번호와 일련 번호를 보여 주므로 매우 유용합니다.)

콘솔 및 로그에서 오류를 보는 것 외에도/sys/devices/system/edac를 검사하여 MC/CPU, 행/csrow 및 채널당 오류를 볼 수도 있습니다. 제 경우에는 오류가 MC1, csrow1, 채널 0에서만 발생했습니다.

[[email protected] ~]# grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow1/ch0_ce_count:6941652
/sys/devices/system/edac/mc/mc1/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch1_ce_count:0

이 예제가 EDAC 오류를 기반으로 잘못된 DIMM을 식별하려는 모든 사람에게 도움이되기를 바랍니다. 자세한 내용은 http://www.kernel.org/doc/Documentation/edac.txt 에서 모든 Linux EDAC 문서를 읽을 것을 강력히 권장합니다.

17
Philip Durbin