(57)【要約】  複数のストレージデバイスを有する１以上のストレージボックスに、１以上のストレージシステムが接続される。１以上のストレージボックスが提供する複数の記憶領域は、論理ボリュームに割り当てられた記憶領域である割当て済領域と、いずれの論理ボリュームに割り当てられていない記憶領域である空き領域とを含む。複数の記憶領域に対応した複数のオーナ権が、１以上のストレージシステムに設定される。空き領域のオーナ権を有するストレージシステムが、空き領域を割り当てることで空き領域を前記割当て済領域に変更する。構成変更（ストレージシステムの数に対するストレージボックスの数が相対的に変わること）が行われる場合、構成変更の後に存在する第１のストレージシステムが、構成変更の前に第１のストレージシステムに割り当てられていたオーナ権よりも多い又は少ないオーナ権を第１のストレージシステムに設定する。【選択図】図２
2016510440.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージデバイスを有する１以上のストレージボックスと、
前記１以上のストレージボックスに接続され、Ｉ／Ｏ（Input/Output）先として論理ボリュームを指定したＩ／Ｏコマンドをホスト装置から受信し、前記Ｉ／Ｏコマンドを処理する１以上のストレージシステムと
を有し、
前記１以上のストレージボックスの各々は、２以上の記憶領域を提供する２以上のストレージデバイスを有するボックスであり、
前記１以上のストレージボックスが提供する複数の記憶領域は、前記１以上のストレージシステムのいずれかの論理ボリュームに割り当てられた記憶領域である割当て済領域と、前記１以上のストレージシステムのいずれの論理ボリュームに割り当てられていない記憶領域である空き領域とを含み、
前記複数の記憶領域に対応した複数のオーナ権が、前記１以上のストレージシステムに設定され、
１つのオーナ権は、１つのストレージシステムに割り当てられ、
前記１以上のストレージシステムのうち、前記Ｉ／Ｏ先に関わる前記割当て済領域であるＩ／Ｏ領域のオーナ権が割り当てられているストレージシステムが、前記Ｉ／Ｏコマンドの処理として、前記Ｉ／Ｏコマンドに従うＩ／Ｏ対象データを前記Ｉ／Ｏ領域から読み出す、又は、前記Ｉ／Ｏ対象データを前記Ｉ／Ｏ領域に書き込むことができるようになっており、
前記１以上のストレージシステムのうち、前記空き領域のオーナ権を有するストレージシステムが、前記空き領域を割り当てることで前記空き領域を前記割当て済領域に変更することができるようになっており、
前記ストレージシステムの数に対する前記ストレージボックスの数が相対的に変わることである構成変更が行われる場合、前記構成変更の後に存在するストレージシステムである第１のストレージシステムが、前記構成変更の前に前記第１のストレージシステムに割り当てられていたオーナ権よりも多い又は少ないオーナ権を前記第１のストレージシステムに設定する、
複合型ストレージシステム。
【請求項２】
前記構成変更は、ストレージシステムの追加であり、
追加されたストレージシステムは、追加されたことを表す追加通知情報を、既存のストレージシステムに通知し、
前記追加通知情報を受けた前記既存のストレージシステムは、前記追加されたストレージシステムにオーナ権が移される割当て済領域である移動対象領域を決定し、前記移動対象領域に関する情報を、前記追加されたストレージシステムに送信する、
請求項１記載の複合型ストレージシステム。
【請求項３】
前記追加されたストレージシステムは、前記情報を受信し、前記追加されたストレージシステムが有する複数のポートのうち前記移動対象領域を関連付けたポートの識別情報を含んだパス情報を、前記ホスト装置に送信し、
前記既存のストレージシステムは、前記移動対象領域が閉塞されたことを表す閉塞情報を、前記ホスト装置に送信する、
請求項２記載の複合型ストレージシステム。
【請求項４】
前記追加通知情報は、前記追加されたストレージシステムの機能及び性能のうちの少なくとも１つを表す情報である機能／性能情報を含み、
前記既存のストレージシステムは、前記追加通知情報中の前記機能／性能情報を基に、前記移動対象領域を決定する、
請求項２記載の複合型ストレージシステム。
【請求項５】
前記追加されたストレージシステム及び前記既存のストレージシステムは、それぞれ、記憶領域に書き込まれるデータを一時的に記憶するキャッシュメモリを有し、
前記既存のストレージシステムは、前記既存のストレージシステムの前記キャッシュメモリに記憶されており記憶領域に書き込まれていないデータのうち、前記移動対象領域を書き込み先とするデータである第１のデータを、前記移動対象領域に書き込むことなく、前記追加されたストレージシステムに送信し、
前記追加されたストレージシステムが、前記既存のストレージシステムからの前記第１のデータを、前記追加されたストレージシステムの前記キャッシュメモリに書き込み、前記第１のデータを、前記キャッシュメモリから前記移動対象領域に書き込む、
請求項２記載の複合型ストレージシステム。
【請求項６】
前記構成変更は、ストレージシステムの閉塞であり、
閉塞するストレージシステムは、閉塞することを表す情報と、前記既存のストレージシステムにオーナ権が移される割当て済領域である移動対象領域を表す情報とを含んだ閉塞通知情報を、前記既存のストレージシステムに送信する、
請求項１記載の複合型ストレージシステム。
【請求項７】
前記既存のストレージシステムは、前記閉塞通知情報を受信し、前記既存のストレージシステムが有する複数のポートのうち前記移動対象領域を関連付けたポートの識別情報を含んだパス情報を、前記ホスト装置に送信し、
前記閉塞するストレージシステムは、前記移動対象領域が閉塞されたことを表す閉塞情報を、前記ホスト装置に送信する、
請求項６記載の複合型ストレージシステム。
【請求項８】
前記既存のストレージシステムは、前記既存のストレージシステムの機能及び性能のうちの少なくとも１つを表す情報である機能／性能情報を、前記閉塞するストレージシステムに送信し、
前記閉塞するストレージシステムは、前記機能／性能情報を基に、前記移動対象領域を決定する、
請求項６記載の複合型ストレージシステム。
【請求項９】
前記閉塞するストレージシステム及び前記既存のストレージシステムは、それぞれ、記憶領域に書き込まれるデータを一時的に記憶するキャッシュメモリを有し、
前記閉塞するストレージシステムは、前記閉塞するストレージシステムの前記キャッシュメモリに記憶されており記憶領域に書き込まれていないデータのうち、前記移動対象領域を書き込み先とするデータである第１のデータを、前記移動対象領域に書き込むことなく、前記既存のストレージシステムに送信し、
前記既存のストレージシステムが、前記閉塞するストレージシステムからの前記第１のデータを、前記既存のストレージシステムの前記キャッシュメモリに書き込み、前記第１のデータを、前記キャッシュメモリから前記移動対象領域に書き込む、
請求項６記載の複合型ストレージシステム。
【請求項１０】
前記構成変更は、前記ストレージボックスの追加であり、
各ストレージシステムが、前記ストレージボックスが追加されたことを認識し、相互に稼働状況を報告し合うことで各ストレージシステムの稼働状況を特定し、各ストレージシステムの稼働状況を基に、前記追加されたストレージボックスが提供する複数の記憶領域のどの記憶領域のオーナ権を有するかを決定する、
請求項１記載の複合型ストレージシステム。
【請求項１１】
前記複数のストレージシステムのうちの少なくとも１つが、決定した記憶領域に、既存の割当て済領域内のデータを移動する、
請求項１０記載の複合型ストレージシステム。
【請求項１２】
前記構成変更は、前記ストレージボックスの閉塞であり、
各ストレージシステムが、前記ストレージボックスが閉塞されることを認識し、閉塞されるストレージボックスの複数の記憶領域のうち自分がオーナ権を有する割当て済領域内のデータを、自分がオーナ権を有する別の割当て済領域に移動する、
請求項１記載の複合型ストレージシステム。
【請求項１３】
前記複数のストレージシステムのうちの２以上の特定のストレージシステムが、それぞれ、前記論理ボリュームとして、仮想的な論理ボリュームを有し、前記仮想的な論理ボリュームのライト先に、２以上の記憶領域で構成されているプールから記憶領域を割り当てるようになっており、
各特定のストレージシステムには、割当て及び解放可能な記憶領域の集合が定められており、
各特定のストレージシステムは、自分に定められた集合に、仮想的な論理ボリュームに割り当てられていない未割当の記憶領域が無ければ、他の特定のストレージシステムから未割当の記憶領域を受ける、
請求項１記載の複合型ストレージシステム。
【請求項１４】
各ストレージボックスは、複数のストレージボックスと前記１以上のストレージシステムとが接続されるスイッチを有する、
請求項１記載の複合型ストレージシステム。
【請求項１５】
前記構成変更は、前記ストレージシステム及び前記ストレージボックスのうちの少なくとも１つをリプレースすることにより、前記ストレージシステムの数に対する前記ストレージボックスの数が一時的に相対的に変わることである、
請求項１記載の複合型ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージシステムを有するシステムである複合型ストレージシステム（例えばスケールアウト型のストレージシステム）での記憶制御に関する。
【背景技術】
【０００２】
例えば、以下の文献１乃至５が知られている。
【０００３】
文献１は、複数のディスク制御装置が、スイッチ経由で、複数のディスク装置を共有している発明である。ディスク装置へのリード／ライト要求を処理するディスク制御装置が動的に変更されることで、ディスク制御装置の負荷分散が図られている。文献１では、物理的な１台のディスク装置を、ホスト計算機が、１台のディスク装置として、認識している。
【０００４】
文献２は、仮想ストレージと呼ばれる技術に関する。文献２では、ストレージシステムは、仮想ストレージ識別子と実ストレージ識別子をもつ。文献２では、サーバが読み書きする際に指定する論理ボリュームの番号であるLUN（Logical  Unit  Number）に関して、仮想LUNと実LUNが存在する。仮想LUNは、仮想ストレージ内でユニークであり、実LUNは、実ストレージ内でユニークである。仮想ストレージは、１つ以上の実ストレージで構成されている。例えば、複数の実ストレージを基に１つの仮想ストレージが実現される。また、旧い実ストレージを新しい実ストレージにリプレースすることにより実ストレージの識別子が変わっても、仮想ストレージの識別子を引き継ぐことによって、仮想ストレージのホストには、稼動を継続しているように見せることができる。
【０００５】
文献３は、仮想ストレージを構成する実ストレージ間で仮想LUNをコピーすることにより実ストレージの負荷分散を行う技術を開示している。
【０００６】
文献４は、「容量の仮想化」と呼ばれる技術に関する。容量の仮想化は、シン・プロビジョニングとも呼ばれる。文献４では、仮想ストレージは、容量の仮想化機能をもっている。容量の仮想化機能では、容量プールと呼ばれる比較的大容量の記憶領域が、ページと呼ばれる区画に分割される。一般に、論理ボリュームが定義される際に、LUNの他に、論理ボリュームの容量が指定され、ストレージでは、その容量に相当する論理ボリュームが確保される。容量の仮想化機能をもつ仮想ストレージでは、論理ボリュームの定義の際には、論理ボリュームとしての記憶領域は確保されず、論理ボリュームに対する書き込みが実際に発生する場合に、論理ボリュームにおける書き込み先の領域にページが割り当てられる。これにより、実際に使用される記憶領域を削減することができる。また、記憶領域を割り当てる契機が、書込みが発生した契機であるため、管理者は、論理ボリュームの容量を厳密に計算する必要がなく、比較的大きい容量を論理ボリュームの容量として定義すればよいので、管理コストも低減することができる。
【０００７】
文献５では、ストレージシステムＡが、外部ストレージシステムに接続されていて、その外部ストレージシステムを、仮想的には、ストレージシステムＡ内の記憶容量として見せている。外部ストレージシステムに対し容量仮想化機能（記憶容量をストレージプールとし、その記憶容量をページ単位に分割し、ライト要求があったときにページを割り当てる機能）が適用されている。ストレージシステムＡは、ストレージシステムＢにも接続されている外部ストレージシステムのページが割り当てられている論理ボリュームを、ストレージシステムＢに移動する。文献５では、論理ボリュームが移動されても、外部ストレージシステムのストレージプールは、ストレージシステムＡが有していて、ストレージプールのページの割り当て及び解放の権限もストレージステムＡが有している。移動された論理ボリュームに対する読み書きは、ストレージシステムＢが実行する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３７２６４８４号公報
【特許文献２】特開２００８−０４０５７１号公報
【特許文献３】国際公開第２０１２/０８５９７５号パンフレット
【特許文献４】特許第０４３６９５２０号公報
【特許文献５】特開２００６−３３８３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
下記第１乃至第６の課題の少なくとも第１の課題を解決することが望まれる。
（第１の課題）ストレージ装置を格納したストレージボックスを複数のストレージシステムが共有するためのアーキテクチャを実現すること。
（第２の課題）複数のストレージシステムがストレージボックスを共有している環境で、ストレージボックスを共有するストレージシステムが追加された場合の処理の継続性を実現すること。
（第３の課題）障害などによって或るストレージシステムが閉塞された場合に、閉塞されたストレージシステムの負荷を他のストレージステムに分散すること。
（第４の課題）複数のストレージシステムが共有するストレージボックスを追加するときの処理を実現すること。
（第５の課題）複数のストレージシステムが共有する２以上のストレージボックスから１以上のストレージボックスを削除するときの処理を実現すること。
（第６の課題）複数のストレージシステムの間で容量仮想化機能を実現すること。
【課題を解決するための手段】
【００１０】
第１の課題は、例えば次のようにして解決することができる。複数のストレージシステムで共有されるストレージボックスが、スイッチを有する。ストレージシステムの中にも、ストレージボックスと接続するためのスイッチを有する。ストレージボックスの中のスイッチを利用して、複数のストレージシステムがストレージボックス（正確には、そのストレージボックス内のストレージ装置群（１以上のストレージ装置））を共有する。複数のストレージステムが共有するストレージボックスの数は、１以上である。それぞれのストレージシステムは、ストレージ装置を有していてもいなくともよい。また、それぞれのストレージシステムは、典型的には、キャッシュメモリを有していて、書き込み要求をサーバから受信し、書込み要求に従う書込み対象のデータをキャッシュメモリに書き込んだ場合に、書込み要求に対する完了報告を、サーバに送信して良い。なお、本明細書で言うサーバ（ホスト計算機）は、物理的なサーバであっても仮想的なサーバであっても良い。
【００１１】
第２の課題は、例えば次のようにして解決することができる。追加されたストレージシステム（複数の既存ストレージシステムが共有するストレージボックスに通信可能に新たに接続されたストレージシステム）が、ストレージボックスを共有するストレージシステムが追加されたことを表す追加通知情報を、既にそのストレージボックスを共有しているそれぞれの既存ストレージシステムに、送信する。追加通知情報は、追加ストレージシステムの性能及び／又は機能を表す情報を含んでよい。これにより、ストレージボックス内の１以上のストレージ装置に基づく複数の記憶領域（例えば論理ボリューム）を、システム構成変更（ストレージシステムの追加）の後の複数のストレージシステムに、好適に配置することが期待できる。なお、追加ストレージシステムの性能としては、例えば、プロセッサ性能（ストレージシステムが有するプロセッサの性能）、サーバＩ／Ｆ性能（ストレージシステムが有するサーバＩ／Ｆ（サーバとの通信インタフェースデバイス）の性能（例えばデータ転送速度））、ストレージＩ／Ｆ性能（ストレージシステムが有するストレージＩ／Ｆ（ストレージボックス内のストレージ装置との通信インタフェースデバイス）の性能（例えばデータ転送速度））、及び、キャッシュ容量（ストレージシステムが有するキャッシュメモリの容量）などがある。それぞれの既存ストレージシステムは、追加通知情報を受信し、追加通知情報（例えば、性能及び／又は機能を表す情報）を基に、自分に提供されている１以上の記憶領域のうち、追加ストレージシステムに制御を移動する対象の記憶領域（例えば論理ボリューム）を決定し、その決定した移動対象記憶領域を表す領域情報（例えばＬＵＮを含む情報）を、追加ストレージシステムに送信する。次に、追加ストレージシステムは、その追加ストレージシステムに接続されているサーバ内のプロセッサで実行されるパス管理プログラムに、移動対象記憶領域を、追加ストレージシステムのどのパスに接続するかを決め、移動対象記憶領域の接続先パスを表すパス情報（例えば、移動対象記憶領域のＬＵＮと、移動対象記憶領域が関連付けられるポート（追加ストレージシステムのポート）の識別情報とを含む情報）を、パス管理プログラムに送信する。この後、１以上の既存ストレージシステムのうちの、移動対象記憶領域を管理している対象既存ストレージシステムは、移動対象記憶領域が対象既存ストレージシステムから外されたことを表す情報（例えば、移動対象記憶領域のＬＵＮを含む情報）と、対象既存ストレージシステムのパス（移動対象記憶領域が接続されていたパス）を閉塞することを表す情報とを含んだ通知情報を、パス管理プログラムに送信する。パス管理プログラムは、上記パス情報及び通知情報を受信し、それらの情報を基に、ＬＵＮと送信先との対応関係を表す情報を含むパス管理情報を更新する。そのパス管理プログラムを実行するサーバは、更新後のパス管理情報を基に、移動対象記憶領域のＬＵＮを指定した読み書き要求（読出し要求又は書込み要求）を、対象既存ストレージシステムではなく追加ストレージシステムの方に発行することができる。この後、追加ストレージシステムは、移動対象記憶領域を格納先とする、対象既存ストレージシステムのキャッシュ領域（例えばキャッシュメモリにおける領域）に記憶されていたデータを、追加ストレージシステムのキャッシュ領域にコピーする処理を行うことができる。このコピー処理中に、追加ストレージシステムが、読み書き要求を受けて、追加ストレージシステムのキャッシュ領域における、データが未だコピーされていない未完了領域に、データを書き込むことになる場合、追加ストレージシステムは、対象既存ストレージシステム内の未完了領域に記憶されているデータを、追加ストレージシステムのキャッシュ領域にコピーし、その後に、受け付けた読み書き要求の処理を行う。
【００１２】
第３の課題は、例えば次のようにして解決することができる。
【００１３】
閉塞するストレージシステム（ストレージボックスを共有する複数のストレージシステムから削除されるストレージシステム）は、各他のストレージシステム（既存ストレージシステム）に、閉塞することを表す情報を含んだ閉塞情報を、送信する。各既存ストレージシステムは、閉塞情報を受信し、自ストレージシステムの稼動状況、性能及び機能のうちの少なくとも１つを表す情報を含んだ通知情報を、閉塞ストレージシステムに送信する。閉塞ストレージシステムは、各既存ストレージシステムから通知情報を受信し、各既存ストレージシステムからの通知情報を基に、閉塞ストレージシステムが管理する１以上の記憶領域の各々について、記憶領域のオーナ権（後述の制御権）をどの既存ストレージシステムに移すかを決定し、移し先の既存ストレージシステムに、その既存ストレージシステムに移すと決定された記憶領域の情報（例えばＬＵＮ）を含んだ領域情報を送信する。次に、既存ストレージシステムは、領域情報を受信し、その領域情報から特定される記憶領域を、自ストレージシステムのどのパスに接続するかを決め、特定された記憶領域の接続先パスを表すパス情報（例えば、記憶領域のＬＵＮと、記憶領域が関連付けられるポート（既存ストレージシステムのポート）の識別情報とを含む情報）と、閉塞ストレージシステムのパスが閉塞することを表すパス閉塞情報とを、サーバのプロセッサで実行されるパス管理プログラムに送信する。パス閉塞情報は、既存ストレージシステムに代えて閉塞ストレージシステムによってパス管理プログラムに送信されても良い。パス管理プログラムは、上記通知情報及びパス閉塞情報を受信し、ＬＵＮと送信先との対応関係を表す情報を含むパス管理情報を更新する。そのパス管理プログラムを実行するサーバは、更新後のパス管理情報を基に、閉塞ストレージシステムから提供されていた記憶領域のＬＵＮを指定した読み書き要求（読出し要求又は書込み要求）を、閉塞ストレージシステムではなく既存ストレージシステムの方に発行することができる。この後、各既存ストレージシステムは、移動対象の記憶領域を格納先とする、閉塞ストレージシステムのキャッシュ領域（例えばキャッシュメモリにおける領域）に記憶されていたデータを、自ストレージシステムのキャッシュ領域にコピーする処理を行うことができる。このコピー処理中に、既存ストレージシステムが、読み書き要求を受けて、自ストレージシステムのキャッシュ領域における、データが未だコピーされていない未完了領域に、データを書き込むことになる場合、当該既存ストレージシステムは、閉塞ストレージシステム内の未完了領域に記憶されているデータを、当該既存ストレージシステムのキャッシュ領域にコピーし、その後に、受け付けた読み書き要求の処理を行う。特に、閉塞ストレージシステムの場合、障害等によって、複合型ストレージシステムの冗長性などが、低下している可能性があるので、キャッシュ領域内のデータは、速やかに、他のストレージシステムに移したほうがよい。この場合、上記コピー処理において、ストレージボックスに書き込む必要のあるデータだけがコピー対象であって良い。
【００１４】
第４の課題は、例えば次のようにして解決することができる。
【００１５】
まず、ストレージボックスが追加されたこと（ストレージボックスがそれぞれのストレージシステムに通信可能に新たに接続されたこと）を、それぞれのストレージステムが認識する。複数のストレージシステムのうちの少なくとも１つのストレージシステムである対象ストレージシステムは、それぞれの他のストレージシステムから、当該他のストレージシステムの稼働状況を表す情報を含んだ稼働状況情報を受信する。対象ストレージシステムは、それぞれの他のストレージシステムからの稼働状況情報を基に、追加ストレージボックスに基づく１以上の記憶領域（例えば論理ボリューム）のどの記憶領域をどのストレージシステムが管理するかを決定する。この後、各ストレージシステムは、必要があれば、自ストレージシステムの管理下にある記憶領域に、定義済みの記憶領域（追加ストレージボックスに基づく記憶領域であって自ストレージシステムが管理すると決定された記憶領域）内のデータを移動してもよい。
【００１６】
第５の課題は、例えば次のようにして解決することができる。
【００１７】
まず、ストレージシボックスを削除すること（複数のストレージシステムからストレージボックスが外されること）を、それぞれのストレージステムが認識する。それぞれのストレージシステムは、自ストレージステムの管理下にある記憶領域（削除されないストレージボックスに基づく記憶領域）に、削除されるストレージボックスに基づく記憶領域内のデータであって、自ストレージシステムの管理下にある記憶領域内のデータを、移動する。
【００１８】
第６の課題は、例えば次のようにして解決することができる
【００１９】
１以上のストレージボックスに基づくストレージプール（例えば、１以上のストレージボックスに基づく論理ボリュームの集合であり複数のページ（サブ領域）に分割された記憶領域）が、複数のストレージシステムに共有される。ストレージプールを構成する複数のページ群の割り当て権限が、それぞれ、複数のストレージシステムに割り当てられる。つまり、ページ群毎に、当該ページ群におけるページを仮想ボリューム（容量仮想化技術（例えばＴｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ）に従う仮想的な論理ボリューム）に割り当て可能なストレージシステムが定められる。各ストレージシステムは、ライト要求を受け付けたとき、権限をもつ範囲でページの割り当てを行う。割り当て権限をもつページの数が少なくなってきたストレージシステムは、他のストレージシステム間で、空きページを融通してもらう。
【発明の効果】
【００２０】
第１の課題が解決されることにより、複数のストレージシステムが、ストレージ装置を有するストレージボックスを共有することができる。第２又は第３の課題が解決されることにより、ストレージシステムが追加又は削除されるというシステム構成変更が行われても、システム構成変更後のストレージシステムの集合で、ホスト計算機からの読み書き要求（アクセス要求）を分散することができる。第４又は第５の課題が解決されることにより、ストレージボックスの追加又は削除というボックス構成変更が行われても、ボックス構成変更後の１以上のストレージボックスに対するアクセスを、ストレージシステム間で、分散することができる。一般に、ストレージシステムは、ストレージコントローラの他にそのストレージコントローラによってアクセスされるストレージ装置を有し、そのため、ストレージ装置とストレージコントローラが一緒に追加又は削除される。しかし、第１乃至第５の課題のうちの少なくとも１つが解決されることにより、ストレレージシステムがストレージ装置を有さずストレージコントローラのみ有することが可能であるため、ストレージ装置とストレージコントローラとをそれぞれ独立に追加又は削除することが可能となる。第６の課題が解決されることにより、複数のストレージシステムの間で効率のよい容量仮想化機能を実現することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、第１の実施例に係る情報システムの構成を示す図である。
【図２】図２は、第１の実施例に係るサーバポート情報の構成を示す図である。
【図３】図３は、第１の実施例に係る実ストレージシステムの構成を示す図である。
【図４】図４は、第１の実施例に係るキャッシュメモリの構成を示す図である。
【図５】図５は、第１の実施例に係るストレージシステムの共有メモリに格納された情報を示す図である。
【図６】図６は、第１の実施例に係るストレージシステム情報の構成を示す図である。
【図７】図７は、第１の実施例に係る他ストレージシステム情報の構成を示す図である。
【図８】図８は、第１の実施例に係る仮想論理ボリューム情報の構成を示す図である。
【図９】図９は、第１の実施例に係る論理ボリューム情報の構成を示す図である。
【図１０】図１０は、第１の実施例に係るキャッシュ管理情報の構成を示す図である。
【図１１】図１１は、第１の実施例に係る空きキャッシュ情報管理キューの構成を示す図である。
【図１２】図１２は、第１の実施例に係るストレージボックス情報の構成を示す図である。
【図１３】図１３は、第１の実施例に係るストレージグループ情報の構成を示す図である。
【図１４】図１４は、第１の実施例に係るストレージコントローラが実行するプログラムの構成を示す図である。
【図１５Ａ】図１５Ａは、第１の実施例に係るリード処理実行部の処理フローを示す図である。
【図１５Ｂ】図１５Ｂは、第１の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【図１６Ａ】図１６Ａは、第１の実施例に係るライト要求受付部の処理フローを示す図である。
【図１６Ｂ】図１６Ｂは、第１の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【図１７】図１７は、第１の実施例に係るライトアフタ処理実行部の処理フローを示す図である。
【図１８Ａ】図１８Ａは、第１の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【図１８Ｂ】図１８Ｂは、第１の実施例に係る追加された実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【図１９Ａ】図１９Ａは、第１の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【図１９Ｂ】図１９Ｂは、第１の実施例に係る閉塞する実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【図２０Ａ】図２０Ａは、第１の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【図２０Ｂ】図２０Ｂは、第１の実施例に係る移動元となる実ストレージシステムから通知を受けた移動先となる実ストレージシステムの処理フローを示す図である。
【図２１Ａ】図２１Ａは、第１の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【図２１Ｂ】図２１Ｂは、第１の実施例に係るストレージボックスを認識した実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【図２２】図２２は、第１の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【図２３】図２３は、第１の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【図２４Ａ】図２４Ａは、第１の実施例に係るコピー処理部の処理フローを示す図である。
【図２４Ｂ】図２４Ｂは、第１の実施例に係る移動先の論理ボリュームを含む実ストレージシステムから、論理ボリュームの中の指定された領域を読み出すよう指示された、移動元の論理ボリュームを含む実ストレージシステムの処理フローを示す図である。
【図２５】図２５は、第１の実施例に係るキャッシュ閉塞スケジュール部の処理フローを示す図である。
【図２６Ａ】図２６Ａは、第１の実施例に係るキャッシュ閉塞処理部の処理フローを示す図である。
【図２６Ｂ】図２６Ｂは、第１の実施例に係る移動元の実ストレージシステムの処理フローを示す図である。
【図２７】図２７は、第１の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【図２８】図２８は、第１の実施例に係る仮想論理ボリューム消去部の処理フローを示す図である。
【図２９】図２９は、第２の実施例に係るストレージボックス情報の構成を示す図である。
【図３０】図３０は、第２の実施例に係るストレージグループ情報の構成を示す図である。
【図３１Ａ】図３１Ａは、第２の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【図３１Ｂ】図３１Ｂは、第２の実施例に係る追加された実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【図３２Ａ】図３２Ａは、第２の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【図３２Ｂ】図３２Ｂは、第２の実施例に係る削除される実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【図３３Ａ】図３３Ａは、第２の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【図３３Ｂ】図３３Ｂは、第２の実施例に係る移動先の実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【図３４Ａ】図３４Ａは、第２の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【図３４Ｂ】図３４Ｂは、第２の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【図３５】図３５は、第２の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【図３６】図３６は、第２の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【図３７】図３７は、第３の実施例に係る共有メモリに格納された情報を示す図である。
【図３８】図３８は、第３の実施例に係る論理ボリューム情報の構成を示す図である。
【図３９】図３９は、第３の実施例に係るストレージグループ情報の構成を示す図である。
【図４０】図４０は、第３の実施例に係る実ページ情報の構成を示す図である。
【図４１】図４１は、第３の実施例に係る空きページ情報管理キューの構成を示す図である。
【図４２Ａ】図４２Ａは、第３の実施例に係るリード処理実行部の処理フローを示す図である。
【図４２Ｂ】図４２Ｂは、第３の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【図４３Ａ】図４３Ａは、第３の実施例に係るライト要求受付部の処理フローを示す図である。
【図４３Ｂ】図４３Ｂは、第３の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【図４４】図４４は、第３の実施例に係るライトアフタ処理実行部の処理フローを示す図である。
【図４５Ａ】図４５Ａは、第３の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【図４５Ｂ】図４５Ｂは、第３の実施例に係る追加された実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図４６Ａ】図４６Ａは、第３の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【図４６Ｂ】図４６Ｂは、第３の実施例に係る閉塞する実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図４７Ａ】図４７Ａは、第３の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【図４７Ｂ】図４７Ｂは、第３の実施例に係る移動先となる実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図４８Ａ】図４８Ａは、第３の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【図４８Ｂ】図４８Ｂは、第３の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【図４９】図４９は、第３の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【図５０Ａ】図５０Ａは、第３の実施例に係るコピー処理部の処理フローを示す図である。
【図５０Ｂ】図５０Ｂは、第３の実施例に係る実ストレージシステム間で行われる論理ボリューム移動処理における移動元論理ボリュームに関わる処理フロー示す図である。
【図５１】図５１は、第３の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【図５２】図５２は、第３の実施例に係る仮想論理ボリューム消去部の処理フローを示す図である。
【図５３Ａ】図５３Ａは、第４の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【図５３Ｂ】図５３Ｂは、第４の実施例に係る追加された実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図５４Ａ】図５４Ａは、第４の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【図５４Ｂ】図５４Ｂは、第４の実施例に係る削除される実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図５５Ａ】図５５Ａは、第４の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【図５５Ｂ】図５５Ｂは、第４の実施例に係る移動先の実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【図５６Ａ】図５６Ａは、第４の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【図５６Ｂ】図５６Ｂは、第４の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【図５７】図５７は、第４の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【図５８】図５８は、第４の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【図５９】図５９は、第１の実施例に係るストレージ装置情報の構成を示す図である。
【図６０】図６０は、第２の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【図６１】図６１は、第３の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【図６２】図６２は、第１の実施例に係るストレージボックスの内部構成を示す図である。
【発明を実施するための形態】
【００２２】
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【実施例１】
【００２３】
図１は、第１の実施例に係る情報システムの構成を示す図である。
【００２４】
情報システムは、一つ以上のストレージボックス１３０、一つ以上の実ストレージシステム１００、一つ以上のサーバ１１０、ＳＡＮ（Storage  Area  Network）１２０、及びストレージ管理サーバ１５０を含む。ＳＡＮ１２０は、実ストレージシステム１００とサーバ１１０とを接続する。サーバ１１０は、一つ以上のサーバポート１９５を持つ。サーバ１１０は、サーバポート１９５によって、ＳＡＮ１２０に接続される。実ストレージシステム１００は、ＳＡＮ１２０に接続される一つ以上のストレージポート１９７と、ストレージボックス１３０に接続するためのスイッチ１７０とをもつ。実ストレージシステム１００は、ストレージポート１９７によって、ＳＡＮ１２０に接続される。サーバ１１０は、内部に、サーバポート情報１９８をもつ。サーバ１１０は、ユーザアプリケーションが動作するシステムであり、実ストレージステム１００との間で、ＳＡＮ１２０経由で、必要なデータを読み書きする。実ストレージシステム１００は、実ストレージシステム１００同士で、互いに、ＳＡＮ１２０経由で、データの送受信を行う。ＳＡＮ１２０においては、ＳＣＳＩコマンドが転送可能なプロトコルを用いる。例えば、Fibre  Channel等のプロトコルを用いることができる。
【００２５】
本実施例では、情報システムには、一つ以上の実ストレージシステム１００から構成される仮想ストレージシステム１９０が存在する。サーバ１１０からは、仮想ストレージシステム１９０が、ストレージシステムに見える。ただし、本実施例において、仮想ストレージステム１９０が存在しなくても良い。仮想ストレージステム１９０が存在しない場合、実ストレージシステム１００が、サーバ１１０からは、ストレージステムに見える。
【００２６】
ストレージボックス１３０は、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリを記憶媒体とするフラッシュストレージなどのストレージ装置１６０（共有ストレージ装置１８０）、スイッチ１７０などを含む。また、フラッシュストレージには、いくつかの種類があり、高価格、高性能、且つ消去可能回数の多いＳＬＣ（Single  level  Cell）型のフラッシュメモリを含むものと、低価格、低性能、且つ消去可能回数の少ないＭＬＣ（Multi  Level  Cell）型のフラッシュメモリを含むものとがある。ストレージ装置１６０は、相変化メモリなどの新しい記憶媒体を含んでいてもよい。
【００２７】
本実施例においては、ストレージボックス１３０の中のストレージ装置１６０は、複数の実ストレージシステム１００によって、共有される。したがって、本実施例では、ストレージボックス１３０の中のストレージ装置１６０を、共有ストレージ装置１８０と呼ぶ場合がある。ストレージボックス１３０は、スイッチ１７０を経由して、仮想ストレージシステム１９０の中の一つ以上の実ストレージシステム１００に接続される。ストレージボックス１３０は、必ずしも、仮想ストレージシステム１９０の中のすべての実ストレージシステム１００と接続されている必要はない。また、ある実ストレージシステム１００と別の実ストレージシステム１００とのそれぞれに接続されているストレージボックス１３０の集合は、まったく同じである必要はない。ストレージボックス１３０は、スイッチ１７０を経由して、実ストレージシステム１００のいくつかによって、共有されている。ストレージ管理サーバ１５０は、実ストレージステム１００及びストレ−ジボックス１３０の管理を行うため、ストレージ管理者が利用する装置である。ストレージ管理サーバ１５０は、ネットワークなどを経由して、実ストレージシステム１００と接続されている。第１の実施例では、実ストレージシステム１００は、容量仮想化機能をもっていない。
【００２８】
図２は、第１の実施例に係るサーバポート情報の構成を示す図である。
【００２９】
サーバポート情報１９８は、サーバポート１９５ごとに持つ情報である。サーバ１１０は、実ストレージシステム１００に読み書き要求（リード・ライト要求）を発行する際、ストレージシステムの識別子、論理ボリュームの識別子、及びパス（ストレージポート１９７）の識別子を設定する。このため、サーバポート情報１９８は、サーバポート識別子２４０００と、サーバポート１９５からアクセスする一つ以上の論理ボリューム識別子２４００１と、この論理ボリューム識別子２４００１の論理ボリュームを含むストレージシステムのストレージシステム識別子２４００２と、論理ボリューム識別子２４００１の論理ボリュームが接続されているストレージポート１９７のストレージポート識別子２４００３とを含む。１つの論理ボリュームが複数のストレージポート１９７に接続されている場合、この論理ボリュームに対応して、複数のストレージポート識別子２４００３が設定される。
【００３０】
本実施例では、ストレージシステム識別子２４００２には、仮想ストレージシステム１９０の識別子が設定される。ただし、仮想ストレージシステム１９０が存在しない場合には、ストレージシステム識別子２４００２には、実ストレージステム１００の識別子が設定される。また、ストレージポート識別子２４００３には、ストレージポート１９７の識別子が設定される。
【００３１】
論理ボリューム識別子２４００１には、仮想論理ボリュームの識別子が設定される。仮想論理ボリュームの識別子は、仮想ストレージステム１９０内で、ユニークな値である。なお、それぞれの実ストレージスステム１００も論理ボリュームをもつ。この論理ボリュームの識別子は、実ストレージシステム１００内では、ユニークである。サーバ１１０のリード・ライト要求は、仮想ストレージシステムの識別子、仮想論理ボリュームの識別子、及びストレージポート１９７の識別子を含む。ストレージポート１９７の識別子は、リアルな値であるため、この識別子により、サーバ１１０の読み書き要求を受け取る実ストレージシステム１００が決定される。なお、本実施例は、仮想ストレージシステム１９０が存在しなくてもよいので、その場合には、論理ボリューム識別子２４００１には、実ストレージステム１００の論理ボリュームの識別子が設定される。また、本実施例では、仮想論理ボリュームを読み書きする実ストレージシステム１００を変更するが、その際には、サーバ１１０は、リード・ライト要求の仮想論理ボリュームの識別子を変更せず、ストレージポート１９７の識別子を変更する。
【００３２】
図３は、第１の実施例に係る実ストレージシステムの構成を示す図である。
【００３３】
実ストレージシステム１００は、一つ以上のストレージコントローラ２００、キャッシュメモリ２１０、共有メモリ２２０、ストレージ装置１６０（内部ストレージ装置２３０）と、これらの構成要素を接続する一つ以上の接続装置２５０と、ストレージボックス１３０とのインターフェイスであるスイッチ１７０とを含む。実ストレージシステム１００内に含まれるストレージ装置１６０は、基本的には、ストレージボックス１３０内に含まれるストレージ装置１６０と同じ装置である。本実施例では、実ストレージシステム１００に含まれるストレージ装置１６０を内部ストレージ装置２３０と呼ぶ場合がある。ここで、本実施例では、ストレージ装置１６０は、内部ストレージ装置２３０、共有ストレージ装置１６０の双方を表すものとする。なお、本実施例においては、実ストレージシステム１００は、必ずしも、内部ストレージ装置２３０をもつ必要はない。また、本実施例は、複数の実ストレージシステム１００によって共有される一つ以上のストレージボックス１３０によって構成される複合ストレージシステムに関するものなので、内部ストレージ装置２３０に関して、ストレージコントローラ２００が実行する処理、共有メモリ２２０に保有する情報などについては、説明を省略する。
【００３４】
ストレージコントローラ２００は、サーバ１１０から発行されたリード・ライト要求を処理するプロセッサ２６０と、プログラムや情報を保管するメモリ２７０と、バッファ２７５とを含む。バッファ２７５は、（１）後述する冗長データを生成する際、生成に必要な情報や、生成した冗長データを格納するための一時的な記憶領域、（２）ストレージ装置１６０に対応するキャッシュ領域に格納されたデータを、恒久的に格納するストレージ装置１６０に書き込む際の一時的な格納領域、として使用される。
【００３５】
接続装置２５０は、実ストレージシステム１００内の各構成要素を接続する装置である。本実施例の特徴は、接続装置２５０を経由して、一つ以上のストレージボックス１３０が接続されている点である。これにより、ストレージコントローラ２００は、ストレージボックス１３０内のストレージ装置１６０に対して、読み書きを実行できる。なお、本実施例では、ストレージボックス１３０は、実ストレージシステム１００内の一つ以上のストレージコントローラ２００に接続されているものとする。
【００３６】
キャッシュメモリ２１０及び共有メモリ２２０は、通常ＤＲＡＭなどの揮発性メモリであり、図示しないバッテリーなどにより電力が供給されて、不揮発化されている。また、本実施例では、キャッシュメモリ２１０及び共有メモリ２２０は、高信頼化のため、それぞれが２重化されている。なお、キャッシュメモリ２１０及び共有メモリ２２０が不揮発化されていなくてもよく、２重化されていなくてもよい。キャッシュメモリ２１０には、内部ストレージ装置２３０及び共有ストレージ装置１８０に格納されたデータの中で、ストレージコントローラ２００からよくアクセスされるデータが格納される。ストレージコントローラ２００は、サーバ１１０から、リード・ライト要求を受け付ける。この際、ストレージコントローラ２００は、ストレージ装置１６０に書き込むよう受け取ったデータ（ライトデータ）を、キャッシュメモリ２１０に書き込んで、該当するライト要求を完了させる。なお、ライトデータを内部ストレージ装置２３０又は共有ストレージ装置１８０に格納した段階でライト要求を完了させるようにしてもよい。
【００３７】
図４は、第１の実施例に係るキャッシュメモリの構成を示す図である。
【００３８】
キャッシュメモリ２１０は、固定長のスロット２１１００に分割されている。スロット２１１００が、リード・ライトデータの割り当て単位となる。
【００３９】
本実施例では、ストレージコントローラ２００は、ストレージ装置１６０の中の一台のストレージ装置１６０が故障しても、その故障したストレージ装置１６０のデータを回復できるＲＡＩＤ（Redundant  Arrays  of  Inexpensive  (or  Independent)  Disks）機能をもっているものとする。ＲＡＩＤ機能をもっている場合、複数の同一種類のストレージ装置が、一つのＲＡＩＤ構成をとる。１つのＲＡＩＤ構成をとる複数のストレージ装置の集合をストレージグループ２８０（図３参照）と呼ぶ。本実施例では、ＲＡＩＤ構成は、一つのストレージボックス１３０内の共有ストレージ装置１８０の集合（図６２参照）、あるいは、一つのストレージシステム１００内の内部ストレージ装置２３０の集合から構成されるものとする。なお、ストレージコントローラ２００が、ＲＡＩＤ機能を持っていなくてもよい。
【００４０】
図５は、第１の実施例に係るストレージシステムの共有メモリに格納された情報を示す図である。
【００４１】
共有メモリ２２０は、ストレージシステム情報２０６０、他ストレージシステム情報２０７０、仮想論理ボリューム情報２０８５、論理ボリューム情報２０００、ストレージボックス情報２０５０、ストレージグループ情報２３００、ストレージ装置情報２５００、キャッシュ管理情報２７５０、及び空きキャッシュ管理情報ポインタ２６５０を格納する。
【００４２】
図６は、第１の実施例に係るストレージシステム情報の構成を示す図である。
【００４３】
ストレージシステム情報２０６０は、このストレージシステム情報２０６０を格納する共有メモリ２２０が属する実ストレージシステム１００に関する情報である。ストレージシステム情報２０６０は、第１の実施例では、仮想ストレージシステム識別子２０６１と、実ストレージシステム識別子２０６２とを含む。仮想ストレージシステム識別子２０６１は、ストレージシステム情報２０６０が示す実ストレージシステム１００が含まれる仮想ストレージシステム１９０の識別子である。実ストレージシステム識別子２０６２は、ストレージシステム情報２０６０が示す実ストレージシステム１００の識別子である。
【００４４】
図７は、第１の実施例に係る他ストレージシステム情報の構成を示す図である。
【００４５】
他ストレージシステム情報２０７０は、この他ストレージシステム情報２０７０を格納する共有メモリ２２０が属する実ストレージシステム１００の他の実ストレージシステム１００に関する情報である。他ストレージシステム情報２０７０は、仮想ストレージシステム識別子２０７１と、実ストレージシステム識別子２０７２とを含む。仮想ストレージシステム識別子２０７１は、図６に含まれる仮想ストレージシステム識別子２０６１と同じであり、実ストレージシステム１００が含まれる仮想ストレージシステム１９０の識別子である。実ストレージシステム識別子２０７２は、実ストレージシステム１００を含む仮想ストレージシステム１９０に含まれる他の実ストレージシステム１００の識別子である。
【００４６】
図８は、第１の実施例に係る仮想論理ボリューム情報の構成を示す図である。
【００４７】
仮想論理ボリューム情報２０８５は、仮想論理ボリュームごとに作成される。仮想論理ボリューム情報２０８５は、仮想論理ボリューム識別子２０８６、制御権情報２０８７、実ストレージシステム識別子２０８８、ストレージポート識別子２０８９、サーバポート識別子２０９１、及び論理ボリューム識別子２０９０を含む。仮想論理ボリューム識別子２０８６は、仮想論理ボリューム情報２０８５が示す仮想論理ボリューム（図８の説明において、当該仮想論理ボリュームという。）の識別子である。本実施例では、仮想論理ボリュームに対しては、情報システムにおけるどれか一つの実ストレージシステム１００が読み書きを行う権限（制御権）をもつ。制御権情報２０８７は、この仮想論理ボリューム情報２０８５を格納する共有メモリ２２０が属する実ストレージシステム１００（図８の説明で当該実ストレージシステム１００という）が当該仮想論理ボリュームに対する制御権をもっているか否かを示す情報である。当該実ストレージシステム１００が当該仮想論理ボリュームに対する制御権をもっていない場合、実ストレージシステム識別子２０８８は、当該仮想論理ボリュームに対する制御権を有する実ストレージシステム１００の識別子を示し、ストレージポート識別子２０８９は、当該仮想論理ボリュームが接続されている一つ以上のストレージポート１９７の識別子を示す。論理ボリューム識別子２０９０は、当該実ストレージシステム１００内の当該仮想論理ボリュームに対応する論理ボリュームの識別子であり、当該実ストレージシステム１００内に対応する論理ボリュームが存在しない場合には、制御権をもつ実ストレージシステム１００内の当該仮想論理ボリュームに対応する論理ボリュームの識別子である。
【００４８】
図９は、第１の実施例における論理ボリューム情報の構成を示す図である。
【００４９】
本実施例では、サーバ１１０がデータをリード・ライトするストレージ装置は、仮想論理ボリュームである。サーバ１１０は、仮想論理ボリュームのＩＤ、仮想論理ボリューム内のアドレス、及び読み書きしたいデータの長さを指定して、リード要求やライト要求を発行する。実ストレージシステム１００は、サーバ１１０からリード要求やライト要求を受け取ると、仮想論理ボリューム情報２０８５により、要求に対応する論理ボリュームの識別子を認識する。本実施例では、論理ボリュームの識別子は、実ストレージシステム１００内でユニークな情報である。論理ボリューム情報２０００は、論理ボリュームごとに存在し、論理ボリュームに関する情報である。
【００５０】
論理ボリューム情報２０００は、論理ボリューム識別子２００１、論理容量２００２、論理ボリュームタイプ２００５、論理ボリュームＲＡＩＤグループタイプ２００３、割り当て範囲２００６、セグメントビットマップ２０１４、第１リード回数２００７、第１ライト回数２００８、第２リード回数２００９、第２ライト回数２０１０、移動中フラグ２０１５、移動元ＬＵＮ２０１６，移動ポインタ２０１７、移動待ちフラグ２０１８、閉塞移動中フラグ２０１９、閉塞移動元ＬＵＮ２０２１、及びキャッシュ管理ポインタ２０２２を含む。
【００５１】
論理ボリューム識別子２００１は、論理ボリューム情報２０００に対応する論理ボリューム（以下、図９の説明において当該論理ボリュームという）のＩＤを示す。論理容量２００２は、当該論理ボリュームの容量である。論理ボリュームタイプ２００５は、当該論理ボリュームのタイプを表す。本実施例では、論理ボリュームタイプ２００５は、当該論理ボリュームが、内部ストレージ装置２３０に格納されているか、共有ストレージ装置１８０に格納されているかを示す。論理ボリュームＲＡＩＤグループタイプ２００３は、当該論理ボリュームのＲＡＩＤタイプ（例えば、ＲＡＩＤ０、ＲＡＩＤ１等）を示す。論理ボリュームＲＡＩＤグループタイプ２００３は、ＲＡＩＤ５のように、Ｎ台の容量に対し、１台の容量の冗長データを格納する場合、Ｎの具体的な数値を含むものとする。ただし、論理ボリュームＲＡＩＤグループタイプ２００３には、任意のＲＡＩＤタイプが指定できるわけでなく、少なくとも一つストレージグループ２８０がもつＲＡＩＤタイプである必要がある。割り当て範囲２００６は、当該論理ボリュームに割り当てたストレージグループ２８０の識別子と、最も小さい番号のセグメントの番号を示す。セグメントビットマップ２０１４は、最も小さい番号のセグメントを最初１ビットに対応させ、以降の番号の各セグメントを後続のビットに対応させ、各ビットにより、対応するセグメントが当該論理ボリュームに割り当てられているか、そうでないかを表す。
【００５２】
第１リード回数２００７、第１ライト回数２００８、第２リード回数２００９、及び第２ライト回数２０１０は、当該論理ボリュームのリード処理・ライト処理の実行回数に関する情報である。本実施例では、プロセッサ２６０は、当該論理ボリュームに対するリード・ライト要求を受け付けると、第１リード回数２００７、あるいは、第１ライト回数２００８を加算する。さらに、プロセッサ２６０は、一定間隔ごとに、第１リード回数２００７を第２リード回数２００９にコピーし、第１ライト回数２００８を第２ライト回数２０１０にコピーし、第１リード回数２００７及び第１ライト回数２００８を「０」にする。これによって、第２リード回数２００９、第２ライト回数２０１０に、ある程度の期間のリード・ライト回数が格納されることとなり、当該論理ボリュームの性能特性を把握することができる。なお、リード回数、ライト回数以外に、リード処理又はライト処理におけるデータ量などを計測してもよい。これらの情報を用いて、ストレージコントローラ２００は、論理ボリュームを実ストレージシステム１００の間で再配置する。
【００５３】
移動中フラグ２０１５は、当該論理ボリュームを移動中であることを示すフラグである。移動元ＬＵＮ２０１６は、当該論理ボリュームを移動中の場合、移動元となる論理ボリュームの実ストレージシステム１００、ストレージポート１９７、及び論理ボリュームの識別子を表す。移動ポインタ２０１７は、移動処理（コピー処理）が、どのブロックまで進んだかを示す。移動待ちフラグ２０１８は、当該論理ボリュームが移動を待っている状態にあることを示すフラグである。閉塞移動中フラグ２０１９は、他の実ストレージシステム１００に障害があり、障害を起こした実ストレージシステム１００のキャッシュメモリ２１０、共用メモリ２２０の引継ぎデータをコピーしている状態を表すフラグである。ここで、実ストレージシステム１００を閉塞しようとする場合、キャッシュメモリ２１０に残っているライトデータを、共用ストレージ装置１８０に書き込む必要がある。ライトデータを共有ストレージ装置１８０に書き込む方法として、二つの方法が考えられる。一つは、閉塞しようとしている実ストレージシステム１００が、ライトデータを共用ストレージ装置１８０に書き込む方法である。もう一つの方法は、ライトデータを他の実ストレージシステム１００のキャッシュメモリ２１０等に移動して、他の実ストレージシステム１００が共有ストレージ装置１８０にデータを書き込む方法である。本実施例では、いずれの方法をとっても良い。なお、キャッシュメモリ２１０が二重化されていて、一方のキャッシュメモリ２１０が閉塞されている場合などは、ライトデータを、他の実ストレージシステム１００のキャッシュメモリ２１０に移したほうが、より高速に、データを二重化した状態にすることができるので、信頼性の観点では優れる。以下の第１乃至第４の実施例においては、ライトデータを他の実ストレージシステム１００のキャッシュメモリ２１０に移動して、他の実ストレージシステム１００が共有ストレージ装置１８０にデータを書き込む方法について、詳細に述べる。だだし、第１乃至第４の実施例のいずれの実施例においても、論理ボリュームを移動する際、移動元の実ストレージシステム１００が、ライトデータを、共有ストレージ装置１８０に書き込んでも良い。
【００５４】
障害移動先ＬＵＮ２０２０は、移動元となる論理ボリューム情報に設定される情報で、移動先の実ストレージシステム１００、ストレージポート１９７、論理ボリュームの識別子が設定される。閉塞移動元ＬＵＮ２０２１は、移動先となる論理ボリュームの論理ボリューム情報２０００に設定される情報であり、移動元の実ストレージシステム１００、ストレージポート１９７、及び論理ボリュームの識別子を含む。キャッシュ管理ポインタ２０２２は、当該論理ボリュームをスロット２１１００に相当する容量で分割したそれぞれの領域に、スロット２１１００が割り当てられている（キャッシュメモリ２１０に格納されている）か否かを表す。スロット２１１００が割り当てられている場合、キャッシュ管理ポインタ２０２２は、対応するキャッシュ管理情報２７５０へのポインタとなる。また、スロット２１１００が割り当てられていない場合、キャッシュ管理ポインタ２０２２は、ヌル状態となる。
【００５５】
図１０は、第１の実施例に係るキャッシュ管理情報の構成を示す図である。
【００５６】
キャッシュ管理情報２７５０は、スロット２１１００に対応して設けられる情報である。キャッシュ管理情報２７５０は、次キャッシュ管理情報ポインタ２７５１、割り当て論理ボリュームアドレス２７５２、ブロックビットマップ２７５３、及び更新ビットマップ２７５４を含む。
【００５７】
次キャッシュ管理情報ポインタ２７５１は、データを格納していない状態であるスロット２１１００（空きスロット２１１００）に対応するキャッシュ管理情報２７５０において有効な情報であり、次の空きスロット２１１００に対応するキャッシュ管理情報２７５０を示すポインタである。割り当て論理ボリュームアドレス２７５２は、キャッシュ管理情報２７５０に対応するスロット２１１００に、どの論理ボリュームのどのアドレスから開始する領域のデータを格納したかを示す。ブロックビットマップ２７５３は、割り当てられた領域の中で、キャッシュメモリ２１０に格納されたブロック（読み書きの最小単位）を示すためのビットマップである。ブロックビットマップ２７５３のビットは、ビットに対応するブロックがキャッシュメモリ２１０に格納されている場合には、オンに設定される。更新ビットマップ２７５４は、サーバ１１０から書き込み要求を受け、サーバ１１０から受け取り、キャッシュメモリ２１０に格納したブロックであって、まだ、ストレージ装置１６０に書き込んでいないブロックを示すためのビットマップである。更新ビットマップ２７５４のビットは、ビットに対応するブロックがストレージ装置１６０に書き込んでいないブロックである場合には、オンに設定される。
【００５８】
図１１は、第１の実施例に係る空きキャッシュ情報管理キューの構成を示す図である。
【００５９】
空きキャッシュ情報管理キュー２２０１は、データが格納されていないスロット（空きスロット）を管理するためのキューである。空きキャッシュ情報管理キュー２２０１においては、空きキャッシュ管理情報ポインタ２６５０が、空きスロットに対応する先頭のキャッシュ管理情報２７５０をポイントし、そのキャッシュ管理情報２７５０の次キャッシュ管理情報ポインタ２７５１が、次の順番の空きスロットに対応するキャッシュ管理情報２７５０をポイントしている。
【００６０】
図１２は、第１の実施例に係るストレージボックス情報の構成を示す図である。
【００６１】
ストレージボックス情報２０５０は、ストレージボックス１３０ごとに設けられる情報である。ストレージボックス情報２０５０は、ストレージボックス識別子７０００、接続情報７００１、ストレージ装置数７００２、接続ストレージ装置数７００３、パス数７００４、パス識別子７００６、及び接続可能パス数７００５を含む。
【００６２】
ストレージボックス識別子７０００は、ストレージボックス情報２０５０に対応するストレージボックス１３０（図１２の説明で当該ストレージボックス１３０という）の識別子である。接続情報７００１は、当該ストレージボックス１３０が、実ストレージシステム１００に接続されているか、いないかを示す情報である。ストレージ装置数７００２は、当該ストレージボックス１３０において、接続可能なストレージ装置１６０の台数である。接続ストレージ装置数７００３は、当該ストレージボックス１３０に実際に接続されているストレージ装置１６０の台数である。パス数７００４は、当該ストレージボックス１３０のパスの数である。パス識別子７００６は、それぞれのパスごとの識別子である。接続可能パス数７００５は、実際に接続可能なパスの数である。
【００６３】
図１３は、第１の実施例に係るストレージグループ情報の構成を示す図である。
【００６４】
ストレージグループ情報２３００は、ストレージグループＩＤ２３０１、ストレージグループ種別２３０６、パッケージグループＲＡＩＤタイプ２３０２、セグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、空きセグメントビットマップ２３０７、ストレージ装置ポインタ２３０５、第１Ｒ回数２３１０、第２Ｒ回数２３１１、第１Ｗ回数２３１２、及び第２Ｗ回数２３１３を含む。
【００６５】
ストレージグループＩＤ２３０１は、このストレージグループ情報２３００が示すストレージグループ２８０（図１３の説明において、当該ストレージグループ２８０という）の識別子である。ストレージグループ種別２３０６は、当該ストレージグループ２８０が、共有ストレージ装置１８０で構成されるか、内部ストレージ装置２３０で構成される装置かを示す情報である。共有ストレージ装置１８０で構成される場合、その共有ストレージ装置１６０を含むストレージボックス１３０の識別子も含む。パッケージグループＲＡＩＤタイプ２３０２は、当該ストレージグループ２８０のＲＡＩＤタイプである。本実施例におけるＲＡＩＤタイプは、図９の論理ボリュームＲＡＩＤグループタイプ２００３で説明した通りである。
【００６６】
第１の実施例では、ストレージコントローラ２００は、容量仮想化機能をもたないので、論理ボリュームを定義したときに、その容量分の物理的な領域が確保される。本実施例では、ストレージグループ２８００の容量は、セグメントという単位に分割される。したがって、論理ボリュームの容量が定義されると、論理ボリュームには、その容量以上となる最小の数のセグメントが確保されることになる。セグメント数２３０３は、当該ストレージグループ２８０のセグメントの数を示す。割り当て可能セグメント数２３０９は、当該ストレージグループ２８０のセグメントの中で、ストレージグループ情報２３００を格納している実ストレージシステム（図１３の説明において、当該実ストレージシステムという）１００が、割り当て可能である、すなわち割り当て権限をもっているセグメントの数を示す。例えば、当該実ストレージシステム１００の内部ストレージ装置２３０のみから構成されるストレージグループ２８０の場合、すべてのセグメントの割り当て権限を、当該実ストレージシステム１００がもつ。一方、ストレージボックス１３０の中の共有ストレージ装置１８０から構成されるストレージグループ２８０の場合、共有ストレージ装置１８０は複数の実ストレージシステム１００にシェアされるので、それぞれ、実ストレージシステム１００ごとに、割り当て権限をもつセグメントの集合が決められる。割り当て可能セグメントビットマップ２３０８は、それぞれのセグメントについて、当該実ストレージシステム１００が、割り当て権限をもっている（割り当て可能か）か、いないかを表すビットマップである。空きセグメント数２３０４は、当該ストレージグループ２８０が割り当て権限をもっているセグメントの中で、空き状態のセグメントの数を示す。空きセグメントビットマップ２３０７は、当該ストレージグループ２８０が割り当て権限をもっているセグメントについて、それぞれのセグメントが、空き状態であるか、割り当て済みであるかを表すビットマップである。ストレージ装置ポインタ２３０５の数は、当該ストレージグループ２８０に属するストレージ装置１６０の数となっている。この数は、ストレージグループＲＡＩＤタイプ２３０２によって決まる値である。ストレージ装置ポインタ２３０５は、当該ストレージグループ２８０に属するストレージ装置１６０の識別子と、そのストレージ装置１６０が共有ストレージ装置１８０の場合、共有ストレージ装置１８０が、接続されているパスを示す。第１Ｒ回数２３１０、第２Ｒ回数２３１１、第１Ｗ回数２３１２、及び第２Ｗ回数２３１３は、当該ストレージグループ２８０のリード処理・ライト処理の実行回数に関する情報である。本実施例では、プロセッサ２６０は、当該ストレージグループ２８０のストレージボリュームにリード・ライト要求を受け付けると、第１Ｒ回数２３１０、あるいは、第１Ｗ回数２３１２を加算する。さらに、一定間隔ごとに、第１Ｒ回数２３１０を第２Ｒ回数２３１１にコピーし、第１Ｗ回数２３１２を第２Ｗ回数２３１３にコピーし、第１Ｒ回数２３１０、第１Ｗ回数２３１２を０にする。これによって、第２Ｒ回数２３１１、第２Ｗ回数２３１３に、ある程度の期間におけるリード・ライト回数が格納されることとなり、当該ストレージグループ２８０の性能特性を把握できる。なお、回数以外に、データ量などを計測してもよい。本実施例では、第２Ｒ回数２３１１、第２Ｗ回数２３１３等を用いて、論理ボリュームを実ストレージシステム１００の間で再配置する。
【００６７】
図５９は、第１の実施例に係るストレージ装置情報の構成を示す図である。
【００６８】
ストレージ装置情報２５００は、ストレージ装置識別子２５０５、接続形態２５０１、接続パス２５０２、ストレージタイプ２５０３、及び容量２５０４を含む。
【００６９】
ストレージ装置識別子２５０５は、ストレージ装置情報２５００に対応するストレージ装置１６０（図５９の説明において、当該ストレージ装置という）の識別子である。接続形態２５０１は、当該ストレージ装置１６０が、共有ストレージ装置１８０であるか、内部ストレージ装置２３０であるかを示す。接続パス２５０２は、共有ストレージ装置１８０の場合、接続されているパスの識別子を示す。ストレージタイプ２５０３は、当該ストレージ装置１６０が、ＨＤＤ、フラッシュメモリなどのどんな記憶媒体なのかを示す。容量２５０４は、当該ストレージ装置１６０の容量である。なお、本実施例では、ストレージグループ２８０を構成する各ストレージ装置１６０のストレージタイプ２５０３と容量２５０４は、等しいとする。
【００７０】
次に、上述の管理情報を用いて、ストレージコントローラ２００が実行する動作の説明を行う。ストレージコントローラ２００の動作は、ストレージコントローラ２００内のプロセッサ２６０が、メモリ２７０に格納されているプログラムを実行することにより実現される。
【００７１】
図１４は、第１の実施例に係るストレージコントローラが実行するプログラムの構成を示す図である。
【００７２】
本実施例に関するプログラムとして、メモリ２７０は、リード処理実行部４０００、ライト要求受付部４１００、ライトアフタ処理実行部４２００、ストレージシステム追加処理部４３００、ストレージシステム閉塞処理部４４００、ストレージシステム移動処理部４５００、ストレージボックス追加処理部４６００、ストレージボックス閉塞処理部４７００、ストレージボックス移動処理部４８００、コピー処理部４９００、キャッシュ閉塞スケジュール部４９１０、キャッシュ閉塞処理部４９２０、仮想論理ボリューム定義部４９５０、及び仮想論理ボリューム消去部４９６０を含む。
【００７３】
図１５Ａは、第１の実施例に係るリード処理実行部の処理フローを示す図である。
【００７４】
リード処理実行部４０００は、サーバ１１０からリード要求を受け付けたときに、ストレージコントローラ２００のプロセッサ２６０により実行される。
【００７５】
ステップ５０００：プロセッサ２６０は、受け取ったリード要求で指定された仮想論理ボリュームの識別子を、仮想論理ボリューム情報２０８５に基づいて、論理ボリューム（図１５Ａの説明において当該論理ボリュームという）の識別子に変換し、当該論理ボリュームに対応する論理ボリューム情報２０００を獲得する。
【００７６】
ステップ５００１：プロセッサ２６０は、受け取ったリード要求のアドレス、キャッシュ管理ポインタ２０２２、キャッシュ管理情報２７５０のブロックビットマップ２７５３などから、当該リード要求で指定されたデータが、キャッシュメモリ２１０でヒットするか否かをチェックする。この結果、ミスであれば（ステップ５００１：Ｎ）、プロセッサ２６０は、処理をステップ５００２へジャンプさせる一方、ヒットであれば（ステップ５００１：Ｙ）、処理をステップ５００７へジャンプさせる。
【００７７】
ステップ５００２：プロセッサ２６０は、空きキャッシュ管理情報ポインタ２６５０が示す先頭のキャッシュ管理情報２７５０を、当該論理ボリューム情報２０００の該当するキャッシュ管理ポインタ２０２２にセットすることで、当該論理ボリュームに対してキャッシュメモリ２１０のスロット２１１００を割り当てる。さらに、プロセッサ２６０は、キャッシュ管理情報２７５０の割り当て論理ボリュームアドレス２７５２に当該論理ボリュームの識別子と、アドレスとを設定する。
【００７８】
ステップ５００３：プロセッサ２６０は、当該論理ボリュームの論理ボリューム情報２０００の移動中フラグ２０１５が、オンか否かをチェックする。この結果、移動中フラグ２０１５がオフであれば（ステップ５００３：Ｎ）、プロセッサ２６０は、処理をステップ５００７へジャンプさせる。一方、移動中フラグ２０１５がオンであれば、プロセッサ２６０は、さらに、移動ポインタ２０１７とリード要求で指定されているアドレス（ＲＡ）を比較して、アドレスの方が小さければ（ステップ５００３：Ｎ）、処理をステップ５００７へジャンプさせる。
【００７９】
ステップ５００４：プロセッサ２６０は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６に格納された識別子に対応する実ストレージシステム１００に、移動元ＬＵＮ２０１６に格納されたストレージポート及び論理ボリュームの識別子と、リード要求で指定されたアドレスとを指定して、データを読むよう要求する。なお、実ストレージシステム１００が、当該実ストレージシステム１００の場合もある。この場合、プロセッサ２６０は、移動元ＬＵＮ２０１６に格納されている論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。さらに、プロセッサ２６０は、この論理ボリューム情報２０００の論理ボリュームタイプ２００５から、当該、論理ボリュームが、共有ストレージ装置１８０に格納されているか、内部ストレージ装置２３０に格納されているかを認識する。さらに、プロセッサ２６０は、当該ストレージ装置１６０が属するストレージグループ２８０を認識し、論理ボリュームＲＡＩＤグループタイプ２００３のＲＡＩＤタイプなどから、要求されたデータを含むストレージ装置１６０とそのアドレスを認識して、該当するストレージ装置１６０に、対応するデータの読み出し要求を発行する。
【００８０】
ステップ５００５：プロセッサ２６０は、読み出し要求が完了するのを待つ。
【００８１】
ステップ５００６：プロセッサ２６０は、読み出し要求の応答として受け取ったデータを、キャッシュメモリ２１０に格納する。さらに、プロセッサ２６０は、キャッシュ管理情報２７５０のブロックビットマップ２７５３の受け取ったデータのブロックに対応するビットをオンにする。
【００８２】
ステップ５００７：プロセッサ２６０は、論理ボリューム情報２０００の閉塞移動中フラグ２０１９をチェックする。この結果、閉塞移動中フラグ２０１９が、オフであれば（ステップ５００７：Ｎ）、プロセッサ２６０は、処理をステップ５０１２へジャンプさせる。さらに、プロセッサ２６０は、移動ポインタ２０１７の値に対して当該リード要求で指定されたアドレス（ＲＡ）が小さい場合（ステップ５００７；Ｎ）、処理をステップ５０１２へジャンプさせる。
【００８３】
ステップ５００８：プロセッサ２６０は、閉塞移動元ＬＵＮ２０２１に格納された識別子の実ストレージシステム１００に、閉塞先移動元ＬＵＮ２０２１に格納されたストレージポート及び論理ボリュームの識別子と、リード要求で指定されたアドレスとを指定して、対応するスロットのライトデータを読むように要求する。
【００８４】
ステップ５００９：プロセッサ２６０は、発行した要求が完了するのを待つ。
【００８５】
ステップ５０１０：プロセッサ２６０は、情報を読むように要求したスロットにライトデータがないという旨を受け取った場合、処理をステップ５０１２へジャンプさせる。一方、スロットからのデータを受け取った場合、プロセッサ２６０は、ブロックビットマップ２７５３及び更新ビットマップ２７５４の受け取ったブロックに対応するビットをセットする。さらに、プロセッサ２６０は、受け取ったデータを、キャッシュメモリ２１０に格納する。
【００８６】
ステップ５０１１：プロセッサ２６０は、ブロックビットマップ２７５３を参照し、要求されたデータが、キャッシュメモリ２１０に格納されているかをチェックする。この結果、要求されたデータが存在すれば（ステップ５０１１：Ｙ）、プロセッサ２６０は、処理をステップ５０１５へジャンプさせる。
【００８７】
ステップ５０１２：プロセッサ２６０は、論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。さらに、プロセッサ２６０は、論理ボリュームタイプ２００５から、当該論理ボリュームが、共有ストレージ装置１８０に格納されているか、内部ストレージ装置２３０に格納されているかを、認識する。さらに、プロセッサ２６０は、当該ストレージ装置１６０が属するストレージグループ２８０を認識し、論理ボリュームＲＡＩＤグループタイプ２００３のＲＡＩＤタイプなどから、要求されたデータを含むストレージ装置１６０とそのアドレスを認識して、該当するストレージ装置１６０に、対応するデータの読み出し要求を発行する。
【００８８】
ステップ５０１３：プロセッサ２６０は、発行した読み出し要求が完了するのを待つ。
【００８９】
ステップ５０１４：プロセッサ２６０は、読み出し要求の応答として受け取ったデータを、キャッシュメモリ２１０に格納する。さらに、対応するブロックビットマップ２７５３の受け取ったブロックに対応するビットをセットする。
【００９０】
ステップ５０１５：プロセッサ２６０は、受け取ったデータを、サーバ１１０に転送する。また、プロセッサ２６０は、転送したデータに対応する論理ボリュームの論理ボリューム情報２０００の第１リード回数２００７、転送したデータが格納されたストレージ装置１６０が属するストレージグループ２８０に対応するストレージグループ情報２３００の第１Ｒ回数２３１０を１増やして、処理を完了する。
【００９１】
図１５Ｂは、第１の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【００９２】
ステップ５０１６：要求された実ストレージシステム１００のプロセッサ２６０は、要求された論理ボリュームの相対アドレスに対応する領域にライトデータがある場合には、そのデータを要求元に送信する一方、ライトデータがない場合には、その旨を要求元に送信する。プロセッサ２６０は、送信後、ライトデータに対応するキャッシュ管理情報２７５０を、空き状態にする。
【００９３】
図１６Ａは、第１の実施例に係るライト要求受付部の処理フローを示す図である。
【００９４】
ライト要求受付部４１００は、ストレージコントローラ２００が、サーバ１１０からライト要求を受け付けたときにプロセッサ２６０により実行される。
【００９５】
ステップ６０００：プロセッサ２６０は、受け取ったライト要求で指定された仮想論理ボリュームの識別子を、仮想論理ボリューム情報２０８５に基づいて、論理ボリューム（図１６Ａの説明において当該論理ボリュームという）の識別子に変換し、当該論理ボリュームに対応する論理ボリューム情報２０００を取得する。
【００９６】
ステップ６００１：プロセッサ２６０は、受け取ったライト要求のアドレスと、キャッシュ管理ポインタ２０２２、キャッシュ管理情報２７５０のブロックビットマップ２７５３などから、当該ライト要求で、指定されたデータが、キャッシュメモリ２１０でヒットするか否かをチェックする。この結果、ミスであれば（ステップ６００１：Ｎ）、プロセッサ２６０は、処理をステップ６００２へジャンプさせる一方、ヒットすれば（ステップ６００１：Ｙ）、処理をステップ６００７へジャンプさせる。
【００９７】
ステップ６００２：プロセッサ２６０は、空きキャッシュ管理情報ポインタ２６５０が示す先頭のキャッシュ管理情報２７５０を、当該論理ボリューム情報２０００の該当するキャッシュ管理情報ポインタ２０２２にセットすることで、当該論理ボリュームに対してキャッシュメモリ２１０のスロット２１１００を割り当てる。さらに、プロセッサ２６０は、キャッシュ管理情報２７５０の割り当て論理ボリュームアドレス２７５２に当該論理ボリュームの識別子と、アドレスとを設定する。
【００９８】
ステップ６００３: プロセッサ２６０は、閉塞移動中フラグ２０１９をチェックする。この結果、閉塞移動中フラグ２０１９がオフであれば（ステップ６００３：Ｎ）、プロセッサ２６０は、処理をステップ６００７へジャンプさせる。さらに、移動ポインタ２０１７に対して、当該ライト要求で指定されたアドレスが小さい場合（ステップ６００３：Ｎ）、プロセッサ２６０は、処理をステップ６００７へジャンプさせる。
【００９９】
ステップ６００４：プロセッサ２６０は、閉塞移動元ＬＵＮ２０２１に格納された識別子の実ストレージシステム１００に、閉塞移動先ＬＵＮ２０２１に格納されたストレージポート及び論理ボリュームの識別子と、ライト要求で指定されたアドレスを指定して、対応するスロットのライトデータを読むように要求する。
【０１００】
ステップ６００５：プロセッサ２６０は、発行した要求が完了するのを待つ。
【０１０１】
ステップ６００６：プロセッサ２６０は、ライトデータを読むように要求したスロットにデータがないという旨を受け取った場合、特に、何もしない。一方、スロットからのデータを受け取った場合、プロセッサ２６０は、ブロックビットマップ２７５３及び更新ビットマップ２７５４の受け取ったブロックに対応するビットをセットする。さらに、プロセッサ２６０は、受け取ったデータを、キャッシュメモリ２１０に格納する。
【０１０２】
ステップ６００７：プロセッサ２６０は、サーバ１１０から、ライトするデータを受け取り、キャッシュメモリ２１０に格納する。この後、プロセッサ２６０は、対応するキャッシュ管理情報２７５０のブロックビットマップ２７５３と更新ビットマップ２７５４とを設定する。
【０１０３】
ステップ６００８：プロセッサ２６０は、当該論理ボリュームの論理ボリューム情報２０００の移動中フラグ２０１５が、オンか否かをチェックする。この結果、移動中フラグ２０１５がオフであれば（ステップ６００８：Ｎ）、プロセッサ２６０は、処理をステップ６０１２へジャンプさせる。一方、移動中フラグ２１０５がオンであれば、プロセッサ２６０は、さらに、移動ポインタ２０１７とライト要求で指定されているアドレス（ＲＡ）を比較して、アドレスの方が小さければ（ステップ６００８：Ｎ）、処理をステップ６０１２へジャンプさせる。
【０１０４】
ステップ６００９：プロセッサ２６０は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６に格納された識別子に対応する実ストレージシステム１００が、当該実ストレージシステム１００か否かをチェックする。移動元ＬＵＮ２０１６に格納された識別子に対応する実ストレージシステム１００が当該実ストレージシステム１００でなければ、プロセッサ２６０は、移動元ＬＵＮ２０１６に格納された実ストレージシステム１００、ストレージポート、及び論理ボリューム識別子と、ライト要求で指定されたアドレスとを指定して、受け取ったデータを書き込むよう書き込み要求を発行し、キャッシュメモリ２１０に格納したデータを送信する。
【０１０５】
ステップ６０１０：プロセッサ２６０は、書き込み要求が完了するのを待つ。
【０１０６】
ステップ６０１１：プロセッサ２６０は、書き込み要求が完了すると、対応するキャッシュ管理情報２７５０を空きキャッシュ管理情報ポインタ２６５０が示すようにする。
【０１０７】
ステップ６０１２：プロセッサ２６０は、サーバ１１０に完了報告を行い、ライトしたデータに対応する論理ボリュームの論理ボリューム情報２０００の第１ライト回数２００８と、書き込んだデータが格納されたストレージ装置１６０が属するストレージグループ２８０に対応するストレージグループ情報２３００の第１Ｗ回数２３１１とを１増やして、処理を完了する。
【０１０８】
図１６Ｂは、第１の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステム１００の処理フローを示す図である。
【０１０９】
ステップ６０１３：要求された実ストレージシステム１００のプロセッサ２６０は、要求された論理ボリュームの相対アドレスに対応する領域に、ライトデータがある場合には、そのデータを要求元に送信する一方、ライトデータがない場合には、その旨を要求元に送信する。プロセッサ２６０は、送信後、対応するキャッシュ管理情報２７５０を、空き状態にする。
【０１１０】
図１７は、第１の実施例に係るライトアフタ処理実行部の処理フローを示す図である。
【０１１１】
ライトアフタ処理実行部４２００は、プロセッサ２６０により、適宜実行される。
【０１１２】
ステップ７０００：プロセッサ２６０は、キャッシュ管理情報２７５０をサーチして、更新ビットマップ２７５４がオンになっているキャッシュ管理情報２７５０を見つける。
【０１１３】
ステップ７００１：プロセッサ２６０は、見つけたキャッシュ管理情報２７５０の割り当て論理ボリュームアドレス２７５２をチェックして、キャッシュ管理情報２７５０に対応するスロットに対応する論理ボリューム（図１７の説明において当該論理ボリュームという）を認識する。
【０１１４】
ステップ７００２：プロセッサ２６０は、当該論理ボリュームに対応する論理ボリューム情報２０００の移動中フラグ２０１５がオンであるか否かをチェックする。この結果、移動中フラグ２０１５がオフであれば（ステップ７００２：Ｎ）、プロセッサ２６０は、処理をステップ７００９へジャンプさせる。さらに、プロセッサ２６０は、移動元ＬＵＮ２０１６に格納された識別子に対応する実ストレージシステム１００が、この実ストレージシステム１００であり、かつ、移動ポインタ２０１７と当該論理ボリュームのアドレスとを比較して、当該論理ボリュームのアドレスの方が小さければ（ステップ７００２：Ｎ）、処理をステップ７００９へジャンプさせる。 
【０１１５】
ステップ７００３：プロセッサ２６０は、移動元ＬＵＮ２０１６に格納されている論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。さらに、プロセッサ２６０は、論理ボリュームタイプ２００５から、当該論理ボリュームが、共有ストレージ装置１８０に格納されているか、内部ストレージ装置２３０に格納されているかを認識する。さらに、プロセッサ２６０は、当該ストレージ装置１６０が属するストレージグループ２８０を認識し、論理ボリュームＲＡＩＤグループタイプ２００３のＲＡＩＤタイプなどから、ライトデータに対応する冗長データを生成するのに、必要な情報を読み込むため、ストレージ装置１６０とそのアドレスを認識して、該当するストレージ装置１６０に、対応するデータの読み出し要求を発行する。
【０１１６】
ステップ７００４：プロセッサ２６０は、発行した読み出し要求が完了するのを待つ。 
【０１１７】
ステップ７００５：プロセッサ２６０は、読み出し要求により読み出したデータに基づいて、ライトデータに対応する冗長データを生成する。
【０１１８】
ステップ７００６：プロセッサ２６０は、更新ビットマップ２７５４の更新されたことを示すビットに対応するデータと生成した冗長データとを格納する、ストレージ装置１６０とアドレスとを認識して、このストレージ装置１６０に、これらデータを書き込むための書き込み要求を発行する。
【０１１９】
ステップ７００７：プロセッサ２６０は、発行した書き込み要求が完了するのを待つ。 
【０１２０】
ステップ７００８：プロセッサ２６０は、更新ビットマップ２７５４の書き込んだデータに対応するビットをオフする。この後、プロセッサ２６０は、処理を終了する。
【０１２１】
ステップ７００９：プロセッサ２６０は、論理ボリュームに対応する論理ボリューム情報２０００の論理ボリュームタイプ２００５から、当該論理ボリュームが、共有ストレージ装置１８０に格納されているのか、内部ストレージ装置２３０に格納されているのかを認識する。さらに、プロセッサ２６０は、当該ストレージ装置１６０が属するストレージグループ２８０を認識し、論理ボリュームＲＡＩＤグループタイプ２００３のＲＡＩＤタイプなどから、ライトデータに対応する冗長データを生成するのに、必要な情報を読み込むため、ストレージ装置１６０とそのアドレスを認識して、該当するストレージ装置１６０に、対応するデータの読み出し要求を発行する。
【０１２２】
ステップ７０１０：プロセッサ２６０は、発行した読み出し要求が完了するのを待つ。 
【０１２３】
ステップ７０１１：プロセッサ２６０は、ライトデータに対応する冗長データを生成する。
【０１２４】
ステップ７０１２：プロセッサ２６０は、更新ビットマップ２７５４の更新されたことを示すビットに対応するデータと生成した冗長データとを格納する、ストレージ装置１６０とそのアドレスを認識して、該当するストレージ装置１６０に、これらデータを書き込むための書き込み要求を発行する。
【０１２５】
ステップ７０１３：プロセッサ２６０は、発行した書き込み要求が完了するのを待つ。 
【０１２６】
ステップ７０１４：プロセッサ２６０は、対応する更新ビットマップ２７５４の書き込んだデータに対応するビットをオフする。この後、プロセッサ２６０は、処理を終了する。
【０１２７】
図１８Ａは、第１の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【０１２８】
本処理フローの処理は、追加された実ストレージシステム１００で、実行される。具体的には、この処理は、追加された実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム追加処理部４３００を実行することにより実現される。
【０１２９】
ステップ８０００：追加された実ストレージシステム１００のストレージコントローラ２００は、サーバ１１０と通信を行い、実ストレージシステム１００のストレージポート１９７の識別子をサーバポート情報１９８に設定するよう要求する。
【０１３０】
ステップ８００１：ストレージコントローラ２００は、仮想ストレージシステム１９０内に、実ストレージステム１００が追加されたこと及び当該実ストレージシステム１００がアクセス可能なストレージボックス１３０を示す情報を、同一仮想ストレージシステム１９０の他の実ストレージシステム１００に通知する。
【０１３１】
ステップ８００２：ストレージコントローラ２００は、通知に対する回答が返ってくるのを待つ。
【０１３２】
ステップ８００３：ストレージコントローラ２００は、回答に含まれている制御権を譲りうけた論理ボリュームの集合を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。さらに、ストレージコントローラ２００は、割り当て権限を与えられたストレージグループ２８０に対応するセグメントグループ情報２３００のセグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、及び空きセグメントビットマップ２３０７に、回答に含まれている情報を設定する。
【０１３３】
ステップ８００８：論理ボリュームを移動しようとする場合、キャッシュメモリ２１０に残っているライトデータを、他の実ストレージシステム１００のキャッシュメモリ２１０に移動する必要がある。ここでは、移動元の実ストレージシステム１００の論理ボリュームのライトデータに、共有ストレージ装置１６０に書き込むライトデータがあれば、移動先の実ストレージシステム１００のキャッシュメモリ２１０に移動する処理に入る。このため、ストレージコントローラ２００は、コピー処理部４９００をコールする。
【０１３４】
ステップ８００４：次に、ストレージコントローラ２００は、サーバ１１０と通信を行い、どのストレージポート１９７に、どの仮想論理ボリュームが接続されているかについての情報をサーバポート情報１９８に設定するよう要求する。以上で、ストレージコントローラ２００は、処理を終了する。
【０１３５】
図１８Ｂは、第１の実施例に係る追加された実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【０１３６】
ステップ８００５：通知を受けた実ストレージシステム１００のストレージコントローラ２００は、追加された実ストレージシステム１００がアクセス権限をもっていて、かつ、当該実ストレージシステム１００がアクセス権限をもっているストレージボックス１３０を処理対象として以下の処理を行う。なお、処理対象となるストレージボックス１３０が一つもない場合、ストレージコントローラ２００は、その旨を追加された実ストレージシステム１００に通知する。まず、ストレージコントローラ２００は、処理対象のストレージボックス１３０上に、定義されている論理ボリュームをすべて把握し、追加された実ストレージシステム１００に制御権を渡す論理ボリュームの集合を決定する。この論理ボリュームの集合を決定する際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。これによって、各ストレージグループ２８０のアクセス頻度と、各論理ボリュームのアクセス頻度を把握できる。このため、制御権を移す論理ボリュームの移行を行った後の、ストレージグループのアクセス頻度を予測することができる。この予測に基づき、制御権を移動する論理ボリュームを決定する。差らに、ストレージコントローラ２００は、処理対象のストレージボックス１３０の属するストレージグループ２８０の割り当て権限をもっている領域の中で、割り当て権限を渡す一部の空き領域を決定する。
【０１３７】
ステップ８００６：ストレージコントローラ２００は、サーバ１００に、制御権を渡すと決めた論理ボリュームに対応する仮想論理ボリュームがそれまで接続されていたストレージポート１９７から、仮想論理ボリュームをはずす旨を通知する。
【０１３８】
ステップ８００７：ストレージコントローラ２００は、追加されたストレージシステム１００に、制御権を渡す論理ボリュームの集合と割り当て権限を渡す一部の空き領域とを通知し、処理を終了する。
【０１３９】
図１９Ａは、第１の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【０１４０】
本処理フローの処理は、削除する実ストレージシステム１００で、実行される。具体的には、この処理は、削除する実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム閉塞処理部４４００を実行することにより実現される。
【０１４１】
ステップ９０００：削除する実ストレージシステム１００のストレージコントローラ２００は、論理ボリューム情報２０００を参照して、ストレージボックス１３０に定義された論理ボリュームを認識する。さらに、ストレージコントローラ２００は、各ストレージボックス１３０のストレージグループ２８０ごとに、割り当て権限をもっている領域と空き領域とを認識する。
【０１４２】
ステップ９００１：ストレージコントローラ２００は、論理ボリュームの制御権と、割り当て権限をもっている領域とのそれぞれについて、どの実ストレージシステム１００に移動するかを決定する。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１、第２Ｗ回数２３１３を参照する。これによって、各ストレージグループ２８０のアクセス頻度と、各論理ボリュームのアクセス頻度を把握できる。これに基づき、制御権を移動する論理ボリュームを決定する。
【０１４３】
ステップ９００２：ストレージコントローラ２００は、制御権を移すと決めた論理ボリュームに対応する仮想論理ボリュームを接続しているストレージポート１９７から、仮想論理ボリュームをはずす旨をサーバ１１０に通知する。
【０１４４】
ステップ９００３：ストレージコントローラ２００は、制御権を移すと決めた仮想論理ボリューム及び論理ボリュームの情報、割り当て権限を移す領域及び空き領域の情報を、該当する実ストレージシステム１００に通知する。
【０１４５】
ステップ９００４：ストレージコントローラ２００は、通知した実ストレージシステム１００からの回答が返ってくるのを待つ。
【０１４６】
ステップ９００５：次に、ストレージコントローラ２００は、サーバ１１０と通信を行い、当該実ストレージシステム１００のストレージポート１９７が閉塞されたことを通知して、処理を終了する。
【０１４７】
図１９Ｂは、第１の実施例に係る閉塞する実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【０１４８】
ステップ９００６：通知を受けた実ストレージシステム１００のストレージコントローラ２００は、閉塞する実ストレージシステム１００から通知された、制御権を譲りうける論理ボリュームの集合を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。さらに、ストレージコントローラ２００は、割り当て権限を与えられたストレージグループ２８０に対応するストレージグループ情報２３００のセグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、及び空きセグメントビットマップ２３０７に、通知された情報を設定する。
【０１４９】
ステップ９００７：実ストレージシステム１００を閉塞しようとする場合、キャッシュメモリ２１０に残っているライトデータを、他の実ストレージシステム１００に移動する必要がある。特に、キャッシュメモリ２１０が二重化されていて、一方のキャッシュメモリ２１０に障害が発生して閉塞された場合などは、ライトデータを、他の実ストレージシステム１００に移し、その実ストレージシステム１００のキャッシュメモリ２１０において二重化した状態にし、障害を起こした実ストレージシステム１００を閉塞したほうが、高信頼化を図ることが有効である。したがって、実ストレージシステム１００を閉塞しようとする場合、キャッシュメモリ２１０に残っているライトデータを、共有ストレージ装置１８０に書き込む必要がある。ここでは、閉塞する実ストレージシステム１００の論理ボリュームに、共有ストレージ１８０に書き込むライトデータがあれば、移動先の実ストレージシステム１００のキャッシュメモリ２１０に移動する処理に入る。このため、ストレージコントローラ２００は、コピー処理部４９００をコールする。
【０１５０】
ステップ９００８：ストレージコントローラ２００は、制御権を移動すると決められた論理ボリュームに対応する仮想論理ボリュームがどのストレージポート１９７に接続されているかを、サーバ１１０に報告する。
【０１５１】
ステップ９００９：この後、ストレージコントローラ２００は、閉塞する実ストレージシステム１００に処理の完了を報告する。この後、ストレージコントローラ２００は、処理を終了する。
なお、以上の処理は、実ストレージシステム１００の閉塞を行うときの処理フローであるが、実ストレージシステム１００の負荷をバランスさせるために、論理ボリュームを実ストレージシステム１００間で移動させる場合に同様な処理を行ってもよい。また、割り当て権限をもった領域を、実ストレージシステム１００間で移動させるようにしてもよい。これらの処理は以下の処理フローにより実現できる。ここでは、便宜的に図１９Ａ及び図１９Ｂを用いて説明する。なお、以下の処理においては、移動元の実ストレージシステム１００のキャッシュメモリ２１０のライトデータを、移動先の実ストレージシステム１００に移動する方式をとるが、すでに述べたように、移動元の実ストレージシステム１００が、ライトデータを共有ストレージ装置１８０に書き込むようにしても良い。後述する第２乃至第４の実施例のいずれにおいても同様である。
【０１５２】
まず、論理ボリューム、あるいは、空き領域の割当て権限の移動元の実ストレージシステム１００による処理について説明する。
【０１５３】
ステップ９００１：移動元の実ストレージシステム１００のストレージコントローラ２００は、論理ボリュームの制御権、割り当て権限をもっている領域のそれぞれについて（なお、どちらか一方であってもよい）、どの実ストレージシステム１００に移動するかを決定する。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９、及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。
【０１５４】
ステップ９００２：ストレージコントローラ２００は、制御権を移すと決めた論理ボリュームに対応する仮想論理ボリュームを接続しているストレージポート１９７から、仮想論理ボリュームをはずす旨をサーバ１１０に通知する。（なお、割り当て権限だけを移す場合は、本ステップは実行しない。）
【０１５５】
ステップ９００３：ストレージコントローラ２００は、制御権を移すと決めた仮想論理ボリューム及び論理ボリュームの情報、割り当て権限を移す領域及び空き領域の情報（どちらか一方でよい）を、該当する実ストレージシステム１００に通知する。
【０１５６】
次に、論理ボリューム制御権、あるいは、空き領域の割当て権限の移動先の実ストレージシステム１００の処理について説明する。
【０１５７】
ステップ９００６：論理ボリューム制御権、あるいは、空き領域の割当て権限の移動先の実ストレージシステム１００のストレージコントローら２００は、通知された、制御権を譲りうける論理ボリュームの集合を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。さらに、ストレージコントローラ２００は、割り当て権限を与えられたストレージグループ２８０に対応するストレージグループ情報２３００のセグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、及び空きセグメントビットマップ２３０７に、通知された情報を設定する。
【０１５８】
ステップ９００７：ストレージコントローラ２００は、コピー処理部４９００をコールする。
【０１５９】
ステップ９００８：ストレージコントローラ２００は、制御権を譲り受けると決められた論理ボリュームに対応する仮想論理ボリュームがどのストレージポート１９７に接続されているかを、サーバ１００に報告する。（なお、割り当て権限だけを移す場合は、本ステップは実行しない。）
【０１６０】
図２０Ａは、第１の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【０１６１】
本処理フローの処理は、移動元となる実ストレージシステム１００で、実行される。具体的には、この処理は、移動元となる実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム移動処理部４５００を実行することにより実現される。
【０１６２】
ステップ１００００：移動元となる実ストレージシステム１００のストレージコントローラ２００は、論理ボリューム情報２０００を参照して、ストレージボックス１３０に定義された論理ボリュームを認識する。さらに、ストレージコントローラ２００は、各ストレージボックス１３０のストレージグループ２８０ごとに、割り当て権限をもっている領域と、空き領域とを認識する。
【０１６３】
ステップ１０００１：ストレージコントローラ２００は、制御権を移すと決めた論理ボリューム（ここでは、移動元実ストレージシステム１００の全ての論理ボリューム）に対応する仮想論理ボリュームを接続しているストレージポート１９７から、仮想論理ボリュームをはずす旨をサーバ１１０に通知する。
【０１６４】
ステップ１０００２：ストレージコントローラ２００は、制御権を移すと決きめた仮想論理ボリューム及び論理ボリュームの情報、割り当て権限を移す領域及び空き領域の情報を、移動先の実ストレージシステム１００に通知する。
【０１６５】
ステップ１０００３：ストレージコントローラ２００は、通知した実ストレージシステム１００からの回答が返ってくるのを待つ。
【０１６６】
ステップ１０００４：次に、ストレージコントローラ２００は、サーバ１１０と通信を行い、当該実ストレージシステム１００のストレージポート１９７が閉塞されたことを通知して、処理を終了する。
【０１６７】
図２０Ｂは、第１の実施例に係る移動元となる実ストレージシステムから通知を受けた移動先となる実ストレージシステムの処理フローを示す図である。
【０１６８】
ステップ１０００５：移動先となる実ストレージシステム１００のストレージコントローラ２００は、通知された、制御権を譲りうける論理ボリュームの集合を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。さらに、ストレージコントローラ２００は、割り当て権限を与えられたストレージグループ２８０に対応するストレージグループ情報２３００のセグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、及び空きセグメントビットマップ２３０７に、通知された情報を設定する。
【０１６９】
ステップ１０００６：移動元の実ストレージシステム１００を閉塞しようとした場合、キャッシュメモリ２１０に残っているライトデータを、共有ストレージ装置１８０に書き込む必要がある。ここでは、移動元の論理ボリュームについて、移動元の実ストレージシステム１００のキャッシュメモリ２１０に共有ストレージ装置１８０に書き込むライトデータがあれば、このライトデータを移動先の実ストレージシステム１００のキャッシュメモリ２１０に移動する処理に入る。このため、ストレージコントローラ２００は、コピー処理部４９００をコールする。
【０１７０】
ステップ１０００７：ストレージコントローラ２００は、サーバ１１０に、移動先の実ストレージシステム１００のストレージポート１９７をサーバポート情報１９８に設定させる。さらに、ストレージコントローラ２００は、制御権を譲り受けると決められた論理ボリュームに対応する仮想論理ボリュームがどのストレージポート１９７に接続されたかを、サーバ１１０に報告する。この後、ストレージコントローラ２００は、移動元となる実ストレージシステム１００に処理の完了を報告する。この後、ストレージコントローラ２００は、処理を終了する。
【０１７１】
図２１Ａは、第１の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【０１７２】
ストレージボックス追加処理部４６００は、ストレージボックス１３０が追加されたときに、ストレージコントローラ２００により実行される。すなわち、ストレージボックス１３０が追加されたとき、そのストレージボックス１３０に接続された実ストレージシステム１００が起動され、実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０１７３】
ステップ１１０００：実ストレージシステム１００のストレージコントローラ２００は、追加されたストレージボックス１３０の容量を認識する。そして、ストレージコントローラ２００は、どの実ストレージシステム１００に、どの領域の割り当て権限を与えるかを決定する。
【０１７４】
ステップ１１００１：ストレージコントローラ２００は、認識したストレージボックス１３０の情報、自身の実ストレージシステム１００が割り当て権限をもった領域の情報などに基づき、ストレージボックス情報２０５０、ストレージグループ情報２３００、及びストレージ装置情報２５００を設定する。
【０１７５】
ステップ１１００２：ストレージコントローラ２００は、認識したストレージボックス１３０の情報、それぞれの実ストレージシステム１００に対して割り当て権限を与える領域の情報などを、対応する実ストレージシステム１００に送る。
【０１７６】
ステップ１１００３：ストレージコントローラ２００は、他の実ストレージシステム１００からの報告を待つ。
【０１７７】
ステップ１１００４：ストレージコントローラ２００は、完了報告を受け、処理を終了する。
【０１７８】
図２１Ｂは、第１の実施例に係るストレージボックスを認識した実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【０１７９】
ステップ１１００５：情報を受け取った実ストレージシステム１００のストレージコントローラ２００は、ストレージボックス１３０の情報、当該実ストレージシステム１００に対して割り当て権限が与えられる領域の情報などを、受け取る。
【０１８０】
ステップ１１００６：ストレージコントローラ２００は、受け取った情報により、ストレージボックス情報２０５０、ストレージグループ情報２３００、及びストレージ装置情報２５００を設定する。この後、ストレージコントローラ２００は、情報を送信した実ストレージシステム１００に完了報告を行い、処理を完了する。
【０１８１】
図２２は、第１の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【０１８２】
ストレージボックス閉塞処理部４７００は、ストレージボックス１３０が削除されるときに、ストレージコントローラ２００に実行される処理である。ストレージボックス１３０が削除されることが決定したとき、そのストレージボックス１３０に接続された実ストレージシステム１００の一つが起動され、この実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０１８３】
ステップ１２０００：実ストレージシステム１００のストレージコントローラ２００は、削除されるストレージボックス１３０に定義されている論理ボリュームを認識する。
【０１８４】
ステップ１２００１：ストレージコントローラ２００は、自身の実ストレージシステム１００の内部のストレージグループ２８０の空き領域及び削除されるストレージボックス１３０以外のストレージボックス１３０内の当該実ストレージシステム１００が割り当て権限を持っている空き領域の中から、削除されるストレージボックス１３０に定義されている論理ボリュームを移動する領域を決定して、当該領域を移動先となる論理ボリュームとして定義する。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照して移動先を決定する。具体的には、ストレージコントローラ２００は、新しい論理ボリューム情報２０００を確保して、必要な情報をセットする。特に、ここでは、ストレージコントローラ２００は、移動元ＬＵＮ２０１６に、当該実ストレージシステム１００の識別子、削除されるストレージボックス１３０に定義された論理ボリュームの識別子、及びその論理ボリュームが定義されたストレージボックス１３０上の領域を設定する。また、ストレージコントローラ２００は、移動する複数の論理ボリュームに対応する論理ボリューム情報２０００の中の一つの論理ボリューム情報２０００については、移動中フラグ２０１５をオンにして、移動ポインタ２０１７を先頭アドレスに設定する。ストレージコントローラ２００は、残りの論理ボリューム情報２０００については、移動待ちフラグ２０１８をオンにする。
【０１８５】
ステップ１２００２：ストレージコントローラ２００は、コピー処理部４９００を起動する。ストレージコントローラ２００は、その後処理を終了する。
【０１８６】
図２３は、第１の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【０１８７】
ストレージボックス移動処理部４８００は、旧いストレージボックス１３０が新しいストレージボックス１３０に置き換えられるときに、ストレージコントローラ２００に実行される。ストレージボックス１３０が置き換えられることが決定したとき、旧いストレージボックス１３０に接続された実ストレージシステム１００が起動され、起動された実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０１８８】
ステップ１３０００：実ストレージシステム１００のストレージコントローラ２００は、旧いストレージボックス１３０に定義されている論理ボリュームを認識する。
【０１８９】
ステップ１３００１：ストレージコントローラ２００は、新しいストレージボックス１３０の中に、認識した論理ボリュームを格納する領域を決定し、決定した領域を移動先となる論理ボリュームとして定義する。具体的には、ストレージコントローラ２００は、新しい論理ボリューム情報２０００を確保して、必要な情報をセットする。特に、ここでは、ストレージコントローラ２００は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６に、当該実ストレージシステム１００の識別子、削除されるストレージボックス１３０に定義された論理ボリュームの識別子、及びその論理ボリュームが定義された新しいストレージボックス１３０上の領域を設定する。また、ストレージコントローラ２００は、移動する複数の論理ボリュームに対応する論理ボリューム情報２０００の中の一つの論理ボリューム情報２０００については、移動中フラグ２０１５をオンにして、移動ポインタ２０１７を先頭アドレスに設定する。ストレージコントローラ２００は、残りの論理ボリューム情報２０００については、移動待ちフラグ２０１８をオンにする。
【０１９０】
ステップ１３００２：ストレージコントローラ２００は、コピー処理部４９００を起動する。
【０１９１】
ステップ１３００３：ストレージコントローラ２００は、新しいストレージボックス１３０の記憶容量が、旧いストレージボックス１３０に比べて大きい場合、容量増加分を新しいストレージボックス１３０に接続された実ストレージシステム１００の数で均等に割って割当量を決定し、その割当量と該当する領域を決めて、ストレージグループ情報２３００の空きセグメント数２３０４、空きセグメントビットマップ２３０７を更新する。この後、ストレージコントローラ２００は、処理を終了する。
【０１９２】
図２４Ａは、第１の実施例に係るコピー処理部の処理フローを示す図である。
【０１９３】
コピー処理部４９００は、他の処理部から起動を受けて、ストレージコントローラ２００により実行が開始される。
【０１９４】
ステップ１４０００：ストレージコントローラ２００は、移動中フラグ２０１５がオンの論理ボリューム情報２０００を見つける。
【０１９５】
ステップ１４００１：ストレージコントローラ２００は、当該論理ボリュームの識別子を、当該論理ボリューム情報２０００の移動元ＬＵＮ２０１６に設定した仮想論理ボリューム識別子に対応した仮想論理ボリュームの識別子にする。（移動先の論理ボリュームの識別子を移動元の論理ボリュームの識別子にコピーする。）さらに、ストレージコントローラ２００は、移動元の論理ボリュームが当該実ストレージシステム１００以外の実ストレージシステム１００で管理されている場合、サーバ１１０のサーバポート情報１９８における、対応する仮想論理ボリュームが接続されているストレージポート１９７を新しいストレージポート１９７に切り換える。
【０１９６】
ステップ１４００２：ストレージコントローラ２００は、移動元論理ボリュームの論理ボリューム情報２０００の移動元ＬＵＮ２０１６に格納されている論理ボリューム識別子の論理ボリューム（移動元論理ボリューム）に対応する論理ボリューム情報２０００と、移動元論理ボリュームが格納されているストレージグループ２８０に対応するストレージグループ情報２３００のパッケージグループＲＡＩＤタイプ２３０２と、移動ポインタ２０１７とに基づいて、読み出したデータから冗長データが生成可能な領域を、移動元論理ボリュームから読み出す領域として決定する。なお、移動元ＬＵＮ２０１６の実ストレージシステム１００の識別子が、当該実ストレージシステム１００の識別子である場合、ストレージコントローラ２００は、ストレージグループ２８０に対応するストレージグループ情報２３００のパッケージグループＲＡＩＤタイプ２３０２やストレージ装置情報２５００などから、読み出しを行うストレージ装置１６０上の物理的な領域を決定する（このとき、移動元論理ボリュームの冗長データは読み出さない）。
【０１９７】
ステップ１４００３：ストレージコントローラ２００は、移動元論理ボリュームのデータを読み出し要求を発行する。なお、このとき、移動元ＬＵＮ２０１６の実ストレージシステム１００の識別子が、当該実ストレージシステム１００の識別子でない場合、ストレージコントローラ２００は、移動元ＬＵＮ２０１６の識別子に対応する実ストレージシステム１００に読み出し要求を発行する。また、移動元ＬＵＮ２０１６の実ストレージシステム１００の識別子が、当該実ストレージシステム１００の識別子である場合、ストレージコントローラ２００は、ステップ１４００２で決定された読み出しを行うストレージ装置１６０の領域に読み出し要求を発行する。なお、サーバ１１０から発行される読み出し要求では、仮想論理ボリュームが指定されているのに対し、この読み出し要求では、論理ボリュームが指定される。
【０１９８】
ステップ１４００４：ストレージコントローラ２００は、読み出し要求が完了するのを待つ。
【０１９９】
ステップ１４００５：ストレージコントローラ２００は、読み出されたデータから冗長データを生成する。
【０２００】
ステップ１４００６：ストレージコントローラ２００は、移動先論理ボリュームの論理ボリューム情報２０００と、格納されているストレージグループ２８０とに基づいて、読み出したデータと冗長データとを書き込む移動先の論理ボリュームの領域を決定する。
【０２０１】
ステップ１４００７：ストレージコントローラ２００は、決定した移動先論理ボリュームに対する書き込み要求を発行する。
【０２０２】
ステップ１４００８：ストレージコントローラ２００は、書き込み要求が完了するのを待つ。
【０２０３】
ステップ１４００９：ストレージコントローラ２００は、移動ポインタ２０１７を更新する。なお、移動させる全ての論理ボリュームのコピーが完了していなければ、ストレージコントローラ２００は、処理をステップ１４００２へジャンプさせる。
【０２０４】
ステップ１４０１０：ストレージコントローラ２００は、移動中フラグ２０１５をオフにする。移動元論理ボリュームの実ストレージシステム１００が、当該実ストレージシステム１００の場合（移行元の論理ボリュームと移行先の論理ボリュームが同一の実ストレージシステムの場合）、ストレージコントローラ２００は、移動元ＬＵＮ２０１６に対応する論理ボリューム情報２０００を無効にする。
【０２０５】
ステップ１４０１１：ストレージコントローラ２００は、移動待ちフラグ２０１８がオンの論理ボリューム情報２０００を見つける。移動待ちフラグ２０１８がオンの論理ボリューム情報２０００がなければ、ストレージコントローラ２００は、処理を完了する。
【０２０６】
ステップ１４０１２：ストレージコントローラ２００は、移動待ちフラグ２０１８をオフにして、移動中フラグ２０１５をオンにする。この後、ストレージコントローラ２００は、処理をステップ１４０００にジャンプさせる。
【０２０７】
図２４Ｂは、移動先の論理ボリュームを含む実ストレージシステムから、論理ボリュームの中の指定された領域を読み出すよう指示された、移動元の論理ボリュームを含む実ストレージシステムの処理フローを示す図である。
【０２０８】
ステップ１４０１３：ストレージコントローラ２００は、:指定された論理ボリュームの論理ボリューム情報２０００を認識する。さらに、ストレージコントローラ２００は、論理ボリューム情報２０００と指定された領域と対応するストレージシステムムグループ情報２３０００、ストレージ装置情報２５００などから、読み出しを行うストレージ装置１６０とその領域を認識する。
【０２０９】
ステップ１４０１４：ストレージコントローラ２００は、ストレージ装置１６０に読み出し要求を発行する。
【０２１０】
ステップ１４０１５：ストレージコントローラ２００は、読み出し要求が完了するのを待つ。
【０２１１】
ステップ１４０１６：ストレージコントローラ２００は、要求が完了したら、読み出したデータを、当該論理ボリュームのデータの送信を要求した実ストレージシステム１００に送る。
【０２１２】
ステップ１４０１７: ストレージコントローラ２００は、当該論理ボリュームの最後まで、データを送った場合、当該論理ボリュームの論理ボリュームの情報を消去する。また、ストレージコントローラ２００は、当該論理ボリュームに割りあてていたセグメントに対応する空きセグメントビットマップ２３０４のビットをオンし、セグメントの数だけ、空きセグメント数２３０７を増加させる。
【０２１３】
図２５は、第１の実施例に係るキャッシュ閉塞スケジュール部の処理フローを示す図である。
【０２１４】
キャッシュ閉塞スケジュール部４９１０は、閉塞する実ストレージシステム１００から論理ボリュームを引き継ぐ実ストレージシステム１００や、論理ボリュームの移動先の実ストレージシステム１００において、ストレージコントローラ２００により実行される。
【０２１５】
ステップ１５０００：ストレージコントローラ２００は、引き継ぐ論理ボリューム又は、移動先となるすべての論理ボリュームに対応する論理ボリューム情報２０００の閉塞移動中フラグ２０１９をオンにして、閉塞移動元ＬＵＮ２０２１に、移動元の論理ボリューム、移動元の実ストレージシステム１００、及びストレージポート１９７の情報を設定する。
【０２１６】
ステップ１５００１：ストレージコントローラ２００は、キャッシュ閉塞処理部４９２０を起動する。
【０２１７】
ステップ１５００２：ストレージコントローラ２００は、引き継ぐ論理ボリューム、又は移動先となる論理ボリュームの全てに対する処理が終わったか否かをチェックする。この結果、処理が終了していなければ（ステップ１５００２：Ｙ）、ストレージコントローラ２００は、処理をステップ１５０００へジャンプさせる一方、処理が終了していれば（ステップ１５００２：Ｎ）、処理を完了する。
【０２１８】
図２６Ａは、第１の実施例に係るキャッシュ閉塞処理部の処理フローを示す図である。
【０２１９】
キャッシュ閉塞処理部４９２０は、論理ボリュームを引き継ぐ実ストレージシステム１００、又は論理ボリュームの移動先の実ストレージシステム１００のストレージコントローラ２００により実行される。
【０２２０】
ステップ１７０００：ストレージコントローラ２００は、引き継ぐ論理ボリューム又は移動先の論理ボリュームに対応する論理ボリューム情報２０００の移動元ＬＵＮ２０１６に含まれる、実ストレージシステム１００及び論理ボリュームの識別子と、移動ポインタ２０１７のアドレスとを指定して、そのアドレス以降で、キャッシュメモリ２１０に残っているライトデータを転送するよう、実ストレージシステム１００に要求する。
【０２２１】
ステップ１７００１：ストレージコントローラ２００は、データが送られてくるのを待つ。
【０２２２】
ステップ１７００２、ステップ１７００３：ストレージコントローラ２００は、データが送られてこなかった場合（ステップ１７００３：Ｙ）、すべてのデータを受け取ったことを意味するので、処理を完了する。：ストレージコントローラ２００は、データが送られてきた場合（ステップ１７００３：Ｎ）、キャッシュメモリ２１０にこのデータを格納する。さらに、ストレージコントローラ２００は、移動ポインタ２０１７に送られてきたデータの次のアドレスを設定して、処理をステップ１７０００へ進める。
【０２２３】
図２６Ｂは、第１の実施例に係る移動元の実ストレージシステムの処理フローを示す。
【０２２４】
ステップ１７００４：移動元の実ストレージシステム１００のストレージコントローラ２００は、移動先の実ストレージシステム１００から受け取った論理ボリュームのアドレスから、ストレージ装置１６０に書き込むべきライトデータが、キャッシュメモリ２１０に残っているか否かを探す。ストレージ装置１６０に書き込むべきライトデータが見つかった場合、ストレージコントローラ２００は、このライトデータと論理ボリューム上のアドレスとを、移動先の実ストレージシステム１００に転送する。その後、ストレージコントローラ２００は、処理を終了する。
【０２２５】
図２７は、第１の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【０２２６】
仮想論理ボリューム定義部４９５０は、仮想論理ボリュームを定義するときに、ストレージコントローラ２００により実行される。この場合、当該仮想論理ボリュームの制御権をもつ実ストレージシステム１００のストレージコントローラ２００が仮想論理ボリューム定義部４９５０を実行する。また、仮想論理ボリューム定義部４９５０の実行の際には、仮想論理ボリュームの識別子、論理ボリュームの識別子、及び論理ボリュームの容量が指定される。
【０２２７】
ステップ１８０００：ストレージコントローラ２００は、指定された仮想論理ボリュームの識別子をもつ仮想論理ボリューム情報２０８５を見いだし、仮想論理ボリューム情報２０８５の論理ボリューム識別子２０９０に指定された論理ボリュームの識別子を設定する。
【０２２８】
ステップ１８００１：ストレージコントローラ２００は、指定された論理ボリュームの識別子をもつ論理ボリューム情報２０００を見いだし、指定された容量を、論理ボリューム情報２０００の論理容量２００２に設定する。
【０２２９】
ステップ１８００２：ストレージコントローラ２００は、ストレージグループ情報２３００をサーチして、指定された容量に該当する空き領域をもつストレージグループ２８０に、論理ボリュームの領域を割り当てる処理を実行する。この後、ストレージコントローラ２００は、処理を終了する。
【０２３０】
図２８は、第１の実施例に係る仮想論理ボリューム消去部の処理フローを示す図である。
【０２３１】
仮想論理ボリューム消去部４９６０は、仮想論理ボリュームを消去するときに、実行される。この場合、消去する仮想論理ボリュームの制御権をもつ実ストレージシステム１００のストレージコントローラ２００により仮想論理ボリューム消去部４９６０が実行される。また、仮想論理ボリューム消去部４９６０の実行の際には、消去対象の仮想論理ボリュームの識別子が指定される。
【０２３２】
ステップ１９０００：ストレージコントローラ２００は、指定された仮想論理ボリュームの識別子をもつ仮想論理ボリューム情報２０８５を見いだし、論理ボリューム識別子２０９０に格納された論理ボリュームの識別子を、別に記憶し、論理ボリューム識別子２０９０の値を消去する。
【０２３３】
ステップ１９００１：ストレージコントローラ２００は、別に記憶している論理ボリュームの識別子をもつ論理ボリューム情報２０００を見いだす。
【０２３４】
ステップ１９００２：ストレージコントローラ２００は、消去される仮想論理ボリュームに割り当てられていた領域を、空き領域にする。ストレージコントローラ２００は、割り当てていたストレージグループ情報２３００をサーチして、消去される仮想論理ボリュームに割り当てられていた領域を空き領域にする。この後、ストレージコントローラ２００は、処理を終了する。
【実施例２】
【０２３５】
次に、第２の実施例に係る情報システムについて説明する。
【０２３６】
第２の実施例に係る情報システムは、ストレージボックス１３０のアクセス権限、論理ボリュームの割当て権限を、一つの実ストレージシステム１００がもつ。第２の実施例における情報システムの構成は、第１の実施例と同じである。
【０２３７】
第２の実施例に係るサーバポート情報１９８の構成は、第１の実施例に係るサーバポート情報１９８と同じである。また、第２の実施例に係る実ストレージシステム１００の構成は、第１の実施例に係る実ストレージシステム１００と同じである。
【０２３８】
第２の実施例に係るキャッシュメモリ２１０の構成は、第１の実施例に係るキャッシュメモリ２１０と同じである。
【０２３９】
第２の実施例に係る実ストレージシステム１００の共有メモリ２２０の中の情報は、第１の実施例に係る共有メモリ２２０と同様である。第２の実施例に係るストレージシステム情報２０６０は、第１の実施例に係るストレージシステム情報２０６０と同様である。第２の実施例に係る仮想論理ボリューム情報２０８５は、第１の実施例に係る仮想論理ボリューム情報２０８５と同様である。
【０２４０】
第２の実施例に係る論理ボリューム情報２０００の構成は、第１の実施例に係る論理ボリューム情報２０００と同様である。また、第２の実施例に係るキャッシュ管理情報２７５０の構成は、第１の実施例に係るキャッシュ管理情報２７５０と同様である。
【０２４１】
図２９は、第２の実施例に係るストレージボックス情報の構成を示す図である。
【０２４２】
第２の実施例に係るストレージボックス情報２０５０と、第１の実施例に係るストレージボックス情報２０５０との違いは、ストレージボックス情報２０５０の中に、制御権ストレージシステム７００６を持つ点である。第２の実施例に係る情報システムでは、ストレージボックス１３０ごとに制御権をもつ実ストレージシステム１００が決まっている。制御権ストレージシステム７００６は、ストレージボックス情報２０５０に対応するストレージボックス１３０の制御権をもった実ストレージシステム１００の識別子である。ストレージボックス情報２０５０のそれ以外の情報は、第１の実施例に係るストレージボックス情報２０５０と同様である。
【０２４３】
図３０は第２の実施例に係るストレージグループ情報の構成を示す図である。
【０２４４】
第２の実施例に係るストレージグループ情報２３００と、第１の実施例に係るストレージグループ情報２３００との相違は、第２の実施例に係るストレージグループ情報２３００が、割り当て可能セグメント数２３０９、割り当て可能セグメントビットマップ２３０８をもっていない点である。これは、ストレージグループ２８０の制御権をもっている実ストレージシステム１００が決まっているためである。
【０２４５】
第２の実施例に係るストレージ装置情報２５００の構成は、第１の実施例に係るストレージ装置情報２５００と同様である。
【０２４６】
次に、上述の管理情報を用いて、ストレージコントローラ２００が実行する動作の説明を行う。ストレージコントローラ２００の動作は、ストレージコントローラ２００内のプロセッサ２６０がメモリ２７０に格納されているプログラムを実行することにより実現される。第２の実施例において、メモリ２７０内に格納されたプログラムは、第１の実施例と同様である。
【０２４７】
リード処理実行部４０００、ライト要求受付部４１００、及びライトアフタ処理実行部４２００の処理フローは、第１の実施例と同様である。
【０２４８】
図３１Ａは、第２の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【０２４９】
本処理フローの処理は、追加された実ストレージシステム１００で、実行される。具体的には、この処理は、追加された実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム追加処理部４３００を実行することにより実現される。
【０２５０】
第２の実施例に係る処理フローが、第１の実施例に係る処理フローと異なるのは、下記の通りである。
【０２５１】
ステップ２００００： ストレージコントローラ２００は、仮想ストレージシステム１９０内に、実ストレージステム１００が追加されたこと及び当該実ストレージシステム１００がアクセス可能なストレージボックス１３０を示す情報を、同一仮想ストレージシステム１９０の他の実ストレージシステム１００に通知する。このように、第２の実施例では、ストレージボックス１３０を単位として割り当て権限が与えられる。
【０２５２】
図３１Ｂは、第２の実施例に係る追加された実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【０２５３】
ステップ２０００１：ストレージコントローラ２００は、通知されたストレージボックス１３０の中から追加された実ストレージシステム１００に制御権を渡すストレージボックス１３０を決定する。第２の実施例では、ストレージボックス１３０を単位として割り当て権限が移される。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。
【０２５４】
図３２Ａは、第２の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【０２５５】
本処理フローの処理は、削除する実ストレージシステム１００で実行される。具体的には、この処理は、削除する実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム閉塞処理部４４００を実行することにより実現される。
【０２５６】
第２の実施例に係る処理フローが、第１の実施例の処理フローと異なるのは、以下の通りである。
【０２５７】
ステップ２１０００、ステップ２１００１：これらステップは、ステップ９０００、９００１に対応するが、第２の実施例においては、ストレージボックス１３０についての割り当て権限を移譲する処理を行うようにしている。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９、第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１、第２Ｗ回数２３１３を参照する。
【０２５８】
図３２Ｂは、第２の実施例に係る削除される実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【０２５９】
ステップ２１００２：このステップは、ステップ９００６に対応するが、ステップ２１００２では、ストレージコントローラ２００は、ストレージボックス１３０単位で割り当て権限を譲り受けるようにしている。
【０２６０】
第２の実施例でも、実ストレージシステム１００の負荷をバランスさせるため、論理ボリュームを実ストレージシステム１００間で移動させる場合に同様な処理を行ってもよい。また、割り当て権限をもった領域を、実ストレージシステム１００間で移動させるようにしてもよい。この場合、その処理では、ステップ２１０００、ステップ２１００１、及びステップ２１００２を実行することとなる。
【０２６１】
図３３Ａは、第２の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【０２６２】
本処理フローの処理は、移動元となる実ストレージシステム１００で実行される。具体的には、この処理は、移動元となる実ストレージシステム１００のストレージコントローラ２００のプロセッサ２６０がストレージシステム移動処理部４５００を実行することにより実現される。
【０２６３】
第２の実施例に係る処理フローが、第１の実施例の処理フローと異なるのは、以下の通りである。
【０２６４】
ステップ２２０００：このステップは、ステップ１０００２に対応するが、ステップ２２０００では、ストレージコントローラ２００は、ストレージボックス１３０について、割り当て権限を移動する。
【０２６５】
図３３Ｂは、第２の実施例に係る移動先の実ストレージシステムから通知を受けた実ストレージシステムの処理フローを示す図である。
【０２６６】
ステップ２２００１：このステップは、ステップ１０００５に対応するが、ステップ２２００１では、ストレージコントローラ２００は、ストレージボックス１３０単位で割り当て権限を譲り受けるようにしている。 
【０２６７】
図３４Ａは、第２の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
ストレージボックス追加処理部４６００は、ストレージボックス１３０が追加されたときに、ストレージコントローラ２００により実行される。ストレージボックス１３０が追加されたとき、そのストレージボックス１３０に接続された実ストレージシステム１００が起動され、この実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０２６８】
第２の実施例に係る処理フローが第１の実施例に係る処理フローと異なる点は、処理を実行するのが割り当て権限をもつ実ストレージコントローラ１００である点であり、下記の通りである。 
【０２６９】
ステップ２３０００：ストレージコントローラ２００は、ストレージボックス情報２０５０、ストレージグループ情報２３００、及びストレージ装置情報２５００を設定する。
【０２７０】
ステップ２３００１：ストレージコントローラ２００は、認識したストレージボックス１３０の情報、当該実ストレージシステム１００が割り当て権限をもつ旨の情報を、他の実ストレージシステム１００に送る。
【０２７１】
図３４Ｂは、第２の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【０２７２】
ステップ２３００２：ストレージコントローラ２００は、受け取った情報により、ストレージボックス情報２０５０、ストレージグループ情報２３００、及びストレージ装置情報２５００を設定し、処理を完了する。
【０２７３】
図６０は、第２の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【０２７４】
ストレージボックス閉塞処理部４７００は、ストレージボックス１３０が削除されるときに、ストレージコントローラ２００により実行される。ストレージボックス１３０が削除されることが決定したとき、そのストレージボックス１３０の制御権をもっている実ストレージシステム１００が起動され、この実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０２７５】
ステップ２４０００：実ストレージシステム１００のストレージコントローラ２００は、削除されるストレージボックス１３０に定義されている論理ボリュームを認識する。
【０２７６】
ステップ２４００１：ストレージコントローラ２００は、自身の実ストレージシステム１００の内部のストレージグループ２８０の空き領域及び削除されるストレージボックス１３０以外のストレージボックス１３０内の当該実ストレージシステム１００が割り当て権限を持っているストレージボックス１３０の中から、削除されるストレージボックス１３０に定義された論理ボリュームを移動する領域を決定して、当該領域を移動先となる論理ボリュームとして定義する。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。具体的には、ストレージコントローラ２００は、新しい論理ボリューム情報２０００を確保して、必要な情報をセットする。特に、ここでは、ストレージコントローラ２００は、移動元ＬＵＮ２０１６に、当該実ストレージシステム１００の識別子、削除されるストレージボックス１３０に定義された論理ボリュームの識別子、及びその論理ボリュームが定義されたストレージボックス１３０上の領域を設定する。また、ストレージコントローラ２００は、移動する複数の論理ボリュームに対応する論理ボリューム情報２０００の中の一つの論理ボリューム情報２０００については、移動中フラグ２０１５をオンにして、移動ポインタ２０１７を先頭アドレスに設定する。ストレージコントローラ２００は、残りの論理ボリューム情報２０００については、移動待ちフラグ２０１８をオンにする。
【０２７７】
ステップ２４００２：ストレージコントローラ２００は、コピー処理部４９００を起動する。ストレージコントローラ２００は、その後処理を終了する。
【０２７８】
図３５は、第２の実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【０２７９】
ストレージボックス移動処理部４８００は、旧いストレージボックス１３０が新しいストレージボックス１３０に置き換えられるときに、実行される。ストレージボックス１３０が置き換えられることが決定したとき、旧いストレージボックス１３０の制御権をもっている実ストレージシステム１００が起動され、起動された実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０２８０】
ステップ２５０００：実ストレージシステム１００のストレージコントローラ２００は、旧いストレージボックス１３０に定義されている論理ボリュームを認識する。
【０２８１】
ステップ２５００１：ストレージコントローラ２００は、新しいストレージボックス１３０の中に、認識した論理ボリュームを格納する領域を決定し、決定した領域を移動先となる論理ボリュームとして定義する。具体的には、ストレージコントローラ２００は、新しい論理ボリューム情報２０００を確保して、必要な情報をセットする。特に、ここでは、ストレージコントローラ２００は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６に、当該実ストレージシステム１００の識別子、削除されるストレージボックス１３０に定義された論理ボリュームの識別子、及びその論理ボリュームが定義された新しいストレージボックス１３０上の領域を設定する。また、ストレージコントローラ２００は、移動する複数の論理ボリュームに対応する論理ボリューム情報２０００の中の一つの論理ボリューム情報２０００については、移中フラグ２０１５をオンにして、移動ポインタ２０１７を先頭アドレスに設定する。ストレージコントローラ２００は、残りの論理ボリューム情報２０００については、移動待ちフラグ２０１８をオンにする。
【０２８２】
ステップ２５００２：ストレージコントローラ２００は、コピー処理部４９００を起動する。
【０２８３】
第２の実施例に係るコピー処理部４９００の処理フローは、第１の実施例に係るコピー処理部４９００の処理フローと同様である。
【０２８４】
また、第２の実施例に係るキャッシュ閉塞スケジュール部４９１０の処理フローは、第１の実施例に係るキャッシュ閉塞スケジュール部４９１０の処理フローと同様である。
【０２８５】
また、第２の実施例に係るキャッシュ閉塞処理部４９２０の処理フローは、第１の実施例に係るキャッシュ閉塞処理部４９２０の処理フローと同じである。
【０２８６】
図３６は、第２の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【０２８７】
第２の実施例に係る処理フローが第１の実施例に係る処理フローと異なるのは、下記の通りである。 
【０２８８】
ステップ２６０００：ストレージコントローラ２００は、当該実ストレージシステム１００が割り当て権限をもつストレージボックス１３０内に論理ボリュームを定義する。
【０２８９】
第２の実施例に係る仮想論理ボリューム消去処理部４９６０の処理フローは、第１の実施例に係る仮想論理ボリューム消去処理部４９６０の処理フローと同様である。
【実施例３】
【０２９０】
次に、第３の実施例に係る情報システムについて説明する。
【０２９１】
第３の実施例に係る情報システムの構成は、第１の実施例に係る情報システムと同じである。第３の実施例では、実ストレージシステム１００が容量仮想化機能をもつている。
【０２９２】
第３の実施例に係る実ストレージシステム１００の構成は、第１の実施例に係る実ストレージシステム１００と同じである。また、第３の実施例に係るサーバポート情報１９８の構成は、第１の実施例に係るサーバポート情報１９８と同様である。
【０２９３】
第３の実施例に係るキャッシュメモリ２１０の構成は、第１の実施例に係るキャッシュメモリ２１０と同じである。
【０２９４】
図３７は、第３の実施例に係る共有メモリに格納された情報を示す図である。
【０２９５】
共有メモリ２２０は、ストレージシステム情報２０６０、他ストレージシステム情報２０７０、仮想論理ボリューム情報２０８５、論理ボリューム情報２０００、ストレージボックス情報２０５０、実ページ情報２１００、ストレージグループ情報２３００、ストレージ装置情報２５００、仮想ページ容量２６００、キャッシュ管理情報２７５０、及び空きキャッシュ管理情報ポインタ２６５０を格納する。第３の実施例に係るストレージシステム情報２０６０は、第１の実施例に係るストレージシステム情報２０６０と同様である。また、第３の実施例に係る仮想論理ボリューム情報２０８５は、第１の実施例に係る仮想論理ボリューム情報２０８５と同様である。仮想論理ボリューム情報２０８５は、仮想論理ボリューム毎に対応して作成される。
【０２９６】
図３８は、第３の実施例に係る論理ボリューム情報の構成を示す図である。
【０２９７】
第３の実施例に係る論理ボリューム情報２０００が第１の実施例に係る論理ボリューム情報２０００と異なる点は、割り当て範囲２００６の代わりに、実ページポインタ２００４を含む点である。第３の実施例では、実ストレージシステム１００が容量仮想化機能をもっている。容量仮想化機能とは、論理ボリュームを定義したときに物理的な領域を割り当てずに、ライト要求があったときに、始めて、ライトされた領域を含むページを割り当てる機能である。論理ボリュームは、このページサイズごとに分割されていて、論理ボリュームの空間におけるページを仮想ページと呼び、実際に割り当てるページを実ページと呼ぶ。このため、論理ボリューム情報２０００は、論理ボリュームの定義容量を、仮想ページサイズで割った数分の実ページポインタ２００４を持ち、仮想ページに実ページを割り当てたとき、実ページポインタ２００４に、その実ページ情報２１００のアドレスが設定される。
【０２９８】
第３の実施例では、ストレージステム１００が容量仮想化機能をサポートしている。通常、容量仮想化機能において、記憶領域の割り当て単位は、ページと呼ばれる。また、論理ボリュームは、通常、サーバ１１０が読み書きをする論理的なストレージ装置である。ただし、本実施例では、キャッシングのために使用するストレージ装置の領域を論理ボリュームとして定義している。そして、この論理ボリュームにも、容量仮想化機能を適用して、ページを割り当てることで、実記憶領域を確保する。なお、本実施例では、論理ボリュームの空間は、仮想ページという単位で、分割されているものとし、実際のストレージグループ２８０は、実ページという単位で分割されているものとする。容量仮想化においては、論理ボリュームの記憶容量を、実際の記憶媒体の容量よりも大きく見せる。このため、仮想ページの数のほうが、実ページの数より大きいのが、一般的である。容量仮想化機能を実現した場合、サーバ１１０からのライト要求で書き込みを指示されたアドレスを含む仮想ページに実ページが割り当てられていないとき、ストレージコントローラ２００が実ページを割り当てる。仮想ページ容量２６００は、仮想ページの容量である。しかし、本実施例では、仮想ページ容量２６００と実ページの容量は等しいというわけではない。というのは、実ページの容量は、ＲＡＩＤのタイプにより異なってくる冗長データを含むためである。したがって、実ページの容量は、その実ページが割り当てられたストレージグループ２８０のＲＡＩＤタイプにより決まる。たとえば、ＲＡＩＤ１のようにデータを２重に書き込む場合、実ページの容量は、仮想ページ容量２６００の２倍になる。ＲＡＩＤ５のように、Ｎ台のストレージ装置の容量に対し、１台分のストレージ装置の容量の冗長データを格納する場合、仮想ページ容量２６００の（Ｎ＋１）／Ｎの容量が確保される。当然、ＲＡＩＤ０のように、冗長性がない場合、仮想ページ容量２６００と等しい容量が実ページの容量ということになる。なお、本実施例においては、仮想ページ容量２６００は、実ストレージシステム１００の中で共通であるが、実ストレージシステム１００に仮想ページ容量２６００に異なったものがあってもよい。なお、本実施例では、それぞれのストレージグループは、ＲＡＩＤ５で構成されているものとする。もちろん、ストレージグループが任意のＲＡＩＤグループで構成されていてもよい。
【０２９９】
第３の実施例に係るキャッシュ管理情報２７５０の構成は、第１の実施例に係るキャッシュ管理情報２７５０の構成と同様である。
【０３００】
第３の実施例に係る空きキャッシュ管理情報ポインタ２６５０を用いて管理される空きキャッシュ情報管理キュー２２０１のデータ構造は、第１の実施例に係る空きキャッシュ情報管理キュー２２０１のデータ構造と同じである。
【０３０１】
第３の実施例に係るストレージボックス情報２０５０の構成は、第１の実施例に係るストレージボックス情報２０５０と同じである。
【０３０２】
図３９は、第３の実施例に係るストレージグループ情報の構成を示す図である。
【０３０３】
第３の実施例に係るストレージグループ情報２３００は、第１の実施例に係るストレージグループ情報２３００に含まれるセグメント数２３０３、割り当て可能セグメント数２３０９、空きセグメント数２３０４、割り当て可能セグメントビットマップ２３０８、及び空きセグメントビットマップ２３０７を含まないかわりに、空き実ページポインタ２３１５を含む。
【０３０４】
図４０は、第３の実施例に係る実ページ情報の構成を示す図である。
【０３０５】
実ページ情報２１００は、実ページごとに存在する各実ページを管理するための管理情報である。実ページ情報２１００は、パッケージグループ２１０１、実ページアドレス２１０２、及び空きページポインタ２１０３を含む。
【０３０６】
パッケージグループ２１０１は、実ページ情報２１００に対応する実ページが、どのストレージ装置１６０に割り当てられているかを示す。実ページアドレス２１０２は、実ページがストレージグループ２８０の中で、どの相対的なアドレスに割り当てられているかを示す情報である。空きページポインタ２１０３は、この実ページに仮想ページが割り当てられていない場合、有効な値となる。この実ページに仮想ページが割り当てられていない場合、空きページポインタ２１０３の値は、ストレージグループ２８０の中で、次の仮想ページが割り当てられていない空きページに対応する実ページ情報２１００をさす。
【０３０７】
図４１は、第３の実施例に係る空きページ情報管理キューの構成を示す図である。
【０３０８】
空き実ページポインタ２２００は、ストレージグループ２８０ごとに設けられる情報である。空きページ情報管理キュー２２１０は、空き実ページポインタ２２００によって管理される空き実ページの集合を表している。空き実ページとは、仮想ページに割り当てられていない実ページを意味する。また、空き実ページに対応した実ページ情報２１００を空き実ページ情報２１００と呼ぶ。空き実ページポインタ２２００は、先頭の空き実ページ情報２１００のアドレスをさす。先頭の空き実ページ情報２１００の中の空きページポインタ２１０３は、次の空き実ページ情報２１００を指す。図４１では、最後の空き実ページ情報２１００の空き実ページポインタ２１０３は、空き実ページポインタ２２００を示しているが、ヌル値でもよい。ストレージコントローラ２００は、実ページを割り当てていない仮想ページに書き込み要求を受け付けると、論理ボリュームＲＡＩＤグループタイプ２００３と割り当て範囲２００６とに該当するストレージグループ２８０のいずれか、例えば、該当するストレージグループ２８０の中の空き実ページ数の最も多いストレージグループ２８０に対応する空き実ページポインタ２２００から、空き実ページを探し、仮想ページに割り当てる。
【０３０９】
第３の実施例に係るストレージ装置情報２５００の構成は、第１の実施例に係るストレージ装置情報２５００の構成と同様である。
【０３１０】
次に、上述の管理情報を用いて、ストレージコントローラ２００が実行する動作の説明を行う。ストレージコントローラ２００の動作は、ストレージコントローラ２００内のプロセッサ２６０がメモリ２７０に格納されているプログラムを実行することにより実現される。第３の実施例において、メモリ２７０内に格納されたプログラムは、第１の実施例と同様である。
【０３１１】
図４２Ａは、第３の実施例に係るリード処理実行部の処理フローを示す図である。図４２Ｂは、第３の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【０３１２】
リード処理実行部４０００は、ストレージコントローラ２００が、サーバ１１０からリード要求を受け付けたときに実行される。第３の実施例に係る処理フローと、第１の実施例に係る処理フローとの相違は以下の通りである。
【０３１３】
ステップ５００４の代わりに、以下のステップが実行される。
【０３１４】
ステップ２７０００：ストレージコントローラ２００は、リード要求が示す論理ボリュームに対応する論理ボリューム情報２０００の移動元ＬＵＮ２０１６に格納された識別子に対応する実ストレージシステム１００に、移動元ＬＵＮ２０１６に格納されたストレージポート及び論理ボリューム識別子と、リード要求で指定されたアドレスとを指定して、データを読むよう要求する。なお、実ストレージシステム１００が、自身の実ストレージシステム１００の場合もある。この場合、ストレージコントローラ２００は、移動元ＬＵＮ２０１６に格納されている論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。また、ストレージコントローラ２００は、対応するアドレスの実ページポインタ２００４を参照して、実ページを含むストレージグループ２８０に対応するストレージグループ情報２３００を認識し、ＲＡＩＤタイプなどから、要求されたデータを含むストレージ装置１６０とそのアドレスとを認識して、該当するストレージ装置１６０に、読み出し要求を発行する。
【０３１５】
ステップ５０１２の代わりに、以下のステップを実行する。
【０３１６】
ステップ２７００１：ストレージコントローラ２００は、論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。ストレージコントローラ２００は、対応するアドレスの実ページポインタ２００４を参照して、実ページを含むストレージグループ２８０に対応するストレージグループ情報２３００を認識し、ＲＡＩＤタイプなどから、要求されたデータを含むストレージ装置１６０とそのアドレスとを認識して、該当するストレージ装置１６０に、読み出し要求を発行する。
【０３１７】
図４３Ａは、第３の実施例に係るライト要求受付部の処理フローを示す図である。図４３Ｂは、第３の実施例に係るキャッシュメモリのライトデータを転送するよう要求された実ストレージシステムの処理フローを示す図である。
【０３１８】
ライト要求受付部４１００は、ストレージコントローラ２００が、サーバ１１０からライト要求を受け付けたときに実行される。
【０３１９】
ここでは、第３の実施例に係るライト要求受付部４１００の処理フローについて、第１の実施例に係るライト要求受付部４１００の処理フローとの違いを説明する。
【０３２０】
ステップ６００２の前に、以下のステップが挿入されている。
【０３２１】
ステップ２８０００：ストレージコントローラ２００は、処理対象の論理ボリュームの論理ボリューム情報２０００の移動中フラグ２０１５をチェックして、移動中フラグ２０１５がオフであるなら（ステップ２８０００：Ｎ）、処理をステップ２８００２へジャンプさせる。一方、移動中フラグ２０１５がオンである場合、ストレージコントローラ２００は、移動中フラグ２０１５が、ライトするアドレスより小さいか否かをチェックし、移動中フラグ２０１５がライトするアドレスより小さければ（ステップ２８０００：Ｎ））、処理をステップ２８００２へジャンプさせる。
【０３２２】
ステップ２８００１：ストレージコントローラ２００は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６を参照して、コピー元の論理ボリュームが当該実ストレージシステム１００の論理ボリュームであれば、対応する実ページポインタ２００４を参照して、実ページが割当てられていなければ、適当なストレージグループのストレージグループ情報２３００を選択して、空き実ページ情報ポインタ２３１５から、実ページ情報２１００を特定して、割り当てる。この後、ストレージコントローラ２００は、処理をステップ６００２へジャンプさせる。
【０３２３】
ステップ２８００２：ストレージコントローラ２００は、ライトするアドレスに基づいて、実ページポインタ２００４を参照して、ライトするアドレスの領域に対して実ページが割り当てられているか否かを参照して、実ページが割り当てわれていなければ、適当なストレージグループ２８０に対応するストレージグループ情報２３００を選択して、空き実ページ情報ポインタ２３１５から、実ページ情報２１００を特定して、割り当てる。
【０３２４】
図４４は、第３の実施例に係るライトアフタ処理実行部の処理フローを示す図である。
【０３２５】
ここでは、第３の実施例に係るライトアフタ処理実行部４２００の処理フローについて、第１の実施例に係るライトアフタ処理実行部４２００の処理フローとの違いを説明する。
【０３２６】
ステップ７００３の代わりに、下記のステップが挿入されている。
【０３２７】
ステップ２９０００：プロセッサ２６０は、移動元ＬＵＮ２０１６に格納されている論理ボリュームの識別子から、対応する論理ボリューム情報２０００を認識する。さらに、プロセッサ２６０は、実ページポインタ２００４を認識し、書き込みを行う実ページのアドレスを認識する。ＲＡＩＤタイプなどから、ライトデータに対応する冗長データを生成するのに、必要な情報を読み込むため、プロセッサ２６０は、ストレージ装置１６０とそのアドレスとを認識して、該当するストレージ装置１６０に、読み出し要求を発行する。
【０３２８】
ステップ７００９の代わりに、下記のステップが挿入されている。
【０３２９】
ステップ２９００１：プロセッサ２６０は、論理ボリュームに対応する論理ボリューム情報２０００の実ページポインタ２００４を参照して、対応するストレージグループ２８０を認識し、ライトする領域を認識する。さらに、プロセッサ２６０は、ＲＡＩＤタイプなどから、ライトデータに対応する冗長データを生成するのに、必要な情報を読み込むため、ストレージ装置１６０とそのアドレスとを認識して、該当するストレージ装置１６０に、読み出し要求を発行する。
【０３３０】
図４５Ａは、第３の実施例に係るストレージシステム追加処理部４３００の処理フローである。
【０３３１】
本処理フローの処理は、追加された実ストレージシステム１００で実行される。ここでは、第３の実施例に係るストレージシステム追加処理部４３００の処理フローについて、第１の実施例に係るストレージシステム追加処理部４３００の処理フローとの違いを説明する。
【０３３２】
ステップ８００３の代わりに、以下のステップが挿入されている。
【０３３３】
ステップ３００００：ストレージコントローラ２００は、制御権を譲りうけた論理ボリュームの集合を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。また、ストレージコントローラ２００は、論理ボリュームに割り当てられていた実ページの集合のぞれぞれの実ページに対し、実ページ情報２１００を生成し、必要な情報の設定を行い、対応する実ページポインタ２００４が、実ページ情報２１００を示すように設定する。さらに、ストレージコントローラ２００は、割り当て権限が与えられた実ページに関して、実ページ情報２１００を生成して、対応するストレージグループ２８０に対応するストレージグループ情報２３００の空き実ページポインタ２３１５に登録する。
【０３３４】
図４５Ｂは、第３の実施例に係る追加された実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０３３５】
ステップ８００５の代わりに、以下のステップが挿入される。
【０３３６】
ステップ３０００１：通知を受けた実ストレージシステム１００のストレージコントローラ２００は、追加された実ストレージシステム１００がアクセス権限をもっていて、かつ、当該実ストレージシステム１００がアクセス権限をもっているストレージボックス１３０を処理対象として以下の処理を行う。なお、処理対象となるストレージボックス１３０が一つもない場合、ストレージコントローラ２００は、その旨を追加された実ストレージシステム１００に通知する。まず、ストレージコントローラ２００は、処理対象のストレージボックス１３０上に、定義されている論理ボリュームをすべて把握し、追加された実ストレージシステム１００に制御権を渡す論理ボリュームの集合を決定し、さらに、実ページポインタ２００４を参照して、割り当てた実ページ情報２１００から実ページのアドレスを認識し、対応する実ページ情報２１００を消去する。この論理ボリュームの集合を決定する際に、ストレージコントローラ２００は、各論理ボリューム情報の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割り当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。さらに、ストレージコントローラ２００は、処理対象のストレージボックス１３０の属するストレージグループ２８０の中で、割り当て権限を移譲する空き実ページを決める。ストレージコントローラ２００は、決定した空き実ページに対応する実ページ情報２１００から実ページのアドレスを認識する。さらに、ストレージコントローラ２００は、この実ページ情報２１００を空きページ情報管理キュー２２１０から外し、この実ページ情報２１００を消去する。
【０３３７】
ステップ８００７の代わりに以下のステップが挿入されている。
【０３３８】
ステップ３０００２：ストレージコントローラ２００は、追加された実ストレージシステム１００に、制御権を渡す仮想論理ボリューム及び論理ボリュームの集合と、対応する論理ボリュームに割り当てた実ページのアドレス情報及び割り当て権限を渡す実ページのアドレスの集合とを通知し、処理を終了する。
【０３３９】
図４６Ａは、第３の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【０３４０】
本処理フローの処理は、削除する実ストレージシステム１００で実行される。なお、第１の実施例に係るストレージシステム閉塞処理部４４００の処理フローと同様なステップについては、同一の符号を付し、説明を省略する。
【０３４１】
ステップ３１０００：削除を行う実ストレージシステム１００のストレージコントローラ２００は、論理ボリューム情報２０００を参照して、ストレージボックス１３０に定義された論理ボリュームを認識する。さらに、ストレージコントローラ２００は、各ストレージボックス１３０のストレージグループ２８０ごとに、空き実ページを認識する。
【０３４２】
ステップ３１００１：ストレージコントローラ２００は、論理ボリュームの制御権及び割り当て権限をもっている実ページのそれぞれについて、どの実ストレージシステム１００に移動するかを決定する。ストレージコントローラ２００は、論理ボリュームに割り当てられている実ページのアドレスの把握と、対応する実ページ情報２１００の消去と、割り当て権限を移す実ページのアドレスの把握と、対応する実ページ情報２１００の消去とを行う。制御権を移す論理ボリュームと、割り当て権限を移す実ページとを決定する際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９、第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０の第２Ｒ回数２３１１、第２Ｗ回数２３１３を参照する。
【０３４３】
ステップ３１００２：ストレージコントローラ２００は、制御権を移すと決めた仮想論理ボリューム及び制御権を渡す論理ボリュームの集合と、対応する論理ボリュームに割り当てた実ページのアドレス情報及び割り当て権限を渡す実ページのアドレスの集合とを、該当する実ストレージシステム１００に通知する。
【０３４４】
図４６Ｂは、第３の実施例に係る閉塞する実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０３４５】
ステップ３１００３：通知を受けた実ストレージシステム１００のストレージコントローラ２００は、閉塞する実ストレージシステム１００から受け取った仮想論理ボリューム情報及び論理ボリューム情報を、自身の共有メモリ２２０の仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００として設定する。ただし、論理ボリューム識別子については、当該実ストレージシステム１００が決定して、仮想論理ボリューム情報２０８５と論理ボリューム情報２０００とに設定する。また、ストレージコントローラ２００は、論理ボリュームに割り当てた実ページごとに、実ページ情報２１００を生成して、実ページ情報２１００の実ページアドレス２１０２などの必要な情報を設定する。また、ストレージコントローラ２００は、対応する実ページポインタ２００４に、実ページ情報２１００のアドレスを設定する。ストレージコントローラ２００は、当該実ストレージシステム１００に、割り当て権限を移すと決められた実ページに対応する実ページ情報２１００を生成して、必要な情報を設定し、生成した実ページ情報２１００を、空きページ情報管理キュー２２１０に登録する。
【０３４６】
第３の実施例でも、実ストレージシステム１００の負荷をバランスさせるため、論理ボリュームを実ストレージシステム１００間で移動させる場合に上記同様な処理を行ってもよい。また、割り当て権限をもった領域を、実ストレージシステム１００間で移動させるようにしてもよい。この場合、その処理では、ステップ３１０００、ステップ３１００１、ステップ３１００２、及びステップ３１００３を実行することとなる。
【０３４７】
図４７Ａは、第３の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【０３４８】
本処理フローの処理は、移動元となる実ストレージシステム１００で実行される。
【０３４９】
ステップ３２０００：移動元となる実ストレージシステム１００のストレージコントローラ２００は、論理ボリューム情報２０００を参照して、ストレージボックス１３０に定義された論理ボリュームを認識する。さらに、ストレージコントローラ２００は、各ストレージボックス１３０のストレージグループ２８０ごとに、空き実ページを認識する。
【０３５０】
ステップ３２００１：ストレージコントローラ２００は、論理ボリュームの制御権と、割り当て権限をもっている実ページとのそれぞれについて、どの実ストレージシステム１００に移動するかを決定する。ストレージコントローラ２００は、論理ボリュームに割り当てられている実ページのアドレスの把握と、対応する実ページ情報２１００の消去と、割り当て権限を移す実ページのアドレスの把握と、対応する実ページ情報２１００の消去とを行う。
【０３５１】
ステップ３２００２：ストレージコントローラ２００は、制御権を移すときめた仮想論理ボリューム及び制御権を渡す論理ボリュームの集合と、対応する論理ボリュームに割当てた実ページのアドレス情報及び割り当て権限を渡す実ページのアドレスの集合とを、移動先の実ストレージシステム１００に通知する。
【０３５２】
図４７Ｂは、第３の実施例に係る移動先となる実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０３５３】
ステップ３２００３：移動先となる実ストレージシステム１００のストレージコントローラ２００は、閉塞する実ストレージシステム１００から受け取った仮想論理ボリュームの情報及び論理ボリュームの情報を、仮想論理ボリューム情報２０８５及び論理ボリューム情報２０００に設定する。ただし、論理ボリュームの識別子は、当該実ストレージシステム１００が決定して、仮想論理ボリューム情報２０８５の論理ボリューム識別子２０９０と、論理ボリューム情報２０００の論理ボリューム識別子２００１とに設定する。また、ストレージコントローラ２００は、論理ボリュームに割り当てた実ページごとに、実ページ情報２１００を生成して、実ページポインタ２００４などの必要な情報を設定する。ストレージコントローラ２００は、当該実ストレージシステム１００に、割り当て権限を移すと決められた実ページに対応する実ページ情報２１００を生成して、必要な情報を設定し、生成した実ページ情報２１００を、空きページ情報管理キュー２２１０に登録する。
【０３５４】
図４８Ａは、第３の実施例に係るストレージボックス追加処理部の処理フローを示す図である。
【０３５５】
第３の実施例に係る処理フローが、第１の実施例に係る処理フローと異なるのは、以下の通りである。
【０３５６】
ステップ１１００２の後に以下のステップが挿入されている。
【０３５７】
ステップ３３０００：ストレージコントローラ２００は、当該実ストレージシステム１００が割り当て権限を持つ領域の実ページ情報２１００を生成して、空きページ情報管理キュー２２１０に登録する。
【０３５８】
ステップ３３００１：ストレージコントローラ２００は、他の実ストレージシステム１００が割り当て権限を持つ領域の実ページのアドレスを、他の実ストレージシステム１００に送る。
【０３５９】
図４８Ｂは、第３の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【０３６０】
第３の実施例に係る処理フローが、第１の実施例に係る処理フローと異なるのは、以下の通りである。
【０３６１】
ステップ１１００６の後に以下のステップが挿入されている。
【０３６２】
ステップ３３００２：ストレージコントローラ２００は、当該実ストレージシステム１００が割り当て権限を持つ領域の実ページ情報２１００を生成して、空きページ情報管理キュー２２１０に登録する。
【０３６３】
図６１は、第３の実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【０３６４】
ストレージボックス閉塞処理部４７００は、ストレージボックス１３０が削除されるときに、実行される。ストレージボックス１３０が削除されることが決定したとき、そのストレージボックス１３０に接続された実ストレージシステム１００が起動され、起動された実ストレージシステム１００のストレージコントローラ２００が以下の処理を実行する。
【０３６５】
第３の実施例に係る処理フローにおいては、第１実施例に係る処理フローに対して以下のステップが挿入されている。
【０３６６】
ステップ３４０００：ストレージコントローラ２００は、削除するストレージボックス１３０のストレージグループ２８０に定義されている空き実ページ情報２１００を消去し、空きページ情報管理キュー２２１０をからにする。
【０３６７】
図４９は、第３の実施例に係るストレージボックス移動処理部４８００の処理フローである。
【０３６８】
ストレージボックス移動処理部４８００は、旧い（移動元）ストレージボックス１３０が新しい（移動先）ストレージボックス１３０に置き換えられるときに、実行される。ストレージボックス１３０が置き換えられることが決定したとき、旧いストレージボックス１３０に接続された実ストレージシステム１００が起動される。第３の実施例に係る処理フローと、第１の実施例に係る処理フローとの違いは、以下のとおりである。
【０３６９】
移動元のストレージボックス１３０に関する処理としては、以下のステップが加えられる。
【０３７０】
ステップ３５０００：実ストレージシステム１００のストレージコントローラ２００は、削除するストレージボックス１３０のストレージグループ２８０に定義されている空き実ページ情報２１００を消去し、空きページ情報管理キュー２２１０をからにする。
【０３７１】
移動先のストレージボックス１３０に関する処理としては、以下のステップが異なる。
【０３７２】
ステップ３５００１：実ストレージシステム１００のストレージコントローラ２００は、新しいストレージボックス１３０の中に、これまで割り当て権限をもっている領域に対応する実ページに関する実ページ情報２１００を生成して、対応するストレージグループ２８０の空きページ情報管理キュー２２１０に登録する。また、ストレージコントローラ２００は、移動先となる論理ボリュームを決定して、論理ボリューム情報２０００を定義する。具体的には、ストレージコントローラ２００は、新しい論理ボリューム情報２０００を確保して、必要な情報をセットする。特に、ここでは、ストレージコントローラ２００は、論理ボリューム情報２０００の移動元ＬＵＮ２０１６に、当該実ストレージシステム１００の識別子、削除されるストレージボックス１３０に定義された論理ボリュームの識別子、及びその論理ボリュームが定義された新しいストレージボックス１３０上の領域を設定する。また、ストレージコントローラ２００は、移動する複数の論理ボリュームに対応する論理ボリューム情報２０００の中の一つの論理ボリューム情報２０００については、移動中フラグ２０１５をオンにして、移動ポインタ２０１７を先頭アドレスに設定する。ストレージコントローラ２００は、残りの論理ボリューム情報２０００については、移動待ちフラグ２０１８をオンにする。
【０３７３】
さらに、第３の実施例に係る処理フローは、第１の実施例に係る処理フローのステップ１３００３に代えて、以下のステップとなる。
【０３７４】
ステップ３５００２：ストレージコントローラ２００は、新しいストレージボックス１３０の記憶容量が、旧いストレージボックス１３０に比べて大きい場合、容量増加分を新しいストレージボックス１３０に接続された実ストレージシステム１００の数で均等に割って割当量を決定し、その割当量と該当する領域を決めて、対応する実ページの実ページ情報２１００を設定して、空きページ情報管理キュー２２１０に設定する。この後、ストレージコントローラ２００は、処理を終了する。
【０３７５】
図５０Ａは、第３の実施例に係るコピー処理部の処理フローを示す図である。
【０３７６】
コピー処理部４９００は、他の処理部から起動を受け、ストレージコントローラ２００により実行が開始される。
【０３７７】
第３の実施例に係る処理フローと、第１実施例に係る処理フローとの違いは以下の通りである。
【０３７８】
第１実施例に係る処理フローのステップ１４００２を以下のステップに変更する。
【０３７９】
ステップ３６０００：ストレージコントローラ２００は、移動元論理ボリュームに対応する論理ボリューム情報２０００の移動先ＬＵＮ２０１６の識別子に対応する論理ボリュームの論理ボリューム情報２０００と、移動ポインタ２０１７とに基づいて、対応する実ページポインタ以降で、ヌルでない最初の実ページポインタに対応する実ページをコピー対象とする。なお、ヌルである実ページポインタについては、ストレージコントローラ２００は、移動先の論理ボリュームに対応する論理ボリューム情報２０００の実ページポインタ２００４にコピーする。ストレージコントローラ２００は、移動先のストレージグループ２８０のＲＡＩＤタイプと、移動ポインタ２０１７とに基づいて、読み出したデータから冗長データが生成可能な領域を、移動元の論理ボリュームから読み出す領域として決定する。なお、移動元ＬＵＮ２０１６の実ストレージシステム１００の識別子が、この実ストレージシステム１００の識別子である場合、ストレージコントローラ２００は、ストレージグループ２８０のＲＡＩＤタイプやストレージ装置１６０などから、読み出しを行う物理的な領域を決定する（このとき、移動元の論理ボリュームの冗長データは読み出さない）。
【０３８０】
更に、第１実施例に係る処理フローのステップに次のステップが追加されている。
【０３８１】
ステップ３６００１：ストレージコントローラ２００は、移動先の論理ボリューム用の実ページを格納する。ストレージコントローラ２００は、適当なストレージグループ２８０の空きページ情報管理キュー２２１０から、実ページ情報２１００を確保し、この実ページ情報２１００のアドレスを、論理ボリューム情報２０００の実ページポインタ２００４に設定する。
【０３８２】
更に、第１実施例に係る処理フローのステップに次のステップが追加されている。
【０３８３】
ステップ３６００２：ストレージコントローラ２００は、移動元の実ページポインタ２００４が示す実ページ情報２１００を消去する。
【０３８４】
図５０Ｂは、第３の実施例に係る実ストレージシステム間で行われる論理ボリューム移動処理における移動元論理ボリュームに関わる処理フローを示す図である。第１実施例に係る処理フローのステップに次のステップが追加されている。
【０３８５】
ステップ３６００３：ストレージコントローラ２００は、移動元の実ページポインタ２００４が示す実ページ管理情報２１００を消去する。
【０３８６】
ステップ３６００４:当該論理ボリュームの最後まで、データを送った場合、ストレージコントローラ２００は、対応する論理ボリュームの論理ボリュームの情報を消去する。ただし、本実施例には、空きセグメントビットマップ２３０７、空きセグメント数２３０４は存在しないので、ストレージコントローラ２００は、これらに対する操作をしない。
【０３８７】
第３の実施例に係るキャッシュ閉塞スケジュール部４９１０の処理フローは、第１の実施例に係るキャッシュ閉塞スケジュール部４９１０の処理フローと同様である。
【０３８８】
第３の実施例に係るキャッシュ閉塞処理部４９２０の処理フローは、第１の実施例に係るキャッシュ閉塞処理部４９２０の処理フローと同じである。
【０３８９】
図５１は、第３の実施例に係る仮想論理ボリューム定義部の処理フローを示す図である。
【０３９０】
仮想論理ボリューム定義部４９５０は、仮想論理ボリュームを定義するときに、実行される。
【０３９１】
第３の実施例に係る処理フローと、第１実施例に係る処理フローとの違いは、以下の通りである。
【０３９２】
ステップ３７０００：ストレージコントローラ２００は、ステップ１８００１で設定された論理容量２００２と実ページサイズとから、実ページ数を算出する。ストレージコントローラ２００は、論理ボリューム情報２０００の算出した数の実ページポインタ２００４に、ヌル値を設定する。この後、ストレージコントローラ２００は、処理を終了する。
【０３９３】
図５２は、第３の実施例に係る仮想論理ボリューム消去部の処理フローを示す図である。
【０３９４】
仮想論理ボリューム消去部４９６０は、仮想論理ボリュームを消去するときに、実行される。この場合、消去する仮想論理ボリュームの制御権をもつ実ストレージシステム１００が処理を実行する。また、仮想論理ボリューム消去部４９６０の実行の際には、仮想論理ボリュームの識別子が指定される。
【０３９５】
ステップ３９０００：ストレージコントローラ２００は、論理ボリューム情報２０００からヌル値でない実ページポインタ２００４を見出し、実ページポインタ２００４により示される割り当てられたすべての実ページ情報２１００を、空きページ情報管理キュー２２１０に戻す。この後、ストレージコントローラ２００は、処理を終了する。
【実施例４】
【０３９６】
次に、第４の実施例に係る情報システムについて説明する。
【０３９７】
第４の実施例に係る情報システムは、実ストレージシステム１００が、容量仮想化機能をもち、ストレージボックス１３０の割り当て機能を一つの実ストレージシステム１００がもっている。
【０３９８】
第４の実施例に係る情報システムの構成は、第１の実施例に係る情報システムと同様である。
【０３９９】
第４の実施例に係るサーバポート情報１９８の構成は、第１の実施例に係るサーバポート情報１９８と同様である。
【０４００】
第４の実施例に係る実ストレージシステム１００の構成は、第１の実施例に係る実ストレージシステム１００の構成と同じである。
【０４０１】
第４の実施例に係るキャッシュメモリ２１０の構成は、第１の実施例のキャッシュメモリ２１０の構成と同じである。
【０４０２】
第４の実施例に係る共有メモリ２２０に含まれる情報の構成は、第３の実施例に係る共有メモリ２２０に含まれる情報の構成と同じである。
【０４０３】
第４の実施例に係る論理ボリューム情報２０００の構成は、第３の実施例に係る論理ボリューム情報２０００の構成と同様である。また、第４の実施例に係るキャッシュ管理情報２７５０の構成は、第１の実施例に係るキャッシュ管理情報２７５０の構成と同様である。
【０４０４】
第４の実施例に係る空きキャッシュ管理情報ポインタ２６５０によって管理される空きキャッシュ情報管理キュー２２０１のデータ構造は、第１の実施例に係る空きキャッシュ情報管理キュー２２０１のデータ構造と同じである。
【０４０５】
第４の実施例に係るストレージボックス情報２０５０の構成は、第２の実施例に係るストレージボックス情報２０５０と同じである。
【０４０６】
第４の実施例に係るストレージグループ情報２３００の構成は、第３の実施例に係るストレージグループ情報２３００の構成と同じである。
【０４０７】
第４の実施例に係る実ページ情報２１００の構成は、第３の実施例に係る実ページ情報２１００の構成と同様である。
【０４０８】
第４の実施例に係る空きページ情報管理キュー２２１０のデータ構造は、第３の実施例に係る空ページ情報管理キュー２２１０のデータ構造と同様である。
【０４０９】
第４の実施例に係るストレージ装置情報２５００の構成は、第１の実施例に係るストレージ装置情報２５００と同様である。
【０４１０】
次に、上述の管理情報を用いて、ストレージコントローラ２００が実行する動作の説明を行う。第４の実施例において、メモリ２７０に格納されているプログラムは、第１の実施例と同様である。
【０４１１】
リード処理実行部４０００、ライト要求受付部４１００、及びライトアフタ処理実行部４２００の処理フローは、第３の実施例と同様である。
【０４１２】
図５３Ａは、第４の実施例に係るストレージシステム追加処理部の処理フローを示す図である。
【０４１３】
本処理フローの処理は、追加された実ストレージシステム１００で実行される。
【０４１４】
第４の実施例に係る処理フローが、第３の実施例に係る処理フローと異なる点は、下記の通りである。
【０４１５】
ステップ４００００：ストレージコントローラ２００は、仮想ストレージシステム１９０内に、実ストレージステム１００が追加されたこと及び当該実ストレージシステム１００がアクセス可能なストレージボックス１３０を示す情報を、同一仮想ストレージシステム１９０の他の実ストレージシステム１００に通知する。このように、第４の実施例では、割り当て権限を与えられるのが、ストレージボックス１３０単位である。
【０４１６】
図５３Ｂは、第４の実施例に係る追加された実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０４１７】
ステップ４０００１：ストレージコントローラ２００は、通知されたストレージボックス１３０の中から追加された実ストレージシステム１００に制御権を渡すストレージボックスを決定する。第４の実施例では、ストレージボックス１３０を単位として割り当て権限が移される。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。
【０４１８】
図５４Ａは、第４の実施例に係るストレージシステム閉塞処理部の処理フローを示す図である。
【０４１９】
本処理フローの処理は、削除する実ストレージシステム１００で実行される。
【０４２０】
第４の実施例に係る処理フローと、第３の実施例に係る処理フローとが異なるのは、下記の通りである。
【０４２１】
ステップ４１０００：ストレージコントローラ２００は、ストレージボックス１３０についての割り当て権限を移譲する処理を行う。この際に、ストレージコントローラ２００は、各論理ボリューム情報２０００の第２リード回数２００９及び第２ライト回数２０１０を参照する。また、ストレージコントローラ２００は、各論理ボリュームを割り当てているストレージグループ２８０に対応するストレージグループ情報２３００の第２Ｒ回数２３１１及び第２Ｗ回数２３１３を参照する。
【０４２２】
図５４Ｂは、第４の実施例に係る削除される実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０４２３】
ステップ４１００１：ストレージコントローラ２００は、ストレージボックス１３０単位で割り当て権限を譲り受けるようにしている。
【０４２４】
第４の実施例でも、実ストレージシステム１００の負荷をバランスさせるため、論理ボリュームを実ストレージシステム１００間で移動させる場合に同様な処理を行ってもよい。また、割り当て権限をもった領域を、実ストレージシステム１００間で移動させるようにしてもよい。この場合、その処理では、ステップ４１０００及びステップ４１００１を実行することとなる。
【０４２５】
図５５Ａは、第４の実施例に係るストレージシステム移動処理部の処理フローを示す図である。
【０４２６】
本処理フローの処理は、移動元となる実ストレージシステム１００で実行される。
【０４２７】
第４の実施例に係る処理フローが、第３の実施例に係る処理フローと異なるのは、下記の通りである。
【０４２８】
ステップ４４０００：ストレージコントローラ２００は、ストレージボックス１３０について、割り当て権限を移動する。
【０４２９】
図５５Ｂは、第４の実施例に係る移動先の実ストレージシステムから要求を受けた実ストレージシステムの処理フローを示す図である。
【０４３０】
ステップ４４００１：ストレージコントローラ２００は、ストレージボックス１３０単位で割り当て権限を移動する。 
【０４３１】
図５６Ａは、第４実施例に係るストレージボックス追加処理部の処理フローを示す図である。図５６Ｂは、第４の実施例に係るストレージボックスの割り当て権限をもつ実ストレージシステムから情報を受け取った実ストレージシステムの処理フローを示す図である。
【０４３２】
ストレージボックス追加処理部４６００の処理フローと、第３の実施例の処理フローとが異なるのは、以下の通りである。
【０４３３】
ステップ４５０００：追加されたストレージボックス１３０の制御権をもつ実ストレージシステム１００のストレージコントローラ２００が、追加する実ページ情報２１００を生成し、空きページ情報管理キューに２２１０に登録する。
【０４３４】
図５７は、第４実施例に係るストレージボックス閉塞処理部の処理フローを示す図である。
【０４３５】
ストレージボックス閉塞処理部４７００の処理フローと、第３の実施例に係る処理フローとの違いは、以下の通りである。
【０４３６】
ステップ４６０００：削除するストレージボックス１３０の制御権をもつ実ストレージシステム１００が、空き実ページ情報管理キュー２２１０の実ページ情報２１００を消去し、空き実ページ情報管理キュー２２１０を空にする。
【０４３７】
図５８は、第４実施例に係るストレージボックス移動処理部の処理フローを示す図である。
【０４３８】
ストレージボックス移動処理部４８００の処理フローと、第３の実施例の処理フローとの違いは、以下の通りである。
【０４３９】
ステップ４７０００：移動先のストレージボックス１３０の制御権をもつ実ストレージシステム１００が追加する実ページ情報２１００を生成し、空きページ情報管理キュー２２１０に登録する。
【０４４０】
ステップ４７００１：移動元のストレージボックス１３０の制御権をもつ実ストレージシステム１００が、空きページ情報管理キュー２２１０の実ページ情報２１００を消去し、空きページ情報管理キュー２２１０を空にする。
【０４４１】
ステップ４７００２：移動元のストレージボックス１３０の制御権をもつ実ストレージシステム１００が、空きページ情報管理キュー２２１０に実ページ情報２１００を設定する。
【０４４２】
第４の実施例に係るコピー処理部４９００の処理フローは、第３の実施例に係るコピー処理部４９００の処理フローと同様である。
【０４４３】
第４の実施例に係るキャッシュデータ閉塞スケジュール部４９１０の処理フローは、第３の実施例に係るキャッシュデータ閉塞スケジュール部４９１０の処理フローと同じである。
【０４４４】
第４の実施例に係るキャッシュデータ閉塞処理部４９２０の処理フローは、第３の実施例に係るキャッシュデータ閉塞処理部４９２０の処理フローと同じである。
【０４４５】
第４の実施例に係る仮想論理ボリューム定義部４９５０の処理フローは、第３の実施例に係る仮想論理ボリューム定義部４９５０の処理フローと同様である。
【０４４６】
第４の実施例に係る仮想論理ボリューム消去部４９６０の処理フローは、第３の実施例に係る仮想論理ボリューム消去部４９６０の処理フローと同様である。
【０４４７】
上記実施例によると、ストレージシステムとストレージボックス、すなわち、ストレージコントローラと記憶媒体とを分離して、それぞれ独立に、増設、減設を可能にすることによって、新たな価値を提供することができる。
【０４４８】
以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限定されない。
【符号の説明】
【０４４９】
１００：実ストレージシステム
【図１】
2016510440.tif 000003
【図２】
2016510440.tif 000004
【図３】
2016510440.tif 000005
【図４】
2016510440.tif 000006
【図５】
2016510440.tif 000007
【図６】
2016510440.tif 000008
【図７】
2016510440.tif 000009
【図８】
2016510440.tif 000010
【図９】
2016510440.tif 000011
【図１０】
2016510440.tif 000012
【図１１】
2016510440.tif 000013
【図１２】
2016510440.tif 000014
【図１３】
2016510440.tif 000015
【図１４】
2016510440.tif 000016
【図１５Ａ】
2016510440.tif 000017
【図１５Ｂ】
2016510440.tif 000018
【図１６Ａ】
2016510440.tif 000019
【図１６Ｂ】
2016510440.tif 000020
【図１７】
2016510440.tif 000021
【図１８Ａ】
2016510440.tif 000022
【図１８Ｂ】
2016510440.tif 000023
【図１９Ａ】
2016510440.tif 000024
【図１９Ｂ】
2016510440.tif 000025
【図２０Ａ】
2016510440.tif 000026
【図２０Ｂ】
2016510440.tif 000027
【図２１Ａ】
2016510440.tif 000028
【図２１Ｂ】
2016510440.tif 000029
【図２２】
2016510440.tif 000030
【図２３】
2016510440.tif 000031
【図２４Ａ】
2016510440.tif 000032
【図２４Ｂ】
2016510440.tif 000033
【図２５】
2016510440.tif 000034
【図２６Ａ】
2016510440.tif 000035
【図２６Ｂ】
2016510440.tif 000036
【図２７】
2016510440.tif 000037
【図２８】
2016510440.tif 000038
【図２９】
2016510440.tif 000039
【図３０】
2016510440.tif 000040
【図３１Ａ】
2016510440.tif 000041
【図３１Ｂ】
2016510440.tif 000042
【図３２Ａ】
2016510440.tif 000043
【図３２Ｂ】
2016510440.tif 000044
【図３３Ａ】
2016510440.tif 000045
【図３３Ｂ】
2016510440.tif 000046
【図３４Ａ】
2016510440.tif 000047
【図３４Ｂ】
2016510440.tif 000048
【図３５】
2016510440.tif 000049
【図３６】
2016510440.tif 000050
【図３７】
2016510440.tif 000051
【図３８】
2016510440.tif 000052
【図３９】
2016510440.tif 000053
【図４０】
2016510440.tif 000054
【図４１】
2016510440.tif 000055
【図４２Ａ】
2016510440.tif 000056
【図４２Ｂ】
2016510440.tif 000057
【図４３Ａ】
2016510440.tif 000058
【図４３Ｂ】
2016510440.tif 000059
【図４４】
2016510440.tif 000060
【図４５Ａ】
2016510440.tif 000061
【図４５Ｂ】
2016510440.tif 000062
【図４６Ａ】
2016510440.tif 000063
【図４６Ｂ】
2016510440.tif 000064
【図４７Ａ】
2016510440.tif 000065
【図４７Ｂ】
2016510440.tif 000066
【図４８Ａ】
2016510440.tif 000067
【図４８Ｂ】
2016510440.tif 000068
【図４９】
2016510440.tif 000069
【図５０Ａ】
2016510440.tif 000070
【図５０Ｂ】
2016510440.tif 000071
【図５１】
2016510440.tif 000072
【図５２】
2016510440.tif 000073
【図５３Ａ】
2016510440.tif 000074
【図５３Ｂ】
2016510440.tif 000075
【図５４Ａ】
2016510440.tif 000076
【図５４Ｂ】
2016510440.tif 000077
【図５５Ａ】
2016510440.tif 000078
【図５５Ｂ】
2016510440.tif 000079
【図５６Ａ】
2016510440.tif 000080
【図５６Ｂ】
2016510440.tif 000081
【図５７】
2016510440.tif 000082
【図５８】
2016510440.tif 000083
【図５９】
2016510440.tif 000084
【図６０】
2016510440.tif 000085
【図６１】
2016510440.tif 000086
【図６２】
2016510440.tif 000087
【国際調査報告】
2016510440.tif 000088
2016510440.tif 000089