Làm cách nào để tôi được thông báo về các lỗi ECC trong Linux?


23

Làm cách nào để tôi được thông báo, khi một máy Linux được trang bị bộ nhớ ECC nhận ra lỗi bộ nhớ? Tôi quan tâm đến cả lỗi chính xác và không thể sửa chữa.

  • nếu một tin nhắn được viết cho dmesg / syslog, thì điều này đã ổn rồi, nhưng tôi rất muốn biết phải tìm gì
  • cài đặt thêm trình nền (như smartmontools cho ổ cứng) có thể được chấp nhận
  • Giám sát Nagios / Icinga sẽ là một cách khác để đi
  • không phải tất cả các máy được giám sát đều có IPMI

Các hệ thống quan tâm có bảng Supermicro (X9SCM-F), liên quan đến Máy chủ Kính hiển vi HP N54L Tôi chỉ tò mò, nhưng không quan tâm quá nhiều. Tất cả các hệ thống chạy Debian hoặc Ubuntu Linux.


Vui lòng mô tả loại máy chủ và kiểu / mô hình, phiên bản phân phối HĐH và mọi chi tiết phần cứng có liên quan khác.
ewwhite

2
Tôi thậm chí còn không biết nó đã được báo cáo ...
Halfgaar

Chạy mcelogtrong khi theo dõi syslog có vẻ như cách để đi.
Jens Erat

Câu trả lời:


6

Nhân Linux hỗ trợ các tính năng phát hiện và sửa lỗi ( EDAC ) của một số chipset. Trên hệ thống được hỗ trợ với ECC , trạng thái của bộ điều khiển bộ nhớ của bạn có thể truy cập được thông qua sysfs:

/sys/devices/system/edac/mc

Cây thư mục bên dưới các vị trí đó sẽ tương ứng với phần cứng của bạn, ví dụ:

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

Tùy thuộc vào phần cứng của bạn, bạn có thể phải tải rõ trình điều khiển edac bên phải, cf.:

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

Các edac-utilsgói cung cấp một lối vào dòng lệnh và thư viện để truy cập dữ liệu, ví dụ như:

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

Bạn có thể thiết lập một số loại công việc định kỳ gọi eac-utilvà định kỳ kết quả vào hệ thống giám sát của mình, nơi bạn có thể định cấu hình một số thông báo.

Thêm vào đó, chạy mcelognói chung là một ý tưởng tốt. Phụ thuộc vào hệ thống, nhưng các lỗi ECC không thể sửa chữa / sửa chữa cũng có khả năng được báo cáo là ngoại lệ kiểm tra máy ( MCE ). Ý tôi là, ngay cả những giai đoạn ngắn của điều chỉnh CPU do nhiệt độ cao hơn được báo cáo là MCE.


9

mcelogsẽ giám sát bộ điều khiển bộ nhớ và báo cáo các sự kiện lỗi bộ nhớ cho syslog và trong một số cấu hình có thể ngoại tuyến các trang bộ nhớ xấu . Tất nhiên, đây là ngoài việc sử dụng thông thường để theo dõi các trường hợp ngoại lệ kiểm tra máy và một loạt các lỗi phần cứng khác.

Hầu hết các bản phân phối Linux có một dịch vụ được thiết lập để chạy nó dưới dạng daemon, ví dụ như cho EL 6:

chkconfig mcelog on
service mcelog start

Không được Ubuntu hỗ trợ nữa. Cài đặt cho lỗi.
DimiDak


Vâng, thanx tôi đã thấy rằng, nếu tôi không nhầm thì nó nói về ubfox18 nhưng nó cũng không hoạt động trên Ubuntu 14.
DimiDak

@DimiDak Đó là một vấn đề khác và không liên quan ở đây. Bạn có thể hỏi một câu hỏi mới về nó nếu bạn cần giúp đỡ.
Michael Hampton

Anh chàng đã đăng câu hỏi nói rằng "Tất cả các hệ thống chạy Debian hoặc Ubuntu" và câu trả lời của bạn không hoạt động cho nó. Vì vậy, nó khá phù hợp ...
DimiDak

6

Điều này phụ thuộc vào phần cứng máy chủ của bạn. Một hệ thống whitebox hoặc Supermicro sẽ xử lý việc này khác với Dell, HP hoặc IBM ...

Một trong những tính năng bổ sung giá trị của các máy chủ cao cấp là có mức độ tích hợp phần cứng / hệ điều hành. Các máy chủ Nicer sẽ báo cáo những gì bạn đang tìm kiếm như một phần của các tác nhân quản lý và / hoặc giải pháp quản lý ngoài băng tần (ILO, DRAC, IPMI).

Bạn nên sử dụng các công cụ tự nhiên cho nền tảng phần cứng của bạn.

Trích từ máy chủ HP ProLiant chạy Linux và các tác nhân Quản lý HP:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

Trap-ID=6052
Advanced ECC Memory  Engaged

hoặc nghiêm trọng hơn

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

hoặc tệ nhất ... Bỏ qua lỗi trong 6 ngày cho đến khi máy chủ gặp sự cố vì RAM xấu

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

Chúng đã được ghi lại, cộng với bẫy SNMP và email đã được gửi.

Nhìn chung, bạn sẽ thấy Máy kiểm tra ngoại lệ trong bộ đệm vòng nhân, do đó bạn có thể kiểm tra dmesghoặc chạy mcelog . Theo kinh nghiệm của tôi với thiết bị Supermicro không có IPMI, điều đó không nắm bắt được mọi thứ và tôi vẫn gặp lỗi RAM trượt qua các vết nứt và gây ra sự cố ngừng hoạt động. Thật không may, điều này dẫn đến các chính sách lưu trữ RAM cổ xưa trước khi triển khai hệ thống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.