Tôi đã cập nhật bài đăng này kể từ khi tôi thay thế bộ xử lý, nhưng cốt lõi của câu hỏi của tôi (và không may là kết quả cũng vậy) là như nhau.
Tôi đã xây dựng hộp FreeNAS đầu tiên của mình và muốn sử dụng RAM ECC vì tôi muốn lưu trữ dữ liệu quan trọng. Bởi vì tôi đang ở trong ngân sách, tôi muốn tìm giải pháp hợp lý nhất vẫn hỗ trợ RAM ECC.
Sau khi thực hiện một số nghiên cứu, tôi phát hiện ra rằng tôi cần một bo mạch chủ, bộ nhớ và CPU hỗ trợ ECC. Bo mạch chủ mà tôi lựa chọn là "Gigabyte X150M-Pro ECC" có chipset C 232, DDR4 và ổ cắm LGA1151.
Tôi cũng đã mua một bộ gồm hai DIMM do Kingston sản xuất với số kiểu "KVR21E15S8K2 / 8" ( tờ đặc tả ). Gigabyte đã công bố danh sách các mô-đun bộ nhớ được thử nghiệm và các mô-đun của tôi dường như được hỗ trợ với ECC hoạt động ( danh sách các mô-đun được hỗ trợ ).
Vì tôi đang ở trong ngân sách nên tôi cần một CPU Skylake giá cả phải chăng hỗ trợ ECC. Theo Intel , Celeron G3900 không hỗ trợ ECC, vì vậy tôi đã sử dụng cái đó.
Sau khi xây dựng máy tính, tôi muốn xác minh rằng hệ thống của tôi thực sự đang chạy với bộ nhớ ECC và đã vào BIOS của bo mạch chủ. Từ các trang web internet khác nhau, tôi phát hiện ra rằng một số bo mạch chủ có một phần đặc biệt sẽ cho biết ECC có hoạt động hay không, nhưng bo mạch chủ của tôi dường như không có điều đó. Tôi đã kiểm tra tất cả các menu và tôi không thể tìm thấy một phần tương tự.
Sau khi thực hiện một số nghiên cứu thêm và tìm thấy một bài đăng trên stackexchange Unix & Linux không giải quyết được vấn đề của tôi. Tôi đã thử cái mới nhất memtest86+
mà từ những gì tôi có thể nói, thậm chí không hiển thị giá trị "ECC". Tôi đã thử phiên bản 4.20 cũ hơn mà các hệ thống Puget đã sử dụng cho thấy "ECC: tắt". Tuy nhiên sau khi đọc bài đăng được đề cập trước đó, tôi nghi ngờ rằng nó nói sự thật (có lẽ đó là lý do tại sao tính năng này bị xóa?). Cả hai phiên bản cũng không đọc được tốc độ và độ trễ chính xác của DIMM, điều này làm tăng thêm sự nghi ngờ của tôi memtest86+
.
Một cách phổ biến khác để tìm hiểu, nếu ECC đang hoạt động, là phát dmidecode -t memory
lệnh và đọc Total Width
và Data Width
. Kết quả của tôi là 128 Bits
và 64 Bits
tương ứng. Một phần của đầu ra cho thấy chi tiết về mảng bộ nhớ có cặp giá trị khóa Error Correction Type: Single-bit ECC
.
Tôi đã mong đợi 72 bits
điều này Total Width
, vì vậy tôi nghĩ rằng nó có thể liên quan đến kênh đôi và di chuyển các mô-đun bộ nhớ vào hai khe liền kề sẽ ngăn kênh kép, nhưng kết quả là như nhau. Đây là đầu ra đầy đủ của dmidecode -t memory
.
Tôi thậm chí đã thử chương trình C thú vị mà các hệ thống Puget đã xuất bản, nhưng kết quả là 0
, cho thấy không có hỗ trợ ECC.
Bây giờ tôi bắt đầu nghi ngờ rằng dữ liệu trên trang web của Intel là chính xác và CPU của tôi không thực sự hỗ trợ ECC. Cả bộ nhớ và bo mạch chủ đều được gắn nhãn "ECC", vì vậy tôi có thể loại trừ chúng.
Có thể phiên bản BIOS cần một bản cập nhật (hiện tại không có) để kích hoạt ECC hoặc ECC thực sự đã hoạt động và tôi chỉ không thể xác minh nó? Hoặc là sự lựa chọn CPU của tôi sai, nếu tôi muốn chạy bộ nhớ ECC và trang web của Intel bị sai / sai?
Nếu CPU của tôi trở thành lựa chọn sai, thì đâu là lựa chọn tốt nhất tiếp theo cho "CPU ECC ngân sách"?
CẬP NHẬT: Tôi thấy một số dấu hiệu mới cho thấy hệ thống của tôi thực sự có thể đang chạy với ECC được kích hoạt và dmidecode
công cụ chỉ báo cáo dữ liệu lạ. Tại diễn đàn FreeNAS, người dùng Dusan đang sử dụng phần cứng cấp máy chủ (SuperMicro MB, CPU Xeon, Kingston DIMM) và có đầu ra tương tự 128 Bits
. Nhưng anh ấy đã viết rằng anh ấy không chắc chắn về bản thân mình, nếu nó thực sự hoạt động.
CẬP NHẬT 2: Như yagmoth555 đã đề cập trong câu trả lời của mình cho câu hỏi này, có vẻ như bo mạch chủ của tôi chỉ hỗ trợ ECC với bộ xử lý Xeon, mặc dù tôi nghĩ rằng ghi chú đó là bản sao chép từ các hướng dẫn trước đây đã được sao chép. Tôi đoán điều đó có nghĩa là tôi cần xem xét bộ xử lý Xeon ..: - /
CẬP NHẬT 3: Tôi đã mua Xeon E3-1220v5 bây giờ tất nhiên hỗ trợ ECC và phải đáp ứng yêu cầu từ hướng dẫn. Tôi đã chạy tất cả các bài kiểm tra một lần nữa để kiểm tra chức năng ECC và kết quả về cơ bản là giống hệt nhau:
Từ các nhận xét tại Puget Systems, có vẻ như ecc_check.c
chương trình không hoạt động trên bộ xử lý Xeon và Core i7 ..: - /
Tôi đã kiểm tra memtest86+
thêm một lần nữa và tôi khá chắc chắn rằng nó hoàn toàn không hỗ trợ chipset DDR4 hoặc C232, vì nó báo cáo không chỉ tốc độ và thời gian sai mà còn cả DDR3 thay vì DDR4 được cài đặt. Tuy nhiên, nó đã phát hiện bộ xử lý tốt, nhưng tôi vẫn nhận được kết quả cuối cùng với cả hai phiên bản memtest86+
:
Phiên bản 4.20 thậm chí không phát hiện đúng bộ xử lý của tôi ..
Mọi ý tưởng về cách khác tôi có thể kiểm tra ECC đều được đánh giá rất cao.