SSDからHDDへのさまざまなキャッシュオプション(dm-cache、flashcashe…)の利点/欠点は何ですか?


23

SSDを使用してHHDのキャッシュとして機能するさまざまなテクノロジーが利用できるようです。私が知っているもの:

  • dm-cache(Redhatによる-3.9カーネルで、ubuntu 13.10にあるはずです)
  • Flashcache(facebookで開発および使用)
  • Bcache(Googleが開発および使用)
  • EnhanceIO(STECによる、Flashcacheに基づく)

さまざまな実装に注目すべき違いはありますか?Webブラウザやゲームなどの通常のプログラムのパフォーマンスを向上させるために、通常のデスクトップPCの使用に最適なのはどれですか?


パフォーマンスを向上させるために、64ビットubuntuのインストールがうまく機能し、私のマシンが以前よりさらに高速になったことがわかりました!また、キャッシュについては、このパッケージzram-configでRAM圧縮キャッシュを使用する必要があります。これにより、スワップの使用が優先されます。そして、ゲームをSDDに保存してテストします。一部のゲームはそれほど速く動作しませんが、他のゲームは素晴らしい動作します!書き込み制限のためにSDDをキャッシュとして使用したくないのですが、SDDは安くなっているので、それほど心配する必要はありません:)
Aquarius Power

回答:


14

どこから始めればいいのか本当にわかりません。これはすばらしい情報だからです。まず、SSDについての情報から始め、次にすべての異なるキャッシュ方法の説明から始めます。私はあなたことを願っています

長所/短所

  • 価格:SSDはなんとなく高価です
  • 最大容量および共通容量:大容量SSDは非常にまれで高価です
  • 速度:ここでSSDが優位に立つ
  • 耐久性: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に基づいているので、私の意見では、フラッシュキャッシュを使用します。しかし、最終決定を下す前に、私は間違いなく両方を試します。


EnhanceIO:従来のHDDのキャッシュデバイスとしてSSDを使用するのに役立つFacebookのオープンソースFlashcacheプロジェクトから派生したEhanceIO SSDキャッシングソフトウェアに基づくドライバー。webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim

答えてくれてありがとう!EnhanceIOが3.10カーネルに組み込まれ、Ubuntuの次のリリースで利用可能になることを願っています。
ウリ

1
すばらしい記事ですが、DMキャッシュは完全に安全であることを強調する必要があります。クラッシュが発生しても、もちろんデータを失うことはありません。実際には、キャッシュは、メタデータが再生成されるまでしばらくの間効率が低下する可能性があります。
lzap

3
bcacheのメモリ使用に関するコメントは正しくないため、変換に関する(引用)コメントも間違っています。
ガブリエル

@Gabrielは自由に変更できますが、ソースを含めてください。)
ミッチ

1

フィードバック:SSDの50GBスライスに/ home(2TB)をキャッシュするために、約1年前にライトバックモードでUbuntuにflashcache標準debパッケージをインストールしました。問題なく素晴らしいパフォーマンスを発揮しました。Xに関連する「ハング」がいくつかあり(つまり、フラッシュキャッシュに起因しない)、「Ctrl-Alt-PrtScr REISUB」を数回使用して、問題や破損の問題なく回復しました。a)利用可能なデバッグがあり、b)/ homeのバックアップと復元が必要ないため、フラッシュキャッシュを使用しました。

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