ECC登録済みvs ECCバッファなし


15

常時稼働するストレージサーバー(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番目のオプションは、プロセッサとマザーボード側ではるかに安くなり、16GB以上のRAMが必要になるとは思いません(4x4 GB ECCバッファなしが手頃な価格の最大のスティックです)。

私が持っている疑いは(主にasus am3 +ボードに関する):ECCアンバッファードRAMはECC登録RAMと同じくらい良いですか(安全性と信頼性の観点から)?またはそれは悪い選択です。スピードはあまり気にしません。

詳細:サーバーは、最大24 x 3.5インチのドライブを備えたサーバーケースを使用し、消費電力をできるだけ少なくする必要があります。その意味で、LGA1155は他の価格(> 80W)よりも2倍の価格でより良い賭け(TDP〜20-95W)のようです。どんな提案も歓迎します。アイドル状態で120W未満(24台のうち10台のハードディスクを使用)とします。


1
SuperUserで質問すると、SuperUserの回答が得られます。ServerFaultで確認すると、ServerFaultの回答が得られます。私のドリフトを取得しますか?
チャドハリソン

FAQでは、スーパーユーザーでハードウェアの質問を行うことができると述べています
...-user51166

@hydroparadise FAQを確認してください-ハードウェアに関する質問はすべて受け付けています。
サイモンシーハン

案の定、私はそれが仮定されたと思った。OS側からは、ECCが最終的にサーバーアプリケーションになるため、ECCの対処方法についてさまざまな考慮事項がある可能性があることに言及していました。
チャドハリソン

1
かろうじて。ほとんどの場合、チップセットはECC訂正(存在する場合)を処理します。OSからそれらを利用する必要はまったくありません。(ただし、DMIを使用してECCまたはQPIエラーに関する情報を取得できます。)
ヘネス

回答:


-2

まあ、サーバーRAMの範囲ではない16GB RAMのみを使用している場合、デスクトップRAM / sysはかなり標準で問題ありません。

ストレージサーバーのみの場合は、それほど多くのCPUパフォーマンスは必要ありません。

あなたが言ったように、Sandyブリッジを使えば、クールでパフォーマンスの良い、信頼できるシステムが得られます。

16GBのRAM範囲といえば、ECCのことを心配する必要はありません。


迅速な返信ありがとうございます。4GB以上のRAMではECCが必要です。256GB RAMまたは半分TBのRAM ECCが必須です。しかし、私は16GBが限界でしたが...とにかく奇妙です... Xeon 4C / 8T Sandybridgeは同等のデスクトップCPUより100ドル(私の場所で)安いです。総コストは同じです。ここにECCの欠点はありません。ECCは必要ないのですか?
user51166

@ user51166 100%確かです。16GBは、今日のミッド/ハイエンドリグの標準のようなものです。
INF

2
それが事実上の標準であるという事実は、必ずしも十分に信頼できることを意味しません。SATAコントローラーではなく、不良(非ecc)RAMが原因で、ディスク上のすべてのデータがHDD上で破損したインターネット上のケースについてはすでに読んでいます。
user51166

1
@ user51166それを言った人に、非ECCは間違いなく彼の問題ではなかったと言ってください。
inf

1
「Registered ECC> Unbuffered ECC」いいえ/時々。バッファリングされていない/登録されていないECCは、実際には高速になります。バッファリング/登録されたECCは、少なくとも1つの登録アクションが遅くなりますが、メモリチャネルにさらにDIMMを追加できます。(そして、より多くのメモリは、CANでも、レイテンシが増加した場合に、より高速なシステムを作ります)。そうではなく、難しい「はい/いいえ」の適切な答えは「それは依存します」です。
ヘネス14

45

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%確実なことは決してありません。読んだ場合000000それが期待していたものであったか、3ビットすべてが反転した可能性があります。後者は非常にまれです。ビットはランダムに反転しませんが、実際には起こります。簡単な計算のために10回に1回発生するとしましょう(現実はずっと少ないです)。これにより、次の正しい値を読み取る可能性が高まります。

000-> 000(99.9%確実)、またはトリプルフリップ(1/1000チャンス)

001->私たちは何かが間違っていることを知っています。しかし、それは0001ビットが反転した(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つのこと:

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

5
これが実際に質問に答えるように賛成すると、もう一方はより実用的/逸話的なアドバイスになります。レジスタに到達する前に少し蛇行することを無視しますvsバッファなしの部分;)
アーニー

1
そう、蛇行します。私は徹底的にしようとしましたが、私は本当に作家になるべきではありません。(フィクションまたはマニュアルのいずれか)。
ヘネス

また、あなたが権力やその他の懸念に対処し始めたときに私が最初に読んでいたことを無視します。。。;)
アーニー

1
これは優れた答えです。短くすることはできず、すべての質問にうまく対処できます。適度な編集を行っただけで、テキストがクリーンアップされ、一度適用されると役立ちます。2行を削除するために謝罪さえ削除しました。ここで受け入れられた答えはあまり役に立ちませんでした。ZFSの重複排除に関する懸念について簡単に説明し、その間、エラー処理を推進し​​ました。24台のドライブでも問題になりますが、振動にならないことにしました。
グレッグスミス

登録されているものとバッファされていないもの、およびRDIMMを使用する理由を明確にしていただきありがとうございます。
マフムードアルクッディ

1

2つの別個の問題。

ECC対非ECC

  • アップタイムが重要な場合は常にECCを使用する
  • より多くのコスト-8個ではなく9個のチップ(倍数)が必要
  • マザーボードはそれを使用するためにサポートする必要があります

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

  • 登録されたDIMMで(より)より多くの合計RAMをインストールできます。
    • メモリコントローラーインターフェイスの電気的負担が少ない
  • ただし、インストールされているすべてのDIMMは登録する必要がありますか
    • Registeredにアップグレードする場合は、バッファリングされていないDIMMSを削除する必要があります
  • また、より高価であり、アクセスに時間がかかるサイクル
    • バッファリングされていない場合は、レイテンシがわずかに低くなります。
    • とにかく、すべてのランダムアクセスには多くのサイクルがかかります
    • 絶対アクセスレイテンシ(ナノ秒単位の時間)は、PCでのDRAM使用の歴史と比べてあまり改善されていないことに注意してください。
      • 代わりに、コスト、容量、帯域幅が大幅に改善されました
      • メモリキャッシュは、とにかくほとんどのメモリアクセスの遅延を隠します
    • レイテンシが長いと、シングルスレッドの「リアルタイム」パフォーマンスが最も損なわれます
      • 通常、「サーバー」の使用例にはあまり影響しません
    • 帯域幅と全体的なパフォーマンスに違いはありません
      • 影響を受けない順次アクセス帯域幅
      • L2 / L3キャッシュは、実際のアクセスパターンがキャッシュ内の行を一度にほとんど置換することを意味するため、通常は「バースト」アクセスです
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.