(57)【特許請求の範囲】
【請求項１】
ストレージ装置が有する複数の記憶領域の内の所定の記憶領域に対するデータの送受信の性能の保証値を記憶する記憶部と、
前記所定の記憶領域に対するデータの送受信の性能の実測値の正規分布を求め、前記保証値を逸脱する割合が所定値以下となるように、求めた前記正規分布の平均及び分散を変更し、変更後の前記正規分布の平均を暫定目標値とし、前記暫定目標値に基づいて、前記所定の記憶領域に対して前記保証値と前記実測値との差分を補償する帯域幅の割り当てを行い、前記複数の記憶領域のそれぞれに対する帯域配分を決定し、決定した前記帯域配分による帯域幅の調整を前記ストレージ装置に指示する帯域幅管理部と
を備えたことを特徴とするストレージ管理装置。 
【請求項２】
前記帯域幅管理部は、前記保証値と前記実測値との差分を基に前記暫定目標値を算出することを特徴とする請求項１に記載のストレージ管理装置。
【請求項３】
前記記憶部は、他の記憶領域に対するデータの送受信の性能の調整目標である他記憶領域用目標値を記憶し、
前記帯域幅管理部は、前記所定の記憶領域に対する帯域幅の割り当てにおいて、前記保証値を達成するために割り当てる余剰帯域幅がない場合、前記他の記憶領域に割り当てていた帯域幅を前記所定の記憶領域の帯域幅の割り当てに使用し、前記保証値を達成するために割り当てる前記余剰帯域幅がある場合、前記余剰帯域幅の内の前記所定の記憶領域に割り当てた残りの帯域幅を、前記他記憶領域用目標値を達成するように前記他の記憶領域への帯域幅の割り当てに使用することを特徴とする請求項１又は２に記載のストレージ管理装置。
【請求項４】
前記帯域幅管理部は、前記所定の記憶領域が使用する伝送資源のビジー率を計測し、最も高いビジー率の値が所定値以下となるように、前記複数の記憶領域の内の前記所定の記憶領域以外の記憶領域の帯域幅を縮小することを特徴とする請求項１〜３のいずれか一つに記載のストレージ管理装置。
【請求項５】
ストレージ装置が有する複数の記憶領域の内の所定の記憶領域に対するデータの送受信の性能の保証値を取得し、
前記所定の記憶領域に対するデータの送受信の性能の実測値の正規分布を求め、前記保証値を逸脱する割合が所定値以下となるように、求めた前記正規分布の平均及び分散を変更し、変更後の前記正規分布の平均を暫定目標値とし、
前記暫定目標値に基づいて、前記所定の記憶領域に対して前記保証値と前記実測値との差分を補償する帯域幅の割り当てを行い、前記複数の記憶領域のそれぞれに対する帯域配分を決定し、
決定した前記帯域配分による帯域幅の調整を前記ストレージ装置に指示する
ことを特徴とする性能調整方法。
【請求項６】
ストレージ装置が有する複数の記憶領域の内の所定の記憶領域に対するデータの送受信の性能の保証値を取得し、
前記所定の記憶領域に対するデータの送受信の性能の実測値の正規分布を求め、前記保証値を逸脱する割合が所定値以下となるように、求めた前記正規分布の平均及び分散を変更し、変更後の前記正規分布の平均を暫定目標値とし、
前記暫定目標値に基づいて、前記所定の記憶領域に対して前記保証値と前記実測値との差分を補償する帯域幅の割り当てを行い、前記複数の記憶領域のそれぞれに対する帯域配分を決定し、
決定した前記帯域配分による帯域幅の調整を前記ストレージ装置に指示する
処理をコンピュータに実行させることを特徴とする性能調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ管理装置、性能調整方法及び性能調整プログラムに関する。
【背景技術】
【０００２】
近年、オープンシステムやサーバの仮想化が普及してきており、システムの管理が複雑化してきている。そこで、システムの管理の容易化や急速に増大するデータ容量への柔軟な対応などの観点から、ストレージシステムの導入が一般的になってきている。
【０００３】
ストレージシステムでは、異なる速度のディスクを用いることができる。例えば、ディスクには、Solid  State  Disk（ＳＳＤ）、Serial  Attached  Small  Computer  System  Interface  Hard  Disk  Drive（ＳＡＳＨＤＤ）又はSerial  Advanced  Technology  Attachment  （ＳＡＴＡ）ＨＤＤなどがある。
【０００４】
このようなストレージシステムにおいて、ストレージシステム内に存在する速度の異なるディスクを複数種類使用し１つのボリュームと呼ばれる記憶領域が作成される場合がある。さらに、１つのボリューム内の速度の異なるディスクに対して、使用頻度に応じてデータの格納場所を決定するストレージの自動階層化の技術が広がってきている。
【０００５】
ストレージの自動階層化の技術を用いた場合、例えば、使用頻度の高いデータはボリューム中の速度の速いディスクに格納され、使用頻度の低いデータはボリューム中の速度の遅いディスクに格納される。そして、ストレージの自動階層化により、低コストで高速大容量の記憶装置を実現することができる。
【０００６】
また、ストレージの性能調整の技術としては、例えば、ボリュームとアプリケーションを実行するサーバとの間のデータ転送路の帯域幅を調整することが行われている。この機能は、Quality  of  Service（ＱｏＳ）と呼ばれることがある。
【０００７】
さらに、ストレージの性能調整の技術としては、例えば、タスクを実行する際にサービスレベル要件を満たすようにノードを割り当てる従来技術が有る。また、システムの要件に合わせて仮想ボリュームへプール領域の割り当てを行う従来技術が有る。また、所望の性能を実現するように、ストレージデバイスの組み合わせをカスタマイズする従来技術がある。また、システムの要件に基づいてデータの格納先となる論理コンテナの配置を変更する従来技術がある。また、ファイルの属性及び格納先の属性を基に、複数のストレージ・クラウドから、システムの要件を満たすファイルを格納するストレージ・クラウドを選択する従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２０１４−５０６３６７号公報
【特許文献２】特表２０１３−５３６４７８号公報
【特許文献３】特開２０１４−１３２４５７号公報
【特許文献４】特表２０１４−５１７９５２号公報
【特許文献５】特開２０１４−１０４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、実測性能が目標性能に一致するように帯域幅の調整をする場合、負荷の変動などにより実測性能が変動するので、実測性能と目標性能とを完全に一致させ続けることは困難である。そのため、実測性能に目標性能を一致させるように、実測性能の変動に合わせて調整を繰り返すことになり、システムを安定運用させることが困難である。
【００１０】
また、システムの要件に応じてノードの割り当てを行う従来技術では、帯域幅の調整は考慮されておらず、帯域幅の調整を行った場合のシステムの安定運用の実現は困難である。これは、プール領域の割り当て、ストレージデバイスの組み合わせの調整、データの格納先となる論理コンテナの配置の変更及びストレージ・クラウドの選択といった従来技術でも同様である。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、帯域幅の調整を行いつつシステムを安定運用させるストレージ管理装置、性能調整方法及び性能調整プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムは、一つの態様において、記憶部は、ストレージ装置が有する複数の記憶領域の内の所定の記憶領域に対するデータの送受信の性能の保証値を取得する。帯域幅管理部は、前記所定の記憶領域に対するデータの送受信の性能の実測値の正規分布を求め、前記保証値を逸脱する割合が所定値以下となるように、求めた前記正規分布の平均及び分散を変更し、変更後の前記正規分布の平均を暫定目標値とする。また、帯域幅管理部は、前記暫定目標値に基づいて、前記所定の記憶領域に対して前記保証値と前記実測値との差分を補償する帯域幅の割り当てを行い、前記複数の記憶領域のそれぞれに対する帯域配分を決定する。さらに、帯域幅管理部は、決定した前記帯域配分による帯域幅の調整を前記ストレージ装置に指示する。
【発明の効果】
【００１３】
本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムの一つの態様によれば、帯域幅の調整を行いつつシステムを安定運用させることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、ストレージシステムの概略構成図である。
【図２】図２は、ストレージシステムのハードウェア構成図である。
【図３】図３は、実施例１に係る運用管理サーバ及びストレージ装置のブロック図である。
【図４】図４は、ＱｏＳ設定テーブルの一例の図である。
【図５】図５は、ボリューム性能情報ファイルの一例の図である。
【図６】図６は、リソース性能情報ファイルの一例の図である。
【図７】図７は、実施例１に係るストレージシステムにおける帯域幅制御のフローチャートである。
【図８】図８は、実施例１に係る運用管理サーバによるボリュームの帯域幅の調整の処理のフローチャートである。
【図９】図９は、実施例１の変形例に係る運用管理サーバによる暫定目標レスポンスタイムの算出方法を説明するための図である。
【図１０】図１０は、直近１０回分の実測レスポンスタイムの一例を示す図である。
【図１１】図１１は、保証タイプ選択画面の一例の図である。
【図１２】図１２は、ボリューム種別設定画面の一例の図である。
【図１３】図１３は、実施例２に係るＱｏＳ設定テーブルの一例の図である。
【図１４】図１４は、実施例２に係る運用管理サーバによるボリュームの帯域幅の調整の処理のフローチャートである。
【図１５】図１５は、実施例２における帯域幅調整の予約の決定処理のフローチャートである。
【図１６】図１６は、ＩＯＰＳを保証する場合の帯域幅調整の予約の決定処理のフローチャートである。
【図１７】図１７は、スループットを保証する場合の帯域幅調整の予約の決定処理のフローチャートである。
【図１８】図１８は、実施例３の変形例２に係る運用管理サーバ及びストレージ装置のブロック図である。
【図１９】図１９は、待ちＩ／Ｏキュー及び実行中Ｉ／Ｏリストの一例の図である。
【図２０】図２０は、帯域制限テーブルの一例の図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムが限定されるものではない。
【実施例１】
【００１６】
図１は、ストレージシステムの概略構成図である。図１に示すように、本実施例に係るストレージシステムは、運用管理サーバ１、ストレージ装置２、操作端末３及び業務サーバ４を有している。ここで、図１では、１台のストレージ装置２を記載しているが、ストレージ装置２の数に制限は無い。また、業務サーバ４も１台のみ記載しているが、業務サーバ４の数にも制限は無い。
【００１７】
操作端末３は、ネットワークを介して運用管理サーバ１と接続している。操作端末３は、ストレージ装置２に対する処理の指示などを運用管理サーバ１へ送信する。また、操作端末３は、運用管理サーバ１から送信されたメッセージなどをモニタに表示して操作者への通知を行う。さらに、操作端末３は、後述する保証レスポンスタイムの入力画面をモニタなどの表示装置に表示する。
【００１８】
運用管理サーバ１は、ストレージ装置２の運用及び管理を行う。運用管理サーバ１は、ＱｏＳ制御プログラムやストレージ管理プログラムを実行する。この運用管理サーバ１が、「ストレージ管理装置」の一例にあたる。
【００１９】
具体的には、運用管理サーバ１は、ストレージ装置２におけるＱｏＳの制御等を行う。ＱｏＳは、ストレージ装置２が安定した性能を維持するための性能設定機能であり、後述するボリュームの帯域幅の調整等を行う。また、運用管理サーバ１は、操作端末３から入力された命令に従いストレージ装置２を制御する。例えば、運用管理サーバ１は、操作端末３から入力されたＲＡＩＤを構成するようにストレージ装置２に指示する。
【００２０】
ストレージ装置２は、業務サーバ４上で動作するアプリケーションからの指示を受けて、ＱｏＳを適用してデータの読み出しや書き込みを行う。また、ストレージ装置２は、ボリュームの帯域幅の調整などの指示を運用管理サーバ１から受けて、ＱｏＳの制御を行う。
【００２１】
業務サーバ４は、業務用のアプリケーションを実行する。アプリケーションを実行するにあたり、業務サーバ４は、ストレージ装置２に対してデータの読み出しや書き込みを行う。業務サーバ４が実行するアプリケーションは、ストレージ装置２とデータの送受信を行うアプリケーションであれば特に制限はない。
【００２２】
図２は、ストレージシステムのハードウェア構成図である。図２では、ストレージ装置２として、ストレージ装置２１及び２２が配置されている状態を示している。また、業務サーバ４として、業務サーバ４１及び４２が配置されている状態を示している。
【００２３】
業務サーバ４は、Fiber  Channel-Host  Bus  Adapter（ＦＣ−ＨＢＡ）４１１及び４１２、並びに、Internet  Small  Computer  System  Interface（ｉＳＣＳＩ）４１３及び４１４を有している。ここで、本実施例では、ＦＣ−ＨＢＡ４１１及び４１２の２つを記載しているが、ＦＣ−ＨＢＡは、業務サーバ４にいくつ搭載されてもよい。また、ｉＳＣＳＩ４１３及び４１４の２つを記載しているが、ｉＳＣＳＩは、業務サーバ４にいくつ搭載されてもよい。
【００２４】
ＦＣ−ＨＢＡ４１１及び４１２は、ファイバチャネルを用いたデータ通信の通信インタフェースである。ＦＣ−ＨＢＡ４１１及び４１２は、ＦＣスイッチ５１及び５２にそれぞれ接続されている。
【００２５】
ｉＳＣＳＩ４１３及び４１４は、ｉＳＣＳＩの規格に準拠したデータ通信の通信インタフェースである。ｉＳＣＳＩ４１３及び４１４は、ネットワークスイッチ６１及び６２にそれぞれ接続されている。
【００２６】
ＦＣスイッチ５１及び５２は、ストレージ装置２と業務サーバ４との間のファイバチャネルを用いた通信の中継を行う。ＦＣスイッチ５１及び５２は、ＦＣ−ＨＢＡ４１１及び４１２とＦＣ−ＣＡ（Channel  Adapter）２１１とを接続する。
【００２７】
ネットワークスイッチ６１及び６２は、ストレージ装置２と業務サーバ４との間のｉＳＣＳＩを用いた通信の中継を行う。ネットワークスイッチ６１及び６２は、ｉＳＣＳＩ４１３及び４１４とｉＳＣＳＩ−ＣＡ２１２とを接続する。
【００２８】
ストレージ装置２は、Controller  Module（ＣＭ）２０１及び２０２、並びに、ディスク（Disk）２０３を有している。
【００２９】
ＣＭ２０１及び２０２は、同様の機構を有している。そこで、ここでは、ＣＭ２０１を例に説明する。
【００３０】
ＣＭ２０１は、ＦＣ−ＣＡ２１１、ｉＳＣＳＩ−ＣＡ２１２、Central  Processing  Unit（ＣＰＵ）２１３、メモリ（memory）２１４、Network  Interface  Card（ＮＩＣ）２１５及びSerial  Attached  SCSI（ＳＡＳ）２１６を有している。
【００３１】
ＦＡ−ＣＡ２１１、ｉＳＣＳＩ−ＣＡ２１２、メモリ２１４、ＮＩＣ２１５及びＳＡＳ２１６は、ＣＰＵ２１３に接続されている。
【００３２】
ＣＰＵ２１３は、ＦＣ−ＣＡ２１１及びｉＳＣＳＩ−ＣＡ２１２を介して業務サーバ４との間でデータの送受信を行う。
【００３３】
また、ＣＰＵ２１３は、ＳＡＳ２１６を介してディスク２０３に対するデータの読み出し及び書き込みを行う。
【００３４】
また、ＣＰＵ２１３は、ＮＩＣ２１５を介して、操作端末３及び運用管理サーバ１との間で通信を行う。例えば、ＣＰＵ２１３は、後述する帯域幅の調整の指示を運用管理サーバ１から受信すると、指示に従いボリューム２３２の帯域幅を調整する。
【００３５】
ストレージ装置２には、ディスク２０３が複数台搭載されている。図２では、複数台のディスク２０３によりＲＡＩＤグループ２３１が形成されている。そして、ＲＡＩＤグループ２３１は、複数のボリューム２３２を含んでいる。ボリューム２３２は、論理ボリュームである。このボリューム２３２が、「記憶領域」の一例にあたる。ただし、本実施例に限定されず、ＲＡＩＤグループ２３１が構築されていなくてもよい。
【００３６】
ここで、ＣＰＵ２１３によるデータの書き込み及び読み出しについて説明する。ＣＰＵ２１３は、業務サーバ４上で動作する業務用アプリケーションからデータの読み出しの命令であるリードコマンドや書き込みの命令であるライトコマンドを受信する。このとき、リードコマンドやライトコマンドは、例えば、ＦＣスイッチ５１のポート及びＦＣ−ＣＡ２１１のポートを経由してＣＰＵ２１３へ送信される。そして、ＣＰＵ２１３は、受信したコマンドに従って、ボリューム２３２のディスク２０３に対するデータの読み出しや書き込みを行う。このとき、データは、ＲＡＩＤグループ２３１の構成にしたがって、ボリューム２３２に対して書き込みや読み出しが行われる。また、ここでは、ＣＭ２０１のＣＰＵ２１３がデータの読み書きの処理を行う場合で説明したが、ＣＭ２０２のＣＰＵ２１３においても、同様の処理が行われる。
【００３７】
すなわち、データの書き込みや読み出しといったデータ転送において、ＦＣスイッチ５１のポート、ＦＣ−ＣＡ２１１やｉＳＣＳＩ−ＣＡ２１２のポート、データの処理を行う処理プロセッサとなるＣＰＵ２１３、及び、ボリューム２３２において競合が発生する。
【００３８】
データ転送において各リソースで競合が発生してしまうと、データ転送の性能が落ちる。そこで、競合が発生しているリソースを使用する伝送路において、その伝送路を使用するボリューム２３２の帯域幅を調整することで、リソースにおける競合を解消することができ、データ転送の性能を高い状態で維持することができる。そこで、次に、ボリューム２３２の帯域幅の調整について説明する。以下では、業務サーバ４とストレージ装置２とは、ＦＣスイッチ５１を介して接続されている場合で説明する。また、以下では、ボリューム２３２を帯域調整の単位として説明するが、帯域調整の単位はこれに限らず、例えば、ＲＡＩＤグループ２３１やストレージ装置２の全体であってもよい。
【００３９】
また、運用管理サーバ１は、ＮＩＣ（Network  Interface  Card）１１、メモリ１２、ＣＰＵ１３及びＨＤＤ（Hard  Disk  Drive）１４を有している。ＣＵＰ１３は、ＨＤＤ１４に格納された各種プログラムをメモリ１２を用いて実行する。また、ＣＰＵ１３は、ＮＩＣ１１を介して、ストレージ装置２１のＣＭ２０１及びＣＭ２０２と通信を行う。
【００４０】
図３は、実施例１に係る運用管理サーバ及びストレージ装置のブロック図である。運用管理サーバ１は、保証値設定部１０１、帯域幅管理部１０２、監視部１０３及び記憶部１０４を有している。また、ストレージ装置２は、性能情報取得部２５１、帯域幅制御部２５２及び処理実行部２５３を有している。
【００４１】
記憶部１０４は、ＱｏＳ設定テーブル１４１、ボリュームテーブル１４２、ボリューム性能情報ファイル１４３及びリソース性能情報ファイル１４４をそれぞれ記憶する所定の情報記憶領域を有している。なお、情報記憶領域は、各テーブルそのものを記憶している必要はなく、制御時にテーブル化するための情報を記憶しておいてもよい。記憶部１０４の機能は、例えば、図２のＨＤＤ１４で実現される。
【００４２】
図４は、ＱｏＳ設定テーブルの一例の図である。本実施例では、Ｑｏｓ設定テーブル１４１には、ボリューム識別情報、保証性能、種別及び帯域幅が対応付けられて登録されている。
【００４３】
ボリューム識別情報は、ボリューム２３２を一意に特定する情報である。本実施例では、ボリューム識別情報は、ストレージ装置２の番号及びボリューム２３２の番号により表されている。例えば、図２のストレージ装置２１を１番、ストレージ装置２２を２番とすると、「Ｓｔｏｒａｇｅ＝１，ＶｏｌＮｏ＝１」は、ストレージ装置２１のボリューム番号が１番のボリューム２３２を表している。
【００４４】
また、保証性能は、対応するボリューム識別情報を有するボリューム２３２に対して保証されるレスポンスタイムを表している。また、種別は、対応するボリューム識別情報を有するボリューム２３２が、レスポンスタイムが保証されているボリューム２３２かレスポンスタイムが保証されていないボリューム２３２かを示す。以下では、レスポンスタイムが保証されているボリューム２３２を、「保証ボリューム」という。また、レスポンスタイムが保証されていないボリュームを、「非保証ボリューム」という。
【００４５】
また、帯域幅は、対応するボリューム識別情報を有するボリューム２３２に設定されている帯域幅である。図４では、帯域幅は、スループットを表す毎秒のデータ量（ＭＢ  Per  Second）、及び読み込み／書き込み回数（ＩＯＰＳ：Input  Output  Per  Second）の２種類で表される。
【００４６】
ボリュームテーブル１４２は、各ボリューム２３２が使用するリソースを表す。すなわち、ボリューム識別情報で示されるボリューム２３２は、ボリュームテーブル１４２で対応付けられた処理プロセッサ、ポート番号、スイッチポート及びＲＡＩＤグループを使用する。
【００４７】
図５は、ボリューム性能情報ファイルの一例の図である。ボリューム性能情報ファイル１４３は、各ボリューム２３２の実測の性能を表す情報が登録される。本実施例では、ボリューム性能情報ファイル１４３には、測定を行った性能測定日時と共に、ボリューム識別情報、実測レスポンスタイム、実測スループット、実測ＩＯＰＳ、実測キャッシュヒット率及び実測ディレイタイムが対応付けられて登録されている。以下では、ボリューム識別情報、実測レスポンスタイム、実測スループット、実測ＩＯＰＳ、実測キャッシュヒット率及び実測ディレイタイムをまとめて、「ボリュームの性能情報」という場合がある。
【００４８】
実測レスポンスタイムは、対応するボリューム識別情報を有するボリューム２３２にデータの読み書きを行った際に計測したレスポンスタイムである。実測スループットは、対応するボリューム識別情報を有するボリューム２３２にデータの読み書きを行った際に計測したスループットである。実測ＩＯＰＳは、対応するボリューム識別情報を有するボリューム２３２にデータの読み書きを行った際に計測したＩＯＰＳである。実測キャッシュヒット率は、対応するボリューム識別情報を有するボリューム２３２にデータの読み書きを行った際に計測したキャッシュヒット率である。実測ディレイタイムは、対応するボリューム識別情報を有するボリューム２３２にデータの読み書きを行った際に計測したディレイタイムである。
【００４９】
図６は、リソース性能情報ファイルの一例の図である。リソース性能情報ファイル１４４は、各リソースの実際の性能を表す。本実施例では、リソース性能情報ファイル１４４には、測定を行った性能測定日時と共に、リソース種別、リソース識別情報及びＢｕｓｙ率が対応付けられて登録されている。
【００５０】
リソース識別情報は、どのリソースであるかを一意に特定する情報である。リソース種別は、リソース識別情報で特定されるリソースの種類を表す情報である。Ｂｕｓｙ率は、リソース識別情報で特定されるリソースの負荷率である。
【００５１】
図３に戻って説明を続ける。操作者は、性能を保証するボリューム２３２を決定する。さらに、操作者は、性能を保証するボリューム２３２に対して、どの程度の性能を保証するのかという保証する保証レスポンスタイムを決定する。
【００５２】
保証値設定部１０１は、操作者により入力されたボリューム２３２に対する保証レスポンスタイムの入力を操作端末３から受信する。すなわち、操作者により保証レスポンスタイムが設定されたボリューム２３２が保証ボリュームとなり、保証レスポンスタイムが設定されていないボリューム２３２が非保証ボリュームとなる。
【００５３】
保証値設定部１０１は、各保証ボリュームに割り当てられた保証レスポンスタイムをＱｏＳ設定テーブル１４１に登録する。この保証値設定部１０１が、「記憶部」の一例にあたる。
【００５４】
監視部１０３は、操作者からの性能収集開始の指示を操作端末３から受ける。その後、監視部１０３は、ボリューム２３２及びリソースの性能情報の、性能情報取得部２５１からの定期的な受信を開始する。そして、監視部１０３は、受信した各ボリューム２３２の性能情報をボリューム性能情報ファイル１４３に書き込む。また、監視部１０３は、受信したリソースの性能情報をリソース性能情報ファイル１４４に書き込む。
【００５５】
帯域幅管理部１０２は、ＱｏＳ設定テーブル１４１の中から保証ボリュームを特定する。
【００５６】
帯域幅管理部１０２は、保証ボリュームの中から１つ選択する。以下では、この保証ボリュームの選択を、「第１選択」という。次に、帯域幅管理部１０２は、第１選択した保証ボリュームが使用するリソースの情報をボリュームテーブル１４２から取得する。さらに、帯域幅管理部１０２は、取得した各リソースのＢｕｓｙ率をリソース性能情報ファイル１４４から取得する。そして、帯域幅管理部１０２は、第１選択した保証ボリュームが使用するリソースの中から最もＢｕｓｙ率が高いリソースを特定する。
【００５７】
帯域幅管理部１０２は、ボリュームテーブル１４２を用いて、第１選択した保証ボリュームが使用するリソースの中の最もＢｕｓｙ率が高いリソースを共有するボリューム２３２を特定する。この特定したボリューム２３２を、「共有ボリューム」という。
【００５８】
帯域幅管理部１０２は、共有ボリュームの中から保証ボリュームを１つ選択する。以下では、この保証ボリュームの選択を、「第２選択」という。第２選択される保証ボリュームには、第１選択された保証ボリュームも含まれる。
【００５９】
そして、帯域幅管理部１０２は、第２選択した保証ボリュームの実測レスポンスタイムをボリューム性能情報ファイル１４３から取得する。また、帯域幅管理部１０２は、第２選択した保証ボリュームの保証レスポンスタイムをＱｏＳ設定テーブル１４１から取得する。
【００６０】
さらに、帯域幅管理部１０２は、第２選択した保証ボリュームの暫定目標レスポンスタイムを取得する。ただし、第２選択した保証ボリュームの暫定目標レスポンスタイムが決まっていない場合、帯域幅管理部１０２は、暫定目標レスポンスタイムの初期値として保証レスポンスタイムを取得する。
【００６１】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの実測レスポンスタイムと暫定目標レスポンスタイムとを比較する。
【００６２】
暫定目標レスポンスタイムが実測レスポンスタイムより短い場合、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の拡大を予約する。さらに、帯域幅管理部１０２は、共有ボリュームのうち非保証ボリュームの帯域幅の縮小を予約する。そして、帯域幅管理部１０２は、保証レスポンスタイムと実測レスポンスタイムの差分を保証レスポンスタイムから減算した結果を暫定目標レスポンスタイムとして、第２選択した保証ボリュームに設定する。
【００６３】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイムより長い場合、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の縮小を予約する。さらに、帯域幅管理部１０２は、共有ボリュームのうち非保証ボリュームの帯域幅の拡大を予約する。そして、帯域幅管理部１０２は、保証レスポンスタイムと実測レスポンスタイムの差分を保証レスポンスタイムに加算した結果を暫定目標レスポンスタイムとして、第２選択した保証ボリュームに設定する。
【００６４】
帯域幅管理部１０２は、共有ボリュームからの保証ボリュームの第２選択及びその後の帯域幅の調整の予約及び暫定目標レスポンスタイムの設定を共有ボリュームに含まれる全ての保証ボリュームについて実行する。
【００６５】
さらに、帯域幅管理部１０２は、保証ボリューム全てについて、第１選択、並びに、その後の共有ボリュームの特定、第２選択、帯域幅の調整の予約及び暫定目標レスポンスタイムの設定を実行する。
【００６６】
そして、帯域幅管理部１０２は、各ボリューム２３２に対して行った調整の予約から各ボリューム２３２の帯域幅の調整を確定する。例えば、帯域幅管理部１０２は、初期値を０として、拡大の予約の場合１を加算し、縮小の予約の場合１を減算することで、各ボリューム２３２の調整の合計を求める。そして、帯域幅管理部１０２は、合計結果が正の値の場合、そのボリューム２３２の帯域幅の拡大を確定する。一方、合計結果が負の値の場合、帯域幅管理部１０２は、そのボリューム２３２の帯域幅の縮小を確定する。
【００６７】
その後、帯域幅管理部１０２は、確定した各ボリューム２３２の帯域幅の調整を帯域幅制御部２５２に通知する。具体的には、帯域幅管理部１０２は、各ボリューム２３２の帯域幅を増加又は縮小させる設定コマンドをストレージ装置２に対して送信する。
【００６８】
保証値設定部１０１、帯域幅管理部１０２及び監視部１０３の機能は、例えば、図２のＣＰＵ１３及びメモリ１２で実現される。例えば、ＨＤＤ１４に、保証値設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するための各種プログラムが格納される。そして、ＣＰＵ１３は、ＨＤＤ１４から各種プログラムを読み出し、保証値設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するプロセスをメモリ１２上に展開して実行する。
【００６９】
処理実行部２５３は、業務サーバ４で実行されるアプリケーションからのボリューム２３２に対するデータの読み書きの要求を受ける。そして、処理実行部２５３は、要求に応じてボリューム２３２に対してデータの読み書きを行う。
【００７０】
性能情報取得部２５１は、性能収集開始の指示を監視部１０３から受ける。そして、性能情報取得部２５１は、各ボリューム２３２の性能情報を定期的に取得し、監視部１０３へ送信する。また、性能情報取得部２５１は、各リソースの性能情報を定期的に取得し、監視部１０３へ送信する。ここで、図３では、リソースの性能情報取得の一例として、性能情報取得部２５１によるＲＡＩＤグループ２３１及びＦＣスイッチ５１からの性能情報の取得を記載している。
【００７１】
帯域幅制御部２５２は、帯域幅を拡大又は縮小する設定コマンドを帯域幅管理部１０２から受信する。そして、帯域幅制御部２５２は、各設定コマンドで指定されたボリューム２３２の帯域幅を、設定コマンドの指定に合わせて拡大又は縮小する。
【００７２】
次に、図７を参照して、本実施例に係るストレージシステムにおける帯域幅制御の流れについて説明する。図７は、実施例１に係るストレージシステムにおける帯域幅制御のフローチャートである。図７の左端のフローは、操作端末３の処理を表している。また、中央のフローは、運用管理サーバ１の処理を表している。また、右端のフローは、ストレージ装置２の処理を表している。さらに、各フローを結ぶ矢印は、矢印の方向に命令やデータが送られることを示している。
【００７３】
操作端末３は、操作者からの指示を受けて、性能収集を運用管理サーバ１の監視部１０３へ指示する（ステップＳ１１）。
【００７４】
さらに、操作端末３は、操作者からの指示を受けて、運用管理サーバ１の保証値設定部１０１に保証レスポンスタイムを通知する（ステップＳ１２）。
【００７５】
その後、操作端末３は、運用管理サーバ１の帯域幅管理部１０２から実測レスポンスタイムを受信する。そして、操作端末３は、モニタに表示するなどして、保証レスポンスタイム及び実測レスポンスタイムを操作者に通知する（ステップＳ１３）。操作者は、通知により保証レスポンスタイム及び実測レスポンスタイムのずれを確認する。
【００７６】
その後、操作端末３は、帯域幅調整処理を停止するか否かを判定する（ステップＳ１４）。例えば、操作端末３は、操作者からの帯域幅調整処理を停止の指示の入力を受けた場合に、帯域幅調整処理を停止すると判定する。
【００７７】
帯域幅調整処理を停止しないと判定した場合（ステップＳ１４：否定）、操作端末３は、ステップＳ１３へ戻る。これに対して、帯域幅調整処理を停止すると判定した場合(ステップＳ１４：肯定)、操作端末３は、帯域幅の調整を終了する。
【００７８】
次に、運用管理サーバ１の処理について説明する。監視部１０３は、性能測定開始の指示を操作端末３から受信する。そして、監視部１０３は、性能測定開始をストレージ装置２の性能情報取得部２５１に指示する（ステップＳ２１）。
【００７９】
保証値設定部１０１は、保証レスポンスタイムを操作端末３から取得する（ステップＳ２２）。
【００８０】
そして、保証値設定部１０１は、取得した各保証ボリュームの保証レスポンスタイムをＱｏＳ設定テーブル１４１に書き込む（ステップＳ２３）。
【００８１】
監視部１０３は、ボリューム２３２及びリソースの性能情報を取得する（ステップＳ２４）。そして、監視部１０３は、ボリューム２３２の性能情報をボリューム性能情報ファイル１４３に登録し、リソースの性能情報をリソース性能情報ファイル１４４に登録する。
【００８２】
帯域幅管理部１０２は、ボリューム２３２及びリソースの性能情報をボリューム性能情報ファイル１４３及びリソース性能情報ファイル１４４から読み出す（ステップＳ２５）。
【００８３】
帯域幅管理部１０２は、保証レスポンスタイムをＱｏＳ設定テーブル１４１から読み出す(ステップＳ２６)。さらに、帯域幅管理部１０２は、実測レスポンスタイムをボリューム性能情報ファイル１４３から取得する。そして、帯域幅管理部１０２は、保証レスポンスタイム及び実測レスポンスタイムを操作端末３へ送信する。
【００８４】
また、帯域幅管理部１０２は、帯域幅調整処理を実行する（ステップＳ２７）。帯域幅調整処理の詳細については次に説明する。
【００８５】
帯域幅管理部１０２は、帯域幅調整処理を停止するか否かを判定する（ステップＳ２８）。例えば、帯域幅管理部１０２は、操作者からの帯域幅調整処理を停止の指示を操作端末３から受けた場合、帯域幅調整処理を停止すると判定する。
【００８６】
帯域幅調整処理を停止しないと判定した場合（ステップＳ２８：否定）、帯域幅管理部１０２は、ステップＳ２４へ戻る。これに対して、帯域幅調整処理を停止すると判定した場合(ステップＳ２８：肯定)、帯域幅管理部１０２は、帯域幅の調整を終了する。
【００８７】
次に、ストレージ装置２の処理について説明する。性能情報取得部２５１は、性能測定開始の指示を運用管理サーバ１の監視部１０３から受信する。そして、性能情報取得部２５１は、各ボリューム２３２の性能情報及び各リソースの性能の測定を開始する（ステップＳ３１）。
【００８８】
その後、性能情報取得部２５１は、取得した各ボリューム２３２の性能情報及び各リソースの性能情報を運用管理サーバ１の帯域幅管理部１０２に送信する（ステップＳ３２）。
【００８９】
その後、帯域幅制御部２５２は、運用管理サーバ１の帯域幅管理部１０２から設定コマンドを受けて、指定されたボリューム２３２の帯域幅を拡大又は縮小し、指定された帯域幅に調整する（ステップＳ３３）。
【００９０】
帯域幅制御部２５２は、帯域幅調整処理を停止するか否かを判定する（ステップＳ３４）。例えば、帯域幅制御部２５２は、操作者からの帯域幅調整処理を停止の指示を運用管理サーバ１から受けた場合、帯域幅調整処理を停止すると判定する。
【００９１】
帯域幅調整処理を停止しないと判定した場合（ステップＳ３４：否定）、帯域幅制御部２５２は、ステップＳ３２へ戻る。これに対して、帯域幅調整処理を停止すると判定した場合(ステップＳ３４：肯定)、帯域幅制御部２５２は、帯域幅の調整を終了する。
【００９２】
次に、図８を参照して、本実施例に係る運用管理サーバ１によるボリューム２３２の帯域幅の調整の処理について説明する。図８は、実施例１に係る運用管理サーバによるボリュームの帯域幅の調整の処理のフローチャートである。図８のフローチャートは、図７のステップＳ２７で運用管理サーバ１が実施する処理の詳細を表す。
【００９３】
帯域幅管理部１０２は、保証ボリュームについての性能情報をボリューム性能情報ファイル１４３から取得する（ステップＳ１０１）。
【００９４】
帯域幅管理部１０２は、保証ボリュームから１つを選択（第１選択）する（ステップＳ１０２）。
【００９５】
帯域幅管理部１０２は、選択した保証ボリュームが使用するリソースの中でＢｕｓｙ率が最も高いリソースを選択する（ステップＳ１０３）。
【００９６】
次に、帯域幅管理部１０２は、選択したリソースを共有する共有ボリュームを特定する。さらに、帯域幅管理部１０２は、共有ボリュームから保証ボリュームを１つ選択（第２選択）する（ステップＳ１０４）。
【００９７】
帯域幅管理部１０２は、選択した保証ボリュームに設定されている暫定目標レスポンスタイムが実測レスポンスタイムより短いか否かを判定する（ステップＳ１０５）。暫定目標レスポンスタイムが実測レスポンスタイムより短い場合（ステップＳ１０５：肯定）、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の拡大を予約する（ステップＳ１０６）。
【００９８】
さらに、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の縮小を予約する（ステップＳ１０７）。
【００９９】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの保証レスポンスタイムと実測レスポンスタイムとの差分を保証レスポンスタイムから減算した結果を、暫定目標レスポンスタイムとして第２選択した保証ボリュームに設定する（ステップＳ１０８）。
【０１００】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイム以上の場合（ステップＳ１０５：否定）、帯域幅管理部１０２は、暫定目標レスポンスタイムが実測レスポンスタイムより長いか否かを判定する（ステップＳ１０９）。暫定目標レスポンスタイムが実測レスポンスタイムと等しい場合（ステップＳ１０９：否定）、帯域幅管理部１０２は、ステップＳ１１３へ進む。
【０１０１】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイムより長い場合（ステップＳ１０９：肯定）、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の縮小を予約する（ステップＳ１１０）。
【０１０２】
さらに、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の拡大を予約する（ステップＳ１１１）。
【０１０３】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの保証レスポンスタイムと実測レスポンスタイムとの差分を保証レスポンスタイムに加算した結果を、暫定目標レスポンスタイムとして第２選択した保証ボリュームに設定する（ステップＳ１１２）。
【０１０４】
帯域幅管理部１０２は、共有ボリュームに含まれる全ての保証ボリュームの判定が終了したか否かを判定する（ステップＳ１１３）。すなわち、帯域幅管理部１０２は、第２選択を共有ボリュームに含まれる全ての保証ボリュームについて行ったかを判定する。判定が終わっていない保証ボリュームがある場合（ステップＳ１１３：否定）、帯域幅管理部１０２は、ステップＳ１０４へ戻る。
【０１０５】
これに対して、共有ボリュームに含まれる全ての保証ボリュームの判定が終了した場合（ステップＳ１１３：肯定）、帯域幅管理部１０２は、全ての保証ボリュームについての判定が終了したかを判定する（ステップＳ１１４）。すなわち、帯域幅管理部１０２は、第１選択を全ての保証ボリュームについて帯域幅調整の判定を行ったかを判定する。判定が終了していない保証ボリュームがある場合（ステップＳ１１４：否定）、帯域幅管理部１０２は、ステップＳ１０２へ戻る。
【０１０６】
一方、全ての保証ボリュームについての判定が終了した場合（ステップＳ１１４：肯定）、帯域幅管理部１０２は、各ボリューム２３２に対する拡大及び縮小の予約から、各ボリューム２３２の帯域幅の拡大又は縮小を確定する。そして、帯域幅管理部１０２は、確定した各ボリューム２３２の帯域幅の拡大又は縮小を指示する設定コマンドを生成する（ステップＳ１１５）。
【０１０７】
その後、帯域幅管理部１０２は、生成した設定コマンドを帯域幅制御部２５２へ送信する（ステップＳ１１６）。
【０１０８】
以上に説明したように、本実施例に係るストレージ管理装置は、保証性能を設定し、その保証性能との差分を埋めるための暫定目標レスポンスタイムを逐一算出して、暫定目標レスポンスタイムに近づくように帯域幅を調整する。これにより、本実施例に係るストレージ管理装置は、保証ボリュームの帯域幅の平均を保証値に近接させることができる。これにより、瞬間の実測値が保証レスポンスタイムと異なっていても、調整幅を徐々に小さくすることができ、帯域幅の調整を行いつつシステムを安定運用させることができる。
【０１０９】
また、本実施例では、帯域幅管理部１０２は、保証値からの実測値の逸脱分を基にして暫定目標レスポンスタイムを算出しているが、算出方法はこれに限らない。例えば、帯域幅の調整時間を決定し、逸脱分を残り時間で割った平均値を基に、暫定目標レスポンスタイムを算出してもよい。
【０１１０】
（変形例）
さらに、以上に説明した本実施例では、保証レスポンスタイムと実測レスポンスタイムとの差を埋める暫定目標レスポンスタイムを都度求め、暫定目標レスポンスタイムに一致するように帯域幅の調整を行った。すなわち、実測レスポンスタイムの平均が保証レスポンスタイムを満たすように帯域幅を調整した。これに対して、変形例では、実測レスポンスタイムが保証レスポンスタイムを超える割合が一定以下になるように保証する。すなわち、変形例に係る運用管理サーバは、暫定目標レスポンスタイムの算出方法が実施例１と異なる。本実施例では、実測レスポンスタイムが保証レスポンスタイムを超える割合を１０％とする場合で説明する。
【０１１１】
記憶部１０４は、少なくとも直近１０回分の各ボリューム２３２の実測レスポンスタイムをボリューム性能情報ファイル１４３に保持しておく。
【０１１２】
帯域幅管理部１０２は、直近１０回分の実測レスポンスタイムをボリューム性能情報ファイル１４３から取得する。そして、帯域幅管理部１０２は、取得した直近１０回分の実測レスポンスタイムを用いて、図９に示す正規分布曲線３０１を求める。ここで、図９は、実施例１の変形例に係る運用管理サーバによる暫定目標レスポンスタイムの算出方法を説明するための図である。σは、正規分布曲線３０１における標準偏差を表している。また、ｘは、正規分布曲線３０１における平均を表している。すなわち、ｘは、平均レスポンスタイムである。
【０１１３】
また、図９における、ｗは保証値である。さらに、正規分布曲線３０２は、調整の目標とする正規分布曲線である。そして、ａσ’は、正規分布曲線３０２の標準偏差を表している。ａは係数である。また、ｘ’は、正規分布曲線３０２の平均を表している。すなわち、図９の斜線が引かれた領域が正規分布曲線３０２の１０％になれば、実測レスポンスタイムが保証レスポンスタイムを超える割合が１０％となる。
【０１１４】
そして、暫定目標レスポンスタイムをｘ’とすると、ｘ’＋ａσ’＝ｗと表される。さらに、ｘ，ｘ’，σ，σ’にｘ：ｘ’＝σ：σ’という比例関係があると仮定できる。ここで、帯域幅の変更を段階的に行うこと、直近の性能情報のみを用いていること、及び、計算の単純化からｘ，ｘ’，σ，σ’が比例すると仮定している。ただし、正規分布式を用いてｘ，ｘ’，σ，σ’の関係式を厳密に算出してもよい。
【０１１５】
そして、ｘ’＋ａσ’＝ｗとｘ：ｘ’＝σ：σ’とから、暫定目標レスポンスタイムｘ’は、ｘ’＝ｗ×｛ｘ／（ａσ＋ｘ）｝として求まる。
【０１１６】
また、σ’は、σ’＝（ｗσ／ｘ）×｛ｘ／（ａσ＋ｘ）｝として求まる。
【０１１７】
そこで、帯域幅管理部１０２は、以下の方法で暫定目標レスポンスタイムｘ’を求める。まず、帯域幅管理部１０２は、逸脱率が１０％以下となる係数ａを標準正規分布表を用いて求める。次に、帯域幅管理部１０２は、上述した式に求めた係数ａを用いて、暫定目標レスポンスタイムｘ’を算出する。
【０１１８】
そして、帯域幅管理部１０２は、算出した暫定目標レスポンスタイムを用いて、実施例１と同様に各保証ボリューム及び非保証ボリュームの帯域幅の拡大及び縮小を決定する。
【０１１９】
ここで、暫定目標レスポンスタイムの具体的な算出例について説明する。ここでは、保証値ｗが７で、逸脱率が１０％となるような暫定目標レスポンスタイムを求める場合で説明する。
【０１２０】
帯域幅管理部１０２は、直近１０回分の実測レスポンスタイムのデータとして、図１０に示す各値を取得する。図１０は、直近１０回分の実測レスポンスタイムの一例を示す図である。そして、帯域幅管理部１０２は、この場合の平均ｘを９．２と算出する。また、帯域幅管理部１０２は、この場合の標準偏差σを１．６と算出する。さらに、帯域幅管理部１０２は、標準正規分布表を用いて、逸脱率が１０％以下となるときの係数ａを１．３と決定する。
【０１２１】
そして、帯域幅管理部１０２は、ｘ’＝ｗ×｛ｘ／（ａσ＋ｘ）｝に各値を代入して、暫定目標レスポンスタイムｘ’を５．７と求める。また、帯域幅管理部１０２は、σ’＝（ｗσ／ｘ）×｛ｘ／（ａσ＋ｘ）｝に各値を代入して、標準偏差σ’を０．９９と求める。
【０１２２】
ここで、帯域幅調整実行時と比べて古いデータは負荷が異なっていることが考えられ、また、データが少ないと正確な正規分布曲線が得られない。そこで、本変形例では、データの正確性と正規分布曲線の精度のバランスを考えて、本実施例では、直近１０回のデータを利用した。ただし、使用するデータの数はこれに限らず、例えば、負荷の変化が少ない場合には、さらに多くのデータを用いて正規分布曲線の精度を向上させてもよい。
【０１２３】
以上に説明したように、本変形例に係る運用管理サーバは、実測レスポンスタイムが保証レスポンスタイムを超える割合を所定の割合に抑えることができる。これにより、実測性能が保証値を超える割合を抑えることができ、帯域幅の調整を行いつつシステムを安定運用させることができる。
【０１２４】
さらに、実施例１の暫定目標レスポンスタイムの計算方法と変形例の暫定目標レスポンスタイムの計算方法とを操作者が選択できるように構成することもできる。例えば、以下のような機能を備えることで、この構成を実現できる。
【０１２５】
操作端末３は、図１１のような保証タイプ選択画面を表示装置に表示させる。図１１は、保証タイプ選択画面の一例の図である。そして、操作者は、マウスなどの入力装置を用いて、保証タイプ選択画面の中から、平均性能の保証又は目標性能からの逸脱率の保証のいずれの保証タイプを用いるかを、保証ボリューム毎に選択する。操作端末３は、入力された保証タイプの情報を帯域幅管理部１０２に通知する。
【０１２６】
そして、帯域幅管理部１０２は、平均性能の保証の保証タイプが選択された保証ボリュームに対しては実施例１の帯域幅調整を行い、目標性能からの逸脱率の保証の保証タイプが選択された保証ボリュームに対しては実施例１の変形例の帯域幅調整を行う。
【０１２７】
このように、帯域幅調整の方法として実施例１又は変形例のいずれかを選べるようにすることで、より運用環境に適した帯域幅の調整を行うことができる。
【実施例２】
【０１２８】
次に、実施例２について説明する。本実施例に係る運用管理サーバは、非保証ボリュームの中に目標値が設定されたボリューム２３２を有し、保証ボリュームの性能保証を優先させた上で、非保証ボリュームの中の目標値が設定されたボリューム２３２の性能を目標値に近づけることが実施例１と異なる。本実施例に係る運用管理サーバも、図３のブロック図で表される。以下の説明では、実施例１で説明した各部の機能と同じ機能については説明を省略する。また、以下の説明では、実施例１の非保証ボリュームとの混乱を避けるため、非保証ボリュームを「犠牲ボリューム」という。そして、犠牲ボリューム中の目標値が設定されたボリューム２３２を「目標値設定ボリューム」といい、目標値が設定されていないボリューム２３２を「非目標値設定ボリューム」という。
【０１２９】
操作端末３は、操作者から帯域幅の調整の対象とするボリューム２３２の指定を受けると、図１２に示すようなボリューム種別設定画面をモニタなどの表示装置に表示させる。図１２は、ボリューム種別設定画面の一例の図である。そして、操作者は、マウスなどの入力装置を用いて、そのボリューム２３２を保証ボリュームにするか犠牲ボリュームにするかといったボリュームの種別を選択する。例えば、ボリュームの種別は、保証ボリュームがデフォルトで選択されている。さらに、操作者は、キーボードなどの入力装置を用いて目標性能を入力する。より詳細には、操作者は、保証ボリュームには保証レスポンスタイムを入力し、犠牲ボリュームには目標値を入力する。操作端末３は、操作者から入力されたボリュームの種別及び目標性能を保証値設定部１０１へ送信する。
【０１３０】
保証値設定部１０１は、ボリュームの種別及び目標性能を操作端末３から受信する。そして、保証値設定部１０１は、受信したボリュームの種別及び目標性能をＱｏＳ設定テーブル１４１に登録する。図１３は、実施例２に係るＱｏＳ設定テーブルの一例の図である。本実施例に係るＱｏＳ設定テーブル１４１は、ボリュームの種別を表す項目を有する。保証値設定部１０１は、目標値を設定された犠牲ボリュームの場合、ＱｏＳ設定テーブル１４１の種別の欄に犠牲と登録する。そして、保証値設定部１０１は、目標／保証性能の欄に、目標値を登録する。これに対して、保証ボリュームの場合、保証値設定部１０１は、ＱｏＳ設定テーブル１４１の種別の欄に保証と登録する。そして、保証値設定部１０１は、目標／保障性能の欄に、保証値を登録する。
【０１３１】
次に、帯域幅管理部１０２について説明するが、ここでは、第２選択以降の動作について説明する。帯域幅管理部１０２は、共有ボリュームの中から、保証ボリューム又は目標値設定ボリュームを第２選択する。帯域幅管理部１０２は、第２選択したボリューム２３２が犠牲ボリュームの場合、そのボリューム２３２に対して犠牲フラグをＯＦＦに設定する。ここで、犠牲フラグとは、ＯＮの場合には、例え目標値が設定されていても帯域幅の縮小を優先するボリューム２３２であることを表すフラグである。
【０１３２】
次に、帯域幅管理部１０２は、第２選択したボリューム２３２の実測レスポンスタイムをボリューム性能情報ファイル１４３から取得する。
【０１３３】
次に、第２選択したボリューム２３２が保証ボリュームの場合、第２選択した保証ボリュームの保証レスポンスタイムをＱｏＳ設定テーブル１４１から取得する。そして、帯域幅管理部１０２は、第２選択した保証ボリュームの暫定目標レスポンスタイムを取得する。
【０１３４】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの実測レスポンスタイムと暫定目標レスポンスタイムとを比較する。
【０１３５】
暫定目標レスポンスタイムが実測レスポンスタイムより短い場合、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の拡大を予約する。さらに、帯域幅管理部１０２は、共有ボリュームの中の非目標値設定ボリュームの帯域幅の縮小を予約する。次に、帯域幅管理部１０２は、共有ボリュームの中の目標値設定ボリュームの犠牲フラグをＯＮにする。次に、帯域幅管理部１０２は、共有ボリュームの中の目標値設定ボリュームの帯域幅の縮小を予約する。そして、帯域幅管理部１０２は、保証レスポンスタイムと実測レスポンスタイムの差分を保証レスポンスタイムから減算した結果を暫定目標レスポンスタイムとして、第２選択した保証ボリュームに設定する。
【０１３６】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイムより長い場合、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の縮小を予約する。さらに、帯域幅管理部１０２は、共有ボリュームの中の非目標値設定ボリュームの帯域幅の拡大を予約する。そして、帯域幅管理部１０２は、保証レスポンスタイムと実測レスポンスタイムの差分を保証レスポンスタイムに加算した結果を暫定目標レスポンスタイムとして、第２選択した保証ボリュームに設定する。
【０１３７】
一方、第２選択したボリューム２３２が目標値設定ボリュームの場合、第２選択した目標値設定ボリュームの目標レスポンスタイムをＱｏＳ設定テーブル１４１から取得する。そして、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの実測レスポンスタイムと目標レスポンスタイムとを比較する。
【０１３８】
目標レスポンスタイムが実測レスポンスタイムより短い場合、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの犠牲フラグを確認する。犠牲フラグがＯＮの場合、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの帯域幅の拡大を行わない。これに対して、犠牲フラグがＯＦＦの場合、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの帯域幅の拡大を予約する。さらに、帯域幅管理部１０２は、共有ボリュームの中の非目標値設定ボリュームの帯域幅の縮小を予約する。
【０１３９】
保証ボリュームの帯域幅の拡大と目標値設定ボリュームの帯域幅の拡大とでは、保証ボリュームの拡大を優先する。すなわち、保証ボリュームの帯域幅の予約した上で、なおかつ非目標値設定ボリュームへの帯域幅の割り当てが残っている場合に、帯域幅管理部１０２は、目標値設定ボリュームの帯域幅の拡大を予約する。もし、日目標値設定ボリュームへの帯域幅の割り当てが残っていなければ、帯域幅管理部１０２は、目標値設定ボリュームの帯域幅の拡大は行わない。
【０１４０】
これに対して、目標レスポンスタイムが実測レスポンスタイムより長い場合、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの帯域幅の縮小を予約する。さらに、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの犠牲フラグを確認する。犠牲フラグがＯＦＦであれば、帯域幅管理部１０２は、共有ボリュームの中の非目標値設定ボリュームの帯域幅の拡大を予約する。この目標値設定ボリュームが、「他の記憶領域」の一例にあたる。
【０１４１】
帯域幅管理部１０２は、共有ボリュームからの保証ボリューム及び目標値設定ボリュームの第２選択及びその後の帯域幅の調整の予約及び暫定目標レスポンスタイムの設定を共有ボリュームに含まれる全ての保証ボリューム及び目標値設定ボリュームについて実行する。
【０１４２】
次に、図１４を参照して、本実施例に係る運用管理サーバ１によるボリューム２３２の帯域幅の調整の処理について説明する。図１４は、実施例２に係る運用管理サーバによるボリュームの帯域幅の調整の処理のフローチャートである。
【０１４３】
帯域幅管理部１０２は、保証ボリューム及び目標値設定ボリュームについての性能情報をボリューム性能情報ファイル１４３から取得する（ステップＳ２０１）。
【０１４４】
帯域幅管理部１０２は、保証ボリューム及び目標値設定ボリュームから１つを選択（第１選択）する（ステップＳ２０２）。
【０１４５】
帯域幅管理部１０２は、選択したボリューム２３２が使用するリソースの中でＢｕｓｙが最も高いリソースを選択する（ステップＳ２０３）。
【０１４６】
さらに、帯域幅管理部１０２は、目標値設定ボリュームの犠牲フラグをＯＦＦにする（ステップＳ２０４）。
【０１４７】
次に、帯域幅管理部１０２は、選択したリソースを共有する共有ボリュームを特定する。さらに、帯域幅管理部１０２は、共有ボリュームから保証ボリューム又は目標値設定ボリュームを１つ選択（第２選択）する（ステップＳ２０５）。
【０１４８】
そして、帯域幅管理部１０２は、第２選択したボリューム２３２に対する帯域幅調整の予約の決定処理を行う（ステップＳ２０６）。この帯域幅調整の予約の決定処理については次に詳細に説明する。
【０１４９】
帯域幅管理部１０２は、共有ボリュームに含まれる全ての保証ボリューム及び目標値設定ボリュームの判定が終了したか否かを判定する（ステップＳ２０７）。判定が終わっていない保証ボリューム又は目標値設定ボリュームがある場合（ステップＳ２０７：否定）、帯域幅管理部１０２は、ステップＳ２０５へ戻る。
【０１５０】
これに対して、共有ボリュームに含まれる全ての保証ボリューム及び目標値設定ボリュームの判定が終了した場合（ステップＳ２０７：肯定）、帯域幅管理部１０２は、全ての保証ボリューム及び目標値設定ボリュームについての選択（第１選択）が終了したかを判定する（ステップＳ２０８）。第１選択されていない保証ボリューム又は目標値設定ボリュームがある場合（ステップＳ２０８：否定）、帯域幅管理部１０２は、ステップＳ２０２へ戻る。
【０１５１】
一方、全ての保証ボリューム及び目標値設定ボリュームについての選択が終了した場合（ステップＳ２０８：肯定）、帯域幅管理部１０２は、各ボリューム２３２に対する拡大及び縮小の予約から、各ボリューム２３２の帯域幅の拡大又は縮小を確定する。そして、帯域幅管理部１０２は、確定した各ボリューム２３２の帯域幅の拡大又は縮小を指示する設定コマンドを生成する（ステップＳ２０９）。
【０１５２】
その後、帯域幅管理部１０２は、生成した設定コマンドを帯域幅制御部２５２へ送信する（ステップＳ２１０）。
【０１５３】
次に、図１５を参照して、本実施例における帯域幅調整の予約の決定処理の流れについて説明する。図１５は、実施例２における帯域幅調整の予約の決定処理のフローチャートである。図１５のフローは、図１４のフローチャートにおけるステップＳ２０６で実行される処理の一例にあたる。
【０１５４】
帯域幅管理部１０２は、選択したボリューム２３２が保証ボリュームか否かを判定する（ステップＳ２１１）。
【０１５５】
選択したボリューム２３２が保証ボリュームの場合（ステップＳ２１１：肯定）、帯域幅管理部１０２は、選択した保証ボリュームに設定されている暫定目標レスポンスタイムが実測レスポンスタイムより短いか否かを判定する（ステップＳ２１２）。暫定目標レスポンスタイムが実測レスポンスタイムより短い場合（ステップＳ２１２：肯定）、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の拡大を予約する（ステップＳ２１３）。
【０１５６】
さらに、帯域幅管理部１０２は、共有ボリュームにおける非目標値設定ボリュームの帯域幅の縮小を予約する（ステップＳ２１４）。
【０１５７】
次に、帯域幅管理部１０２は、共有ボリュームにおける目標値設定ボリュームの犠牲フラグをＯＮにする（ステップＳ２１５）。そして、帯域幅管理部１０２は、共有ボリュームにおける目標値設定ボリュームの帯域幅の縮小を予約する（ステップＳ２１６）。
【０１５８】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの保証レスポンスタイムと実測レスポンスタイムとの差分を保証レスポンスタイムから減算した結果を、暫定目標レスポンスタイムとして第２選択した保証ボリュームに設定する（ステップＳ２１７）。
【０１５９】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイム以上の場合（ステップＳ２１２：否定）、帯域幅管理部１０２は、暫定目標レスポンスタイムが実測レスポンスタイムより長いか否かを判定する（ステップＳ２１８）。暫定目標レスポンスタイムが実測レスポンスタイムに等しい場合（ステップＳ２１８：否定）、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０１６０】
これに対して、暫定目標レスポンスタイムが実測レスポンスタイムより長い場合（ステップＳ２１８：肯定）、帯域幅管理部１０２は、第２選択した保証ボリュームの帯域幅の縮小を予約する（ステップＳ２１９）。
【０１６１】
さらに、帯域幅管理部１０２は、共有ボリュームにおける非目標値設定ボリュームの帯域幅の拡大を予約する（ステップＳ２２０）。
【０１６２】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームの保証レスポンスタイムと実測レスポンスタイムとの差分を保証レスポンスタイムに加算した結果を、暫定目標レスポンスタイムとして第２選択した保証ボリュームに設定する（ステップＳ２２１）。
【０１６３】
一方、選択したボリューム２３２が目標値設定ボリュームの場合（ステップＳ２１１：否定）、帯域幅管理部１０２は、選択した目標値設定ボリュームに設定されている目標レスポンスタイムが実測レスポンスタイムより短いか否かを判定する（ステップＳ２２２）。
【０１６４】
目標レスポンスタイムが実測レスポンスタイムより短い場合（ステップＳ２２２：肯定）、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの犠牲フラグがＯＦＦか否かを判定する（ステップＳ２２３）。犠牲フラグがＯＦＦの場合（ステップＳ２２３：肯定）、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの帯域幅の拡大を予約する（ステップＳ２２４）。これに対して、犠牲グラフがＯＮの場合（ステップＳ２２３：否定）、帯域幅管理部１０２は、ステップＳ２２５へ進む。
【０１６５】
そして、帯域幅管理部１０２は、共有ボリュームにおける非目標値設定ボリュームの帯域幅の縮小を予約する（ステップＳ２２５）。
【０１６６】
一方、目標レスポンスタイムが実測レスポンスタイム以上の場合（ステップＳ２２２：否定）、帯域幅管理部１０２は、目標レスポンスタイムが実測レスポンスタイムより長いか否かを判定する（ステップＳ２２６）。目標レスポンスタイムが実測レスポンスタイムに等しい場合（ステップＳ２２６：否定）、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０１６７】
これに対して、目標レスポンスタイムが実測レスポンスタイムより長い場合（ステップＳ２２６：肯定）、帯域幅管理部１０２は、第２選択した目標値設定ボリュームの帯域幅の縮小を予約する（ステップＳ２２７）。
【０１６８】
さらに、帯域幅管理部１０２は、目標値設定ボリュームの犠牲フラグがＯＦＦか否かを判定する（ステップＳ２２８）。犠牲フラグがＯＮの場合（ステップＳ２２８：否定）、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０１６９】
これに対して、犠牲フラグがＯＦＦの場合（ステップＳ２２８：肯定）、帯域幅管理部１０２は、共有ボリュームにおける非目標値設定ボリュームの帯域幅の拡大を予約する（ステップＳ２２９）。
【０１７０】
以上に説明したように、本実施例に係るストレージ管理装置は、非保証ボリュームの中に目標値を設定した目標値設定ボリュームを設ける。そして、本実施例に係るストレージ管理装置は、保証ボリュームの帯域幅の確保を優先し、保証ボリュームの帯域幅が確保されている場合に目標値設定ボリュームの帯域幅を拡張する。これにより、少なくとも保証ボリュームで保証されている性能を達成することができ、さらに、性能に余剰が有る場合に、目標値設定ボリュームの性能を確保することができる。したがって、保証ボリュームの性能保証をより確実に実現することができる。
【実施例３】
【０１７１】
次に、実施例３について説明する。本実施例に係る運用管理サーバは、各ボリュームのＩＯＰＳやスループットを保証することが実施例１と異なる。本実施例に係る運用管理サーバも、図３のブロック図で表される。以下の説明では、実施例１で説明した各部の機能と同じ機能については説明を省略する。
【０１７２】
本実施例では、ＩＯＰＳやスループットが保証された保証ボリュームの場合、他のボリューム２３２の帯域幅を縮小して、保証ボリュームにおいて最大帯域使用状態となるようにディスクＢｕｓｙ率を調整する。ここで、ディスクのＢｕｓｙ率とは、例えば、保証ボリュームを構成するディスク２０３に対する一定時間内の読み書き時間の合計を一定時間で割ったものである。最大帯域使用状態となるＢｕｓｙ率は、その値よりＢｕｓｙ率が下がると他のボリューム２３２による性能の影響がほとんどなくなる値であり、保証ボリュームが最大性能を発揮する値である。例えば、Ｂｕｓｙ率と性能との関係を実測し、その結果から性能が飽和する手前のＢｕｓｙ率を最大使用状態となるＢｕｓｙ率とすることができる。実際には、Ｂｕｓｙ率は、運用環境に合わせて決定されることが好ましい。以下では、ＩＯＰＳを保証する場合は、最大使用状態となるＢｕｓｙ率を６０％とし、スループットを保証する場合は、最大使用状態となるＢｕｓｙ率を８０％としている。以下では、ディスクのＢｕｓｙ率を単に「Ｂｕｓｙ率」として説明する。
【０１７３】
操作者は、操作端末３を用いて、性能を保証する保証ボリュームを指定する。さらに、操作者は、保証ボリューム毎に、ＩＯＰＳ、スループット又はレスポンスタイムのいずれを保証するかを表す性能保証の種類の情報を入力するとともにその保証値を入力する。操作端末３は、保証ボリュームの情報、各保証ボリュームの性能保証の種類の情報及び保証値を保証値設定部１０１へ送信する。
【０１７４】
保証値設定部１０１は、保証ボリュームの情報、各保証ボリュームの性能保証の種類の情報及び保証値を操作端末３から受信する。そして、保証値設定部１０１は、受信した保証ボリュームの情報、各保証ボリュームの性能保証の種類の情報及び保証値をＱｏＳ設定テーブル１４１へ登録する。例えば、保証値設定部１０１は、図４に示すＱｏＳ設定テーブル１４１の種別の欄に、ボリューム２３２の種別とともに性能保証の種類の情報を登録する。
【０１７５】
帯域幅管理部１０２は、各保証ボリュームの性能保証の種類及び各保証ボリュームに設定された保証ＩＯＰＳ、保証スループット又は保証レスポンスタイムをＱｏＳ設定テーブル１４１から取得する。さらに、帯域幅管理部１０２は、各保証ボリュームの実測レスポンスタイム、実測ＩＯＰＳ及び実測スループットをボリューム性能情報ファイル１４３から取得する。
【０１７６】
そして、帯域幅管理部１０２は、第１選択及び第２選択を行う。第２選択した保証ボリュームの性能保証の種類がレスポンスタイムの場合、帯域幅管理部１０２は、実施例１と同様に、暫定目標レスポンスタイムを用いて保証ボリュームの帯域幅の拡大又は縮小を予約し、さらに暫定目標レスポンスタイムを再設定する。
【０１７７】
一方、第２選択した保証ボリュームの性能保証の種類がＩＯＰＳの場合、帯域幅管理部１０２は、保証ＩＯＰＳと実測ＩＯＰＳとを比較する。保証ＩＯＰＳが実測ＩＯＰＳ以下の場合、帯域幅管理部１０２は、性能が保証できていると判定し、第２選択した保証ボリュームの帯域調整を行わない。
【０１７８】
これに対して、保証ＩＯＰＳが実測ＩＯＰＳより大きい場合、帯域幅管理部１０２は、第２選択した保証ボリュームのＢｕｓｙ率が６０％以上であるか否かを判定する。そして、Ｂｕｓｙ率が６０％以上の場合、帯域幅管理部１０２は、非保証ボリュームの帯域幅の縮小を予約する。ただし、帯域幅が縮小可能な非保証ボリュームが存在しない場合、帯域幅管理部１０２は、警告メッセージを操作端末３に送信する。
【０１７９】
これに対して、Ｂｕｓｙ率が６０％未満の場合、帯域幅管理部１０２は、性能保証が困難であると判定し、警告メッセージを操作端末３に送信する。
【０１８０】
また、第２選択した保証ボリュームの性能保証の種類がスループットの場合、帯域幅管理部１０２は、保証スループットと実測スループットとを比較する。保証スループットが実測スループット以下の場合、帯域幅管理部１０２は、性能が保証できていると判定し、第２選択した保証ボリュームの帯域調整を行わない。
【０１８１】
これに対して、保証スループットが実測スループットより大きい場合、帯域幅管理部１０２は、第２選択した保証ボリュームのＢｕｓｙ率が８０％以上であるか否かを判定する。Ｂｕｓｙ率が８０％以上の場合、帯域幅管理部１０２は、非保証ボリュームの帯域幅の縮小を予約する。ただし、帯域幅が縮小可能な非保証ボリュームが存在しない場合、帯域幅管理部１０２は、警告メッセージを操作端末３に送信する。
【０１８２】
これに対して、Ｂｕｓｙ率が８０％未満の場合、帯域幅管理部１０２は、性能保証が困難であると判定し、警告メッセージを操作端末３に送信する。
【０１８３】
このように、帯域幅管理部１０２は、最も高いＢｕｓｙ率を有する保証ボリュームであっても、そのＢｕｓｙ率がＩＯＰＳを判定基準とした場合６０％以下とし、スループットを判定基準とした場合８０５以下となるように制御する。すなわち、判定基準によって閾値の値が異なるが、帯域幅管理部１０２は、最も高いＢｕｓｙ率を有する保証ボリュームのＢｕｓｙ率が閾値以下となるようにＢｕｓｙ率を調整する。
【０１８４】
次に、図１６を参照して、ＩＯＰＳを保証する場合の帯域幅調整の予約の決定処理の流れについて説明する。図１６は、ＩＯＰＳを保証する場合の帯域幅調整の予約の決定処理のフローチャートである。
【０１８５】
帯域幅管理部１０２は、実測ＩＯＰＳが保証ＩＯＰＳ以上か否かを判定する（ステップＳ３０１）。実測ＩＯＰＳが保証ＩＯＰＳ未満の場合（ステップＳ３０１：否定）、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０１８６】
これに対して、実測ＩＯＰＳが保証ＩＯＰＳ以上の場合（ステップＳ３０１：肯定）、帯域幅管理部１０２は、Ｂｕｓｙ率が６０％以上か否かを判定する（ステップＳ３０２）。
【０１８７】
Ｂｕｓｙ率が６０％以上の場合（ステップＳ３０２：肯定）、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の縮小が可能か否かを判定する(ステップＳ３０３)。
【０１８８】
帯域幅の縮小が可能な場合（ステップＳ３０３：肯定）、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の縮小を予約する（ステップＳ３０４）。
【０１８９】
一方、ステップＳ３０２でＢｕｓｙ率が６０％未満の場合（ステップＳ３０２：否定）及びステップＳ３０３で帯域幅の縮小が困難な場合(ステップＳ３０３：否定)、帯域幅管理部１０２は、警告メッセージを操作端末３へ送信する（ステップＳ３０５）。
【０１９０】
次に、図１７を参照して、スループットを保証する場合の帯域幅調整の予約の決定処理の流れについて説明する。図１７は、スループットを保証する場合の帯域幅調整の予約の決定処理のフローチャートである。
【０１９１】
帯域幅管理部１０２は、実測スループットが保証スループット以上か否かを判定する（ステップＳ３１１）。実測スループットが保証スループット未満の場合（ステップＳ３１１：否定）、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０１９２】
これに対して、実測スループットが保証スループット以上の場合（ステップＳ３１１：肯定）、帯域幅管理部１０２は、Ｂｕｓｙ率が８０％以上か否かを判定する（ステップＳ３１２）。
【０１９３】
Ｂｕｓｙ率が８０％以上の場合（ステップＳ３１２：肯定）、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の縮小が可能か否かを判定する(ステップＳ３１３)。
【０１９４】
帯域幅の縮小が可能な場合（ステップＳ３１３：肯定）、帯域幅管理部１０２は、共有ボリュームにおける非保証ボリュームの帯域幅の縮小を予約する（ステップＳ３１４）。
【０１９５】
一方、ステップＳ３１２でＢｕｓｙ率が８０％未満の場合（ステップＳ３１２：否定）及びステップＳ３１３で帯域幅の縮小が困難な場合(ステップＳ３１３：否定)、帯域幅管理部１０２は、警告メッセージを操作端末３へ送信する（ステップＳ３１５）。
【０１９６】
さらに、ここでは実施例１に機能を追加した場合で説明したが、実施例３において実施例２のように犠牲ボリュームを設定することもできる。ＩＯＰＳやスループットが保証されている場合においても、犠牲ボリュームに対する処理は、実施例２と同様である。
【０１９７】
以上に説明したように、本実施例に係る運用管理サーバは、ＩＯＰＳやスループットを保証することができる。そして、本実施例に係るストレージ管理装置は、ＩＯＰＳやスループットを保証する場合にも、帯域幅の調整を行いつつシステムを安定運用させることができる。
【０１９８】
（変形例１）
上述した実施例３では、Ｂｕｓｙ率の上限は定めていない。しかし、Ｂｕｓｙ率があまり上がりすぎるとそのボリューム２３２の性能は劣化する。そこで、本変形例に係る運用管理サーバ１は、Ｂｕｓｙ率の上限を定めて、保証ボリュームのＢｕｓｙ率が上限に達した場合には帯域幅を拡大する。以下では、Ｂｕｓｙ率が上限に達した場合の帯域幅管理部１０２の動作について説明する。
【０１９９】
帯域幅管理部１０２は、Ｂｕｒｙ率の上限値を予め記憶している。そして、帯域幅管理部１０２は、ＩＯＰＳ又はスループットが保証された保証ボリュームに対して、保証ＩＯＰＳが実測ＩＯＰＳ以下の場合、Ｂｕｓｙ率が上限値を超えているか否かを判定する。
【０２００】
Ｂｕｓｙ率が上限値を超えていなければ、帯域幅管理部１０２は、帯域幅調整の予約の決定処理を終了する。
【０２０１】
これに対して、Ｂｕｓｙ率が上限値を超えている場合、帯域幅管理部１０２は、共有ボリュームの中に帯域幅の縮小が可能な非保証ボリュームがあれば、その非保証ボリュームの帯域幅の縮小を予約する。また、帯域幅の縮小が可能な非保証ボリュームがなければ帯域幅管理部１０２は、警告メッセージを操作端末３へ送信する。
【０２０２】
以上に説明したように、本変形例に係る運用管理サーバは、Ｂｕｓｙ率の上限値を超えた場合にＢｕｓｙ率に影響を与える他のボリュームの帯域幅を縮小する。これにより、非保証ボリュームの急激な負荷増加による保証ボリュームの性能低下を回避することができる。
【０２０３】
（変形例２）
実施例３では、ディスクのＢｕｓｙ率は、一定時間内のディスク２０３への読み書き時間の合計を一定時間で除算することで算出された。しかし、ディスクは多重にＩＯ（input  Output）処理を実行可能である。そのため、例えば同じＢｕｓｙ率であっても、１０多重実行の場合と、１多重実行の場合とでは、負荷の高さが異なる。そこで本変形例では、ディスク２０３の多重度を加味して最大帯域使用状態を判定する。図１８は、実施例３の変形例２に係る運用管理サーバ及びストレージ装置のブロック図である。
【０２０４】
処理実行部２５３は、図２におけるＣＭ２０１及び２０２により実現される。処理実行部２５３は、図１９に示す、待ちＩ／Ｏキュー４０１及び実行中Ｉ／Ｏリスト４０２を保持している。図１９は、待ちＩ／Ｏキュー及び実行中Ｉ／Ｏリストの一例の図である。待ちＩ／Ｏキュー４０１及び実行中Ｉ／Ｏリスト４０２には、ボリューム２３２の情報が格納されており、さらに、各ボリューム２３２に繋がる丸型は、そのボリューム２３２に対するコマンドを表している。すなわち、実際には、図１９の丸型の場所にはコマンドが格納されている。
【０２０５】
待ちＩ／Ｏキュー４０１は、帯域制限に用いられるキューであり、ＱｏＳの帯域制限量によりキューイングの量が決定される。
【０２０６】
一方、実行中Ｉ／Ｏリスト４０２は、処理実行部２５３から既にディスク２０３への出力されたコマンドを表している。すなわち、実行中Ｉ／Ｏリスト４０２の各ボリューム２３２に繋がるコマンドの列は、ディスク２０３が処理しきれず溜まっているコマンドである。すなわち、実行中Ｉ／Ｏリスト４０２は、ＱｏＳの帯域制限機能には関係なく、ディスク２０３の処理能力によってキューイングの量が決定される。すなわち、実行中Ｉ／Ｏリストに溜まったコマンド数により、各ボリューム２３２の処理がどの程度滞っているか判定できる。
【０２０７】
帯域幅管理部１０２は、第２選択した保証ボリュームに対して、実行中Ｉ／Ｏリスト４０２に溜まっているコマンドの数を処理実行部２５３から取得する。以下では、この取得したコマンド数を「蓄積コマンド数」という。
【０２０８】
第２選択した保証ボリュームの性能保証の種類がＩＯＰＳの場合、帯域幅管理部１０２は、保証ＩＯＰＳと実測ＩＯＰＳとを比較する。保証ＩＯＰＳが実測ＩＯＰＳ以下の場合、帯域幅管理部１０２は、性能が保証できていると判定し、第２選択した保証ボリュームの帯域調整を行わない。
【０２０９】
これに対して、保証ＩＯＰＳが実測ＩＯＰＳより大きい場合、帯域幅管理部１０２は、第２選択した保証ボリュームの蓄積コマンド数が一定数以上であるか否かを判定する。そして、蓄積コマンド数が一定数以上の場合、帯域幅管理部１０２は、非保証ボリュームの帯域幅の縮小を予約する。ただし、帯域幅が縮小可能な非保証ボリュームが存在しない場合、帯域幅管理部１０２は、警告メッセージを操作端末３に送信する。
【０２１０】
これに対して、蓄積コマンド数が一定数未満の場合、帯域幅管理部１０２は、性能保証が困難であると判定し、警告メッセージを操作端末３に送信する。
【０２１１】
また、第２選択した保証ボリュームの性能保証の種類がスループットの場合も、帯域幅管理部１０２は、ＩＯＰＳの場合と同様に帯域幅の調整の予約を決定する。ただし、蓄積コマンド数の上限を判断する一定数は、ＩＯＰＳの場合と異なってもよい。
【０２１２】
さらに、以上では、帯域幅管理部１０２は、蓄積コマンド数のみで判定を行ったが、蓄積コマンド数が一定数以上又はＢｕｓｙ率のいずれか一方が一定率以上の場合に非保証ボリュームの帯域幅の縮小の予約をしてもよい。また、帯域幅管理部１０２は、蓄積コマンド数が一定数以上及びＢｕｓｙ率の双方が一定率以上の場合に非保証ボリュームの帯域幅の縮小の予約をしてもよい。
【０２１３】
以上に説明したように、本変形例に係る運用管理サーバは、ディスクが処理しきれずに溜まっているコマンドの数を用いて最大帯域使用状態を判定する。これにより、最大帯域使用状態をより正確に判定することができ、システムをより確実に安定運用させることができる。
【０２１４】
（変形例３）
本変形例に係る運用管理サーバでは、ＩＯＰＳとスループットのいずれか一方の性能を保証する場合にも、保証性能としてＩＯＰＳとスループットとが同時に指定される。そして、保証対象としている性能とは異なる性能により帯域制限が行われた場合に、帯域制限幅を拡張する。以下では、ＩＯＰＳ又はスループットを保証する場合で説明する。
【０２１５】
操作者は、操作端末３を用いて、性能を保証する保証ボリュームを指定する。さらに、操作者は、保証ボリューム毎に、ＩＯＰＳ、スループット又はレスポンスタイムのいずれを保証するかを表す性能保証の種類の情報を入力する。本実施例では、ＩＯＰＳ又はスループットが入力されたものとする。さらに、操作者は、図２０に示された帯域制限テーブル４０３にしたがって、所望の保証値を満たす性能設定値を操作端末３から入力する。図２０は、帯域制限テーブルの一例の図である。操作端末３は、保証ボリュームの識別情報、性能保証の種類の情報及び性能設定値を保証値設定部１０１へ送信する。
【０２１６】
保証値設定部１０１は、保証ボリュームの識別情報、性能保証の種類の情報及び性能設定値を操作端末３から受信する。そして、保証値設定部１０１は、保証ボリュームの識別情報、性能保証の種類の情報及び性能設定値をＱｏＳ設定テーブル１４１に登録する。
【０２１７】
帯域幅管理部１０２は、図２０に示した帯域制限テーブル４０３を記憶する。そして、帯域幅管理部１０２は、ＱｏＳ設定テーブル１４１から各保証ボリュームの性能保証の種類及び性能設定値を取得する。
【０２１８】
帯域幅管理部１０２は、まず、性能設定値を用いて帯域制限テーブル４０３から性能保証の種類に応じた保証値を取得する。そして、帯域幅管理部１０２は、実施例３と同様に第１選択及び第２選択を行う。次に、帯域幅管理部１０２は、第２選択した保証ボリュームに対して、保証値以上で最低の帯域制限幅を指定する。
【０２１９】
次に、帯域幅管理部１０２は、第２選択した保証ボリュームのディレイタイムを処理実行部２５３から取得する。ここで、ディレイタイムについて説明する。処理実行部２５３が実行するハード側のＱｏＳは、個々のボリューム２３２へのアクセス要求回数とデータ転送要求量を積算する。その積算量が所定時間（本実施例では、１／６０秒）以内に指定した回数又は量に達した場合は、ハード側のＱｏＳは、それ以降の要求を１／６０秒の間処理せず、キューに溜めておく。そして、その１／６０秒が過ぎると、ハード側のＱｏＳは、キューに溜めた処理を再開する。これによって、ハード側のＱｏＳは、データ転送量の絞り込みを行う。このキューに要求が溜まっている時間がディレイタイムである。ディレイタイムが０より大きければ、ハード側のＱｏＳが、帯域制限を行っている。また、ディレイタイムが０であれば、ハード側のＱｏＳは、帯域制限を行っていない。したがって、ディレイタイムが０であれば、それ以上帯域幅を広げても性能向上することはない。
【０２２０】
帯域幅管理部１０２は、ディレイタイムが０か否かを判定する。ディレイタイムが０でない場合、帯域幅管理部１０２は、第２選択した保証ボリュームに対する帯域幅制限が行われたと判定する。そして、この場合に保証性能に達していなければ、帯域幅管理部１０２は、保証性能の種類に応じて以下の処理を行う。
【０２２１】
ＩＯＰＳを保証する場合、帯域幅管理部１０２は、性能設定値から判定に用いるＩＯサイズ（以下、「所定ＩＯサイズ」という。）を算出する。例えば、性能設定値が５であれば、帯域幅管理部１０２は、４００ＭＢ／ｓ×１０２÷５０４０／ｓを計算して、所定ＩＯサイズを約８１．２７ＫＢと算出する。そして、帯域幅管理部１０２は、実測ＩＯＰＳが所定ＩＯサイズを超過した場合、スループットによって帯域制限が行われたことで、ＩＯＰＳが保証できていないと判定する。
【０２２２】
また、スループットを保証する場合、帯域幅管理部１０２は、ＩＯＰＳの場合と同様に性能設定値から所定ＩＯサイズを算出する。そして、帯域幅管理部１０２は、実測ＩＯサイズが所定ＩＯサイズ未満の場合、ＩＯＰＳによって帯域制限が行われたことで、スループットが保証できていないと判定する。
【０２２３】
また、帯域幅管理部１０２は、上記以外の場合には、性能の保証ができていると判定する。その場合、帯域幅管理部１０２は、帯域幅調整の処理を終了する。
【０２２４】
性能が保証できていないと判定した場合、帯域幅管理部１０２は、実測ＩＯサイズが所定ＩＯサイズに近づくように第２選択した保証ボリュームの帯域幅を拡張する。
【０２２５】
帯域幅の拡張後、帯域幅を拡張した保証ボリュームのディレイタイムが０でなければ、帯域幅管理部１０２は、上述した帯域幅の拡張処理を再度実行する。これに対して、帯域幅を拡張した保証ボリュームのディレイタイムが０となり、且つ保証性能に達していない場合、帯域幅管理部１０２は、実施例３で説明したＢｕｓｙ率による判定を用いた帯域幅の調整処理を行う。
【０２２６】
以上に説明したように、本変形例に係る運用管理サーバは、ＩＯＰＳ及びスループットの制限値を１つの指標で指定する場合に、性能保証が指定された一方の性能を確実に保証することができる。
【符号の説明】
【０２２７】
１  運用管理サーバ
２  ストレージ装置
３  操作端末
４  業務サーバ
１１  ＮＩＣ
１２  メモリ
１３  ＣＰＵ
１４  ＨＤＤ
２１，２２  ストレージ装置
４１，４２  業務サーバ
５１，５２  ＦＣスイッチ
６１，６２  ネットワークスイッチ
１０１  保証値設定部
１０２  帯域幅管理部
１０３  監視部
１０４  記憶部
１４１  ＱｏＳ設定テーブル
１４２  ボリュームテーブル
１４３  ボリューム性能情報ファイル
１４４  リソース性能情報ファイル
２０１，２０２  ＣＭ
２０３  ディスク
２１１  ＦＣ−ＣＡ
２１２  ｉＳＣＳＩ−ＣＡ
２１３  ＣＰＵ
２１４  メモリ
２１５  ＮＩＣ
２１６  ＳＡＳ
２３１  ＲＡＩＤグループ
２３２  ボリューム
２５１  性能情報取得部
２５２  帯域幅制御部
２５３  処理実行部
【図１】
0006428231.tif 000002
【図２】
0006428231.tif 000003
【図３】
0006428231.tif 000004
【図４】
0006428231.tif 000005
【図５】
0006428231.tif 000006
【図６】
0006428231.tif 000007
【図７】
0006428231.tif 000008
【図８】
0006428231.tif 000009
【図９】
0006428231.tif 000010
【図１０】
0006428231.tif 000011
【図１１】
0006428231.tif 000012
【図１２】
0006428231.tif 000013
【図１３】
0006428231.tif 000014
【図１４】
0006428231.tif 000015
【図１５】
0006428231.tif 000016
【図１６】
0006428231.tif 000017
【図１７】
0006428231.tif 000018
【図１８】
0006428231.tif 000019
【図１９】
0006428231.tif 000020
【図２０】
0006428231.tif 000021