(57)【要約】  本発明におけるストレージシステムは、ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有する。物理資源の種類には少なくとも、プロセッサ資源、メモリ資源、ホストと接続されるポート資源とが含まれる。ストレージシステムは、物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能で、仮想ストレージ装置内にホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、仮想資源を仮想ボリュームに割り当て、仮想ボリュームに対するＩ／Ｏ要求をホストから受け付けると、割り当てられた仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施する。ストレージシステムはまた、仮想資源を仮想ボリュームに割り当てた後、仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる。
2016121066.tif 000002
【特許請求の範囲】
【請求項１】
ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムにおいて、前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、  前記ストレージ装置は、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能に構成されており、  前記仮想ストレージ装置は、前記仮想ストレージ装置内に前記ホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するＩ／Ｏ要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施し、  前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、ことを特徴とする、ストレージシステム。
【請求項２】
前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、ことを特徴とする、請求項１に記載のストレージシステム。
【請求項３】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、  Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、  Ｂ）  前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、  Ｃ）  前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項２に記載のストレージシステム。
【請求項４】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、  Ｄ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、  Ｅ）  前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項３に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、  Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、  Ｂ）  現時点で使用されている前記仮想資源の資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項２に記載のストレージシステム。
【請求項６】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、  Ｃ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、  Ｄ）  現時点で使用されている前記仮想資源の資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項５に記載のストレージシステム。
【請求項７】
ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムの制御方法であって、前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、  前記ストレージ装置は、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能なストレージ装置であって、  前記ストレージシステムは、  １）  前記仮想ストレージ装置内に前記ホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するＩ／Ｏ要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施し、  ２）  前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、ことを特徴とする、ストレージシステムの制御方法。
【請求項８】
前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、ことを特徴とする、請求項７に記載のストレージシステムの制御方法。
【請求項９】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、  Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、  Ｂ）  前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、  Ｃ）  前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項８に記載のストレージシステムの制御方法。
【請求項１０】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、  Ｄ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、  Ｅ）  前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、ことを特徴とする、請求項９に記載のストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、ストレージシステムの性能管理技術に関する。
【背景技術】
【０００２】  クラウド環境では、テナントを単位とした性能管理技術が重要となってきており、テナントを構成するストレージの性能管理技術も、ますます重要になってきている。一方で近年、ストレージ仮想化技術により、ストレージに関する専門知識を持たない管理者でも容易にストレージ管理ができるようになってきている。以上の背景から、ストレージ仮想化技術を適用した仮想ストレージの性能管理技術が重要となってきている。【０００３】  ストレージシステムの性能管理技術として、ストレージシステムが持つ各物理資源（ポートやキャッシュなど）について、ユーザによる資源占有量を設定可能にすることで、アプリケーション間の性能影響を防止する技術がある。一方、ストレージ仮想化技術として、シンプロビジョニング技術やティアリング技術など、データを格納する適切なメディアをストレージシステムが自動決定することで、専門知識を持たないユーザでも、ストレージシステムを管理可能にする技術がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】  仮想ストレージを対象とした性能管理技術の課題の１つは、資源占有量の設定によって性能管理を行う時、どの物理資源が、どの程度の資源占有量を必要とするかを、ユーザが判断することが難しいことである。すなわち、目標性能を達成するための必要最小限の資源占有量を、ユーザが設定することが難しいことである。【０００５】  また、仮想ストレージを対象とした性能管理技術の課題のもう１つは、仮想ストレージが複数の物理資源で構成される場合に、仮に各物理資源に必要最小限の資源占有量を設定できた場合でも、各物理資源への処理負荷の偏りが変化することによって、特定の物理資源の資源占有量が不足し、目標性能を達成できない可能性があることである。
【課題を解決するための手段】
【０００６】  本発明におけるストレージシステムは、ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有する。物理修験の種類には少なくとも、プロセッサ資源、メモリ資源、ホストと接続されるポート資源とが含まれる。ストレージシステムは、物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能で、仮想ストレージ装置内にホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、仮想資源を仮想ボリュームに割り当て、仮想ボリュームに対するＩ／Ｏ要求をホストから受け付けると、割り当てられた仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施する。ストレージシステムはまた、仮想資源を仮想ボリュームに割り当てた後、仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる。
【発明の効果】
【０００７】  仮想ストレージを対象とした性能管理が容易となり、性能管理コストの低減が可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明におけるシステム構成図を示す。
【図２】本発明における仮想ストレージの構成図である。
【図３】第一の実施例における仮想ボリュームの構成図である。
【図４】本発明における制御プログラム例と制御テーブル例とを示す図である。
【図５】第一の実施例における仮想ストレージ設定管理テーブルの構成図である。
【図６】第一の実施例における仮想ストレージ構成管理テーブルの構成図である。
【図７】第一の実施例における仮想ボリューム構成管理テーブルの構成図である。
【図８】第一の実施例における物理ボリューム構成管理テーブルの構成図である。
【図９】第一の実施例における仮想ボリュームモニタテーブルの構成図である。
【図１０】第一の実施例における物理資源量管理テーブルの構成図である。
【図１１】第一の実施例における仮想資源量管理テーブルの構成図である。
【図１２】第一の実施例における資源割当てプログラムの構成図である。
【図１３】第一の実施例における仮想ボリューム作成プログラムの構成図である。
【図１４】第一の実施例におけるホストＩ／Ｏプログラムの構成図である。
【図１５】第一の実施例における資源再割当てプログラムの処理概要図である。
【図１６】第一の実施例における資源再割当てプログラムの構成図である。
【図１７】第一の実施例における資源逼迫改善プログラムの構成図である。
【図１８】第二の実施例における仮想ボリュームの構成図を示す。
【図１９】第二の実施例における仮想ボリューム構成管理テーブルの構成図である。
【図２０】第二の実施例における物理ボリューム構成管理テーブルの構成図である。
【図２１】第二の実施例における仮想ボリュームモニタテーブルの構成図である。
【図２２】第二の実施例における仮想ボリューム作成プログラムの構成図である。
【図２３】第二の実施例におけるホストＩ／Ｏプログラムの構成図である。
【図２４】第二の実施例における資源再割当てプログラムの構成図である。
【図２５】第三の実施例における仮想ストレージ構成管理テーブルの構成図である。
【図２６】第三の実施例における資源再割当てプログラムの処理概要図である。
【図２７】第三の実施例における資源再割当てプログラムの処理概要図（２）である。
【図２８】第三の実施例における資源再割当てプログラムの構成図である。
【図２９】第四の実施例におけるボリュームコピー機能の概要図である。
【図３０】第四の実施例におけるボリュームコピー機能の状態遷移図である。
【図３１】第四の実施例における重複排除機能と圧縮機能の概要図である。
【図３２】第四の実施例におけるストレージ機能状態管理テーブルの構成図である。
【図３３】第四の実施例におけるストレージ機能状態補正テーブルの構成図である。
【図３４】第四の実施例におけるストレージ機能状態変更プログラムの構成図である。
【図３５】資源再割当てプログラムの変形例である。
【発明を実施するための形態】
【実施例１】
【０００９】  図１は、実施例１に係る計算機システムの概略構成を模式的に示すブロック図である。本計算機システムは、ホスト１００、管理サーバ１１０、ストレージシステム１２０を含む。計算機システムが含みえるホスト、管理サーバ、ストレージシステムのそれぞれの数は、１以上の任意の数である。【００１０】  ホストは、ストレージシステムに格納されたデータを使って業務などを行う計算機である。ホストとストレージシステムとは、データネットワーク１３０で接続されており、互いに通信が可能である。データネットワークは、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とも呼ばれ、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）や、Ｅａｔｈｅｒｎｅｔなどの一般的な技術を使って構成される。【００１１】  管理サーバは、ストレージシステムが提供する各種機能の設定など、ストレージシステムの管理を行う計算機である。管理サーバとストレージシステムとは、管理ネットワーク１３１で接続されており、互いに通信が可能である。管理ネットワークも、Ｅａｔｈｅｒｎｅｔなどの一般的な技術を使って構成される。【００１２】  ストレージシステムは、ホストが読み書きするデータを格納する１以上のメディア１５０と、ホストとメディアとの間のデータ転送制御などを行う１以上のストレージコントローラ１４０とで構成される。メディアには、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）１５１やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１５２などの一般的な技術が利用できる。【００１３】  ストレージコントローラは、プロセッサ１４１、メモリ１４２、ホストインターフェース１６０（単にポートと呼ぶこともある）、管理インターフェース１６１、メディアインターフェース１６２などのデバイスで構成される。ストレージコントローラは、各デバイスを１以上の任意の数含むことができる。【００１４】  ストレージコントローラ内の各デバイスは互いに内部ネットワークで接続されており、通信が可能である。同様に、ストレージシステム内の各ストレージコントローラも互いに内部ネットワークで接続されており、通信が可能である。【００１５】  プロセッサは、ホストから受領するコマンドを処理するプログラムなど、ストレージコントローラが備える各種機能を実現するプログラムを実行できる。ただし、ストレージコントローラが備える機能の少なくとも一部は、プロセッサ以外のデバイス（専用ハードウェアなど）で実行されてもよい。【００１６】  ホストインターフェースと管理インターフェースはそれぞれ、ホストと管理サーバに接続され、通信を行うデバイスである。ホストインターフェースと管理インターフェースにはそれぞれ、データネットワークや管理ネットワークに使われている通信プロトコルが実装され、ホストや管理サーバと、データやコマンドを通信することができる。【００１７】  メディアインターフェースは、メディアに接続され、互いに通信を行うデバイスである。メディアインターフェースには、ＦＣ、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）などの標準的な通信プロトコルが実装され、メディアと、データやコマンドを通信することができる。【００１８】  以降、ストレージコントローラが含む、プロセッサ、メモリ、メディア、ホストインターフェース等の、ホストからのＩ／Ｏ要求を処理するために用いられる各デバイスを「物理資源」と呼ぶ。また、プロセッサやメモリ等のデバイス種別は「資源種別」と呼ぶ。また本実施例に係るストレージコントローラは、いわゆる仮想計算機技術を用いて、１つの物理資源（の処理能力）を論理的に分割することで複数の仮想資源（仮想プロセッサ、仮想ポート等）を生成することができる。具体的には、たとえば物理資源の処理能力を時分割で複数の仮想資源に割り当てることにより、１つの物理資源を論理的に分割する。各物理資源には、最大処理能力が定められている。本明細書では各物理資源の最大処理能力のことを、「限界資源量」と呼ぶ。当該資源はＩ／Ｏ処理など処理を実行することで消費される。尚、本明細書では、同一の資源種別であっても、限界資源量が異なる構成を許容する。【００１９】  図２は、仮想ストレージの構成例を示す図である。仮想ストレージ２００は、ストレージシステム１２０の物理資源（プロセッサ１４１、メモリ１４２、メディア１５０、ポート１６０）を仮想化した仮想資源（仮想プロセッサ２０１、仮想メモリ２０１、仮想メディア２０３、仮想ポート２０４）を有する論理的なストレージである。ストレージシステムは、複数個の仮想ストレージを構成できる。各仮想資源は、ストレージシステムが有するプロセッサ、メモリ、メディア、ポートにそれぞれ対応する。【００２０】  図３は、第一の実施例における、仮想ボリュームの構成例を示す図である。仮想ボリューム３００は、仮想ストレージ２００が提供する仮想的な論理ボリュームであり、物理ボリューム３０１で構成される。仮想ボリュームは、資源割当てプログラム４００にて作成される。物理ボリュームは、メディア１５０に直接対応づいた論理ボリュームである。【００２１】  本実施例では、便宜上、仮想ボリュームと物理ボリュームとの対応関係が１：１であり、かつボリュームサイズが同じである構成について示す。しかしながら、ボリュームサイズが半分である２個の物理ボリュームを組合せて、１個の仮想ボリュームを作成しても、１個の物理ボリュームを複数の仮想ボリュームに関連付けても構わない。【００２２】  図４は、メモリ１４２に格納されるストレージ制御プログラム、およびストレージ制御テーブルの一例を示すブロック図である。ストレージ制御プログラムには、少なくとも、資源割当てプログラム４００、ホストＩ／Ｏプログラム４０１、資源再割当てプログラム４０２、資源逼迫改善プログラム４０３、共有資源解放プログラム４０４、ストレージ機能状態変更プログラム４０５が含まれる。各プログラムの詳細は後述する。【００２３】  ストレージ制御テーブルは、少なくとも、仮想ストレージ設定管理テーブル４１０、仮想ストレージ構成管理テーブル４１１、仮想ボリューム構成管理テーブル４１２、物理ボリューム構成管理テーブル４１３、仮想ボリュームモニタテーブル４１４、物理資源量管理テーブル４１５、仮想資源量管理テーブル４１６、ストレージ機能状態管理テーブル４１７、ストレージ機能状態補正テーブル４１８を含む。各制御テーブルの詳細は後述する。【００２４】  図４で示すストレージ制御プログラムは、同じく図４で示すストレージ制御テーブルを参照して、ストレージシステム１２０の動作を制御する。尚、上では、各種管理情報を「テーブル」と呼んでいるが、これら管理情報のデータ構造がテーブルに限定されるわけではない。各管理情報はデータ構造に依存せず、リストやキューなど、適切なデータ構造で表現することができる。【００２５】  図５は、仮想ストレージ設定管理テーブル４１０の一例である。仮想ストレージ設定管理テーブルとは管理サーバ１１０が指定する仮想ストレージ２００の構成情報を管理するテーブルであり、ストレージシステム１２０当り複数個存在しうる。仮想ストレージ設定管理テーブルは、少なくとも、仮想ストレージ番号（以下、ＶＳ＃と略す場合もある）カラム５０１と、仮想ボリューム番号（以下、VVOL＃と略す場合もある）カラム５０２、目標資源使用率カラム５０４、優先順位カラム５０５とを含む。【００２６】  仮想ストレージ番号カラム５０１には、当該ストレージシステムが提供する仮想ストレージの識別子を格納する。仮想ボリューム番号カラム５０２には、当該仮想ストレージに所属する仮想ボリューム３００の識別子を格納する。当カラムに格納する仮想ボリューム番号は、複数個存在してよい。【００２７】  目標資源使用率カラム５０４には、当該仮想ストレージが目標とする資源使用率を格納する。目標資源使用率は、資源再割当てプログラム４０２で使用される値であり、目標性能を達成するために必要な仮想資源量の予備量を制御する設定値である。【００２８】  例えば、目標資源使用率５０４を１０％に設定した場合、ストレージシステム１２０が目標性能達成に必要と見積もった仮想資源量の１０倍の量を仮想ストレージに占有させることが可能であり、９０％に設定した場合に比べて、ワークロードの変化が原因となる目標性能未達リスクを低減させることができる。目標資源使用率５０４は、管理サーバによって指定されることも可能であるが、本実施例では、ストレージシステム１２０が自動調整する例を示す。また、本実施例における仮想資源量の定義は後述する。【００２９】  優先順位カラム５０５には、性能保証度合いに関する、仮想ストレージ間の優先順位を示す値を格納する。優先順位５０５は、資源逼迫改善プログラム４０３で使用される値であり、優先順位５０５が１に近づくにつれ、優先順位が高いことを意味する。そして優先順位５０５が高い仮想ストレージから優先的に資源逼迫改善プログラム４０３の処理対象とされる。資源逼迫改善プログラム４０３が実行されることにより、担当資源変更が原因となる目標性能未達リスクを低減させることができる。【００３０】  図６は、仮想ストレージ構成管理テーブル４１１の一例である。仮想ストレージ構成管理テーブルは、各仮想ストレージ２００を構成する各仮想資源の構成情報を示すテーブルであり、少なくとも、ＶＳ＃カラム６０１、仮想ポート構成カラム６０２、仮想プロセッサ構成カラム６０３、仮想メモリ構成６０４、仮想メディア構成カラム６０５、を含む。【００３１】  仮想ポート構成カラム６０２は、複数のポート１６０より構成される仮想ポート���０４の仮想資源量を示す。仮想ポート２０４の仮想資源量は、例えば、ポート性能（Ｇｂｐｓ）とポート数（個）で表現される。仮想プロセッサ構成カラム６０３は、複数のプロセッサ１４１より構成される仮想プロセッサ２０１の仮想資源量を示す。仮想プロセッサ２０１の仮想資源量は、例えば、プロセッサ性能（ＧＨｚ）とプロセッサ数（個）とで表現される。【００３２】  仮想メモリ構成カラム６０４は、複数のメモリ１４２より構成される仮想メモリ２０２の仮想資源量を示す。仮想メモリ２０２の仮想資源量は、例えば、メモリ量（Ｂｙｔｅ）で表現される。仮想メディア構成カラム６０５は、複数のメディア１５０より構成される仮想メディア２０３の仮想資源量を示す。仮想メディア２０３の仮想資源量は、例えば、メディア種別（ＳＳＤ１５１またはＨＤＤ１５２）やメディア台数（個）で表現される。尚、各メディア種別の１台当りの資源量（メディア種別資源量）は、ＨＤＤは１００ＩＯＰＳ、ＳＳＤは１００００ＩＯＰＳのように、事前にシステムで一意の値が決定されていると仮定する。当然、メディア種別資源量が異なるメディア種別を追加しても構わない。【００３３】  カラム６０２から６０５の値は、以降、仮想総資源量とも呼ばれる。例えば、ＶＳ＃００１の仮想ポート総資源量（仮想ポート構成６０２）は８Ｇｂｐｓであり、仮想プロセッサ総資源量（仮想プロセッサ構成６０３）は２．３ＧＨｚであり、仮想メモリの総資源量（仮想メモリ構成６０４）は２００ＧＢであり、仮想メディアの総資源量（仮想メディア構成６０５）は３００００ＩＯＰＳである。一方、仮想ストレージに割り当てられた、特定の１つの物理資源の一部（数十％など）のことは、仮想資源量と呼ばれる。たとえば性能が２ＧＨｚの物理プロセッサの１０％（つまり０．２ＧＨｚ）をある仮想ストレージに割り当てた時、仮想ストレージに割り当てられたプロセッサの仮想資源量は０．２ＧＨｚである、と表現する。【００３４】  尚、仮想ストレージ構成管理テーブル４１１に格納される各仮想総資源量の指定方法は一例であり、処理性能に関する資源量を示す一般的な単位を使用することができる。また、仮想ストレージ構成管理テーブル４１１のカラムとして、ストレージシステム１２０が有する他の資源種別で構成した仮想資源の仮想総資源量を定義することも可能である。【００３５】  図７は、仮想ボリューム構成管理テーブル４１２の一例である。仮想ボリューム構成管理テーブル４１２は、各仮想ボリューム３００と物理ボリューム３０１との対応関係を示す情報である。仮想ボリューム構成管理テーブル４１２は、少なくとも、VVOL＃カラム７０１、ボリュームサイズカラム７０２、物理ボリューム番号カラム７０３、目標性能カラム７０４を含む。特に、物理ボリューム番号カラム７０３に「Ｎ／Ａ」が格納されている場合は、当該仮想ボリュームが未使用であることを示す。【００３６】  目標性能カラム７０４には、仮想ボリュームの目標性能を格納する。目標性能として、スループット性能（ＩＯＰＳなど）やレスポンス性能（ｍｓなど）、またはその組合せを指定できる。スループットやレスポンスは、範囲で指定することができる。すなわち、「１００ＩＯＰＳ以上」や「２００Ｉ��ＰＳ以下」、または、その組合せで指定することができる。但し、本実施例では、便宜上、スループット性能の下限値、および、レスポンス性能の上限値のみ指定可能にする。図７ではスループット性能の下限値が指定されている例が示されている。【００３７】  特に、目標性能にスループット性能が設定される場合は、当該仮想ストレージに所属する全仮想ボリュームに対して適用される。例えば、目標性能に１００ＩＯＰＳを設定した場合、各仮想ボリュームの合計が１００ＩＯＰＳであることを示す。また、目標性能にレスポンス性能が設定される場合の性能管理方法は、第三の実施例で示す。尚、目標性能の単位は、上記の限りではなく、スループット性能やレスポンス性能を指定可能な単位であれば良い。【００３８】  図８は、物理ボリューム構成管理テーブル４１３の一例を示す。物理ボリューム構成管理テーブル４１３とは、ストレージシステム１２０が有する各物理ボリューム３０１について、当該物理ボリュームの処理を担当する物理資源（以下、担当資源と呼ぶ）の情報を保持するテーブルである。物理ボリューム構成管理テーブル４１３は、少なくとも、物理ボリューム番号カラム８０１、ボリュームサイズカラム８０２、担当ポート番号カラム８０３、担当プロセッサ番号カラム８０４、担当メモリ番号カラム８０５、担当メディア番号カラム８０６の情報を含む。【００３９】  カラム８０３からカラム８０６には、物理ボリュームの各担当資源の識別子を格納する。特に、担当メディア番号として、「ＨＤＤ１００」、「ＳＳＤ１００」など、メディア種別ごとに一意な識別子を示したが、格納先メディアが特定できれば、識別子はいずれでも構わない。また、ボリュームサイズカラム８０２に「Ｎ／Ａ」が格納されている場合は、当該物理ボリューム番号が未定義であることを示す。【００４０】  尚、メモリ１４２やメディア１５０に実際にデータを格納する処理では、格納先のメモリアドレスや、メディアアドレスを算出する処理が必要となるが、当該処理は一般的であるため本明細書では省略する。また、各物理ボリュームには、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術を適用することもできる。この場合、物理ボリュームのデータが複数のメディア１５０に分散して格納されるため、担当メディア番号８０６に複数のメディア識別子が格納される。【００４１】  図９は、仮想ボリュームモニタテーブル４１４の一例である。仮想ボリュームモニタテーブル４１４は、各仮想ボリューム３００のモニタリング情報を格納するテーブルであり、少なくとも、VVOL＃カラム９０１、スループット性能カラム９０２、レスポンス性能カラム９０３を含む。各カラムの詳細な説明は自明のため省略する。【００４２】  カラム９０２とカラム９０３の値は、ホストＩ／Ｏプログラム４０１にて更新される。本明細書中では、これらの値の更新方法の詳細を記載しないが、一般的なモニタリング技術を使用した更新が可能である。例えば、スループット性能の更新は、ホストが受領したＩ／Ｏ数を逐次カウントし、１秒ごとに集計する処理で実現できる。【００４３】  図１０は、物理資源量管理テーブル４１５の一例を示す。物理資源量管理テーブル４１５は、ストレージシステム１２０が備える各物理資源の資源量を管理するテーブルである。物理資源量管理テーブル４１５は、少なくとも、資源種別カラム１００１、資源番号カラム１００２、限界資源量カラム１００３、資源割当て率カラム１００４、物理資源使用率カラム１００５、使用率閾値カラム１００６を有する。【００４４】  資源種別カラム１００１は、ポート１６０、プロセッサ１４０、メモリ１４２、メディア１５０などの資源種別を格納し、資源番号カラム１００２に格納する資源種別ごとの識別子とともに、ストレージシステム１２０内の各物理資源を一意に特定する情報となる。限界資源量カラム１００３は、各物理資源の処理能力を示す値を格納する。【００４５】  資源割当て率カラム１００４は、当該物理資源の限界資源量１００３に占める、当該物理資源を使用する全ての仮想ストレージ２００が占有する資源量合計の割合を示す。同様に、物理資源使用率カラム１００５は、当該物理資源の限界資源量１００３に占める、当該物理資源を使用する全ての仮想ストレージ２００が、Ｉ／Ｏ処理の実行のために使用している資源量合計の割合を示す。前述の通り、当該テーブルの資源割当て率１００４や物理資源使用率１００５は、物理資源の処理性能に基づく値である。尚本明細書では、便宜上、「１００％−（資源割当て率１００４）」を余剰資源率とも表現する。【００４６】  例えば、限界資源量１００３が４Ｇｂｐｓであるポートの場合、「資源割当て率１０％」は４００Ｍｂｐｓが仮想ストレージ２００により占有され（割り当てられ）、「物理資源使用率１％」は４０Ｍｂｐｓが仮想ストレージ２００でＩ／Ｏ処理を行うために使用されている（稼働している）ことを示す。同様に、限界資源量１００３が２ＧＨｚのプロセッサの場合、「資源割当て率５０％」は１ＧＨｚ分（または、毎秒５００ｍｓ）が仮想ストレージ２００により占有され、「物理資源使用率４０％」は０．８ＧＨｚ分（または、毎秒４００ｍｓ）が仮想ストレージ２００でＩ／Ｏ処理を行うために使用されている（稼働している）ことを示す。【００４７】  限界資源量１００３が４ＧＢのメモリの場合、「資源割当て率５０％」は２ＧＢ分が仮想ストレージ２００により占有され、「物理資源使用率４０％」は仮想ストレージ２００により単位時間当たりにリードキャッシュとして参照されたキャッシュ容量が１．６ＧＢ分であることを示す。同様に、限界資源量１００３が１００ＩＯＰＳのメディアの場合、「資源割当て率５０％」は５０ＩＯＰＳ分が仮想ストレージ２００により占有され、「物理資源使用率１０％」は１０ＩＯＰＳが仮想ストレージ２００のＩ／Ｏ処理で使用されていることを示す。【００４８】  以上、各資源の資源割当て率１００４と物理資源使用率１００５の計算例を示した。当然ながら各値は、各物理資源の処理性能を対象とした資源量を示す値であれば、異なる計算式で算出することも、異なる単位を用いることも可能である。【００４９】  使用率閾値カラム１００６は、当該物理資源を資源逼迫状態と判定する閾値を示す。例えば、使用率閾値が８０％である場合、物理資源使用率１００５が８０％を超えた場合に、当該物理資源を資源逼迫状態と判定する。資源逼迫状態にある物理資源は、仮想ストレージ２００が目標性能を達成する妨げとなりうるため、資源逼迫改善プログラム４０３で改善する。【００５０】  図１１は、仮想資源量管理テーブル４１６の一例を示す。仮想資源量管理テーブル４１６は、仮想ストレージ２００に割り当てられている各資源の仮想資源量を管理するテーブルである。仮想資源量管理テーブル４１６は、少なくとも、ＶＳ＃カラム１１００、ＶＶＯＬ＃カラム１１０１、資源種別カラム１１０２、資源番号カラム１１０３、資源占有率カラム１１０４、共有資源占有率カラム１１０５、仮想資源使用率カラム１１０６を有する。【００５１】  カラム１１００から１１０３は自明のため記載を省略する。資源占有率カラム１１０４は、仮想ストレージ内仮想ボリュームに割り当てられている各仮想資源の構成を示す。一例として、ＶＳ＃０００内のＶＶＯＬ＃０００に割り当てられている仮想資源（仮想プロセッサ）は、プロセッサ０００の限界資源量１００３の５０％を占有することで構成していることが示されている。【００５２】  共有資源占有率１１０５には、仮想ストレージが有する余剰資源量を格納する。共有資源の詳細は後述する。仮想資源使用率カラム１１０６に格納する値は、仮想ストレージ内仮想ボリュームに割り当てられている仮想資源量（＝限界資源量１００３×資源占有率１１０４）に対する、当該仮想ボリュームの資源使用率を格納する。例えば、ＶＳ＃０００のＶＶＯＬ＃０００が、限界資源量１００３が４Ｇｂｐｓであるポート０００の資源量の１０％である０．４Ｇｂｐｓを占有しており、かつ０．２８Ｇｂｐｓ分を使用している場合を想定する。この場合、仮想資源利用率１１０６は７０％（＝０．２８÷０．４）と計算される。【００５３】  図１２は、資源割当てプログラム４００の一例である。資源割当てプログラム４００は、管理サーバ１１０からの仮想ストレージ設定要求に応じて実行するプログラムであり、複数のプロセッサ１４１のうちいずれか１つのプロセッサ１４１で実行される。また資源割当てプログラム４００は、仮想ストレージ２００に仮想総資源量（６０２〜６０５）を設定するとともに、仮想ストレージ２００に対して、ストレージシステム１２０が有する物理資源の中の、いずれの物理資源を割り当てるか、また割り当てられた物理資源についてどの程度の資源量を割当てるかを決定するプログラムである。【００５４】  まず、当該プログラムは仮想ストレージ設定要求を受領する（１２０１）。当該設定要求には、設定対象となる仮想ストレージ２００の仮想ストレージ番号、仮想ボリューム番号、仮想ボリュームのサイズ、仮想ボリュームの目標性能、そして仮想ストレージ設定テーブル４１０や、仮想ストレージ構成テーブル４１１へ格納すべき各値が含まれている。次に、仮想ボリューム作成プログラムを実行し（１２０３）、当該仮想ストレージに所属させる各仮想ボリュームの作成と仮想資源量の割当てを開始する。仮想ボリューム作成プログラムの詳細は後述する。【００５５】  当該プログラムは、当該仮想ストレージに所属させる全仮想ボリュームに対して仮想ボリューム作成プログラムを実行した後（１２０５）、管理サーバに設定成功を応答して終了する（１２０６）��仮想ボリューム作成が失敗した場合は（１２０４：Ｎｏ）、当該プログラム内で実行した変更内容を全てロールバックした後（１２０７）、管理サーバ１１０に対して設定失敗を応答して終了する（１２０８）。【００５６】  尚、当該プログラムのステップ１２０２にて、目標資源使用率５０４の初期値を設定する。目標資源使用率５０４の初期値は任意であるが、低い値（たとえば２０％等）と設定するとよい。その後、当該目標資源使用率５０４は、資源再割当てプログラム４０２にて仮想資源使用率１１０６を考慮しながら段階的に引き上げられ、最終的に必要最小限の仮想資源量が割り当てられるようになった時点で確定されるからである。【００５７】  図１３は、仮想ボリューム作成プログラム１２０３の一例である。仮想ボリューム作成プログラムでは、仮想ボリュームの作成と、当該仮想ボリューム分の仮想資源量の割当てを行う。まず、当該プログラムは、資源種別の１つを選択し（１３０１）、選択した資源種別に対して、ステップ１３０２から１３０４の処理を実行する。以降、資源種別として、プロセッサが選択されたと仮定し、ステップ１３０２から１３０４の処理を説明する。【００５８】  仮想ボリューム作成プログラム１２０３は、選択した資源種別である全ての物理プロセッサ１４１の中から、物理資源使用率１００５が最も小さい物理プロセッサ１４１を担当資源として選択する（１３０２）。図１０の例では「プロセッサ００１」が選択される。【００５９】  次に仮想ボリューム作成プログラム１２０３は、仮想ボリューム分の資源占有率１１０４を計算する（１３０３）。ある仮想ボリュームの資源占有率１１０４の計算方法の一例は、「（プロセッサの仮想総資源量（つまり仮想プロセッサ構成６０３の値））÷（当該仮想ストレージに所属させる仮想ボリュームのボリュームサイズの総和）×（当該仮想ボリュームのボリュームサイズ）÷（担当プロセッサの限界資源量）」で求まる。ここで、担当プロセッサの限界資源量とは、ステップ１３０２で選択された物理プロセッサ１４１の限界資源量１００３である。【００６０】  ここでステップ１３０３の目的は、当該仮想ボリューム用の資源占有率の初期値として、妥当な資源占有率を決定することである。当該目的に沿っていれば、資源占有率を異なる手段で算出してもよい。例えば簡易的に、「（管理サーバが指定した仮想総資源量）÷（当該仮想ストレージに所属させる仮想ボリュームの総数）÷（担当資源の限界資源量）」で求めてもよい。【００６１】  決定した資源占有率が、担当プロセッサの余剰資源率より多い場合（１３０４）、仮想ボリューム作成プログラム１２０３は、仮想ボリューム作成失敗を応答して終了する（１３１０）。ステップ１３０１からステップ１３０４までの処理は、全ての資源種別に対して繰り返される（１３０５）。【００６２】  各資源種別について、当該仮想ボリューム分の資源占有率を決定した後、仮想ボリューム作成プログラム１２０３は、物理ボリュームを作成し（１３０６）、当該物理ボリュームに対して、決定した担当資源を関連付ける。具体的に仮想ボリューム作成プログラム１２０３は、物理ボリューム構成管理テーブル４１３について、物理ボリュームが未定義である��理ボリューム番号を選択し、ボリュームサイズ８０２に、仮想ボリュームのボリュームサイズを格納した後、決定した担当資源の識別子を対応するカラム８０３から８０６に資源種別ごとに格納する。【００６３】  次に仮想ボリューム作成プログラム１２０３は、関連付けた各担当資源の資源割当て率１００４および資源占有率１１０４について、ステップ１３０３で決定した資源占有率を加算し、仮想資源量の割当てを行う（１３０７）。最後に仮想ボリューム作成プログラム１２０３は、物理ボリュームと仮想ボリュームとを関連付ける（１３０８）。具体的には仮想ボリューム構成管理テーブル４１２に対し、作成した仮想ボリュームのＶＶＯＬ＃をＶＶＯＬ＃７０１に格納する。そしてこの行の物理ボリューム番号７０３に、ステップ１３０６で作成した物理ボリュームの物理ボリューム番号を格納し、ボリュームサイズ７０２にはステップ１３０６で作成した物理ボリュームの物理ボリューム番号を格納する。最後に仮想ボリューム作成成功を応答し（１３０９）、処理を終了する。【００６４】  当該プログラムによると、管理サーバからの仮想ストレージ設定要求に応じて、当該仮想ストレージに所属させる各仮想ボリュームの担当資源を決定し、各担当資源へ適切な仮想資源量を割当てることが可能となる。【００６５】  図１４は、ホストＩ／Ｏプログラム４０１の一例である。ホストＩ／Ｏプログラムは、ホスト１００が発行し、ストレージシステム１２０が受領した仮想ボリューム２００に対するＲｅａｄ／Ｗｒｉｔｅコマンドを処理するプログラムである。尚、コマンドを受領すると、ストレージシステム１２０が任意に選択した１つの物理プロセッサ１４１において、当該コマンドに対するホストＩ／Ｏプログラム４０１の実行が開始される。【００６６】  仮想ボリュームに対するＩ／Ｏ要求を受領すると（１４０１）、ストレージシステム１２０は、仮想ボリューム構成管理テーブル４１２や物理ボリューム構成管理テーブル４１３を使って、当該仮想ボリュームの担当資源を特定する（１４０２）。次に、ホストＩ／Ｏプログラム４０１は、自プロセッサが担当プロセッサであるかを判定する（１４１７）。担当プロセッサでない場合、担当プロセッサにて当該コマンドに対応するホストＩ／Ｏプログラム４０１の実行を開始させ（１４１８）、自プロセッサでの処理を終了する。【００６７】  担当プロセッサである場合、ホストＩ／Ｏプログラム４０１は、当該仮想ボリュームの担当ポートに対する要求であるかどうか確認する（１４０３）。担当ポートに対する要求でない場合、ホストにエラー応答し（１４１６）、処理を終了する。【００６８】  担当ポートに対する要求である場合、ホストＩ／Ｏプログラム４０１は、仮想資源量管理テーブル４１６を使って、各担当資源の仮想資源使用率１１０６が全て１００％未満であるか確認する（１４０４）。いずれかの担当資源の仮想資源使用率１１０６が１００％の場合、当該仮想ボリュームを処理する仮想資源量が不足していると判断し、全ての担当資源の仮想資源使用率が１００％未満になるまで待機する。【００６９】  尚、本実施例が示すストレージシステム１２０は、待機によって生じる目標性能未達のリスクを排除するため、一時的に共有資源を割当てる機能を有する。共有資源とは、いずれの仮想ストレージにも割当てられていない、各物理資源の資源量である。共有資源は必ず割当てできるとは限らないため、目標性能未達のリスクを完全に排除できない点が、仮想ボリューム作成プログラムにおける仮想資源量の割当てとの違いである。【００７０】  当該プログラムは、仮想資源使用率１１０６が１００％である資源種別の担当資源について、共有資源が存在するか否かを資源占有率１１０４が１００％未満であるか否かで判定する（１４１４）。共有資源が存在する場合、当該仮想ストレージ向けに共有資源の割当てを行う（１４１５）。本実施例では、割当てる共有資源の資源量は、予め決められた一定量とする。【００７１】  共有資源の割当てとは具体的に、担当資源の物理資源使用率１００５および共有資源占有率１１０５に一定比率（前述の一定量に相当する比率）を加算し、その後に仮想資源使用率１１０６を再計算することである。共有資源占有率１１０５に値を加算する際、Ｉ／Ｏ対象の仮想ストレージ、仮想ボリュームの識別子がそれぞれ、０００、０００の場合、仮想資源量管理テーブル４１６のＶＳ＃１１０１が“０００”、ＶＶＯＬ＃１１０１が “０００”の行の、共有資源占有率１１０５の値を更新する。共有資源の割当てにより、全ての仮想資源使用率が１００％未満となり、待機せずとも、ステップ１４０５以下の処理を実行することが可能となる。【００７２】  全ての仮想資源利用率が１００％未満の場合（１４０４：Ｙｅｓ）、当該プログラムは、担当プロセッサでコマンドの要求を解析し（１４０５）、要求種別（ＲｅａｄまたはＷｒｉｔｅ）を確認する（１４０６）。Ｒｅａｄ要求である場合、要求データが担当メモリ上に格納されているかを判定する（１４１９）。格納されている場合、担当メモリ上に格納されているデータをホストに返送し、ホストに処理が正常に終了した旨を応答する（１４０９）。格納されていない場合は、担当メディアから要求データを読み込み（１４０７）、担当メモリに格納（１４０８）したあと、担当メモリ上のデータをホストに送付し、ホストに処理が正常終了した旨を応答する（１４０９）。【００７３】  一方、Ｗｒｉｔｅ要求である場合、担当メモリに受領データ格納後（１４１０）、ホストに正常応答を返し（１４１１）、担当メディアに要求データを書き込む（１４１２）。最後に、モニタリング情報を更新し（１４１３）、処理を終了する。【００７４】  当該ステップで更新するモニタリング情報は、具体的に、当該仮想ボリュームのスループット性能９０２とレスポンス性能９０３、および、当該プログラムで使用した担当資源の物理資源使用率１００５、および、仮想資源使用率１１０６が対象である。仮想資源使用率１１０６については、当該仮想ボリュームが所属する仮想ストレージの値を更新する。尚、各モニタリング情報の更新方法は、各カラムを有する各テーブルにて説明済みである。【００７５】  図１５は、資源再割当てプログラム４０２の処理概要を説明する図である。資源再割当てプログラムでは、２つの目的で資源再割当てを行う。資源再割当てプログラムの目的の１つは、仮想ストレージ２００の各担当資源の仮想資源使用率１��０６を平準化するように資源占有率１１０４を変更することにより、いずれかの物理資源の仮想資源使用率が１００％となって、目標性能未達となるリスクを排除することである。【００７６】  また、資源再割当てプログラムの目的のもう１つは、仮想資源使用率を考慮して、目標資源使用率５０４を次第に引き上げる制御を行うことで、目標性能を達成するための仮想資源量を必要最小限にすることである。【００７７】  図１５の例では、仮想ストレージが、２つの仮想ボリューム２００（＃１と＃２）を有している。また、各仮想ボリュームの目標スループット性能７０４はそれぞれ１００ＩＯＰＳと３００ＩＯＰＳであり、担当プロセッサ８０４はそれぞれ（物理）プロセッサ＃１と（物理）プロセッサ＃２である。またここでは、各仮想ボリュームの性能は目標スループット性能７０４に到達できている例を説明する。【００７８】  ここで、各仮想ボリュームに割り当てられているプロセッサの仮想資源使用率が、それぞれ４０％、６０％であったとする。この状態では、担当資源間で処理負荷の偏りがあるため、負荷が上昇した場合、プロセッサ＃２のみが仮想資源使用率１００％となって、目標性能未達となるリスクがある。このため、当該プログラムは、各担当資源の仮想資源使用率が均一化されるように（たとえばいずれの仮想資源使用率も５０％になるようにする）、プロセッサ＃１の資源占有率を４０％に、プロセッサ＃２の資源占有率を６０％に変更する（１５０１）。この処理の詳細は、図１６の処理の説明を行う際に述べるが、ここでは、各仮想ボリュームに割り当てられている資源（プロセッサ等）の仮想資源使用量は変動しないように調整する。そのため、仮想資源使用率を引き上げる場合には、資源占有率は減少し、仮想資源使用率を引き下げる場合には、資源占有率は増加する。【００７９】  仮想資源使用率が５０％の場合、まだ使用率が向上しても、資源に余裕がある。そのためストレージシステム１２０は次に、仮想プロセッサ（仮想ストレージ）の目標資源使用率５０４を５０％から、６０％に引き上げ（１５０２）、目標性能達成に必要な仮想資源量の見積もりを小さくする。すなわち、プロセッサ＃１の資源占有率を３３％に、プロセッサ＃２の資源占有率を５０％に変更することで、仮想プロセッサの仮想資源使用率が６０％となるようにする（１５０３）。この処理の詳細も、図１６の処理の説明を行う際に述べる。この処理を繰り返し、最終的に当該仮想ストレージに対して共有資源が割り当てられた時点で、これ以上の引き上げができない（仮想資源量が必要最小限である）と判断し、目標資源使用率を確定する。【００８０】  図１６は、資源再割当てプログラム４０２の一例である。資源再割当てプログラム４０２は、仮想ストレージ２００毎に実行される。【００８１】  まず、資源再割当てプログラム４０２は、仮想ストレージ２００に所属する各仮想ボリューム３００について、仮想ボリュームモニタテーブル４１４と仮想資源量管理テーブル４１６の値を用いることで、各仮想ボリュームの性能値と、各仮想ボリュームの担当資源の仮想資源使用率１１０６を特定する（１６０１）。続いて資源再割当てプログラム４０２は、資源種別ごとに、各仮想ボリュ��ムの担当資源の仮想資源使用率１１０６の平均値を算出する。図１５を例にとって説明する。図１５では仮想ボリューム＃１、＃２の担当資源（担当プロセッサ）、つまりプロセッサ＃１、＃２の仮想資源使用率がそれぞれ、４０％と６０％である。ステップ１６０２ではこの平均値、つまり（４０＋６０）÷２＝５０％を算出する。【００８２】  次に資源再割当てプログラム４０２は、各仮想ボリュームについて、  （ステップ１６０１で特定した仮想ボリュームの性能値÷目標性能７０４）を計算する（１６０３）。本明細書ではこの値を「性能比率」と呼ぶ。【００８３】  その後資源再割当てプログラム４０２は、当該仮想ボリュームの各担当資源について、割り当てるべき仮想資源量を算出する。【００８４】  本実施例に係るストレージシステム１２０では、現時点で仮想ボリュームに使用されている仮想資源量と性能比率とに基づいて、目標性能７０４を達成するために必要となる仮想資源量を算出する機能を有している。たとえば資源再割当てプログラム４０２に、現時点で使用されている仮想資源量と性能比率を入力値とし、目標性能７０４を達成するために必要となる仮想資源量を出力とする関数を持たせることで、この機能を実現できる。また現時点で仮想ボリュームに使用されている仮想資源量は、  （担当資源の限界資源量１００３×資源占有率１１０４×仮想資源使用率１１０６）を計算することで求められる。【００８５】  本実施例に係るストレージシステム１２０ではこの関数を、資源種別（プロセッサ、ポート、メモリ、メディア）ごとに有している。ステップ１６０４では、資源再割り当てプログラム４０１はこの関数を用いて、各担当資源に割り当てるべき仮想資源量を算出する。また別の実施形態として、性能比率を計算する代わりに、ステップ１６０１で特定した仮想ボリュームの性能値と目標性能７０４と、現時点で使用されている仮想資源量を入力値とし、目標性能７０４を達成するために必要となる仮想資源量を出力とする関数を用いるようにしてもよい。【００８６】  続いてステップ１６０５では、資源再割り当てプログラム４０１はステップ１６０４で算出した資源量、ステップ１６０２で算出した仮想資源使用率の平均値、そして担当資源の限界資源量１００３を用いて、各担当資源の資源占有率１１０４を算出し、仮想資源量管理テーブル４１６に設定する。資源種別がプロセッサの場合について、資源占有率１１０４の算出方法の具体例を説明する。ステップ１６０４で算出された、ある仮想ボリューム（たとえば仮想ボリューム＃１）の担当プロセッサの仮想資源量（これは目標性能を達成するために必要となるプロセッサ資源量である）が０．４ＧＨｚであり、ステップ１６０２で算出された仮想資源使用率の平均値が５０％、そして仮想ボリューム＃１の担当プロセッサの限界資源量が２ＧＨｚであったとする。【００８７】  この場合、仮想ボリューム＃１には０．８ＧＨｚ分のプロセッサ資源を割り当てる必要がある（仮想資源使用率が５０％のため、ステップ１６０４で算出された資源量の倍の資源量を割り当てる必要がある）。そして、限界資源量が２ＧＨｚであるから、仮想ボリューム＃１の資源占有率１１０４は、０．８÷２＝０．４（つまり４０％）と計算される。つまりステップ１６０５では、仮想ボリュームに割り当てられている各担当資源の資源占有率１１０４は、各担当資源について、（仮想ボリュームが目標性能を達成するために必要となる仮想資源量÷仮想資源使用率の平均値）÷担当資源の限界資源量１００３を計算することで求められる。【００８８】  以下、全仮想ボリュームについて、各資源の資源占有率１１０４の算出が完了するまで、１６０３から１６０６の処理を実行する。以上が、図１５の１５０１に相当する処理である。【００８９】  次に、資源再割り当てプログラム４０１は、当該仮想ストレージの共有資源占有率１１０４が０％か否かを判定することで、共有資源の有無を判定する（１６０７）。共有資源有り（共有資源占有率１１０４が０％でない）の場合、資源再割り当てプログラム４０１は目標資源使用率の引上げによる目標性能未達リスクがあると判断し、目標資源使用率を確定させ、処理を終了する。一方、共有資源無しの場合は、目標資源使用率の引上げによる目標性能未達リスクがないと判断し、資源再割り当てプログラム４０１は目標資源使用率５０４を一定量（たとえば１０％）引上げる（１６０８）。【００９０】  その後資源再割り当てプログラム４０１は、各担当資源の仮想資源使用率１１０６が目標資源使用率５０４の値に等しくなるように、各担当資源の資源占有率１１０４を算出し、仮想資源量管理テーブル４１６に設定し、処理を終了する（１６０９）。ここでの各担当資源の資源占有率１１０４の算出方法について、以下で具体例を説明する。【００９１】  ステップ１６０５では、仮想ボリューム＃１に割り当てられるプロセッサ資源の資源占有率の割り当て方法を説明した。ここではそれと同じ例を用いて説明を行う。ステップ１６０５の完了時点では、仮想ボリューム＃１に割り当てられているプロセッサ（担当プロセッサ）の仮想資源占有率が５０％、資源占有率１１０４は４０％である。そして担当プロセッサの限界資源量は２ＧＨｚ、仮想ボリューム＃１が必要とするプロセッサ資源量は０．４ＧＨｚである。ステップ１６０９ではこの資源量（仮想ボリューム＃１が目標性能を達成するために必要とするプロセッサ資源量）は変動しないように、資源占有率１１０４を調節する。具体的には資源占有率１１０４は、ステップ１６０５と同様の計算式、つまり（仮想ボリューム＃１が目標性能を達成するために必要とする仮想資源量÷目標資源使用率５０４）÷限界資源量１００３の計算式によって算出される。上で説明した例では、資源占有率１１０４は（０．４［ＧＨｚ］÷６０％）÷２［ＧＨｚ］＝３３．３．．．％と算出される。以上が、図１５の１５０３に相当する処理である。【００９２】  当該プログラムによると、モニタリング情報を使って、各担当資源の資源占有量を動的に調整することで、ワークロードの変化による目標性能未達リスクを排除することができる。また、仮想資源使用率を参照しながら、目標資源使用率を段階的に引き上げることで、目標性能達成のための仮想資源量を必要最小限にすることができる。尚、当該プログラムの一部は、管理サーバ１１０で実行しても構わない。【００９３】  図１７は、資源逼迫改善プログラム４０３の一例である。資源逼迫改善プログラムとは、ある物理資源が資源逼迫状態に変化したことを検知し、当該物理資源を使用する仮想ストレージ２００の担当資源を変更することで、資源逼迫状態を改善し、当該物理資源を使用する仮想ストレージが目標性能未達となるリスクを排除するプログラムである。【００９４】  まず資源逼迫改善プログラムは、ストレージシステム１２０に属する物理資源を１つ選択し（１７０１）、物理資源量管理テーブル４１５を使って、物理資源使用率が使用率閾値１００６を超過しているか否かを判定する（１７０２）。使用率閾値１００６を超過している場合、担当資源変更による資源逼迫状態の改善を行う。【００９５】  資源逼迫状態を改善するに当り、当該プログラムは、可能な限りホスト１００に性能影響を与えないよう、担当資源変更対象を選択する。そのために、当該プログラムは、当該物理資源を使用する仮想ストレージの中で最も優先順位５０５が高い仮想ストレージを選択し（１７０３）、当該仮想ストレージに所属する最もボリュームサイズ７０２が小さい仮想ボリュームを選択する（１７０４）。尚、ホストへの性能影響を小さくする目的が同一であれば、担当資源変更対象を選択する方法が異なっていても構わない。【００９６】  次に当該プログラムは、ステップ１７０４で選択された仮想ボリュームの新たな担当資源を選択する。本実施例では、資源逼迫状態でなく、かつ物理資源使用率が最も小さい物理資源を新たな担当資源の候補として選択する（１７０５）。新たな担当資源の候補が存在する場合には（ステップ１７０５：Ｎｏ）、仮想ボリュームの担当資源を、ステップ１７０５で選択された担当資源に変更する（１７０７）。以下、ステップ１７０２から１７０７の処理を、資源逼迫状態が改善されるまで繰り返し実行する。【００９７】  担当資源の変更方法は、資源種別に異なる。以下、本明細書が対象とする資源種別について、担当資源の変更方法を記載する。例えば、担当プロセッサの変更は、移動元の物理プロセッサで実行中の当該仮想ボリュームの処理を中断し、移動先の物理プロセッサで処理を再開することで実現できる。同様に、担当メモリの変更は、移動元の物理メモリ上に格納されている当該仮想ボリュームのデータキャッシュを全てパージしたのち、その後のデータ格納先を移動先の物理メモリに切り替えることで実現できる。【００９８】  担当メディアの変更は、移動元の物理メディア上に格納されている仮想ボリュームのデータを全て読み出し、移動先の物理メディアに書き込んだあと、データアクセス先を移動先の物理メディアに変更することで実現できる。また、担当ポートの変更は、移動先の物理ポートからのアクセスを許可し、ホスト１００の設定を手動で変更することでアクセス先を移動先ポートに切り替え、移動先ポートへのアクセスを確認し、移動元の物理ポートに対するアクセスを禁止することで実現できる。【００９９】  尚、担当資源の変更方法は、上記の限りではなく、一般的な方法を使用することができる。例えば、担当ポートの変更は、ホストに交替パスソフトをインストールし、ストレージシステムの全ての物理ポートのアクセス可否情報を交替パスソフトへ通知することで、移動元の物理ポートへのアクセスを移動先の物理ポートへ自動で切り替える一般的な方法を使用することができる。【０１００】  仮に、担当資源候補が存在しない場合（１７０６）、管理サーバに対して改善不可通知を行い（１７０９）、管理サーバによる資源逼迫状態の改善を依頼する。以下、ストレージシステム内の全ての物理資源について確認を行ったあと（１７０８）、当該プログラムを終了する。【０１０１】  当該プログラムによると、物理資源の資源逼迫状態を検知し、担当資源の変更によって資源逼迫状態を改善することで、仮想ストレージの目標性能未達となるリスクを排除することができる。【０１０２】  以上で説明した実施例によれば、仮想ストレージに対して性能管理が容易になる。【０１０３】  また、資源の再割り当ては上で説明した方法に限定されない。ダイン快適に仮想資源使用率を上昇させることができるような方法であれば、上で説明した以外にも様々な方法を採用可能である。【０１０４】  図３５は、資源再割当てプログラムの別の例である。図１６で説明した資源再割当てプログラム４０２と区別するため、図３５で説明するプログラムのことを、資源再割り当てプログラム４０２’と表記する。【０１０５】  ステップ１６０１’で資源再割当てプログラム４０２’は、仮想ストレージ２００に所属する各仮想ボリューム３００について、仮想資源量管理テーブル４１６の値を用いることで、各仮想ボリュームの担当資源の仮想資源使用率１１０６を特定する。続いて資源再割当てプログラム４０２は、資源種別ごとに、各仮想ボリュームの担当資源の仮想資源使用率１１０６の平均値を算出する（１６０２’）。この処理は図１６のステップ１６０２と同じである。【０１０６】  ステップ１６０４’で資源再割当てプログラム４０２’は、当該仮想ボリュームの各担当資源について、現在使用されている仮想資源量を算出する。これは限界資源量１００３、そして仮想資源量管理テーブル４１６で管理されている資源占有率１１０４と仮想資源使用率１１０６から算出できる。【０１０７】  続いてステップ１６０５’では、資源再割り当てプログラム４０２’はステップ１６０４’で算出した仮想資源量、ステップ１６０２で算出した仮想資源使用率の平均値、そして担当資源の限界資源量１００３を用いて、各担当資源の資源占有率１１０４を算出し、仮想資源量管理テーブル４１６に設定する。具体的には資源再割り当てプログラム４０２’は各担当資源について、（ステップ１６０４’で算出した仮想資源量÷仮想資源使用率の平均値）÷担当資源の限界資源量１００３を計算する。【０１０８】  ステップ１６０６’〜ステップ１６０８’は、図１６のステップ１６０６〜ステップ１６０８と同じであるため、説明を省略する。【０１０９】  ステップ１６０９’では資源再割当てプログラム４０２’は図１６のステップ１６０９と同様に、各担当資源の仮想資源使用率１１０６が目標資源使用率５０４の値に等しくなるように、各担当資源の資源占有率１１０４を調整し、仮想資源量管理テーブル４１６に設定し、処理を終了する。（１６０９）。ここでの調整方法の計算式は、以下の通りである。（ステップ１６０４’で算出した仮想資源量÷目標資源使用率５０４）÷限界資源量【０１１０】  つまり、図１６のステップ１６０９で用いられた計算式では、仮想ボリュームが目標性能を達成するために必要とする仮想資源量が用いられたが、ステップ１６０９’ではこの代わりに、ステップ１６０４’で算出した仮想資源量、つまり現時点で使用されている仮想資源量が用いられる点のみが異なる。【０１１１】  資源再割り当てプログラム４０２’では、仮想ボリュームの性能についての情報が用いられていない。ただし各仮想ボリュームについて、おおむね目標性能に近い性能で稼働している場合、資源再割り当てプログラム４０２’を用いても、資源再割り当てプログラム４０２と同じように資源占有率の調整が可能である。
【実施例２】
【０１１２】  以下、第二の実施例について示す。第二の実施例では、仮想ストレージに所属する仮想ボリューム内の分割領域ごとに担当資源が存在する構成にて、当該仮想ストレージの性能管理を行う方法について述べる。【０１１３】  図１８は、第二の実施例における仮想ボリューム３００と物理ボリューム３０１の対応関係を示す概要図である。本実施例における、仮想ボリュームと物理ボリュームの対応関係は、ボリュームより細かな固定長単位で管理される。便宜上、仮想ボリュームを固定長に分割した単位を分割領域１９０１と呼び、物理ボリュームを固定長に分割した単位をページ１９０２と呼ぶ。分割領域やページの中には、お互いに関連づいていないものもある（１９０４や１９０５）。【０１１４】  図１９は、仮想ボリューム構成管理テーブル４１３の一例を示す。本実施例の仮想ボリューム構成管理テーブルは、仮想ボリュームの分割領域と、物理ボリュームのページとの対応関係を新たに管理する。分割領域とページとの対応関係を管理するために、仮想ボリューム構成管理テーブルは、各分割領域のＬＢＡ範囲を示す仮想ＬＢＡカラム２２０３と各ページのＬＢＡ範囲を示す物理ＬＢＡカラム２２０５とを管理する。その他のカラムの説明は省略する。【０１１５】  尚、本実施例では、シンプロビジョニング技術を適用することが可能である。シンプロビジョニング技術とは、ホスト１００から特定の分割領域へのＷｒｉｔｅ要求を受領して初めて、当該分割領域にページを対応づける技術である。当該技術を適用することで、ストレージシステムの容量効率を高めることができる。【０１１６】  仮想ボリュームにシンプロビジョニング技術を適用する場合、分割領域にページが対応づいていない場合がある。このような分割領域について、仮想ボリューム管理テーブルでは、物理ＬＢＡカラムに「Ｎ／Ａ」を格納することで表現する。以下、本実施例の説明は、シンプロビジョニング技術が適用されている場合について示す。【０１１７】  図２０は、物理ボリューム構成管理テーブル４１４の一例である。本実施例の物理ボリューム構成管理テーブルは、物理ＬＢＡカラム２１０３が追加され、ページごとに担当資源を管理することが可能である。その他のカラムの説明は省略する。尚、当該実施例では、第一の実施例と異なり、必要数の物理ボリュームが事前に作成されていることとする。【０１１８】  図２１は、仮想ボリュームモニタテーブル４１５の一例である。本実施例の仮想ボリュームモニタテーブルも同様に、仮想ＬＢＡカラム２２０２が追加され、分割領域ごとの性能値を管理することが可能である。その他のカラムの説明は省略する。【０１１９】  図２２は、仮想ボリューム作成プログラム１２０２の一例である。当該実施例では、まず、分割領域ごとに担当資源を決定し、当該担当資源へ仮想資源を割当てるようステップ２３０２からステップ２３０８の処理が変更される。【０１２０】  特に、当該実施例では、仮想ボリューム内の各分割領域について、対応ページが存在するか否かに応じて、仮想資源の割当て方法が変わる。これは、対応ページを決定する契機で各分割領域の担当資源を決定することにより、より適切な担当資源を決定するためである。【０１２１】  ���のため、当該プログラムでは、まず各分割領域に対応ページが存在するかどうかを判定する（２３０３）。対応ページが存在する場合、図１３と同様の方法で担当資源を決定し（２３０４）、資源占有率１１０４を算出する（２３０５）。当該実施例では、各分割領域のサイズは固定長であり、資源占有率は、「（仮想総資源量）÷（当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和）÷（担当資源の限界資源量）」で求まる。その後も、図１３と同様の方法で担当資源へ仮想資源量の割当てを行う（２３０６、２３０７）。【０１２２】  一方担当ページが存在しない場合、一旦、当該分割領域を未割当て領域数としてカウントする（２３１４）。そして、全ての分割領域に対する判定が完了したことを確認した後（２３０８）、未割当て領域数分の資源占有率を「（仮想総資源量）÷（当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和）×（未割当て領域数）÷（担当資源の限界資源量）」で算出したのち（２３０９）、ステップ２３０１にて選択した資源種別に属する全ての物理資源に対し、一時的に均等に、未割当て領域数分の資源占有率を割当てる（２３１１）。【０１２３】  図２３は、ホストI／Oプログラム４０１の一例である。本実施例における、ホストI／Oプログラムも同様に、分割領域ごとに担当資源を特定するよう処理が変更される（２４０２）。また、シンプロビジョニング技術の適用に伴い、分割領域へのＷｒｉｔｅ要求を受領して初めて、当該分割領域にページを対応づけるように処理を追加する（ステップ２４１７、ステップ２４１８）。【０１２４】  前述した通り、各分割領域は、ページを対応づけた契機で担当資源を決定する。このため、ステップ２４１８には、当該分割領域に対する担当資源決定処理、および当該担当資源に対する資源占有量設定処理が含まれる。これらの詳細は、図２２のステップ２３０４から２３０７までの処理と同じであるため、詳細な記載は省略する。【０１２５】  図２４は、資源再割当てプログラム４０２の一例である。本実施例における、資源再割当てプログラムも同様に、分割領域ごとに担当資源の仮想資源量を決定するよう処理が変更される（ステップ２５０２から２５０６）。【０１２６】  また、図２２同様、各分割領域に対応ページが存在するかどうかを判定し（２５０３）、存在しない場合は、当該分割領域を未割当て領域数としてカウントする（２５１６）。そして、全ての分割領域に対する判定が完了したことを確認した後（２５０６）、未割当て領域数分の資源占有量を算出し（２５０７）、一時的に全ての物理資源に均等に資源占有量を割り振る（２５０８）。【０１２７】  以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、シンプロビジョニング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
【実施例３】
【０１２８】  以下、第三の実施例について示す。第三の実施例では、第二の実施例の構成に加え、各仮想ボリュームにティアリング技術が適用されている構成にて、当該仮想ストレージの性能管理を行う方法について述べる。【０１２９】  ティアリング技術とは、ある仮想ボリュームの各分割領域に、異なるメディア種別で構成した物理ボリュームのページを対応づける技術である。また、スループット性能が大きい分割領域を高速なメディア種別へ自動再配置することで、当該仮想ボリュームの性能向上を可能にする。本明細書において、高速なメディア種別とはＳＳＤ１５１を指す。【０１３０】  図２５は、仮想ストレージ構成管理テーブルの一例である。本実施例における仮想ストレージ構成管理テーブルは、仮想メディア２７０５として、ＨＤＤ１５１とＳＳＤとを混在させたメディア種別を指定できる。ストレージシステムは、ＨＤＤの資源占有量とＳＳＤの資源占有量とをティアリング技術によって動的に調整し、目標性能を達成するためのＳＳＤの資源占有量を必要最小限にする。その他のカラムの説明は省略する。【０１３１】  図２６、図２７は、本実施例における、資源再割当てプログラム２０３の処理概要図である。図２６の例では、仮想ストレージ２００が、１つの仮想ボリューム３００を有している。当該仮想ストレージの目標性能は「５ｍｓ未満」に設定されている。また図２７に示されているとおり、仮想ボリュームに含まれる各分割領域１９０１の担当メディア２１０７は、ＳＳＤ＃１とＨＤＤ＃１とのいずれかであり、ＳＳＤ＃１を担当資源とする分割領域のスループット性能２２０３の総和は１００ＩＯＰＳ、ＨＤＤ＃１を担当資源とする分割領域のスループット性能の総和は２００ＩＯＰＳである。【０１３２】  ここで、ＳＳＤの平均レスポンス性能を１ｍｓ、ＨＤＤの平均レスポンス性能を６ｍｓと仮定すると、当該仮想ストレージのレスポンス性能は、概ね４．３ｍｓと計算できる。一方、目標性能である５ｍｓ未満を達成するための必要最小限の構成では、ＳＳＤ＃１を担当資源とする分割領域のスループット性能２２０３の総和が６０ＩＰＳ、ＨＤＤ＃１を担当資源とする分割領域のスループット性能の総和が２４０ＩＯＰＳであればよい。【０１３３】  このため、当該プログラムは、担当資源がＳＳＤ＃１である分割領域の中でスループット性能が小さいものから順に４０ＩＯＰＳ分を選択し、担当資源をＨＤＤに変更することでＳＳＤの資源割当て量を必要最小限にする。ここで、スループット性能が小さいものを選んだ理由は、ＳＳＤの容量資源を有効活用するためであり、４０ＩＯＰＳ分であれば異なる選択基準でも構わない。【０１３４】  図２８は、資源再割当てプログラム４０２の一例である。本実施例における、資源再割当てプログラムは、レスポンス性能が設定されている場合の、資源再割当て方法について示す。【０１３５】  まず、当該プログラムは、目標性能を達成するために最低限必要な、ＳＳＤの目標スループット性能を計算する（２８０１）。当該処理の計算方法の一例は、図２７で示した通りである。その後、現在の目標資源使用率を基に、「目標スループット性能÷ＳＳＤの目標スループット性能」を計算し、必要な仮想資源量として算出する（２８０２）。次に、当該プログラムは、担当メディアのメディア種別がＳＳＤである分割領域について、スループット性能を集計し（２８０３）、算出した仮想資源量との差を計算することで、ＨＤＤへ移動する必要があるスループット性能量（移動予定性能量）を算出する（２８０４）。【０１３６】  尚、本実施例では、ＳＳＤからＨＤＤに担当資源を変更する場合の例のみ示すが、ＨＤＤからＳＳＤへ担当資源を変更する場合も、同様に計算できる。次に、担当メディアのメディア種別がＳＳＤである分割領域をスループット性能が低い順にソートし（２８０５）、先頭の分割領域から順に、移動予定性能量分、担当メディアをＳＳＤからＨＤＤへ変更する（２８０６、２８０７）。担当メディアの変更方法の一例は、図１７にて示した方法を適用できる。【０１３７】  尚当該プログラムは、担当メディアを変更した分割領域のスループット性能を移動済性能量として加算し（２８０８）、移動済性能量が移動予定性能量を超過した時点で処理を終了する（２８０９）。【０１３８】  また、当該プログラムは、図１６と同様に、共有資源の有無に応じて、目標資源使用率の調整を行う（ステップ２８１０からステップ２８１２）。以上、当該プログラムによると、目標性能を達成するために必要なＳＳＤの資源量を必要最小限にすることができる。【０１３９】  以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、ティアリング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
【実施例４】
【０１４０】  以下、第四の実施例について示す。第四の実施例では、仮想ストレージに所属する仮想ボリュームに対してストレージ機能を適用されている構成において、当該仮想ストレージの性能管理を行う方法について示す。【０１４１】  本実施例では、仮想ストレージを構成する各仮想ボリュームに対して、さまざまなストレージ機能を適用することができる。ストレージ機能とは、具体的には、ボリュームコピー機能や重複排除機能、圧縮機能などを指す。仮想ボリュームにストレージ機能を適用する場合、そのストレージ機能の機能状態によって、目標性能を達成する仮想資源量が異なるため、機能状態に応じた仮想資源量調整が必要となる。【０１４２】  図２９は、本実施例が対象とするボリュームコピー機能の概要を示す。ボリュームコピー機能とは、ある仮想ボリューム３００に格納したデータの複製を、別の仮想ボリュームに複製する機能である。本明細書では、複製元の仮想ボリュームをＰｒｉｍａｒｙ  Ｖｏｌｕｍｅ２９０１、複製先の仮想ボリュームをＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅ２９０２として区別する。【０１４３】  ボリュームコピー機能は、Ｐｒｉｍａｒｙ  ＶｏｌｕｍｅとＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅとの間の複製作成状況を示す機能状態を有する。図３０は、当該機能状態の状態遷移図の一例である。「Ｉｎｉｔ」は複製を作成していない初期状態を示し（２９１１）、「Ｃｏｐｙｉｎｇ」はＰｒｉｍａｒｙ  ＶｏｌｕｍｅからＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅへデータを複製している途中状態を示す（２９１２）。【０１４４】  「Ｐａｉｒｅｄ」は、一旦データの複製を完了した後、Ｗｒｉｔｅ要求をＰｒｉｍａｒｙ  ＶｏｌｕｍｅとＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅの両方に書き込んで複製を維持している状態を示し（２９１３）、「Ｓｕｓｐｅｎｄｅｄ」は、Ｗｒｉｔｅ要求がＰｒｉｍａｒｙ  Ｖｏｌｕｍｅのみに書き込まれ、かつＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅとのデータ差分箇所を記録している状態を示す（２９１４）。「Ｒｅｓｔｏｒｅｉｎｇ」は、前記データ差分箇所のデータをＳｅｃｏｎｄａｒｙ  ＶｏｌｕｍｅからＰｒｉｍａｒｙ  Ｖｏｌｕｍｅに複製している状態を示す（２９１５）。【０１４５】  ここで例えば、機能状態がＣｏｐｙｉｎｇの場合、Ｓｕｓｐｅｎｄｅｄに比べてＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅが目標性能を達成するための仮想資源量がより多くなる。すなわち、ＳｕｓｐｅｎｄｅｄからＣｏｐｙｉｎｇに状態変更した契機でＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅに適切な仮想資源量を追加する制御を行うことで、仮想資源量を必要最小限にできる。【０１４６】  図３１は、本実施例が対象とする重複排除機能と圧縮機能との概要を示す。重複排除機能とは、格納データが同一である分割領域１９０１に共通のページ１９０２を対応付ける（重複排除する）ことで、容量効率向上を図る機能である。一方、圧縮機能とは、分割領域を圧縮したデータをページに格納することで、容量効率向上を図る機能である。尚、同一の分割領域に、重複排除、圧縮の両方を適用することも可能である。【０１４７】  ここで例えば、圧縮機能が適用されている場合、当該データに対するＩ／Ｏについて圧縮処理や伸張処理を実施する必要があり、目標���能を達成するための仮想資源量がより多くなる。すなわち、圧縮を実行した契機で仮想ボリュームに適切な仮想資源量を追加する制御を行うことで、仮想ボリュームに割当てる物理資源量を必要最小限にできる。【０１４８】  図３２は、ストレージ機能状態管理テーブル４１７の一例である。機能状態管理テーブルは、各仮想ボリューム３００に適用されている機能種別と、その機能状態とを管理するテーブルである。機能状態管理テーブルは少なくとも、仮想ボリューム番号カラム３１０１、機能種別カラム３１０２、機能状態カラム３１０３を含む。【０１４９】  機能種別カラムには、仮想ボリュームに適用されている機能種別を格納する。本実施例では、「ボリュームコピー（Ｐｒｉｍａｒｙ  Ｖｏｌｕｍｅ）」、「ボリュームコピー（Ｓｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅ）」、「重複排除」、「圧縮」などの値を格納する。【０１５０】  機能状態カラムには、各機能種別が提供する機能の機能状態を格納する。ボリュームコピーでは、図３０で示したＩｎｉｔ、Ｃｏｐｙｉｎｇ、などの状態を格納する。同様に、重複排除では、仮想ボリュームに含まれる分割領域の中で、重複排除されているページの割合を格納し、圧縮では、「圧縮済」、「未圧縮」のいずれかの状態を格納する。【０１５１】  図３３は、ストレージ機能状態補正テーブル４１８の一例である。ストレージ機能状態補正テーブルは、仮想ボリューム３００に適用されているストレージ機能が、特定の機能状態に遷移した場合の、仮想資源量の補正率を管理するテーブルである。当該テーブルは、少なくとも、機能種別カラム３２０１、機能状態カラム３２０２、ポート補正率カラム３２０３、プロセッサ補正率カラム３２０４、メモリ補正率カラム３２０５、メディア補正率カラム３２０６を含む。【０１５２】  ストレージシステム１２０は、仮想ストレージ２００が占有する仮想資源量を、カラム３２０３から３００６で示す補正率で調整する。例えば、仮想ストレージに所属する、ある仮想ボリュームにボリュームコピー（Ｐｒｉｍａｒｙ  Volume）が適用されており、ストレージ機能状態がＣｏｐｙｉｎｇに遷移した場合、資源再割当てプログラム４０２のステップ１６０５で算出される資源占有率に補正率を加算して補正する。たとえばプロセッサ補正率３２０４が１０％の時、ステップ１６０５で、プロセッサの資源占有率が算出された後、算出された資源占有率に１．１を乗じることで、補正が行われる。【０１５３】  図３４は、ストレージ機能状態変更プログラム４０６の一例である。ストレージ機能状態変更プログラムとは、仮想ボリュームのストレージ機能状態を変更されるたびに実行され、変更後のストレージ機能状態に応じて、資源占有率を補正するプログラムである。【０１５４】  まず、ストレージ機能状態変更プログラムは、仮想ボリュームの機能状態変更を検知し（３３０１）、ストレージ機能状態を更新する（３３０２）。機能状態の変更は、管理サーバ１１０からの要求に伴って発生することが一般的であるが、機能種別によっては、ホスト１００からのコマンド受領契機や障害契機などで状態変更が発生する場合もある。【０１５５】  ストレージ機能状態変更を検知すると、当該プログラムは、当該仮想ボリュームに適用されている機能種別の１つを選択し（３３０３）、機能状態補正テーブル４１８を基に、更新した機能状態に応じた各資源補正率を算出する（３３０４）。仮想ボリュームに適用されている全ての機能種別について、資源補正率を算出した後（３３０５）、算出した資源補正率を全て足し合わせ、総補正率として計算する（３３０６）。最後に、仮想ストレージに対して、物理資源を補正する（３３０７）。ステップ３３０７の補正では、図３３の説明の際に述べた補正が行われる。【０１５６】  以上により、仮想ストレージに所属する各仮想ボリュームにストレージ機能が適用する場合でも、その機能状態に応じて資源割当て量を変更することで必要最小限の物理資源量を割当てることが可能となる。【０１５７】  以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。【０１５８】  上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【符号の説明】
【０１５９】１００…ホスト、１１０・・・管理サーバ、１２０・・ストレージシステム、１３０・・データねｔｔ−ワーク、１４０・・ストレージコントローラ、１５０・・メディア
【図１】
2016121066.tif 000003
【図２】
2016121066.tif 000004
【図３】
2016121066.tif 000005
【図４】
2016121066.tif 000006
【図５】
2016121066.tif 000007
【図６】
2016121066.tif 000008
【図７】
2016121066.tif 000009
【図８】
2016121066.tif 000010
【図９】
2016121066.tif 000011
【図１０】
2016121066.tif 000012
【図１１】
2016121066.tif 000013
【図１２】
2016121066.tif 000014
【図１３】
2016121066.tif 000015
【図１４】
2016121066.tif 000016
【図１５】
2016121066.tif 000017
【図１６】
2016121066.tif 000018
【図１７】
2016121066.tif 000019
【図１８】
2016121066.tif 000020
【図１９】
2016121066.tif 000021
【図２０】
2016121066.tif 000022
【図２１】
2016121066.tif 000023
【図２２】
2016121066.tif 000024
【図２３】
2016121066.tif 000025
【図２４】
2016121066.tif 000026
【図２５】
2016121066.tif 000027
【図２６】
2016121066.tif 000028
【図２７】
2016121066.tif 000029
【図２８】
2016121066.tif 000030
【図２９】
2016121066.tif 000031
【図３０】
2016121066.tif 000032
【図３１】
2016121066.tif 000033
【図３２】
2016121066.tif 000034
【図３３】
2016121066.tif 000035
【図３４】
2016121066.tif 000036
【図３５】
2016121066.tif 000037
【手続補正書】
【提出日】平成29年7月14日(2017.7.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムにおいて、
前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
前記ストレージシステムは、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能に構成されており、
前記仮想ストレージ装置は、前記仮想ストレージ装置内に前記ホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するＩ／Ｏ要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施し、
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
ことを特徴とする、ストレージシステム。
【請求項２】
前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項３】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
Ｂ）  前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
Ｃ）  前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項２に記載のストレージシステム。
【請求項４】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
Ｄ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
Ｅ）  前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項３に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
Ｂ）  現時点で使用されている前記仮想資源の資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項２に記載のストレージシステム。
【請求項６】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
Ｃ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
Ｄ）  現時点で使用されている前記仮想資源の資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項５に記載のストレージシステム。
【請求項７】
ホストからのＩ／Ｏ要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムの制御方法であって、
前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
前記ストレージシステムは、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を１以上形成可能であって、
前記ストレージシステムは、
１）  前記仮想ストレージ装置内に前記ホストからのＩ／Ｏ要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するＩ／Ｏ要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記Ｉ／Ｏ要求に係る処理を実施し、
２）  前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
ことを特徴とする、ストレージシステムの制御方法。
【請求項８】
前記ストレージシステムは、前記仮想ボリュームのボリュームサイズと前記仮想ストレージ装置の全ボリュームのサイズの合計値との比に基づいて、前記仮想資源を前記仮想ボリュームに割り当てる、
ことを特徴とする、請求項７に記載のストレージシステムの制御方法。
【請求項９】
前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
Ａ）  前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
Ｂ）  前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
Ｃ）  前記目標性能を達成するために必要とされる仮想資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項８に記載のストレージシステムの制御方法。
【請求項１０】
前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
Ｄ）  前記仮想資源の使用率の平均値に所定量を加算することで、目標資源使用率を算出し、
Ｅ）  前記目標性能を達成するために必要とされる仮想資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
ことを特徴とする、請求項９に記載のストレージシステムの制御方法。
【国際調査報告】
2016121066.tif 000038
2016121066.tif 000039