Wir bekommen oft DIMMs auf unseren Servern mit den folgenden Fehlern im Syslog schlecht:
7. Mai 09:15:31 nolcgi303 Kernel: EDAC k8 MC0: Allgemeiner Busfehler: Teilnehmender Prozessor (lokale Knotenantwort), Zeitüberschreitung (keine Zeitüberschreitung) Speichertransaktionstyp (generisches Lesen), Mem oder E / A (Mem-Zugriff) , Cache-Ebene (generisch) 7. Mai 09:15:31 nolcgi303 Kernel: MC0: CE Seite 0xa0, Offset 0x40, Korn 8, Syndrom 0xb50d, Zeile 2, Kanal 0, Label "": k8_edac 7. Mai 09:15:31 nolcgi303 Kernel: MC0: CE - keine Informationen verfügbar: k8_edac Fehlerüberlauf eingestellt 7. Mai 09:15:31 nolcgi303 Kernel: EDAC k8 MC0: erweiterter Fehlercode: ECC Chipkill x4 Fehler
Wir können die HP SmartStart-CD verwenden, um festzustellen, bei welchem DIMM der Fehler auftritt. Dazu muss jedoch der Server aus der Produktion genommen werden. Gibt es eine clevere Möglichkeit, herauszufinden, welche DIMM-Pleite bei laufendem Server vorhanden ist? Alle unsere Server sind HP Hardware mit RHEL 5.
Antworten:
Zusätzlich zur Verwendung der EDAC-Codes können Sie die HP Dienstprogramme nur für die CLI verwenden, um dies zu ermitteln, während der Computer online ist. Die CLI-Versionen sind weitaus leichter als die webbasierten und erfordern nicht, dass Sie Ports öffnen oder einen Daemon ständig ausführen.
hpasmcli gibt Ihnen die Kassette und die Modulnummern der ausgefallenen Module. Ein bisschen schneller als die Analyse von EDAC.
Beispiel:
Der Status ändert sich für ausgefallene Module.
quelle
MC0, Zeile 2 und Kanal 0 sind signifikant. Versuchen Sie, DIMMA1 auf CPU0 zu ersetzen.
Als Beispiel musste ich ein fehlerhaftes DIMM in einem Linux-Server mit 16 vollständig bestückten DIMM-Steckplätzen und zwei CPUs identifizieren. Dies sind die Fehler, die ich auf der Konsole gesehen habe:
Das fehlerhafte DIMM auf meinem Server war DIMMA0 auf CPU1.
EDAC steht für Error Detection And Correction und ist unter http://www.kernel.org/doc/Documentation/edac.txt und /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac dokumentiert .txt auf meinem System (RHEL5). CE steht für "korrigierbare Fehler" und wie aus der Dokumentation hervorgeht, "liefern CEs frühzeitig Hinweise darauf, dass ein DIMM zu versagen beginnt."
Zurück zu den EDAC-Fehlern, die ich oben auf der Konsole meines Servers gesehen habe: MC1 (Speichercontroller 1) bedeutet CPU1, Zeile 1 wird in der Linux-EDAC-Dokumentation als csrow1 (Chip-Select-Zeile 1) bezeichnet, und Kanal 0 bedeutet Speicherkanal 0 Ich habe das Diagramm unter http://www.kernel.org/doc/Documentation/edac.txt überprüft , um festzustellen, dass csrow1 und Channel 0 DIMM_A0 (DIMMA0 auf meinem System) entsprechen:
(Wenn ich als weiteres Beispiel Fehler auf MC0, csrow4 und Kanal 1 gesehen hätte, hätte ich DIMMB2 auf CPU0 ersetzt.)
Natürlich gibt es auf meinem Server tatsächlich zwei DIMM-Steckplätze mit dem Namen DIMMA0 (einen für jede CPU), aber auch hier entspricht der MC1-Fehler der CPU1, die in der Ausgabe von dmidecode unter "Bank Locator" aufgeführt ist:
(Auf meiner Workstation zeigt dmidecode tatsächlich die Teilenummer und die Seriennummer für meine DIMMs an, was sehr nützlich ist.)
Neben der Anzeige von Fehlern in der Konsole und in Protokollen können Sie auch Fehler pro MC / CPU, Zeile / csrow und Kanal anzeigen, indem Sie / sys / device / system / edac untersuchen. In meinem Fall waren die Fehler nur auf MC1, csrow1, Kanal 0:
Ich hoffe, dieses Beispiel ist hilfreich für alle, die versuchen, ein fehlerhaftes DIMM anhand von EDAC-Fehlern zu identifizieren. Für weitere Informationen empfehle ich dringend, die gesamte Linux EDAC-Dokumentation unter http://www.kernel.org/doc/Documentation/edac.txt zu lesen
quelle
MC0: UE row 0, channel-a= 2 channel-b= 3
.