(raid-controller-)BBUとは何ですか?


13

BBUの目的は何だろうと思っています。私の最初の理解は、停電時にキャッシュがデータをディスクに書き込むことができるということでした。ただし、一部の仕様では、BBUが最大72時間データを保持できるとしています。ミリ秒以内にデータがディスクに書き込まれることを期待しています(ディスクにまだ電力があることを考えると)。

BBUはキャッシュを保護するだけでなく、ディスク全体を数秒間保護する必要がありますか?キャッシュデータがキャッシュ内に存在し、再び電源を待機する代わりにディスクに書き込まれるため、それはさらに安全ではないでしょうか?しばらくすると、ディスクがシャットダウンする可能性があります。


RAIDバッテリーは実際のドライブに電力を供給しませんが、私たちの世界にはあなたが最初に想像していたものに似たものがあります。
スカイホーク

回答:


17

ディスクに電力を供給するのではなく、マシンをオンラインに戻すまで(この場合)最大72時間キャッシュにデータを保持します。マシンの電源を入れると、キャッシュの内容がディスクに書き戻されます。

それは、停電から保護するだけです。(何らかの理由で)データをディスクにきれいにフラッシュせずにマシンの電源が失われた場合、バッテリーはマシンを再起動できるまでキャッシュの内容を保持します。

ディスクは外部ディスクアレイにある場合や、別の電源回路にある場合があるため、ディスク用のUPSではありません。UPSでさえ失敗する可能性があります。


1
ディスク用のUPSとの違いは、ディスクが同じ電源回路上にないシナリオ向けに設計されているということですか?他のすべての場合(1つの回路内のコントローラーとディスク)では、UPSが優れていますか?停電中にキャッシュで待機するのではなく、最後のコマンドをディスクに書き込むことを引き続き希望します。
タナシウス

サーバー用のUPSも購入してください!BBUには、ドライブのアレイを実行するのに十分な電力がありません。これにより、パワーを回復し、変更を保存するのに十分なウィンドウが提供されます。ほとんどの停止は非常に短時間であり、ほとんどの人は、重要ではないマシンにUPSの追加費用を必要としません。
ジェームズライアン

1
BBUは、コンピューターを再起動するまでデータをキャッシュに保持します。コントローラは、ディスクにフラッシュされたものを認識します(ディスクは操作が終了したことを通知します)。ディスクにフラッシュされないものは、マシンが再起動されるまで保持されます。
ConcernedOfTunbridgeWells

13

それはこのように動作します:

ほとんどのオペレーティングシステムには、いわゆる「同期書き込み」を可能にするシステムコールがあります。これは、書き込み操作中に書き込みが完了した場合、ディスクにコミットされたことを保証することを意味します。

したがって、同期書き込みはキャッシュされません。完了するまでアプリケーションをブロックします。この種の操作は、ディスクが十分にアイドルになるまでOSメモリにデータを保持してからデータを書き込むキャッシュ書き込みより明らかに遅いです。

データベースソフトウェアなどの一部の重要なソフトウェアは、重要なデータの同期書き込みを実行します。これは、停電が発生した場合の半分の更新がデータベースの整合性に悪影響を与える可能性があるためです。

RAIDコントローラーはRAID-5書き込みで遅いことで有名なので、アプリケーションソフトウェアが多くの同期書き込みを使用する場合、これは問題になります。このため、RAID-5コントローラーには独自のキャッシュが装備されています。

RAIDコントローラーは、代わりにデータをキャッシュに書き込み、LIESをOSに書き込み、データを実際にRAIDキャッシュ内にあるのにディスクにデータをコミットしたことを伝えます。

しかし、データがまだRAIDコントローラーのバッファーにある間に電源が失われた場合はどうでしょうか?ディスク上に半分書き込まれた、おそらく一貫性のないデータがあるでしょう。

この動作は同期書き込みの目的に反すると言うかもしれません...キャッシュされた書き込みを許可しても、そもそもアプリソフトウェアは同期書き込みを要求しません。

妥協点は次のとおりです。RAIDコントローラーはまだデータをディスクにコミットしたOSにありますが、停電の場合にこの重要なデータを保護するために、RAIDコントローラーにはバッテリーがあり、電源がオンになるまでキャッシュをしばらく保持します復元されました。

そのため、電源が回復してディスクがスピンアップして初期化された後も、コントローラーはバッテリーのおかげでキャッシュにそのデータを保持し、ディスクへのトランザクションの書き込みを完了することができます。

みんな幸せです。

