Lỗi chipkill ECC: DIMM nào?


8

Chúng tôi thường khiến các DIMM trong các máy chủ của mình trở nên tồi tệ với các lỗi sau trong syslog:

Ngày 7 tháng 5 09:15:31 nolcgi303 kernel: EDAC k8 MC0: lỗi bus chung: bộ xử lý tham gia (phản hồi nút cục bộ), thời gian chờ (không hết thời gian) loại giao dịch bộ nhớ (đọc chung), mem hoặc i / o (truy cập mem) , mức bộ nhớ cache (chung)
Ngày 7 tháng 5 09:15:31 nolcgi303 kernel: MC0: CE trang 0xa0, offset 0x40, hạt 8, hội chứng 0xb50d, hàng 2, kênh 0, nhãn "": k8_edac
Ngày 7 tháng 5 09:15:31 nolcgi303 kernel: MC0: CE - không có thông tin nào: k8_edac Lỗi tràn bộ
Ngày 7 tháng 5 09:15:31 nolcgi303 kernel: EDAC k8 MC0: mã lỗi mở rộng: ECC chipkill x4 lỗi

Chúng tôi có thể sử dụng CD SmartStart của HP để xác định DIMM nào có lỗi nhưng yêu cầu phải đưa máy chủ ra khỏi sản xuất. Có cách nào khôn ngoan để tìm ra bức tượng bán thân của DIMM khi máy chủ hoạt động không? Tất cả các máy chủ của chúng tôi là phần cứng HP chạy RHEL 5.


memtest86 + nhưng tôi cho rằng bạn không thể chạy nó trong khi RHEL đang chạy
Alex Bolotov

Bạn có đang chạy trang chủ HP SIM (hoặc SIM đầy đủ cho vấn đề đó thực sự) trên hộp không? nếu vậy sẽ cung cấp thêm thông tin. Mặt khác, tôi cần biết thêm một chút thông tin về phần bù bộ nhớ từ một lỗi chi tiết hơn.
Chopper3

Chúng tôi sẽ không chạy bất kỳ thứ gì trong HP SIM trên hộp vì chúng tôi thường thấy nó rắc rối hơn giá trị của nó. Nếu chúng ta không thể biết DIMM nào đã chết khi trực tuyến thì đó không phải là một showstopper - Tôi chỉ đang tìm cách tiết kiệm thời gian: ~)
markdrayton

Câu trả lời:


4

Ngoài việc sử dụng mã EDAC, bạn có thể sử dụng các tiện ích HP chỉ CLI để xác định điều này khi máy đang trực tuyến. Các phiên bản cli nhẹ hơn nhiều so với các phiên bản web và không yêu cầu bạn phải mở các cổng hoặc có một trình nền liên tục chạy.

hpasmcli sẽ cung cấp cho bạn hộp mực và mô-đun của các mô-đun bị lỗi. Nhanh hơn một chút so với phân tích EDAC.

Thí dụ:

hpasmcli -s "show dimm"

DIMM Configuration
------------------
Cartridge #: 0
Module #: 1
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 2
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 3
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 4
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Trạng thái sẽ thay đổi cho các mô-đun thất bại.


