web-dev-qa-db-ja.com

mdのbcacheまたはbcacheのmd

bcache フラッシュベースのソリッドステートドライブ(SSD)などの1つ以上の高速ディスクドライブが1つ以上の低速ハードディスクドライブのキャッシュとして機能できるようにします

正しく理解できれば

  • sSD* 複数のバッキングHDDをキャッシュするように割り当てることができ、その結果、キャッシュされたデバイスをmdadmでRAID化できます。
    または
  • 複数のHDDを単一のバッキングmdデバイスにRAID化し、SSDをキャッシュに割り当てることができます

どちらがより賢明なアプローチなのか疑問に思っています。 RAID5/6を拡張することは、何らかの方法を使用する方が簡単かもしれないと思いますが、どちらが良いかわかりません!

VMバッキングファイル)を含む大規模な非ルートファイルシステムの場合、他のアプローチよりも1つのアプローチを選択することには、正当な理由(たとえば、バッキングストレージの拡大など)がありますか?


*by "an SSD"ある種の冗長SSDデバイスを意味します。たとえば、2つの物理SSDのRAID1

11
user12810

Mdデバイス全体をキャッシュすることは最も理にかなっていると思います。

Mdデバイス全体をキャッシュするようにbcacheを設定すると、レイドのアイデア全体が犠牲になります。これは、別の単一障害点をもたらすためです。

  • SSDディスクのOTH障害は比較的まれであり、bcacheはデータが保存されていないwritethrough/writearoundモード(writebackモードとは対照的)にすることができますキャッシュデバイスに対してのみであり、キャッシュに障害が発生してもraid内の情報は削除されません。これは比較的安全なオプションです。

  • その他の事実は、ソフトRAID-5にはかなりの計算オーバーヘッドがあることです。各回転レイドメンバーを個別にキャッシュする場合、キャッシュヒットであっても、コンピューターはすべてのパリティを再計算する必要があります

  • 回転している各ドライブを個別にキャッシュすると、明らかに、高価なssdスペースが犠牲になります。 -RAID ssdキャッシュを使用する予定がない限り。

  • どちらのオプションも、成長プロセスの時間には比較的影響しません。ただし、バストラフィックが増えるため、スピンドライブが個別にキャッシュされるオプションは遅くなる可能性があります

Ssdドライブを交換する必要があるときに、ssdドライブを削除するようにbcacheを構成するのは高速で比較的単純なプロセスです。 blocks のおかげで、RAIDセットアップを双方向でオンプレースで移行できるはずです。

また、現時点ではほとんど(すべて?)のライブCDディストリビューションbcacheをサポートしていないため、選択したbcache-mdraidレイアウトオプションに関係なく、このようなツールでデータにアクセスするだけではありません。

4
Adam Ryczkowski

健全なアプローチは、結果のMDデバイスをキャッシュすることだと思います。

bcacheは、シーケンシャルな読み取りと書き込みをパススルーするように設計されています。

各デバイスを論理的に個別にbcacheする場合、braidの観点から、raidまたはstripped MDにストライピングするいくつかのデバイスは常にランダムブロックを書き込みます。

Bcached MDボリュームは通常のように見えますが、複数のデバイスへのランダムなブロックではなく、ボリュームにファイルを書き込みます。

ハードおよびソフトウェアraidの全体のポイントは、結果のファイルシステムが通常のボリュームのように見えるように、バックエンドでデータのストライピングを行うことです。

これは正しくない可能性があります(bcache開発者は巧妙でそのような状況を説明する可能性があるため)。ただし、論理的に最適なことは、デバイスをブロックするのではなく、ボリュームをキャッシュすることです。

1
enlightnd