プロセッサを交換してからこの投稿を更新しましたが、私の質問の核心(そして残念ながら結果も)は同じです。
最初のFreeNASボックスを構築し、重要なデータを保存したいので、ECC RAMを使用したいと思いました。私は予算が足りないので、ECC RAMをサポートする最も手頃なソリューションを求めていました。
調査したところ、マザーボード、メモリ、ECCをサポートするCPUが必要であることがわかりました。私が選んだマザーボードは、C232チップセット、DDR4、LGA1151ソケットを備えた「ギガバイトX150M-Pro ECC」です。
また、モデル番号「KVR21E15S8K2 / 8」のキングストン製の2枚のDIMMのキットも購入しました(スペックシート)。ギガバイトはテスト済みのメモリモジュールのリストを公開し、私のモジュールは動作中のECCでサポートされているようです(サポートされているモジュールのリスト)。
予算が足りないので、ECCをサポートする手頃な価格のSkylake CPUが必要でした。Intelによれば、Celeron G3900はECCをサポートしているので、ECCを使用しました。
コンピュータを構築した後、システムが本当にECCメモリで実行されており、マザーボードのBIOSに入っていることを確認したいと思いました。さまざまなインターネットサイトから、一部のマザーボードにECCが機能しているかどうかを通知する特別なセクションがあることを発見しましたが、私のマザーボードにはそれがないようです。すべてのメニューを確認したところ、類似のセクションが見つかりませんでした。
さらに調査を行ったところ、UnixとLinuxのスタック交換に関する投稿が見つかりましたが、私の問題は解決しませんでした。memtest86+
「ECC」という値すらわからない最新のものを試してみました。ピュージェットのシステムで使用されていた「ECC:オフ」を示す古い4.20バージョンを試しました。ただし、前述の投稿を読んだ後、それが真実を物語っているとは思えません(たぶん、そのため機能が削除されましたか?)。どちらのバージョンも、DIMMの正しい速度と遅延を読み取れなかったため、への疑問が深まりmemtest86+
ます。
もう一つの一般的な方法は、ECCが動作している場合、発行することだった、調べるにはdmidecode -t memory
、コマンドをし、読み出しTotal Width
とData Width
。私の結果は以下の通りであった128 Bits
と64 Bits
、それぞれ。出力の一部には、キーと値のペアがであるメモリ配列に関する詳細が表示されましたError Correction Type: Single-bit ECC
。
を期待し72 bits
ていたTotal Width
ので、デュアルチャネルに関連している可能性があると考え、メモリモジュールを2つの隣接するスロットに移動しました。これにより、デュアルチャネルが使用できなくなりましたが、結果は同じでした。これはの完全な出力ですdmidecode -t memory
。
私はピュージェットシステムが公開した興味深いCプログラムを試してみましたが、結果はであり0
、ECCサポートがないことを示しています。
今、私はIntel自身のウェブサイト上のデータが正しいことと私のCPUが実際にECCをサポートしていないことに疑問を感じ始めています。メモリとマザーボードの両方に「ECC」という特別なブランドが付いているので、それらを除外できます。
BIOSバージョンがECCを有効にするために更新が必要(現在は何もない)か、ECCが実際に既に機能していて、確認できなかった可能性はありますか?または、ECCメモリを実行したいのにIntelのWebサイトが間違っている、または誤解を招く場合、CPUの選択は間違っていますか?
私のCPUが間違った選択であることが判明した場合、「予算ECC CPU」の次の最良の選択は何でしょうか?
更新:私のシステムがECCを有効にして実行されている可能性があり、ツールが奇妙なデータを報告するだけであるという新しい兆候を見ましたdmidecode
。FreeNASフォーラムでは、ユーザーDusanがサーバーグレードのハードウェア(SuperMicro MB、Xeon CPU、Kingston DIMM)を使用しており、と同様の出力が得られ128 Bits
ます。しかし、彼はそれが実際に機能するかどうか、自分自身はわからないことを書いた。
更新2: yagmoth555 がこの質問への回答で述べたように、私のマザーボードはXeonプロセッサを備えたECCのみをサポートしているようですが、メモは以前のマニュアルからコピーされたものだと思いました。Xeonプロセッサを調べる必要があることを意味していると思います。:-/
更新3: Xeon E3-1220v5を購入しました。もちろん、ECCをサポートしており、マニュアルの要件を満たす必要があります。すべてのテストを再度実行してECC機能を確認しましたが、結果は基本的に同じです。
Puget Systemsのコメントから、このecc_check.c
プログラムはXeonおよびCore i7プロセッサーでは動作しないようです。:-/
memtest86+
今回はさらにチェックアウトしましたが、間違った速度とタイミングだけでなく、インストールされているDDR4の代わりにDDR3も報告するため、DDR4またはC232チップセットをまったくサポートしていないことは間違いありません。ただし、プロセッサは問題なく検出されましたが、の両方のバージョンで同じ最終結果が得られましたmemtest86+
。
バージョン4.20でもプロセッサーが正しく検出されません。
他にどのようにECCをテストできるかについてのアイデアは、非常に高く評価されています。