ストレージのQoSとは

大型で容量が多いデータを管理する業務アプリケーションの促進は、ストレージのスループットに関係していてストレージが災いしてシステム全体の性能が下がることも考えられます。企業のシステム基盤として採用出来ずに、ストレージの性能を効率的に向上させるのがアーキテクチャ「ストレージのQoS」や「経路の負荷分散」などです。特に企業向けストレージの標準的なアーキテクチャとして、ここではストレージの性能に注目してみましょう。

■半導体メモリはHDDと比べて読み書きの処理が早く、サーバーへのコンタクトも素早い

ストレージプロセッサは、CPUとメモリ(半導体メモリ)が内蔵されていますが、このメモリは、OSやストレージ制御プロセスが利用する「システムメモリ」と、ストレージ性能の向上のためになるので「キャッシュメモリ」の2つの用途になります。
しかし半導体メモリはHDDと比べて読み書きの処理が早く、サーバーへのコンタクトも素早く行います。
また基本的なアプリケーションの動作では、一度書き込んだデータを再度読みこんだりも可能なので再度アクセスが簡単になります。このことから、キャッシュメモリ上によく利用するデータを出来るだけ多く確保すれば、全体的な性能を向上することが出来る手段となります。ここで、サーバーの読み書き処理に対するデータの流れを見てみましょう。
書き込み処理のケースでは、データをキャッシュメモリに書き込みもだけでサーバーへの書き込みも完了するため、データをHDDへ書き込むよりも十分に処理時間が短いといえます。

■サーバからの処理要求に対して優先順位をつけてストレージ処理を行うQoSストレージ

キャッシュメモリに書き込みこまれたデータですが、参照頻度のないデータを順番にHDDへ書き込まれる様になっています。サーバからの処理要求に対して優先順位をつけてストレージ処理を行う機能の事をQoSストレージと呼び、パソコンの処理スピードを十分に向上させることが出来る新しい機能でもあり、業界で注目されている機能です。ルーターやレイヤー3スイッチに実装される技術でクラウドや仮想化の技術の普及においても子の機能を活かすことで全体的なサービスの促進につながっていきます。
サーバからの処理供給に優先順位をつけてストレージで処理をしていくために処理の時間を短時間で行うことが可能で、またサーバーとの連結も十分に図ることが出来て仮想化においてデータのやり取りを交わす際に処理スピードを上げることが出来るようになります。
また仮想ディスクにストレージ QoS にポイントを当てて、ストレージドメインのパフォーマンスを調整していくので仮想化の為に一役買っています。

■優先順位をつけることで更に効率よくアプリケーションごとの性能を維持

一方、サーバーからの読み込み要求には即対応して、対象となるデータがキャッシュメモリ上に存在していれば、HDDではなくキャッシュメモリから読み込みます。もし、キャッシュメモリ上に読み込み対象データが見当たらなければ、ダイレクトにHDDから読み込まれます。HDDから読み込まれたデータは、まずキャッシュメモリにコピーされサーバーへ返信する仕組みとなっています。様々なストレージ製品がリリースされていますがキャッシュメモリとHDD間のI/O処理を効率化させることが大切です。
また性能を高めるためにシステムが連結して特にサーバーからのデータの読み込み時には、HDD上のデータを確認しその後にキャッシュメモリ上にデータをコピーします。
HDDではなくキャッシュメモリからの読み出す確率が多くなれば、速度的にレスポンスタイムを向上させる事が可能となっています。キャッシュメモリによるI/O性能向上のためには効率化するストレージベンダーや機種で異なります。業務やアプリケーションの持っている定理を理解することで更なる高い性能を維持する事が可能となります。時にはサーバー同士の処理がストレージ内部でぶつかり、結果的に読み込みの速度が低くなることもあります。
またこのことが災いして高い性能が必要なアプリケーションに対して安定的な性能が出なくなることもあり、この問題を解決するために、ストレージに対するサーバーからの処理要求に優先順位をつけることで更に効率よくアプリケーションごとの性能を維持していくことが可能な機能がストレージの「QoS(Quality of Service)」なのです。重要なサーバの維持によって毎度、記録されているようなものでサーバーへのアクセスにも優勢順位が付いているので素早くストレス無くデータのやり取りが可能になる機能なのです。定義した優先順位を維持するようI/Oを自動調整可能ならば重要なサーバーの性能を維持することができ、ITソリューションとして更なる開発が進んでいる分野でもあります。仮想化をすることによって扱うデータの保存先にサーバーを指定した時にこの優先順位を付けることで、ダイレクトに重いデータも素早く取り扱うことが可能になります。

■ストレージパフォーマンスの上限や下限を設定し、安定稼働や性能保証を実現

ストレージの中には、その管理単位でパフォーマンスの上限や下限を設定することができるものがあります。パフォーマンスの上限を設定するのは、あるワークロードが急激に上がった際に、上限を決めて押さえ込むことで全体的なシステムの性能低下を起こさせないようにするためです。ストレージのリソースに余裕が少ない場合にはそのような運用が必要となります。また、パフォーマンスの下限を設定するのはどのような環境でしょうか?

QoSでパフォーマンスの下限を設定することが本当に必要なのか?という素朴な疑問がありますが、これはあるワークロードが必ず設定したパフォーマンスをいつどんなときでも発揮できるようにする仕組みです。これによって、重要なアプリケーションがどのような状況でも常に安定かつ期待したパフォーマンスを発揮できるようにする、いわば「性能保証」をする時にとても有効です。

ストレージの付加価値として、QoSができるかどうかを確認することはとても重要です。また行う単位もストレージによってまちまちですので、自分の要求に合った設定が可能かどうかを確認してください。また、QoSを自動化できるストレージも登場していますので、できるだけ管理工数を増やさずにストレージを安定稼働させたいなら検討の価値があると思います。