...

EVA キャッシュの優れた機能

by user

on
Category: Documents
1

views

Report

Comments

Transcript

EVA キャッシュの優れた機能
EVA キャッシュの優れた機能
2010 年 10 月改訂
目次
はじめに ............................................................................................................................................. 2
キャッシュの機能.................................................................................................................................. 2
ランダム読み取り ................................................................................................................................. 3
ランダム書き込み ................................................................................................................................. 3
シーケンシャル読み取り ........................................................................................................................ 4
シーケンシャル書き込み ........................................................................................................................ 5
おわりに ............................................................................................................................................. 5
はじめに
現在のアレイは、システムに寄与する多数の重要部品から構成されています。重要部品の 1 つにキャッシュメ
モリがあります。今日では、ほとんどすべてのディスクアレイがキャッシュメモリを採用しており、これにより相対
的に遅いディスクドライブの I/O 性能を吸収することで、システムパフォーマンスを向上させています。ストレー
ジシステムの設計では、より多くのキャッシュを必要としたり、より早いバックエンド性能が要求される場合もあ
ります。しかし、いずれの場合においても、キャッシュのサイズやバックエンドの速度が重要なのではなく、シス
テム全体のパフォーマンスが重要である、という原則を理解する必要があります。つまり、アレイ全体のパフォ
ーマンスは複数の部分や部品の相互作用に基づいており、1 つのコンポーネントのサイズや速度に基づくもの
ではありません。HP StroageWorks EVA は、最大 22GB のキャッシュを搭載しますが、競合他社の中にはよ
り大容量のキャッシュを搭載するものがあります。キャッシュサイズが適切かどうかは、システム全体のパフォ
ーマンスを計測することで判断できます。システムのバランスが欠如している場合は、簡単に露呈してしまうの
です。
最適なキャッシュ量をサイジングするには、OS 環境も考慮する必要があります。オープンシステムのアプリケ
ーションは、通常、I/O 要求をサーバーメモリ内にキャッシュするため、ストレージのキャッシュヒット率は 20~
40%になります。1 つの証拠として、業界で認知された Storage Performance Council (SPC) によるオープンシ
ステムのベンチマークは、20%のキャッシュヒット率に基づいています。見識のあるデータシステム管理者は、
ミッドレンジのオープンシステムアプリケーション全体のパフォーマンスを予測する最も的確な判断材料は、キ
ャッシュサイズやキャッシュのパフォーマンスではなく、バックエンドディスクのパフォーマンスであると考えてい
ます。
よくある質問として、EVA がスペック上少ない容量のキャッシュメモリでこれほどうまく機能する理由というもの
があります。その答えは、サーバー、ストレージ、アプリケーション、オペレーティングシステム (OS) と、これら
の相互作用に精通するトータルシステムベンダーである HP により設計された EVA ストレージコントローラーだ
からです。オープンシステムに関して、HP より詳細な知識を持つ企業はありません。EVA は、キャッシュサイズ
と高度なキャッシュアルゴリズムをオープンシステム環境向けに強化してきました。HP による実際のテストでは、
8GB のキャッシュを持つ EVA が、16GB のキャッシュで構成された CX3-80 との比較において、かなり優れて
いることが示されています。HP では、ランダムワークロードとシーケンシャルワークロードで、EVA8100 と
CX3-80 の両方に対するテストを実行しました。ランダムワークロードは、データベースや Exchange Server に
対するアクセスパターンに類似しており、シーケンシャルワークロードは、バックアップやストリーミングメディア
へのアクセスに類似しています。ランダムワークロードの応答時間は 30 ミリ秒に制限しています。このテスト
の結果は、次の表のとおりです。
ワークロード
EVA8100
CX3-80
ランダム読み取り 100%
56,400 IO/秒
54,000 IO/秒
ランダム混合 (読み取り 60%、書き込み 40%)
38,100 IO/秒
34,000 IO/秒
シーケンシャル読み取り
1,460 MB/秒
1,400 MB/秒
要点: アレイ内でキャッシュは必要ですが、キャッシュメモリは高コストであるうえ、オープンシステム環境のキ
ャッシュヒット率は相対的に低いため、アレイのパフォーマンスを評価しようとする場合には、キャッシュサイズ
以外の要素にも着目する必要があります。キャッシュアルゴリズムが最適となるように設計されていれば、キャ
ッシュ効率に大きな影響が与えられ、大容量のキャッシュが必要なくなる可能性があります。
キャッシュの機能
コントローラーキャッシュの第 1 の目的は、ディスクプラッター上を動くアクチュエーターヘッドに要するシーク時
間を吸収することです。今日のディスクドライブの平均アクセス時間はミリ秒単位で計測されますが、高パフォ
ーマンスコントローラーのキャッシュアクセス時間は、通常、100 マイクロ秒を下回っています。つまり、ディスク
アクセスにはキャッシュアクセスの約 60 倍の時間がかかるわけです。このため、効率的なキャッシュアルゴリ
ズムは、ストレージパフォーマンス全体に大きな影響を与えることが出来ます。
コントローラーのキャッシュアルゴリズムは、I/O ワークロードに基づいて、ランダム読み取り、ランダム書き込
み、シーケンシャル読み込み、シーケンシャル書き込みの 4 つのカテゴリに分類できます。どのアレイにおいて
も、最適なパフォーマンス実現に必要なキャッシュ容量は、キャッシュアルゴリズムの効率的性が影響します。
本書では以降、個々の I/O ワークロードの性質と、各ワークロードに固有の EVA アルゴリズムについて掘り
下げて説明します。
2
ランダム読み取り
読み取りキャッシュは、同じデータを繰り返し読み取りすることでディスクアクセスを削減するために使用されま
す。一度アクセスされたデータブロックは、再度アクセスされるという想定 (期待) に基づいて、キャッシュ内に
配置されます。ホストがそのデータに再度アクセスすると、そのブロックをキャッシュから直接返すことができる
ため、ディスクアクセスの速度低下を防止できます。しかし、この理論を実際の環境に適用するには、いくつか
の課題があります。
1.
オープンシステムのランダムアクセス環境では、キャッシュヒットの可能性が低くなります。たとえば、1TB
の全データにランダムにアクセスするアプリケーションが 8GB のキャッシュ (読み取りキャッシュが 4GB、
書き込みキャッシュが 4GB) を保有している場合、読み取りキャッシュがヒットする確率は 4/1000、つま
り 0.4%を下回ることになります。10TB のソリューションのキャッシュヒット率は 0.04%になります。つまり、
ストレージキャッシュのメモリにコストをかけても、金額に合った「効果」はほとんど期待できないのです。
オープンシステム環境の大部分は完全にランダムではなく、実際のキャッシュヒット率は 20%前後に落ち
着いています。しかし、オープンシステムのパフォーマンスのほとんどは、バックエンドのディスクパフォー
マンスとキャッシュアルゴリズムに基づくものであり、キャッシュサイズに基づくものではないという原則は
やはり有効です。注記: 対話型データベースアプリケーションの大部分は、ランダムアクセスです。
2.
現在のデータベースには独自の内部キャッシュ (Oracle における SGA など) が備わっています。キャッ
シュすべきデータをデータベース自身が最もよく把握しているため、繰り返しアクセスされるデータはすべ
てホストメモリ (SGA) 内に保持され、ストレージでは I/O が発生しません。
こうした問題はありますが、ストレージキャッシュが非常に有益な場合もあります。最も一般的なのは、データ
の「ホットスポット」が存在する場合です。この「ホットスポット」は、繰り返しアクセスされる特定のファイルや部
分があり、それがアプリケーションやオペレーティングシステムによってキャッシュされない場合に発生します。
良い例としてデータベースのインデックス領域が挙げられます。このアクセスパターンの場合、ランダムアクセ
ス読み取りキャッシュからのメリットを享受できます。しかし、現実の環境はもっと複雑です。つまり、ディスク上
の「ホットスポット」に何度もヒットする I/O に加えて、大抵は、完全にランダムな I/O 操作が他のディスク上で
別途進行しているのです。こうした他のアクセスが高い割合で発生し、キャッシュ内に読み込まれると、最終的
には、キャッシュ上にあるホットスポット領域のデータが置き換えられてしまう可能性があります。この結果、ホ
ットスポットのデータが欠落し、キャッシュミスが発生するのです。
この問題を解決する一般的な方法の 1 つ (アレイにかかるコストを増大させますが) は、キャッシュの量が十分
であればホットスポットのデータをキャッシュ内に保持しておけるだろうと期待して、単純にキャッシュメモリの量
を増やすことです。この方法は上手く機能することもありますが、失敗することもあります。2 つ目のアプローチ
は、キャッシュヒットが発生していない LUN の読み取りキャッシュを無効化し、これらのデータでキャッシュがい
っぱいになってしまうことを防ぐ方法です。この方法により、ホットスポットデータはキャッシュ内に保持されやす
くなりますが、手動による監視や介入が必要になるという短所があります。さらに、読み取りキャッシュを無効に
した LUN に対するワークロードにより、データ内にホットスポットが突然発生した場合、その LUN ではキャッシ
ュが無効化されているため、キャッシュによるパフォーマンス改善の可能性は失われてしまいます。
EVA ソリューション:
EVA は高度なアルゴリズムを備えているため、ここまでに説明したような状況でも最小量のキャッシュメモリに
よって対処できます。このため、大容量のキャッシュを装備する必要も、手動で監視を続ける必要もありません。
EVA の内部にはキャッシュヒットを監視するコードがあり、1 つの LUN のヒット率が一定レベルを下回ると、そ
の LUN の読み取りキャッシュが自動的に無効化されます。この結果、データがホストに送信された後に、ラン
ダムアクセスストリームが読み取りキャッシュ内に残存せず、他のデータに置き換えられることもありません。
EVA がその LUN のアクセス状況を継続的に監視し、キャッシュが役立ちそうなアクセスパターンになったら、
その LUN の読み取りキャッシュを再度有効化します。このような I/O ワークロードに基づく読み取りキャッシュ
の動的な有効化/無効化は、EVA が大容量の読み取りキャッシュを必要としない理由の 1 つに挙げられます。
ランダム書き込み
書き込みキャッシュは主に書き込み性能を向上させるための一時的なバッファーとして使用されます。ランダム
書き込みでは、データがキャッシュに入るとすぐに完了のシグナルがホストに送信されるため、レイテンシが非
常に低く抑えられます。キャッシュのバッファーが一杯になり始めたら、EVA はバックグラウンドフラッシュ操作
を開始し、そのデータをディスクに書き込みます。
どのアレイでも、受信するホスト書き込み率がキャッシュによるディスクへのフラッシュ率よりも低い間は、キャ
ッシュが一杯になることはほとんどなく、アプリケーションが通常確認する書き込み応答時間はマイクロ秒単位
になります。これは、EVA のランダムライトキャッシュのアルゴリズムの背景にある設計上の前提条件です。
3
EVA ソリューション:
このように、キャッシュのディステージングアルゴリズムが適切に設計されている場合、必要となる書き込みキ
ャッシュの量は、突発的に増加するライトデータを格納できる容量だけですみます。比較的小容量の書き込み
キャッシュを活用するための秘訣は、ランダム書き込みデータをキャッシュからディスクにすばやく移動させる
キャッシュアルゴリズムを使用して、バックエンドの並行処理をできるだけ多く生み出すことです。これは、書き
込みキャッシュが一杯になるに従って、書き込みキャッシュのデータをより積極的にディステージングするアル
ゴリズムを通して、実現できます。
シーケンシャル読み取り
シーケンシャル読み取りは、多くのアプリケーションで非常によく利用されており、アレイの観点から次の 2 つ
の特徴があります。1 つ目は、一般的にシーケンシャル読み取りが、他のアプリケーションからの I/O ストリー
ムと混じってしまうことです。2 つ目は、多くのアプリケーションの発行するシーケンシャル I/O 要求のサイズが、
非常に小さいことです。これら 2 つの特徴から、次の 2 つの問題が発生します。1 つ目の問題は、I/O が他の
アプリケーションの I/O と混ざってしまうと、アレイがシーケンシャル読み取りのパターンを識別することが困難
になることです。2 つ目の問題は、データの転送サイズが小さいと、アレイの帯域幅の使用効率が低下するこ
とです。この 2 つの問題に対処するための簡単な方法は、読み取り要求のたびに、大容量の余分なデータを
フェッチすることです。この方法は、要求された元のデータより多くの量のデータを読み取ることで、次に要求さ
れるシーケンシャル読み取りデータがキャッシュ内にあらかじめ準備されるであろうという考えに基づくもので
す。
この考え方には 2 つの誤った部分があります。第 1 に、本来、要求の中でシーケンシャルな部分の占める割
合は非常に小さいため、「余分な」データの読み込みにかかる時間が追加されれば、すべてのアクセス (シー
ケンシャルな部分もそうでない部分も) におけるパフォーマンスが大幅に低下することになります。第 2 に、こ
の未使用のデータがキャッシュに保存されることになるため、ここでも、他のデータがキャッシュから削除される
ことになります。
EVA ソリューション:
EVA では、データのプリフェッチのために、さらに高度な (特許取得の) アルゴリズムが使用されます。EVA は
I/O ストリームを継続的に監視し、シーケンシャルアクセスのパターンを見つけ出します。干渉する非シーケン
シャルな I/O が存在する場合でも、シーケンシャル I/O ストリームを検出できます。例を挙げると、要求ストリ
ームが論理ブロック 100、2367、17621、48、101、17、2、15、102 を要求した場合、EVA は、この一見ラ
ンダムな要求の中にシーケンシャルな要求ストリームが 1 つ存在することを認識します (ブロック 100、101、
102)。EVA は非常に多くの数の LUN を処理する目的で設計されているため、プリフェッチアルゴリズムは、異
なる LUN の異なる領域で、最大 1024 の並行するシーケンシャルストリームを認識できるように設計されてい
ます。このようなことから、EVA は異種オペレーティングシステム環境の全く異なるアプリケーションで発生する
いくつもの I/O を並行して処理できるだけではなく、必要な数のさまざまな LUN 上でプリフェッチ操作を並行し
て開始することもできます。
シーケンシャルストリームが検出され、最初に要求されたデータがホストに転送された後、EVA は LUN からプ
リフェッチ用の追加データを要求します。追加のデータをプリフェッチする前に、元のデータがホストに送信され
るまでは、ホスト I/O に追加レイテンシが発生することはありません。ホストが要求する前に EVA がデータを
プリフェッチした場合、アルゴリズムでは、そのプリフェッチがホストの I/O 要求に遅れない速度で動作している
と判断され、プロセスが続行されます (ホストがキャッシュ内にすでに存在するデータを要求した後、次のプリフ
ェッチが行われます)。反対に、EVA がプリフェッチする前にホストがデータを要求した場合、EVA のプリフェッチ
処理が遅いか、ホストが速すぎることを示しており、これに対処するため、EVA は 1 回あたりのプリフェッチの
量をを増やして処理を継続します。ホストからのシーケンシャル読み取りが続行されると、EVA はホストの要求
より先行する必要があるため、プリフェッチの量を大幅に増やします。ホストにデータを送信した後、EVA はそ
のデータをキャッシュから削除します。シーケンシャルにアクセスされるデータが再び要求されることは非常に
稀だからです。
この結果、ホストは LUN 全体をシーケンシャルに読み取り、EVA から 100%のキャッシュヒット率を獲得でき、
わずか数百キロバイトのキャッシュを使用するだけで済みます。このアルゴリズムによる成果として、ランダム
アクセスデータに対するペナルティが存在しないこと (プリフェッチされない状態が発生)、プリフェッチが必要な
ときに必要なサイズでのみ発生すること (プリフェッチ量は動的に調整)、使用されるキャッシュが最小限で済む
こと (プリフェッチデータはホストに送信後フラッシュ) などが挙げられます。このように、EVA のキャッシュアル
ゴリズムは、ランダム・シーケンシャルが同時に発生するような状況においても、適正な量のキャッシュにて高
いパフォーマンスを維持することが可能となります。
4
シーケンシャル書き込み
シーケンシャル書き込みストリームは通常、ログファイルと関連付けられており、パフォーマンスの観点から最
も重要な I/O ストリームの 1 つです。これらの書き込みは大抵、転送サイズを小さくする (8KB や 16KB など)
必要があり、アレイの内部帯域幅という観点から考えた場合に非常に非効率です。さらに、これらはデータベ
ースの「チェックポイント」または「コミット」操作と関連することが非常に多く、他のアプリケーションの I/O がこ
れらの書き込みの完了まで待機状態になることが頻繁に発生します。
EVA ソリューション:
シーケンシャル読み取りストリームの検出に加えて、EVA はシーケンシャル書き込みストリームも検出します。
複数のシーケンシャル書き込み要求がキャッシュ内に集約され、データをフラッシュするタイミングが到来した
時点で、これらを 1 つの大きな要求としてディスクドライブに送信します。このアプローチによる明らかな利点は、
ディスクレベルで非常に高いデータ転送率を獲得できるため、転送効率が向上することです。簡単に述べると、
書き込みデータのサイズがいわゆる「ストリップ」に到達すると、EVA がこのデータをディスクにフラッシュする
のです。「ストリップ」のサイズは 512KB です。
読み取りの場合と同じように、EVA にあらかじめ割り当てられた書き込みキャッシュは、ランダムとシーケンシ
ャルの両方の書き込みワークロードに対する高い I/O パフォーマンスを並行して維持するために、十分すぎる
機能を持つのです。
おわりに
インテリジェントなキャッシュアルゴリズムによって、比較的少量のキャッシュを採用し、さらに大容量で高コスト
のキャッシュと同じような機能を実現できます。これが EVA キャッシュ設計の秘密です。EVA が非常に高速な
アレイであることは間違いありません。このことは HP のパフォーマンステストが証明しています。ただ、EVA が
この数値をわずか 8GB のキャッシュによって達成した方法については、まだあまり広く知られていません。こ
の秘訣はキャッシュアルゴリズムの中に隠されているのです。
© 2008 Hewlett-Packard Development Company, L. P. 本文書中に含まれる内容
は、予告なく変更されることがあります。HP 製品、およびサービスに対する保証は、当
該製品またはサービスに付随する明示的な保証文によってのみ規定されるものとしま
す。本規定のいかなる部分も、他の追加保証を構成すると解釈されるものではありま
せん。本書の技術上または編集上の誤り、または欠落について、HP はいかなる責任
も負わないものとします。
4AA5-7945ENW、2008 年 2 月
Fly UP