ECC 対非 ECC

ECC 対非 ECC

常時稼働するストレージ サーバー (GNU/Linux または FreeBSD ベース) を構築したいと考えています。データの破損を防ぐために (これまでそのような問題はなかったので、発生する可能性は低いですが、念には念を入れた方がよいでしょう)、ECC RAM を使用したいと思います。

EDD (?) (はるかに高価) ほど優れてはいませんが、追加の保護を提供します。ECC は単一ビットのエラーのみを修正するようです。

ECC 登録済み RAM は、Intel Xeon または AMD interlagos/magny-cours/valencia g34 または c32 などのワークステーション/サーバー ボードでのみ使用できます。

ECC アンバッファーは、Asus ボード上の Intel Xeon lga1155 または AMD AM3+ で使用できます。

2 番目のオプションは、プロセッサとマザーボードの面ではるかに安価になり、16 GB を超える RAM が必要になることはないと思います (4x4 GB ECC アンバッファードは、手頃な価格の最大のスティックです)。

私が抱いている疑問は (主に asus am3+ ボードに関して)、ECC 非バッファー RAM は ECC レジスタ RAM と同じくらい優れているのか (安全性と信頼性の観点から) ということです。それとも、より悪い選択なのでしょうか。私は速度をあまり気にしていません。

詳細: サーバーは最大 24 台の 3.5 インチ ドライブを搭載したサーバー ケースを使用し、消費電力は可能な限り少なくする必要があります。LGA1155 は、その意味では、価格が 2 倍の他の製品 (>80W) よりも優れた選択肢であると思われます (TDP 約 20-95W)。ご提案があれば歓迎します。アイドル時 (約 24 台中 10 台のハード ディスク) は 120W 未満としましょう。

答え1

そうですね、16GB の RAM のみを使用する場合 (これはサーバーの RAM の範囲ではありません)、標準的なデスクトップ RAM/sys で十分でしょう。

ストレージサーバーだけであれば、それほどの CPU パフォーマンスは必要ありません。

あなたが言ったように、Sandy Bridge を使用すると、クールでパフォーマンスが高く、信頼性の高いシステムが得られます。

16GB の RAM 範囲について言えば、ECC について心配する必要はありません。

答え2

ECC は単一ビットのエラーのみを修正するようです。

正解です。より多くのエラーを訂正するには、より多くのビットが必要になります。現状では、8 ビットの情報を保存するために 10 ビットが使用されており、1 ビットの訂正と最大 2 ビットのエラー検出を可能にするためにメモリ チップの 20% が「無駄」になっています。

仕組みは次のようになります。0または を想像してください1。 どちらかを読み取った場合、正しいものを読み取ったことを祈るしかありません。 宇宙放射線や不良チップによって 0 が 1 に反転した場合、それを知ることはできません。

過去には、パリティでこの問題を解決しようとしました。パリティとは、保存された 8 ビットごとに 9 番目のビットを追加することでした。バイトに 0 がいくつあり、1 がいくつあるかをチェックしました。9 番目は、偶数になるように設定されました (偶数パリティの場合)。バイトを読み取って数字が間違っていた場合、何かが間違っていることがわかります。ただし、どのビットが間違っていたかはわかりません。

ECC はそれを拡張したものです。10 ビットと複雑なアルゴリズムを使用して、1 ビットが反転したことを検知します。また、元の値も認識します。その仕組みを非常に簡単に説明すると、次のようになります。

すべて0の を に置き換えます000。すべて1の を に置き換えます111

これで6つの組み合わせが読み取れます:
000
001
010
100
101
111

元々何が保存されていたかは、100% 確実ではありません。読み取った場合、000それはまさに私たちが期待していたものだったかもしれませ000んし、3 つのビットすべてが反転していたかもしれません。後者は、非常にまれです。ビットがランダムに反転することはありませんが、それは起こります。簡単な計算のために、10 回に 1 回起こるとしましょう (実際はもっと少ないです)。正しい値を読み取る確率は次のようになります。

