(57)【要約】【課題】迅速に帯域幅の調整を行うストレージ管理装置、性能調整方法及び性能調整プログラムを提供する。【解決手段】監視部１０３は、ストレージ装置２が有する複数のボリュームのそれぞれの性能情報を取得する。設定部１０１は、複数のボリュームのうちの１つ又は複数の目標設定ボリュームのそれぞれに対する性能目標値を取得する。帯域幅管理部１０２は、監視部１０３により取得された性能情報、及び、設定部１０１により取得された性能目標値を達成する目標設定ボリュームに対するＩＯ要求の帯域幅制限による第１待機時間を基に、性能目標値を達成する目標設定ボリュームの帯域幅を求め、目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行う。【選択図】図３
2018041282.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置が有する複数のボリュームのそれぞれの性能情報を取得する情報取得部と、
複数の前記ボリュームのうちの１つ又は複数の目標設定ボリュームのそれぞれに対する性能目標値を取得する目標値取得部と、
前記情報取得部により取得された前記性能情報、及び、前記目標値取得部により取得された前記性能目標値を達成する前記目標設定ボリュームに対するＩＯ要求の帯域幅制限による第１待機時間を基に、前記性能目標値を達成する前記目標設定ボリュームの帯域幅を求め、前記目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行う帯域幅管理部と
を備えたことを特徴とするストレージ管理装置。
【請求項２】
前記情報取得部は、前記帯域幅制限を受けた前記ＩＯ要求が処理されるまでにかかる第２待機時間及び前記ＩＯ要求の処理の実行にかかるＩＯ処理時間を取得し、
前記目標値取得部は、目標レスポンスタイムを取得し、
前記帯域幅管理部は、前記第２待機時間、前記ＩＯ処理時間及び前記目標レスポンスタイムを基に前記第１待機時間を算出し、算出した前記第１待機時間を基に前記ＩＯ要求の測定時間内における総待機時間を求め、求めた前記総待機時間と前記測定時間内における前記ＩＯ要求が処理される回数との関係を基に前記性能目標値を達成する前記目標設定ボリュームの帯域幅を求める
ことを特徴とする請求項１に記載のストレージ管理装置。
【請求項３】
前記帯域幅管理部は、特定の目標設定ボリュームが使用可能な帯域幅の中で最大の帯域幅を用いても前記特定の目標設定ボリュームが前記性能目標値を未達成の場合、前記帯域幅制限を受けた前記ＩＯ要求が処理されるまでにかかる前記第２待機時間及び前記性能情報を基に、前記特定の目標設定ボリュームが前記性能目標値を達成するように、複数の前記ボリュームのうちの前記性能目標値が設定されていない非目標設定ボリュームの帯域幅を求め、前記非目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行うことを特徴とする請求項２に記載のストレージ管理装置。
【請求項４】
ストレージ装置が有する複数のボリュームのそれぞれの性能情報を取得し、
複数の前記ボリュームのうちの１つ又は複数の目標設定ボリュームのそれぞれに対する性能目標値を取得し、
前記性能目標値を達成する前記目標設定ボリュームに対するＩＯ要求の帯域幅制限による第１待機時間及び前記性能情報を基に、前記性能目標値を達成する前記目標設定ボリュームの帯域幅を求め、
前記目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行う
ことを特徴とする性能調整方法。
【請求項５】
ストレージ装置が有する複数のボリュームのそれぞれの性能情報を取得し、
複数の前記ボリュームのうちの１つ又は複数の目標設定ボリュームのそれぞれに対する性能目標値を取得し、
前記性能目標値を達成する前記目標設定ボリュームに対するＩＯ要求の帯域幅制限による第１待機時間及び前記性能情報を基に、前記性能目標値を達成する前記目標設定ボリュームの帯域幅を求め、
前記目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行う
処理をコンピュータに実行させることを特徴とする性能調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ管理装置、性能調整方法及び性能調整プログラムに関する。
【背景技術】
【０００２】
近年、オープンシステムやサーバの仮想化が普及してきており、システムの管理が複雑化してきている。そこで、システムの管理の容易化や急速に増大するデータ容量への柔軟な対応などの観点から、ストレージシステムの導入が一般的になってきている。
【０００３】
ストレージシステムでは、ボリュームとアプリケーションを実行するサーバとの間のデータ転送路の帯域制限幅を調整することでストレージシステムの性能調整が行われている。帯域幅制限の具体的な例としては、業務の優先度に応じて帯域を自動的に割り振ることなどがある。この場合、例えば、優先度の低い業務の帯域幅の上限値が決定され、その上限値の範囲内に優先度の低い業務が使用する帯域幅が調整され、空いた帯域を優先度の高い業務に使用させることが行われる。
【０００４】
従来は、この帯域制限幅の調整は、利用者が指定しやすい値としてレスポンスタイムを用いて目標値を指定し、ストレージシステムは、目標設定業務のレスポンスタイムが指定された目標値を満たすように帯域幅を調整することで行われている。
【０００５】
このような情報処理システムにおける性能調整技術として、目標性能を達成するために、データベースレコードのロックの待ち時間を除いた処理時間を算出する従来技術がある。また、アプリケーション毎に性能の目標値を異ならせる従来技術がある。また、仮想マシンが提供するサービスのレベルに応じてアクセスの優先制御を行う従来技術がある。さらに、アクセス要求を行ったクライアントの属性に基づいてアクセス要求の優先度を決定する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−５７９９６号公報
【特許文献２】特開２０１５−１９１３２４号公報
【特許文献３】特開２０１３−２０６２２９号公報
【特許文献４】特開２００６−６７４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の帯域調整では、実測のレスポンスタイムと目標レスポンスタイムとを比較して、段階的に帯域幅を変化させ、目標レスポンスタイムが達成できる帯域幅に近づける。このように段階的に帯域幅の調整を行うため、適切な帯域幅に達すまでに時間がかかり、突発的又は短時間のＩＯ（Input  Output）変化に追従することが困難である。
【０００８】
また、ロックの待ち時間を除いた処理時間を算出する従来技術や、アプリケーション毎に性能の目標値を異ならせる従来技術では、性能の変化は段階的に行われるため、帯域幅の調整に時間がかかる。これは、サービスレベルに応じてアクセスの優先制御を行う従来技術や、クライアントの属性に基づいて優先度を決定する従来技術であっても同様であり、帯域幅の調整を迅速に行うことは困難である。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、迅速に帯域幅の調整を行うストレージ管理装置、性能調整方法及び性能調整プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムの一つの態様において、情報取得部は、ストレージ装置が有する複数のボリュームのそれぞれの性能情報を取得する。目標値取得部は、複数の前記ボリュームのうちの１つ又は複数の目標設定ボリュームのそれぞれに対する性能目標値を取得する。帯域幅管理部は、前記情報取得部により取得された前記性能情報、及び、前記目標値取得部により取得された前記性能目標値を達成する前記目標設定ボリュームに対するＩＯ要求の帯域幅制限による第１待機時間を基に、前記性能目標値を達成する前記目標設定ボリュームの帯域幅を求め、前記目標設定ボリュームの帯域幅を求めた帯域幅に変更する帯域幅制限を行う。
【発明の効果】
【００１１】
本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムの一つの態様によれば、迅速に帯域幅の調整を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、ストレージシステムの概略構成図である。
【図２】図２は、ストレージシステムのハードウェア構成図である。
【図３】図３は、実施例１に係る運用管理サーバ及びストレージ装置のブロック図である。
【図４】図４は、レスポンスタイムを説明するための図である。
【図５】図５は、帯域幅制限とＩＯ回数及び待ち時間との関係について説明するための図である。
【図６】図６は、目標達成総待機時間を説明するための図である。
【図７】図７は、無制限ＩＯ回数について説明するための図である。
【図８】図８は、実施例１に係る運用管理サーバによる帯域幅制限の処理のフローチャートである。
【図９】図９は、実施例２に係る運用管理サーバによる帯域幅制御の概要を表す図である。
【図１０】図１０は、実施例２に係る運用管理サーバによる帯域幅制限の処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するストレージ管理装置、性能調整方法及び性能調整プログラムが限定されるものではない。
【実施例１】
【００１４】
図１は、ストレージシステムの概略構成図である。図１に示すように、本実施例に係るストレージシステム１００は、運用管理サーバ１、ストレージ装置２、操作端末３及び業務サーバ４を有している。ここで、図１では、１台のストレージ装置２を記載しているが、ストレージ装置２の数に制限は無い。また、業務サーバ４も１台のみ記載しているが、業務サーバ４の数にも制限は無い。
【００１５】
操作端末３は、ネットワークを介して運用管理サーバ１と接続している。操作端末３は、ストレージ装置２に対する処理の指示などを運用管理サーバ１へ送信する。また、操作端末３は、運用管理サーバ１から送信されたメッセージなどをモニタに表示して操作者への通知を行う。
【００１６】
運用管理サーバ１は、ストレージ装置２の運用及び管理を行う。運用管理サーバ１は、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（ＳＡＳ）２１６を有している。
【００３０】
ＦＣ−ＣＡ２１１、ｉＳＣＳＩ−ＣＡ２１２、メモリ２１４、ＮＩＣ２１５及びＳＡＳ２１６は、ＣＰＵ２１３に接続されている。
【００３１】
ＣＰＵ２１３は、ＦＣ−ＣＡ２１１及びｉＳＣＳＩ−ＣＡ２１２を介して業務サーバ４との間でデータの送受信を行う。
【００３２】
また、ＣＰＵ２１３は、ＳＡＳ２１６を介してディスク２０３に対するデータの読み出し及び書き込みを行う。
【００３３】
また、ＣＰＵ２１３は、ＮＩＣ２１５を介して、操作端末３及び運用管理サーバ１との間で通信を行う。例えば、ＣＰＵ２１３は、後述する帯域幅の調整の指示を運用管理サーバ１から受信すると、指示に従いディスク２０３の帯域幅を調整する。
【００３４】
ストレージ装置２には、ディスク２０３が複数台搭載されている。図２では、複数台のディスク２０３によりＲＡＩＤグループ２３１が構築されている。ただし、本実施例に限定されず、ディスク２０３は、ＲＡＩＤグループが構築されていなくてもよい。さらに、ＲＡＩＤグループ２３１の記憶領域は、ボリューム２３２の記憶領域に対して割り当てられている。ボリューム２３２は、論理ボリュームである。
【００３５】
ここで、ＣＰＵ２１３によるデータの書き込み及び読み出しについて説明する。ＣＰＵ２１３は、業務サーバ４上で動作する業務用アプリケーションからデータの読み出しの命令であるリードコマンドや書き込みの命令であるライトコマンドを受信する。このとき、リードコマンドやライトコマンドは、例えば、ＦＣスイッチ５１のポート及びＦＣ−ＣＡ２１１のポートを経由してＣＰＵ２１３へ送信される。そして、ＣＰＵ２１３は、受信したコマンドに従って、ディスク２０３のボリューム２３２に対するデータの読み出しや書き込みを行う。このとき、データは、ＲＡＩＤグループ２３１の構成にしたがって、ボリューム２３２に対して書き込みや読み出しが行われる。また、ここでは、ＣＭ２０１のＣＰＵ２１３がデータの読み書きの処理を行う場合で説明したが、ＣＭ２０２のＣＰＵ２１３においても、同様の処理が行われる。
【００３６】
すなわち、データの書き込みや読み出しといったデータ転送において、ＦＣスイッチ５１のポート、ＦＣ−ＣＡ２１１やｉＳＣＳＩ−ＣＡ２１２のポート、データの処理を行う処理プロセッサとなるＣＰＵ２１３、及び、ＲＡＩＤグループ２３１において競合が発生する。以下では、ＦＣスイッチ５１のポート、ＦＣ−ＣＡ２１１やｉＳＣＳＩ−ＣＡ２１２のポート、データの処理を行う処理プロセッサとなるＣＰＵ２１３、及び、ＲＡＩＤグループ２３１をまとめて「リソース」と呼ぶ場合がある。
【００３７】
運用管理サーバ１は、ＮＩＣ１１、メモリ１２、ＣＰＵ１３及びHard  Disk  Drive（ＨＤＤ）１４を有している。ＮＩＣ１１、メモリ１２及びＨＤＤ１４は、バスでＣＰＵ１３と接続されている。
【００３８】
図３は、実施例１に係る運用管理サーバ及びストレージ装置のブロック図である。運用管理サーバ１は、設定部１０１、帯域幅管理部１０２、監視部１０３及び情報格納部１０４を有する。ストレージ装置２は、性能情報取得部２４１、データ処理部２４２及びデータ格納部２４３を有する。
【００３９】
ストレージ装置２について説明する。データ格納部２４３は、ディスク２０３を有する。そして、データ格納部２４３は、ディスク２０３を複数合わせて構成されたＲＡＩＤグループ２３１を有し、さらにＲＡＩＤグループ２３１に形成されたボリューム２３２を有する。
【００４０】
データ処理部２４２は、図４に示すように、帯域制限待ちキュー２５１、帯域制限制御部２５２、ＩＯ待ちキュー２５３及びＩＯ処理部２５４を有する。図４は、レスポンスタイムを説明するための図である。以下では、データ処理部２４２が有するボリューム２３２を単に「ボリューム２３２」という。
【００４１】
帯域制限待ちキュー２５１は、業務サーバ４から受信したボリューム２３２に対するＩＯ要求を帯域幅制限の前に格納しておくキューである。帯域制限待ちキュー２５１にＩＯ要求が格納されてから帯域制限制御部２５２により帯域制限が行われＩＯ待ちキュー２５３へ格納されるまでの時間を帯域制限待ち時間という。
【００４２】
帯域制限制御部２５２は、帯域幅を拡大又は縮小する設定コマンドを帯域幅管理部１０２から受信する。そして、帯域制限制御部２５２は、各設定コマンドで指定されたボリューム２３２の帯域幅を、設定コマンドの指定に合わせて拡大又は縮小する。
【００４３】
ＩＯ待ちキュー２５３は、帯域幅制限を行われた後にＩＯ処理が行われるまでＩＯ要求を格納しておくキューである。ＩＯ要求が帯域制限制御部２５２によりＩＯ待ちキュー２５３に格納されてからＩＯ処理部２５４へ出力されるまでにかかる時間を他ＩＯ処理待ち時間という。
【００４４】
ＩＯ処理部２５４は、ＩＯ待ちキュー２５３から格納順にＩＯ要求を取得し、取得したＩＯ要求にしたがい処理を実行する。ＩＯ処理部２５４がＩＯ待ちキュー２５３から取得したＩＯ要求を処理するためにかかる時間をＩＯ処理時間という。
【００４５】
データ格納部２４３は、ＩＯ要求で指定されたデータを格納するための記憶装置である。データ格納部２４３は、図２のディスク２０３などで実現される。
【００４６】
性能情報取得部２４１は、性能収集開始の指示を監視部１０３から受ける。そして、性能情報取得部２４１は、各ボリューム２３２の性能情報を定期的に取得し、監視部１０３へ送信する。また、性能情報取得部２４１は、データ処理部２４２の他ＩＯ処理待ち時間及びＩＯ処理時間などの性能情報を定期的に取得し、監視部１０３へ送信する。例えば、単位時間当たりのＩＯ回数は、読み込み及び書き込み別に、測定時間内の回数を測定時間で割ることで算出される。また、レスポンスタイム及び待ち時間も、読み込み及び書き込み別に全体の応答時間を回数で割ることで１回あたりの値が算出される。
【００４７】
性能情報取得部２４１及びデータ処理部２４２の機能は、例えば、図２に示すController  Module２０１及び２０２により実現される。
【００４８】
次に、運用管理サーバ１について説明する。設定部１０１は、操作者により入力されたボリューム２３２に対する目標値、例えば目標レスポンスタイムを操作端末３から受信する。そして、設定部１０１は、指定されたボリューム２３２に対する目標レスポンスタイムを情報格納部１０４に格納する。この設定部１０１が、「目標値取得部」の一例にあたる。
【００４９】
監視部１０３は、操作者からの性能収集開始の指示を操作端末３から受ける。その後、監視部１０３は、ボリューム２３２及びデータ処理部２４２の性能情報の性能情報取得部２４１からの定期的な受信を開始する。そして、監視部１０３は、受信した各ボリューム２３２の性能情報及びデータ処理部２４２の性能情報を情報格納部１０４に格納する。ここで、データ処理部２４２の性能情報には、データ処理部２４２の中のキューにＩＯ要求が格納され待機する時間及び実際のＩＯ要求を処理するのに係る時間などが含まれる。また、データ格納部２４３の性能情報には、ＩＯ回数などの情報が含まれる。この監視部１０３が、「情報取得部」の一例にあたる。
【００５０】
情報格納部１０４は、目標レスポンスタイム、性能情報を測定する測定時間及び測定間隔などの設定情報の入力を設定部１０１から受ける。そして、情報格納部１０４は、取得した設定情報を格納する。また、情報格納部１０４は、データ処理部２４２及びデータ格納部２４３から性能情報の入力を受ける。性能情報には、実測レスポンスタイム、他ＩＯ処理待ち時間及びＩＯ処理時間などが含まれる。情報格納部１０４は、取得した性能情報を格納する。情報格納部１０４は、例えば、図２に例示したＨＤＤ１４により実現される。
【００５１】
帯域幅管理部１０２は、情報格納部１０４に格納された情報を用いて目標レスポンスタイムが設定されているボリューム２３２を特定する。以下では、目標レスポンスタイムが設定されているボリューム２３２を、「目標設定ボリューム」という。また、目標レスポンスタイムが設定されていないボリューム２３２を、「非目標設定ボリューム」という。ここで、業務サーバ４から提供される業務毎に、ボリューム２３２が割り当てられる。そこで、目標設定ボリュームは、目標レスポンスタイムが設定された業務に対するボリューム２３２と言える。また、非目標設定ボリュームは、目標レスポンスタイムが設定されていない業務に対するボリュームと言える。
【００５２】
帯域幅管理部１０２は、目標設定ボリュームの中から１つ選択する。帯域幅管理部１０２は、選択した目標設定ボリュームの実測レスポンスタイムを情報格納部１０４から取得する。また、帯域幅管理部１０２は、選択した目標設定ボリュームの目標レスポンスタイムを情報格納部１０４から取得する。そして、帯域幅管理部１０２は、選択した目標設定ボリュームの実測レスポンスタイムと目標レスポンスタイムとを比較する。
【００５３】
目標レスポンスタイムが実測レスポンスタイムより短い場合、帯域幅管理部１０２は、以下に説明するように選択した目標設定ボリュームの帯域幅を求める。ここで、帯域幅は、ＩＯ回数で表すことも可能である。
【００５４】
図４を参照して、レスポンスタイムについて説明する。図４において、帯域制限待ちキュー２５１及びＩＯ待ちキュー２５３に格納された丸形状はＩＯ要求を表す。ＩＯ要求のうち斜線が付加されたＩＯ要求は、目標設定ボリュームに対するＩＯ要求である。また、ＩＯ要求のうち白抜きのＩＯ要求は、非目標設定ボリュームに対するＩＯ要求である。
【００５５】
ここで、ボリューム２３２のレスポンスタイムについて説明する。レスポンスタイムは、次の数式（１）で表される。
【００５６】
レスポンスタイム＝帯域制限待ち時間＋他ＩＯ処理待ち時間＋ＩＯ処理時間  ・・・（１）
【００５７】
帯域制限待ち時間は、帯域制限待ちキュー２５１にＩＯ要求が格納かれてから帯域制限制御部２５２により帯域制限が行われＩＯ待ちキュー２５３へ格納されるまでの時間である。あるＩＯ要求の帯域制限待ち時間は、そのＩＯ要求を処理するボリューム２３２の帯域幅を広げることで減少する。
【００５８】
他ＩＯ処理待ち時間は、ＩＯ要求が帯域制限制御部２５２によりＩＯ待ちキュー２５３に格納されてからＩＯ処理部２５４へ出力されるまでにかかる時間である。総ＩＯ負荷が増加すると全ての他ＩＯ処理待ち時間の待ち時間が増加する。目標設定ボリューム以外の帯域幅を絞り、総ＩＯ負荷を減少させることで、他ＩＯ処理待ち時間が減少する。
【００５９】
ＩＯ処理時間は、ＩＯ処理部２５４がＩＯ待ちキュー２５３から取得したＩＯ要求を処理するためにかかる時間である。ＩＯ処理時間は、業務のＩＯ負荷とストレージ装置２の性能に依存し、帯域幅の変化の影響は受けない。
【００６０】
帯域幅管理部１０２は、帯域制限待ち時間が次の数式（２）で表される目標達成帯域制限待ち時間になるように、実測性能情報である実測レスポンスタイムを用いて目標設定ボリュームの帯域幅を求める。この目標達成帯域制限待ち時間が「第１待機時間」の一例にあたる。また、他ＩＯ処理待ち時間が、「第２待機時間」の一例にあたる。
【００６１】
目標達成帯域制限待ち時間＝目標レスポンスタイム−他ＩＯ処理待ち時間−ＩＯ処理時間  ・・・（２）
【００６２】
さらに、図５を参照して、帯域幅制限とＩＯ回数及び待ち時間との関係について説明する。図５は、帯域幅制限とＩＯ回数及び待ち時間との関係について説明するための図である。図５は、特定のボリューム２３２に対する縦軸で総ＩＯ回数を表し、横軸で時間を表す。
【００６３】
帯域幅の制限には、測定時間３１２を一定の単位時間３１１で区切る。そして、図５の左のグラフで示すように、帯域制限制御部２５２は、単位時間内の最初から帯域幅制限が指示されたボリューム２３２に対するＩＯ要求のうちの規定のＩＯ回数を帯域制限待ちキュー２５１からＩＯ待ちキュー２５３へ通す。その後、帯域制限制御部２５２は、単位時間内の残りの待機時間３０１に、帯域制限待ちキュー２５１に格納された状態で帯域幅制限が指示されたボリューム２３２に対するＩＯ要求を待機させる。帯域制限制御部２５２は、単位時間３１１における帯域幅制限処理を測定時間３１２内で繰り返すことで、図５の右のグラフで示すように帯域制限を行う。
【００６４】
次に、図６を参照して、目標を満たす総待機時間である目標達成総待機時間の算出について説明する。図６は、目標達成総待機時間を説明するための図である。図６は、特定のボリューム２３２に対する縦軸で総ＩＯ回数を表し、横軸で時間を表す。
【００６５】
図６の左のグラフは、図５の右のグラフの内のＩＯ要求を通す時間と待機時間とをそれぞれ分けてまとめた図である。すなわち、測定時間３１２における待機時間３０１をまとめた時間は、総待機時間３０２となる。そして、例えば、帯域制限制御部２５２により帯域幅が広げられると、総ＩＯ回数３２１から総ＩＯ回数３２２に変化する。総ＩＯ回数３２１から総ＩＯ回数３２２に変化することで、ＩＯ要求を通す時間は長くなり、それに応じて総待機時間３０２は短くなり総待機時間３０３に変換する。
【００６６】
すなわち、帯域幅を広げることでＩＯ回数が増え、ＩＯ１回あたりの待機時間が減少する。これにより、帯域幅管理部１０２は、レスポンスタイムを向上させることができる。
【００６７】
そこで、帯域幅管理部１０２は、目標を満たす総帯域時間である次の数式（３）で表される目標達成総待機時間を、数式（２）で算出した目標達成帯域制限待ち時間を用いて算出する。
【００６８】
目標達成総待機時間＝目標達成待機制限持ち時間×目標達成帯域幅時ＩＯ回数  ・・・（３）
【００６９】
次に、図７を参照して、帯域幅制限が無い場合のＩＯ回数である無制限ＩＯ回数について説明する。図７は、無制限ＩＯ回数について説明するための図である。図７は、特定のボリューム２３２に対する縦軸で総ＩＯ回数を表し、横軸で時間を表す。
【００７０】
制限がある場合、測定時間３１２は、ＩＯ要求を通す時間３０４と総待機時間３０３とに分けられる。ここで帯域幅制限が無ければ、待機時間が無くなるため、総待機時間３０３の間もＩＯ要求を通す時間３０４と同様の割合で総ＩＯ回数は増加する。そして、ＩＯ要求を通す時間３０４と同様の割合で総ＩＯ回数３２２が増加したとすると、要求を通す時間３０４のグラフをそのまま延ばすことで、無制限ＩＯ回数は、総ＩＯ回数３２３となる。そして、無制限ＩＯ回数と帯域幅制限がある場合のＩＯ回数との比は、ＩＯ要求を通す時間３０４と総待機時間３０３との比が等しいといえ、次の数式（４）で表される。
【００７１】
制限がある場合のＩＯ回数÷無制限ＩＯ回数＝（測定時間−総待機時間）÷測定時間  ・・・（４）
【００７２】
ここで、制限がある場合のＩＯ回数は、測定時のＩＯ回数であるので、帯域幅管理部１０２は、制限がある場合のＩＯ回数を情報格納部１０４から取得できる。また、測定時間は予め決められた時間であり、帯域幅管理部１０２は、測定時間を取得できる。さらに、総待機時間は測定時の待機時間であり、帯域幅管理部１０２は、総待機時間を情報格納部１０４から取得できる。すなわち、帯域幅管理部１０２は、数式（４）を用いて測定時の無制限ＩＯ回数を算出することができる。
【００７３】
そして、帯域幅管理部１０２は、数式（３）から目標を達成するＩＯ回数である目標達成総待機時間を次の数式（５）として算出する。
【００７４】
目標達成総待機時間＝目標達成帯域制限待ち時間×目標達成ＩＯ回数  ・・・（５）
【００７５】
また、帯域幅管理部１０２は、数式（４）から目標を達成するＩＯ回数である目標達成ＩＯ回数を次の数式（６）として算出する。
【００７６】
目標達成ＩＯ回数÷無制限ＩＯ回数＝（測定時間−目標達成総待機時間）÷測定時間  ・・・（６）
【００７７】
ここで、数式（５）及び（６）において、不明な値は、目標達成総待機時間及び目標達成ＩＯ回数である。そこで、帯域幅管理部１０２は、数式（５）及び（６）を用いて、目標達成総待機時間及び目標達成ＩＯ回数を求めることができる。
【００７８】
そして、帯域幅管理部１０２は、算出した目標達成待機時間及び目標達成ＩＯ回数となるように、帯域幅を拡大又は縮小する設定コマンドを生成する。そして、帯域幅管理部１０２は、生成した設定コマンドをデータ処理部２４２へ送信する。
【００７９】
また、帯域幅管理部１０２は、待機時間を０としても目標を達成しない目標達成ボリュームがある場合、その目標達成ボリュームに対しては、制限なしの場合のＩＯ回数となるように、帯域幅を拡大又は縮小する設定コマンドを生成する。そして、帯域幅管理部１０２は、生成した設定コマンドをデータ処理部２４２へ送信する。
【００８０】
情報格納部１０４の機能は、例えば、図２のＨＤＤ１４で実現される。また、設定部１０１、帯域幅管理部１０２及び監視部１０３の機能は、例えば、図２のＣＰＵ１３及びメモリ１２で実現される。例えば、ＨＤＤ１４に、設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するための各種プログラムが格納される。そして、ＣＰＵ１３は、ＨＤＤ１４から各種プログラムを読み出し、設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するプロセスをメモリ１２上に展開して実行する。
【００８１】
設定部１０１、帯域幅管理部１０２及び監視部１０３の機能は、例えば、図２のＣＰＵ１３及びメモリ１２で実現される。例えば、ＨＤＤ１４に、設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するための各種プログラムが格納される。そして、ＣＰＵ１３は、ＨＤＤ１４から各種プログラムを読み出し、設定部１０１、帯域幅管理部１０２及び監視部１０３の機能を実現するプロセスをメモリ１２上に展開して実行する。
【００８２】
次に、図８を参照して、本実施例に係る運用管理サーバ１による帯域幅制限の処理の流れについて説明する。図８は、実施例１に係る運用管理サーバによる帯域幅制限の処理のフローチャートである。
【００８３】
帯域幅管理部１０２は、情報格納部１０４に格納された情報から目標設定ボリュームを特定する。そして、帯域幅管理部１０２は、特定した目標設定ボリュームから１つ選択する（ステップＳ１）。
【００８４】
次に、帯域幅管理部１０２は、目標レスポンスタイム、他ＩＯ処理待ち時間及びＩＯ処理時間を情報格納部１０４から取得する。そして、帯域幅管理部１０２は、取得した情報を数式（２）に用いて目標達成帯域制限待ち時間を算出する（ステップＳ２）。
【００８５】
次に、帯域幅管理部１０２は、制限がある場合のＩＯ回数、測定時間及び総待機時間を情報格納部１０４から取得する。そして、帯域幅管理部１０２は、取得した情報を数式（４）に用いて無制限ＩＯ回数を算出する（ステップＳ３）。
【００８６】
次に、帯域幅管理部１０２は、算出した目標達成帯域制限待ち時間及び無制限ＩＯ回数、並びに、取得した測定時間を数式（５）及び（６）に用いて、目標達成ＩＯ回数及び目標達成総待機時間を算出する（ステップＳ４）。
【００８７】
次に、帯域幅管理部１０２は、選択した目標達成ボリュームにおいて、待機時間を０にしても目標未達成であるか否かを判定する（ステップＳ５）。目標を達成している場合（ステップＳ５：否定）、帯域幅管理部１０２は、ステップＳ７へ進む。
【００８８】
これに対して、目標を達成していない場合（ステップＳ５：肯定）、帯域幅管理部１０２は、無制限ＩＯ回数を選択した目標達成ボリュームの帯域幅として設定する（ステップＳ６）。
【００８９】
次に、帯域幅管理部１０２は、全ての目標設定ボリュームについて帯域幅制限を決定する処理が完了したか否かを判定する（ステップＳ７）。帯域幅制限を決定が完了してない目標設定ボリュームが存在する場合（ステップＳ７：否定）、帯域幅管理部１０２は、ステップＳ１へ戻る。
【００９０】
これに対して、帯域幅制限の決定を全ての目標設定ボリュームについて完了した場合（ステップ７：肯定）、帯域幅管理部１０２は、決定した各ボリューム２３２の帯域幅制限をストレージ装置２のデータ処理部２４２に通知し、算出した帯域幅をストレージ装置２に設定する（ステップＳ８）。
【００９１】
データ処理部２４２は、通知された帯域幅制限にしたがって各目標設定ボリュームの帯域幅制限を行う（ステップＳ９）。
【００９２】
以上に説明したように、本実施例に係る運用管理サーバは、与えられた目標レスポンスタイムと帯域幅の関係式を求め、目標レスポンスタイムが設定されたボリュームの帯域幅を決定する。これにより、帯域幅の調整を段階的に行うことなく迅速に目標値を満たす帯域幅の調整を行うことができ、突発的なＩＯ変化や短時間でのＩＯ変化に適切に追従することができる。
【実施例２】
【００９３】
次に、実施例２について説明する。本実施例に係るストレージシステムは、待機時間を０にしても目標未達成の目標設定ボリュームがある場合に、非目標設定ボリュームの帯域を融通することは実施例１と異なる。本実施例に係るストレージシステム１００も図１〜３の構成を有する。以下の説明では、各部の実施例１と同様の機能については説明を省略する。
【００９４】
帯域幅管理部１０２は、実施例１と同様に目標設定ボリュームの帯域幅を求める。以下では、実施例１で説明した目標設定ボリュームの算出処理を前段処理という。そして、帯域幅管理部１０２は、前段処理が終了した時点で、目標設定ボリュームの中で目標未達成のものがあるか否かを判定する。全ての目標設定ボリュームが目標レスポンスタイムを達成している場合、帯域幅管理部１０２は、帯域幅制御の処理を終了する。ただし、終了せずに処理を続けることで、全ての目標設定ボリュームが目標レスポンスタイムを達成する範囲で、非目標設定ボリュームの帯域を広げることができる。
【００９５】
これに対して、目標レスポンスタイムを達成していない目標設定ボリュームがある場合、帯域幅管理部１０２は、各非目標設定ボリュームに対するＩＯ回数をそれぞれ算出する。また、帯域幅管理部１０２は、各目標設定ボリュームに対するＩＯ回数をそれぞれ算出する。ここで、目標設定ボリュームのうち帯域幅制限を行っていないものについては、帯域幅管理部１０２は、非目標設定ボリュームと同様にＩＯ回数を算出する。
【００９６】
次に、帯域幅管理部１０２は、実測レスポンスタイムが目標レスポンスタイムから最も離れている目標設定ボリュームを選択する。
【００９７】
次に、帯域幅管理部１０２は、他ＩＯ処理待ち時間が次の数式（７）で表される目標達成他ＩＯ処理待ち時間を求める。
【００９８】
目標達成他ＩＯ処理待ち時間＝目標レスポンスタイム−ＩＯ処理時間−帯域制限待ち時間  ・・・（７）
【００９９】
帯域幅管理部１０２は、目標が未達成の目標設定ボリュームの算出の場合、帯域制限待ち時間を０とする。そして、選択した目標設定ボリュームは、目標が未達成であるので、帯域幅管理部１０２は、この場合、帯域制限待ち時間を０として目標達成他ＩＯ処理待ち時間を算出する。
【０１００】
次に、帯域幅管理部１０２は、以下のようにボリューム２３２の全体の総ＩＯ回数を算出する。
【０１０１】
あるボリューム２３２に対する他ＩＯ処理待ち時間は、Ｍ／Ｍ／１モデルを用いた次の数式（８）で表すことができる。
【０１０２】
【数１】
2018041282.tif 000003
【０１０３】
ここで、Ｔｗは、他ＩＯ処理待ち時間である。また、Ｔｓは、ＩＯ処理時間である。ここでは、各ＩＯ処理時間の平均をＩＯ処理時間（Ｔｓ）とする。また、ρは、利用率である。また、λは、総ＩＯ回数であり、全ての目標設定ボリュームのＩＯ回数の合計と全ての非目標設定ボリュームのＩＯ回数の合計を加算した値である。また、μは、ストレージ装置２が単位時間あたりに処理可能なＩＯ要求の数を表す単位時間処理可能数である。
【０１０４】
帯域幅管理部１０２は、各目標設定ボリュームのＩＯ回数及び各非目標設定ボリュームのＩＯ回数を情報格納部１０４から取得できる。そして、帯域幅管理部１０２は、情報格納部１０４から取得した各目標設定ボリュームのＩＯ回数及び各非目標設定ボリュームのＩＯ回数を情報格納部１０４から性能情報から総ＩＯ回数（λ）を求める。
【０１０５】
また、帯域幅管理部１０２は、ＩＯ処理時間（Ｔｓ）及び他ＩＯ処理待ち時間（Ｔｗ）を情報格納部１０４から取得できる。また、帯域幅管理部１０２は、各ボリューム２３２における実測レスポンスタイムを情報格納部１０４から取得できる。実測レスポンスタイムは、ＩＯ処理時間（Ｔｓ）、他ＩＯ処理待ち時間（Ｔｗ）及び帯域制限待ち時間の合計である。ここで、帯域制限待ち時間が０であれば、実測レスポンスタイムは、ＩＯ処理時間（Ｔｓ）と他ＩＯ処理待ち時間（Ｔｗ）との合計となる。
【０１０６】
そこで、帯域幅管理部１０２は、情報格納部１０４から取得したＩＯ処理時間（Ｔｓ）、他ＩＯ処理待ち時間（Ｔｗ）、算出した総ＩＯ回数（λ）及び数式（８）を用いて、次の数式（９）で表される単位時間処理可能数（μ）を算出する。
【０１０７】
【数２】
2018041282.tif 000004
【０１０８】
次に、帯域幅管理部１０２は、目標設定ボリュームの目標達成他ＩＯ処理待ち時間（Ｔｗ１）、数式（９）により求めた単位時間処理可能数（μ）及びＩＯ処理時間（Ｔｓ１）にＭ／Ｍ／１モデルを用いて目標を達成する総ＩＯ回数（λ１）を求める。この総ＩＯ回数（λ１）は、次の数式（１０）で表される。
【０１０９】
【数３】
2018041282.tif 000005
【０１１０】
ただし、Ｔｓ１は、各ボリューム２３２のＩＯ処理時間の平均なので、目標設定ボリュームのＩＯ回数を変更せず、非目標設定ボリュームのＩＯ回数を変更すると、変化してしまう。そこで、帯域幅管理部１０２は、Ｔｓ１として次の数式（１１）により求まる値を用いる。
【０１１１】
【数４】
2018041282.tif 000006
【０１１２】
ここで、λｍは、目標設定ボリュームのＩＯ回数である。また、Ｔｍは、目標設定ボリュームにおけるＩＯ処理時間である。また、Ｔｏは、目標未設定ボリュームのＩＯ処理時間である。
【０１１３】
さらに、複数の目標設定ボリュームにおいて目標が達成できていない場合には、帯域幅管理部１０２は、以下の値を用いる。すなわち、Ｔｍは、目標設定ボリュームのＩＯ回数の平均とする。また、Ｔｏは、目標設定ボリュームにおけるＩＯ処理時間の平均とする。
【０１１４】
また、目標設定ボリュームが複数ある場合には、目標とする他ＩＯ処理待ち時間（Ｔｗ１）が複数存在する。そこで、目標設定ボリュームが複数ある場合、帯域幅管理部１０２は、目標設定ボリュームの新しい帯域幅を決定した時点で、目標レスポンスタイムから最も遠い目標設定ボリュームが目標レスポンスタイムを満たす他ＩＯ処理待ち時間を選択する。そして、帯域幅管理部１０２は、選択した他ＩＯ処理待ち時間を目標とする他ＩＯ処理待ち時間（Ｔｗ１）とする。
【０１１５】
そして、帯域幅管理部１０２は、次の数式（１２）で示すように、数式（９）を用いて求めた総ＩＯ回数（λ１）から、実施例１で説明した帯域幅制限処理で算出した目標設定ボリュームのＩＯ回数の合計を減算して、目標未設定ボリュームのＩＯ回数の合計を算出する。
【０１１６】
目標未設定ボリュームのＩＯ回数の合計＝λ１−目標設定ボリュームのＩＯ回数の合計  ・・・（１２）
【０１１７】
その後、目標未設定ボリュームが複数ある場合、帯域幅管理部１０２は、算出した目標未設定ボリュームのＩＯ回数を各目標未設定ボリュームに対して配分する。具体的には、帯域幅管理部１０２は、算出した総ＩＯ回数を目標未設定ボリュームに対する制限を行う前のそれぞれのＩＯ回数の割合で分配し、各目標未設定ボリュームに割り当てる。
【０１１８】
次に、図９を参照して、本実施例に係る運用管理サーバ１による帯域幅制御の全体をまとめて説明する。図９は、実施例２に係る運用管理サーバによる帯域幅制御の概要を表す図である。
【０１１９】
図９の左の状態は帯域幅制御処理を実行する前の状態を表す。帯域幅５００は、ストレージ装置２の全体の帯域幅である。そして、ここでは、ボリューム＃１〜＃４が存在する場合で説明する。各矢印は、ボリューム＃１〜＃４のそれぞれに割り当てられた帯域幅を表す。ボリューム＃１及び＃２は、非目標設定ボリュームである。また、ボリューム＃３及び＃４は、目標設定ボリュームである。
【０１２０】
左の状態では、ボリューム＃１の帯域幅５０１及びボリューム＃２の帯域幅５０２は、制限が行われていない。一方、ボリューム＃３は、帯域幅５０３が割り当てられている。また、ボリューム＃３の目標を達成する帯域幅は帯域幅５０５である。すなわち、左の状態で、ボリューム＃３は、目標レスポンスタイムを達成している。
【０１２１】
これに対して、ボリューム＃４は、帯域幅５０４が割り当てられている。また、ボリューム＃４の目標を達成する帯域幅は帯域幅５０６である。すなわち、左の状態で、ボリューム＃４は、目標レスポンスタイムを達成していない。
【０１２２】
そこで、帯域幅管理部１０２は、ボリューム＃３及び＃４の帯域幅を目標を満たす帯域幅を下限として目標達成ＩＯ回数を求める。この場合、帯域幅管理部１０２は、ボリューム＃３の帯域幅を帯域幅５１３とし、ボリューム＃４の帯域幅を帯域幅５１４とする。さらに、帯域幅管理部１０２は、帯域幅５００から帯域幅５１３及び５１４を除いた残りの帯域幅を、非目標達成ボリュームであるボリューム＃１及び＃２の帯域幅とする。そして、帯域幅管理部１０２は、残りの帯域幅を、非目標達成ボリュームであるボリューム＃１及び＃２の左の状態の帯域幅の割合で案分する。これにより、ボリューム＃１の帯域幅は、帯域幅５０１から減らされて、帯域幅５１１に変更される。また、ボリューム＃２の帯域幅は、帯域幅５０２から減らされて、帯域幅５１２に変更される。
【０１２３】
次に、図１０を参照して、本実施例に係る運用管理サーバ１による帯域幅制限の処理の流れについて説明する。図１０は、実施例２に係る運用管理サーバによる帯域幅制限の処理のフローチャートである。
【０１２４】
帯域幅管理部１０２は、情報格納部１０４に格納された情報から目標設定ボリュームを特定する。そして、帯域幅管理部１０２は、特定した目標設定ボリュームから１つ選択する（ステップＳ１１）。
【０１２５】
次に、帯域幅管理部１０２は、目標レスポンスタイム、他ＩＯ処理待ち時間及びＩＯ処理時間を情報格納部１０４から取得する。そして、帯域幅管理部１０２は、取得した情報を数式（２）に用いて目標達成帯域制限待ち時間を算出する（ステップＳ１２）。
【０１２６】
次に、帯域幅管理部１０２は、制限がある場合のＩＯ回数、測定時間及び総待機時間を情報格納部１０４から取得する。そして、帯域幅管理部１０２は、取得した情報を数式（４）に用いて無制限ＩＯ回数を算出する（ステップＳ１３）。
【０１２７】
次に、帯域幅管理部１０２は、算出した目標達成帯域制限待ち時間及び無制限ＩＯ回数、並びに、取得した測定時間を数式（５）及び（６）に用いて、目標達成ＩＯ回数及び目標達成総待機時間を算出する（ステップＳ１４）。
【０１２８】
次に、帯域幅管理部１０２は、選択した目標達成ボリュームにおいて、待機時間を０にしても目標未達成であるか否かを判定する（ステップＳ１５）。目標を達成している場合（ステップＳ１５：否定）、帯域幅管理部１０２は、ステップＳ１７へ進む。
【０１２９】
これに対して、目標を達成していない場合（ステップＳ１５：肯定）、帯域幅管理部１０２は、無制限ＩＯ回数を選択した目標達成ボリュームの帯域幅として設定する（ステップＳ１６）。
【０１３０】
次に、帯域幅管理部１０２は、全ての目標設定ボリュームについて帯域幅制限を決定する処理が完了したか否かを判定する（ステップＳ１７）。帯域幅制限を決定が完了してない目標設定ボリュームが存在する場合（ステップＳ１７：否定）、帯域幅管理部１０２は、ステップＳ１１へ戻る。このステップＳ１１〜Ｓ１７までが前段処理にあたる。
【０１３１】
これに対して、帯域幅制限の決定を全ての目標設定ボリュームについて完了した場合（ステップ１７：肯定）、帯域幅管理部１０２は、全ての目標設定ボリュームが目標を達成したか否かを判定する（ステップＳ１８）。全ての目標設定ボリュームが目標を達成した場合（ステップＳ１８：肯定）、ステップＳ２７へすすむ。
【０１３２】
これに対して、目標未達成の目標設定ボリュームが存在する場合（ステップＳ１８：否定）、帯域幅管理部１０２は、目標未設定ボリューム全てを帯域制限なしにした場合のＩＯ回数を算出する（ステップＳ１９）。
【０１３３】
次に、帯域幅管理部１０２は、実測レスポンスタイムが目標レスポンスタイムから最も離れている目標設定ボリュームを選択する。そして、帯域幅管理部１０２は、選択した目標設定ボリュームの目標レスポンスタイムを数式（７）に用いて全ての目標達成ボリュームが目標を達成する目標達成他ＩＯ処理待ち時間を算出する（ステップＳ２０）。
【０１３４】
次に、帯域幅管理部１０２は、ＩＯ処理時間、他ＩＯ処理待ち時間及び総ＩＯ回数を数式（８）で表されるＭ／Ｍ／１モデルに用いて、数式（９）で表されるストレージ装置２の単位時間処理可能数を算出する（ステップＳ２１）。
【０１３５】
次に、帯域幅管理部１０２は、目標設定ボリュームの目標達成他ＩＯ処理待ち時間、単位時間処理可能数及びＩＯ処理時間をＭ／Ｍ／１モデルに用いて、数式（１０）で表される目標を達成する総ＩＯ回数を算出する（ステップＳ２２）。
【０１３６】
次に、帯域幅管理部１０２は、総ＩＯ回数から帯域幅が既に決定した目標設定ボリュームのＩＯ回数を減算し（ステップＳ２３）、残りのボリューム２３２に残りの割り当て可能なＩＯ回数を算出する。
【０１３７】
次に、帯域幅管理部１０２は、残りのボリューム２３２に残りの割り当て可能なＩＯ回数を、変更前の帯域幅を用いて残りのボリューム２３２に割り付け、各ボリューム２３２に割り当てるＩＯ回数を算出する（ステップＳ２４）。
【０１３８】
次に、帯域幅管理部１０２は、割り当てられたＩＯ回数よりも目標を達成するＩＯ回数の方が多い目標設定ボリュームが存在するか否かを判定する（ステップＳ２５）。
【０１３９】
割り当てられたＩＯ回数よりも目標を達成するＩＯ回数の方が多い目標設定ボリュームが存在する場合（ステップＳ２５：肯定）、帯域幅管理部１０２は、該当目標設定ボリュームに目標を達成可能なＩＯ回数を設定する（ステップＳ２６）。その後、帯域幅管理部１０２は、ステップＳ２１へ戻る。
【０１４０】
これに対して、割り当てられたＩＯ回数よりも目標を達成するＩＯ回数の方が多い目標設定ボリュームが存在する場合（ステップＳ２５：否定）、帯域幅管理部１０２は、ステップＳ２７へ進む。
【０１４１】
帯域幅管理部１０２は、決定した各ボリューム２３２の帯域幅制限をストレージ装置２のデータ処理部２４２に通知し、算出した帯域幅をストレージ装置２に設定する（ステップＳ２７）。
【０１４２】
データ処理部２４２は、通知された帯域幅制限にしたがって各目標設定ボリュームの帯域幅制限を行う（ステップＳ２８）。
【０１４３】
ここで、帯域幅制限の具体例について説明する。例えば、目標設定ボリュームを用いる業務Ａ及びＢと非目標設定ボリュームを用いる業務Ｘ及びＹとが存在する場合について説明する。ここでは、前段処理が完了し、各目標設定ボリュームのＩＯ回数の決定が行われた状態からのＩＯ回数の制御を行う場合について説明する。
【０１４４】
業務Ａが使用する目標設定ボリュームは、実測ＩＯ回数が５０回であり、帯域幅制限は行われておらず目標が未達成である。また、業務Ｂが使用する目標設定ボリュームは、実測ＩＯ回数が５０回であり、帯域幅制限は行われておらず目標レスポンスタイムを達成するＩＯ回数は４０回である。すなわち、業務Ｂが使用する目標設定ボリュームは、制限が可能な状態である。また、業務Ｘが使用する非目標設定ボリュームは、実測ＩＯ回数が１５０回であり、帯域幅制限は行われていない。また、業務Ｙが使用する非目標設定ボリュームは、実測ＩＯ回数が５０回であり、制限が行われている。そして、業務Ｙが使用する非目標設定ボリュームは、帯域幅制限が行われない場合のＩＯ回数は１００回である。以上のような状態で帯域幅管理部１０２は、前段処理以降の帯域幅制御の処理を実行する。
【０１４５】
帯域幅管理部１０２は、ストレージ装置２における測定結果である性能情報とＭ／Ｍ／１モデルを用いて、全ての目標設定ボリュームが目標を満たす総ＩＯ回数を算出する。ここでは、帯域幅管理部１０２は、全ての目標設定ボリュームが目標を満たす総ＩＯ回数を２００回と算出した場合で説明する。
【０１４６】
次に、帯域幅管理部１０２は、算出した総ＩＯ回数を各ボリューム２３２に割り振る。具体的には、帯域幅管理部１０２は、目標が未達成のＡのＩＯ回数を除いた残りのＩＯ回数と業務Ｂ、Ｘ及びＹが使用するボリューム２３２の制限なしのＩＯ回数の合計の割合を算出する。この場合、帯域幅管理部１０２は、（２００−５０）／（５０＋１５０＋１００）≒０．５として割合を算出する。
【０１４７】
次に、帯域幅管理部１０２は、業務Ｂが使用する目標設定ボリュームの目標レスポンスタイムを達成可能なＩＯ回数と算出した割合でＩＯ回数を割り振った場合のＩＯ回数を比較する。そして、帯域幅管理部１０２は、値の大きい方を業務Ｂが使用する目標設定ボリュームのＩＯ回数とする。この場合、業務Ｂが使用する目標設定ボリュームの目標レスポンスタイムを達成可能なＩＯ回数は４０回である。また、業務Ｂが使用する目標設定ボリュームに算出した割合でＩＯ回数を割り振った場合のＩＯ回数は２５回である。そこで、帯域幅管理部１０２は、業務Ｂが使用する目標設定ボリュームのＩＯ回数を４０回に設定する。
【０１４８】
ただし、この場合とは異なり、業務Ｂが使用する目標設定ボリュームに算出した割合でＩＯ回数を割り振った場合のＩＯ回数が大きければ、帯域幅管理部１０２は、業務Ｘ及びＹに算出した割合でＩＯ回数を割り振り、各ボリューム２３２の帯域幅を決定する。
【０１４９】
次に、帯域幅管理部１０２は、業務Ａが使用する目標設定ボリュームのＩＯ回数を５０回に設定し、業務Ｂが使用する目標設定ボリュームのＩＯ回数を４０回に設定した場合の全ての目標設定ボリュームが目標を達成可能な総ＩＯ回数を再度算出する。この場合も、帯域幅管理部１０２は、ストレージ装置２における測定結果である性能情報とＭ／Ｍ／１モデルを用いて総ＩＯ回数を算出する。ここでは、帯域幅管理部１０２は、全ての目標設定ボリュームが目標を満たす総ＩＯ回数を１９０回と算出した場合で説明する。
【０１５０】
帯域幅管理部１０２は、算出した総ＩＯ回数から業務Ａ及びＢが使用する目標設定ボリュームのＩＯ回数を減算した残りのＩＯ回数の、業務Ｘ及びＹが使用する非目標達成ボリュームの総ＩＯ回数に対する割合を求める。この場合、帯域幅管理部１０２は、（１９０−５０−４０）／２５０＝０．４として、割合を算出する。
【０１５１】
次に、帯域幅管理部１０２は、算出した割合に非目標達成ボリュームの制限なしの場合のＩＯ回数を乗算して、業務Ｘ及びＹが使用する非目標達成ボリュームのＩＯ回数を求める。この場合、帯域幅管理部１０２は、業務Ｘが使用する非目標達成ボリュームのＩＯ回数を、１５０×０．４＝６０と求める。また、帯域幅管理部１０２は、業務Ｙが使用する非目標達成ボリュームのＩＯ回数を、１００×０．４＝４０と求める。
【０１５２】
帯域幅管理部１０２は、業務Ａが使用する目標達成ボリュームに、ＩＯ回数が５０回となる帯域幅を設定し、業務Ｂが使用する目標達成ボリュームに、ＩＯ回数が４０回となる帯域幅を設定する。また、帯域幅管理部１０２は、業務Ａが使用する目標達成ボリュームに、ＩＯ回数が５０回となる帯域幅を設定し、業務Ｂが使用する目標達成ボリュームに、ＩＯ回数が４０回となる帯域幅を設定する。
【０１５３】
ここで、以上では、帯域幅が決定した目標設定ボリュームのＩＯ回数を総ＩＯ回数から除いた残りのＩＯ回数を、残りの各ボリューム２３２が帯域幅を制限していない状態のＩＯ回数の比率に応じて、残りの各ボリューム２３２に割り当てた。ただし、この残りのＩＯ回数の配分方法は、他の方法でもよく、例えば、残りの各ボリュームに残りのＩＯ回数を均等割り付けして割り当ててもよい。
【０１５４】
以上に説明したように、本実施例に係る運用管理サーバは、前段処理で求めた帯域幅では目標未達成の場合に、目標設定ボリュームが目標レスポンスを満たす範囲で、非目標設定ボリュームのレスポンス時間を最短にする帯域幅を求める。これにより、目標レスポンスタイムを目標設定ボリュームが満たす可能性を向上させることができる。また、この場合も、帯域幅の調整を、段階的に行うことなく迅速に目標値を満たす帯域幅の調整を行うことができる。
【０１５５】
さらに、以上の各実施形態では、性能情報としてＩＯ回数を用いて帯域幅を決定する方法について説明したが、帯域幅が求まる情報であればこれに限らず、例えば、スループットなどを用いて帯域幅を決定してもよい。
【符号の説明】
【０１５６】
１  運用管理サーバ
２  ストレージ装置
３  操作端末
４  業務サーバ
１０１  設定部
１０２  帯域幅管理部
１０３  監視部
１０４  情報格納部
２４１  性能情報取得部
２４２  データ処理部
２４３  データ格納部
２５１  帯域制限待ちキュー
２５２  帯域制限制御部
２５３  ＩＯ待ちキュー
２５４  ＩＯ処理部
【図１】
2018041282.tif 000007
【図２】
2018041282.tif 000008
【図３】
2018041282.tif 000009
【図４】
2018041282.tif 000010
【図５】
2018041282.tif 000011
【図６】
2018041282.tif 000012
【図７】
2018041282.tif 000013
【図８】
2018041282.tif 000014
【図９】
2018041282.tif 000015
【図１０】
2018041282.tif 000016