(57)【要約】【課題】重要なデータの保全性を向上させ得るストレージ装置及びその制御方法を提案する。【解決手段】仮想的なボリュームである仮想ボリュームをホスト装置に提示し、仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置及びその制御方法において、仮想ボリュームにそれぞれ設定された重要度を管理し、仮想ボリュームに記憶領域を動的に割り当て、仮想ボリュームに記憶領域を動的に割り当てる際には、重要度に基づいて、重要度が低い仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の仮想ボリュームに対しては、１つの記憶装置グループが提供する記憶領域を割り当てるようにした。【選択図】図１３
2009282800.tif 000002
【特許請求の範囲】
【請求項１】
仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置において、
前記仮想ボリュームにそれぞれ設定された重要度を管理する管理部と、
前記仮想ボリュームに記憶領域を動的に割り当てる記憶領域割当て部と
を備え、
前記記憶領域割当て部は、
前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とするストレージ装置。
【請求項２】
前記記憶装置グループは、
複数の前記記憶装置から構成されるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式で運用されるパリティグループである
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記仮想ボリュームに割り当てられた前記記憶領域に対する前記ホスト装置からの前記データの読み書きを制御する制御部を備え、
前記記憶領域割当て部は、
前記重要度が高い前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域と、当該パリティグループと異なる他の１つの前記記憶装置グループが提供する記憶領域とをそれぞれ割り当て、
前記制御部は、
前記重要度が高い前記仮想ボリュームについては、前記ホスト装置からの前記データを、前記仮想ボリュームに割り当てられた２つの前記記憶領域の双方に書き込む
ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記記憶領域割当て部は、
前記重要度が中の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記管理部は、
前記記憶領域の品質レベルを管理し、
前記記憶領域割当て部は、
前記重要度が相対的に高い前記仮想ボリュームに対しては前記品質レベルが相対的に高い前記記憶領域を割り当て、前記重要度が相対的に低い前記仮想ボリュームに対しては前記品質レベルが相対的に低い前記記憶領域を割り当てる
ことを特徴とする請求項１に記載のストレージ装置。
【請求項６】
仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置の制御方法において、
前記仮想ボリュームにそれぞれ設定された重要度を管理する第１のステップと、
前記仮想ボリュームに記憶領域を動的に割り当てる第２のステップと
を備え、
前記第２のステップでは、
前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とするストレージ装置の制御方法。
【請求項７】
前記記憶装置グループは、
複数の記憶装置から構成されるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式で運用されるパリティグループである
ことを特徴とする請求項６に記載のストレージ装置の制御方法。
【請求項８】
前記仮想ボリュームに割り当てられた前記記憶領域に対する前記ホスト装置からの前記データの読み書きを制御する第３のステップを備え、
前記第２のステップでは、
前記重要度が高い前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域と、当該パリティグループと異なる他の１つの前記記憶装置グループが提供する記憶領域とをそれぞれ割り当て、
前記第３のステップでは、
前記重要度が高い前記仮想ボリュームについては、前記ホスト装置からの前記データを、前記仮想ボリュームに割り当てられた２つの前記記憶領域の双方に書き込む
ことを特徴とする請求項６に記載のストレージ装置の制御方法。
【請求項９】
前記第２のステップでは、
前記重要度が中の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とする請求項８に記載のストレージ装置の制御方法。
【請求項１０】
前記第１のステップでは、
前記記憶領域の品質レベルを管理し、
前記第２のステップでは、
前記重要度が相対的に高い前記仮想ボリュームに対しては前記品質レベルが相対的に高い前記記憶領域を割り当て、前記重要度が相対的に低い前記仮想ボリュームに対しては前記品質レベルが相対的に低い前記記憶領域を割り当てる
ことを特徴とする請求項６に記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、例えばＡＯＵ（Allocation On Use）機能が搭載されたストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
近年、ＳＡＮ（Storage Area Network）を利用して、１又は複数のホスト計算機に対して複数台のストレージ装置を接続するＳＡＮ環境が実用化されている。さらに、該ＳＡＮ環境下において、複数台のストレージ装置を仮想的に一元管理することで、１又は複数のホスト計算機が利用可能な複数台のストレージをあたかも１つの共用ストレージ装置として管理する技術がある。
【０００３】
特許文献１には、複数のストレージ装置が接続されたＳＡＮ環境において、各ストレージ装置が供する記憶領域に付与された性能や信頼性の情報及び位置情報に基づき、ユーザが設定するデータの用途に応じて、適切な記憶領域をホスト計算機に割当てるストレージ領域割当方法が開示されている。
【０００４】
また特許文献２には、データを読み書きするためのボリュームとして仮想的なボリューム（以下、これを仮想ボリュームと呼ぶ）をホスト装置に提示し、当該仮想ボリュームの使用状況に応じて実際にデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるＡＯＵと呼ばれる仮想化技術が開示されている。
【０００５】
【特許文献１】特開２００５−２７５５２６号公報
【特許文献２】特開２００７−２８０３１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、従来のＡＯＵ技術では、記憶装置内の一つのパリティグループに障害が発生すると、該パリティグループ内の記憶領域に格納されたデータが失われる。
【０００７】
この場合において、従来のＡＯＵ技術では、１つの仮想ボリュームに対して複数のパリティグループが提供する記憶領域が割り当てられるため、一つのパリティグループにおける障害は、複数の仮想ボリュームにおいてデータ欠損を惹起する。即ち“歯抜け”状態の仮想ボリュームが多数発生することになる。
【０００８】
本発明は以上の点を考慮してなされたもので、重要なデータの保全性を向上させ得るストレージ装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置において、前記仮想ボリュームにそれぞれ設定された重要度を管理する管理部と、前記仮想ボリュームに記憶領域を動的に割り当てる記憶領域割当て部とを備え、前記記憶領域割当て部は、前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てることを特徴とする。
【００１０】
この結果、本発明によるストレージ装置では、重要度が低い仮想ボリューム以外の仮想ボリュームが記憶装置グループの障害発生の影響を受け難く、これら要度が低い仮想ボリューム以外の仮想ボリュームに格納されたデータが損失するという事態の発生確率を低減させることができる。
【００１１】
また本発明においては、仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置の制御方法において、前記仮想ボリュームにそれぞれ設定された重要度を管理する第１のステップと、前記仮想ボリュームに記憶領域を動的に割り当てる第２のステップとを備え、前記第２のステップでは、前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、１つの前記記憶装置グループが提供する記憶領域を割り当てることを特徴とする。
【００１２】
この結果、本発明によるストレージ装置の制御方法によれば、重要度が低い仮想ボリューム以外の仮想ボリュームが記憶装置グループの障害発生の影響を受け難く、これら要度が低い仮想ボリューム以外の仮想ボリュームに格納された重要なデータが損失するという事態の発生確率を低減させることができる。
【発明の効果】
【００１３】
本発明によれば、要度が低い仮想ボリューム以外の仮想ボリュームに格納されたデータが損失するという事態の発生確率を低減させることができるため、データの保全性を向上させ得るストレージ装置及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
（１−１）本実施の形態による計算機システムの構成
図１において、１は全体として本実施の形態による計算機システムを示す。この計算機システム１は、ホスト計算機２が例えばＳＡＮ（Storage Area Network）等からなるネットワーク３を介してストレージ装置４に接続されると共に、当該ストレージ装置４に管理計算機５が接続されることにより構成されている。
【００１６】
ホスト計算機２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。
【００１７】
ストレージ装置４は、複数のハードディスク装置（ＨＤＤ：Hard Disk Drive）から構成される記憶部１０と、記憶部１０に対するデータの入出力を制御するコントローラ１１とから構成される。
【００１８】
記憶部の各ハードディスク装置は、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスク等の安価なディスクから構成される。これらハードディスク装置が提供する記憶領域に対して１又は複数の論理的な記憶領域であるボリュームが対応付けられる。各ボリュームには、それぞれ固有の識別子（ボリュームＩＤと呼ぶ）が付与され、このボリュームＩＤを用いて各ボリュームが管理される。
【００１９】
なお、ストレージ装置４内に作成されるボリュームの属性としては、実ボリュームＲＶＯＬ、仮想ボリュームＶＶＯＬ及びプールボリュームＰＬＶＯＬがある。実ボリュームＲＶＯＬは、実体を有するボリュームであり、予め容量分の記憶領域が割り当てられる。また仮想ボリュームＶＶＯＬは、作成当初は実体を有さない仮想的なボリュームであり、使用状況に応じて記憶領域が動的に割り当てられる。さらにプールボリュームＰＬＶＯＬは、仮想ボリュームＶＶＯＬに割り当てる記憶領域の集合体である。
【００２０】
コントローラ１１は、ＣＰＵ１２及びメモリ１３等の情報処理資源と、ボリュームに読み書きするデータを一時的に記憶するキャッシュメモリとなどを備えて構成される。コントローラ１１は、ホスト計算機２からのアクセス要求（リード要求及びライト要求）に応じて、指定されたボリュームに対するデータの読み書きを制御する。
【００２１】
管理計算機５は、例えばＣＰＵ２０及びメモリ２１などの情報処理資源のほか、キーボードやマウスなどからなる入力装置２２と、ＣＲＴ（Cathode-Ray Tube）又は液晶パネルなどからなる出力装置２３とを備えて構成される。ＣＰＵ２０は、管理計算機５全体の動作制御を司るプロセッサであり、メモリ２１に格納された各種制御プログラムに基づいて必要な処理を実行する。メモリ２１は、主として制御プログラムや制御パラメータを記憶するために用いられる。後述の仮想ボリューム作成用入出力プログラム２４もこのメモリ２１に格納される。
【００２２】
（１−２）チャンク割当て処理
（１−２−１）計算機システムにおける記憶領域の管理方式
次に、計算機システム１におけるストレージ装置４内の記憶領域の管理方式を、図２を参照して説明する。
【００２３】
図２に示すように、ホスト計算機２は、そのストレージ装置４が提供する記憶領域を論理ユニットＬＵと呼ばれる論理的な記憶領域単位で認識している。そしてホスト計算機２は、所望する論理ユニットＬＵにアクセスする際には、その論理ユニットＬＵと対応付けられたＩ／ＯポートのポートＩＤ（以下、これをＰＩＤ（Port Identification）と呼ぶ）と、その論理ユニットＬＵの識別子（以下、これをＬＵＮ（Logical Unit Number）と、その論理ユニットＬＵ内のアクセス先のアドレスとを指定したアクセス要求をストレージ装置４に送信する。
【００２４】
一方、ストレージ装置４では、記憶部１０内のハードディスク装置３０を、複数（例えば４台）台を１つのパリティグループ３１として、このパリティグループ単位でＲＡＩＤ（Redundant Array of Inexpensive Disks）方式で運用している。システム管理者は、このパリティグループ３１ごとに所望のＲＡＩＤレベル（「ＲＡＩＤ０」、「ＲＡＩＤ１」、「ＲＡＩＤ１＋０」、「ＲＡＩＤ２」〜「ＲＡＩＤ６」）を設定することができる。
【００２５】
そしてストレージ装置４内に定義されたパリティグループ３１のうち、実ボリューム用のパリティグループ３１が提供する記憶領域上に実ボリュームＲＶＯＬが定義され、この実ボリュームＲＶＯＬが、上述の論理ユニットＬＵと対応付けられる。
【００２６】
かくしてストレージ装置４は、実ボリュームＲＶＯＬに対応付けられた論理ユニットＬＵに対するアクセス要求を受信した場合には、そのアクセス要求に基づいて、対応する実ボリュームＲＶＯＬ内の対応するアドレス位置（正確には、対応するパリティグループ３１が提供する記憶領域上の対応するアドレス位置）にデータを読み書きする。
【００２７】
またストレージ装置４内に定義されたパリティグループ３１のうち、仮想ボリューム用の各パリティグループ３１が提供する記憶領域は、それぞれ１つのプールボリュームＰＬＶＯＬとして管理される。またストレージ装置４では、１又は複数のプールボリュームＰＬＶＯＬをまとめて１つのプール３２として管理している。
【００２８】
ここで、図３に示すように、プールボリュームＰＬＶＯＬ内の記憶領域はチャンク３３と呼ばれる固定長の小領域に分割されて管理される。また仮想ボリュームＶＶＯＬ内の記憶領域は、かかるチャンク３３と同じ容量を有するデータブロック３４と呼ばれる管理単位に分割して管理される。このデータブロック３４は、仮想ボリュームＶＶＯＬにデータを読み書きする際の最小単位である。これらデータブロック３４には、それぞれＬＢＡ（Logical Block Address）と呼ばれる識別子が付与される。
【００２９】
そしてストレージ装置４においては、仮想ボリュームＶＶＯＬに対応付けられた論理ユニットＬＵに対するアクセス要求を受信した場合、そのアクセス要求を仮想ボリュームＶＶＯＬに対するアクセス要求に変換し、変換後のアクセス要求に基づいて、対応する仮想ボリュームＶＶＯＬ内の対応するデータブロック３４に割り当てられたチャンク３３にデータを読み書きする。
【００３０】
この場合において、ストレージ装置４は、かかるアクセス要求が、チャンク３３が未割当ての仮想ボリュームＶＶＯＬ内のデータブロック３４に対するライト要求であった場合には、そのデータブロック３４に対していずれかのパリティグループ３１により構成されるプールボリュームＰＬＶＯＬ内のチャンク３３を割り当て、かかるデータブロック３４に対するライト対象のデータをこのチャンク３３に書き込む。
【００３１】
このようにして、このストレージ装置４では、仮想ボリュームＶＶＯＬに対して記憶領域（チャンク３３）を動的に割り当てることにより、ストレージ装置４に搭載されたハードディスク装置３０が提供する記憶領域を有効に活用することができるようになされている。
【００３２】
（１−２−２）本実施の形態におけるチャンク割当て機能
次に、ストレージ装置４に搭載された本実施の形態によるチャンク割当て機能について説明する。
【００３３】
本実施の形態による計算機システム１は、システム管理者が各仮想ボリュームＶＶＯＬに対して重要度をそれぞれ設定することができ、ストレージ装置４が仮想ボリュームＶＶＯＬにチャンク３３を割り当てる際に、その仮想ボリュームＶＶＯＬの重要度に応じたルールでチャンク３３を割り当てることを特徴の１つとしている。
【００３４】
計算機システム１は、ストレージ装置４が、各パリティグループ３１が提供する記憶領域（チャンク３３）の品質レベルを管理し、重要度が相対的に高い仮想ボリュームＶＶＯＬに対しては、品質レベルが相対的に高いパリティグループ３１のチャンク３３を割り当て、重要度が相対的に低い仮想ボリュームＶＶＯＬに対しては、品質レベルが相対的に低いパリティグループ３１のチャンク３３を割り当てることをもう１つの特徴としている。
【００３５】
ストレージ装置４が以上のような処理を実行するための手段として、ストレージ装置４のメモリ１３には、図４に示すように、仮想ボリューム制御プログラム４０、チャンク割当てプログラム４１、重要度高ボリューム割当てプログラム４２、重要度中ボリューム割当てプログラム４３、重要度低ボリューム割当てプログラム４４、仮想ボリューム移行プログラム４５、プール残容量監視プログラム４６、チャンク再配置プログラム４７及び障害ボリューム復旧プログラム４８を含むマイクロプログラムと、実ボリューム管理テーブル５０、仮想ボリューム管理テーブル５１、割当てチャンク管理テーブル５２、プール管理テーブル５３、パリティグループ管理テーブル５４及びプール残容量監視テーブル５５とが格納されている。
【００３６】
仮想ボリューム制御プログラム４０、チャンク割当てプログラム４１、重要度高ボリューム割当てプログラム４２、重要度中ボリューム割当てプログラム４３、重要度低ボリューム割当てプログラム４４、仮想ボリューム移行プログラム４５、プール残容量監視プログラム４６、チャンク再配置プログラム４７及び障害ボリューム復旧プログラム４８は、後述のような各種処理を実行するためのプログラムであり、その詳細については後述する。
【００３７】
実ボリューム管理テーブル５０は、ストレージ装置４のコントローラ１１が当該ストレージ装置４内に定義された実ボリュームＲＶＯＬ（図１）を管理するためのテーブルであり、図５に示すように、実ボリュームＩＤ欄５０Ａ、ホスト割当て状態欄５０Ｂ及び容量欄５０Ｃから構成される。
【００３８】
そして実ボリュームＩＤ欄５０Ａには、ストレージ装置４内に設定された各実ボリュームＲＶＯＬにそれぞれ付与されたボリュームＩＤが格納され、ホスト割当て状態欄５０Ｂには、対応する実ボリュームＲＶＯＬがホスト計算機２に割り当てられているか否かを表すホスト割当て情報（割り当てられているときには「allocated」、割り当てられていないときには「Unallocated」）が格納される。また容量欄５０Ｃには、対応する実ボリュームＲＶＯＬの容量が格納される。
【００３９】
従って図５の例では、例えば「v001」というボリュームＩＤが付与された実ボリュームＲＶＯＬは、未だホスト計算機２には割り当てられておらず（「Unallocated」）、容量が「10GB」であることが示されている。
【００４０】
また仮想ボリューム管理テーブル５１は、ストレージ装置４のコントローラ１１が当該ストレージ装置４内に定義された仮想ボリュームＶＶＯＬを管理するためのテーブルであり、図６に示すように、仮想ボリュームＩＤ欄５１Ａ、ホスト割当て状態欄５１Ｂ、仮想容量欄５１Ｃ、閾値欄５１Ｄ、割当て済容量欄５１Ｅ及び重要度欄５１Ｆから構成される。
【００４１】
そして仮想ボリュームＩＤ欄５１Ａには、そのストレージ装置４内に設定された各仮想ボリュームＶＶＯＬのボリュームＩＤが格納され、ホスト割当て状態欄５１Ｂには、対応する仮想ボリュームＶＶＯＬが論理ユニットＬＵ（図２）を介してホスト計算機２に割り当てられているか否かを表すホスト割当て情報と、その仮想ボリュームＶＶＯＬと対応付けられた論理ユニットＬＵのＬＵＮと、その論理ユニットＬＵにアクセスするためのＰＩＤとがそれぞれ格納される。
【００４２】
また仮想容量欄５１Ｃには、対応する仮想ボリュームＶＶＯＬの容量が格納され、閾値欄５１Ｄには、仮想ボリュームＶＶＯＬに格納されたデータを実ボリュームＲＶＯＬに移行させる際の閾値が格納される。さらに割当て済容量欄５１Ｅには、その仮想ボリュームＶＶＯＬに既に割り当てられているチャンク３３の合計容量が格納され、重要度欄５１Ｆには、その仮想ボリュームＶＶＯＬに対してシステム管理者が設定した重要度が格納される。本実施の形態の場合、この重要度は、「高」、「中」及び「低」の３段階で設定される。
【００４３】
従って、図６の例では、「v101」というボリュームＩＤが付与された仮想ボリュームＶＶＯＬは、容量「10GB」のうち「6GB」分のチャンク３３が割り当てられており（「allocated」）、その閾値は「6GB」で重要度が「高」に設定されていることが示されている。
【００４４】
割当てチャンク管理テーブル５２は、各仮想ボリュームＶＶＯＬにおけるチャンク３３の割当て状況を管理するためのテーブルであり、図７に示すように、ボリュームＩＤ欄５２Ａ、プールＩＤ欄５２Ｂ、割当て済ＬＢＡ欄５２Ｃ、割当て済チャンク欄５２Ｄ及びパリティグループＩＤ欄５２Ｅから構成される。
【００４５】
そしてボリュームＩＤ欄５２Ａには、各仮想ボリュームＶＶＯＬのボリュームＩＤがそれぞれ格納され、プールＩＤ欄５２Ｂには、対応する仮想ボリュームＶＶＯＬがチャンク３３の提供を受けるプール３１（図３）の識別子（以下、これをプールＩＤと呼ぶ）が格納される。また割当て済ＬＢＡ欄５２Ｃには、対応する仮想ボリュームＶＶＯＬ内の既にチャンク３３が割り当てられているデータブロック３４のボリューム先頭からの範囲が格納される。
【００４６】
さらに割当て済チャンク欄５２Ｄは、その仮想ボリュームＶＶＯＬ内の対応するデータブロック３４に割り当てられたチャンク３３の識別子（以下、これをチャンクＩＤと呼ぶ）が格納され、パリティグループＩＤ欄５２Ｅには、そのチャンク３３を提供するパリティグループ３１に付与された識別子（以下、これをパリティグループＩＤと呼ぶ）が格納される。
【００４７】
従って、図７の例では、「v101」というボリュームＩＤが付与された仮想ボリュームＶＶＯＬは、「p1」というプールＩＤが付与されたプール３２からチャンク３３の割り当てを受けることになっており、当該仮想ボリュームＶＶＯＬのボリューム先頭から「[0GB]-[2GB]」、「[2GB]-[4GB]」及び「[4GB]-[6GB]」の各範囲には、それぞれ「ch01」、「ch02」又は「ch03」というチャンクＩＤが付与されたチャンク３３がそれぞれ割り当てられており、これらチャンク３３はすべて「PG01」というパリティグループＩＤが付与されたパリティグループ３１が提供するプールボリュームＰＬＶＯＬに属することが示されている。
【００４８】
さらにプール管理テーブル５３は、プール３２（図３）を管理するためのテーブルであり、図８に示すように、プールＩＤ欄５３Ａ、パリティグループＩＤ欄５３Ｂ、チャンク欄５３Ｃ、プールボリューム欄５３Ｄ、ＬＢＡ欄５３Ｅ、仮想ボリューム割当て状態欄５３Ｆ及び品質レベル欄５３Ｇから構成される。
【００４９】
そしてプールＩＤ欄５３Ａには、自ストレージ装置内に設けられた各プール３２にそれぞれ付与された識別子（以下、これをプールＩＤと呼ぶ）が格納され、パリティグループＩＤ欄５３Ｂには、対応するプール３２に属する各パリティグループ３１（図３）のパリティグループＩＤが格納される。
【００５０】
またチャンク欄５３Ｃには、対応するパリティグループ３１が提供する各チャンク３３にそれぞれ付与されたチャンクＩＤが格納され、プールボリュームＩＤ欄５３Ｄには、対応するパリティグループ３１により構成されるプールボリュームＰＬＶＯＬに付与されたボリュームＩＤ及びその容量が格納される。
【００５１】
さらにＬＢＡ欄５３Ｅには、そのプールボリュームＰＬＶＯＬ内に定義された各チャンク３３（図３）のボリューム先頭からの範囲が格納され、仮想ボリューム割当て状態欄５３Ｆには、対応するチャンク３３の仮想ボリュームＶＶＯＬへの割当て状態を表すボリューム割当て状態情報と、そのチャンク３３が割り当てられた仮想ボリュームＶＶＯＬのボリュームＩＤとが格納される。
【００５２】
なお、ボリューム割当て状態情報の種類としては、そのチャンク３３が既にいずれかの仮想ボリュームＶＶＯＬのいずれかのデータブロック３４（図３）に割り当てられている状態を表す「Allocated」と、そのチャンク３３が未だいずれの仮想ボリュームＶＶＯＬにも割り当てられていない状態を表す「Unallocated」と、そのチャンク３３が二重化のために他のチャンク３３と共にいずれかの仮想ボリュームＶＶＯＬのいずれかのデータブロック３４に割り当てられている状態を表す「Duplicated」となどがある。
【００５３】
さらに品質レベル欄５３Ｇには、対応するパリティグループ３１が構成するプールボリュームＰＬＶＯＬが提供する記憶領域（チャンク３３）の品質レベルが格納される。本実施の形態の場合、この品質レベルは、「高」、「中」及び「低」の３段階で設定される。
【００５４】
従って、図８の例では、「p1」というプールＩＤが付与されたプールは、「PG01」、「PG02」及び「PG03」というパリティグループＩＤがそれぞれ付与された３つのパリティグループ３１から構成されており、これら３つのパリティグループ３１がそれぞれ構成するプールボリュームＰＬＶＯＬには、それぞれ「v201」、「v202」又は「v203」というボリュームＩＤがそれぞれ付与され、これらプールボリュームＰＬＶＯＬの容量はいずれも「10GB」であることが示されている。また図８の例の場合、「PG01」というパリティグループＩＤが付与されたパリティグループ３１が提供する「v201」というボリュームＩＤが付与されたプールボリュームＰＬＶＯＬは、品質レベルが「高」であり、それぞれ容量が２〔GB〕（[0GB]〜[2GB]、……、[8GB]〜[10GB]）の５つのチャンク３３（「ch01」〜「ch05」）から構成され、これらすべてのチャンク３３が既に「v101」〜「v103」というボリュームＩＤがそれぞれ付与された仮想ボリュームＶＯＬに割り当てられている（「Allocated」）ことが示されている。
【００５５】
なお、かかるプール管理テーブル５３の品質レベル欄５３Ｇに格納される品質レベルは、例えば対応するパリティグループ３１を構成するハードディスク装置３０（図３）の種別や、当該パリティグループ３１に設定されたＲＡＩＤレベルなどからストレージ装置４のコントローラ１１が自動的に設定するようしても良く、またプールボリュームＰＬＶＯＬをストレージ装置４に登録する際にそのプールボリュームＰＬＶＯＬを構成するハードディスク装置３０の種別や、そのプールボリューム３１の用途などに基づいてシステム管理者が設定するようにしても良い。
【００５６】
具体的には、例えばＳＣＳＩディスクなどの信頼性が高いハードディスク装置３０とＳＡＴＡディスクなどの信頼性が低いハードディスク装置３０とが混在する構成では、相対的に信頼性が高いハードディスク装置３０から構成されるパリティグループ３１が提供するプールボリュームＰＬＶＯＬの品質レベルを「高」、これ以外のハードディスク装置３０から構成されるパリティグループ３１が提供するプールボリュームＰＬＶＯＬの品質レベルを「中」と設定することができる。
【００５７】
またストレージ装置４に搭載されたハードディスク装置３０が信頼性の低いハードディスク装置３０であるときには、すべてのプールボリュームＰＬＶＯＬの品質レベルを「低」に設定するようにしても良い。さらに将来的により信頼性の高いハードディスク装置３０を増設する予定であるときには、そのハードディスク装置３０により構成されるパリティグループ３１が提供するプールボリュームＰＬＶＯＬの品質レベルを「中」に設定しておき、信頼性の高いハードディスク装置３０を増設した段階で、そのハードディスク装置３０により構成されるパリティグループ３１が提供するプールボリュームＰＬＶＯＬの品質レベルを「高」に設定するようにしても良い。さらにハードディスク装置３０を増設する際に、すべてのプールボリュームＰＬＶＯＬの品質レベルを再設定するようにしても良い。
【００５８】
さらに相対的に耐障害性の高いＲＡＩＤレベルのプールボリュームＰＬＶＯＬの品質レベルを「高」又は「中」に設定し、相対的に耐障害性の低いＲＡＩＤレベルのプールボリュームＰＬＶＯＬの品質レベルを「中」又は「低」に設定するようにしても良い。例えばＲＡＩＤレベルが「１」のプールボリュームＰＬＶＯＬと、ＲＡＩＤレベルが「０」のプールボリュームＰＬＶＯＬとが混在する場合、ＲＡＩＤレベルが「１」のプールボリュームＰＬＶＯＬの品質レベルを「中」、ＲＡＩＤレベルが「０」のプールボリュームＰＬＶＯＬの品質レベルを「低」に設定するようにしても良い。
【００５９】
パリティグループ管理テーブル５４は、ストレージ装置４内に定義されたパリティグループ３１をコントローラ１１が管理するためのテーブルであり、図９に示すように、パリティグループＩＤ欄５４Ａ、対応ハードディスク装置欄５４Ｂ、属性欄５４Ｃ、ボリュームＩＤ欄５４Ｄ及び稼動状態欄５４Ｅから構成される。
【００６０】
このうちパリティグループＩＤ欄５４Ａには、そのストレージ装置４内に定義された各パリティグループ３１のパリティグループＩＤが格納され、対応ハードディスク装置欄５４Ｂには、対応するパリティグループ３１を構成する各ハードディスク装置４にそれぞれ付与された識別子（以下、これをハードディスク装置ＩＤと呼ぶ）が格納される。
【００６１】
また属性欄５４Ｃには、そのパリティグループ３１が提供するボリュームの属性（「実ボリューム」又は「プールボリューム」）が格納され、ボリュームＩＤ欄５４Ｄには、当該ボリュームに付与されたボリュームＩＤが格納される。さらに稼動状態欄５４Ｅには、そのボリュームの稼動状態を表す稼動状態情報（稼動しているときには「正常」、稼動していないときには「停止」）が格納される。
【００６２】
従って、図９の例では、「PG01」というパリティグループＩＤが付与されたパリティグループ３１は、それぞれ「a0」〜「a3」というハードディスク装置ＩＤが付与された４台のハードディスク装置３０から構成され、そのパリティグループ３１が提供するボリュームは、「v001」というボリュームＩＤが付与された「実ボリューム」であり、現在稼動中（「正常」）であることが示されている。
【００６３】
なお、プール残容量監視テーブル５５の詳細については、後述する。
【００６４】
（１−３）仮想ボリューム作成画面
図１０は、ストレージ装置４内に仮想ボリュームＶＶＯＬを作成するための仮想ボリューム作成画面６０を示す。この仮想ボリューム作成画面６０は、管理計算機５（図１）に実装された仮想ボリューム作成用入出力プログラム２４（図１）を起動することにより、当該管理計算機５に表示させることができる。
【００６５】
この仮想ボリューム作成画面６０は、ストレージ装置名入力フィールド６１、割当先ＰＩＤ入力フィールド６２、割当先ＬＵＮ入力フィールド６３、容量入力フィールド６４、データ移行閾値入力フィールド６５及び重要度入力フィールド６６を備えて構成される。
【００６６】
このうちストレージ装置名入力フィールド６１は、そのとき作成しようとする仮想ボリュームＶＶＯＬの作成先となるストレージ装置４のストレージ装置名を入力するためのフィールドであり、割当先ＰＩＤ入力フィールド６２は、そのストレージ装置４に設けられたＩ／Ｏポートのうち、その仮想ボリュームＶＶＯＬと対応付けられた論理ユニットＬＵ（図２）にホスト計算機２がアクセスする際のアクセス先となるＩ/ＯポートのＰＩＤを入力するためのフィールドである。
【００６７】
また割当先ＬＵＮ入力フィールド６３は、その仮想ボリュームＶＶＯＬと対応付ける論理ユニットＬＵのＬＵＮを入力するためのフィールドであり、容量入力フィールド６４は、その仮想ボリュームＶＶＯＬの容量を入力するためのフィールドである。さらにデータ移行閾値入力フィールド６５は、後述するデータ移行閾値を入力するためのフィールドであり、重要度入力フィールド６６は、その仮想ボリュームＶＶＯＬの重要度を入力するためのフィールドである。
【００６８】
そしてシステム管理者は、この仮想ボリューム作成画面６０のストレージ装置名入力フィールド６１、割当先ＰＩＤ入力フィールド６２、割当先ＬＵＮ入力フィールド６３、容量入力フィールド６４、データ移行閾値入力フィールド６５及び重要度入力フィールド６６にそれぞれ必要な情報を入力した後、作成ボタン６７をクリックすることによって、この仮想ボリューム作成画面６０上で指定した各種情報を含む仮想ボリューム作成要求を、管理計算機５からその仮想ボリュームＶＶＯＬの作成先のストレージ装置４に送信させることができる。
【００６９】
そしてこの仮想ボリューム作成要求を受信したストレージ装置４のコントローラ１１は、当該仮想ボリューム作成要求に含まれる上述の各種情報に基づいて、システム管理者により指定された仮想ボリュームＶＶＯＬを当該ストレージ装置４内に作成する。
【００７０】
具体的には、かかる仮想ボリューム作成要求を受信したコントローラ１１は、仮想ボリューム管理テーブル５１にその仮想ボリュームＶＶＯＬ用のエントリ（仮想ボリューム管理テーブル５１の１行）を確保し、そのエントリの仮想ボリュームＩＤ欄５１Ａに当該仮想ボリュームＶＶＯＬに対してそのとき付与したボリュームＩＤを格納する。
【００７１】
またコントローラ１１は、そのエントリのホスト割当て状態欄５１Ｂに、対応する仮想ボリュームＶＶＯＬが未だホスト計算機２に割り当てられていないことを表す「Unallocated」というホスト割当て状態情報と、仮想ボリューム作成要求において指定されたその仮想ボリュームＶＶＯＬにアクセスするためのＩ／ＯポートのＰＩＤ及び当該仮想ボリュームＶＶＯＬと対応付ける論理ユニットＬＵのＬＵＮとを格納する。例えば図１０の例では、Ｉ／ＯポートのＰＩＤとして「p1」、論理ユニットＬＵのＬＵＮとして「１」がホスト割当て状態欄５１Ｂに格納される。
【００７２】
さらにコントローラ１１は、そのエントリの仮想容量欄５１Ｃ及び重要度欄５１Ｆにそれぞれかかる仮想ボリューム作成要求に含まれる対応する情報をそれぞれ格納する。例えば図１０の例では、仮想容量欄５１Ｃには「10GB」、重要度欄には「高」を格納する。
【００７３】
またコントローラ１１は、そのエントリの閾値欄５１Ｄに、かかる仮想ボリューム作成要求に含まれる容量及び閾値の各情報に応じた数値を格納する。例えば図１０の例では、そのとき作成しようとする仮想ボリュームＶＶＯＬの容量として「10GB」が指定され、閾値として「60％」が指定されているため、コントローラ１１は、「10GB」の「60％」である「6GB」という数値をかかる閾値欄５１Ｄに格納することになる。
【００７４】
さらにコントローラ１１は、そのエントリの割当て済容量欄５１Ｅに「0GB」という数値を格納する。以上の処理により、そのストレージ装置４内に、システム管理者により指定された仮想ボリュームＶＶＯＬが作成される。
【００７５】
（１−４）ホスト計算機からのアクセス要求に対するコントローラ１１の処理
次に、ホスト計算機２から仮想ボリュームＶＶＯＬに対するアクセス要求が与えられた場合におけるストレージ装置４のコントローラ１１の処理内容について説明する。
【００７６】
（１−４−１）アクセス要求受付け処理
図１１は、ホスト計算機２から仮想ボリュームＶＶＯＬに対するアクセス要求（リード要求又はライト要求）を受けたストレージ装置４のコントローラ１１により実行されるアクセス要求受付け処理の流れを示す。かかるアクセス要求を受信したコントローラ１１は、メモリ１３（図１）に格納された仮想ボリューム制御プログラム４０（図４）に従ってこの図１１に示すアクセス要求受付け処理を実行する。
【００７７】
すなわちコントローラ１１は、ホスト計算機２からかかるアクセス要求が送信されると、このアクセス要求受付け処理を開始し、まず、そのアクセス要求において指定されたアクセス先と対応付けられた対応する仮想ボリュームＶＶＯＬ内のデータブロック３４（図３）にチャンク３３（図３）が既に割り当てられているか否かを判断する（ＳＰ１）。なお、この際コントローラ１１は、かかるアクセス要求がリード要求である場合には、かかるアクセス先のデータブロック３４にチャンク３３が既に割り当てられているものと判断する。
【００７８】
コントローラ１１は、この判断において肯定結果を得るとステップＳＰ３に進み、これに対して否定結果を得ると、メモリ１３に格納されているチャンク割当てプログラム４１（図４）を起動し、当該チャンク割当てプログラム４１に基づいて、後述するチャンク割当て処理を実行することにより、そのデータブロック３４にチャンク３３を割り当てる（ＳＰ２）。
【００７９】
次いでコントローラ１１は、かかるアクセス要求に応じた処理を実行し、その処理結果を当該アクセス要求を送信してきたホスト計算機２に送信する（ＳＰ３）。
【００８０】
具体的にコントローラ１１は、例えばかかるアクセス要求がリード要求であった場合には、そのリード要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬ内の当該リード要求において指定されたアクセス先と対応付けられたデータブロック３４に割り当てられているチャンク３３からデータを読み出し、これをかかるアクセス要求の送信元のホスト計算機２に送信する。
【００８１】
またコントローラ１１は、かかるアクセス要求がライト要求であった場合には、そのライト要求と共にホスト計算機２から与えられるライト対象のデータを、当該ライト要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬ内の当該ライト要求において指定されたアクセス先と対応付けられたデータブロック３４に割り当てたチャンク３３に書き込み、ライト処理が完了した旨の通知をそのホスト計算機２に送信する。
【００８２】
そしてコントローラ１１は、この後、このアクセス要求受付け処理を終了する。
【００８３】
（１−４−２）チャンク割当て処理
（１−４−２−１）チャンク割当て処理の処理手順
図１２は、かかるアクセス受付け処理のステップＳＰ２においてコントローラ１１により実行されるチャンク割当て処理の具体的な処理内容を示している。
【００８４】
コントローラ１１は、アクセス要求受付け処理のステップＳＰ２に進むと、チャンク割当てプログラム４１に基づいて、まず、割当てチャンク管理テーブル５２を参照して、アクセス要求（ここではライト要求）において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬの重要度を確認する（ＳＰ１０）。
【００８５】
そしてコントローラ１１は、かかる仮想ボリュームの重要度が「高」であったときには、重要度高ボリューム割当てプログラム４２（図４）を起動し、この後、この重要度高ボリューム割当てプログラム４２に基づいて、当該仮想ボリュームＶＶＯＬ内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック３４にチャンク３３を割り当てる（ＳＰ１１）。そしてコントローラ１１は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
【００８６】
またコントローラ１１は、かかる仮想ボリュームＶＶＯＬの重要度が「中」であったときには、重要度中ボリューム割当てプログラム４３（図４）を起動し、この後、この重要度中ボリューム割当てプログラム４３に基づいて、当該仮想ボリュームＶＶＯＬ内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック３４にチャンク３３を割り当てる（ＳＰ１２）。そしてコントローラ１１は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
【００８７】
さらにコントローラ１１は、かかる仮想ボリュームＶＶＯＬの重要度が「低」であったときには、重要度低ボリューム割当てプログラム４４（図４）を起動し、この後、この重要度低ボリューム割当てプログラム４４に基づいて、当該仮想ボリュームＶＶＯＬ内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック３４にチャンク３３を割り当てる（ＳＰ１３）。そしてコントローラ１１は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
【００８８】
（１−４−２−２）重要度高ボリューム割当て処理
図１３は、かかるチャンク割当て処理（図１２）のステップＳＰ１１におけるコントローラ１１の具体的な処理内容を示している。なお、以下の説明においては、初期時における実ボリューム管理テーブル５０、仮想ボリューム管理テーブル５１、割当てチャンク管理テーブル５２、プール管理テーブル５３及びパリティグループ管理テーブル５４の状態は、それぞれ図５、図１４、図１５、図１６及び図９の状態であるものとする。
【００８９】
コントローラ１１は、チャンク割当て処理のステップＳＰ１１に進むと、この重要度高ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル５１を参照して、アクセス要求において指定されたアクセス先の論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに対して既に割り当てられているチャンク３３があるか否かを判断する（ＳＰ２０）。
【００９０】
コントローラ１１は、この判断において否定結果を得ると、プール管理テーブル５３を参照して、いずれも品質レベルが「高」又は「中」の異なる少なくとも２つのパリティグループ３１がそれぞれ提供する、いずれも仮想ボリュームＶＶＯＬにも割り当てられていない２つのチャンク３３が存在するか否かを判断する（ＳＰ２１）。
【００９１】
例えば図１６の例では、品質レベルが「高」のパリティグループ３１が提供するチャンク３３は、チャンクＩＤが「ch01」〜「ch10」のチャンク３３であり、このうちチャンクＩＤが「ch01」〜「ch05」の各チャンク３３と、チャンクＩＤが「ch06」〜「ch10」の各チャンク３３は、それぞれ品質レベルが「高」の異なるパリティグループ３１（「PG01」及び「PG02」）が提供するチャンク３３である。また「PG01」というパリティグループ３１が提供する「ch01」〜「ch03」という各チャンク３３と、「PG02」というパリティグループ３１が提供する「ch06」〜「ch10」という各チャンク３３はいずれも仮想ボリュームＶＶＯＬに未割当てであるため、かかるステップＳＰ２１の条件を満たす２つのチャンク３３が存在することになる。
【００９２】
なお、かかる２つのチャンク３３のうち、一方のチャンク３３はホスト計算機２からのデータの読書き用に用いるチャンク３３であり、もう一方のチャンク３３はデータのバックアップ用に用いるチャンク３３である。
【００９３】
そしてコントローラ１１は、ステップＳＰ２１の判断において否定結果を得ると、ホスト計算機２に対してかかるアクセス要求に対するエラーを通知する（ＳＰ２２）。そしてコントローラ１１は、この後、この重要度高ボリューム割当て処理を終了して、チャンク割当て処理（図１２）に戻る。
【００９４】
これに対してコントローラ１１は、ステップＳＰ２１の判断において肯定結果を得ると、上述したデータの読書き用に用いるチャンク３３と、データのバックアップ用に用いられるチャンク３３とを選択する。
【００９５】
例えばコントローラ１１は、図１６の例の場合、「PG01」というパリティグループＩＤのパリティグループ３１が提供する「ch01」〜「ch03」というチャンクＩＤがそれぞれ付与された３つのチャンク３３の中から１つのチャンク３３を選択すると共に、「PG02」というパリティグループＩＤのパリティグループ３１が提供する「ch06」〜「ch10」というチャンクＩＤがそれぞれ付与された５つのチャンク３３の中から１つのチャンク３３を選択することになる。
【００９６】
候補のチャンク３３が複数あるときには、どのような方法によりチャンク３３を選択しても良い。以下においては、候補のチャンク３３のうち最もチャンクＩＤが小さいチャンク３３を選択するものとする。従って、図１６の例では、「PG01」というパリティグループ３１が提供する「ch01」〜「ch03」という３つのチャンク３３の中からは「ch01」というチャンク３３が選択され、「PG02」というパリティグループ３１が提供する「ch06」〜「ch10」という５つのチャンク３３の中からは「ch06」というチャンク３３が選択されることになる。
【００９７】
そしてコントローラ１１は、このようにして選択した２つのチャンク３３を、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬ内の、当該アクセス要求において指定されたアクセス先に対応するデータブロック３４に割り当てる（ＳＰ２６）。
【００９８】
具体的にコントローラ１１は、プール管理テーブル５３（図１６）の各エントリのうち、上述のようにして選択した２つのチャンク３３にそれぞれ対応する各エントリの仮想ボリューム割当て状態欄５３Ｆに格納された仮想ボリューム割当て状態情報を、「Unallocated」から「Duplicated」に変更し、さらに割当て先の仮想ボリュームＶＶＯＬのボリュームＩＤをそれら仮想ボリューム割当て状態欄５３Ｆに格納する。
【００９９】
またコントローラ１１は、割当てチャンク管理テーブル５２（図１５）に対してそれらのチャンク３３に関する情報を追加登録する。具体的に、コントローラ１１は、割当てチャンク管理テーブル５２上に新たなエントリを２つの確保し、これら２つのエントリの割当て済チャンク欄５２Ｄに、かかる仮想ボリュームＶＶＯＬに割り当てた各チャンク３３のチャンクＩＤをそれぞれ格納する。またコントローラ１１は、かかる２つのエントリのパリティグループＩＤ欄５２Ｅ及びプール欄５２Ｂに、対応するチャンク３３を提供するパリティグループ３１のパリティグループＩＤ及びそのパリティグループ３１が属するプール３２（図３）のプールＩＤをそれぞれ格納する。さらにコントローラ１１は、かかる２つのエントリのボリュームＩＤ欄５２Ａ及び割当て済ＬＢＡ欄５２Ｃに、かかる仮想ボリュームＶＶＯＬのボリュームＩＤ及び当該仮想ボリュームＶＶＯＬ内のかかるチャンク３３を割り当てたデータブロック３４のボリューム先頭からの範囲（ＬＢＡ）をそれぞれ格納する。
【０１００】
さらにコントローラ１１は、仮想ボリューム管理テーブル５１（図１４）のかかる仮想ボリュームＶＶＯＬと対応するエントリの割当て済容量欄５１Ｅに格納された数値を、そのときその仮想ボリュームＶＶＯＬに割り当てたチャンク３３の容量に変更する。
【０１０１】
以上の処理により仮想ボリューム管理テーブル５１、割当てチャンク管理テーブル５２及びプール管理テーブル５３は、それぞれ図１４、図１５及び図１６の状態から図１７、図１８及び図１９にそれぞれ示す状態に変化する。そしてコントローラ１１は、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理（図１２）に戻る。
【０１０２】
これに対してコントローラ１１は、ステップＳＰ２０の判断において肯定結果を得ると、割当てチャンク管理テーブル５２を参照して、アクセス要求において指定されたアクセス先の論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに対してチャンク３３を提供しているパリティグループ３１のパリティグループＩＤを取得する（ＳＰ２３）。
【０１０３】
なお、重要度が「高」の仮想ボリュームＶＶＯＬには、上述のようにデータの読書き用に用いられるチャンク３３と、バックアップ用に用いられるチャンク３３とが割り当てられるため、このステップＳＰ２３において、コントローラ１１は、これら２つのチャンク３３をそれぞれ提供する各パリティグループ３１のパリティグループＩＤをそれぞれ取得することになる。
【０１０４】
例えば割当てチャンク管理テーブル５２が図１８のような状態にあり、そのとき対象としている仮想ボリュームＶＶＯＬのボリュームＩＤが「v101」である場合、コントローラ１１は、この割当てチャンク管理テーブル５２を参照して、当該仮想ボリュームＶＶＯＬに割り当てられた「ch01」というチャンクＩＤのチャンク３３を提供するパリティグループ３１のパリティグループＩＤ（「PG01」）と、同じくその仮想ボリュームＶＶＯＬに割り当てられた「ch06」というチャンクＩＤのチャンク３３を提供するパリティグループ３１のパリティグループＩＤ（「PG02」）とを取得する。
【０１０５】
そしてコントローラ１１は、この後、プール管理テーブル５３を参照して、ステップＳＰ２３においてパリティグループＩＤを取得した２つのパリティグループ３１の双方にそれぞれいずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３があるか否かを判断する（ＳＰ２４）。
【０１０６】
例えば図１９の例の場合、ステップＳＰ２３において取得した「PG01」というパリティグループＩＤのパリテルグループ３１には、仮想ボリュームＶＶＯＬに未割当てのチャンク３３として、「ch02」及び「ch03」というチャンクＩＤの２つのチャンク３３が存在し、「PG02」というパリティグループＩＤのパリテルグループ３１には、仮想ボリュームＶＶＯＬに未割当てのチャンク３３として、「ch07」〜「ch010」というチャンクＩＤがそれぞれ付与された４つのチャンク３３が存在するため、この判断において肯定結果を得ることになる。
【０１０７】
そしてコントローラ１１は、ステップＳＰ２４の判断において肯定結果を得ると、ステップＳＰ２３において検出した２つのパリティグループ３１の双方がそれぞれ提供する２つの未割当てのチャンク３３を、そのとき対象としている仮想ボリュームＶＶＯＬに割り当て（ＳＰ２６）、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理（図１２）に戻る。
【０１０８】
これに対してコントローラ１１は、ステップＳＰ２４の判断において否定結果を得ると、仮想ボリューム移行プログラム４５（図４）を起動して、この仮想ボリューム移行プログラムに基づいて、そのとき対象としている仮想ボリュームＶＶＯＬに格納されているデータを実ボリュームＲＶＯＬに移行する仮想ボリューム移行処理を実行する（ＳＰ２５）。これはパリティグループＩＤを取得した２つのパリティグループ３１の双方にそれぞれいずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３がない以上、重要度が「高」の仮想ボリュームＶＶＯＬのデータを同一のパリティグループ３１に格納するためには実ボリュームＲＶＯＬを利用するしかないという理由による。
【０１０９】
そしてコントローラ１１は、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理に戻る。
【０１１０】
なお、上述のようにアクセス要求において指定された仮想ボリュームＶＶＯＬ内の当該アクセス要求により指定されたデータブロック３４に２つのチャンク３３を割り当てた場合、図１１について上述したアクセス要求受付け処理のステップＳＰ３において、これら２つのチャンク３３にライト対象のデータがライトされる。これにより、重要度が「高」の仮想ボリュームＶＶＯＬに書き込まれたデータが二重化されて保持される。
【０１１１】
ここで、上述した重要度高ボリューム割当て処理のステップＳＰ２５におけるコントローラ１１の具体的な処理内容を図２０に示す。
【０１１２】
コントローラ１１は、重要度高ボリューム割当て処理のステップＳＰ２５に進むと、この仮想ボリューム移行処理を開始し、まず、実ボリューム管理テーブル５０（図５）を参照して、そのとき対象としている重要度が「高」の仮想ボリュームＶＶＯＬ（以下、これを移行元仮想ボリュームと呼ぶ）に格納されたデータを移行する移行先の実ボリューム（以下、これを移行先実ボリュームと呼ぶ）ＲＶＯＬを検索する（ＳＰ３０）。
【０１１３】
続いてコントローラ１１は、移行元仮想ボリュームＶＶＯＬと移行先実ボリュームＲＶＯＬの状態を移行状態に遷移させ（ＳＰ３１）、この後、移行元仮想ボリュームＶＶＯＬに格納されていたデータを当該移行元仮想ボリュームＶＶＯＬから移行先実ボリュームＲＶＯＬに移行させる（ＳＰ３２）。
【０１１４】
次いでコントローラ１１は、仮想ボリューム管理テーブル５１上の移行元仮想ボリュームＶＶＯＬに対応するエントリを消去することにより、移行元仮想ボリュームＶＶＯＬを削除する（ＳＰ３３）。そしてコントローラ１１は、この後この仮想ボリューム移行処理を終了して重要度高ボリューム割当て処理（図１３）に戻る。
【０１１５】
（１−４−２−３）重要度中ボリューム割当て処理
一方、図２１は、図１２について上述したチャンク割当て処理のステップＳＰ１２におけるコントローラ１１の具体的な処理内容を示している。以下においては、初期時における実ボリューム管理テーブル５０、仮想ボリューム管理テーブル５１、割当てチャンク管理テーブル５２、プール管理テーブル５３及びパリティグループ管理テーブル５４の状態は、それぞれ図５、図６、図７、図８及び図９の状態であるものとする。
【０１１６】
この重要度中ボリューム割当て処理は、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬ内の、当該アクセス要求により指定されたアクセス先と対応するデータブロック３４に対して１つのチャンク３３のみを割り当てる点が図１１について上述した重要度高ボリューム割当て処理と相違し、これ以外は重要度高ボリューム割当て処理と同様である。
【０１１７】
すなわちコントローラ１１は、チャンク割当て処理のステップＳＰ１２に進むと、この重要度中ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル５１を参照して、アクセス要求において指定されたアクセス先の仮想ボリュームＶＶＯＬに対して既に割り当てられているチャンク３３があるか否かを判断する（ＳＰ４０）。
【０１１８】
コントローラ１１は、この判断において否定結果を得ると、プール管理テーブル５３を参照して、品質レベルが「高」又は「中」のパリティグループ３１が提供するチャンク３３であって、いずれの仮想ボリュームＶＶＯＬにも割り当てられていないチャンク３３が存在するか否かを判断する（ＳＰ４１）。
【０１１９】
コントローラ１１は、ステップＳＰ４１の判断において否定結果を得ると、ホスト計算機２に対してかかるアクセス要求に対するエラーを通知する（ＳＰ４２）。そしてコントローラ１１は、この後、この重要度中ボリューム割当て処理を終了して、チャンク割当て処理（図１２）に戻る。
【０１２０】
これに対してコントローラ１１は、かかるステップＳＰ４１の判断において肯定結果を得ると、ステップＳＰ４１の条件を満たすチャンク３３を１つ選択する。例えば図８の例の場合、「ch11」〜「ch15」というチャンクＩＤがそれぞれ付与されたチャンク３３は、品質レベルが「中」のパリティグループ３１が提供するチャンク３３であり、このうち「ch13」〜「ch15」という各チャンク３３はいずれも仮想ボリュームＶＶＯＬに割り当てられていない。従って、コントローラ１１は、これらのチャンク３３の中から１つのチャンク３３を選択することができる。
【０１２１】
そしてコントローラ１１は、このようにして選択したチャンク３３を、アクセス要求において指定された仮想ボリュームＶＶＯＬ内の当該アクセス要求において指定されたデータブロック３４に割り当てる（ＳＰ４６）。
【０１２２】
具体的にコントローラ１１は、プール管理テーブル５３の各エントリのうち、上述のようにして選択したチャンク３３に対応するエントリの仮想ボリューム割当て状態欄５３Ｆに格納された仮想ボリューム割当て状態情報を、「Unallocated」から「Allocated」に変更し、さらに割当て先の仮想ボリュームＶＶＯＬのボリュームＩＤをその仮想ボリューム割当て状態欄５３Ｆに格納する。
【０１２３】
またコントローラ１１は、割当てチャンク管理テーブル５２に対してそのチャンク３３に関する情報を追加登録する。具体的に、コントローラ１１は、割当てチャンク管理テーブル５２上に新たなエントリを１つ確保し、そのエントリの割当て済チャンク欄５２Ｄにかかる仮想ボリュームＶＶＯＬに割り当てたチャンク３３のチャンクＩＤを格納する。またコントローラ１１は、かかるエントリのパリティグループＩＤ欄５２Ｅ及びプール欄５２Ｂに、対応するチャンク３３を提供するパリティグループ３１のパリティグループＩＤ及びそのパリティグループ３１が属するプールのプールＩＤをそれぞれ格納する。さらにコントローラ１１は、かかるエントリのボリュームＩＤ欄５２Ａ及び割当て済ＬＢＡ欄５２Ｃに、かかる仮想ボリュームＶＶＯＬのボリュームＩＤ及び当該仮想ボリュームＶＶＯＬ内のかかるチャンク３３を割り当てたデータブロック３４のボリューム先頭からの範囲（ＬＢＡ）を格納する。
【０１２４】
さらにコントローラ１１は、仮想ボリューム管理テーブル５１上のかかる仮想ボリュームＶＶＯＬと対応するエントリの割当て済容量欄５１Ｅに格納された数値を、そのときその仮想ボリュームに割り当てたチャンク３３の容量に変更する。
【０１２５】
そしてコントローラ１１は、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理に戻る。
【０１２６】
これに対してコントローラ１１は、ステップＳＰ４０の判断において肯定結果を得ると、割当てチャンク管理テーブル５２を参照して、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに対して既に割り当てられているチャンク３３を提供するパリティグループ３１のパリティグループＩＤを取得する（ＳＰ４３）。
【０１２７】
例えば割当てチャンク管理テーブル５２が図７のような状態にあり、かかる仮想ボリュームＶＶＯＬのボリュームＩＤが「v104」である場合、コントローラ１１は、この割当てチャンク管理テーブル５２を参照して、当該仮想ボリュームＶＶＯＬに割り当てられた「ch11」というチャンクＩＤのチャンク３３を提供するパリティグループ３１のパリティグループＩＤ（「PG03」）を取得する。
【０１２８】
そしてコントローラ１１は、この後、プール管理テーブル５３を参照して、ステップＳＰ４４においてパリティグループＩＤを取得したパリティグループ３１に、いずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３があるか否かを判断する（ＳＰ４４）。
【０１２９】
例えば図８の例の場合、ステップＳＰ４３において取得した「PG03」というパリティグループＩＤのパリテルグループ３１には、仮想ボリュームＶＶＯＬに未割当てのチャンク３３として、「ch13」〜「ch15」というチャンクＩＤがそれぞれ付与された３つのチャンク３３が存在するため、この判断において肯定結果を得ることになる。
【０１３０】
そしてコントローラ１１は、ステップＳＰ４４の判断において肯定結果を得ると、ステップＳＰ４３において検出したパリティグループ３１が提供するチャンク３３を、そのとき対象としている仮想ボリュームＶＶＯＬに割り当て（ＳＰ４６）、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理（図１２）に戻る。
【０１３１】
これに対してコントローラ１１は、ステップＳＰ４４の判断において否定結果を得ると、仮想ボリューム移行プログラム４５（図４）を起動して、当該仮想ボリューム移行プログラム４５に基づいて図２０について上述した仮想ボリューム移行処理を実行する（ＳＰ４５）。そしてコントローラ１１は、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理に戻る。
【０１３２】
（１−４−２−４）重要度低ボリューム割当て処理
他方、図２２は、図１２について上述したチャンク割当て処理のステップＳＰ１３におけるコントローラ１１の具体的な処理内容を示している。この重要度低ボリューム割当て書は、通常のＡＯＵ処理と同様である。
【０１３３】
すなわちコントローラ１１は、チャンク割当て処理のステップＳＰ１３に進むと、この重要度低ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル５１を参照して、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに対して既に割り当てられているチャンク３３があるか否かを判断する（ＳＰ５０）。
【０１３４】
そしてコントローラ１１は、この判断において否定結果を得ると、プール管理テーブル５３を参照して、品質レベルが「中」又は「低」のパリティグループ３１が提供するチャンク３３であって、いずれの仮想ボリュームＶＶＯＬにも割り当てられていないチャンク３３が存在するか否かを判断する（ＳＰ５１）。
【０１３５】
コントローラ１１は、ステップＳＰ５１の判断において否定結果を得ると、ホスト計算機２に対してかかるアクセス要求に対するエラーを通知する（ＳＰ５２）。そしてコントローラ１１は、この後、この重要度低ボリューム割当て処理を終了して、チャンク割当て処理（図１２）に戻る。
【０１３６】
これに対してコントローラ１１は、ステップＳＰ５１の判断において肯定結果を得ると、ステップＳＰ５１の条件を満たすチャンク３３を１つ選択し、選択したチャンク３３を、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬ内の、当該アクセス要求において指定されたアクセス先と対応するデータブロック３４に割り当てる（ＳＰ５７）。なお、このステップＳＰ５７における処理内容は、図２１について上述した重要度中ボリューム割当て処理のステップＳＰ４７と同様であるため、ここでの説明は省略する。そしてコントローラ１１は、この後、この重要度低ボリューム割当て処理を終了してチャンク割当て処理に戻る。
【０１３７】
これに対してコントローラ１１は、ステップＳＰ５０の判断において肯定結果を得ると、割当てチャンク管理テーブル５２を参照して、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに既に割り当てられているチャンク３３を提供するパリティグループ３１のパリティグループＩＤを取得する（ＳＰ５３）。
【０１３８】
続いてコントローラ１１は、プール管理テーブル５３を参照して、品質レベルが「中」又は「低」のパリティグループ３１が提供するチャンク３３であって、いずれの仮想ボリュームＶＶＯＬにも割り当てられていないチャンク３３が存在するか否かを判断する（ＳＰ５４）。
【０１３９】
コントローラ１１は、この判断において否定結果を得るとステップＳＰ５２に進み、これに対して肯定結果を得ると、プール管理テーブル５３を参照して、いずれの仮想ボリュームＶＶＯＬにも割り当てられていないチャンク３３であって、ステップＳＰ５３において取得したパリティグループＩＤが付与されたパリティグループ３１と異なるパリティグループ３１が提供するチャンク３３が存在するか否かを判断する（ＳＰ５５）。
【０１４０】
コントローラ１１は、この判断において肯定結果を得るとステップＳＰ５７に進み、これに対して否定結果を得ると、アクセス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬに割り当てられているチャンク３３を既に提供しているパリティグループ３１と同一のパリティグループ３１が提供する他のチャンク３３を当該仮想ボリュームＶＶＯＬに割り当てることを許可する設定がなされているか否かを判断する（ＳＰ５６）。なお、この設定は、システム管理者により事前に行われる。
【０１４１】
そしてコントローラ１１は、この判断において否定結果を得るとステップＳＰ５２に進み、これに対して肯定結果を得ると、ステップＳＰ５３において検出したパリティグループＩＤのパリティグループ３１と異なるパリティグループ３１が提供するチャンク３３のうちのいずれの仮想ボリュームＶＶＯＬにも割り当てられていないチャンク３３を選択し、当該チャンク３３をアドレス要求において指定された論理ユニットＬＵと対応付けられた仮想ボリュームＶＶＯＬの、当該アドレス要求に応じて指定されたアクセス先と対応するデータブロック３４に割り当てる（ＳＰ５７）。そしてコントローラ１１は、この後、この重要度低ボリューム割当て処理を終了してチャンク割当て処理に戻る。
【０１４２】
（１−４−３）プール残容量監視処理
ところで、上述のようなチャンク割当て処理により順次仮想ボリュームＶＶＯＬにチャンク３３が動的に割り当てられていくと、やがて同一のパリティグループ３１が提供するチャンク３３を割り当てることが規定されている重要度が「高」及び「中」の仮想ボリュームＶＶＯＬに対して、チャンク３３を割り当てられなくなるおそれがある。
【０１４３】
そこで、本実施の形態によるストレージ装置４には、各パリティグループ３１によりそれぞれ構成されるプールボリュームＰＬＶＯＬの残容量を監視し、例えば品質レベルが「高」又は「中」のプールボリュームＰＬＶＯＬの残容量（仮想ボリュームＶＶＯＬに未割当てのチャンク数）が予め定められた閾値よりも小さくなった段階で、重要度が「低」の仮想ボリュームＶＶＯＬに割り当てられている品質レベルが「中」のパリティグループ３１が提供するチャンク３３を、品質レベルが「低」のパリティグループ３１が提供するチャンク３３に交換するプール残容量監視機能が搭載されている。
【０１４４】
そして、かかるプール残容量監視機能を実現するための手段として、ストレージ装置４のメモリ１３には、図４に示すように、プール残容量監視プログラム４６及びプール残容量監視テーブル５５と、チャンク再配置プログラム４７とが格納されている。
【０１４５】
このうちプール残容量監視テーブル５５は、コントローラ１１が各プールボリュームＰＬＶＯＬの残容量を管理するためのテーブルであり、図２３に示すように、プールＩＤ欄５５Ａ、仮想容量欄５５Ｂ、割当て済容量欄５５Ｃ、パリティグループＩＤ欄５５Ｄ、品質レベル欄５５Ｅ、仮想容量欄５５Ｆ、割当て済容量欄５５Ｇ、残容量欄５５Ｈ及び割当て先仮想ボリューム欄５５Ｉから構成される。
【０１４６】
そしてプールＩＤ欄５５Ａには、ストレージ装置４内に設定された各プール３２（図３）のプールＩＤがそれぞれ格納され、仮想容量欄５５Ｂには、そのプール３２全体の容量が格納される。また割当て済容量欄５５Ｃには、対応するプール３２の容量のうち、既にいずれかの仮想ボリュームＶＶＯＬに割り当てられているチャンク３３の合計容量が格納される。
【０１４７】
一方、パリティグループＩＤ欄５５Ｄには、そのプール３２に属するプールボリュームＰＬＶＯＬをそれぞれ構成する各パリティグループ３１のパリティグループＩＤがそれぞれ格納され、品質レベル欄５５Ｅには、対応するパリティグループ３１に設定された品質レベルが格納される。
【０１４８】
また仮想容量欄５５Ｆには、対応するパリティグループ３１が構成するプールボリュームＰＬＶＯＬの容量が格納され、割当て済容量欄５５Ｇ及び残容量欄５５Ｈには、それぞれそのプールボリュームＰＬＶＯＬの容量のうちの既にいずれかの仮想ボリュームＶＶＯＬに割り当てられているチャンク３３の合計容量と、そのプールボリュームＰＬＶＯＬの残容量とがそれぞれ格納される。
【０１４９】
さらに割当先仮想ボリューム欄５５Ｉには、対応するパリティグループ３１が構成するプールボリュームＰＬＶＯＬが提供するチャンク３３が既にいずれかの仮想ボリュームＶＶＯＬに割り当てられているときに、その仮想ボリュームＶＶＯＬのボリュームＩＤと、当該仮想ボリュームＶＶＯＬの重要度とが格納される。
【０１５０】
従って図２３の例では、プールＩＤが「p1」のプール３２には、それぞれ「PG01」、「PG02」及び「PG03」というパリティグループＩＤが付与された３つのパリティグループ３１がそれぞれ構成するプールボリュームＰＬＶＯＬが属しており、これら３つのプールボリュームＰＬＶＯＬの容量はいずれも「10GB」であることが示されている。また図２３には、これら３つのプールボリュームＰＬＶＯＬうち、品質レベルが共に「高」の「PG01」及び「PG02」というパリティグループ３１が構成するプールボリュームＰＬＶＯＬの残容量はそれぞれ「4GB」及び「8GB」であり、「PG03」というパリティグループ３１が構成するプールボリュームPLVOLの残容量が「6GB」であることが示されている。
【０１５１】
図２４は、上述のようなプール残容量監視機能に関するコントローラ１１の具体的な処理内容を示している。コントローラ１１は、プール残容量監視プログラム４６（図４）に基づいて、この図２４に示すプール残容量監視処理を定期的に実行する。
【０１５２】
すなわちコントローラ１１は、このプール残容量監視処理を開始すると、まず、仮想ボリューム管理テーブル５１及びプール管理テーブル５３に基づいて、図２３について上述したプール残容量監視テーブル５５を作成する（ＳＰ６０）。
【０１５３】
続いてコントローラ１１は、プール残容量監視テーブル５５のいずれか１つの割当て先仮想ボリューム欄５５Ｉを１つ選択し（ＳＰ６１）、その割当て先仮想ボリューム欄５５Ｉに格納された重要度に基づいて、その割当て先仮想ボリューム欄５５Ｉと対応付けられた仮想ボリュームＶＶＯＬの重要度が「高」及び「中」のいずれかであるか否かを判断する（ＳＰ６２）。
【０１５４】
そしてコントローラ１１は、この判断において否定結果を得るとステップＳＰ６６に進み、これに対して肯定結果を得ると、その仮想ボリュームＶＶＯＬに未割当てのチャンク３３の容量（つまりその仮想ボリュームＶＶＯＬの残容量。以下、これを未割当て容量と呼ぶ。）を、仮想ボリューム管理テーブル５１の対応するエントリの仮想容量欄５１Ｃ及び割当て済容量欄５１Ｅをそれぞれ参照して計算する。
【０１５５】
例えば図６及び図２３の例の場合、ステップＳＰ６１において選択した割当て先仮想ボリューム欄５５Ｉが「v102」というボリュームＩＤが付与された仮想ボリュームＶＶＯＬに対応するものとすると、仮想ボリューム管理テーブル５１の対応するエントリを参照すれば、その仮想ボリュームの未割当て容量が８ＧＢ（＝１０ＧＢ−２ＧＢ）であることが計算できる。
【０１５６】
続いてコントローラ１１は、プール残容量監視テーブル５５における、ステップＳＰ６１において選択した割当て先仮想ボリューム欄５５Ｉと対応する未割当て容量欄５５Ｈを参照して、ステップＳＰ６３において算出したその仮想ボリュームＶＶＯＬの残容量よりも、その仮想ボリュームＶＶＯＬにチャンク３３を提供しているパリティグループ３１の残容量のほうが少ないか否かを判断する（ＳＰ６４）。
【０１５７】
例えば上述の例では、ステップＳＰ６３において算出したその仮想ボリュームＶＶＯＬの未割当て容量は８ＧＢであり、その仮想ボリュームＶＶＯＬにチャンク３３を提供しているパリティグループ３１の残容量は「4GB」であるため、ステップＳＰ６３において算出したその仮想ボリュームＶＶＯＬの未割当て容量のほうが、その仮想ボリュームＶＶＯＬにチャンク３３を提供しているパリティグループ３１の残容量よりも大きいということになる。
【０１５８】
そしてコントローラ１１は、この判断において否定結果を得るとステップＳＰ６６に進み、これに対して肯定結果を得ると、図２８について後述するチャンク再配置処理を実行する（ＳＰ６５）。なお、このステップＳＰ６５において、コントローラ１１が後述するチャンク再配置処理に代えて、管理計算機５に警告を通知したり、図２０について上述した仮想ボリューム移行処理を実行するようにしても良い。
【０１５９】
続いてコントローラ１１は、プール残容量監視テーブル５５のすべての割当て先仮想ボリューム欄５５Ｉについて同様の処理を終えたか否かを判断する（ＳＰ６６）。そしてコントローラ１１は、この判断において否定結果を得るとステップＳＰ６１に戻り、この後、同様の処理を繰り返す（ＳＰ６１〜ＳＰ６６−ＳＰ６１）。
【０１６０】
またコントローラ１１は、やがてプール残容量監視テーブル５５のすべての割当て先仮想ボリューム欄５５Ｉについて同様の処理を終えることによりステップＳＰ６６において肯定結果を得ると、このプール残容量監視処理を終了する。
【０１６１】
次に、かかるプール残容量監視処理のステップＳＰ６５において行なわれるチャンク再配置処理に関するコントローラ１１の具体的な処理内容について図２５〜図２７を用いて説明する。
【０１６２】
図２５に示すように、本実施の形態のストレージ装置４では、重要度が「低」の仮想ボリュームＶＶＯＬに対しては複数のパリティグループ３１が提供するチャンク３３を分散して割り当て、重要度が「中」の仮想ボリュームＶＶＯＬに対しては同一のパリティグループ３１が提供するチャンク３３を割り当て、重要度が「高」の仮想ボリュームＶＶＯＬに対しては同一のパリティグループ３１が提供するチャンク３３を割り当てた上でデータを二重化する。
【０１６３】
ところで、重要度が「低」の仮想ボリュームＶＶＯＬに品質レベルが「中」のパリティグループ３１が提供するチャンク３３が割り当てられている場合、図２６に示すように、例えばその仮想ボリュームＶＶＯＬに対して、品質レベルが「中」のパリティグループ３１（図２６において上から２番目のパリティグループ３１）が提供するチャンク３３に代えて、品質レベルが「低」のパリティグループ３１（図２６において一番上のパリティグループ３１）が提供するチャンク３３を再割当てすることによって、品質レベルが「中」のパリティグループ３１の残容量を増やすことができる。
【０１６４】
また、この後図２７に示すように、残容量が少ないパリティグループ３１のチャンク３３が割り当てられている重要度が「高」の仮想ボリュームＶＶＯＬがあるときには、上述のようにして残容量が増えた品質レベルが「中」のパリティグループ３１（図２６において上から２番目のパリティグループ３１）のチャンク３３をその仮想ボリュームＶＶＯＬに再割当てすることによって、その仮想ボリュームＶＶＯＬに対して品質レベルが「中」の同一のパリティグループ３１が提供するチャンク３３を割り当てることができるようになる。
【０１６５】
そこで、本実施の形態においては、以上のような処理（以下、これをチャンク再配置処理と呼ぶ）を行うための手段として、ストレージ装置４のメモリ１３には、チャンク再配置プログラム４７（図４）が格納されている。そしてコントローラ１１は、図２４について上述したプール残容量監視処理のステップＳＰ６５に進むと、このチャンク再配置プログラム４７を起動し、このチャンク再配置プログラム４７に従って、上述のようなチャンク再配置処理を実行する。
【０１６６】
図２８は、このようなチャンク再配置処理に関するコントローラ１１の具体的な処理内容を示している。コントローラ１１は、プール残容量監視処理のステップＳＰ６５に進むと、まず、プール管理テーブル５３（図８）を参照して、そのとき対象としている重要度が「高」の仮想ボリュームＶＶＯＬにチャンク３３を再割り当て可能なプールボリュームＰＬＶＯＬを検索する（ＳＰ７０）。検索対象は、かかる重要度が「高」の仮想ボリュームＶＶＯＬの容量以上の残容量を有し、品質レベルが「高」又は「中」のパリティグループ３１により構成されるプールボリュームＰＬＶＯＬである。
【０１６７】
そしてコントローラ１１は、このようなプールボリュームＰＬＶＯＬが存在したときには、かかる重要度が「高」又は「中」の仮想ボリュームＶＶＯＬに対して当該プールボリュームＰＬＶＯＬのチャンク３３を再割り当てすると共に、再割り当て前に当該仮想ボリュームＶＶＯＬに割り当てられていた各チャンク３３にそれぞれ格納されていたデータを、再割り当て後の新たな各チャンク３３にそれぞれ移行させる（ＳＰ７１）。そしてコントローラ１１は、この後、このチャンク再配置処理を終了してプール残容量監視処理に戻る。
【０１６８】
これに対してコントローラ１１は、ステップＳＰ７０において、かかる条件を満たすプールボリュームＰＬＶＯＬを検出できなかったときには、割当てチャンク管理テーブル５２（図７）及びプール管理テーブル５３（図８）を参照して、重要度が「低」の各仮想ボリュームＶＶＯＬに対して、品質レベルが「低」のパリティグループ３１が提供するチャンク３３を再割り当てする。この際コントローラ１１は、再割り当てするチャンク３３を提供するパリティグループ３１の数がなるべく少なくなるように、新たに割り当てるチャンク３３を選択する（ＳＰ７２）。
【０１６９】
続いてコントローラ１１は、プール管理テーブル５３を参照して、そのとき対象としている重要度が「高」の仮想ボリュームＶＶＯＬに対してチャンク３３を再割り当て可能なチャンク３３を有するプールボリュームＰＬＶＯＬを検索する（ＳＰ７３）。検索対象は、かかる重要度が「高」の仮想ボリュームＶＶＯＬの容量以上の残容量を有し、品質レベルが「高」又は「中」のパリティグループ３１により構成されるプールボリュームＰＬＶＯＬである。
【０１７０】
そしてコントローラ１１は、この検索によりかかる条件を満たすプールボリュームＰＬＶＯＬを検出すると、上述したチャンク３３の再割り当て処理を行い（ＳＰ７１）、この後このチャンク再配置処理を終了してプール残容量監視処理に戻る。
【０１７１】
これに対してコントローラ１１は、ステップＳＰ７３においてかかる条件を満たすプールボリュームＰＬＶＯＬを検出できなかったときには、管理計算機５に対して警告を通知することにより、対応する警告メッセージを管理計算機５に表示させる（ＳＰ７４）。そしてコントローラ１１は、この後、このチャンク再配置処理を終了してプール残容量監視処理に戻る。
【０１７２】
なお、ステップＳＰ７４では、管理計算機５に警告を通知することに代えて、図２０について上述した仮想ボリューム移行処理を実行しても良い。その際はデータを二重化するようにする。
【０１７３】
（１−４−４）障害ボリューム復旧処理
次に、障害ボリューム復旧処理ついて説明する。本実施の形態の計算機システム１では、上述のように重要度が「高」の仮想ボリュームＶＶＯＬについては、当該仮想ボリュームＶＶＯＬに格納されたデータを二重化して保持するため、その仮想ボリュームＶＶＯＬが障害により回復不可能な状態になったとしても、二重化されたデータを用いてその仮想ボリュームＶＶＯＬを復旧することができる。
【０１７４】
図２９は、障害により回復不可能な状態となった、重要度が「高」の仮想ボリュームＶＶＯＬを復旧する際のコントローラ１１の具体的な処理内容を示している。コントローラ１１は、障害によりいずれかのボリュームが回復不可能な状態となると、メモリ１３（図４）に格納された障害ボリューム復旧プログラム４８を起動し、この障害ボリューム復旧プログラム４８に基づいて、この図２９に示す障害ボリューム復旧処理を実行する。
【０１７５】
すなわちコントローラ１１は、障害によりいずれかのボリュームが回復不可能な状態となると、まず、障害発生時に当該障害が発生したハードディスク装置３０（図３）からコントローラ１１に通知される障害情報に基づいて、かかる障害により回復不可能となったボリューム（以下、これを障害ボリュームと呼ぶ）に対してチャンク３３を提供しているパリティグループ（つまり障害が発生したパリティグループ。以下、これを障害パリティグループと呼ぶ）３１を特定する（ＳＰ８０）。
【０１７６】
続いてコントローラ１１は、パリティグループ管理テーブル５４を参照して、その障害パリティグループ３１が提供するボリュームの属性が実ボリュームＲＶＯＬであるか否かを判断する（ＳＰ８１）。このステップＳＰ８１において肯定結果を得た場合、その障害ボリュームの復旧は不可能であるため、コントローラ１１は、この障害ボリューム復旧処理を終了する。
【０１７７】
これに対してコントローラ１１は、かかるステップＳＰ８１において否定結果を得た場合、プール管理テーブル５３（図８）を参照して、かかる障害パリティグループ３１が提供するチャンク３３の障害ボリュームへの割り当て状態を調査する（ＳＰ８２）。具体的には、コントローラ１１は、プール管理テーブル５３の対応する仮想ボリューム割当て状態欄５３Ｆを参照して、その障害パリティグループ３１が提供する各チャンク３３の障害ボリュームへの割当て状態が「Allocated」及び「Duplicated」のいずれであるかを調査することになる。
【０１７８】
そしてコントローラ１１は、ステップＳＰ８２の調査結果に基づいて、障害ボリュームが重要度が「高」の仮想ボリュームＶＶＯＬであり、その障害パリティグループ３１が提供するチャンク３３に格納されていたデータと同じデータが格納されているチャンク３３が存在するか否かを判断する（ＳＰ８３）。具体的には、コントローラ１１は、その障害パリティグループ３１が提供する各チャンク３３の障害ボリュームへの割当て状態が「Duplicated」であるか否かを判断することになる。
【０１７９】
このステップＳＰ８３において否定結果を得た場合、かかる障害ボリュームを復旧することは不可能である。かくして、このときコントローラ１１は、この障害ボリューム復旧処理を終了する。
【０１８０】
これに対してステップＳＰ８３において肯定結果を得た場合、障害が発生していないもう一方のチャンク３３に格納されているデータを利用して障害ボリュームを復旧することができる。かくして、このときコントローラ１１は、かかる障害ボリュームを復旧させる復旧処理（以下、これを重要度高ボリューム復旧処理と呼ぶ）を実行し（ＳＰ８４）、この後、この障害ボリューム復旧処理を終了する。
【０１８１】
図３０は、かかる重要度高ボリューム復旧処理に関するコントローラ１１の具体的な処理内容を示している。コントローラ１１は、かかる障害ボリューム復旧処理のステップＳＰ８４に進むと、この重要度高ボリューム復旧処理を開始し、まず、割当てチャンク管理テーブル５２（図７）を参照して、障害ボリュームに２つずつ割り当てられたチャンク３３を提供する２つのパリティグループ３１のパリティグループＩＤをそれぞれ取得する（ＳＰ９０）。
【０１８２】
続いてコントローラ１１は、仮想ボリューム管理テーブル５１（図６）を参照して、障害ボリュームに割り当てられている各チャンク３３の容量を、対応するエントリの割当て済容量欄５１Ｅから読み出す（ＳＰ９１）。そしてコントローラ１１は、プール管理テーブル５３を参照して、障害パリティグループ３１に代えて障害ボリュームにチャンク３３を提供可能なパリティグループ３１を検索する（ＳＰ９２）。このときの検索対象は、障害ボリュームに割り当て済の容量を上回る未割当てのチャンク３３を有するパリティグループ３１である。
【０１８３】
そしてコントローラ１１は、そのようなパリティグループ３１を検出できなかったときには、図２０について上述した仮想ボリューム移行処理を実施する。この際コントローラ１１は、その障害ボリュームに格納されていたデータを実ボリュームＲＶＯＬにおいて二重化する（ＳＰ９３）。そしてコントローラ１１は、この後この重要度高ボリューム復旧処理を終了して障害ボリューム復旧処理（図２９）に戻る。
【０１８４】
これに対してコントローラ１１は、上述のようなパリティグループ３１を検出できたときには、そのパリティグループ３１の未割当てのチャンク３３を障害ボリュームに再割り当てし、再割り当て前に割り当てられていたチャンク３３に格納されていたデータを、再割り当てしたチャンク３３にコピーする（ＳＰ９４）。
【０１８５】
具体的に、コントローラ１１は、障害ボリュームに割り当てられている各チャンク３３にそれぞれ対応するプール管理テーブル５３（図８）の仮想ボリューム割り当て状態欄５３Ｆに格納された割当て状態情報を「Allocated」から使用不可能を意味する「Unavailable」に変更する。またコントローラ１１は、かかる障害ボリュームに対して再割り当てする各チャンク３３にそれぞれ対応するプール管理テーブル５３の各仮想ボリューム割当て状態欄５３Ｆに格納されている割当て状態情報を「Unallocated」から「Duplicated」に変更する。
【０１８６】
さらにコントローラ１は、再割り当て前のチャンク３３に格納されていたデータを、そのチャンク３３と同じデータが格納されたバックアップ用のチャンク３３から読み出し、これを再割り当て後のチャンク３３に格納する。
【０１８７】
そしてコントローラ１１は、この後この重要度高ボリューム復旧処理を終了して障害ボリューム復旧処理に戻る。
【０１８８】
（１−５）本実施の形態の効果
以上のように本実施の形態による計算機システム１では、重要度が「高」又は「中」の仮想ボリュームＶＶＯＬに対しては同一のパリティグループ３１が提供するチャンク３３を割り当て、重要度が「低」の仮想ボリュームＶＶＯＬに対しては複数のパリティグループ３１が提供するチャンク３３を割り当てるようにしているため、パリティグループ３１において発生した障害の影響を確率的に低くすることができる。かくするにつき、ＡＯＵ機能が搭載されたストレージ装置における重要なデータの保全性を向上させることができる。
【０１８９】
また本実施の形態による計算機システム１では、重要度が「高」又は「中」の仮想ボリュームＶＶＯＬに対しては、障害が発生し難い品質レベルが「高」又は「中」のパリティグループ３１が提供するチャンク３３を割り当てるようにしているため、かかるストレージ装置における重要なデータの保全性をより一層と向上させることができる。
【０１９０】
（２）第２の実施の形態
図１において、１００は全体として第２の実施の形態による計算機システムを示す。この計算機システム１００は、システム管理者が、仮想ボリュームＶＶＯＬに要求する重要度だけでなく、仮想ボリュームＶＶＯＬに要求する性能や信頼性をも指定することができる点が第１の実施の形態による計算機システム１と異なる。
【０１９１】
すなわち本実施の形態による計算機システム１００の場合、システム管理者は、仮想ボリュームＶＶＯＬを作成する際、その仮想ボリュームＶＶＯＬの重要度に加えて、その仮想ボリュームＶＶＯＬに要求する性能（以下、これを仮想ボリュームＶＶＯＬの性能要件と呼ぶ）と、その仮想ボリュームＶＶＯＬにチャンク３３を提供するパリティグループ３に要求するＲＡＩＤレベル（以下、これを仮想ボリュームＶＶＯＬの信頼性要件）とを指定することができる。
【０１９２】
そしてストレージ装置１０１（図１）のコントローラ１０２（図１）は、これら重要度と、仮想ボリュームＶＶＯＬの性能要件及び信頼性要件とのうち、特に重要度及び仮想ボリュームＶＶＯＬの性能要件に基づいて、図３１に示すように、その仮想ボリュームＶＶＯＬに対するチャンク３３の割当て方法を切り換える。
【０１９３】
具体的にコントローラ１０２は、例えば重要度が「高」に設定された仮想ボリュームＶＶＯＬに対しては、第１の実施の形態と同様に、同一パリティグループ３１のチャンク３３を割り当て、さらにデータを二重化する。またコントローラ１１は、重要度が「中」に設定された仮想ボリュームＶＶＯＬに対しては、同一パリティグループ３１のチャンク３３を割り当てる。さらにコントローラ１０２は、重要度が「低」に設定された仮想ボリュームＶＶＯＬに対しては、データが複数のパリティグループ３１に分散するように、複数のパリティグループ３１のチャンク３３を割り当てる。
【０１９４】
この際、コントローラ１０２は、仮想ボリュームＶＶＯＬに割り当てるチャンク３３として、仮想ボリュームＶＶＯＬに要求される性能が「高」のときには、高性能のハードディスク装置３０（図３）から構成されるパリティグループ３１のチャンク３３を選択し、仮想ボリュームＶＶＯＬに要求される性能が「中」のときには、中性能のハードディスク装置３０から構成されるパリティグループ３１のチャンク３３を選択し、仮想ボリュームＶＶＯＬに要求される性能が「低」のときには、かかるチャンク３３として低性能のハードディスク装置３０から構成されるパリティグループ３１のチャンク３３を選択する。
【０１９５】
このような制御を行うための手段として、本実施の形態の場合、図４のようにストレージ装置４のメモリ１３に格納された各種テーブルのうち、仮想ボリューム管理テーブル１０３及びプール管理テーブル１０４の構成が第１の実施の形態と異なる。
【０１９６】
すなわち本実施の形態による仮想ボリューム管理テーブル１０３は、図３２に示すように、図６について上述した第１の実施の形態による仮想ボリューム管理テーブル５１に対して性能要件欄１０３Ｇ及び信頼性要件欄１０３Ｈを追加した構成を有する。そして性能要件欄１０３Ｇには、対応する仮想ボリュームＶＶＯＬについてシステム管理者により指定された性能要件が格納され、信頼性要件欄１０３Ｈには、その仮想ボリュームＶＶＯＬについてシステム管理者により指定された信頼性要件が格納される。
【０１９７】
従って、図３２の例の場合、「v101」という仮想ボリュームＶＶＯＬについては、重要度及びその性能要件がともに「高」に設定され、その仮想ボリュームＶＶＯＬの信頼性要件として「RAID 6」が設定されていることが示されている。また図３２の例の場合、「v102」という仮想ボリュームＶＶＯＬについては、重要度が「高」、その性能要件が「中」に設定され、信頼性要件については指定されていないことが示されている。
【０１９８】
また仮想プールテーブル１０４は、図３３に示すように図８について上述した第１の実施の形態による仮想プールテーブル５３に対してＲＡＩＤレベル欄１０４Ｈを追加した構成を有する。そしてこのＲＡＩＤレベル欄１０４Ｈには、対応するパリティグループ３１についてシステム管理者により設定されたそのパリティグループ３１のＲＡＩＤレベルが格納される。
【０１９９】
図１０との対応部分に同一符号を付した図３４は、第２の実施の形態による計算機システム１００において、管理計算機１１０（図１）を操作して当該管理計算機１１０に実装された仮想ボリューム作成用入出力プログラム１１１（図１）を起動したときに、当該管理計算機１０に表示される仮想ボリューム作成画面１１２を示す。
【０２００】
この仮想ボリューム作成画面１１２は、ストレージ装置名入力フィールド６１、割当先ＰＩＤ入力フィールド６２、割当先ＬＵＮ入力フィールド６３、容量入力フィールド６４、データ移行閾値入力フィールド６５及び重要度入力フィールド６６に加えて、そのとき作成しようとする仮想ボリュームＶＶＯＬの要求性能を入力するための性能要件フィールド１１３と、その仮想ボリュームＶＶＯＬの信頼性要件を入力するための信頼性要件フィールド１１４とを備える。
【０２０１】
システム管理者は、この仮想ボリューム作成画面１１２のトレージ装置名入力フィールド６１、割当先ＰＩＤ入力フィールド６２、割当先ＬＵＮ入力フィールド６３、容量入力フィールド６４、データ移行閾値入力フィールド６５、重要度入力フィールド６６、性能要件フィールド１１３及び信頼性要件フィールド１１４にそれぞれ必要な情報を入力した後、作成ボタン６７をクリックすることによって、この仮想ボリューム作成画面１１２上で設定した各種情報を仮想ボリューム作成要求として、管理計算機１１０からかかる仮想ボリュームＶＶＯＬの作成先となるストレージ装置１０１に送信させることができる。
【０２０２】
そしてこの仮想ボリューム作成要求を受信したストレージ装置１０１のコントローラ１０２は、第１の実施の形態と同様に、当該仮想ボリューム作成要求に含まれる各種情報に基づいて、システム管理者により指定された仮想ボリュームＶＶＯＬを当該ストレージ装置１０１内に作成する。この際コントローラ１０２は、そのとき作成した仮想ボリュームＶＶＯＬの性能要件及び信頼性要件を仮想ボリューム管理テーブル１０３（図３２）の性能要件欄１０３Ｇ及び信頼性要件欄１０４Ｇに格納する。
【０２０３】
図３５は、図１２について上述したチャンク割当て処理のステップＳＰ１１において行われる第２の実施の形態による重要度高ボリューム割当て処理の処理手順を示している。コントローラ１０２は、この重要度高ボリューム割当て処理をメモリ１３（図４）に格納された重要度高ボリューム割当てプログラム１２０に基づいて実行する。
【０２０４】
この場合において、この重要度高ボリューム割当て処理のステップＳＰ１００、ステップＳＰ１０１及びステップＳＰ１０４〜ステップＳＰ１０８の処理内容は、図１３について上述した第１の実施の形態による重要度高ボリューム割当て処理のステップＳＰ２０〜ステップＳＰ２６と同様である。
【０２０５】
ただし、本重要度高ボリューム割当て処理の場合、コントローラ１１は、ステップＳＰ１０１において肯定結果を得ると、いずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３を有する各パリティグループ３１のうちの少なくとも２つのパリティグループ３１が、仮想ボリューム管理テーブル１０３（図３２）の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の性能要件欄１０３Ｇに格納された性能要件を満たすか否かを判断する（ＳＰ１０２）。
【０２０６】
コントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１０４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ３１のうち、少なくとも２つのパリティグループ３１が、仮想ボリューム管理テーブル１０３の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の信頼性要件欄１０３Ｈに格納された信頼性要件を満たすか否かを判断する（ＳＰ１０３）。
【０２０７】
そしてコントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１０４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たす２つのパリティグループ３１がそれぞれ提供する未割当てのチャンク３３を１つずつアクセス要求において指定された仮想ボリュームＶＶＯＬ内の当該アクセス要求において指定されたデータブロック３４（図３）に割り当てる（ＳＰ１０８）。
【０２０８】
一方、図３６は、図１２について上述したチャンク割当て処理のステップＳＰ１２において行われる第２の実施の形態による重要度中ボリューム割当て処理の処理手順を示している。コントローラ１０２は、この重要度中ボリューム割当て処理をメモリ１３（図４）に格納された重要度中ボリューム割当てプログラム１２１に基づいて実行する。
【０２０９】
この場合において、この重要度中ボリューム割当て処理のステップＳＰ１１０、ステップＳＰ１１１及びステップＳＰ１１４〜ステップＳＰ１１８は、図２１について上述した第１の実施の形態による重要度中ボリューム割当て処理のステップＳＰ４０〜ステップＳＰ４６と同様である。
【０２１０】
ただし、本重要度中ボリューム割当て処理の場合、コントローラ１０２は、ステップＳＰ１１１において肯定結果を得ると、いずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３を有するパリティグループ３１が、仮想ボリューム管理テーブル１０３（図２３）の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の性能要件欄１０３Ｇに格納された性能要件を満たすか否かを判断する（ＳＰ１１２）。
【０２１１】
コントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１１４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ３１のうち、さらに仮想ボリューム管理テーブル１０３の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の信頼性要件欄１０３Ｈに格納された信頼性要件を満たすパリティグループ３１が存在するか否かを判断する（ＳＰ１１３）。
【０２１２】
そしてコントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１１４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たすパリティグループ３１が提供する未割当てのチャンク３３をその仮想ボリュームＶＶＯＬに割り当てる（ＳＰ１１８）。
【０２１３】
他方、図３７は、図１２について上述したチャンク割当て処理のステップＳＰ１３において行われる第２の実施の形態による重要度低ボリューム割当て処理の処理手順を示している。コントローラ１０２は、この重要度低ボリューム割当て処理をメモリ１３（図４）に格納された重要度低ボリューム割当てプログラム１２２（図４）に従って実行する。
【０２１４】
この場合において、この重要度低ボリューム割当て処理のステップＳＰ１２０、ステップＳＰ１２１及びステップＳＰ１２４〜ステップＳＰ１２９は、図２２について上述した第１の実施の形態による重要度低ボリューム割当て処理のステップＳＰ５０〜ステップＳＰ５７と同様である。
【０２１５】
ただし、本重要度低ボリューム割当て処理の場合、コントローラ１０２は、ステップＳＰ１２１において肯定結果を得ると、いずれの仮想ボリュームＶＶＯＬにも割り当てられていない未割当てのチャンク３３を有するパリティグループ３１が、仮想ボリューム管理テーブル１０３（図３２）の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の性能要件欄１０３Ｇに格納された性能要件を満たすか否かを判断する（ＳＰ１２２）。
【０２１６】
コントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１２４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ３１のうち、さらに仮想ボリューム管理テーブル１０３の対応するエントリ（そのときチャンク３３を割り当てようとしている仮想ボリュームＶＶＯＬに対応するエントリ）の信頼性要件欄１０３Ｈに格納された信頼性要件を満たすパリティグループ３１が存在するか否かを判断する（ＳＰ１２３）。
【０２１７】
そしてコントローラ１０２は、この判断において否定結果を得るとホスト計算機２にエラーを通知する（ＳＰ１２４）。これに対してコントローラ１０２は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たすパリティグループ３１が提供する未割当てのチャンク３３をその仮想ボリュームＶＶＯＬに割り当てる（ＳＰ１２９）。
【０２１８】
以上の処理により、コントローラ１０２は仮想ボリュームＶＶＯＬに対してシステム管理者により指定された性能要件及び信頼性要件を満たすチャンク３３を割り当てることができる。
【０２１９】
以上のように本実施の形態による計算機システム１００では、仮想ボリュームＶＶＯＬに要求する性能や信頼性をも指定することができるため、第１の実施の形態により得られる効果に加えて、より一層と使用者のニーズに応じた細かい設定を行い得るＡＯＵ機能を提供することができ、かくして計算機システム１００の使い勝手をより一層と向上させることができる。
【０２２０】
（３）第３の実施の形態
図１において、２００は第３の実施の形態による計算機システムを示す。この計算機システム２００は、重要度が「高」又は「中」の仮想ボリュームＶＶＯＬを作成した段階で、ストレージ装置２０１のコントローラ２０２が、その仮想ボリュームＶＶＯＬの各データブロック３４（図３）に対してそれぞれ事前にチャンク３３を割り当てる点を除いて第１の実施の形態による計算機システム１と同様に構成されている。
【０２２１】
すなわち本実施の形態による計算機システム２００では、例えば管理計算機５からストレージ装置２０１に対して重要度が「高」又は「中」の仮想ボリュームＶＶＯＬの作成要求が与えられた場合、ストレージ装置２０１のコントローラ２０２は、いずれも当該仮想ボリュームＶＶＯＬの容量よりも多い残容量を有する２つのパリティグループ３１からそれぞれ当該仮想ボリュームＶＶＯＬの容量と同じ容量分のチャンク３３を予め確保する。
【０２２２】
そしてコントローラ２０２は、このようにして確保した各チャンク３３を予めかかる仮想ボリュームＶＶＯＬの各データブロック３４にそれぞれ関連付けておき、この後、ホスト計算機２からその仮想ボリュームＶＶＯＬにライト要求があったときに、上述のように関連付けたチャンク３３を当該仮想ボリュームＶＶＯＬに割り当てる。
【０２２３】
図３８は、このような第３の実施の形態による計算機システム２００において、管理計算機５からのボリューム作成要求に応じてストレージ装置２０１のコントローラ２０２が、指定された仮想ボリュームＶＶＯＬを作成した直後に実行するチャンク事前割当て処理の処理手順を示す。コントローラ２０２は、図３９のようにメモリ１３に格納されたチャンク事前割当てプログラム２０３に基づいて、この図３８に示すチャンク事前割当て処理を実行する。
【０２２４】
すなわちコントローラ２０２は、管理計算機５からのボリューム作成要求に応じて要求された仮想ボリュームＶＶＯＬを作成すると、このチャンク事前割当て処理を開始し、まず、そのとき作成した仮想ボリュームＶＶＯＬの重要度を、管理計算機５から事前に受けたその仮想ボリュームＶＶＯＬのボリューム作成要求に基づいて判断する（ＳＰ１３０）。
【０２２５】
そしてコントローラ２０２は、かかる仮想ボリュームＶＶＯＬの重要度が「高」であった場合には、そのとき作成した仮想ボリュームＶＶＯＬの容量以上の残容量を有する品質レベルが「高」のパリティグループ３１が少なくとも２つ存在するか否かを判断する（ＳＰ１３１）。
【０２２６】
そしてコントローラ２０２は、この判断において否定結果を得ると、そのとき作成した仮想ボリュームＶＶＯＬのボリューム作成要求に対するエラー通知を管理計算機５に送信する（ＳＰ１３２）。この結果、管理計算機５では、かかるエラー通知に応じて、『指定された容量・重要度の仮想ボリュームは作成できません』といった警告を表示する。なお、かかる警告に代えて、『重要度低の仮想ボリュームとして、別パリティグループに分散してもよろしければ、仮想ボリュームを作成できます』といったメッセージを管理計算機５に表示させるようにしても良い。そして、コントローラ２０２は、この後、このチャンク事前割当て処理を終了する。
【０２２７】
これに対してコントローラ２０２は、ステップＳＰ１３１の判断において肯定結果を得ると、そのとき作成した仮想ボリュームＶＶＯＬの全データブロック３４に対して、異なる２つのパリティグループ３１のチャンク３３をそれぞれ当該パリティグループ３１ごとに１チャンクずつ割り当てる（ＳＰ１３３）。そして、コントローラ２０２は、この後、このチャンク事前割当て処理を終了する。
【０２２８】
一方、コントローラ２０２は、そのとき作成した仮想ボリュームＶＶＯＬの重要度が「中」であった場合には、そのとき作成した仮想ボリュームＶＶＯＬの容量以上の残容量を有する品質レベルが「高」又は「中」のパリティグループ３１が存在するか否かを判断する（ＳＰ１３４）。
【０２２９】
そしてコントローラ２０２は、この判断において否定結果を得るとステップＳＰ１３２に進み、これに対して肯定結果を得ると、そのとき作成した仮想ボリュームＶＶＯＬの全データブロック３４に対して、ステップＳＰ１３４において検出したパリティグループ３１のチャンク３３を１チャンク分ずつ割り当てる（ＳＰ１３５）。そして、コントローラ２０２は、この後、このチャンク事前割当て処理を終了する。
【０２３０】
以上のように本実施の形態による計算機システム２００では、重要度が「高」又は「中」の仮想ボリュームＶＶＯＬを作成した段階で、その仮想ボリュームＶＶＯＬの各データブロック３４（図３）に対してそれぞれ事前にチャンク３３を割り当てるため、例えばコントローラ２０２が上述したプール残容量監視処理のような煩雑な処理を行う必要がなく、その分コントローラ２０２の負荷を低減することができる。従って、例えば性能が低いストレージ装置において、プール残容量監視処理に起因するデータ入出力処理の性能の低下を未然にかつ有効に防止することができる。
【０２３１】
（４）他の実施の形態
なお上述の第１〜第３の実施の形態においては、本発明を図１のように構成された計算機システム１，１００，２００に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の計算機システムに広く適用することができる。
【０２３２】
また上述の第１〜第３の実施の形態においては、仮想ボリュームＶＶＯＬの重要度を「高」、「中」及び「低」の３段階に分けるようにした場合について述べたが、本発明はこれに限らず、２段階又は４段階以上に分けるようにしても良い。
【０２３３】
同様に、上述の第１〜第３の実施の形態においては、パリティグループの品質レベルを「高」、「中」及び「低」の３段階に分けるようにした場合について述べたが、本発明はこれに限らず、２段階又は４段階以上に分けるようにしても良い。
【０２３４】
さらに上述の実施の形態においては、仮想ボリュームＶＶＯＬにそれぞれ設定された重要度を管理する管理部を、ストレージ装置４のコントローラ１１，１０２，２０２と、仮想ボリューム制御プログラム４０とにより構成し、仮想ボリュームＶＶＯＬに記憶領域（チャンク３３）を動的に割り当てる記憶領域割当て部を、かかるコントローラ１１，１０２，２０２と、チャンク割当てプログラム４１、重要度高ボリューム割当てプログラム４２，１２０、重要度中ボリューム割当てプログラム４３，１２１及び重要度低ボリューム割当てプログラム４３，１２２により構成し、仮想ボリュームＶＶＯＬに割り当てられた記憶領域（チャンク３３）に対するホスト装置（ホスト計算機２）からのデータの読み書きを制御する制御部を、コントローラ１１，１０２，２０２により構成するようにした場合について述べたが、本発明はこれに限らず、これら管理部、記憶領域割当て部及び制御部の構成としては、この他種々の構成を広く適用することができる。
【産業上の利用可能性】
【０２３５】
本発明は、ＡＯＵ機能が搭載されたストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０２３６】
【図１】第１〜第３の実施の形態による計算機システムの全体構成を示すブロック図である。
【図２】ストレージ装置における記憶領域の管理方式の説明に供する概念図である。
【図３】ＡＯＵ機能の説明に供する概念図である。
【図４】ストレージ装置のメモリに格納された各種プログラム及び各種テーブルの説明に供するブロック図である。
【図５】実ボリューム管理テーブルを示す図表である。
【図６】仮想ボリューム管理テーブルを示す図表である。
【図７】割当てチャンク管理テーブルを示す図表である。
【図８】プール管理テーブルを示す図表である。
【図９】パリティグループ管理テーブルを示す図表である。
【図１０】仮想ボリューム作成画面を示す略線図である。
【図１１】アクセス要求受付け処理の処理手順を示すフローチャートである。
【図１２】チャンク割当て処理の処理手順を示すフローチャートである。
【図１３】重要度高ボリューム割当て処理の処理手順を示すフローチャートである。
【図１４】重要度高ボリューム割当て処理の説明に供する図表である。
【図１５】重要度高ボリューム割当て処理の説明に供する図表である。
【図１６】重要度高ボリューム割当て処理の説明に供する図表である。
【図１７】重要度高ボリューム割当て処理の説明に供する図表である。
【図１８】重要度高ボリューム割当て処理の説明に供する図表である。
【図１９】重要度高ボリューム割当て処理の説明に供する図表である。
【図２０】仮想ボリューム移行処理の処理手順を示すフローチャートである。
【図２１】重要度中ボリューム割当て処理の処理手順を示すフローチャートである。
【図２２】重要度低ボリューム割当て処理の処理手順を示すフローチャートである。
【図２３】プール残容量監視テーブルを示す図表である。
【図２４】プール残容量監視処理の処理手順を示すフローチャートである。
【図２５】チャンク再割当て処理の説明に供する概念図である。
【図２６】チャンク再割当て処理の説明に供する概念図である。
【図２７】チャンク再割当て処理の説明に供する概念図である。
【図２８】チャンク再割当て処理の処理手順を示すフローチャートである。
【図２９】障害ボリューム復旧処理の処理手順を示すフローチャートである。
【図３０】重要度高ボリューム復旧処理の処理手順を示すフローチャートである。
【図３１】第２の実施の形態によるチャンク割当て処理の説明に供する図表である。
【図３２】第２の実施の形態による仮想ボリューム管理テーブルを示す図表である。
【図３３】第２の実施の形態によるプール管理テーブルを示す図表である。
【図３４】第２の実施の形態による仮想ボリューム作成画面を示す略線図である。
【図３５】第２の実施の形態による重要度高ボリューム割当て処理の処理手順を示すフローチャートである。
【図３６】第２の実施の形態による重要度中ボリューム割当て処理の処理手順を示すフローチャートである。
【図３７】重要度低ボリューム割当て処理の処理手順を示すフローチャートである。
【図３８】チャンク事前割当て処理の処理手順を示すフローチャートである。
【図３９】チャンク事前割当てプログラムの説明に供する概念図である。
【符号の説明】
【０２３７】
１，１００，２００……計算機システム、２……ホスト計算機、４，１０１，２０１……ストレージ装置、５，１１０……管理計算機、１１，１０２，２０２……コントローラ、１２，２０……ＣＰＵ、１３，２１……メモリ、２４，１１１……仮想ボリューム作成用入出力プログラム、３０……ハードディスク、３１……パリティグループ、３２……プール、３３……チャンク、３４……データブロック、４０……仮想ボリューム制御プログラム、４１……チャンク割当てプログラム、４２，１２０……重要度高ボリューム割当てプログラム、４３，１２１……重要度中ボリューム割当てプログラム、４４，１２２……重要度低ボリューム割当てプログラム、４５……仮想ボリューム移行プログラム、４６……プール残容量監視プログラム、４７……チャンク再配置プログラム、４８……障害ボリューム復旧プログラム、５０……実ボリューム管理テーブル、５１，１０３……仮想ボリューム管理テーブル、５２……割当てチャンク管理テーブル、５３，１０４……プール管理テーブル、５４……パリティグループテーブル、５５……プール残容量監視テーブル、６０，１１２……仮想ボリューム作成画面、２０３……チャンク事前割当てプログラム、ＲＶＯＬ……実ボリューム、ＶＶＯＬ……仮想ボリューム、ＰＬＶＯＬ……プールボリューム。
【図１】
2009282800.tif 000003
【図２】
2009282800.tif 000004
【図３】
2009282800.tif 000005
【図４】
2009282800.tif 000006
【図５】
2009282800.tif 000007
【図６】
2009282800.tif 000008
【図７】
2009282800.tif 000009
【図８】
2009282800.tif 000010
【図９】
2009282800.tif 000011
【図１０】
2009282800.tif 000012
【図１１】
2009282800.tif 000013
【図１２】
2009282800.tif 000014
【図１３】
2009282800.tif 000015
【図１４】
2009282800.tif 000016
【図１５】
2009282800.tif 000017
【図１６】
2009282800.tif 000018
【図１７】
2009282800.tif 000019
【図１８】
2009282800.tif 000020
【図１９】
2009282800.tif 000021
【図２０】
2009282800.tif 000022
【図２１】
2009282800.tif 000023
【図２２】
2009282800.tif 000024
【図２３】
2009282800.tif 000025
【図２４】
2009282800.tif 000026
【図２５】
2009282800.tif 000027
【図２６】
2009282800.tif 000028
【図２７】
2009282800.tif 000029
【図２８】
2009282800.tif 000030
【図２９】
2009282800.tif 000031
【図３０】
2009282800.tif 000032
【図３１】
2009282800.tif 000033
【図３２】
2009282800.tif 000034
【図３３】
2009282800.tif 000035
【図３４】
2009282800.tif 000036
【図３５】
2009282800.tif 000037
【図３６】
2009282800.tif 000038
【図３７】
2009282800.tif 000039
【図３８】
2009282800.tif 000040
【図３９】
2009282800.tif 000041