ECCはシングルビットエラーのみを修正するようです。
正しい。より多くのエラーを修正するには、より多くのビットが必要になります。現状では、10ビットを使用して8ビットの情報を保存し、メモリチップの20%を無駄にして、1ビットの訂正と最大2ビットのエラー検出を可能にします。
次のように機能します。0
またはを想像してください1
。どちらかを読んだら、正しいことを読むことを望みます。何らかの宇宙放射線または不良チップによって0が1に反転した場合、私は決して知りません。
過去に私たちはそれをパリティで解決しようとしました。パリティは、保存された8ビットごとに9ビット目を追加していました。バイト内のゼロの数と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
->私たちは何かが間違っていることを知っています。しかし、それは000
1ビットが反転した(1:10のチャンス)か
111
、2ビットが反転した(1:100のチャンス)かのいずれか
です。したがって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バッファーなしは、Intel Xeon lga1155またはAsusボード上のAMD AM3 +で使用可能です。
ECCパーツについては既に説明しましたが、現在は登録済みとバッファーなしのパーツです。
最新のCPUでは、メモリコントローラーはCPUダイ上にあり、AMD Opteronチップの場合はかなり前から、Intelの場合はCore iシリーズで使用されています。ほとんどのデスクトップCPUは、RAMを保持しているDIMMソケットと直接通信します。それは機能し、追加のロジックは必要ありません。メモリコントローラーからRAMへの遅延が発生しないため、ビルドのコストは低く、速度は高速です。
ただし、メモリコントローラーは高速で限られた電流しか駆動できません。つまり、マザーボードに追加できるメモリソケットの数には制限があります。(さらに複雑にするため、DIMMがどれだけ使用できるかによって、メモリランクになります。これは既に長いのでスキップします)。
サーバーボードでは、デスクトップシステムよりも多くのメモリを使用することがよくあります。したがって、「レジスタ」バッファがメモリに追加されます。DIMM上のチップからの読み取りは、最初にこのバッファーにコピーされます。クロックサイクル後、このバッファーはメモリコントローラーに接続してデータを転送します。
このバッファ/レジスタは物事を遅らせ、メモリを遅くします。これは望ましくないため、多くのメモリバンクを持つボードでのみ使用/必要になります。ほとんどのコンシューマーボードはこれを必要とせず、ほとんどのコンシューマーCPUはこれをサポートしていません。
直接接続されたバッファなしRAMとバッファ付き/レジスタ付きRAMは、一方が他方よりも優れている場合も悪い場合もありません。メモリスロットの数に関して、トレードオフが異なります。レジスタ付きRAMでは、ある程度の速度(および場合によっては費用)を犠牲にして、より多くのRAMを使用できます。可能な限り多くのメモリが必要なほとんどの場合、その余分なメモリは、わずかに遅い速度で実行されているRAMを補います。
私が持っている疑いは(主にasus am3 +ボードに関する):ECCアンバッファードRAMはECC登録RAMと同じくらい良いですか(安全性と信頼性の観点から)?またはそれは悪い選択です。速度はあまり気にしません。**
安全性と安定性の観点から、ECCバッファなしとECC登録済みは同じです。
詳細:サーバーは、最大24 x 3½インチのドライブを備えたサーバーケースを使用し、消費電力をできるだけ少なくする必要があります。
24台のドライブは多くの電力を消費します。ドライブによって異なります。140GB 15K RPM SASドライブのアイドル時の消費電力は、1TB SATA 7k2ディスクと同じわずか10ワットです。使用時には両方ともより多くを描画します。
それに24を掛けます。アイドル時の24x10ワットは、空気の抵抗を克服してディスクプラッターを回転させたままにする240ワットを意味します。使用中のそれを二重に。
その意味で、LGA1155は他の価格(> 80W)よりも2倍の価格でより良い賭け(TDP〜20-95W)のようです。
Intelは、低電力CPU、執筆時、およびあなたが言及したCPUの方が優れています。
どんな提案も歓迎します。アイドル状態で120W未満(24台のうち10台のハードディスクを使用)とします。
FreeBSDに行くなら、ZFSをよく見てください。それは素晴らしいことができます。その高度な機能の多く(重複排除や圧縮など)は、深刻なCPUパワーを使用し、十分なメモリを必要とします。ZRAIDで基本的に使用するZFSは、前述のCPUセットと16 GBの両方で正常に機能しますが、重複排除などの機能を有効にする場合は、ディスク容量に必要な推奨メモリを注意深く調べる必要があります。一部のガイドでは、ストレージのTBあたり最大5GBを推奨しています。
さらに2つのこと:
- ドライブの接続については何も見ませんでした。一部のボードでは、最大10個のSATAポートを使用できます。ただし、それ以上のことを行うには、アドインカードが必要です。ハードウェアRAIDを検討する場合は、最初から計画するのが最善かもしれません。
- ドライブ障害:SATAポートマルチプライヤを使用する場合、SATAドライブに障害が発生した場合の動作を注意深く調べてください。それはしばしばきれいではありません。家庭のセットアップには大きな問題ではありませんが、エンタープライズグレードにはあまり問題ありません。個々のドライブもエラーを処理する方法を検討する必要があります。一部のドライブが「NAS」または「RAID」用としてラベル付けされている理由は、通常のドライブとは異なる方法でエラーを処理するためです。RAIDを使用しない場合、ドライブはできるだけ多く再試行する必要があります。RAIDを使用すると、ドライブがすぐに故障するので、別のコピーから読み取ることができます。