Linux'taki ECC hatalarından nasıl haberdar olabilirim?


23

ECC belleğe sahip bir Linux makinesi bir bellek arızası algıladığında nasıl haberdar olabilirim? Hem düzeltilebilir hem de düzeltilemez hatalarla ilgileniyorum.

  • dmesg / syslog'a bir mesaj yazılmışsa, bu zaten iyi, ama ne arayacağımı bilmek isterim
  • ek daemonların takılması (sabit sürücüler için smartmontools gibi) kabul edilebilir
  • Nagios / Icinga izleme gitmek için başka bir yol olurdu
  • İzlenecek tüm makineler IPMI'ye sahip değildir

İlgilenilen sistemlerde Supermicro anakartları (X9SCM-F) var, HP N54L Microserver modelinde sadece merak ediyorum, ama çok fazla umursamıyorum. Tüm sistemler Debian veya Ubuntu Linux kullanıyor.


Lütfen sunucu tipini ve marka / modelini, işletim sistemi dağıtım versiyonunu ve diğer ilgili donanım detaylarını açıklayınız.
beyazbeyaz

2
Rapor edildiğini bile bilmiyordum ...
Halfgaar

mcelogSyslog izlenirken koşmak , gitmenin yolu gibi görünüyor.
Jens Erat

Yanıtlar:


6

Linux çekirdeği destekleyen hata algılama ve düzeltme ( EDAC ) bazı yonga arasında bulunmaktadır. ECC'li desteklenen bir sistemde , bellek denetleyicinizin durumuna sysfs ile erişilebilir:

/sys/devices/system/edac/mc

Bu konumların altındaki dizin ağacı donanımınıza karşılık gelmelidir, örneğin:

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

Donanımınıza bağlı olarak, doğru edac sürücüsünü açıkça yüklemeniz gerekebilir, cf .:

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

edac-utilsPaket bir komut satırı ön uç ve bu verileri, örneğin erişmek için bir kütüphane sağlamaktadır:

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-utilSonuçları düzenli aralıklarla çağıran ve sonuçları izleme sisteminize besleyen bir tür cron işi ayarlayabilir ve daha sonra bazı bildirimleri yapılandırabilirsiniz.

Buna ek olarak, koşu mceloggenellikle iyi bir fikirdir. Sisteme bağlı olarak, ancak düzeltilemez / düzeltilebilen ECC hataları, muhtemelen makine kontrol istisnası ( MCE ) olarak da rapor edilmektedir . Yani, yüksek sıcaklık nedeniyle kısa süreli CPU kısıtlama süreleri bile MCE olarak rapor edilir.


9

mcelogbellek denetleyicisini izler ve bellek hatası olaylarını syslog'a bildirir ve bazı yapılandırmalarda çevrimdışı hatalı bellek sayfaları olabilir . Bu, elbette, makine kontrol istisnalarını ve çeşitli başka donanım hatalarını izlemek için olağan kullanımına ek olarak kullanılır.

Çoğu Linux dağıtımının bir servis programı olarak çalıştırılması için ayarlanmış bir servisi vardır, örneğin EL 6 için:

chkconfig mcelog on
service mcelog start

Artık Ubuntu tarafından desteklenmiyor. Kurulum hata veriyor.
DimiDak


Evet, teşekkür ederim, eğer yanılmıyorsam ubuntu18 hakkında konuşur ancak Ubuntu 14'te de çalışmaz.
DimiDak

@DimiDak Bu burada farklı bir konu ve alakalı değil. Yardıma ihtiyacınız olursa, yeni bir soru sorabilirsiniz.
Michael Hampton

Soruyu gönderen kişi "Tüm sistemler Debian veya Ubuntu kullanıyor" diyor ve cevabınız bunun için çalışmıyor. Yani oldukça alakalı ...
DimiDak

6

Bu, sunucu donanımınıza bağlıdır. Bir beyaz kutu veya Supermicro sistemi bunu Dell, HP veya IBM'den farklı şekilde ele alacaktır ...

İleri teknoloji sunucuların katma değer özelliklerinden biri, bir düzeyde donanım / işletim sistemi entegrasyonu olmasıdır. Daha iyi sunucular aradığınızı yönetim aracıları ve / veya bant dışı yönetim çözümünün (ILO, DRAC, IPMI) bir parçası olarak rapor eder.

Donanım platformunuza özgü araçları kullanmalısınız.

Linux ve HP Management agentlarını çalıştıran bir HP ProLiant sunucularından alıntı:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

ve

Trap-ID=6052
Advanced ECC Memory  Engaged

veya daha şiddetli

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

ya da en kötüsü ... Sunucu kötü RAM nedeniyle çökmesine kadar 6 gün boyunca bir hata yok sayılıyor

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

Bunlar kaydedildi, ayrıca SNMP tuzakları ve e-postalar gönderildi.

Genel olarak, çekirdek halkası arabelleğinde Makine Denetimi İstisnalarını göreceksiniz, böylece mcelog'u kontrol edebilir dmesgveya çalıştırabilirsiniz . IPMI'siz Supermicro teçhizatı ile olan deneyimlerimde bu her şeyi yakalayamadı ve hala çatlakların arasından RAM hataları alıp kesintilere neden oldum. Ne yazık ki, bu sistem dağıtımından önce arkaik RAM yanma politikalarına yol açtı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.