(57)【要約】      （修正有）【課題】論理ボリュームに対する負荷を分散させて全体として動的な負荷分散又は性能拡張を行うことが可能なストレージ装置及びその制御方法を提案する。【解決手段】ボリュームの負荷状況の測定結果に基づいて、負荷が既定値を超えるボリュームの内容を予備ボリュームにコピーすると共に、コピー元のボリューム及びコピー先の予備ボリュームを１つの仮想ボリュームに対応付けて上位装置に提供し、上位装置から仮想ボリュームに対するデータの読出し処理を伴うライト要求が与えられたときには、データを当該仮想ボリュームに対応付けられたすべてのボリューム及び予備ボリュームに当該データを書き込み、仮想ボリュームに対するリード要求が与えられたときには、当該既定のボリューム又は予備ボリューム以外のボリューム又は予備ボリュームから対応するデータを読み出すようにした。【選択図】図２
2007328734.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からのデータを記憶する１又は複数のボリューム並びに１又は複数の予備的なボリュームでなる予備ボリュームを提供する記憶部と、
上位装置からのリード要求及びライト要求に応答して、前記ボリュームに対するデータの読書き制御を行う制御部と
を備え、
前記制御部は、
前記上位装置及び前記記憶部間で転送されるデータ量及びコマンド処理量に基づいて、前記ボリュームの負荷状況を測定し、
前記ボリュームの負荷状況の測定結果に基づいて、負荷が既定値を超える前記ボリュームの内容を１又は複数の前記予備ボリュームにコピーすると共に、コピー元の前記ボリューム及びコピー先の前記予備ボリュームを１つの仮想ボリュームに対応付けて、当該仮想ボリュームを前記上位装置に提供し、
前記上位装置から前記仮想ボリュームに対するデータの読出し処理を伴うライト要求が与えられたときには、当該仮想ボリュームと対応付けられた既定の前記ボリューム又は前記予備ボリュームから前記データを読み出すと共に、前記上位装置からのデータを当該仮想ボリュームに対応付けられたすべての前記ボリューム及び前記予備ボリュームに当該データを書き込み、前記仮想ボリュームに対するリード要求が与えられたときには、前記仮想ボリュームと対応付けられた前記ボリューム及び前記予備ボリュームのうち、当該既定のボリューム又は予備ボリューム以外の前記ボリューム又は前記予備ボリュームから対応するデータを読み出す
ことを特徴とするストレージ装置。
【請求項２】
前記ライト要求に伴う前記データの読出し処理は、
前記上位装置からのデータを対応する前記ボリューム及び前記予備ボリュームにライトする前に、既定の前記ボリューム又は前記予備ボリュームから必要なデータを読み出し、当該データを加工又は変更した後に当該既定のボリューム又は予備ボリュームに書き込みを行うリード／モディファイ／ライト処理である
ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記既定のボリューム又は前記予備ボリュームから必要なデータを読み出し、当該データを加工又は変更した後に、当該加工又は変更した前記データをすべての当該既定のボリューム又は予備ボリュームに書き込みを行う
ことを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記コピー元のボリュームの負荷が前記既定値以下となった場合に、当該ボリューム又は同じ前記仮想ボリュームと対応付けられた１つの前記予備ボリューム以外の前記ボリューム又は前記予備ボリュームを解除する
ことを特徴とする請求項１記載のストレージ装置。
【請求項５】
上位装置からのデータを記憶する１又は複数のボリュームと、１又は複数の予備的なボリュームでなる予備ボリュームとを提供すると共に、上位装置からのリード要求及びライト要求に応答して、前記ボリュームに対するデータの読書き制御を行うストレージ装置の制御方法において、
前記上位装置及び前記記憶部間で転送されるデータ量及びコマンド処理量に基づいて、前記ボリュームの負荷状況を測定する第１のステップと、
前記ボリュームの負荷状況の測定結果に基づいて、負荷が既定値を超える前記ボリュームの内容を１又は複数の前記予備ボリュームにコピーすると共に、コピー元の前記ボリューム及びコピー先の前記予備ボリュームを１つの仮想ボリュームに対応付けて、当該仮想ボリュームを前記上位装置に提供する第２のステップと、
前記上位装置から前記仮想ボリュームに対するデータの読出し処理を伴うライト要求が与えられたときには、当該仮想ボリュームと対応付けられた既定の前記ボリューム又は前記予備ボリュームから前記データを読み出すと共に、前記上位装置からのデータを当該仮想ボリュームに対応付けられたすべての前記ボリューム及び前記予備ボリュームに当該データを書き込み、前記仮想ボリュームに対するリード要求が与えられたときには、前記仮想ボリュームと対応付けられた前記ボリューム及び前記予備ボリュームのうち、当該既定のボリューム又は予備ボリューム以外の前記ボリューム又は前記予備ボリュームから対応するデータを読み出す第３のステップと
を備えることを特徴とするストレージ装置の制御方法。
【請求項６】
前記ライト要求に伴う前記データの読出し処理は、
前記上位装置からのデータを対応する前記ボリューム及び前記予備ボリュームにライトする前に、既定の前記ボリューム又は前記予備ボリュームから必要なデータを読み出し、当該データを加工又は変更した後に当該既定のボリューム又は予備ボリュームに書き込みを行うリード／モディファイ／ライト処理である
ことを特徴とする請求項５記載のストレージ装置の制御方法。
【請求項７】
前記第３のステップでは、
前記既定のボリューム又は前記予備ボリュームから必要なデータを読み出し、当該データを加工又は変更した後に、当該加工又は変更した前記データをすべての当該既定のボリューム又は予備ボリュームに書き込みを行う
ことを特徴とする請求項６記載のストレージ装置の制御方法。
【請求項８】
前記コピー元のボリュームの負荷が前記既定値以下となった場合に、当該ボリューム又は同じ前記仮想ボリュームと対応付けられた１つの前記予備ボリューム以外の前記ボリューム又は前記予備ボリュームを解除する第４のステップを備える
ことを特徴とする請求項５記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びストレージ装置の制御方法に関し、特にホスト装置からの論理ユニットに対する負荷の分散に適用して好適なものである。
【背景技術】
【０００２】
近年、Ｗｅｂサーバやコンテンツ配信などによるストレージコンソリデーションの時流の中で、複数のアプリケーションやコンテンツによりストレージ装置がシェアされ、各アプリケーションなどによるストレージ装置の論理ボリュームに対する負荷状況の予想がつかないシステムが増えてきている。
【０００３】
このような状況のもと、近年では、ストレージ装置のスループット向上のため、ある論理ユニットに他の論理ユニットのデータを記憶させ、多くの情報を記憶させた論理ユニットから参照できるようにし、スループットの向上を行うことが提案されている（特許文献１参照）。
【０００４】
さらには、ストレージ装置において、物理ディスクドライブにより提供されるに設定される論理的な記憶領域である論理ボリュームの負荷状況を測定し、測定結果に基づいて負荷が高いと判断されたときには物理ボリュームに設定された論理ボリュームの内容を予備物理ボリュームに設定された論理ボリュームにコピーし、予備物理ボリュームに設定されたコピーされた論理ボリュームとコピー元の物理ボリュームに設定された論理ボリュームとを一つの仮想論理ボリュームとしてホスト装置に対し提供し、ホストからの負荷を分散させることが提案されており、さらにホスト装置からのデータの読み出し時において、仮想論理ボリュームのうち、もっとも負荷の少ない論理ボリュームにアクセスすることにより負荷の分散を図ることが提案されている。（特許文献２参照）。
【０００５】
そして、この方法によれば、Ｗｅｂサーバやコンテンツ配信などの時系列に変化する予測のつかないピーク性能要求に対して、動的な負荷分散又は性能拡張を行うことができるストレージ装置を提供することが可能となる。
【０００６】
【特許文献１】特開２００３−２４１９０５号公報
【特許文献２】特開２００６−０５３６０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、この方法によっては、もっとも負荷の少ない論理ボリュームにアクセスすることにより負荷の分散を図ることは提案されていたが、論理ボリュームそのものに対する負荷を分散させることによって個々の論理ボリュームに対する負荷を分散し、結果として論理ボリューム全体としての負荷分散又は性能拡張を行うことについては配慮がなされていなかった。
【０００８】
本発明は、以上の点を考慮したもので、ストレージ装置において、論理ボリュームそのものに対する負荷を分散させることによって個々の論理ボリュームに対する負荷を分散し、結果として論理ボリューム全体としての負荷分散又は性能拡張を行うことができるストレージ装置及びストレージ装置の制御方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために本発明においては、ストレージ装置において、上位装置からのデータを記憶する１又は複数のボリューム並びに１又は複数の予備的なボリュームでなる予備ボリュームを提供する記憶部と、上位装置からのリード要求及びライト要求に応答して、前記ボリュームに対するデータの読書き制御を行う制御部とを備え、前記制御部は、前記上位装置及び前記記憶部間で転送されるデータ量及びコマンド処理量に基づいて、前記ボリュームの負荷状況を測定し、前記ボリュームの負荷状況の測定結果に基づいて、負荷が既定値を超える前記ボリュームの内容を１又は複数の前記予備ボリュームにコピーすると共に、コピー元の前記ボリューム及びコピー先の前記予備ボリュームを１つの仮想ボリュームに対応付けて、当該仮想ボリュームを前記上位装置に提供し、前記上位装置から前記仮想ボリュームに対するデータの読出し処理を伴うライト要求が与えられたときには、当該仮想ボリュームと対応付けられた既定の前記ボリューム又は前記予備ボリュームから前記データを読み出すと共に、前記上位装置からのデータを当該仮想ボリュームに対応付けられたすべての前記ボリューム及び前記予備ボリュームに当該データを書き込み、前記仮想ボリュームに対するリード要求が与えられたときには、前記仮想ボリュームと対応付けられた前記ボリューム及び前記予備ボリュームのうち、当該既定のボリューム又は予備ボリューム以外の前記ボリューム又は前記予備ボリュームから対応するデータを読み出すことを特徴とする。
【００１０】
この結果、このストレージ装置によれば、上位装置からのリード要求に応じて対応するデータをリードするボリューム又は予備ボリュームと、上位装置からのデータのリードを伴うライト要求に応じて必要なデータをリードするボリューム又は予備ボリュームとを分けることができ、同じ仮想ボリュームに対応付けられたボリューム及び予備ボリューム間における負荷分散を図ることができる。
【００１１】
また本発明においては、上位装置からのデータを記憶する１又は複数のボリュームと、１又は複数の予備的なボリュームでなる予備ボリュームとを提供すると共に、上位装置からのリード要求及びライト要求に応答して、前記ボリュームに対するデータの読書き制御を行うストレージ装置の制御方法において、前記上位装置及び前記記憶部間で転送されるデータ量及びコマンド処理量に基づいて、前記ボリュームの負荷状況を測定する第１のステップと、前記ボリュームの負荷状況の測定結果に基づいて、負荷が既定値を超える前記ボリュームの内容を１又は複数の前記予備ボリュームにコピーすると共に、コピー元の前記ボリューム及びコピー先の前記予備ボリュームを１つの仮想ボリュームに対応付けて、当該仮想ボリュームを前記上位装置に提供する第２のステップと、前記上位装置から前記仮想ボリュームに対するデータの読出し処理を伴うライト要求が与えられたときには、当該仮想ボリュームと対応付けられた既定の前記ボリューム又は前記予備ボリュームから前記データを読み出すと共に、前記上位装置からのデータを当該仮想ボリュームに対応付けられたすべての前記ボリューム及び前記予備ボリュームに当該データを書き込み、前記仮想ボリュームに対するリード要求が与えられたときには、前記仮想ボリュームと対応付けられた前記ボリューム及び前記予備ボリュームのうち、当該既定のボリューム又は予備ボリューム以外の前記ボリューム又は前記予備ボリュームから対応するデータを読み出す第３のステップとを備えることを特徴とする。
【００１２】
この結果、このストレージ装置の制御方法によれば、上位装置からのリード要求に応じて対応するデータをリードするボリューム又は予備ボリュームと、上位装置からのデータのリードを伴うライト要求に応じて必要なデータをリードするボリューム又は予備ボリュームとを分けることができ、同じ仮想ボリュームに対応付けられたボリューム及び予備ボリューム間における負荷分散を図ることができる。
【発明の効果】
【００１３】
本発明によれば、論理ボリュームそのものに対する負荷を分散させることによって個々の論理ボリュームに対する負荷を分散し、結果として論理ボリューム全体としての負荷分散又は性能拡張を行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
（１）第１の実施の形態
以下、図面について本発明の第１の実施の形態を詳述する。なお、本第１の実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１５】
（１−１）第１の実施の形態によるストレージ装置の構成
図１において、１５は全体として第１の実施の形態による記憶システムを示す。この記憶システム１５は、ホスト装置１及びストレージ装置２が直接的又はＳＡＮ（Storage Area Network）等のネットワークを介して間接的に接続されることにより構成されている。
【００１６】
図１において、２は全体として第１の実施の形態によるストレージ装置を示す。このストレージ装置２は、上位装置であるホスト装置１と接続されることにより構成されている。
【００１７】
上位装置としてのホスト装置１は、図示しないＣＰＵ（Central Processing Unit）や図示しないメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト装置１は、例えばキーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、例えばモニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えている。
【００１８】
ストレージ装置２は、図１に示すように、データを記憶する複数の物理ディスクドライブ１４からなる物理ボリュームＶＯＬ及び予備物理ボリュームＶＯＬを備える記憶装置４と、記憶装置４に対するデータの入出力を制御するストレージ制御装置３とから構成される。
【００１９】
物理ディスクドライブ１４は、例えばハードディスクドライブなどのデータ記憶媒体などから構成される。これら物理ディスクドライブ１４は、ストレージ制御装置３によりレイド（ＲＡＩＤ：Redundant Arrays of Inexpensive Disks）方式で運用される。
【００２０】
１又は複数の物理ディスクドライブ１４により提供される物理的な記憶領域である物理ボリュームＶＯＬ上に、１又は複数の論理的なユニット（以下、これを論理ユニットと呼ぶ）ＬＵが設定される。そしてホスト装置１からのデータは、この論理ユニットＬＵ内に所定の大きさのブロック（以下、これを論理ブロックと呼ぶ）を単位として記憶される。これによりホスト装置１に対して大容量の記憶領域を提供することができる。
【００２１】
各論理ユニットＬＵには、それぞれ固有の論理ユニットＬＵ番号が付与される。第１の実施の形態の場合、データの入出力は、この論理ユニットＬＵ番号と、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（以下、これをＬＢＡ（Logical Block Address）と呼ぶ）との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２２】
一方、ストレージ制御装置３は、ＣＰＵ１０、制御メモリ５、ホストＩ／Ｆ（Interface）制御部６、データ転送プログラム７、ディスクＩ／Ｆ制御部８及びキャッシュメモリ９等を備えて構成される。ストレージ制御装置３は、ネットワーク等を介してホスト装置１等と接続される。
【００２３】
ＣＰＵ１０は、後述する制御メモリ５内の情報に基づいて、ホストＩ／Ｆ制御部６、ディスクＩ／Ｆ制御部８及びデータ転送プログラム７を制御し、ホスト装置１からのライトアクセス要求やリードアクセス要求に応答した物理ディスクドライブ１４へのデータ入出力処理等の各種処理をも制御するプロセッサである。
【００２４】
制御メモリ５は各種制御プログラムを保持するために使用されるほか、ＣＰＵ１０のワークメモリとしても用いられる。後述する制御テーブル１１、性能測定プログラム１２及びコピープログラム１３等もこの制御メモリ５に格納される。
【００２５】
ホストＩ／Ｆ制御部６は、ストレージ装置２とホスト装置１との間で通信を行うための通信インタフェースを備え、ホスト装置１との間でデータ入出力コマンド等を授受する機能を備える。
【００２６】
ディスクＩ／Ｆ制御部８は、データを記憶する複数の物理ディスクドライブ１４と通信可能に接続され、記憶装置４の制御を行う。データ転送プログラム７は、ホスト装置１と記憶装置４との間のデータ転送処理を行う。キャッシュメモリ９は、ホスト装置１と記憶装置４との間で送受信されるデータを一時的に格納する。
【００２７】
（１−２）第１の実施の形態によるストレージ装置２の負荷分散機能
（１−２−１）負荷分散処理機能の概要
次に、本実施の形態によるストレージ装置２に搭載された分散処理機能の概要について説明する。図２は本発明の第１の実施の形態に係るストレージ装置２の負荷分散処理機能を説明するための説明図である。
【００２８】
図２において、ストレージ制御装置３は、記憶装置４内部の物理ボリュームＶＯＬ及び予備物理ボリュームＶＯＬを構成する各論理ユニットＬＵを実論理ユニットＬＵとして管理し、さらに、ホスト装置１に対して、複数の論理ユニットＬＵを１つの仮想化された論理ユニット（以下、これを仮想論理ユニットといい、これとの対比において、仮想化されない通常の論理ユニットを以下、適宜、実論理ユニットという）ＬＵとして提供する機能を備えている。
【００２９】
すなわち、ストレージ制御装置３は、物理ボリュームＶＯＬ内の論理ユニットＬＵと、後述の制御メモリ５内に格納されたコピープログラム１３により、かかる論理ユニットＬＵに格納されたデータをコピーした予備物理ボリュームＶＯＬ内の論理ユニットＬＵ（以下、このようにコピーして作成された論理ユニットＬＵを、ミラー論理ユニットＬＵという）とを、１つの仮想論理ユニットＬＵとしてホスト装置１に認識させることができる。
【００３０】
これにより、ホスト装置１側では、仮想論理ユニットＬＵとして提供される論理ユニットＬＵに対してデータのアクセス処理を行うことになり、ストレージ制御装置３内の実論理ユニットＬＵの構成を認識することなく、コピープログラム１３により多重化されたミラー論理ユニットＬＵに対するアクセスを行うことができる。
【００３１】
ストレージ制御装置３は、物理ボリュームＶＯＬ内の論理ユニットＬＵがそれぞれ、通常のアクセス状態の場合には、その各論理ユニットＬＵの実論理ユニットＬＵをそのまま、仮想論理ユニットＬＵとして、ホスト装置１に対して提供する。
【００３２】
そして、性能測定プログラム１２では、各論理ユニットＬＵに対してデータ転送プログラム７により処理されているデータ量を測定し、各論理ユニットＬＵに対する処理能力を測定する。
【００３３】
また、ストレージ制御装置３は、ストレージ装置２のユーザに、物理ボリュームＶＯＬ内の論理ユニットＬＵと同一の論理ユニットＬＵのコピーであるミラー論理ユニットＬＵを予備物理ボリュームＶＯＬ内に作成するときの、コピー作成開始の閾値を設定させる。ここで設定する閾値としては、例えば、論理ユニットＬＵの限界性能に対する負荷率（％）が挙げられる。
【００３４】
そして、論理ユニットＬＵに対する負荷が高まり、かかる閾値を超えた場合に、自動的に論理ユニットＬＵのコピーであるミラー論理ユニットＬＵを作成する。この予備物理ボリュームＶＯＬ内に作成される、物理ボリュームＶＯＬ内の論理ユニットＬＵのコピーであるミラー論理ユニットＬＵは、論理ユニットＬＵに対する負荷状態によっては、２重だけではなく、３重、４重など多重に作成してもよい。
【００３５】
また、ストレージ制御装置３が、物理ボリュームＶＯＬ内の論理ユニットＬＵのミラー論理ユニットＬＵを自動的に作成するのではなく、ユーザが、ストレージ装置２からの情報に基づき、コピー開始指示を出すことも可能である。具体的には、ユーザは、ある時点までの性能の負荷のヒストリ情報から、今後の性能増加を予測し、コピー時間を見越して、前もってコピーを開始する指示を出してもよい。又は、定期的に高負荷時間が発生する運用形態では、タイマを起動させ、定期的に、高負荷時間の開始時にコピー開始指示を出すことも可能である。
【００３６】
なお、ミラー論理ユニットＬＵを作成しようとするときに、すでに他の論理ユニットＬＵがミラー論理ユニットＬＵを使用していて新たなミラー論理ユニットＬＵを作成する空きがないときには、一番負荷の低い論理ユニットＬＵやミラー作成優先順位の低い論理ユニットＬＵのミラーを解除し、それにより生じた空きミラー領域を使用する。
【００３７】
このように予備物理ボリュームＶＯＬ内に論理ユニットＬＵをコピーして作成されたミラー論理ユニットＬＵと、物理ボリュームＶＯＬ内の論理ユニットＬＵとは、仮想論理ユニットＬＵとして、ホスト装置１側では同一の論理ユニットＬＵとして認識される。
【００３８】
この結果、ホスト装置１からの仮想論理ユニットＬＵに対するデータのアクセスに対しては、物理ボリュームＶＯＬ内の実論理ユニットＬＵと、予備物理ボリュームＶＯＬ内の１又は複数の実論理ユニットＬＵとにアクセスを分散することが可能になる。このため、ホスト装置１からのアクセスにより物理ボリュームＶＯＬ内の論理ユニットＬＵの処理能力が限界になった場合でも、かかる論理ユニットＬＵの性能を拡張させることができる。さらに、ホスト装置１に対しては、論理ユニットＬＵのコピー処理などを認識させることなく、通常の論理ユニットＬＵと同様にデータアクセス処理を行うことが可能である。
【００３９】
ストレージ制御装置３は、論理ユニットＬＵに対する負荷が緩和し、あらかじめユーザに設定させたミラー解除の閾値を越えたときには、ミラー論理ユニットＬＵを解除して、負荷分散処理を終了する。なお、ミラー論理ユニットＬＵは、論理ユニットＬＵに対する負荷が低負荷になったら自動的に解除してもよいが、ユーザが、ストレージ装置２からの情報に基づき、解除指示を出すようにしてもよい。又は、定期的に高負荷時間が発生する運用形態では、タイマを起動させ、高負荷時間の終了時にミラー論理ユニットＬＵの解除を行うことも可能である。
【００４０】
図２に示す例では、物理ボリュームＶＯＬ内の論理ユニットＬＵ２に対するデータ量が、論理ユニットＬＵ２の限界性能値に基づいて設定されたしきい値を超えた例を示している。この場合、性能測定プログラム１２は、コピープログラム１３に対して、物理ボリュームＶＯＬ内の実論理ユニットＬＵ２のデータを予備物理ボリュームＶＯＬ内の実論理ユニットＬＵへコピーするよう指示を出力し、論理ユニットＬＵ２のコピーを予備物理ボリュームＶＯＬ内の論理ユニットＬＵである論理ユニットＬＵ３及び論理ユニットＬＵ４に作成させる。
【００４１】
この結果、物理ボリュームＶＯＬ内の論理ユニットＬＵ２と、予備物理ボリュームＶＯＬ内に新たにコピーして作成されたミラー論理ユニットＬＵ、すなわち論理ユニットＬＵ３及び論理ユニットＬＵ４とは、仮想論理ユニットＬＵとして、物理ボリュームＶＯＬ内の論理ユニットＬＵ２と同一の論理ユニットＬＵとしてホスト装置１側において認識される。
【００４２】
ホスト装置１からの仮想論理ユニットＬＵに対するデータのアクセスに対しては、物理ボリュームＶＯＬ内の論理ユニットＬＵ２と、予備物理ボリュームＶＯＬ内の論理ユニットＬＵ３及び論理ユニットＬＵ４とにアクセスが分散されることにより、ホスト装置１からのアクセスにより論理ユニットＬＵ２の処理能力が限界になった場合でも、かかる論理ユニットＬＵ２の性能を拡張させることができ、さらに、ホスト装置１に対しては、実論理ユニットＬＵ内でのＬＵのコピー処理などを認識させることなく通常の処理と同様にデータアクセス処理を行うことが可能である。
【００４３】
以下、このように作成されたミラー論理ユニットＬＵに対して、特に読み出し（リード）及び書き込み（ライト）処理を行う際の負荷分散処理について説明する。
【００４４】
まず、ストレージ装置２の論理ユニットＬＵへの書き込み（ライト）処理の動作について説明する。第１の実施の形態では、論理ユニットＬＵに対するライト処理では、ライトのホストアクセスに対して、物理ボリュームＶＯＬ内の論理ユニットＬＵと、物理ボリュームＶＯＬ内の論理ユニットＬＵがコピーされた予備物理ボリュームＶＯＬ内の論理ユニットＬＵの全てにアクセスし、全ての論理ユニットＬＵのデータを更新する方法、又は、ライトのホストアクセスに対して、物理ボリュームＶＯＬ内のオリジナルの論理ユニットＬＵにアクセスし、オリジナルの論理ユニットＬＵのみのデータを更新し、更新されたことを示す論理ユニットＬＵ更新管理情報（論理ユニットＬＵ更新管理ビットマップ）を、例えば、制御テーブル１１内に格納し、論理ユニットＬＵ更新管理情報により、読み取り（リード）時には、更新されたデータについては、物理ボリュームＶＯＬ内のオリジナルの論理ユニットＬＵにアクセスする方法の２つの処理のどちらかの処理を用いている。
【００４５】
まず、物理ボリュームＶＯＬ内の論理ユニットＬＵと、物理ボリュームＶＯＬ内の論理ユニットＬＵがコピーされた予備物理ボリュームＶＯＬ内の論理ユニットＬＵとの全てにアクセスする場合には、仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照し、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する。
【００４６】
ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないときには、マッピング先の論理ユニットＬＵにアクセスする。一方、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているときには、全てのマッピング先の論理ユニットＬＵにアクセスする。
【００４７】
次に、ストレージ装置２の論理ユニットＬＵへのリード処理の動作について説明する。ストレージ装置２の論理ユニットＬＵへのリード処理としては、まず、ライト処理のときと同様に、制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照して、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する。
【００４８】
当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないときには、マッピング先の論理ユニットＬＵにアクセスする。一方、当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているときには、マッピング先論理ユニットＬＵに対応する制御テーブル１１内の性能監視テーブル３０の情報を参照し、最も負荷の小さいマッピング先の論理ユニットＬＵにアクセスする。負荷分散の方法には、シーケンシャル性を判断して、各物理ボリュームＶＯＬへのアクセスのシーケンシャル性を保って、ドライブの限界転送性能を引き出す方法などもあり、アプリケーションに合わせてふさわしい負荷分散アルゴリズムを使用する。
【００４９】
以上のように、ライト処理及びリード処理を行った結果、ホスト装置１は、最も負荷の小さいマッピング先論理ユニットＬＵにアクセスすることになるので、論理ユニットＬＵに対する負荷を分散することができる。
【００５０】
リード処理においては、このように負荷のもっとも低い論理ユニットＬＵを選択してアクセスするほか、先にリード処理が行われた論理ユニットＬＵとは別の論理ユニットＬＵを選択してアクセスすることにより、負荷を分散することもできる。
【００５１】
すなわち、先にリード処理が行われた論理ユニットＬＵと、後からリード処理を行う論理ユニットＬＵとが異なる論理ユニットＬＵとなれば、論理ユニットＬＵ毎に役割分担が図られることとなる。
【００５２】
個々の論理ユニットＬＵが異なる役割分担を担うと、特定の１の論理ユニットＬＵに処理による負荷が集中することがなくなる。従来１の論理ユニットＬＵが行っていた役割を多数の論理ユニットＬＵが分担して行うことから、個々の論理ユニットＬＵごとにかかる負荷が減少し、個々の論理ユニットＬＵの応答速度が速くなる。
【００５３】
なお、このようなリード読み出し処理を行う場合、必ずしも個々の論理ユニットＬＵの負荷状況をあらかじめ計測する必要はない。このため、負荷状況を計測し、その結果を考慮することなくデータの読み出し処理をさらに効率的かつスピーディに進めることができる。
【００５４】
以下、さらに、上述したライト処理及びリード処理のうち、特に、リード／モディファイ／ライト（Ｒｅａｄ／Ｍｏｄｉｆｙ／Ｗｒｉｔｅ）処理を行う場合のライト処理及びリード処理について説明する。
【００５５】
リード／モディファイ／ライト処理とは、ホスト装置からライト処理の指示を受けたストレージ装置３が、ライト（書き込み）処理に先立ち、メモリ／セルやレジスタの内容を独自にリード（読み出し）して、データをモディファイ（加工又は変更）した後に書き込みをする一連の処理をいう。例えば、デバイスの動作モードを変更するために、モード設定レジスタの特定ビットの内容だけを変更して、再設定する処理を行う場合などに用いられる。
【００５６】
かかるデータの読み出しと書き込みはバイト又はワード単位で行う。ホスト装置１からのアクセス要求がビット処理や論理演算のために必要な要求であるときには、バイト又はワード単位で読み出したデータのうち、指定されていないビットのデータは、何も変更あるいは加工されずにそのまま書き込まれる。
【００５７】
リード／モディファイ／ライト処理の具体例としては、例えば、ある特定の場所に格納されたデータをバイト単位で読みこみ、読み込んだデータのうち、指定されたビットを必要に応じて加工し、指定されていないビットのデータは加工せずそのままにした上で、元の指定された場所にデータを書き込む処理が挙げられる。
【００５８】
まず、上述したライト処理において、物理ボリュームＶＯＬ内の論理ユニットＬＵと、物理ボリュームＶＯＬ内の論理ユニットＬＵがコピーされた予備物理ボリュームＶＯＬ内の論理ユニットＬＵとの全てにアクセスする場合であって、かつ、仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照した結果、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされている場合に、以下のリード／モディファイ／ライト処理を行う。
【００５９】
まず、ホスト装置２からライト処理の指示を受けたストレージ装置３は、物理ボリュームＶＯＬ内に設定された論理ユニットＬＵ及び予備物理ボリュームＶＯＬ内に設定された論理ユニットＬＵの複数の論理ユニットＬＵの中のうち、いずれか１つの論理ユニットＬＵに対してのみ、リード／モディファイ／ライト（Ｒｅａｄ／Ｍｏｄｉｆｙ／Ｗｒｉｔｅ）処理のうちの、リード／モディファイ処理を行う。その後、ライト処理は、マッピング先論理ユニットＬＵの全ての論理ユニットＬＵに対して実行する。
【００６０】
リード／モディファイ処理を行う対象の論理ユニットＬＵは、物理ボリュームＶＯＬ内に設定された論理ユニットＬＵでも、予備物理ボリュームＶＯＬ内に設定された論理ユニットＬＵでも、いずれでもよい。
【００６１】
このように、１つの論理ユニットＬＵに対してのみ、リード／モディファイ／ライト処理のうちリード／モディファイ（Ｒｅａｄ／Ｍｏｄｉｆｙ）処理を行い、その後、マッピング先論理ユニットＬＵのライト処理を該当する全ての論理ユニットＬＵで実行すると、リード／モディファイ処理は全ての論理ユニットＬＵにおいて行う必要がない。
【００６２】
このため、リード／モディファイ処理がなされる１の論理ユニットＬＵを除いては、リード／モディファイ／ライト全ての処理を全論理ユニットＬＵあるいは複数の論理ユニットＬUで行う場合に比べ、論理ユニットＬU全体に対するアクセス負荷が軽減され、負荷の分散が実現される。
【００６３】
続いて、以下、リード／モディファイ／ライト処理を行った後の、ホスト装置２から論理ユニットＬＵに対するデータリード（読み出し）処理の動作についても説明する。リードのホストアクセスに対しては、リード／モディファイ／ライト処理が終了した論理ユニットＬＵのうち、リード／モディファイ処理が行われておらず、ライト処理のみが行われた論理ユニットＬＵからデータ読み出しを行う。
【００６４】
この結果、リード／モディファイ／ライト処理及びその後のデータの読み出し処理においては、リード／モディファイ処理を行う論理ユニットＬＵとデータ読み出し処理を行う論理ユニットＬＵとが異なる論理ユニットＬＵとなり、論理ユニットＬＵ毎に役割分担がされることになる。
【００６５】
個々の論理ユニットＬＵが異なる役割を担うと、特定の１の論理ユニットＬＵに負荷が集中することがなくなる。従来１の論理ユニットＬＵが行っていた役割を多数の論理ユニットＬＵが分担して行うことから、個々の論理ユニットＬＵごとにかかる負荷が減少し、個々の論理ユニットＬＵの応答速度が速くなる。特に、リード／モディファイ／ライト処理のような複雑な処理を行う場合に、論理ユニットＬＵに役割分担をさせると、全体として論理ユニットＬＵに対する負荷分散が効率的に実現できるようになる。
【００６６】
なお、このようなリード／モディファイ／ライト処理及びその後のデータの読み出し処理を行う場合、必ずしも個々の論理ユニットＬＵの負荷状況をあらかじめ計測する必要はない。このため、特に、リード／モディファイ／ライト処理のような複雑な処理を行う場合に、負荷状況を計測し、その結果を考慮することなくデータの読み出し処理をさらに効率的かつスピーディに進めることができる。
【００６７】
ただし、これは、必要に応じて負荷計測を行って、リード／モディファイ／ライト処理を行う論理ユニットＬＵと、リード／モディファイ／ライト処理を行う論理ユニットＬＵとして、全体として最も負荷の低い論理ユニットＬＵを選択し、その後データの読み出し処理においては、リード／モディファイ／ライト処理を行った論理ユニットＬＵとは異なる論理ユニットＬＵのうち、もっとも負荷の低い論理ユニットＬＵからデータの読み出しを行う、という処理を妨げるものではない。
【００６８】
（１−２−２）各テーブル及びプログラムの構成
以上のような負荷分散処理機能を実行するための手段として、ストレージ制御装置３は、図１及び図２に示すように、制御テーブル１１、性能測定プログラム１２及びコピープログラム１３を制御メモリ５内に保持している。
【００６９】
まず、制御テーブル１１の内容について、図３乃至図５を用いて説明する。制御テーブル１１は、仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０、性能監視テーブル３０及び予備物理ボリューム管理テーブル４０から構成される。
【００７０】
仮想ＬＵ−実ＬＵマッピングテーブル２０は、仮想論理ユニットＬＵと実論理ユニットＬＵとの対応関係を示すテーブルである。仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を用いることによって、仮想論理ユニットＬＵの管理を行い、ホスト装置１に対し、実論理ユニットＬＵを認識させることなく仮想論理ユニットＬＵを提供することが可能となる。
【００７１】
かかる仮想ＬＵ−実ＬＵマッピングテーブル２０は、図３に示すように、「仮想ＬＵ番号」フィールド２１、「マッピング済みＬＵ数」フィールド２２及び「実ＬＵ番号」フィールド２３から構成されている。
【００７２】
「仮想ＬＵ番号」フィールド２１には、仮想論理ユニットＬＵに設定された論理ユニットＬＵの論理ユニットＬＵ番号が格納される。また、「マッピング済みＬＵ数」フィールド２２には、ある仮想論理ユニットＬＵのブロックアドレスと実論理ユニットＬＵのブロックアドレスとの２つのデータアドレス空間間の変換（以下、マッピングという）がされている実論理ユニットＬＵの数が格納される。さらに、「実ＬＵ番号」フィールド２３には、仮想論理ユニットＬＵにマッピングされている実論理ユニットＬＵの論理ユニットＬＵ番号が格納される。
【００７３】
従って、図３の例では、例えば論理ユニットＬＵ番号が「LU0」の仮想論理ユニットＬＵに対しては、論理ユニットＬＵ番号が「LU0」の実論理ユニットＬＵが１つのみマッピングされていることが示されている。また、論理ユニット番号が「LU2」の仮想論理ユニットＬＵに対しては、論理ユニットＬＵ番号が「LU2」、「LU3」及び「LU4」の実論理ユニットＬＵが３つ、マッピングされていることが示されている。
【００７４】
性能監視テーブル３０は、実論理ユニットＬＵの負荷状況を示すテーブルである。この性能監視テーブル３０を用いることによって、あらかじめ論理ユニットＬＵの限界性能値に基づいて設定された閾値を参照し、実論理ユニットＬＵが過負荷状態であるかを判断することができる。
【００７５】
かかる性能監視テーブル３０は、図４に示すように、「実ＬＵ番号」フィールド３１、「単位時間当たりの処理コマンド数」フィールド３２及び「単位時間当たりの処理データ量」フィールド３３から構成される。
【００７６】
「実ＬＵ番号」フィールド３１には、性能を監視する対象となる実論理ユニットＬＵの論理ユニットＬＵ番号が格納される。「単位時間当たりの処理コマンド数」フィールド３２には、「実ＬＵ番号」フィールド３１に格納された実論理ユニットの論理ユニットＬＵ番号を有する実論理ユニットＬＵに対する単位時間（例えば１秒）当たりの処理コマンド数（トランザクション）の情報が格納される。また、「単位時間当たりの処理データ量」フィールド３３には、「実ＬＵ番号」フィールド３１に格納された実論理ユニットＬＵの論理ユニットＬＵ番号を有する実論理ユニットＬＵに対する単位時間（例えば１秒）当たりの処理データ量（スループット）の情報が構成されている。
【００７７】
従って、図４の例では、論理ユニットＬＵ番号が「LU0」から「LUn」までの論理ユニットＬＵに対する単位時間当たりの処理コマンド数及び単位当たりの処理データ量が示されている。例えば、論理ユニットＬＵ番号が「LU0」に対しての単位時間当たりの処理コマンド数は「ａ0」であり、単位当たりの処理データ量は「ｂ0」であることが示されている。そしてまた、任意の「LUn」の論理ユニットＬＵ番号が付された論理ユニットＬＵに対しての単位時間当たりの処理コマンド数は「ａn」であり、単位当たりの処理データ量は「ｂn」であることが示されている。
【００７８】
予備物理ボリュームＶＯＬ管理テーブル４０は、予備物理ボリュームＶＯＬ内で予備領域使用中の実論理ユニットＬＵを示すテーブルである。かかる予備物理ボリュームＶＯＬ管理テーブル４０は、図５に示すように、「予備領域使用中実ＬＵ番号」フィールド４１及び「コピー元実ＬＵ番号」フィールド４２から構成される。
【００７９】
「予備領域使用中実ＬＵ番号」フィールド４１には、予備物理ボリュームＶＯＬ域内において作成された実論理ユニットＬＵの論理ユニットＬＵ番号が格納される。一方、「コピー元実ＬＵ番号」フィールド４２には、かかる実論理ユニットＬＵのコピー元となった物理ボリュームＶＯＬ域内の実論理ユニットＬＵの論理ユニットＬＵ番号が格納される。
【００８０】
従って、図５の例では、例えば、予備物理ボリュームＶＯＬ領域を使用中である論理ユニットＬＵ番号が「LU3」の論理ユニットＬＵのコピー元は、論理ユニットＬＵ番号が「LU2」の論理ユニットＬＵであることが示されている。
【００８１】
次に、性能測定プログラム１２は、データ転送プログラム７でのデータ転送量（スループット）や処理コマンド数（トランザクション）などを測定するカウンタなどにより、記憶装置４の物理ボリュームＶＯＬに設定された論理ユニットＬＵに対する処理能力などを測定し、論理ユニットＬＵの限界性能値に基づいて設定された閾値値に基づき、予備物理ボリュームＶＯＬ内に、物理ボリュームＶＯＬ内に設定された論理ユニットＬＵのコピー、すなわちミラー論理ユニットＬＵを作成するかの判断を行う。
【００８２】
性能測定プログラム１２で使用するカウンタは、データ転送プログラム７に設けられたハードウエアを用いても、又はソフトウエアカウンタを用いて、データ転送プログラム７で処理されているデータ量などを測定するようにしてもよい。
【００８３】
コピープログラム１３は、性能測定プログラム１２の判断に基づいて、物理ボリュームＶＯＬ内の論理ユニットＬＵのコピー、すなわちミラー論理ユニットＬＵを、予備物理ボリュームＶＯＬ内に作成する。
【００８４】
なお、性能測定プログラム１２及びコピープログラム１３は、制御メモリ５内に格納するだけではなく、記憶装置４に格納し、その機能が実行されるようにしてもよい。
【００８５】
（１−２−３）ストレージ制御装置３内の表示部や管理端末における各種情報の表示及びユーザ端末６０のユーザインタフェース操作画面５０による操作
このストレージ装置２では、ユーザに対して、例えば、ストレージ制御装置３内の表示部や管理端末などに各種情報を表示することが可能に構成されている。
【００８６】
ストレージ制御装置３内の表示部や管理端末などには、例えば、論理ユニットＬＵ毎に、以下に示すような各種情報各種情報を表示する。
【００８７】
・限界性能値（スループット／トランザクション）
・負荷状況（スループット／トランザクション）及び限界性能に対する負荷率の経時変化（ヒストリ）
・ミラー論理ユニットＬＵ使用有無及び使用ミラー論理ユニットＬＵ数
・ミラー論理ユニットＬＵへの負荷状況
【００８８】
これらの表示内容により、ユーザは、各論理ユニットＬＵの限界性能や、各論理ユニットＬＵに対する負荷状況などを確認することができる。
【００８９】
また、例えば、パラメータ入力の内容としては、論理ユニットＬＵ毎に、以下に示す設定パラメータの項目を表示し、ユーザからのパラメータ入力を受け付ける。
【００９０】
・第１の実施の形態による論理ユニットＬＵ内部ミラーのＥｎａｂｌｅ／Ｄｉｓａｂｌｅの選択
・自動ミラー論理ユニットＬＵ作成／手動ミラー論理ユニットＬＵ作成／定時ミラー論理ユニットＬＵ作成のモード切替
・作成ミラー論理ユニットＬＵの上限値
・内部ミラー論理ユニットＬＵ作成開始及びミラー論理ユニットＬＵ解除の性能閾値（論理ユニットＬＵの限界性能に対するパーセンテージ）
・ミラー論理ユニットＬＵ作成優先順位
【００９１】
これらのパラメータ入力により、各論理ユニットＬＵに対するミラー作成の動作を設定することができる。
【００９２】
第１の実施の形態では、図１４においても示されるように、ユーザ端末６０が、ストレージ制御装置３に接続され、性能測定プログラム１２で測定された情報に基づいて、論理ユニットＬＵの過負荷を検出できるようになっている。
【００９３】
そして、ユーザが、その検出結果に基づいて、コピープログラム１３に対してコピー起動の指示を与えることにより、上述した物理ボリュームＶＯＬの論理ユニットＬＵから予備物理ボリュームＶＯＬの論理ユニットＬＵへのコピー処理を行うことが可能となる。すなわち、ユーザが、ユーザ端末６０のユーザインタフェース操作画面５０を用いて、論理ユニットＬＵの過負荷を検出し、コピー起動の指示を行うことができる。
【００９４】
ユーザ端末のユーザインタフェースで操作画面５０は、上述した負荷分散処理に関する各種設定や当該設定の変更を行うために用いるＧＵＩ（Graphical User Interface）画面であり、図６に示すように、負荷論理ユニットＬＵ表示部５１、高負荷論理ユニットＬＵ表示部５２、ミラー化論理ユニットＬＵ表示部５３、ミラー作成負荷閾値パラメータ変更部５４、ミラー解除負荷閾値パラメータ表示部５５、ミラー論理ユニットＬＵ表示部５６、ミラー解除論理ユニットＬＵ表示部５７及び論理ユニットＬＵのＩ／Ｏ処理量表示部５８から構成されている。
【００９５】
以下、この各部の内容について説明する。まず、負荷論理ユニットＬＵ表示部５１には、操作画面においてユーザが操作対象として選択し、負荷の状況を表示したいと希望する論理ユニットＬＵの論理ユニットＬＵ番号を入力する。例えば、ユーザが論理ユニットＬＵ番号が「LU0」の論理ユニットＬＵの負荷を表示したいと希望する場合は、かかる論理ユニットＬＵ番号「LU0」を入力する。なお、負荷論理ユニットＬＵ表示部５１をダイアログボックス形式として、希望する論理ユニットＬＵを選択するように構成してもよい。
【００９６】
高負荷論理ユニットＬＵ表示部５２は、ユーザがこれをクリックすることにより、現在負荷が高くなっている論理ユニットＬＵの論理ユニットＬＵ番号を表示する。
【００９７】
ミラー化論理ユニットＬＵ表示部５３には、これからミラー論理ユニットＬＵを作成する予定となっている論理ユニットＬＵの論理ユニットＬＵ番号を入力する。なお、ミラー化論理ユニットＬＵ表示部５３をダイアログボックス形式として、希望する論理ユニットＬＵを選択するように構成してもよい。
【００９８】
ミラー作成負荷閾値パラメータ変更部５４には、論理ユニットＬＵの単位時間当たりの処理コマンド数及び単位時間当たりの処理データ量のように、ミラー論理ユニットＬＵを作成するときに使用するパラメータを変更するときにユーザが変更したい値を入力する。
【００９９】
ミラー解除負荷閾値パラメータ表示部５５には、論理ユニットＬＵの単位時間当たりの処理コマンド数及び単位時間当たりの処理データ量のように、ミラー論理ユニットＬＵを解除するときに使用するパラメータを変更するときにユーザが変更したい値を入力する。
【０１００】
ミラー論理ユニットＬＵ表示部５６は、クリックすることにより、現在作成されているミラー論理ユニットＬＵの論理ユニットＬＵ番号を表示する。
【０１０１】
ミラー解除論理ユニットＬＵ表示部５７には、ミラー論理ユニットＬＵ表示部５６に表示されているミラー論理ユニットＬＵのうち、ユーザがミラー解除を行うことを希望する論理ユニットＬＵの論理ユニットＬＵ番号を入力する。
【０１０２】
論理ユニットＬＵのＩ／Ｏ処理量表示部５８には、指定された論理ユニットＬＵの単位時間当たりのデータのＩ／Ｏ処理量を表示させることができる。
【０１０３】
（１−２−４）ミラー論理ユニットＬＵ生成の動作
次に、本発明の第１の実施の形態に係るストレージ装置２のミラー論理ユニットＬＵ生成の動作について説明する。図７は本発明の第１の実施の形態に係るストレージ装置２のミラー論理ユニットＬＵ生成の動作の一例を示すフローチャートである。
【０１０４】
まず、ストレージ制御装置３のＣＰＵ１０は、予備物理ボリュームＶＯＬ内に、ミラー論理ユニットＬＵを生成する際に、予備物理ボリュームＶＯＬに空きがないときには、予備物理ボリュームＶＯＬ内の論理ユニットＬＵの過負荷状態により、予備物理ボリュームＶＯＬ内の論理ユニットＬＵのミラーを解除する動作を含む動作としては、ホスト装置１へのホストアクセス処理を行い、性能測定プログラム１２でホストアクセス処理による論理ユニットＬＵに対する性能測定を行う（Ｓ１０１）。
【０１０５】
ＣＰＵ１０は、ステップＳ１０１での性能測定の結果、あらかじめ設定されたミラー論理ユニットＬＵ作成開始の閾値に基づき、論理ユニットＬＵが過負荷か否かを判断し（Ｓ１０２）、ステップＳ１０２で論理ユニットＬＵが過負荷でないと判断するときには（Ｓ１０２:ＮＯ）、ステップＳ１００に戻る。一方、ＣＰＵ１０は、ステップＳ１０２で論理ユニットＬＵが過負荷であると判断するときには（Ｓ１０２:ＹＥＳ）、予備物理ボリュームＶＯＬ内の論理ユニットＬＵに空きがあるか否かを判断する（Ｓ１０３）。
【０１０６】
そして、ＣＰＵ１０は、ステップＳ１０３で予備物理ボリュームＶＯＬ内の論理ユニットＬＵに空きがあると判断するときには（Ｓ１０３：ＹＥＳ）、予備物理ボリュームＶＯＬ内に、物理ボリュームＶＯＬの論理ユニットＬＵからデータをコピーする論理ユニットＬＵを作成し（Ｓ１０４）、コピープログラム１３に基づいて、ステップＳ１０４で作成された予備物理ボリュームＶＯＬ内の論理ユニットＬＵへのデータのコピーを開始する（Ｓ１０５）。
【０１０７】
続けてＣＰＵ１０は、ステップＳ１０４で作成された予備物理ボリュームＶＯＬ内の論理ユニットＬＵへのコピーが完了すると（Ｓ１０６）、予備物理ボリュームＶＯＬ内の論理ユニットＬＵを制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０に追加し（Ｓ１０７）、予備物理ボリュームＶＯＬ内の論理ユニットＬＵへのアクセスを開始し（Ｓ１０８）、物理ボリュームＶＯＬ内の論理ユニットＬＵとのミラー状態、すなわちデータに対して２つ以上の同一のコピーが別々のメディアに維持された状態とし、処理を終了する。
【０１０８】
また、ＣＰＵ１０が、ステップＳ１０３において予備物理ボリュームＶＯＬ内の論理ユニットＬＵに空きがないと判断するときには（Ｓ１０３：ＮＯ）、過負荷となっている論理ユニットＬＵが、予備物理ボリュームＶＯＬ内で既に使用中の論理ユニットＬＵに比べて過負荷か否かを判断する（Ｓ１０９）。ステップＳ１０９において、予備物理ボリュームＶＯＬ内で使用中の論理ユニットＬＵよりも過負荷でないと判断するときには（Ｓ１０９:ＮＯ）、ステップＳ１００に戻る。一方、ステップＳ１０９において予備物理ボリュームＶＯＬ内で使用中の論理ユニットＬＵよりも過負荷であると判断するときには（Ｓ１０９：ＮＯ）、性能測定プログラム１２の測定結果に基づき、予備物理ボリュームＶＯＬ内で一番負荷の低い論理ユニットＬＵのミラーを解除し、予備物理ボリュームＶＯＬ内に論理ユニットＬＵの空きを作成し（Ｓ１１０）、ステップＳ１０４以降の処理を実行する。
【０１０９】
以上の処理により、性能測定プログラム１２による測定の結果、論理ユニットＬＵが過負荷状態となった場合には、予備物理ボリュームＶＯＬに論理ユニットＬＵが作成され、物理ボリュームＶＯＬの論理ユニットＬＵの内容がコピーされて、ミラー状態となる。このように作成されたミラー論理ユニットＬＵとコピー元の論理ユニットＬＵとはホスト装置１に対して、仮想論理ユニットＬＵとして、提供される。
【０１１０】
この結果、ホスト装置１の側では、仮想論理ユニットＬＵとして提供される論理ユニットＬＵに対してアクセスすることにより、仮想論理ユニットＬＵを構成する実論理ユニットＬＵが過負荷状態になった場合であっても、実論理ユニットＬＵの負荷が分散された状態でアクセスを行うことが可能である。
【０１１１】
（１−２−５）論理ユニットＬＵへのライト処理の動作
次に、図８により、本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへの書き込み（ライト）処理の動作について説明する。図８は、本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのライト処理において、特に、論理ユニットＬＵの全てにアクセスし、全ての論理ユニットＬＵのデータを更新する場合の動作の一例を示すフローチャートである。
【０１１２】
まず、ＣＰＵ１０は、ホスト装置１からの論理ユニットＬＵに対するライトのホストアクセスを受領すると、制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照して、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する（Ｓ１４１）。
【０１１３】
そして、ＣＰＵ１０が、ステップＳ１４１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないと判断するときには（Ｓ１４１:ＮＯ）、マッピング先の論理ユニットＬＵにアクセスする（Ｓ１４２）。
【０１１４】
一方、ＣＰＵ１０が、Ｓ１４１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていると判断するときには（Ｓ１４１：ＹＥＳ）、全てのマッピング先論理ユニットＬＵにアクセスし（Ｓ１４３）、ライトを行って、ライト処理を終了する。
【０１１５】
（１−２−６）論理ユニットＬＵへのリード処理の動作
次に、図９により、本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード処理の動作のうち、負荷の少ない論理ユニットＬＵを選択してアクセスする場合について説明する。図９は本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード処理の動作を示すフローチャートである。
【０１１６】
まず、ＣＰＵ１０は、ホスト装置１からの論理ユニットＬＵに対するリードのホストアクセスを受領すると、制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照して、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する（Ｓ１５１）。
【０１１７】
そして、ＣＰＵ１０が、Ｓ１５１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないと判断するとき（Ｓ１５１：ＮＯ）、すなわち、物理ボリュームＶＯＬ内のＬＵのみがマッピングされているときには、マッピング先の論理ユニットＬＵにアクセスする（Ｓ１５２）。
【０１１８】
一方、ＣＰＵ１０がＳ１５１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていると判断するとき（Ｓ１５１:ＹＥＳ）、すなわち、物理ボリュームＶＯＬ内の論理ユニットＬＵが予備物理ボリュームＶＯＬ内の論理ユニットＬＵにコピーされてミラー状態となっているときには、マッピング先論理ユニットＬＵに対応する制御テーブル１１内の性能監視テーブル３０の情報を参照し（Ｓ１５３）、最も負荷の小さいマッピング先論理ユニットＬＵにアクセス（Ｓ１５４）し、リードを行って、リード処理を終了する。
【０１１９】
以上のミラー論理ユニットＬＵ生成処理により、仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされている場合には、ホスト装置１からのホストアクセスは、最も負荷の小さいマッピング先論理ユニットＬＵにアクセスされ、論理ユニットＬＵに対する負荷を分散することが可能となる。
【０１２０】
（１−２−７）リード／モディファイ／ライト処理を行う場合における論理ユニットＬＵへのライト処理の動作
次に、図１０により、本発明の第１の形態に係るストレージ装置２の論理ユニットＬＵへ、特にリード／モディファイ／ライト処理を行う場合におけるライト処理動作について説明する。図１０は本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード／モディファイ／ライト処理を行う場合におけるライト処理の動作の例を示すフローチャートである。
【０１２１】
ＣＰＵ１０は、ホスト装置１からの論理ユニットＬＵに対するライトのホストアクセスを受領すると、制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照して、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する（Ｓ１６１）。
【０１２２】
そして、ＣＰＵ１０がＳ１６１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないと判断するときには（Ｓ１６１：ＮＯ）、マッピング先の論理ユニットＬＵにアクセスする（Ｓ１６２）。
【０１２３】
一方、ＣＰＵ１０がＳ１６１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていると判断するときには（Ｓ１６１：ＹＥＳ）、複数の論理ユニットＬＵの中のうち１つの論理ユニットＬＵに対してのみ、リード／モディファイ／ライト（Ｒｅａｄ／Ｍｏｄｉｆｙ／Ｗｒｉｔｅ）処理のうち、リード／モディファイ処理を行う（Ｓ１６３）。その後、全てのマッピング先論理ユニットＬＵに対し、ライトを行い（Ｓ１６４）、ライト処理を終了する。
【０１２４】
（１−２−８）リード／モディファイ／ライト処理を行う場合における論理ユニットＬＵへのリード処理の動作
続いて、図１１により、本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへの特にリード／モディファイ／ライト処理を行う場合におけるリード処理の動作について説明する。図１１は本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード／モディファイ／ライト処理を行う場合におけるリード処理の動作の例を示すフローチャートである。
【０１２５】
ＣＰＵ１０は、ホスト装置１からの論理ユニットＬＵに対するリードのホストアクセスを受領すると、制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を参照して、ホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされているか否かを判断する（Ｓ１７１）。
【０１２６】
そして、ＣＰＵ１０は、Ｓ１７１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないと判断するときには（Ｓ１７１：ＮＯ）、マッピング先の論理ユニットＬＵにアクセスする（Ｓ１７２）。
【０１２７】
一方、ＣＰＵ１０は、Ｓ１７１でホストアクセスに対応する当該仮想論理ユニットＬＵに２つ以上の論理ユニットＬＵがマッピングされていないと判断するときには（Ｓ１７１：ＹＥＳ）、リード／モディファイ／ライト処理のうち、リード／モディファイ処理が行われておらず、ライト処理のみが行われた論理ユニットＬＵからデータの読み出し処理を行い（Ｓ１７３）、リード処理を終了する。
【０１２８】
以上の処理により、リード／モディファイ／ライトの処理の際は、ライト処理は全ての論理ユニットＬＵに対して行われるが、リード／モディファイ処理を行う論理ユニットＬＵとリード処理を行う論理ユニットＬＵとが分けられることにより、論理ユニットＬＵ毎に役割分担がされ、論理ユニットＬＵに対する負荷分散を効率的に図ることができるようになる。
【０１２９】
（１−２−９）ミラー論理ユニットＬＵのミラー解除の動作
次に、図１２により、本発明の第１の実施の形態に係るストレージ装置２の低負荷時の論理ユニットＬＵのミラー解除の動作について説明する。図１２は本発明の第１の実施の形態に係るストレージ装置２のコピー論理ユニットＬＵ生成後の低負荷時の論理ユニットＬＵのミラー解除の動作を示すフローチャートである。
【０１３０】
まず、ＣＰＵ１０は、ホスト装置１へのホストアクセス処理を行い、性能測定プログラム１２に基づいて、ホストアクセス処理による論理ユニットＬＵに対する性能測定を行う（Ｓ１８１）。
【０１３１】
そして、ＣＰＵ１０は、ステップＳ１８１での性能測定の結果、あらかじめ設定されたミラー解除の閾値に基づき、論理ユニットＬＵが低負荷か否かを判断し（Ｓ１８２）、ステップＳ１８２で論理ユニットＬＵが低負荷でないと判断するときには（Ｓ１８２：ＮＯ）ステップＳ１８０に戻る。一方、ステップＳ１８２で論理ユニットＬＵが低負荷であると判断するときには（Ｓ１８２：ＹＥＳ）、予備物理ボリュームＶＯＬ内の低負荷の論理ユニットＬＵのミラーを解除し（Ｓ１８３）、処理を終了する。
【０１３２】
以上の処理により、予備物理ボリュームＶＯＬ内に論理ユニットＬＵがコピーされた場合でも、その後、低負荷の状態になった論理ユニットＬＵは、ミラーを解除し、物理ボリュームＶＯＬ内の論理ユニットＬＵのみでの運用にすることが可能である。
【０１３３】
次に、図１３により、第１の実施の形態によるストレージ装置の低負荷時の論理ユニットＬＵのミラー解除の動作のうち、特にどの論理ユニットＬＵを残すか判断を加える場合について説明する。図１３は本発明の第１の実施の形態に係るストレージ装置２のコピー論理ユニットＬＵ生成後の低負荷時において、どの論理ユニットＬＵを残すか判断を加えて論理ユニットＬＵのミラーの解除をする動作を示すフローチャートである。
【０１３４】
まず、ＣＰＵ１０は、ホスト装置１へのホストアクセス処理を行い、ステップＳ１８１と同様の性能測定の結果（Ｓ１９１）、あらかじめ設定されたミラー解除の閾値に基づき、論理ユニットＬＵが低負荷か否かを判断し（Ｓ１９２）、ステップＳ１９２で論理ユニットＬＵが低負荷でないと判断するときには（Ｓ１９２：ＮＯ）ステップＳ１９０に戻る。
【０１３５】
一方、ＣＰＵ１０は、ステップＳ１９２で論理ユニットＬＵが低負荷であると判断するときには（Ｓ１９２：ＹＥＳ）、どの論理ユニットＬＵを残し、それ以外の論理ユニットＬＵを解除すれば最も性能がよいかを判定し（Ｓ１９３）、判定結果に基づいて一つの論理ユニットＬＵを残し、他の論理ユニットＬＵのミラーを解除し（Ｓ１９４）、処理を終了する。
【０１３６】
ここで残すと判断する論理ユニットＬＵは、必ずしもミラーを作成したコピー元の論理ユニットＬＵでなくてもよい。すなわち、物理ボリュームＶＯＬ内のコピー元の論理ユニットＬＵを削除し、予備物理ボリュームＶＯＬ内のミラー論理ユニットＬＵを残してもよい。この結果、論理ユニットＬＵ全体の負荷を総合的に判断し、もっとも効率のよい論理ユニットＬＵを残すことが可能となり、より柔軟で動的な負荷分散又は性能拡張を行うことができる。
【０１３７】
（１−３）第１の実施の形態の効果
以上の構成によれば、ストレージ装置２において、特にリード／モディファイ／ライト動作を行うような場合にも、動的かつ柔軟な負荷分散又は性能拡張を行うことが可能となる。
【０１３８】
（２）第２の実施の形態
第１の実施の形態では、物理ボリュームＶＯＬ内の論理ユニットＬＵや予備物理ボリュームＶＯＬ内の論理ユニットＬＵについて、論理ユニットＬＵ全体を単位として負荷状況を測定して、負荷分散処理を行う例を説明した。
【０１３９】
第２の実施の形態においては、論理ユニットＬＵをアドレスなどにより分割し、分割した論理ユニットＬＵを単位として負荷状況を測定する例を説明する。例えば、かかる分割は、データベース記憶領域を割り当てる論理的な単位であり、複数の連続したデータ／ブロックで構成されるエクステントなどの単位を用いて行う。
【０１４０】
すなわち、このようなエクステント単位を用いて論理ユニットＬＵを分割し、最も負荷が低いと測定された論理ユニットＬＵの一部分へアクセスして、該当する過負荷の論理ユニットＬＵの一部分のみを予備物理ボリュームＶＯＬの論理ユニットＬＵの一部分へコピーして、かかる該当部分の負荷分散を行う。このような負荷の分散を行うことにより、論理ユニットＬＵ全体を単位として行うよりもさらに柔軟かつ動的な負荷分散又は性能拡張を行うことが可能となる。
【０１４１】
例えば、物理ボリュームＶＯＬに設けられた論理ユニットＬＵをエクステント単位で分割する。すなわち、図１４に示すように、論理ユニットＬＵ０を論理ユニットＬＵ０Ａ、論理ユニットＬＵ０Ｂ及び論理ユニットＬＵ０Ｃに分割する。また、論理ユニットＬＵ１を論理ユニットＬＵ１Ａ、論理ユニットＬＵ１Ｂ及び論理ユニットＬＵ１Ｃに分割する。さらに論理ユニットＬＵ２を論理ユニットＬＵ２Ａ、論理ユニットＬＵ２Ｂ及び論理ユニットＬＵ２Ｃに分割する。
【０１４２】
このように論理ユニットＬＵをそれぞれ分割した後、かかる論理ユニットＬＵを、分割された単位ごとに性能測定プログラム１２に基づいて負荷状況を測定し、測定した結果に基づき、かかる論理ユニットＬＵの分割された単位ごと、すなわち論理ユニットＬＵの一部分のみを、予備物理ボリュームＶＯＬ内に設定された論理ユニットＬＵの一部分にコピーして、論理ユニットＬＵの一部分にミラー論理ユニットＬＵを作成する。
【０１４３】
なお、単位の大きさに応じて、論理ユニットＬＵを３以下あるいは３以上の任意の数に分割してもよいし、エクステント以外の任意の単位を用いて論理ユニットＬＵを分割してもよい。
【０１４４】
以上の構成によれば、ストレージ装置２において、特に論理ユニットＬＵの一部分の負荷が高くなっている場合にも、動的かつ柔軟な負荷分散又は性能拡張を行うことが可能となる。
【０１４５】
（３）他の実施の形態
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１４６】
例えば、上述の実施の形態においては、性能測定動作は、性能測定プログラム１２を用いてソフトウェア処理をする場合について述べたが、本発明はこれに限らず、例えばＣＰＵ等を用いてハードウェア処理するようにしてもよい。
【０１４７】
また例えば、上述の実施の形態においては、論理ユニットＬＵのコピー動作は、コピープログラム１３を用いてソフトウェア処理をする場合について述べたが、本発明はこれに限らず、例えばＣＰＵ等を用いてハードウェア処理するようにしてもよい。
【０１４８】
さらに上述の実施の形態においては、物理的な記憶領域である物理ボリュームＶＯＬ及び予備物理ボリュームＶＯＬを、記憶デバイスである複数の物理ディスクドライブにより提供する場合について述べたが、本発明はこれに限らず、ブラッシュメモリなどの半導体メモリを記憶デバイスとして用いるようにしても良い。
【図面の簡単な説明】
【０１４９】
【図１】本発明の第１の実施の形態に係るストレージ装置２の構成を示す構成図である。
【図２】本発明の第１の実施の形態に係るストレージ装置２の負荷分散処理を説明するための説明図である。
【図３】本発明の第１の実施の形態に係るストレージ装置の制御テーブル１１内の仮想論理ユニットＬＵ−実論理ユニットＬＵマッピングテーブル２０を示す図である。
【図４】本発明の第１の実施の形態に係るストレージ装置の制御テーブル１１内の性能監視テーブル３０を示す図である。
【図５】本発明の第１の実施の形態に係るストレージ装置の制御テーブル１１内の予備物理ボリュームＶＯＬ管理テーブル４０を示す図である。
【図６】ユーザインタフェース操作画面５０の説明に供する平面図である。
【図７】本発明の第１の実施の形態に係るストレージ装置２のコピー論理ユニットＬＵ生成の動作の一例を示すフローチャートである。
【図８】本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのライト処理の動作の一例を示すフローチャートである。
【図９】本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード処理の動作を示すフローチャートである。
【図１０】本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード／モディファイ／ライト処理の動作の一例を示すフローチャートである。
【図１１】本発明の第１の実施の形態に係るストレージ装置２の論理ユニットＬＵへのリード／モディファイ／ライト処理のリードの動作の例を示すフローチャートである。
【図１２】本発明の第１の実施の形態に係るストレージ装置２のミラー論理ユニットＬＵ生成後の低負荷時の論理ユニットＬＵのミラー解除の動作を示すフローチャートである。
【図１３】本発明の第１の実施の形態に係るストレージ装置のコピーＬＵ生成後の低負荷時の論理ユニットＬＵのミラー判定とミラー論理ユニットＬＵの解除の動作を示すフローチャートである。
【図１４】本発明の第２の実施の形態に係るストレージ装置の負荷分散処理を説明するための説明図である。
【符号の説明】
【０１５０】
１・・・ホスト装置、２…ストレージ装置、３…ストレージ制御装置、４・・・記憶装置、５・・・制御メモリ、６…ホストＩ／Ｆ制御部、７…データ転送プログラム、８…ディスクＩ／Ｆ制御部、９…キャッシュメモリ、１０・・・ＣＰＵ、１１…制御テーブル、１２…性能測定プログラム、１３…コピープログラム、１４…物理ディスクドライブ、５０・・・ユーザインタフェース操作画面、６０…ユーザ端末。
【図１】
2007328734.tif 000003
【図２】
2007328734.tif 000004
【図３】
2007328734.tif 000005
【図４】
2007328734.tif 000006
【図５】
2007328734.tif 000007
【図６】
2007328734.tif 000008
【図７】
2007328734.tif 000009
【図８】
2007328734.tif 000010
【図９】
2007328734.tif 000011
【図１０】
2007328734.tif 000012
【図１１】
2007328734.tif 000013
【図１２】
2007328734.tif 000014
【図１３】
2007328734.tif 000015
【図１４】
2007328734.tif 000016