web-dev-qa-db-ja.com

システムにSSDとハードディスクがある場合、SSDはハードディスクのキャッシュとして機能できますか?

いくつかのパーティションがあるとしましょう。 1つはSATAドライブに、もう1つはSSDにあります。 「仮想」ハイブリッドディスクを作成したい。これは可能ですか?

6
user4951

bcache あなたが探しているものかもしれません。キャッシュのライトスルーまたはライトバックとして機能します。

[〜#〜] zfs [〜#〜] および Btrfs には、より頻繁に使用されるブロックをフラッシュストレージに配置する機能もあります。

9
taffer

低遅延が必要なファイルのセットがある場合は、ハードディスク上のSSDコンテンツをミラーリングするRAID-1ボリュームを確立できます。ハードディスクコンポーネントを「ほとんど書き込み」として宣言し、読み取り時にSSDが優先されるようにします。たとえば、sdaがSSDで、sdbがハードディスクの場合、ドライブ全体をカバーするパーティションsda1を作成し、同じパーティションsdb1を作成します。サイズを設定し、でRAIDボリュームを作成します

mdadm --create -l 1 -n 2 /dev/md0 /dev/sda1 --write-mostly /dev/sdb1

flashcache があります。 FacebookがDBストレージシステムを高速化するために使用します。

まだ試していませんので、マイレージが異なる場合があります。

3
toxa

Linux 3.9以降 dm-cache がメインラインツリーにマージされました。ドキュメントによると、この目的のために特別に設計されています。

データの一部をより高速で小型のデバイス(SSDなど)に動的に移行することにより、ブロックデバイス(スピンドルなど)のパフォーマンスを向上させることを目的としています。

また、ある程度の書き込みキャッシュも提供します。

デフォルトのライトバックが選択されている場合、キャッシュされたブロックへの書き込みはキャッシュにのみ送信され、ブロックはメタデータでダーティとしてマークされます。

あなたが見たい仮想ハイブリッドディスクについて:

このデバイスマッパーソリューションを使用すると、このキャッシュをdmスタックのさまざまなレベル、たとえばシンプロビジョニングプールのデータデバイスの上に挿入できます。

つまり、dm-stackを使用すると、ソフトウェアRAIDセットの/dev/md0のように、任意のブロックデバイス/パーティションを使用して、ストレージデバイスとして単一のキャッシュ仮想ディスクにすることができます。

2
gertvdijk

[〜#〜] lvm [〜#〜] もこれを許可します:

ハイブリッドボリュームは、dm-cacheターゲットを使用して作成できます。これにより、フラッシュベースのSSDなどの1つ以上の高速ストレージデバイスを、1つ以上の低速ハードディスクドライブのキャッシュとして機能させることができます。 。

0
golimar