FlashCacheを使用したIOの改善


14

RAID 1(SW-RAID)で実行する2台のHDD(2x 1 TB)を備えたサーバーがあります。を使用してIOのパフォーマンスを向上させたいflashcache。を使用して、KVM仮想マシンが実行されていLVMます。

これに関して、次の質問があります。

  • これでも機能しますか?flashcacheブロックデバイスで動作しますが、これらはすべて独自の設定を持つ仮想マシンです。
  • パフォーマンスはどれくらい向上すると予想されますか?ほとんどの仮想マシンは、Webサイトといくつかのホストゲームを実行します。
  • SSDの大きさはどれくらい必要ですか?SSDを大きくすると、より多くのファイルをキャッシュできるため、パフォーマンスが向上しますか?
  • SSDが死んだ場合はどうなりますか?うflashcache伝統的なHDDからファイルを取得し、私は単純にSSDを交換するだろうか?
  • およびwritebackに比べてどれくらい速くなりますか?writethroughwritearound

残念ながらテストシステムにアクセスできflashcacheないため、ディスクをアンマウントせずにライブサーバーにインストールできますか?ここで、私が使用するすばらしいチュートリアルを見つけました。


SSDをメインドライブとして使用できれば、より安定したパフォーマンスが得られると思います。
ewwhite

テストシステムにアクセスできませんか?必要なのは、HDD、SSD、および2つの仮想ディスク(各デバイスに1つ)を備えた仮想マシンを備えたワークステーションだけです。実稼働システムは、学習ラボとして使用するためのものではありません。
スカイホーク

あなたが言及したそのチュートリアルのリンクは死んでいます。その情報を見つけることができる他の場所はありますか?
Thaeli 14年

回答:


18

Flashcacheは、これまで見たことがない人のために、SSDドライブでLinuxブロックキャッシュを拡張する方法です。キャッシュのためだけに半TBのRAMを搭載したサーバーを実行するよりも安価です。

これでも機能しますか?

そうすべき。Linuxのブロックキャッシュは、ファイルではなく、アクセスしたブロックをキャッシュすることで機能します。KVMマシンにブロックデバイスへの直接アクセスを許可しない限り(許可しない場合)、Linux Block Cacheが機能します。あなたはしかし、もしされている KVMマシンに直接ブロック・デバイスへのアクセスを与える答えはそれほど明確であります。

ファイルでバックアップされた仮想ディスクを使用している場合、間違いなく機能します。

LV-backed仮想ディスクを使用している場合、私にはわかりません。

パフォーマンスはどれくらい向上すると予想されますか?

それは答えられないことです。それはさまざまなものに依存します。要約すると、SSDのサイズをアクティブセットのブロックより大きくするための最高のパフォーマンスが得られます。完璧なキャッシングが得られる場合、パフォーマンスはSSDでシステム全体を実行するのと同様になります。あなたが効果的にやっているでしょう。

SSDの大きさはどれくらい必要ですか?

あなたが必要とする正確なサイズを見つけることは、私たちが助けられないものです。もちろん、多ければ多いほど良いのですが、キャッシュSSDとプライマリストレージの正確な比率を見つけるのは簡単なことではありません。

これを複雑にしているのは、特定のファイルシステム操作や一部のデータベース構成など、すぐにフラッシュするように設定された書き込みです。これらの書き込みは簡単にキャッシュされるだけであり、フラッシュキャッシュの有無によってパフォーマンスが影響を受けることはありません。

SSDが死んだ場合はどうなりますか?

Linuxにキャッシュをドロップするように指示すると、同じことが起こりますが、ひねりがあります。ドロップキャッシュを使用すると、ブロックキャッシュにあるフラッシュされていない書き込みはすべてディスクにフラッシュされます。SSDが消えたときに何が起こるかは、キャッシュモードによって異なります

ライトスルー:すべての書き込みはキャッシュとプライマリストレージに並行して書き込まれるため、SSDが突然失われてVMでエラーが発生する可能性は非常に低くなります。

ライトアラウンド:すべての書き込みはプライマリストレージに書き込まれ、読み取り時にのみキャッシュされます。VMでエラーが発生する可能性はありません。

ライトバック:すべての書き込みは最初にキャッシュに送られ、バックグラウンドでプライマリストレージに書き込まれます。SSDに障害が発生した場合、VMでエラーが発生する可能性が最も高く、本番環境ではこのモードを使用しません。

ライトスルーとライトアラウンドと比較して、ライトバックはどれくらい高速ですか?

書いている量に依存します。書き込みが定期的にプライマリストレージを飽和させる場合、パフォーマンスの向上はかなり大きくなる可能性があります。書き込みを主に読んでいる場合、改善に気付かないでしょう。

また、書き戻しはあなたがしていることにとって悪いポリシーなので、使用しないでください。


1
こんにちはsysadmin、包括的な回答をありがとう。writebackBBUなしではすべてが破損する可能性があるため、使用しません。結局のところ、SSDキャッシングは使用しません。結局のところ、通常のSSDだけです。再度、感謝します!
デバトール

4

はい、適切なブロックデバイスを使用している限り問題なく動作します。そして、トリックがあります。

LVMがPVをスキャンするとき、実際のハードドライブ自体、およびフラッシュキャッシュの「仮想」デバイスを通してパーティションを確認する必要があります。

明らかな症状の1つは、LVMツールがPVの重複について文句を言うことです。

これらの警告を回避し、さらに重要なことは、フラッシュキャッシュデバイスがLVM2によって使用されていることを確認するための修正は、のフィルターを適応させること/etc/lvm/lvm.confです。

LVM.CONF(5)manページには、私よりもそれを説明しますが、場合、私は、例を残すだろう、すべての物理ボリュームがflashcacheが付いています:

filter = [ "a/.*dm.*/" ]


1

一部のアプリケーションは、ファイルを非バッファー方式で開きます。

http://man7.org/linux/man-pages/man2/open.2.html

O_DIRECT(Linux 2.4.10以降)このファイルとの間のI / Oのキャッシュ効果を最小限に抑えます。一般に、これはパフォーマンスを低下させますが、アプリケーションが独自のキャッシングを行う場合など、特別な状況で役立ちます。ファイルI / Oは、ユーザースペースバッファーとの間で直接行われます。O_DIRECTフラグ自体は、データを同期的に転送しようとしますが、データと必要なメタデータが転送されるというO_SYNCフラグの保証はありません。同期I / Oを保証するには、O_DIRECTに加えてO_SYNCを使用する必要があります。詳細については、以下の注を参照してください。

たとえば、これはデータベースでは非常に一般的です。したがって、flashcacheがこのアプリケーションセットで動作するかどうかを再確認してください。

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