000-> どちらか000(99.9% 確実)、またはトリプルフリップ(1/1000 の確率)

001-> 何かが間違っていることはわかっています。しかし、 0001 ビットが反転したか (1:10 の確率)、2 ビットが反転したか (1:100 の確率) のいずれかです 。したがって、読み取りは行うがエラーをログに記録する111ものとして処理しましょう。000

010-> 上記と同じです。

100-> 上記と同じです。

011-> 上記と同じですが、111

101-> 上記と同じですが、111

110-> 上記と同じですが、111

111-> どちらか111(99.9% 確実)、またはトリプルフリップ(1/1000 の確率)

111-> どちらか000(99.9% 確実)、またはトリプルフリップ(1/1000 の確率)

ECC も同様のトリックを実行しますが、より効率的に実行します。8 ビット (1 バイト) の場合、検出と修正には 10 ビットのみを使用します。


ECC 登録済み RAM はワークステーション / サーバー ボードでのみ使用可能です。ECC アンバッファーは、Asus ボード上の Intel Xeon lga1155 または AMD AM3+ で使用可能です。

ECC 部分についてはすでに説明しましたが、今度はレジスタード部分とアンバッファード部分について説明します。

最近の CPU では、メモリ コントローラは CPU ダイ上に搭載されています。これは、AMD Opteron チップではかなり前から、Intel の Core i シリーズでは始まっています。ほとんどのデスクトップ CPU は、RAM を保持する DIMM ソケットと直接通信します。これは機能し、追加のロジックは必要ありません。構築コストは安く、メモリ コントローラから RAM への遅延がないため、速度は高速です。

しかし、メモリ コントローラは、高速で限られた電流しか流すことができません。つまり、マザーボードに追加できるメモリ ソケットの数には制限があります。(さらに複雑なのは、DIMM が使用できる量で、これがメモリ ランクにつながります。これはすでに長いので省略します)。

サーバー ボードでは、デスクトップ システムよりも多くのメモリを使用する必要があることがよくあります。そのため、メモリに「レジスタ」バッファが追加されます。DIMM 上のチップからの読み取りは、最初にこのバッファにコピーされます。1 クロック サイクル後に、このバッファはメモリ コントローラに接続してデータを転送します。

このバッファ/レジスタは遅延を引き起こし、メモリを遅くします。これは望ましくないため、メモリ バンクが多数あるボードでのみ使用/必要とされます。ほとんどのコンシューマ ボードではこれが必要なく、ほとんどのコンシューマ CPU ではサポートされていません。

直接接続されたバッファなし RAM とバッファ付き/レジスタ付き RAM は、どちらが優れているか劣っているかという問題ではありません。メモリ スロットの数に関してトレードオフが異なるだけです。レジスタ付き RAM では、速度 (および場合によっては費用) を犠牲にして RAM を増やすことができます。できるだけ多くのメモリが必要なほとんどの場合、その余分なメモリは、わずかに遅い速度で実行される RAM を補って余りあるものです。

私が抱いている疑問は (主に asus am3+ ボードに関して)、ECC 非バッファー RAM は ECC レジスタ RAM と同じくらい優れているのか (安全性と信頼性の観点から) ということです。それとも、より悪い選択なのでしょうか。私は速度をあまり気にしていません。**

安全性と安定性の観点から見ると、ECC アンバッファーと ECC レジスタードは同じです。


詳細: サーバーは最大 24 x 3 ½ インチ ドライブを搭載したサーバー ケースを使用し、消費電力は可能な限り少なくする必要があります。

24 台のドライブは大量の電力を消費します。その量はドライブによって異なります。私の 140GB 15K RPM SAS ドライブはアイドル時にわずか 10 ワットしか消費しません。これは 1TB SATA 7k2 ディスクと同じです。使用時には両方ともより多くの電力を消費します。

