Bagaimana saya mendapat pemberitahuan tentang kesalahan ECC di Linux?

23

Bagaimana saya mendapat pemberitahuan, ketika mesin Linux yang dilengkapi dengan memori ECC mengenali kegagalan memori? Saya tertarik pada kesalahan yang bisa diperbaiki dan tidak bisa diperbaiki.

  • jika pesan ditulis ke dmesg / syslog, ini sudah baik, tapi saya ingin tahu apa yang harus dicari
  • menginstal daemon tambahan (seperti smartmontools untuk hard drive) dapat diterima
  • Pemantauan nagios / Icinga akan menjadi cara lain
  • tidak semua mesin yang dipantau memiliki IPMI

Sistem yang menarik memiliki papan Supermicro (X9SCM-F), mengenai HP N54L Microserver. Saya hanya ingin tahu, tetapi tidak terlalu peduli. Semua sistem menjalankan Debian atau Ubuntu Linux.

Jens Erat
sumber
Tolong jelaskan jenis server dan membuat / model, versi distribusi OS dan rincian perangkat keras lain yang relevan.
ewwhite
2
Aku bahkan tidak tahu itu dilaporkan ...
Halfgaar
Menjalankan mcelogsambil memantau syslog sepertinya cara untuk pergi.
Jens Erat

Jawaban:

6

The Linux kernel mendukung deteksi kesalahan dan koreksi ( EDAC ) fitur dari beberapa chipset. Pada sistem yang didukung dengan ECC , status pengontrol memori Anda dapat diakses melalui sysfs:

/sys/devices/system/edac/mc

Pohon direktori di bawah lokasi itu harus sesuai dengan perangkat keras Anda, misalnya:

/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
...

Bergantung pada perangkat keras Anda, Anda mungkin harus secara eksplisit memuat driver edac yang tepat, cf .:

find /lib/modules/$(uname -r) -name '*edac*'

The edac-utilspaket menyediakan antarmuka baris perintah dan perpustakaan untuk mengakses data, misalnya:

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

Anda dapat mengatur beberapa jenis cron-job yang secara berkala memanggil eac-utildan memasukkan hasilnya ke dalam sistem pemantauan Anda, di mana Anda kemudian dapat mengkonfigurasi beberapa notifikasi.

Selain itu, menjalankan mcelogumumnya merupakan ide yang baik. Tergantung pada sistem, tetapi kesalahan ECC yang tidak dapat diperbaiki / diperbaiki kemungkinan dilaporkan sebagai pengecualian pemeriksaan mesin ( MCE ), juga. Maksudku, bahkan periode singkat pembatasan CPU karena suhu yang lebih tinggi dilaporkan sebagai MCE.

maxschlepzig
sumber
9

mcelogakan memantau pengontrol memori dan melaporkan peristiwa kesalahan memori ke syslog, dan dalam beberapa konfigurasi dapat offline halaman memori buruk . Ini, tentu saja, di samping penggunaannya yang biasa untuk memantau pengecualian pemeriksaan mesin dan berbagai kesalahan perangkat keras lainnya.

Sebagian besar distribusi Linux memiliki layanan yang diatur untuk menjalankannya sebagai daemon, misalnya untuk EL 6:

chkconfig mcelog on
service mcelog start
Michael Hampton
sumber
Tidak lagi didukung oleh Ubuntu. Instalasi memberikan kesalahan.
DimiDak
Ya, daripada yang pernah saya lihat, jika saya tidak salah itu berbicara tentang ubuntu18 tetapi tidak bekerja di Ubuntu 14 juga.
DimiDak
@DimiDak Itu masalah yang berbeda dan tidak relevan di sini. Anda dapat mengajukan pertanyaan baru tentang hal itu jika Anda memerlukan bantuan.
Michael Hampton
Orang yang memposting pertanyaan mengatakan "Semua sistem menjalankan Debian atau Ubuntu" dan jawaban Anda tidak berfungsi untuk itu. Jadi ini sangat relevan ...
DimiDak
6

Ini tergantung pada perangkat keras server Anda. Papan tulis atau sistem Supermicro akan menangani ini secara berbeda dari Dell, HP atau IBM ...

Salah satu fitur nilai tambah dari server kelas atas adalah adanya tingkat integrasi perangkat keras / OS. Server yang lebih baik akan melaporkan apa yang Anda cari sebagai bagian dari agen manajemen dan / atau solusi manajemen out-of-band (ILO, DRAC, IPMI).

Anda harus menggunakan alat yang asli untuk platform perangkat keras Anda.

Kutipan dari server HP ProLiant yang menjalankan Linux dan agen Manajemen HP:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

dan

Trap-ID=6052
Advanced ECC Memory  Engaged

atau yang lebih parah

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

atau yang terburuk ... Mengabaikan kesalahan selama 6 hari sampai server mogok karena RAM yang buruk

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

Ini dicatat, ditambah perangkap SNMP dan email dikirim.

Secara umum, Anda akan melihat Pengecekan Pemeriksaan Mesin di buffer cincin kernel, sehingga Anda dapat memeriksa dmesgatau menjalankan mcelog . Dalam pengalaman saya dengan Supermicro gear tanpa IPMI, itu tidak menangkap segalanya, dan saya masih memiliki kesalahan RAM yang menyelinap melalui celah dan menyebabkan pemadaman. Sayangnya, ini menyebabkan kebijakan burn-in RAM kuno sebelum penyebaran sistem.

putih
sumber