web-dev-qa-db-ja.com

小型のSSDを大型のハードディスクのキャッシュとして使用するにはどうすればよいですか。

大容量のハードディスクのキャッシュとして(小さい)SSDディスクを使用したいと思います。これを行うハードウェアベースの製品があることを私は理解しています。 HighPoint RocketHybrid HBAIntel SmartResponse など。私が見つけることができた唯一のソフトウェアのみの製品があります。 DiskeeperによるExpressCache

ExpressCacheは、ユーザーの努力や必要な知識なしに、SSDとHDDの優れた特性をインテリジェントかつ自動的に組み合わせます。そのため、ユーザーは両方の長所を活かすことができます。動的なパフォーマンスとスケーラブルな容量。最大4GBのSSDを使用できるので、製造業者にとって非常に手頃な価格のソリューションを提供します。

ユーザーモードとカーネルモードのコンポーネントで構成されたExpressCacheは、システム全体のパフォーマンスを向上させ、Windows PCの起動、アプリケーションの起動、およびデータアクセスの速度を大幅に向上させるためにSSDをインテリジェントキャッシュとして使用します。

ただし、この商品はOEM専用です!

私はこれを理解することはできません。ハードウェアを追加する必要はありません。そして、大金を費やすことなくディスクのパフォーマンスを向上させることができます。

だから、私は誰かがこれをするソフトウェアを知っているかどうか、WindowsかLinuxのどちらかを尋ねている。あるいは、これが悪い考えだと思うなら、私はその理由を知りたいのです。

注:ReadyBoostはこれにはあまり適していません。これは、ディスクへの書き込みが本当に高価で、十分なRAMを備えたシステムにはほとんど効果がなく、SSDが100GB以上の場合は適切に拡張できないという前提で構築されています。

58
haimg

SSDを通常のハードドライブのキャッシュとして使用する方法はいくつかあります。これは新しい考えではなく、すでにいくつかの実装があります。

Windowsの場合

最良の実装はNVeloによるものです: Dataplex - それはリードキャッシングとオプションのライトキャッシングを持っています。残念ながら、ExpressCacheのようにそれはOEMにのみ利用可能です。最も安価な方法は、PCIEアダプタと小型のSSDをパッケージ化し、データプレックスソフトウェアを使用して既存のハードドライブをキャッシュするOCZ SSDを購入することです。

ただし、純粋なソフトウェア実装もあります。 FancyCache - ブロックレイヤで読み取りおよび書き込みキャッシュを実行することを想定しているように動作します。これは主にメモリキャッシュとして存在しますが、最近では2層SSDキャッシュ(ZFS L2ARCのようなビット)をサポートするようになりました。

書き込み耐久性を犠牲にしてIOPSを最大限に活用することを検討している場合(たとえばUPSとの関連ではまったく問題ありません)、代替案は次のようになります。 SuperCache RAMのみ、SSDなし。しかし、他の製品とは異なり、コモディティハードウェアで喜んで10万IOPSを超えるでしょう。たとえばデータベースインデックスを含むブロックデバイスをキャッシュするのに非常に役立ちます。基本的に、あらゆるサイズのボリュームに対してRAMディスクのようなパフォーマンスを提供します(基本となるデバイスが書き込みボリュームに追いつくことができると仮定して)。

Linuxでは、物事は少し良いです:

前のポスターで述べたように、あなたは Flashcache を持っています - それはかなりうまくいきますが、そのパフォーマンスはあなたのワークロードによって大きく異なります。アクセスの局所性が低い多くの場合、期待どおりには機能しません。その理由はわかりませんが、ほとんどのワークロードでこれは優れた選択肢です。

最善の選択肢は(まだコードはまだ "実稼働準備完了"ではありませんが) bcache (詳細は here ですが、いくつかは時代遅れです) - 私が今までに試したどんなSSDキャッシュの中でも最高のパフォーマンスを持っています、そして言及された他のすべてのオプションとは違って、単一のキャッシュで複数のブロックデバイスをキャッシュすることをサポートします。それはまた(私は個人的にこれを試したことはないが、まだうまくいかないかもしれないが)複数のキャッシュデバイスをサポートしているので、あなたはあなたのIOPSを最大にするために複数の安価なSSDを使うことができる。コードはgitリポジトリにあります: git://evilpiepirate.org/~kent/linux-bcache.git 。まだ決まっていませんが、それを次のカーネルリリースにマージするという話があります。

