回答:
どこから始めればいいのか本当にわかりません。これはすばらしい情報だからです。まず、SSDについての情報から始め、次にすべての異なるキャッシュ方法の説明から始めます。私はあなたことを願っています
長所/短所
ハイブリッドシステムを持ち、両方の長所(容量、信頼性、速度など)を活用するのが最善
Linux 3.9カーネル(2013年4月28日に利用可能になりました)はSSDキャッシングを導入しています。カーネルのデバイスマッパーには、dm-cacheと呼ばれるキャッシュターゲットが含まれるようになり、SSDまたはその他のストレージデバイスをハードドライブのキャッシュとして使用できるようになりました。より高速なSSDが最初にデータをキャッシュし、それを低速のハードドライブに転送できるため、データの書き込みと読み取りが本質的に高速化されます。
出典:Iwn
Flashcacheは、2010年4月にFacebook(Mohan Srinivasan、Paul Saab、Vadim Tkachenko)によって最初に作成およびリリースされたモジュールです。別のドライブ上のドライブのライトスルーキャッシングを可能にするカーネルモジュールです。これは、パフォーマンス上の理由から、より小さなソリッドステートドライブに回転ドライブをキャッシュするために最もよく使用されます。これにより、SSDの速度と、最近キャッシュされたファイルの標準的な回転ドライブのサイズが得られます。FlashCacheは、Linux用の汎用ライトバックブロックキャッシュです。
ソース:ArchLinux
Bcacheは、Linuxカーネルブロックレイヤーキャッシュです。フラッシュベースのソリッドステートドライブ(SSD)などの1つ以上の高速ディスクドライブを、1つ以上の低速ハードディスクドライブのキャッシュとして機能させることができます。
ハードドライブは安価で大きく、SSDは高速ですが、小さくて高価です。両方の利点を透過的に得ることができたらいいと思いませんか?Bcacheを使用すると、ケーキを持って食べることもできます。
LinuxカーネルのBcacheパッチにより、SSDを使用して他のブロックデバイスをキャッシュできます。ZFSのL2Arcに似ていますが、Bcacheはライトバックキャッシング(キャッシングによる書き込みだけでなく)も行い、ファイルシステムに依存しません。最小限の労力でオンに切り替えられるように設計されており、セットアップを設定しなくても正常に動作するように設計されています。デフォルトでは、シーケンシャルIOはキャッシュされず、SSDが優れているランダムな読み取りと書き込みのみがキャッシュされます。これは、デスクトップ、サーバー、ハイエンドストレージアレイ、さらには組み込みに適していることを意味します。
設計目標は、エラーの範囲内でSSDとキャッシュされたデバイス(キャッシュヒット対ミス、ライトスルー対ライトバック書き込みに依存)と同じくらい高速になることです。まだまだありません。主に順次読み取り用です。しかし、テストにより、主にランダムな書き込みを行うことが、場合によってはより強力に可能であり、場合によってはさらに改善できることが示されています。
ソース:Bcache
Bcacheには大きな欠点があり、キャッシュを実装するためにシステムからメモリを奪います。
EnhanceIOは、アプリケーション層の下で実行されるソリューションであり、アプリケーションが主要なITインフラストラクチャを変更することなくSSDのパフォーマンス上の利点を活用できるようにします。SSDキャッシュは、すべてのSSDシステムの数分の1のコストで、HDDからSSDに切り替えるメリットのほとんどを得ることができます。キャッシュされたシステムは、通常、同様のパフォーマンスのHDDベースのシステムよりも少ない電力で動作し、冷却要件を減らすことで副次的な利点を生み出します。
また、SSDキャッシュは、既存のシステムの大規模なアップグレード/交換ではなく、段階的な投資によって増大する需要を満たすためにパフォーマンスを改善することにより、既存のシステムの耐用年数を延長できます。
また、キャッシュにより、新しいディスクシェルフを取得してインストールし、新しいLUNを構成し、データを新しいLUNに移行するための追加のストレージ管理オーバーヘッドなしで、データへのアクセスが高速化されます。キャッシングはほとんど透過的であり、ダウンタイムはほとんどありません。EnhanceIOはFlashcacheに基づいています。
出典:Stec-Inc
bcacheは、特別に準備された(フォーマットされた)データパーティションを必要とするため、最も価値がありません。これにより、(可能であれば)200%の容量が必要になるため、データを含む既存のパーティションにキャッシュをアタッチし、キャッシュを有効化/無効化するために長時間のデータ移動を実行することが難しくなります。
EnhanceIOの優れた点は、中間デバイスをまったく必要とせず、デバイスが既にマウントされている場合でも、オンザフライで任意のブロックデバイスに接続できることです。もう1つのすばらしい点は、パーティションだけでなく、パーティション化されたブロックデバイスにEnhanceIOキャッシュをアタッチして、すべてのパーティションを一度にキャッシュできることです。flashcache enchanceioモジュールがDKMSで構築され、古いカーネルで使用できるように。
ソース:Debian
DMキャッシュの利点
DMキャッシュは単純化されたアーキテクチャを使用しているため、適応性があり、カスタマイズが容易です。ユーザーは、処理するデータの量またはデータの値に基づいて、ブロックサイズとキャッシュ容量を調整できます。特定のアプリケーションが大量のデータを順番に保存する必要がある場合、ユーザーはその目的のためにキャッシュを構成できます。ユーザーがキャッシュと同時に情報をデータベースに記録したい場合、キャッシュの操作に干渉しません。
DMキャッシュのデメリット
DMキャッシュを使用する1つの欠点は、Linuxオペレーティングシステムのメタデータを保存するためのスペースが限られていることです。キャッシュが大きく、多くの小さなブロックが含まれている場合、保存された情報のメタデータが多くなります。この問題を解決するには、ユーザーはブロックサイズを大きくする必要があります。別の問題として、サーバーがクラッシュした後、キャッシュメタデータがキャッシュの内容と一致しなくなることがありますが、最終的に正しい構成を復元することは可能です。
ソース:フレイザーシャーマンの補数
したがって、上記の情報から、EnhanceIOが進むべき道であることは明らかですが、Flashcacheに基づいているので、私の意見では、フラッシュキャッシュを使用します。しかし、最終決定を下す前に、私は間違いなく両方を試します。
zram-config
でRAM圧縮キャッシュを使用する必要があります。これにより、スワップの使用が優先されます。そして、ゲームをSDDに保存してテストします。一部のゲームはそれほど速く動作しませんが、他のゲームは素晴らしい動作します!書き込み制限のためにSDDをキャッシュとして使用したくないのですが、SDDは安くなっているので、それほど心配する必要はありません:)