ฉันจะได้รับแจ้งข้อผิดพลาด ECC ใน Linux ได้อย่างไร


23

ฉันจะได้รับแจ้งได้อย่างไรเมื่อเครื่อง Linux ที่ติดตั้งหน่วยความจำ ECC รู้จักหน่วยความจำล้มเหลว ฉันสนใจข้อผิดพลาดทั้งที่แก้ไขและไม่สามารถแก้ไขได้

  • หากข้อความถูกเขียนไปยัง dmesg / syslog นี่เป็นเรื่องปกติ แต่ฉันชอบที่จะรู้ว่าจะต้องค้นหาอะไร
  • ติดตั้ง daemons เพิ่มเติม (เช่น smartmontools สำหรับฮาร์ดไดรฟ์) เป็นที่ยอมรับ
  • การติดตาม Nagios / Icinga จะเป็นอีกหนทางหนึ่ง
  • เครื่องบางเครื่องที่ไม่ได้รับการตรวจสอบมี IPMI

ระบบที่น่าสนใจมีบอร์ด Supermicro (X9SCM-F) เกี่ยวกับ Microserver HP N54L ฉันแค่อยากรู้อยากเห็น แต่ไม่สนใจมากเกินไป ระบบทั้งหมดใช้ Debian หรือ Ubuntu Linux


โปรดอธิบายประเภทเซิร์ฟเวอร์และยี่ห้อ / รุ่นรุ่นการแจกจ่าย OS และรายละเอียดฮาร์ดแวร์อื่น ๆ ที่เกี่ยวข้อง
ewwhite

2
ฉันไม่รู้ด้วยซ้ำว่ามันถูกรายงาน ...
Halfgaar

ทำงานmcelogในขณะที่ตรวจสอบ syslog ดูเหมือนว่าจะไป
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 ที่เหมาะสม cf .:

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

คุณสามารถตั้งค่า cron-job บางชนิดที่เรียกใช้eac-utilและป้อนผลลัพธ์เป็นระยะในระบบการตรวจสอบของคุณซึ่งคุณสามารถกำหนดค่าการแจ้งเตือนบางอย่างได้

นอกจากนั้นการวิ่งmcelogโดยทั่วไปก็เป็นความคิดที่ดี ขึ้นอยู่กับระบบ แต่ข้อผิดพลาด ECC ที่ไม่สามารถแก้ไข / แก้ไขได้มีรายงานว่าเป็นข้อยกเว้นการตรวจสอบเครื่อง ( MCE ) เช่นกัน ฉันหมายถึงแม้ช่วงเวลาสั้น ๆ ของการควบคุมปริมาณซีพียูเนื่องจากมีรายงานอุณหภูมิสูงกว่าเป็น MCE


9

mcelogจะตรวจสอบการควบคุมหน่วยความจำและรายงานเหตุการณ์ข้อผิดพลาดของหน่วยความจำที่จะ syslog และในการกำหนดค่าบางอย่างสามารถครับหน้าหน่วยความจำที่ไม่ดี แน่นอนว่านอกเหนือไปจากการใช้งานปกติเพื่อตรวจสอบข้อยกเว้นการตรวจสอบเครื่องและข้อผิดพลาดฮาร์ดแวร์อื่น ๆ อีกมากมาย

ลีนุกซ์ส่วนใหญ่มีบริการที่ตั้งค่าให้รันเป็น daemon, เช่น EL 6:

chkconfig mcelog on
service mcelog start

ไม่รองรับ Ubuntu อีกต่อไป การติดตั้งให้ข้อผิดพลาด
DimiDak


ใช่ขอบคุณที่ฉันเห็นว่าถ้าฉันไม่ผิดมันพูดถึง ubuntu18 แต่มันก็ไม่ได้ทำงานบน Ubuntu 14 เช่นกัน
DimiDak

@DimiDak นั่นเป็นปัญหาที่แตกต่างและไม่เกี่ยวข้องที่นี่ คุณสามารถถามคำถามใหม่เกี่ยวกับมันหากคุณต้องการความช่วยเหลือ
Michael Hampton

คนที่โพสต์คำถามบอกว่า "ระบบทั้งหมดรัน Debian หรือ Ubuntu" และคำตอบของคุณใช้ไม่ได้ ดังนั้นมันจึงค่อนข้างเกี่ยวข้อง ...
DimiDak

6

ขึ้นอยู่กับฮาร์ดแวร์เซิร์ฟเวอร์ของคุณ whitebox หรือระบบ Supermicro จะจัดการสิ่งนี้แตกต่างจาก Dell, HP หรือ IBM ...

หนึ่งในคุณสมบัติเพิ่มมูลค่าของเซิร์ฟเวอร์ระดับไฮเอนด์คือมีระดับการรวมฮาร์ดแวร์ / ระบบปฏิบัติการ เซิร์ฟเวอร์ Nicer จะรายงานสิ่งที่คุณกำลังมองหาซึ่งเป็นส่วนหนึ่งของตัวแทนการจัดการและ / หรือโซลูชันการจัดการนอกวง (ILO, DRAC, IPMI)

คุณควรใช้เครื่องมือที่มีอยู่ในแพลตฟอร์มฮาร์ดแวร์ของคุณ

ข้อความที่ตัดตอนมาจากเซิร์ฟเวอร์ HP ProLiant ที่ใช้ Linux และเอเจนต์ HP Management:

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.

หรือแย่ที่สุด ... ละเว้นข้อผิดพลาดเป็นเวลา 6 วันจนกว่าเซิร์ฟเวอร์จะล่มเนื่องจาก RAM ไม่ดี

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 และอีเมลที่ส่งไป

โดยทั่วไปคุณจะเห็นเครื่องตรวจสอบข้อยกเว้นในบัฟเฟอร์แหวนเคอร์เนลเพื่อให้คุณสามารถตรวจสอบdmesgหรือเรียกใช้mcelog จากประสบการณ์ของฉันกับ Supermicro gear ที่ไม่มี IPMI นั้นไม่ได้จับทุกอย่างและฉันยังคงมีข้อผิดพลาดของ RAM ในการถอดรหัสและทำให้ไฟดับ น่าเสียดายที่สิ่งนี้นำไปสู่นโยบายการเบิร์นอินของ RAM แบบเก่าก่อนการปรับใช้ระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.