個人的には、bcacheが最もパフォーマンスの良い選択肢だと思います(私のワークロードの大部分はデータベースに関連していますが、メインのラップトップもすべてキャッシュしています)。私の経験では、キャッシュが早くいっぱいになり、HDDがキャッシュされたセクタに書き込む必要があるので、HDDのシーケンシャルライトスループットがボトルネックになることがよくあります。これは書き込みの多いワークロードの場合はもちろんですが、よりバランスの取れた読み書きのワークロードでは状況が異なる可能性があります。

私はまたあなたに警告するべきです、全速力で、あなたはあなたのSSDの書き込み限界をかなり早く燃やすでしょう。私は現在、私の3度目のOCZ Vertex 3に参加しています。非常に速いですが、SSDは非常に丈夫ではないので、数ヶ月ごとに交換することを期待してください。

52
Supercilious

非常に忙しいサーバーで使用されているLinux用の非常に興味深いソフトウェアがあります。

https://github.com/facebook/flashcache

SATAII、RAID 6設定の8台の磁気回転ドライブでは、パフォーマンスが大幅に向上します。 SATAIIIフラッシュキャッシュSSDデバイスを使用したランダム読み取り(540読み取り、420書き込み)で、SATAIIバスがほぼ90〜95%に飽和します。280MBの読み取り(ピーク時)、270MBの書き込みがあります(シミュレートされた負荷でのみ。 。それは今約半年間続きます。ディスクドライブの書き込みは... 20〜30MB/s - 予備のI/O時間を使用しています...

10
Matej Kovac

SSDの大きさは?

あなたのHDDに大量のデータを保存しながら、SSDにOSとソフトウェア全体をインストールすることによっておそらくあなたが達成する最も良い効果でしょう。

あなたのSSDが小さければ、それでそれにページファイルを置くことは役に立つかもしれません。私はWindowsがあなたのファイルの大部分をキャッシュに入れることは疑いないが、少なくとも最近使用されたアプリケーションのメモリとファイルをRAMにキャッシュすることを可能にする一方SSD上のpagefileに常駐します。

5
penartur

単一のSSDにオペレーティングシステムとアプリケーション全体をロードすることは確かに可能ですが、おそらくそうすべきではありません。時間が経つにつれて、SSDは継続的な再書き込みによって速度が低下するため、バックアップ速度を上げるために「更新」する必要があります。 SATA 600 Gbpsドライブなどの最も高速なハードディスクを使用し、ハードウェアレベルでSSDキャッシングをサポートするマザーボードまたはその他のコントローラを入手することをお勧めします。 Asus ROG Maximusマザーボードはすべてこの機能を内蔵しています。

しかし、この新しいシステムを構築するまで、SSDから何らかの利点を得る方法を見つけました。私はSSD上にメモリキャッシュを構築しました、そして私のメインハードドライブ上にそれがあるとしても、Windowsは代わりに自動的により速いSSDを使うようです。また、Internet ExplorerのキャッシュをすべてSSDに移動しました。これにより、サーフィンとインターネットビデオの速度が少なくとも2〜3倍速くなりました。

私は、1150ソケットフォーマットの第4世代Intel i7プロセッサを搭載したAsus Maximus VI Heroマザーボードの周りに私の新しいシステムを構築する予定です。そこに着くために何千も費やすことなく、パフォーマンスの良いレベルであるように思えます。新しいバージョンのWindowsを含めると、総コストは800〜900ドルの範囲になると予測されています。

2
JDinFL

FancyFlashが仕事をしました。私は私の実験室のために私の部屋に私自身のHyper-V R2サーバーを持っていて、私はOCZ Revo Hybrid PCIeドライブを手に入れました。残念なことに、組み込みドライバのキャッシュはWindows 7でしか動作しません。WindowsServer 2008 R2の計画はありません。そこで私は自分のHyper-VホストにFancyFlashドライバをインストールし、Revo Hybrid上の私のSSDを1tb内蔵ディスク(私のVHDがあるところ)のキャッシュとして機能するように設定しました。タダ!私のVMをうまく動かし、加速させましょう。 :)

