このページの本文へ

ゼロからはじめるストレージ入門 第5回

性能を高める技術や機能を知ろう

ストレージはキャッシュやQoSで速くなる

2009年09月25日 09時00分更新

文● 吉田尚壮/EMCジャパン株式会社 グローバル・サービス統括本部 テクノロジー・ソリューションズ本部 技術部 テクノロジー・コンサルタント

  • この記事をはてなブックマークに追加
  • 本文印刷

大容量のデータを扱う業務アプリケーションの性能は、ストレージのスループットに大きく影響される傾向がある。ストレージが原因となってシステム全体の性能が劣化するようでは、企業のシステム基盤として採用することはできない。今回は、ストレージの性能を効率的に向上させる代表的なアーキテクチャ「キャッシュメモリ技術」「ストレージのQoS」「経路の負荷分散」について解説する。

キャッシュメモリ技術による性能の向上

 前回(連載第4回)に引き続き、企業向けストレージの標準的なアーキテクチャを紹介したい。今回は、ストレージの性能にフォーカスして話を進めよう。

 ストレージプロセッサ(コントローラ)には、CPUとメモリ(半導体メモリ)が搭載されている。このメモリは、OSやストレージ制御プロセスが利用する「システムメモリ」と、ストレージ性能の向上を目的とした「キャッシュメモリ」の2つの用途で利用されている。

 半導体メモリはHDDと比べて読み書きの速度が速いため、サーバのI/Oに対するレスポンスタイムを向上させることができる。また、一般的なアプリケーションの動作において、一度書き込んだデータを再度読み込むことも多い。さらに最近アクセスしたデータに対しては再度アクセスする機会が多いという特性がある。したがって、キャッシュメモリ上に参照頻度の高いデータを多く確保することは、性能を向上させる有効な手段なのである。

 ここで、サーバの読み書き処理に対するデータの流れを見てみよう。図1に示したとおり、書き込み処理の場合、データは一度ストレージアレイのキャッシュメモリに書き込まれる。これで、サーバの書き込み処理は完了するため、データをHDDへ書き込むよりもはるかに処理時間が短くなるのである。

図1 キャッシュメモリと書き込みデータの流れ

 キャッシュメモリに書き込まれたデータは、特定の条件(キャッシュメモリの使用率が高くなる場合や、ストレージプロセッサが待機状態の時)によって、参照頻度の低いデータから順にHDDへ書き込まれる。

 一方、サーバからの読み込み要求が発生した場合、対象となるデータがキャッシュメモリ上に存在していれば、HDDからではなくキャッシュメモリから読み込まれる。もし、キャッシュメモリ上に読み込み対象データがなければ、当然ながらHDDから読み込まれる。ただし、この時にHDDから読み込まれたデータは、一時的にキャッシュメモリにコピーされてからサーバへ返信される順序となっている。

 キャッシュメモリは、ストレージアレイ製品の標準的なアーキテクチャとなっているが、ストレージ製品によってはキャッシュメモリとHDD間のI/O処理を効率化させて、さらに性能を高める仕組みを備えているのだ。たとえば、サーバからの連続的なデータの読み込みが発生した場合、HDD上のデータを”先読み”してあらかじめキャッシュメモリ上にデータをコピーしておくことで、HDDではなくキャッシュメモリからの読み出す確率が高まり、レスポンスタイムを向上させる仕組みなどが挙げられる。

 このようなキャッシュメモリを利用したI/O性能向上のアルゴリズムは、ストレージベンダーや機種によって実装が異なっている。そのため、ストレージには特定のI/O処理に対する得手不得手が存在し、ストレージベンダーは得意なI/O処理に対してベンチマーク値を公開しているケースが多い。したがって、より厳密に性能の観点から製品を選定したいのであれば、ベンチマーク値を鵜呑みにせず、業務やアプリケーションの特性を理解しI/O性能要件を整理してベンダーに伝える方法や、必要に応じて事前検証等の機会を設けるという方法が考えられる。

優先順位付け(QoS)により高い性能を維持する

 他にも、効率的に高い性能を維持させる機能がある。まず、複数のサーバが1台のストレージを共有している環境においては、サーバ同士の処理がストレージ内部で干渉し合うため、高い性能が必要なアプリケーションに対して安定的な性能を維持できない場合がある。

 この問題を解決するために、ストレージに対するサーバからの処理要求に優先順位をつけて処理し、効率よくアプリケーションごとの性能を維持させる機能がある。これをストレージの「QoS(Quality of Service)」と呼んでいる。

 たとえば、「EMC CLARiX」というストレージアレイ製品では、「NQM(Navisphere Quality of Service Manager)」という機能でストレージのQoSを実現している。図2に示したとおり、ストレージアレイが特定のボリューム(論理的な記憶領域)に対するデータのI/O特性を測定し、予め定義した優先順位を維持するようI/Oを自動調整することで重要なサーバの性能を維持させることができるのだ。

図2 ストレージQoSの導入効果

 この機能は、サーバが仮想化されている環境においても効力を発揮するため、サービスレベルを意識した性能要件がある場合などには、おおいに利用する価値がある。

優れた負荷分散による接続経路の最適化

 サーバとストレージの経路に対する性能にも配慮すべきであろう。サーバとストレージの接続経路は、2つ以上で構成するのが一般的だ。しかし、アクティブ(本番系)とスタンバイ(待機系)というような単純な冗長構成では、可用性は維持できても性能が十分に発揮できないため、効率的とはいえない。

図3 サーバとストレージ間の接続図

 通常サーバとの接続経路を制御するには、「マルチパスI/O(MPIO)」というソフトウェアが利用されている。このMPIOを利用することで、経路の冗長化と負荷分散を実現できるのだ。MPIOは、あらかじめサーバのOSに実装されているもの(Native MPIO)と、サードベンダーがソフトウェア製品として提供しているものがある。

 Native MPIOの負荷分散ポリシーは、ラウンドロビン方式が一般的である。しかし「EMC PowerPath」というMPIOソフトウェアでは、効率のよい負荷分散(ラウンドロビンのような単純な方式ではなくつねに最適経路選択)を行なうため、経路の帯域を最大限に利用できる。さらに、経路の障害に対しては無停止で経路の切替えを実現し、障害復旧後も自動的に経路を復旧させることも可能だ。これは、可用性を高める上で非常に有効な仕組みである。

 QoSと同様に、ストレージを共有するサーバ台数が多くなると、このような性能を向上させる技術が不可欠となる。ストレージの導入を検討する際は、このような経路の制御と負荷分散機能の導入も、ぜひ視野に入れておきたい。

 前回から引き続き、今回も標準的なストレージのアーキテクチャを紹介してきた。ストレージアレイは、コンポーネントの冗長化やインターフェイスの拡張、およびキャッシュメモリやストレージのQoSなど、優れたアーキテクチャにより高い可用性を実現し、安定した性能を維持している。

 しかし、企業の情報システムにおいては、コストを削減しながら効率化を実現するという課題がある。その解決方法の1つとして、ストレージやサーバの統合が挙げられる。現在では、複数のサーバでストレージを効率的に共有するのが一般的である。

 次回は、ストレージアレイを共有化して、用途や規模を飛躍的に拡張させた、ストレージのネットワーク化技術(SAN、NAS、iSCSI)について解説する。

カテゴリートップへ

この連載の記事