それを 24 倍にします。アイドル時の 24x10 ワットは、空気抵抗を克服してディスク プラッターを回転させ続けるだけで 240 ワットになることを意味します。使用時にはその 2 倍になります。


その意味では、LGA1155 (TDP 約 20-95W) は、価格が 2 倍の他の製品 (>80W) よりも優れた選択肢であると思われます。

この記事の執筆時点では、あなたが言及した CPU に関しては、Intel の方が低電力 CPU に優れています。

どのような提案でも歓迎します。アイドル時 (約 24 個のハードディスクのうち 10 個) は 120W 未満とします。

FreeBSD を選ぶなら、ZFS をよく検討してください。ZFS は素晴らしいものになる可能性があります。ZFS の高度な機能 (重複排除や圧縮など) の多くは、CPU パワーを大量に消費し、大量のメモリを必要とします。ZRAID での基本的な使用では、ZFS は、あなたが言及した両方の CPU セットと 16 GB で問題なく動作しますが、重複排除などの機能をオンにする場合は、ディスク容量に必要な推奨メモリを慎重に検討する必要があります。ストレージ 1 TB あたり最大 5GB が推奨されています。いくつかのガイド

あと2つ:

  1. ドライブの接続については何も見当たりませんでした。ボードによっては、SATA ポートが 10 個まで搭載できるものもあります。ただし、それ以上の場合は、アドイン カードが必要になります。ハードウェア RAID を検討している場合は、最初からそれを計画するのが最善かもしれません。
  2. ドライブの故障:使用すべきかSATA ポートマルチプライヤSATA ドライブが故障した場合、どのように動作するか注意深く見てください。多くの場合、それは見苦しいものです。家庭のセットアップでは大きな問題ではありませんが、エンタープライズ グレードではありません。個々のドライブがエラーをどのように処理するかも考慮する必要があります。一部のドライブが「NAS」または「RAID」用としてラベル付けされているのは、通常のドライブとは異なるエラー処理をするためです。RAID がない場合、ドライブはできるだけ何度も再試行する必要があります。RAID がある場合、ドライブがすぐに故障することを望む、別のコピーから読むことができます。

答え3

2つの別々の問題。

ECC 対非 ECC

  • 稼働時間が重要な場合は必ずECCを使用する
  • コストが高くなる - 8 個ではなく 9 個のチップ(の倍数)が必要
  • 使用するにはマザーボードがサポートしている必要があります

登録済みとバッファなし:

  • レジスタードDIMMを使用すると、より多くのRAMを搭載できる
    • メモリコントローラインターフェースへの電気的負担が軽減
  • しかし、インストールされているすべてのDIMMが登録されているかどうかは
    • レジスタードDIMMにアップグレードする場合は、バッファなしDIMMを削除する必要があります。
  • また、より高価で、アクセスに時間がかかる。
    • バッファなしはレイテンシが若干低くなりますが、それが問題になるかもしれません
    • ランダムアクセスはとにかく多くのサイクルを要します
    • 絶対アクセスレイテンシ(ナノ秒単位の時間)は、PCにおけるDRAMの使用の歴史の中であまり改善されていないことに注意してください。
      • コスト、容量、帯域幅が大幅に改善されました
      • メモリキャッシュは、ほとんどのメモリアクセスのレイテンシを隠します。
    • 遅延が長くなると、シングルスレッドの「リアルタイム」パフォーマンスに最も悪影響が出る
      • 通常、「サーバー」ユースケースにはあまり影響しません
    • 帯域幅と全体的なパフォーマンスに差がない/ほとんどない
      • シーケンシャルアクセス帯域幅は影響を受けない
      • L2/L3キャッシュは、実際のアクセスパターンがキャッシュ内の行を一度に置き換えることを主に意味するため、とにかく通常は「バースト」アクセスになります。

関連情報