機能的で充電済みのバッテリーユニットがない限り、通常、RAIDコントローラーでは書き込みキャッシュを有効にできません。


コントローラーの場所について尋ねます。それはマザーボードの一部ですか、それともハードドライブに組み込まれていますか?
バレンティンティホミロフ

また、proper shutdownフラッシュが発行されたときにRAIDがそれにある場合、OSはどのように要求を送信できますか?
バレンティンティホミロフ

@ValentinTihomirov properimproperシャットダウンなどはありません。OSがパワーダウン信号を発行し、電源がオフになった後にPSUが発行します。電源がオフになると、揮発性メモリとその内容がすべて失われます!
PF4Public

4

いくつかの新しいディスクコントローラーには、通常の72時間よりもはるかに長い間データを保持する高速フラッシュキャッシュが搭載されていることに注意してください。部品の詳細が必要な場合はお知らせください。


情報に感謝しますが、私はシステム管理者ではなく、おそらくプロのRAIDを設計することはありません...私はBBUに興味があるだけです:)
タナシウス

3

そのBBUキャッシュは、ジャーナリングされたファイルシステムによって提供されるものと同様のレベルの保護を追加すると考えてください。停電(この場合は単純な書き込み)が停電によって中断された場合にトランザクションを完了できるようにするためにあります。電力が低下すると、コントローラーは書き込みを続行できなくなります。これは、まったく予測できない結果になるためです。代わりに、可能な限りデータを保持し、電源が回復した場合にデータの書き込みを終了します。しないことは、ドライブのUPSのように動作します。


しかし、ドライブとコントローラー用のUPSがある場合-BBUは何のために必要ですか?UPSに障害が発生するスネアリオのみの場合ですか?
タナシウス

良い質問。サーバーが常に正常にシャットダウンされることがわかっている場合、BBUの必要性も確信できません。
ジョンガーデニアーズ

2
通常、BBUはライトバック構成用です。一部のRAIDコントローラーは、BBUがないとライトバックを有効にしません。ただし、サーバーが常に適切にシャットダウンされると想定するのはおそらく悪い考えだと思います。
ConcernedOfTunbridgeWells

2

電源障害はまれですが、特にDBサーバーでは、100ドルのバッテリーを取得する必要があります。トランザクションが有効になっていて、それらの変更がキャッシュを離れてディスクにコミットされる前にサーバーの電源が失われた場合でも、クエリが不完全になるか、データが破損します。


1

サーバーがクラッシュしたり、ハングしたり、誰かが電源ケーブルを引っ張ったりすると、書き込みキャッシュを使用している場合、BBUがデータの破損または損失から保護します。USVを使用すると、電源障害からのみ保護されます。

書き込みキャッシュを使用したくない場合、BBUは必要ありません。


1

RAIDカードには1 GBのキャッシュを含めることができます。通常はすべてが書き込みキャッシュに使用されるわけではありませんが、書き込まれていないデータの非常に長いキューを格納すると想定できます。

ファイルシステムとデータベースは、電源障害が発生した場合でも、同期書き込みが再配列されないことを前提としています。通常、同期書き込みは、データがディスク上にある場合にのみ戻りますが、これは比較的低速です。RAIDカードは、小さな書き込みをグループ化し、ランダムでないように並べ替えることにより、パフォーマンスを向上させます。

BBUがない場合、負荷下での電源障害は壊滅的な結果をもたらし、書き込みはRAIDカードが失われることを約束していました(ファイルシステムの場合のように、新しいファイルまたはディレクトリへの参照があるかもしれませんが、ファイルまたはディレクトリ、これを回避するためにファイルシステムが参照する前に新しいファイルを明確に作成したにもかかわらず)、バックアップから復元するか、データがあまりにも乱雑にならないことを願っています。さらに悪いことに、誰かがシークレットファイルを削除し、他の誰かが誰でも読み取り可能なファイルを作成した場合、シークレットファイルの内容の一部が誰でも読み取り可能なファイルで見つかることがあります。ファイルシステムが構築されているという前提を破ると、何でも可能です。

UPSが無停電電源を保証していると仮定すると、単純です。マシンがクラッシュし、電源コードを引く必要がある場合、または誰かがつまずいた場合はどうなりますか?

コンシューマーSATAディスク(およびSSD)も同期書き込みをキャッシュすることがありますが、キャッシュがはるかに小さく、コンシューマーの使用に対する要求が少ないため、通常はそれを回避できます。

最新のRAIDコントローラーにはフラッシュがあり、電源障害が発生した場合に書き込みキャッシュの内容をコピーするため、バッテリーを数秒以上持続させる必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.