web-dev-qa-db-ja.com

LinuxソフトレイドではHDDキャッシュはどのくらい重要ですか?

ディスクセットを更新/拡張している最中ですが、キャッシュに関してどの種類のディスクを取得するかがよくわかりません。

16/32/64MBのディスクキャッシュ量は、たとえば1/1.5/2TB SATAディスクの容量でどのような違いがありますか?ディスクは、Webアプリケーションサーバーとメディアワークステーションで使用され、Linuxのsoftraidはraid-1/raid-5構成で使用されます。どちらの目的も純粋に趣味であるため、数十個のディスクの値札が大きな問題であることに注意してください。

4
Jawa

キャッシュとRAIDには興味深い関係があります。

高価なRAIDコントローラーにはキャッシュが組み込まれており、ドライブキャッシュをオフにします(通常)。その理由は、RAIDは通常、データの安全性を確保し、パフォーマンスを向上させるように設計されているためです。キャッシュは、信頼性を犠牲にしてパフォーマンスを向上させます。これは、電源が切れると、ソフトウェアが安全であると判断した場合でも、キャッシュがなくなるためです。これは、データがディスク上に存在することを本当に知る必要があるソフトウェアに悪いことを引き起こします。データベースのようなもの。

バッテリは、コントローラの場合はNVRAMに、バッテリでバックアップされたアレイの場合は物理ディスクにデータを書き込むために存在します。

ソフトウェアRAIDには、実際にはそのようなオプションはありません。ドライブが「OK、データを取得しました」と言った後、データがまだキャッシュにある間に電源が切れた場合は、問題があります。データを保持するNVRAMはなく、バッテリーバックアップのおかげでディスクは回転し続けません(とにかく、それ自体で。これを行うために追加のソフトウェアが利用できる場合があります)。

Software RAID HOWTOの「セットアップに関する考慮事項」の質問9を読みます: http://www.linuxjunkies.org/html/Software-RAID-0.4x-HOWTO.html#s

これらの質問にはいくつかの興味深い読み物があります。
書き込みキャッシュを適切に処理するSATAディスク?
LVMミラーリングVS RAID1

とにかく、あなたの質問に答えて...より多くのドライブキャッシュはドライブに「遊ぶ」ためのより多くのスペースを与えます。言い換えれば、実際にディスクに物を置くことは、時間の点で高価です。物をメモリに保存するのは本当に安いです。

パフォーマンスは、ディスクにかける負荷とボトルネックの場所によって異なります。ディスクの各スピンドルには、IOPS(I/O Operations Per Second -- http://adamstechblog.com/2009/02/10/how-to-calculate-iops-ios-per-second/)と呼ばれる統計があります。 )回転するプラッターにビットを配置できる速度を決定します。ハードドライブにディスクに配置できるよりも多くのデータを供給すると、キャッシュが使用されます。あなたがそれを叩き続けるならば、それはキャッシュに供給し続けます。キャッシュがいっぱいになると、コンピュータはディスク上で「ダーティ」データ(書き込みが必要なデータ)をクリアするのを待ちます。

したがって、RAIDシステムでは、複数のディスクが供給されているため、IOPSが増加します。十分な数のスピンドルを追加すると、ディスクがボトルネックになりなくなり、アレイへのトランジットになります(まだそこにいないので、心配しないでください)。

基本的に、キャッシュが多いほど、ディスクに大量のデータをダンプする際に、より多くの小刻みに動く余地があります。特にIOを重視している場合は、改善が見られます。

一方、あなた、あなたのソフトウェア、またはあなたの(現時点では存在しない)RAIDアレイがドライブキャッシュを無効にしている場合、あなたは無料で多額のお金を払っています。

結局、選択肢があれば、より高いスピンレートを優先して、より低いキャッシュを取得します。

11
Matt Simmons