Bcache
Bcache(ブロックキャッシュと略記)は、Linuxカーネルのブロックレイヤーにあるキャッシュであり、セカンダリストレージデバイスにアクセスするために使用されます。これにより、フラッシュベースのソリッドステートドライブ(SSD)などの1つ以上の高速ストレージデバイスを、ハードディスクドライブ(HDD)などの1つ以上の低速ストレージデバイスのキャッシュとして機能させることができます。これにより、ハイブリッドボリュームが効果的に作成され、パフォーマンスが向上します。 Bcache 開発者
ケントオーバーストリート他
リポジトリ
evilpiepirate .org / git / linux-bcache .git
で書かれている オペレーティング・システム Linux タイプ
Linuxカーネルの機能
ライセンス GNU GPL Webサイト
bcache .evilpiepirate .org
SSDの性質とパフォーマンス特性に基づいて設計されたBcacheは、ランダム書き込みを回避し、代わりにシーケンシャル書き込みに変換することで、書き込み増幅を最小限に抑えます。このI / O操作のマージは、キャッシュとプライマリストレージの両方に対して実行され、キャッシュとして使用されるフラッシュベースのデバイスの寿命を延ばし、RAID5セットなどの書き込みに敏感なプライマリストレージのパフォーマンスを向上させるのに役立ちます。
BcacheはGNUGeneral Public License(GPL)の下でライセンスされており、KentOverstreetがその主要な開発者です。Overstreetは、Bcacheを、大幅に改善されたファイルシステムであるBcachefsの開発の「プロトタイプ」と見なしています。
コンテンツ
1 概要2 歴史 3 特徴
3.1 改善点
4 も参照してください
5 参考文献
5.1 引用された作品
6 外部リンク
概要
Bcacheを使用すると、データストレージアクセスパス内の別のレベルの間接参照としてSSDを使用できるようになり、回転磁気メディアを備えた低速のメカニカルハードディスクドライブ(HDD)のキャッシュとして高速フラッシュベースのSSDを使用することで、全体的なパフォーマンスが向上します。このようにして、SSDとHDDの間のギャップを埋めることができます。SSDのコストのかかる速度は、従来のHDDの安価なストレージ容量と組み合わされます。
キャッシングは、実行されたランダム読み取りおよびランダム書き込みに関連するデータを格納するためにSSDを使用して実装され、SSDの最も顕著な機能としてほぼゼロのシーク時間を使用します。シーケンシャルI / Oはキャッシュされません。これは、HDDにすでに十分適している操作でのSSDキャッシュの迅速な無効化を回避するためです。大きなシーケンシャル書き込みのためにキャッシュを一周することは、ライトアラウンドポリシーとして知られています。シーケンシャルI / Oをキャッシュしないことは、キャッシュとして使用されるSSDの寿命を延ばすのにも役立ちます。 SSDへのランダム書き込みを実行しないことにより、書き込み増幅が回避されます。代わりに、SSDキャッシュへのすべてのランダム書き込みは常にブロックレベルの書き込みに結合され、SSD上の完全な消去ブロックのみを書き換えることになります。
どちらのライトバックとライトスルー(デフォルトで)政策は、書き込み操作をキャッシュするためにサポートされています。ライトバックポリシーの場合、書き込まれたデータは最初にSSDキャッシュ内に保存され、後でシークに適した操作を実行しながらバッチ方式でHDDに伝播されます。これにより、BcacheはI / Oスケジューラとしても機能します。書き込み要求されたデータがSSDとHDDの両方に到達するまで書き込み操作が完了としてマークされないことを保証するライトスルーポリシーの場合、書き込まれたデータのキャッシュのみを効果的に実行することにより、パフォーマンスの向上が低下します。
HDDへのバッチの書き込みとライトバックポリシーは、書き込みに敏感にさらなる利点を提供する独立ディスクの冗長アレイレイアウトする(RAID)のようなRAID 5とRAID 6のように、実際の書き込み動作を実行する、アトミック 読み出し-変更-書き込みシーケンス。このように、小さなランダム書き込みのパフォーマンスペナルティは、それらをグループ化してバッチシーケンシャル書き込みとして実行することにより、このようなRAIDレイアウトで軽減または回避されます。
Bcacheによって実行されるキャッシングは、ブロックデバイスレベルで動作し、ファイルシステムが組み込みのユニバーサル一意識別子(UUID)を提供する限り、ファイルシステムに依存しません。この要件は、実質的にすべての標準Linuxファイルシステムとスワップパーティションによって満たされます。キャッシュエクステントとしてBcacheによって内部的に使用される論理ブロックのサイズは、単一のHDDセクターのサイズまで減少する可能性が
歴史
Bcacheは、初期のベータ段階ではありますが、完全に機能するLinuxカーネルモジュールとして、2010年7月にKentOverstreetによって最初に発表されました。開発は、2012年5月までほぼ2年間継続され、その時点でBcacheは本番環境に対応した状態になりました。
これは、にマージされたLinuxカーネルのメインライン6月30日、2013年にリリースされたカーネルのバージョン3.10で、 Overstreetは以来、開発されたファイルシステム Bcachefsを、彼は進化する「始めたと述べたことを最初Bcacheに開発されたアイデアをもとに、。 ..本格的な汎用POSIXファイルシステムに」。彼は、BcacheをBcachefsになったアイデアの「プロトタイプ」として説明し、BcachefsがBcacheに取って代わることを意図しています。彼は2015年にBcachefsを公式に発表し、2018年の時点でメインラインのLinuxカーネルに含めることを検討するためにBcachefsを提出しています。
特徴
Linuxカーネルのバージョン3.10以降、Bcacheは次の機能を提供します。
同じキャッシュデバイスを使用して、任意の数のプライマリストレージデバイスをキャッシュできます
マウントおよび使用中のプライマリストレージデバイスのキャッシュへのランタイムアタッチおよびデタッチ(キャッシュされていない場合はパススルーモードで実行)
クリーンでないシャットダウンからの自動回復–キャッシュがプライマリストレージデバイスに関して一貫しているまで、書き込みは完了しません。内部的には、Bcacheはクリーンシャットダウンとアンクリーンシャットダウンを区別しません
キャッシュデバイスによって生成されたI / Oエラーの透過的な処理
書き込みバリアと関連するキャッシュフラッシュは適切に処理されます
ライトスルー(デフォルト)、ライトバック、ライトアラウンドポリシー
シーケンシャルI / Oが検出され、バイパスされます。しきい値は構成可能です。バイパスも無効にできます
SSDのI / O操作の測定された遅延が構成可能なしきい値を超えたことによって検出されるように、SSDが輻輳した場合のSSDへのI / Oのスロットリング。多くのHDDにキャッシュを提供する1つのSSDを持つ構成に役立ちます
先読みのキャッシュミス(デフォルトでは無効)
非常に効率的なライトバックの実装–ダーティデータは常にソートされた順序で書き出され、オプションでバックグラウンドライトバックがスムーズに抑制され、キャッシュの構成されたパーセンテージがダーティに保たれます。
高性能のB +ツリーが内部的に使用されている- Bcacheは1,000,000周りが可能なIOPSハードウェアが十分に高速であれば、ランダムに読み込みます
さまざまなランタイム統計と構成オプションがsysfsを通じて公開されます
改善点
2014年2月の時点で、Bcacheの将来のリリースでは次の新機能が計画されています。
RAID5およびRAID6レイアウトでのデータストライピングの認識–ライトバックポリシーにストライプレイアウトの認識を追加するため、キャッシュの決定はすでに「ダーティ」なストライプを優先し、実際のバックグラウンドフラッシュは完全なストライプを書き出します。初め
すでに満杯のB +ツリーノードでのキャッシュミスの処理– Linuxカーネル3.10のBcacheバージョンでは、内部で使用されるB +ツリーノードの分割が書き込み時に発生するため、初期キャッシュのウォームアップはほとんど達成できません。
キャッシュセット内の複数のSSD–クリーンなデータと読み取りキャッシュのためにSSDスペースを無駄にすることなく、ダーティデータ(ライトバックポリシー用)とメタデータのみがミラーリングされます
データチェックサム
も参照してください
無料のオープンソースソフトウェアポータル
Linuxポータル
dm-cache –ハイブリッドボリュームの作成を可能にするLinuxカーネルのデバイスマッパーターゲット
EnhanceIO –Linux カーネル用のディスクキャッシュモジュール。
Flashcache –Linux カーネル用のディスクキャッシュコンポーネント。当初はFacebookによって開発されました。
ハイブリッドドライブ –フラッシュベースの磁気メディアストレージテクノロジーと回転する磁気メディアストレージテクノロジーを組み合わせたストレージデバイス
ReadyBoost – WindowsVista以降のMicrosoftオペレーティングシステムのディスクキャッシュソフトウェアコンポーネント
Smart Response Technology(SRT)–Intelがチップセット用に開発した独自のディスクストレージキャッシングメカニズム
参考文献
^ 「bcache」。bcache.evilpiepirate.org 。
^ 「FAQ」。bcache.evilpiepirate.org 。
^ Petros Koutoupis「高度なハードドライブキャッシングテクニック」。LinuxJournal 。
^ “”Linuxカーネルのドキュメント:Documentation /bcache.txt”。kernel.org。
^ ケントOverstreet。「bcache:Linuxカーネルブロックレイヤーキャッシュ」。bcache.evilpiepirate.org 。
^ Jonathan Corbet「bcacheの更新」。LWN.net 。
^ 「基本的なRAID組織」。ecs.umass.edu 。
^ ウィリアムスターンズ; ケントオーバーストリート「Bcache:RAMだけを超えたキャッシュ」。LWN.net 。
^ ケントオーバーストリート「Bcache:バージョン6」。LWN.net 。
^ 「Linuxカーネル3.10、セクション1.2。Bcache、SSDキャッシング用のブロックレイヤーキャッシュ」。kernelnewbies.org。
^ リビークラーク「Linuxカーネルのすべて:Bcache」。linux.com。
^ Larabel2015。
^ エッジ2018。
^ ジャクソン2015。
^ Larabel2018。
引用された作品
エッジ、ジェイク「bcachefsの更新」。LWN.net。
ヨアブ、ジャクソン「元Googleエンジニアが新しいLinuxファイルシステムを刷新しました」。PCWorld。
Larabel、Michael「新しいLinuxファイルシステムはZFS / Btrfsのような機能を持ちながらスピードを目指しています」。マイケル・ララベル。
ララベル、マイケル「BcachefsファイルシステムはLinuxカーネルのアップストリームに取り組んでいます」。マイケル・ララベル。
外部リンク
公式サイト
LSFMM:キャッシング– dm-cacheおよびbcache、LWN.net、2013年5月1日、Jake Edge
安定したアップストリームカーネルでのLinuxブロックキャッシングの選択(PDF)、デル、2013年12月
Bcacheシリーズのテスト:スループット、IOPS、メタデータ、および大きなファイルとまとめ、Linux Magazine、2010年8月〜9月、Jeffrey B. Layton
EnhanceIO、bcacheとdm-cacheのパフォーマンス比較、LKML、2013年6月11日
EnhanceIO、Bcache&DM-Cache Benchmarked、Phoronix、2013年6月11日、Michael Larabel”