私は最終リリースが手ごろな価格の$$$になることを願っています...

2
Spider_s

eBoostr は、システムを高速化するために、頻繁に使用されるアプリケーションの大部分をキャッシュするアプリケーションです。通常、USBドライブまたは未使用のRAMを使用することを目的としていますが、代わりにSSDを使用できない本当の理由はありません。

それはすべての主要なバージョンのWindowsで利用可能で、あなたがしているものとよく似ています。

  • eBoostrはあなたのシステム上のアプリケーションの使用を追跡し、最も頻繁に使用されるもののデータをプリキャッシュすることができます、これはロード遅延を減らしてパフォーマンスを最適化します
  • 使いやすいドラッグアンドドロップインターフェースにより、システム上のアプリケーションを選択的に拡張したり、eBoostrによって拡張されたアプリケーションを優先したりすることができます。
  • ロード時間の短縮とハードドライブへのアクセスの減少により、eBoostrを使用してラップトップやネットブックのバッテリ寿命を延ばすことができます。

続きを読む: http://www.eboostr.com/feature

2
Mokubai

ReadyDriveと ReadyBoostWindows I/Oテクノロジ を使うことができます。これらのテクノロジはSSDが導入される前のものであるため、それらがSSDで機能するのかどうか、またはどの程度うまく機能するのかについての情報はほとんどありません。

ReadyBoostについては、 SSDをReadyBoostキャッシュディスクとして使用する方法を教えてください。 、この other thread は反対を主張します。

ReadyDriveは、ハイブリッドドライブまたは他のフラッシュメモリキャッシュ(Intel Turbo Memoryなど)を搭載したWindows Vista以降のコンピュータをより高速に起動し、休止状態から短時間で再開できるようにするWindows Vistaの機能です。

システムメモリが十分であれば、ページファイルをSSDに置くこともできますが、予想される改善は限られています。

Penarturが指摘しているように、SSDにWindowsをインストールすることから、最高の改善がもたらされます。

2
harrymc

ExpressCacheをダウンロードする

あなたは ExpresCacheをグーグル で検索しましたか?私はそれをからダウンロードできるのを見ることができます

  • SanDisk - 右側のリンク。 SanDisk SSDでのみ動作します
  • Lenovo - ガイドの下のリンク。ハードウェアにも依存する可能性があります

特にLenovoでは、x86またはx64バージョンをダウンロードできます。 Sandiskは単にExpressCacheSetup.exeを提供しているようですが、どのアーキテクチャをサポートしているかわかりません。たぶん両方とも….

1
Robert Koritnik

ExpressCacheはOEM製品のみです。私はそれが認可されたOEM以外のハードウェアで使用されるのを防ぐ内部統制を持っていることを合理的に確信しています。

今のところ、FancyCacheは一般的な用途/非OEM向けの唯一の実行可能なツールです。私は物事を誤解するかもしれませんが、私はSSDのreadyboostのようなものがその書き込みサイクルを通してかなり速く燃えるだろうと思うでしょう。私の考えでは、ここでの考え方はメインHDDとSSDをカバーするドライブレターを1つだけにして、最もアクセス頻度が高く一般に静的なファイルをSSDに置き、あまり使用頻度が低く頻繁に変更されるファイルをハードドライブに保存することです。これにより、SSDのパフォーマンス上の利点とHDDの長期的な実行可能性が得られ、ユーザーはSSD上のスペースとHDDのスペースのバランスをとる必要がなくなります。これに対する必要性は、少なくとも私にとっては非常に明白であるので、私はこの必要性に対する解決策の欠如にびっくりしています。

0
Tumbleweed_Biff