Saya memperbarui posting ini sejak saya mengganti prosesor, tetapi inti dari pertanyaan saya (dan sayangnya hasilnya juga) adalah sama.
Saya membangun kotak FreeNAS pertama saya dan ingin menggunakan RAM ECC karena saya ingin menyimpan data penting. Karena anggaran saya terbatas, saya ingin mencari solusi yang paling terjangkau yang masih mendukung RAM ECC.
Setelah melakukan riset, saya menemukan, bahwa saya memerlukan motherboard, memori, dan CPU yang mendukung ECC. Motherboard pilihan saya adalah "Gigabyte X150M-Pro ECC" yang memiliki chipset C232, DDR4 dan soket LGA1151.
Saya juga membeli kit dari dua DIMM yang dibuat oleh Kingston dengan nomor model "KVR21E15S8K2 / 8" ( lembar spesifikasi ). Gigabyte menerbitkan daftar modul memori yang diuji dan modul saya tampaknya didukung dengan ECC yang berfungsi ( daftar modul yang didukung ).
Karena anggaran saya terbatas, saya membutuhkan Skylake CPU yang terjangkau yang mendukung ECC. Menurut Intel , Celeron G3900 mendukung ECC, jadi saya memilih yang itu.
Setelah membangun komputer, saya ingin memverifikasi bahwa sistem saya memang berjalan dengan memori ECC dan memasuki BIOS motherboard. Dari berbagai situs internet, saya menemukan bahwa beberapa motherboard memiliki bagian khusus yang harus mengetahui apakah ECC berfungsi, tetapi motherboard saya sepertinya tidak memilikinya. Saya memeriksa semua menu dan saya tidak dapat menemukan bagian yang serupa.
Setelah melakukan beberapa penelitian lebih lanjut dan menemukan posting lebih dari pada stackexchange Unix & Linux yang tidak menyelesaikan masalah saya. Saya mencoba yang terbaru memtest86+
yang dari apa yang saya tahu, bahkan tidak menunjukkan nilai "ECC". Saya mencoba versi lama 4,20 yang menggunakan sistem Puget yang menunjukkan "ECC: off". Namun setelah membaca posting yang disebutkan sebelumnya, saya ragu bahwa itu mengatakan yang sebenarnya (mungkin itu sebabnya fitur itu dihapus?). Kedua versi juga tidak membacakan kecepatan dan latensi DIMM yang benar yang menambah keraguan saya terhadap memtest86+
.
Cara populer lainnya untuk mengetahuinya, jika ECC berfungsi, adalah dengan mengeluarkan dmidecode -t memory
perintah dan membaca Total Width
dan Data Width
. Hasil saya 128 Bits
dan 64 Bits
masing - masing. Salah satu bagian dari output menunjukkan detail tentang array memori yang memiliki pasangan kunci-nilai Error Correction Type: Single-bit ECC
.
Saya mengharapkan 72 bits
untuk Total Width
, jadi saya pikir itu mungkin terkait dengan saluran ganda dan memindahkan modul memori ke dua slot yang berdekatan yang seharusnya mencegah saluran ganda, tetapi hasilnya sama. Ini adalah hasil lengkap dari dmidecode -t memory
.
Saya bahkan mencoba program C yang menarik yang diterbitkan sistem Puget, tetapi hasilnya 0
, menunjukkan tidak ada dukungan ECC.
Sekarang saya mulai ragu bahwa data di situs web Intel sudah benar dan CPU saya tidak benar-benar mendukung ECC. Baik memori dan motherboard secara khusus dicap dengan "ECC", jadi saya bisa mengesampingkannya.
Apakah mungkin bahwa versi BIOS membutuhkan pembaruan (saat ini tidak ada) untuk mengaktifkan ECC atau apakah ECC sebenarnya sudah berfungsi dan saya tidak dapat memverifikasinya? Atau apakah pilihan CPU saya salah, jika saya ingin menjalankan memori ECC dan situs web Intel salah / menyesatkan?
Jika CPU saya ternyata menjadi pilihan yang salah, apa yang akan menjadi pilihan terbaik berikutnya untuk "CPU ECC anggaran"?
UPDATE: Saya melihat beberapa indikasi baru bahwa sistem saya sebenarnya mungkin berjalan dengan ECC diaktifkan dan dmidecode
alat hanya melaporkan data aneh. Selama di forum FreeNAS, pengguna Dusan menggunakan perangkat keras tingkat server (SuperMicro MB, Xeon CPU, Kingston DIMM) dan memiliki output yang serupa 128 Bits
. Tetapi dia menulis bahwa dia sendiri tidak yakin, apakah itu benar-benar berhasil.
UPDATE 2: Seperti yagmoth555 disebutkan dalam jawaban untuk pertanyaan ini, sepertinya motherboard saya hanya mendukung ECC dengan prosesor Xeon, meskipun saya pikir catatan itu adalah peninggalan dari manual sebelumnya yang disalin. Saya kira itu berarti bahwa saya perlu melihat ke dalam prosesor Xeon ..: - /
UPDATE 3: Saya membeli Xeon E3-1220v5 sekarang yang tentu saja mendukung ECC dan harus memenuhi persyaratan dari manual. Saya menjalankan semua tes lagi untuk memeriksa fungsionalitas ECC dan hasilnya pada dasarnya identik:
Dari komentar di Puget Systems, sepertinya ecc_check.c
program itu tidak bekerja pada prosesor Xeon dan Core i7 ..: - /
Saya memeriksa memtest86+
lebih banyak lagi kali ini dan saya cukup yakin bahwa itu tidak mendukung chipset DDR4 atau C232 sama sekali, karena tidak hanya melaporkan kecepatan dan timing yang salah, tetapi juga DDR3 bukan DDR4 yang diinstal. Namun, itu mendeteksi prosesor dengan baik, tetapi saya masih mendapatkan hasil akhir yang sama dengan kedua versi memtest86+
:
Versi 4.20 bahkan tidak mendeteksi prosesor saya dengan benar ..
Setiap ide tentang bagaimana lagi saya bisa menguji ECC sangat dihargai.