ハードドライブの速度が遅くなるように、キャッシュにSSDをどのように使用しますか?

ハードドライブの速度が遅くなるように、キャッシュにSSDをどのように使用しますか?

BTRFSプールで一緒に実行される複数のディスクを持つファイルサーバーがあり、キャッシュにSSDを追加したいと思います。私は主にスピードを追求するのではなく、ハードドライブをほとんどの時間使用しないときにシャットダウンできるように、定期的な小規模アクセスをキャプチャしたいと思います(年中無休で24時間実行しないと、エネルギーが節約され、ディスクが長持ちします。 )。

私が知っている限り、現在Linuxにはdm-cacheとbcacheという2つのSSDキャッシュ技術が実装されています。 dm-cacheはまだより効率的であることが知られていますが、どちらも開発が進行中であるため、絶対的な最大効率のために調整する必要はありません。

読むbcacheのドキュメント、次のオプションを考えました。

書き込み保存待ち時間: ダーティデータがキャッシュに書き込まれ、以前にダーティデータが含まれていない場合は、書き込みの保存を開始する前に一定時間待ちます。デフォルトは30です。

書き換え率:0以外の場合、bcacheはバックグラウンド書き込みの保存を制限し、PDコントローラを使用して速度をスムーズに調整してキャッシュダーティ比を維持しようとします。

書き換えの実行:オフにするとダーティデータへの書き込み保存はまったく発生しません。キャッシュが本質的にいっぱいになるまで、ダーティデータは引き続きキャッシュに追加され、ベンチマーク目的にのみ使用されます。デフォルト値はオンです。

十分大きい値を設定すると、操作がwriteback_delay行われているようです。一度に一度だけ書き換えるか(これが起こると仮定します)、キャッシュがいっぱいになった場合。

これは合理的な設定ですか?ディスク速度を正常に下げるために他の方法を考えてみましたか?私の要件を満たしている場合は、まったく別のルートに行くこともできます。

@gorkyplのようです。同様の問題に対する別の解決策を探しています。しかし、要件と状況が異なり、答えを受け取ることができませんでした。

答え1

アプローチが複雑すぎると思います。

キャッシュの読み取り:ここではやりません。十分なメモリがあると、Linuxはこれを自動的に実行します。

キャッシュ書き込み基本的にこれはあなたが望むものです。ただし、書き込みがディスクに書き込まれると、ウェイクアップも発生します。

したがって、影響を受けるファイルシステムをram-disk /dev/shmまたはssdに直接配置できます。

節電:スピードを頻繁に減らしたり増やしたりすると、バッテリーを節約するとは思いません。逆に、ディスクがより早く故障した場合、生産過程で追加のエネルギー消費が発生する可能性がある。そして回転するのに多くの力が消費されます。

関連情報