Ah, thật tuyệt vời! Cũng yêu cầu một bộ gói khá nhỏ: OpemIPMI, OpenIPMI-libs và hp-Health. Ít nhất đó là những gì đã hoạt động trên BL465 - Tôi không thể có được ipmi daemon để chạy trên BL25: kernel: ipmi_si: Không thể tìm thấy bất kỳ ý tưởng nào về Giao diện hệ thống? Không có nhiều trên internet :(
markdrayton

Tôi cũng không gặp phải vấn đề đó. Chỉ sử dụng các tiện ích trên máy chủ DL380 / 5 và DL580 / 5.
Josh

17

MC0, hàng 2 và kênh 0 là đáng kể. Hãy thử thay thế DIMMA1 trên CPU0.

Ví dụ, tôi đã phải xác định một DIMM xấu trong máy chủ Linux với 16 khe DIMM được điền đầy đủ và hai CPU. Đây là những lỗi tôi thấy trên bảng điều khiển:

EDAC k8 MC1: general bus error: participating processor(local node origin), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
EDAC MC1: CE page 0x103ca78, offset 0xf88, grain 8, syndrome 0x9f65, row 1, channel 0, label "": k8_edac
EDAC MC1: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC1: extended error code: ECC chipkill x4 error

DIMM xấu trong máy chủ của tôi là DIMMA0 trên CPU1.

EDAC là viết tắt của Phát hiện và Sửa lỗi và được ghi lại tại http://www.kernel.org/doc/Documentation/edac.txt và /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac .txt trên hệ thống của tôi (RHEL5). CE là viết tắt của "lỗi có thể sửa chữa" và như tài liệu chỉ ra, "CE cung cấp các dấu hiệu sớm cho thấy DIMM đang bắt đầu thất bại."

Quay trở lại các lỗi EDAC ở trên tôi thấy trên bảng điều khiển máy chủ của mình, MC1 (Bộ điều khiển bộ nhớ 1) có nghĩa là CPU1, hàng 1 được gọi là csrow1 (Chip-Chọn hàng 1) trong tài liệu EDAC của Linux và kênh 0 có nghĩa là kênh bộ nhớ 0 . Tôi đã kiểm tra biểu đồ tại http://www.kernel.org/doc/Documentation/edac.txt để xem csrow1 và Kênh 0 tương ứng với DIMM_A0 (DIMMA0 trên hệ thống của tôi):

            Channel 0       Channel 1
    ===================================
    csrow0  | DIMM_A0       | DIMM_B0 |
    csrow1  | DIMM_A0       | DIMM_B0 |
    ===================================

    ===================================
    csrow2  | DIMM_A1       | DIMM_B1 |
    csrow3  | DIMM_A1       | DIMM_B1 |
    ===================================

(Một ví dụ khác, nếu tôi thấy lỗi trên MC0, csrow4 và Kênh 1, tôi sẽ thay thế DIMMB2 trên CPU0.)

Tất nhiên, thực tế có hai khe DIMM được gọi là DIMMA0 trên máy chủ của tôi (một cho mỗi CPU), nhưng một lần nữa lỗi MC1 tương ứng với CPU1, được liệt kê trong "Bộ định vị ngân hàng" trong đầu ra của dmidecode:

[root@rce-8 ~]# dmidecode -t memory | grep DIMMA0 -B9 -A8
Handle 0x002E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU0
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:  
--
Handle 0x003E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU1
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:

(Trên máy trạm của tôi, dmidecode thực sự hiển thị Số phần và Số sê-ri cho DIMM của tôi, rất hữu ích.)

Ngoài việc xem xét các lỗi trên bảng điều khiển và trong nhật ký, bạn cũng có thể thấy các lỗi trên mỗi MC / CPU, hàng / csrow và kênh bằng cách kiểm tra / sys / thiết bị / hệ thống / edac. Trong trường hợp của tôi, các lỗi chỉ xảy ra trên MC1, csrow1, kênh 0:

[root@rce-8 ~]# grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow1/ch0_ce_count:6941652
/sys/devices/system/edac/mc/mc1/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch1_ce_count:0

Tôi hy vọng ví dụ này hữu ích cho bất kỳ ai đang cố gắng xác định DIMM xấu dựa trên các lỗi EDAC. Để biết thêm thông tin, tôi khuyên bạn nên đọc tất cả tài liệu EDAC của Linux tại http://www.kernel.org/doc/Documentation/edac.txt


1
Câu trả lời tuyệt vời! Đây là câu trả lời tốt nhất ở đây và hướng dẫn bạn một cách hoàn hảo cách giải quyết vấn đề và cách ly DIMM xấu.
slm

Và phải làm gì nếu tin nhắn là MC0: UE row 0, channel-a= 2 channel-b= 3.
Mitar
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.