(57)【要約】【課題】効率的にルーティングするストレージクラスタシステムを実現する。【解決手段】複数のストレージ装置１２からなるストレージクラスタと、このストレージクラスタに第一の通信ネットワーク１１によって接続されたホスト装置１８とを備えたストレージクラスタシステムにおいて、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）は、ホスト装置１８から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、複数のアクセス可能領域のうち、ストレージ装置１２が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラ１４と、コントローラ１４によって参照され、このコントローラ１４が備えられているストレージ装置１２から他のストレージ装置１２へのアクセス優先順位を定義した優先順位情報とを備えている。【選択図】      図１
2007272357.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムにおいて、
前記各ストレージ装置は、
前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、
前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、
前記コントローラによって参照され、このコントローラが備えられたストレージ装置から他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、
前記各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしており、
自己のストレージ装置に存在しない物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、前記自己のストレージ装置のコントローラは、前記優先順位情報で定義された優先順位に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置のコントローラに前記処理要求を送り、
自己のストレージ装置に存在する物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、前記自己のストレージ装置のコントローラは、前記処理要求に対応する処理を行い、この処理結果を、前記処理要求の送り元に送り、
他のストレージ装置のコントローラから前記処理結果が送られてきた場合には、前記自己のストレージ装置のコントローラは、この処理結果に対応する処理要求を自己のストレージ装置に送った送り元に、前記処理結果を送ることによって、前記処理結果を、前記ホスト装置からの処理要求を受けたストレージ装置に送り、このストレージ装置は、送られた処理結果を前記ホスト装置に送るようにしたストレージクラスタシステム。
【請求項２】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムにおいて、
前記各ストレージ装置は、
前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、
前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、
前記コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、
前記各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしており、
前記ホスト装置から、自己に存在しない物理アクセス可能領域に対する処理要求が送られてきたストレージ装置は、前記処理要求から、前記処理要求に対応した特有のコマンドコードを取得するとともに、自己のストレージ装置の識別子を含むビットマップデータと、前記ホスト装置の識別子とを前記コマンドコード内に含め、前記ビットマップデータにおいて、前記自己のストレージ装置の識別子に対応するビット位置にビットを立て、前記コマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、
前記複数のストレージ装置のうちの何れかから前記コマンドコードが送られたストレージ装置のうち、このコマンドコードに対応する処理要求が、自己に存在しない物理アクセス可能領域に対する処理要求であるストレージ装置は、このコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対応するビット位置にビットを立て、このコマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、
前記送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、
前記送られてきたコマンドコード内にビットマップデータが含まれていない場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を前記ホスト装置に送り、
前記送られてきたコマンドコード内にビットマップデータが含まれ、何れか一つのビット位置のビットが立てられている場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を、このビットが立てられたビット位置に対応する識別子のストレージ装置に送り、
前記送られてきたコマンドコード内にビットマップデータが含まれ、複数のビット位置のビットが立てられている場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行うとともに、前記ホスト装置から直接処理要求を受けたストレージ装置に対する応答を作成し、前記作成した応答を、ビットが立てられたビット位置に対応する識別子のストレージ装置を経由して、前記ホスト装置からの処理要求を受けたストレージ装置に送り、
前記応答が送られたストレージ装置は、前記応答を作成したストレージ装置に対して、処理結果を送るように要求し、
要求されたストレージ装置が、この処理結果を、要求元のストレージ装置に送ることによって、何れのストレージ装置においてなされた処理結果も、前記ホスト装置から直接処理要求を受けたストレージ装置に送られるようにし、
前記前記ホスト装置から直接処理要求を受けたストレージ装置は、この処理結果を前記ホスト装置に送るようにしたストレージクラスタシステム。
【請求項３】
請求項１又は請求項２に記載のストレージクラスタシステムにおいて、
前記優先順位情報で定義された優先順位に従って他のストレージ装置のコントローラに処理要求を送った場合であって、この送り先のコントローラが前記処理要求を受け付けない場合、このコントローラからエラー応答が戻された場合、又はこのコントローラから所定時間応答が無い場合には、前記処理要求が既に送られたストレージ装置を除いて、次に前記優先順位が高いストレージ装置のコントローラに処理要求を送り直すようにしたストレージクラスタシステム。
【請求項４】
請求項１又は請求項２に記載のストレージクラスタシステムにおいて、
前記複数のストレージ装置のうち、前記ホスト装置からアクセスされたストレージ装置に、前記各ストレージ装置が保持する物理アクセス可能領域の情報を前記ホスト装置に通知する通知手段を更に備え、
前記ホスト装置に、前記通知手段から通知された情報と、前記処理要求の内容とに基づいて、前記処理要求を送るストレージ装置を切り替える切替手段を備えたストレージクラスタシステム。
【請求項５】
請求項１又は請求項２に記載のストレージクラスタシステムにおいて、
前記各ストレージ装置が備えている前記複数のアクセス可能領域のうちの一つ、又は二つ以上の組み合わせから構成され、前記ホスト装置から認識可能な論理ボリュームの容量情報と、前記論理ボリュームへのアクセスが許可されたホスト装置を特定するホスト識別番号と、前記ホスト装置からアクセスされる前記物理アクセス可能領域を特定する物理アクセス可能領域識別番号との組み合わせを管理するデータテーブルを、前記ストレージクラスタの全てのストレージ装置に備え、
前記論理ボリュームを構成するアクセス可能領域のうち、前記物理アクセス可能領域と、前記ホスト装置によって認識される領域である論理アクセス可能領域との対応関係を、この物理アクセス可能領域が存在するストレージ装置のみが保持し、
前記ホスト装置から送られてきた処理要求のうち、ライト命令及びリード命令を含むメディアアクセス命令以外の処理要求に対しては、前記ホスト装置からアクセスされたストレージ装置が前記ホスト装置に対して処理結果を送るようにしたストレージクラスタシステム。
【請求項６】
請求項１又は請求項２に記載のストレージクラスタシステムにおいて、
前記ストレージクラスタの管理を行う管理コンソールを更に備え、
前記管理コンソールは、前記各ストレージ装置のうち任意のストレージ装置に対して、前記各ストレージ装置の情報と前記ストレージクラスタの構築要求とを送信し、送信先のストレージ装置を、前記ストレージクラスタの構築処理に関してマスタの役割をする構築マスタとし、
前記構築マスタは、前記管理コンソールから送信された前記情報に対応する各ストレージ装置に対してテストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、前記テストメッセージに対する応答を前記構築マスタに返信し、
前記構築マスタは、各ストレージ装置から返信された応答から、前記テストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成するとともに、前記各ストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信し、
前記構築マスタ以外の各ストレージ装置は、前記送信されたリストに従って、自己以外のストレージ装置に対して、テストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を送信元のストレージ装置に返信し、
前記構築マスタ以外の各ストレージ装置は、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、この応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成し、前記構築マスタに対して前記優先順位情報の構築完了応答を返信し、
前記構築マスタは、この構築完了応答を受信すると、前記管理コンソールに対して、前記優先順位情報の構築完了応答を返信することによって、前記ストレージクラスタの構築処理を行うようにしたストレージクラスタシステム。
【請求項７】
請求項１又は請求項２に記載のストレージクラスタシステムにおいて、
動作中のストレージクラスタに新たなストレージ装置を追加する追加処理を行う管理コンソールを更に備え、
前記管理コンソールは、前記各ストレージ装置のうち任意のストレージ装置に対して、新たなストレージ装置の追加要求と、この新たなストレージ装置の情報とを送信し、送信先のストレージ装置を、前記ストレージ装置の追加処理に関してマスタの役割をする追加マスタとし、
前記追加マスタは、前記管理コンソールから前記情報が送信された新たなストレージ装置に対してテストメッセージを送信し、この送信されたテストメッセージに対して前記新たなストレージ装置からなされた応答を確認し、前記新たなストレージ装置のアクセス優先順位を最下位の優先順位として前記優先順位情報に追加するとともに、前記優先順位情報にアクセス優先順位が既に定義されているストレージ装置に対して、前記新たなストレージ装置が前記ストレージクラスタに追加された旨のメッセージと、前記新たなストレージ装置の情報とを送信し、
前記追加マスタ及び前記新たなストレージ装置以外のストレージ装置は、自己の優先順位情報の優先順位最下位に前記新たなストレージ装置を追加し、前記追加マスタへ追加完了応答を返信し、
前記追加マスタは、前記新たなストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信し、
前記新たなストレージ装置は、前記リストに従って、自己以外のストレージ装置に対してテストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を前記新たなストレージ装置に返信し、
前記新たなストレージ装置は、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を応答時間の短い順に優先順位付けすることによって前記優先順位情報を作成し、前記追加マスタに対して、前記優先順位情報の構築完了応答を返信し、
前記追加マスタは、この構築完了応答及び前記追加完了応答を受信すると、前記管理コンソールに対して、前記新たなストレージ装置の追加完了応答を返信することによって、前記新たなストレージ装置の追加処理を行うようにしたストレージクラスタシステム。
【請求項８】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるデータ処理方法おいて、
前記各ストレージ装置は、
前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、
前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、
前記コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、
前記各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしており、
自己のストレージ装置に存在しない物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、前記自己のストレージ装置のコントローラは、前記優先順位情報で定義された優先順位に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置のコントローラに前記処理要求を送り、
自己のストレージ装置に存在する物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、前記自己のストレージ装置のコントローラは、前記処理要求に対応する処理を行い、この処理結果を、前記処理要求の送り元に送り、
他のストレージ装置のコントローラから前記処理結果が送られてきた場合には、前記自己のストレージ装置のコントローラは、この処理結果に対応する処理要求を自己のストレージ装置に送った送り元に、前記処理結果を送ることによって、前記処理結果を、前記ホスト装置からの処理要求を受けたストレージ装置に送り、このストレージ装置は、送られた処理結果を前記ホスト装置に送るようにしたデータ処理方法。
【請求項９】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるデータ処理方法において、
前記各ストレージ装置は、
前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、
前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、
前記コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、
前記各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしており、
前記ホスト装置から、自己に存在しない物理アクセス可能領域に対する処理要求が送られてきたストレージ装置は、前記処理要求から、前記処理要求に対応した特有のコマンドコードを取得するとともに、自己のストレージ装置の識別子を含むビットマップデータと、前記ホスト装置の識別子とを前記コマンドコード内に含め、前記ビットマップデータにおいて、前記自己のストレージ装置の識別子に対応するビット位置にビットを立て、前記コマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、
前記複数のストレージ装置のうちの何れかから前記コマンドコードが送られたストレージ装置のうち、このコマンドコードに対応する処理要求が、自己に存在しない物理アクセス可能領域に対する処理要求であるストレージ装置は、このコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対応するビット位置にビットを立て、このコマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、
前記送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、
前記送られてきたコマンドコード内にビットマップデータが含まれていない場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を前記ホスト装置に送り、
前記送られてきたコマンドコード内にビットマップデータが含まれ、何れか一つのビット位置のビットが立てられている場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を、このビットが立てられたビット位置に対応する識別子のストレージ装置に送り、
前記送られてきたコマンドコード内にビットマップデータが含まれ、複数のビット位置のビットが立てられている場合には、このストレージ装置は、前記コマンドコードに対応する処理要求に対応する処理を行うとともに、前記ホスト装置から直接処理要求を受けたストレージ装置に対する応答を作成し、前記作成した応答を、ビットが立てられたビット位置に対応する識別子のストレージ装置を経由して、前記ホスト装置からの処理要求を受けたストレージ装置に送り、
前記応答が送られたストレージ装置は、前記応答を作成したストレージ装置に対して、処理結果を送るように要求し、
要求されたストレージ装置が、この処理結果を、要求元のストレージ装置に送ることによって、何れのストレージ装置においてなされた処理結果も、前記ホスト装置から直接処理要求を受けたストレージ装置に送られるようにし、
前記前記ホスト装置から直接処理要求を受けたストレージ装置は、この処理結果を前記ホスト装置に送るようにしたデータ処理方法。
【請求項１０】
請求項８又は請求項９に記載のデータ処理方法において、
前記優先順位情報で定義された優先順位に従って他のストレージ装置のコントローラに処理要求を送った場合であって、この送り先のコントローラが前記処理要求を受け付けない場合、このコントローラからエラー応答が戻された場合、又はこのコントローラから所定時間応答が無い場合には、前記処理要求が既に送られたストレージ装置を除いて、次に優先順位が高いストレージ装置のコントローラに処理要求を送り直すようにしたデータ処理方法。
【請求項１１】
請求項８又は請求項９に記載のデータ処理方法において、
前記複数のストレージ装置のうち、前記ホスト装置からアクセスされたストレージ装置は、前記各ストレージ装置が保持する物理アクセス可能領域の情報を前記ホスト装置に通知し、
前記ホスト装置は、前記通知された情報と、前記処理要求の内容とに基づいて、前記処理要求を送るストレージ装置を切り替えるようにしたデータ処理方法。
【請求項１２】
請求項８又は請求項９に記載のデータ処理方法において、
前記各ストレージ装置が備えている前記複数のアクセス可能領域のうちの一つ、又は二つ以上の組み合わせから構成され、前記ホスト装置から認識可能な論理ボリュームの容量情報と、前記論理ボリュームへのアクセスが許可されたホスト装置を特定するホスト識別番号と、前記ホスト装置からアクセスされる前記物理アクセス可能領域を特定する物理アクセス可能領域識別番号との組み合わせを管理するデータテーブルを、前記ストレージクラスタの全てのストレージ装置に備え、
前記論理ボリュームを構成するアクセス可能領域のうち、前記物理アクセス可能領域と、前記ホスト装置によって認識される領域である論理アクセス可能領域との対応関係を、この物理アクセス可能領域が存在するストレージ装置のみが保持し、
前記ホスト装置から送られてきた処理要求のうち、ライト命令及びリード命令を含むメディアアクセス命令以外の処理要求に対しては、前記ホスト装置からアクセスされたストレージ装置が前記ホスト装置に対して処理結果を送るようにしたデータ処理方法。
【請求項１３】
請求項８又は請求項９に記載のデータ処理方法において、
前記ストレージクラスタの管理を行う管理コンソールを更に備え、
前記管理コンソールは、前記各ストレージ装置のうち任意のストレージ装置に対して、前記各ストレージ装置の情報と前記ストレージクラスタの構築要求とを送信し、送信先のストレージ装置を、前記ストレージクラスタの構築処理に関してマスタの役割をする構築マスタとし、
前記構築マスタは、前記管理コンソールから送信された前記情報に対応する各ストレージ装置に対してテストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、前記テストメッセージに対する応答を前記構築マスタに返信し、
前記構築マスタは、各ストレージ装置から返信された応答から、前記テストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成するとともに、前記各ストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信し、
前記構築マスタ以外の各ストレージ装置は、前記送信されたリストに従って、自己以外のストレージ装置に対して、テストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を送信元のストレージ装置に返信し、
前記構築マスタ以外の各ストレージ装置は、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、この応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成し、前記構築マスタに対して前記優先順位情報の構築完了応答を返信し、
前記構築マスタは、この構築完了応答を受信すると、前記管理コンソールに対して、前記優先順位情報の構築完了応答を返信することによって、前記ストレージクラスタの構築処理を行うようにしたデータ処理方法。
【請求項１４】
請求項８又は請求項９に記載のデータ処理方法において、
動作中のストレージクラスタに新たなストレージ装置を追加する追加処理を行う管理コンソールを更に備え、
前記管理コンソールは、前記各ストレージ装置のうち任意のストレージ装置に対して、新たなストレージ装置の追加要求と、この新たなストレージ装置の情報とを送信し、送信先のストレージ装置を、前記ストレージ装置の追加処理に関してマスタの役割をする追加マスタとし、
前記追加マスタは、前記管理コンソールから前記情報が送信された新たなストレージ装置に対してテストメッセージを送信し、この送信されたテストメッセージに対して前記新たなストレージ装置からなされた応答を確認し、前記新たなストレージ装置のアクセス優先順位を最下位の優先順位として前記優先順位情報に追加するとともに、前記優先順位情報にアクセス優先順位が既に定義されているストレージ装置に対して、前記新たなストレージ装置が前記ストレージクラスタに追加された旨のメッセージと、前記新たなストレージ装置の情報とを送信し、
前記追加マスタ及び前記新たなストレージ装置以外のストレージ装置は、自己の優先順位情報の優先順位最下位に前記新たなストレージ装置を追加し、前記追加マスタへ追加完了応答を返信し、
前記追加マスタは、前記新たなストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信し、
前記新たなストレージ装置は、前記リストに従って、自己以外のストレージ装置に対してテストメッセージを送信し、
前記テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を前記新たなストレージ装置に返信し、
前記新たなストレージ装置は、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を応答時間の短い順に優先順位付けすることによって前記優先順位情報を作成し、前記追加マスタに対して、前記優先順位情報の構築完了応答を返信し、
前記追加マスタは、この構築完了応答及び前記追加完了応答を受信すると、前記管理コンソールに対して、前記新たなストレージ装置の追加完了応答を返信することによって、前記新たなストレージ装置の追加処理を行うようにしたデータ処理方法。
【請求項１５】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるプログラムおいて、
前記各ストレージ装置は、前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、前記コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、前記各ストレージ装置のコントローラ同士は、第二の通信ネットワークによって接続されており、
前記プログラムは、
前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスする機能、
前記ストレージ装置に、自己に存在しない物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、このストレージ装置のコントローラが、前記優先順位情報で定義された優先順位に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置のコントローラに前記処理要求を送る機能、
前記ストレージ装置に、自己に存在する物理アクセス可能領域に対する、前記ホスト装置からの処理要求が送られてきた場合には、このストレージ装置のコントローラが、前記処理要求に対応する処理を行い、この処理結果を、前記処理要求の送り元に送る機能、
前記ストレージ装置に、他のストレージ装置のコントローラから前記処理結果が送られてきた場合には、このストレージ装置のコントローラが、この処理結果に対応する処理要求を送ってきた送り元に、前記処理結果を送ることによって、前記処理結果を、前記ホスト装置からの処理要求を受けたストレージ装置に送る機能、
この処理結果を受けたストレージ装置が、この処理要求を前記ホスト装置に送る機能
をコンピュータに実現させるためのプログラム。
【請求項１６】
複数のストレージ装置からなるストレージクラスタと、前記ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるプログラムにおいて、
前記各ストレージ装置は、前記ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、前記複数のアクセス可能領域のうち、前記ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、前記コントローラによって参照され、このコントローラが備えられたストレージ装置から他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備え、前記各ストレージ装置のコントローラ同士は、第二の通信ネットワークによって接続されており、
前記プログラムは、
前記各ストレージ装置が、前記コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスする機能、
前記ホスト装置から、自己に存在しない物理アクセス可能領域に対する処理要求が送られてきたストレージ装置が、前記処理要求から、前記処理要求に対応した特有のコマンドコードを取得するとともに、自己のストレージ装置の識別子を含むビットマップデータと、前記ホスト装置の識別子とを前記コマンドコード内に含め、前記ビットマップデータにおいて、前記自己のストレージ装置の識別子に対応するビット位置にビットを立て、前記コマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送る機能、
前記複数のストレージ装置のうちの何れかから前記コマンドコードが送られたストレージ装置のうち、このコマンドコードに対応する処理要求が、自己に存在しない物理アクセス可能領域に対する処理要求であるストレージ装置が、このコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対応するビット位置にビットを立て、このコマンドコードを、前記優先順位情報に従って、前記処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送る機能、
前記送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、前記送られてきたコマンドコード内にビットマップデータが含まれていない場合、このストレージ装置が、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を前記ホスト装置に送る機能、
前記送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、前記送られてきたコマンドコード内にビットマップデータが含まれ、何れか一つのビット位置のビットが立てられている場合、このストレージ装置が、前記コマンドコードに対応する処理要求に対応する処理を行い、処理結果を、このビットが立てられたビット位置に対応する識別子のストレージ装置に送る機能、
前記送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、前記送られてきたコマンドコード内にビットマップデータが含まれ、複数のビット位置のビットが立てられている場合、このストレージ装置が、前記コマンドコードに対応する処理要求に対応する処理を行うとともに、前記ホスト装置から直接処理要求を受けたストレージ装置に対する応答を作成し、前記作成した応答を、ビットが立てられたビット位置に対応する識別子のストレージ装置を経由して、前記ホスト装置からの処理要求を受けたストレージ装置に送る機能、
前記応答が送られたストレージ装置が、前記応答を作成したストレージ装置に対して、処理結果を送るように要求する機能、
前記要求されたストレージ装置が、この処理結果を、要求元のストレージ装置に送ることによって、何れのストレージ装置においてなされた処理結果も、前記ホスト装置から直接処理要求を受けたストレージ装置に送る機能、
前記前記ホスト装置から直接処理要求を受けたストレージ装置が、この処理結果を前記ホスト装置に送る機能
をコンピュータに実現させるためのプログラム。
【請求項１７】
請求項１５又は請求項１６に記載のプログラムにおいて、
前記優先順位情報で定義された優先順位に従って他のストレージ装置のコントローラに処理要求を送った場合であって、この送り先のコントローラが前記処理要求を受け付けない場合、このコントローラからエラー応答が戻された場合、又はこのコントローラから所定時間応答が無い場合には、前記処理要求が既に送られたストレージ装置を除いて、次に優先順位が高いストレージ装置のコントローラに処理要求を送り直す機能
を更にコンピュータに実現させるためのプログラム。
【請求項１８】
請求項１５又は請求項１６に記載のプログラムにおいて、
前記複数のストレージ装置のうち、前記ホスト装置からアクセスされたストレージ装置が、前記各ストレージ装置が保持する物理アクセス可能領域の情報を前記ホスト装置に通知する機能、
前記ホスト装置が、前記通知された情報と、前記処理要求の内容とに基づいて、前記処理要求を送るストレージ装置を切り替える機能
を更にコンピュータに実現させるためのプログラム。
【請求項１９】
請求項１５又は請求項１６に記載のプログラムにおいて、
前記各ストレージ装置が備えている前記複数のアクセス可能領域のうちの一つ、又は二つ以上の組み合わせから構成され、前記ホスト装置から認識可能な論理ボリュームの容量情報と、前記論理ボリュームへのアクセスが許可されたホスト装置を特定するホスト識別番号と、前記ホスト装置からアクセスされる前記物理アクセス可能領域を特定する物理アクセス可能領域識別番号との組み合わせを管理するデータテーブルを、前記ストレージクラスタの全てのストレージ装置に備え、
前記論理ボリュームを構成するアクセス可能領域のうち、前記物理アクセス可能領域と、前記ホスト装置によって認識される領域である論理アクセス可能領域との対応関係を、この物理アクセス可能領域が存在するストレージ装置のみが保持しており、
前記プログラムは、
前記ホスト装置から送られてきた処理要求のうち、ライト命令及びリード命令を含むメディアアクセス命令以外の処理要求に対しては、前記ホスト装置からアクセスされたストレージ装置が前記ホスト装置に対して処理結果を送る機能
を更にコンピュータに実現させるためのプログラム。
【請求項２０】
請求項１５又は請求項１６に記載のプログラムにおいて、
前記ストレージクラスタの管理を行う管理コンソールを更に備え、
前記管理コンソールが、前記各ストレージ装置のうち任意のストレージ装置に対して、前記各ストレージ装置の情報と前記ストレージクラスタの構築要求とを送信し、送信先のストレージ装置を、前記ストレージクラスタの構築処理に関してマスタの役割をする構築マスタする機能、
前記構築マスタが、前記管理コンソールから送信された前記情報に対応する各ストレージ装置に対してテストメッセージを送信する機能、
前記テストメッセージを受信した各ストレージ装置が、前記テストメッセージに対する応答を前記構築マスタに返信する機能、
前記構築マスタが、各ストレージ装置から返信された応答から、前記テストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成するとともに、前記各ストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信する機能、
前記構築マスタ以外の各ストレージ装置が、前記送信されたリストに従って、自己以外のストレージ装置に対して、テストメッセージを送信する機能、
前記テストメッセージを受信した各ストレージ装置が、このテストメッセージに対する応答を送信元のストレージ装置に返信する機能、
前記構築マスタ以外の各ストレージ装置が、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、この応答時間の短い順に優先順位付けすることにより前記優先順位情報を作成し、前記構築マスタに対して前記優先順位情報の構築完了応答を返信する機能、
前記構築マスタが、この構築完了応答を受信すると、前記管理コンソールに対して、前記優先順位情報の構築完了応答を返信することによって、前記ストレージクラスタの構築処理を行う機能
を更にコンピュータに実現させるためのプログラム。
【請求項２１】
請求項１５又は請求項１６に記載のプログラムにおいて、
動作中のストレージクラスタに新たなストレージ装置を追加する追加処理を行う管理コンソールを更に備え、
前記管理コンソールが、前記各ストレージ装置のうち任意のストレージ装置に対して、新たなストレージ装置の追加要求と、この新たなストレージ装置の情報とを送信し、送信先のストレージ装置を、前記ストレージ装置の追加処理に関してマスタの役割をする追加マスタとする機能、
前記追加マスタが、前記管理コンソールから前記情報が送信された新たなストレージ装置に対してテストメッセージを送信し、この送信されたテストメッセージに対して前記新たなストレージ装置からなされた応答を確認し、前記新たなストレージ装置のアクセス優先順位を最下位の優先順位として前記優先順位情報に追加するとともに、前記優先順位情報にアクセス優先順位が既に定義されているストレージ装置に対して、前記新たなストレージ装置が前記ストレージクラスタに追加された旨のメッセージと、前記新たなストレージ装置の情報とを送信する機能、
前記追加マスタ及び前記新たなストレージ装置以外のストレージ装置が、自己の優先順位情報の優先順位最下位に前記新たなストレージ装置を追加し、前記追加マスタへ追加完了応答を返信する機能、
前記追加マスタが、前記新たなストレージ装置に対して、前記ストレージクラスタに含まれるストレージ装置のリストを送信する機能、
前記新たなストレージ装置が、前記リストに従って、自己以外のストレージ装置に対してテストメッセージを送信する機能、
前記テストメッセージを受信した各ストレージ装置が、このテストメッセージに対する応答を前記新たなストレージ装置に返信する機能、
前記新たなストレージ装置が、前記返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を応答時間の短い順に優先順位付けすることによって前記優先順位情報を作成し、前記追加マスタに対して、前記優先順位情報の構築完了応答を返信する機能、
前記追加マスタが、この構築完了応答及び前記追加完了応答を受信すると、前記管理コンソールに対して、前記新たなストレージ装置の追加完了応答を返信することによって、前記新たなストレージ装置の追加処理を行う機能
を更にコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージ装置がネットワーク結合し、同一の論理ボリュームに対して、ホスト装置から複数のストレージ装置を経由してアクセスすることができるストレージクラスタシステム、このストレージクラスタシステムにおけるデータ処理方法、及びこのデータ処理方法を実現するプログラムに関する。
【背景技術】
【０００２】
従来、複数のストレージ装置からなるストレージクラスタと、ストレージクラスタに通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムでは、ホスト装置がアクセスを行う、ストレージ装置の論理ボリュームと、その論理ボリュームを構成する１台以上のＨＤＤ等などから構成される物理記憶媒体との対応関係は固定的である。したがって、データを保持したまま対応関係を変更することはできず、例えば、ある物理デバイスにアクセスが集中し、他の別の物理デバイスにアクセスがほとんど発生していないといった、ストレージクラスタシステム内のＨＤＤ等の記憶デバイスを有効利用できていないという状況が発生しうる。
【０００３】
特に、近年のディスクアレイサブシステムの規模の増大と、ＨＤＤ単体の記憶容量の増加により、上記のようなアクセスの偏りの発生頻度は高まり、今後、その傾向はさらに顕著になっていくと考えられる。このような背景の下、例えば、非特許文献１に示されてるように、ディスクアレイサブシステム内の物理記憶リソースをある一定サイズの領域（エクステント）に区切り、それら１つ以上の組み合わせと論理ボリュームとの対応関係を動的に管理し、エクステント間のデータコピーを行うことによって、データを保持したまま、データの物理的存在位置を変更すること（これを、「エクステントマイグレーション」と呼ぶ）を可能とする、ディスクアレイサブシステムの仮想化技術の必要性が高まり、実用化されてきている。
【０００４】
このような仮想化ディスクアレイサブシステムにおいても、ホスト装置からのアクセス手段としては、従来のＳＣＳＩ仕様に基づく、論理ディスク番号（ＬＵＮ：Logical Unit Number）と論理ブロックアドレス（ＬＢＡ：Logical Block Address）との二つを用い、ディスクアレイサブシステム側でそれら指定されたＬＵＮとＬＢＡとの組み合わせが示す物理媒体の位置にホスト装置からのデータをライトしたり、ホスト装置へデータを送信（リード）を行う必要があり、ある論理ボリューム内をエクステントサイズで区切った、エクステントサイズ単位の論理ボリュームの一部を論理エクステントと呼ぶことにすると、論理エクステントと実際の記憶領域（以下「物理エクステント」と称する）との対応関係を示すテーブル（以下「論理−物理エクステントマッピングテーブル」と称する）を保持する必要がある。
【非特許文献１】http://www.linux.or.jp/JF/JFdocs/LVM-HOWTO-3.html
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような仮想化ディスクアレイサブシステム複数をネットワークで結合し、任意の物理エクステントに対して、ネットワーク結合された任意のディスクアレイ装置からのアクセスを可能とする、容量及び性能に関してスケーラブルな拡張性を備えたストレージクラスタシステム（以下「仮想化ストレージクラスタシステム」と称する）を考える場合、上述の論理−物理エクステントマッピングテーブルは、ネットワーク結合された他のディスクアレイ装置についてもルーティング転送用に保持する必要があり、他装置へのルーティング情報は、ストレージクラスタに参加する装置数に比例して増加し、テーブル検索時間の増加、テーブル保持用記憶領域の増加とともに、エクステントマイグレーション時の構成変更がストレージクラスタ全体に影響を及ぼす、といった問題が生じる。
【０００６】
本発明はこのような事情に鑑みてなされたものであり、ストレージクラスタに参加するストレージ装置の数に比例してルーティング情報が増加することを回避し、テーブル検索時間の増加と、テーブル保持用記憶領域の増加とを抑制するとともに、エクステントマイグレーション時の構成変更も必要に応じて自動的に行い、もって、効率的なルーティングを実現することが可能なストレージクラスタシステム、データ処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【０００８】
すなわち、本発明の第１の局面は、複数のストレージ装置からなるストレージクラスタと、ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるデータ処理方法、このデータ処理方法を適用したストレージクラスタシステム、及びこのデータ処理方法を実現するプログラムである。
【０００９】
ここで、各ストレージ装置は、ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、複数のアクセス可能領域のうち、ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備えている。
【００１０】
また、各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、各ストレージ装置が、コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしている。
【００１１】
そして、自己のストレージ装置に存在しない物理アクセス可能領域に対する、ホスト装置からの処理要求が送られてきた場合には、自己のストレージ装置のコントローラは、優先順位情報で定義された優先順位に従って、処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置のコントローラに処理要求を送り、自己のストレージ装置に存在する物理アクセス可能領域に対する、ホスト装置からの処理要求が送られてきた場合には、自己のストレージ装置のコントローラは、処理要求に対応する処理を行い、この処理結果を、処理要求の送り元に送り、他のストレージ装置のコントローラから処理結果が送られてきた場合には、自己のストレージ装置のコントローラは、この処理結果に対応する処理要求を自己のストレージ装置に送った送り元に、処理結果を送ることによって、処理結果を、ホスト装置からの処理要求を受けたストレージ装置に送り、このストレージ装置は、送られた処理結果をホスト装置に送る。
【００１２】
また、本発明の第２の局面は、複数のストレージ装置からなるストレージクラスタと、ストレージクラスタに第一の通信ネットワークによって接続されたホスト装置とを備えたストレージクラスタシステムに適用されるデータ処理方法、このデータ処理方法を適用したストレージクラスタシステム、及びこのデータ処理方法を実現するプログラムである。
【００１３】
ここで、各ストレージ装置は、ホスト装置から論理的にアクセスされることが可能な領域が分割されてなる複数のアクセス可能領域と、複数のアクセス可能領域のうち、ストレージ装置が物理的に管理している領域である物理アクセス可能領域にアクセスするためのコントローラと、コントローラによって参照され、このコントローラが備えられたストレージ装置からの他のストレージ装置へのアクセス優先順位を定義した優先順位情報とを備えている。
【００１４】
また、各ストレージ装置のコントローラ同士を第二の通信ネットワークによって接続することによって、各ストレージ装置が、コントローラを介して、他のストレージ装置の物理アクセス可能領域にアクセスできるようにしている。
【００１５】
そして、ホスト装置から、自己に存在しない物理アクセス可能領域に対する処理要求が送られてきたストレージ装置は、処理要求から、処理要求に対応した特有のコマンドコードを取得するとともに、自己のストレージ装置の識別子を含むビットマップデータと、ホスト装置の識別子とをコマンドコード内に含め、ビットマップデータにおいて、自己のストレージ装置の識別子に対応するビット位置にビットを立て、コマンドコードを、優先順位情報に従って、処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、複数のストレージ装置のうちの何れかからコマンドコードが送られたストレージ装置のうち、このコマンドコードに対応する処理要求が、自己に存在しない物理アクセス可能領域に対する処理要求であるストレージ装置は、このコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対応するビット位置にビットを立て、このコマンドコードを、優先順位情報に従って、処理要求が既に送られたストレージ装置を除いて最も優先順位が高いストレージ装置に送り、送られてきたコマンドコードに対応する処理要求が、自己に存在する物理アクセス可能領域に対する処理要求であるストレージ装置であって、送られてきたコマンドコード内にビットマップデータが含まれていない場合には、このストレージ装置は、コマンドコードに対応する処理要求に対応する処理を行い、処理結果をホスト装置に送り、送られてきたコマンドコード内にビットマップデータが含まれ、何れか一つのビット位置のビットが立てられている場合には、このストレージ装置は、コマンドコードに対応する処理要求に対応する処理を行い、処理結果を、このビットが立てられたビット位置に対応する識別子のストレージ装置に送り、送られてきたコマンドコード内にビットマップデータが含まれ、複数のビット位置のビットが立てられている場合には、このストレージ装置は、コマンドコードに対応する処理要求に対応する処理を行うとともに、ホスト装置から直接処理要求を受けたストレージ装置に対する応答を作成し、作成した応答を、ビットが立てられたビット位置に対応する識別子のストレージ装置を経由して、ホスト装置からの処理要求を受けたストレージ装置に送り、応答が送られたストレージ装置は、応答を作成したストレージ装置に対して、処理結果を送るように要求し、要求されたストレージ装置が、この処理結果を、要求元のストレージ装置に送ることによって、何れのストレージ装置においてなされた処理結果も、ホスト装置から直接処理要求を受けたストレージ装置に送られるようにしている。そして、ホスト装置から直接処理要求を受けたストレージ装置は、この処理結果をホスト装置に送る。
【００１６】
本発明の第３の局面は、本発明の第１又は第２の局面において、優先順位情報で定義された優先順位に従って他のストレージ装置のコントローラに処理要求を送った場合であって、この送り先のコントローラが処理要求を受け付けない場合、このコントローラからエラー応答が戻された場合、又はこのコントローラから所定時間応答が無い場合には、処理要求が既に送られたストレージ装置を除いて、次に優先順位が高いストレージ装置のコントローラに処理要求を送り直す。
【００１７】
本発明の第３の局面は、本発明の第１又は第２の局面において、複数のストレージ装置のうち、ホスト装置からアクセスされたストレージ装置は、各ストレージ装置が保持する物理アクセス可能領域の情報をホスト装置に通知し、ホスト装置は、通知された情報と、処理要求の内容とに基づいて、処理要求を送るストレージ装置を切り替える。
【００１８】
本発明の第４の局面は、本発明の第１又は第２の局面において、各ストレージ装置が備えている複数のアクセス可能領域のうちの一つ、又は二つ以上の組み合わせから構成され、ホスト装置から認識可能な論理ボリュームの容量情報と、論理ボリュームへのアクセスが許可されたホスト装置を特定するホスト識別番号と、ホスト装置からアクセスされる物理アクセス可能領域を特定する物理アクセス可能領域識別番号との組み合わせを管理するデータテーブルを、ストレージクラスタの全てのストレージ装置に備えている。そして、論理ボリュームを構成するアクセス可能領域のうち、物理アクセス可能領域と、ホスト装置によって認識される領域である論理アクセス可能領域との対応関係を、この物理アクセス可能領域が存在するストレージ装置のみが保持し、ホスト装置から送られてきた処理要求のうち、ライト命令及びリード命令を含むメディアアクセス命令以外の処理要求に対しては、ホスト装置からアクセスされたストレージ装置がホスト装置に対して処理結果を送る。
【００１９】
本発明の第５の局面は、本発明の第１又は第２の局面において、ストレージクラスタの管理を行う管理コンソールを更に備えている。そして、管理コンソールは、各ストレージ装置のうち任意のストレージ装置に対して、各ストレージ装置の情報とストレージクラスタの構築要求とを送信し、送信先のストレージ装置を、ストレージクラスタの構築処理に関してマスタの役割をする構築マスタとする。この構築マスタは、管理コンソールから送信された情報に対応する各ストレージ装置に対してテストメッセージを送信し、テストメッセージを受信した各ストレージ装置は、テストメッセージに対する応答を構築マスタに返信し、構築マスタは、各ストレージ装置から返信された応答から、テストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、応答時間の短い順に優先順位付けすることにより優先順位情報を作成するとともに、各ストレージ装置に対して、ストレージクラスタに含まれるストレージ装置のリストを送信し、構築マスタ以外の各ストレージ装置は、送信されたリストに従って、自己以外のストレージ装置に対して、テストメッセージを送信し、テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を送信元のストレージ装置に返信し、構築マスタ以外の各ストレージ装置は、返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を、この応答時間の短い順に優先順位付けすることにより優先順位情報を作成し、構築マスタに対して優先順位情報の構築完了応答を返信し、構築マスタは、この構築完了応答を受信すると、管理コンソールに対して、優先順位情報の構築完了応答を返信することによって、ストレージクラスタの構築処理を行う。
【００２０】
本発明の第６の局面は、本発明の第１又は第２の局面において、動作中のストレージクラスタに新たなストレージ装置を追加する追加処理を行う管理コンソールを更に備えている。そして、管理コンソールは、各ストレージ装置のうち任意のストレージ装置に対して、新たなストレージ装置の追加要求と、この新たなストレージ装置の情報とを送信し、送信先のストレージ装置を、ストレージ装置の追加処理に関してマスタの役割をする追加マスタとする。そして、追加マスタは、管理コンソールから情報が送信された新たなストレージ装置に対してテストメッセージを送信し、この送信されたテストメッセージに対して新たなストレージ装置からなされた応答を確認し、新たなストレージ装置のアクセス優先順位を最下位の優先順位として優先順位情報に追加するとともに、優先順位情報にアクセス優先順位が既に定義されているストレージ装置に対して、新たなストレージ装置がストレージクラスタに追加された旨のメッセージと、新たなストレージ装置の情報とを送信し、追加マスタ及び新たなストレージ装置以外のストレージ装置は、自己の優先順位情報の優先順位最下位に新たなストレージ装置を追加し、追加マスタへ追加完了応答を返信し、追加マスタは、新たなストレージ装置に対して、ストレージクラスタに含まれるストレージ装置のリストを送信し、新たなストレージ装置は、リストに従って、自己以外のストレージ装置に対してテストメッセージを送信し、テストメッセージを受信した各ストレージ装置は、このテストメッセージに対する応答を新たなストレージ装置に返信し、新たなストレージ装置は、返信された応答から、このテストメッセージに対する各ストレージ装置の応答時間を計測し、各ストレージ装置を応答時間の短い順に優先順位付けすることによって優先順位情報を作成し、追加マスタに対して、優先順位情報の構築完了応答を返信し、追加マスタは、この構築完了応答及び追加完了応答を受信すると、管理コンソールに対して、新たなストレージ装置の追加完了応答を返信することによって、新たなストレージ装置の追加処理を行う。
【発明の効果】
【００２１】
本発明によれば、ストレージクラスタに参加するストレージ装置の数に比例してルーティング情報が増加することを回避し、テーブル検索時間の増加と、テーブル保持用記憶領域の増加とを抑制するとともに、エクステントマイグレーション時の構成変更も必要に応じて自動的に行い、もって、効率的なルーティングを実現することが可能なストレージクラスタシステム、データ処理方法、及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００２３】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの構成例を示すブロック図である。
【００２４】
すなわち、本実施の形態に係るストレージクラスタシステム１０は、ファイバチャネル又はｉＳＣＳＩ等によるストレージエリアネットワーク１１によって互いに接続された複数のストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）と、同様にストレージエリアネットワーク１１に接続されたホスト装置１８とを備えてなる。複数のストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）をまとめてストレージクラスタとも称する。
【００２５】
またストレージ装置１２はそれぞれコントローラ１４と、メモリやＨＤＤ等のハードウェアからなる物理記憶媒体１６とを備えている。なお、ストレージ装置１２は、代表的に３つのみ図示しているが、３つに限られるものではない。
【００２６】
物理記憶媒体１６は、例えば図２に示すように、複数のエクステントＥＸＴに分割されている。エクステントとは、ホスト装置１８から論理的に連続してアクセスされる領域の単位のことである。図２は、３つのエクステントＥＸＴ（＃０，＃１，＃２）からなる例を示しているが、もちろん３つのエクステントに限定されるものではない。更にエクステントは、ホスト装置１８から認識される論理エクステントと、ストレージ装置１２が物理的に管理する物理エクステントとに分類される。
【００２７】
コントローラ１４は、物理エクステントにアクセスするためのものである。このコントローラ１４は、自己が備えられているストレージ装置１２から他のストレージ装置１２へのアクセス優先順位を定義した優先順位付ルーティングテーブルを保持している。
【００２８】
各ストレージ装置１２は、このコントローラ１４同士をストレージエリアネットワーク１１によって接続している。これによって、各ストレージ装置１２が、コントローラ１４を介して、他のストレージ装置１２の物理記憶媒体１６の物理エクステントにアクセスできるようにしている。
【００２９】
コントローラ１４は、ホスト装置１８から、ストレージクラスタを構成する何れかのストレージ装置１２に対して処理要求コマンドが送られてきた場合、以下のように動作する。
【００３０】
ホスト装置１８から、例えばストレージ装置１２（＃Ａ）に処理要求コマンドが送られ、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在する物理エクステントにアクセスを要するのであれば、コントローラ１４（＃Ａ）は、この処理要求コマンドに対応する処理を行い、この処理結果を、処理要求の送り元であるホスト装置１８に返送する。
【００３１】
一方、ホスト装置１８から、ストレージ装置１２（＃Ａ）に処理要求コマンドが送られ、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在しない物理エクステントに対するアクセスを要するのであれば、コントローラ１４（＃Ａ）は、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置、すなわちこの処理要求コマンドが既に送られたストレージ装置を除いて最も優先順位が高い自己の次に優先順位が高いストレージ装置１２のコントローラ１４に処理要求コマンドを転送する。例えば、ストレージ装置１２（＃Ａ）では、優先順位付ルーティングテーブルにおいてストレージ装置１２（＃Ｂ）の優先順位が最も高く、かつストレージ装置１２（＃Ｂ）がストレージ装置１２（＃Ａ）の下流側にあるのであれば、コントローラ１４（＃Ａ）は、コントローラ１４（＃Ｂ）に処理要求コマンドを転送する。
【００３２】
このように、コントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）に処理要求コマンドが送られ、この処理が、物理記憶媒体１６（＃Ｂ）に存在する物理エクステントにアクセスを要するのであれば、コントローラ１４（＃Ｂ）は、この処理要求コマンドに対応する処理を行い、この処理結果を、処理要求コマンドの送り元であるコントローラ１４（＃Ａ）に返送する。このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ａ）に処理結果が返送されると、コントローラ１４（＃Ａ）は、この処理結果を、処理要求の送り元であるホスト装置１８に返送する。
【００３３】
一方、コントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）に処理要求コマンドが送られ、この処理が、物理記憶媒体１６（＃Ｂ）に存在しない物理エクステントに対するアクセスを要するのであれば、コントローラ１４（＃Ｂ）は、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４に処理要求コマンドを転送する。例えば、上流のストレージ装置を除いて、ストレージ装置１２（＃Ｂ）の次に優先順位が高いのがストレージ装置１２（＃Ｃ）であれば、コントローラ１４（＃Ｂ）は、コントローラ１４（＃Ｃ）に処理要求コマンドを転送する。
【００３４】
このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ｃ）に処理要求コマンドが送られ、この処理が、物理記憶媒体１６（＃Ｃ）に存在する物理エクステントにアクセスを要するのであれば、コントローラ１４（＃Ｃ）は、この処理要求コマンドに対応する処理を行い、この処理結果を、処理要求コマンドの送り元であるコントローラ１４（＃Ｂ）に返送する。このように、コントローラ１４（＃Ｃ）から、コントローラ１４（＃Ｂ）に処理結果が返送されると、コントローラ１４（＃Ｂ）は、この処理結果を、処理要求コマンドの送り元であるコントローラ１４（＃Ａ）に返送する。更に、このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ａ）に処理結果が返送されると、コントローラ１４（＃Ａ）は、この処理結果を、処理要求コマンドの送り元であるホスト装置１８に返送する。
【００３５】
一方、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ｃ）に処理要求コマンドが送られ、この処理が、物理記憶媒体１６（＃Ｃ）に存在しない物理エクステントに対するアクセスを要するのであれば、コントローラ１４（＃Ｃ）は、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４に処理要求コマンドを転送する。
【００３６】
ホスト装置１８が、ストレージクラスタのうちの何れかのストレージ装置１２に処理要求コマンドを送った場合、各ストレージ装置１２の各コントローラ１４が上述したように動作することによって、処理に必要な物理エクステントを持つストレージ装置１２であるターゲットストレージ装置から順番に、上流側のストレージ装置１２との間でライト及びリード等のデータ転送がなされ、最終的にホスト装置１８に処理結果が返送されるようにしている。
【００３７】
なお、以上のように構成されたストレージクラスタシステム１０は、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に記録されたプログラムや、インターネット等の通信ネットワークを介してダウンロードされたプログラムをホスト装置１８及びストレージ装置１２に読み込み、ホスト装置１８及びストレージ装置１２が、このプログラムによって動作が制御されることによって実現される。また、この記録媒体に記録されたプログラムは、コンピュータに実行させるソフトウェア手段（実行プログラムのみならずテーブルやデータ構造も含む）をホスト装置１８及びストレージ装置１２内に構成させる設定プログラムをも含む。このプログラムは、記録媒体から、あるいは通信媒体からコンピュータに読み込まれると、このコンピュータを上記のように動作させる。
【００３８】
以上のように構成した本実施の形態に係るストレージクラスタシステムにおける処理要求コマンドのルーティングを簡単に示すと図３のようになる。
【００３９】
すなわち、ストレージ装置１２に対して、ホスト装置１８又は上流のストレージ装置１２からコマンド要求が送られた場合（Ｓ１）、コントローラ１４は、この処理が、自己の物理記憶媒体１６に存在しない物理エクステントに対するアクセスを要するのであれば（Ｓ２：Ｎｏ）、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４に処理要求コマンドを転送する（Ｓ３）。
【００４０】
一方、ステップＳ２において、この処理が、自己の物理記憶媒体１６に存在する物理エクステントに対するアクセスを要するのであれば（Ｓ２：Ｙｅｓ）、自己の物理記憶媒体１６へのアクセスを行い、この処理要求コマンドに対応する処理を行う（Ｓ４）。
【００４１】
上述したように、本実施の形態に係るストレージクラスタシステムにおいては、上記のような作用により、ホスト装置１８が、ストレージクラスタのうちの何れかのストレージ装置１２に処理要求コマンドを送った場合、処理に必要な物理エクステントを持つストレージ装置１２であるターゲットストレージ装置から順番に、上流側のストレージ装置１２との間でライト及びリード等のデータ転送がなされ、最終的にホスト装置１８に処理結果が返送される。
【００４２】
これによって、ストレージクラスタに参加するストレージ装置１２の数に比例してルーティング情報が増加することが回避され、テーブル検索時間の増加と、テーブル保持用記憶領域の増加とを抑制するとともに、エクステントマイグレーション時の構成変更も必要に応じて行うことができる。その結果、効率的なルーティングを実現することが可能となる。
【００４３】
（第２の実施の形態）
本発明の第２の実施の形態を用いて説明する。
【００４４】
本発明の第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第１の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、コントローラ１４の動作が異なるのみである。よって、ここでは、コントローラ１４の動作のみ説明し、その他については重複説明を避ける。
【００４５】
コントローラ１４は、物理エクステントにアクセスするためのものである。このコントローラ１４は、このコントローラ１４が備えられたストレージ装置１２からの他のストレージ装置１２へのアクセス優先順位を定義した優先順位付ルーティングテーブルを保持している。
【００４６】
各ストレージ装置１２は、このコントローラ１４同士をストレージエリアネットワーク１１によって接続している。これによって、各ストレージ装置１２が、コントローラ１４を介して、他のストレージ装置１２の物理記憶媒体１６の物理エクステントにアクセスする。
【００４７】
コントローラ１４は、ホスト装置１８から、ストレージクラスタを構成する何れかのストレージ装置１２に対して処理要求コマンドが送られてきた場合、以下のように動作する。
【００４８】
ホスト装置１８から、例えばストレージ装置１２（＃Ａ）に処理要求コマンドが送られ、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在する物理エクステントにアクセスを要するのであれば、コントローラ１４（＃Ａ）は、この処理要求コマンドに対応する処理を行い、この処理結果を、処理要求の送り元であるホスト装置１８に返送する。
【００４９】
一方、ホスト装置１８から、ストレージ装置１２（＃Ａ）に処理要求コマンドが送られ、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在しない物理エクステントに対するアクセスを要するのであれば、コントローラ１４（＃Ａ）は、この処理要求コマンドから、この処理要求コマンドに対応した特有のコマンドであるベンダユニークコマンドコードを取得するとともに、自己のストレージ装置１２（＃Ａ）の識別子を含むビットマップデータと、ホスト装置１８の識別子とをベンダユニークコマンドコード内に含める。そして、このビットマップデータにおいて、自己のストレージ装置１２（＃Ａ）の識別子に対応するビット位置にビットを立て、このベンダユニークコマンドコードを、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４に転送する。例えば、ストレージ装置１２（＃Ａ）の次に、上流のストレージ装置を除いて最も優先順位が高いのがストレージ装置１２（＃Ｂ）であれば、コントローラ１４（＃Ａ）は、コントローラ１４（＃Ｂ）にベンダユニークコマンドコードを転送する。
【００５０】
このようにコントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）にベンダユニークコマンドコードが送られ、対応する処理が、物理記憶媒体１６（＃Ｂ）に存在する物理エクステントにアクセスを要する場合であれば、コントローラ１４（＃Ｂ）は、この処理を行い、処理結果を、ベンダユニークコマンドデータにおいて立てられたビット位置に対応する識別子のストレージ装置１２のコントローラ１４、すなわちストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に返送する。このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ａ）に処理結果が返送されると、コントローラ１４（＃Ａ）は、この処理結果を、処理要求コマンドの送り元であるホスト装置１８に返送する。
【００５１】
一方、コントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）にベンダユニークコマンドコードが送られ、このベンダユニークコマンドコードに対応する処理が、物理記憶媒体１６（＃Ｂ）に存在しない物理エクステントに対するアクセスを要するのであれば、コントローラ１４（＃Ｂ）は、このベンダユニークコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対するビット位置にビットを立て、このベンダユニークコマンドコードを、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４に転送する。例えば、上流のストレージ装置を除いて、ストレージ装置１２（＃Ｂ）の次に優先順位が高いのがストレージ装置１２（＃Ｃ）であれば、コントローラ１４（＃Ｂ）は、コントローラ１４（＃Ｃ）にベンダユニークコマンドコードを転送する。
【００５２】
このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ｃ）にベンダユニークコマンドコードが送られ、対応する処理が、物理記憶媒体１６（＃Ｃ）に存在する物理エクステントにアクセスを要するのであれば、コントローラ１４（＃Ｃ）は、対応する処理を行うとともに、ホスト装置１８から直接処理要求を受けたストレージ装置であるストレージ装置１２（＃Ａ）に対する応答を作成し、作成した応答を、ビットが立てられたビット位置に対応する識別子のストレージ装置であるストレージ装置１２（＃Ｂ）を経由して、ストレージ装置１２（＃Ａ）に送る。
【００５３】
ストレージ装置１２（＃Ａ）では、コントローラ１４（＃Ａ）がこの応答を受け取ると、ストレージ装置１２（＃Ｃ）のコントローラ１４（＃Ｃ）に対して、処理結果を送るように要求する。
【００５４】
すると、コントローラ１４（＃Ｃ）は、この要求に応じて、処理結果を、ストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に送る。コントローラ１４（＃Ａ）は、この処理結果を受け取ると、ホスト装置１８に送る。
【００５５】
このようにすることによって、何れのストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）においてなされた処理結果であっても、ホスト装置１８から直接処理要求を受けたストレージ装置１２（＃Ａ）を介してホスト装置１８へ送られる。しかしながら、ストレージ装置１２（＃Ｃ）の例を用いて説明したように、ホスト装置１８から直接処理要求を受けたストレージ装置１２（＃Ａ）と、処理を行うストレージ装置１２（＃Ｃ）との間に、処理を行わないストレージ装置１２（＃Ｂ）が介在する場合（この場合、ストレージ装置１２（＃Ｂ）は「中間ストレージ装置」と称される）には、ストレージ装置１２（＃Ｃ）でなされた処理結果は、ストレージ装置１２（＃Ｂ）を経由することなく、ストレージ装置１２（＃Ａ）に直接送る。これによって、データを最短経路で、効率的に伝送するようにしている。
【００５６】
次に、以上のように構成した本実施の形態に係るストレージクラスタシステムの動作例を図４に示すフローチャートを用いて説明する。
【００５７】
ホスト装置１８から、ストレージ装置１２（＃Ａ）に処理要求コマンドが送られ（Ｓ１１）、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在する物理エクステントにアクセスを要するのであれば(Ｓ１２:Ｙｅｓ)、（Ｓ１３：ｃａｓｅ３）、コントローラ１４（＃Ａ）によって、この処理要求コマンドに対応する処理が行われ、この処理結果が、処理要求の送り元であるホスト装置１８に返送される（Ｓ１４）。
【００５８】
一方、この処理が、ストレージ装置１２（＃Ａ）の物理記憶媒体１６（＃Ａ）に存在しない物理エクステントに対するアクセスを要するのであれば（Ｓ１２：Ｎｏ），（Ｓ１７：Ｙｅｓ（ｃａｓｅ２））、コントローラ１４（＃Ａ）によって、この処理要求コマンドから、この処理要求コマンドに対応した特有のコマンドであるベンダユニークコマンドコードが取得されるとともに、ストレージ装置１２（＃Ａ）の識別子を含むビットマップデータと、ホスト装置１８の識別子とがベンダユニークコマンドコード内に含められる。そして、このビットマップデータにおいて、ストレージ装置１２（＃Ａ）の識別子に対応するビット位置にビットが立てられ、このベンダユニークコマンドコードが、優先順位付ルーティングテーブルに定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２（＃Ｂ）のコントローラ１４（＃Ｂ）にベンダユニークコマンドコードが転送される（Ｓ１８）。
【００５９】
このようにコントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）にベンダユニークコマンドコードが送られ（Ｓ１１）、対応する処理が、物理記憶媒体１６（＃Ｂ）に存在する物理エクステントにアクセスを要する場合であれば（Ｓ１２:Ｙｅｓ）,（Ｓ１３：ｃａｓｅ４）、コントローラ１４（＃Ｂ）によってこの処理が行われ、処理結果が、ベンダユニークコマンドデータにおいて立てられたビット位置に対応する識別子のストレージ装置１２のコントローラ１４、すなわちストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に返送される（Ｓ１５）。このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ａ）に処理結果が返送されると、コントローラ１４（＃Ａ）によって、この処理結果が、処理要求コマンドの送り元であるホスト装置１８に返送される。
【００６０】
一方、コントローラ１４（＃Ａ）から、コントローラ１４（＃Ｂ）にベンダユニークコマンドコードが送られ、このベンダユニークコマンドコードに対応する処理が、物理記憶媒体１６（＃Ｂ）に存在しない物理エクステントに対するアクセスを要するのであれば（Ｓ１７：Ｎｏ（ｃａｓｅ１））、コントローラ１４（＃Ｂ）によって、このベンダユニークコマンドコードに含まれるビットマップデータにおいて、自己の識別子に対するビット位置にビットが立てられ、このベンダユニークコマンドコードが、優先順位付ルーティングテーブルで定義されたアクセス優先順位に従って、上流のストレージ装置を除いて最も優先順位が高いストレージ装置１２のコントローラ１４へ転送される。例えば、上流のストレージ装置を除いて、ストレージ装置１２（＃Ｂ）の次に優先順位が高いのがストレージ装置１２（＃Ｃ）であれば、コントローラ１４（＃Ｂ）によって、コントローラ１４（＃Ｃ）にベンダユニークコマンドコードが転送される（Ｓ１９）。
【００６１】
このように、コントローラ１４（＃Ｂ）から、コントローラ１４（＃Ｃ）にベンダユニークコマンドコードが送られ（Ｓ１１）、対応する処理が、物理記憶媒体１６（＃Ｃ）に存在する物理エクステントにアクセスを要するのであれば（Ｓ１２：Ｙｅｓ），（Ｓ１３：ｃａｓｅ５）、コントローラ１４（＃Ｃ）によって、対応する処理が行われるとともに、ホスト装置１８から直接処理要求を受けたストレージ装置であるストレージ装置１２（＃Ａ）に対する応答であるセンスデータが作成され、作成されたセンスデータが、ストレージ装置１２（＃Ｂ）を経由して、ストレージ装置１２（＃Ａ）に送られる（Ｓ１６）。ストレージ装置１２（＃Ａ）では、コントローラ１４（＃Ａ）によってこのセンスデータが受け取られ、コントローラ１４（＃Ｃ）は、コントローラ１４（＃Ａ）によって、処理結果を送るように要求される。すると、この要求に応じて、コントローラ１４（＃Ｃ）によって、処理結果が、ストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に送られる。この処理結果は、コントローラ１４（＃Ａ）によって受け取られると、コントローラ１４（＃Ａ）からホスト装置１８へと送られる。
【００６２】
図５は、上述したｃａｓｅ１乃至ｃａｓｅ５の相違点をまとめた表である。図５においてホストストレージ装置はストレージ装置１２（＃Ａ）に相当し、中間ストレージ装置はストレージ装置１２（＃Ｂ）に相当し、ターゲットストレージ装置はストレージ装置１２（＃Ｃ）に相当する。
【００６３】
図６は、上記ｃａｓｅ５の場合の処理の流れを示す図である。すなわち、ホスト装置１８から、ストレージ装置１２（＃Ａ）に処理要求コマンドが送られる（ａ１）が、この処理は、物理記憶媒体１６（＃Ｃ）に存在する物理エクステントにアクセスを要するものであるので、コントローラ１４（＃Ａ）において、ストレージ装置１２（＃Ａ）に対応するビットが立てられたビットマップデータを含むベンダユニークコマンドコードが生成されてコントローラ１４（＃Ｂ）に転送される（ａ２）。更にコントローラ１４（＃Ｂ）では、更にストレージ装置１２（＃Ｂ）に対応するビットが立てられて、ベンダユニークコマンドコードがコントローラ１４（＃Ｃ）に転送される（ａ３）。
【００６４】
そして、コントローラ１４（＃Ｃ）によって、このベンダユニークコマンドコードに対応する処理がなされるとともに、ストレージ装置１２（＃Ａ）に対する応答であるセンスデータが作成され、作成したセンスデータが、ストレージ装置１２（＃Ｂ）を経由して（ａ４）、ストレージ装置１２（＃Ａ）に送られる（ａ５）。
【００６５】
センスデータがストレージ装置１２（＃Ａ）によって受け取られると、コントローラ１４（＃Ａ）からコントローラ１４（＃Ｃ）に対して処理結果を送るよう要求がなされ（ａ６）、この要求に応じて、コントローラ１４（＃Ｃ）によって、処理結果が、ストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に送られる（ａ７）。この処理結果は、コントローラ１４（＃Ａ）によって受け取られると、コントローラ１４（＃Ａ）からホスト装置１８へと送られる（ａ８）。
【００６６】
上述したように、本実施の形態に係るストレージクラスタシステムにおいては、何れのストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）においてなされた処理結果であっても、ホスト装置１８から直接処理要求を受けたストレージ装置１２（＃Ａ）を介してホスト装置１８へ返される。この場合、ストレージ装置１２（＃Ｃ）で処理が行われる場合のように、ホスト装置１８から直接処理要求を受けたストレージ装置１２（＃Ａ）と、処理を行うストレージ装置１２（＃Ｃ）との間に、処理を行わないストレージ装置１２（＃Ｂ）が介在する場合には、ストレージ装置１２（＃Ｃ）でなされた処理結果を、ストレージ装置１２（＃Ｂ）を経由することなく、ストレージ装置１２（＃Ａ）に直接送ることができる。これによって、ホスト装置１８から処理要求を受けたストレージ装置１２において処理がなされない場合であっても、処理結果であるデータを最短経路で、効率的に伝送することが可能となる。
【００６７】
（第３の実施の形態）
本発明の第３の実施の形態を用いて説明する。
【００６８】
本発明の第３の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第１又は第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、コントローラ１４の動作が異なるのみである。よって、ここでは、コントローラ１４の動作のみ説明し、その他については重複説明を避ける。
【００６９】
すなわち、本実施の形態に係るストレージクラスタシステムは、優先順位付ルーティングテーブルで定義された優先順位に従って上流のストレージ装置１２を除く他のストレージ装置１２のコントローラ１４に処理要求を送った場合、送り先のストレージ装置１２の故障等により、この送り先のストレージ装置１２のコントローラ１４が処理要求を受け付けない場合（転送不可）、送り先のコントローラ１４からエラー応答があった場合、又は送り先のコントローラから所定時間応答が無くタイムアウトになった場合には、上流のストレージ装置１２を除いて、優先順位が次に高いストレージ装置のコントローラに処理要求を送り直す。
【００７０】
例えば、図７に示すように、ホスト装置１８からなされた処理要求に対し、ストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）が、優先順位付ルーティングテーブルで定義された優先順位に従ってストレージ装置１２（＃Ｂ）のコントローラ１４（＃Ｂ）に処理要求を送ったものとする（ｂ１）。この場合、ストレージ装置１２（＃Ｂ）が正常に動作していれば、処理結果、あるいはセンスデータがコントローラ１４（＃Ｂ）から、ストレージ装置１２（＃Ａ）のコントローラ１４（＃Ａ）に返される筈である。しかしながら、ストレージ装置１２（＃Ｂ）が故障等により正常に動作しない場合には、コントローラ１４（＃Ｂ）が処理要求を受け付けなかったり（転送不可）、コントローラ１４（＃Ｂ）からエラー応答があったり、コントローラ（＃Ｂ）から所定時間応答が無くコントローラ１４（＃Ａ）によってタイムアウトと判定される（ｂ２）。
【００７１】
このような場合、コントローラ１４（＃Ａ）は、コントローラ１４（＃Ｂ）に送った処理要求を、コントローラ１４（＃Ｃ）に送り直す（ｂ３）。
【００７２】
このように、正常に動作しないストレージ装置１２を迂回し、別のストレージ装置１２に処理要求を送ることによって、処理の中断を回避し、処理を継続することができる。
【００７３】
（第４の実施の形態）
本発明の第４の実施の形態を用いて説明する。
【００７４】
本発明の第４の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第１又は第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、第１又は第２の実施の形態で説明した機能に加えて、コントローラ１４に以下に記載する通知機能を、ホスト装置１８に以下に記載する切替機能をそれぞれ付加している。よって、ここでは、異なる点のみ説明し、その他については重複説明を避ける。
【００７５】
すなわち、本実施の形態では、図８に示すように、ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のうち、ホスト装置１８によってアクセスされるストレージ装置１２（＃Ａ）は、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）が保持する物理エクステントの情報をホスト装置１８に同期的、又は一定周期毎のように非同期的に通知する機能を備えている。
【００７６】
また、ホスト装置１８は、ストレージ装置１２（＃Ａ）の通知機能により通知された情報と、処理要求の内容とに基づいて、処理要求を送るストレージ装置１２を切り替える機能を備えている。
【００７７】
本実施の形態に係るストレージクラスタシステムは、上記のような構成により、ストレージ装置１２（＃Ａ）を経由してストレージ装置１２（＃Ｃ）にアクセスする筈であった（ｃ１）ホスト装置１８に対して、ストレージ装置１２（＃Ａ）が、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）が保持する物理エクステントの情報をホスト装置１８に通知する（ｃ２）。
【００７８】
するとホスト装置１８は、処理要求に対応する物理エクステントがストレージ装置１２（＃Ｃ）に存在することを把握し、処理要求を送るストレージ装置１２をストレージ装置１２（＃Ａ）からストレージ装置１２（＃Ｃ）に切り替える（ｃ３）。
【００７９】
これによって、ホスト装置１８からの処理要求の経路、およびこの処理要求に対する処理結果がホスト装置１８に戻される経路を最短にすることができ、もって、効率的な伝送を実現することが可能となる。
【００８０】
（第５の実施の形態）
本発明の第５の実施の形態を用いて説明する。
【００８１】
本発明の第５の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第１又は第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、ストレージ装置１２に、第１又は第２の実施の形態で説明した機能に加えて、以下に示すような新たな機能を付加した構成としている。よって、ここでは、異なる点のみ説明し、その他については重複説明を避ける。
【００８２】
すなわち、本実施の形態に係るストレージクラスタシステムでは、各ストレージ装置１２が、管理データテーブルを保持している。管理データテーブルは、ホスト装置１８から認識可能であり、エクステントから構成される論理ボリュームの容量情報と、論理ボリュームへのアクセスが許可されたホスト装置１８を特定するホスト識別番号と、ホスト装置１８からアクセスされる物理エクステントを特定する物理アクセス可能領域識別番号との組み合わせを管理している。また、論理ボリュームを構成するエクステントのうち、物理エクストンと論理エクステントとの対応関係を、対応する物理エクステントが存在するストレージ装置１２のみが保持している。
【００８３】
そして、ホスト装置１８から送られてきた処理要求のうち、ライト命令及びリード命令を含むメディアアクセス系命令以外の処理要求コマンド、例えばＳＣＳＩのＩｎｑｕｉｒｙコマンド、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンド、Ｒｅｐｏｒｔ  ＬＵＮｓ等のコントロールコマンドに対しては、自己のコントローラ１４に保持された優先順位付ルーティングテーブルによって、優先順位が最も高く定義されているストレージ装置１２が、ホスト装置１８に対して処理結果を送る。
【００８４】
次に、以上のように構成した本実施の形態に係るストレージクラスタシステムの処理の流れを図９に示すフローチャートを用いて説明する。
【００８５】
ホスト装置１８からストレージクラスタに対して処理要求コマンドが送られると、この処理要求コマンドは、ストレージ装置１２（＃Ａ）によって受信される（Ｓ２１）。
【００８６】
そして、この処理要求コマンドが、メディアアクセス系以外のコマンドである場合（Ｓ２２：Ｎｏ）には、ストレージ装置１２（＃Ａ）によって、処理がなされ、処理結果がホスト装置１８に応答される（Ｓ２３）。
【００８７】
一方、この処理要求コマンドが、メディアアクセス系のコマンドである場合（Ｓ２２：Ｙｅｓ）には、第１又は第２の実施の形態で説明したように動作することによって、最終的に処理結果が、ホスト装置１８に送られる（Ｓ２４）。
【００８８】
これによって、処理要求コマンドが、メディアアクセス系以外のコマンドである場合には、無駄なルーティングを介することなく、効率的な伝送を実現することが可能となる。
【００８９】
（第６の実施の形態）
本発明の第６の実施の形態を用いて説明する。
【００９０】
本発明の第６の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第１又は第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、第１又は第２の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムに、図１０又は図１１に示すように、更に管理コンソール２０を備えた構成をしている。この管理コンソール２０は、デフォルトの優先順位付ルーティングテーブルを構築するものである。したがって、ここでは、管理コンソール２０について説明し、その他については重複説明を避ける。
【００９１】
図１０は、ストレージエリアネットワーク１１に管理コンソール２０を設けた構成例を示すブロック図であり、図１１は、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）をＬＡＮ２２で接続し、このＬＡＮ２２に管理コンソール２０を設けた構成例を示すブロック図である。
【００９２】
この管理コンソール２０は、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のうち任意のストレージ装置１２に対して、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）の情報と、ストレージクラスタの構築要求とを送信し、送信先のストレージ装置１２を、ストレージクラスタの構築処理に関してマスタの役割をする構築マスタとする。以下、ストレージ装置１２（＃Ａ）が構築マスタとされたものとして説明する。
【００９３】
構築マスタとされたストレージ装置１２（＃Ａ）は、ストレージ装置１２（＃Ｂ）とストレージ装置１２（＃Ｃ）とに対してテストメッセージを送信する。
【００９４】
すると、ストレージ装置１２（＃Ｂ）とストレージ装置１２（＃Ｃ）とは、このテストメッセージを受信し、このテストメッセージに対する応答を構築マスタであるストレージ装置１２（＃Ａ）に返信する。
【００９５】
構築マスタであるストレージ装置１２（＃Ａ）は、各ストレージ装置１２（＃Ｂ，＃Ｃ）から返信された応答から、テストメッセージに対する各ストレージ装置１２（＃Ｂ，＃Ｃ）の応答時間を計測し、各ストレージ装置１２（＃Ｂ，＃Ｃ）を、応答時間の短い順に優先順位付けすることによりアクセス優先順位を決定し、デフォルトの優先順位付ルーティングテーブルを作成するとともに、各ストレージ装置１２（＃Ｂ，＃Ｃ）に対して、ストレージクラスタに含まれるストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のリストを送信する。
【００９６】
構築マスタ以外のストレージ装置１２（＃Ｂ，＃Ｃ）は、送信されたリストに従って、自己以外のストレージ装置に対して、テストメッセージを送信する。例えば、ストレージ装置１２（＃Ｂ）は、ストレージ装置１２（＃Ａ）及びストレージ装置１２（＃Ｃ）にテストメッセージを送信し、ストレージ装置１２（＃Ｃ）は、ストレージ装置１２（＃Ａ）及びストレージ装置１２（＃Ｂ）にテストメッセージを送信する。一方、このテストメッセージを受信した各ストレージ装置１２は、このテストメッセージに対する応答を送信元のストレージ装置１２に返信する。
【００９７】
構築マスタ以外の各ストレージ装置１２（＃Ｂ，＃Ｃ）は、この返信された応答から、テストメッセージに対する各ストレージ装置１２の応答時間を計測し、各ストレージ装置１２を、この応答時間の短い順に優先順位付けすることによりアクセス優先順位を決定し、デフォルトの優先順位付ルーティングテーブルを作成するとともに、構築マスタであるストレージ装置１２（＃Ａ）に対してアクセス優先順位の構築完了応答を返信する。
【００９８】
構築マスタであるストレージ装置１２（＃Ａ）は、この構築完了応答を受信すると、管理コンソール２０に対して、アクセス優先順位の構築完了応答を返信することによって、ストレージクラスタの構築処理を行う。
【００９９】
次に、以上のようなストレージクラスタの構築処理の流れを図１２に示すフローチャートを用いて説明する。
【０１００】
ストレージクラスタの構築処理が開始されると（Ｓ３０）、管理コンソール２０から、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のうち任意のストレージ装置１２（ここでは、ストレージ装置１２（＃Ａ）とする）に対して、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）の情報と、ストレージクラスタの構築要求とが送信され、送信先のストレージ装置１２（＃Ａ）が、ストレージクラスタの構築処理に関してマスタの役割をする構築マスタとされる（Ｓ３１）。
【０１０１】
すると、構築マスタとされたストレージ装置１２（＃Ａ）からは、ストレージ装置１２（＃Ｂ）とストレージ装置１２（＃Ｃ）とに対してテストメッセージが送信される（Ｓ３２）。
【０１０２】
このテストメッセージは、各ストレージ装置１２（＃Ｂ，＃Ｃ）で受信されると、各ストレージ装置１２（＃Ｂ，＃Ｃ）では、このテストメッセージに対する応答が作成され、作成された応答が、構築マスタであるストレージ装置１２（＃Ａ）に返信される（Ｓ３３）。
【０１０３】
構築マスタであるストレージ装置１２（＃Ａ）では、各ストレージ装置１２（＃Ｂ，＃Ｃ）から返信された応答から、テストメッセージに対する各ストレージ装置１２（＃Ｂ，＃Ｃ）の応答時間が計測され、各ストレージ装置１２（＃Ｂ，＃Ｃ）を、応答時間の短い順に優先順位付けすることによりアクセス優先順位が決定され、優先順位付ルーティングテーブルが作成される（Ｓ３４）。更に、各ストレージ装置１２（＃Ｂ，＃Ｃ）に対して、ストレージクラスタに含まれるストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のリストが送信される(Ｓ３５)。
【０１０４】
送信されたリストに従って、構築マスタ以外のストレージ装置１２（＃Ｂ，＃Ｃ）からは、自己以外のストレージ装置１２に対して、テストメッセージが送信される。そして、このテストメッセージを受信した各ストレージ装置１２からは、このテストメッセージに対する応答が送信元のストレージ装置１２に返信される。そして、構築マスタ以外の各ストレージ装置１２（＃Ｂ，＃Ｃ）では、この返信された応答から、テストメッセージに対する各ストレージ装置１２の応答時間を計測され、各ストレージ装置１２が、応答時間の短い順に優先順位付けされることによりアクセス優先順位が決定され、優先順位付ルーティングテーブルが生成される（Ｓ３６）。しかる後に、構築マスタ以外のストレージ装置１２（＃Ｂ，＃Ｃ）から、構築マスタであるストレージ装置１２（＃Ａ）に対してアクセス優先順位の構築が完了したことを通知するために、優先順位付ルーティングテーブル作成完了応答が返信される（Ｓ３７）。
【０１０５】
そして、この完了応答が、構築マスタであるストレージ装置１２（＃Ａ）によって受信されると、構築マスタであるストレージ装置１２（＃Ａ）から管理コンソール２０に対して、アクセス優先順位の構築完了応答が返信され（Ｓ３８）、ストレージクラスタの構築処理が完了する（Ｓ３９）。
【０１０６】
本実施の形態に係るストレージクラスタシステムによれば、以上説明したようにして、優先順位付ルーティングテーブルを効率的に構築することができる。
【０１０７】
（第７の実施の形態）
本発明の第７の実施の形態を用いて説明する。
【０１０８】
本発明の第７の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムは、第６の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの変形例であり、管理コンソール２０が、動作中のストレージクラスタへの新たなストレージ装置１２の追加処理を行う。よって、ここでは、このような追加処理を行う管理コンソール２０について説明し、その他については重複説明を避ける。
【０１０９】
管理コンソール２０は、例えば図１３に示すように、動作中のストレージクラスタに、新たなストレージ装置１２（＃Ｄ）が追加される場合における追加処理を行う。図１３は、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ，＃Ｄ）に接続されたＬＡＮ２２に管理コンソール２０が接続された構成例を示しているが、管理コンソール２０は、例えば図１０に示すように、ストレージエリアネットワーク１１に接続されていても良い。
【０１１０】
管理コンソール２０は、動作中のストレージクラスタに、新たなストレージ装置１２（＃Ｄ）が追加される場合、既に動作中の各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のうち任意のストレージ装置（ここでは、仮にストレージ装置１２（＃Ａ）とする）に対して、新たなストレージ装置１２（＃Ｄ）の追加要求と、この新たなストレージ装置１２（＃Ｄ）の情報とを送信し、送信先のストレージ装置１２（＃Ａ）を、ストレージ装置１２（＃Ｄ）の追加処理に関してマスタの役割をする追加マスタとする。以下、ストレージ装置１２（＃Ａ）が追加マスタとされたものとして説明する。
【０１１１】
追加マスタとされたストレージ装置１２（＃Ａ）は、新たなストレージ装置１２（＃Ｄ）に対してテストメッセージを送信する。このようにテストメッセージが送信されると、ストレージ装置１２（＃Ｄ）は、追加マスタであるストレージ装置１２（＃Ａ）に対して応答する。
【０１１２】
追加マスタであるストレージ装置１２（＃Ａ）は、この応答を受信することにより確認すると、ストレージ装置１２（＃Ｄ）のアクセス優先順位を最下位の優先順位として優先順位付ルーティングテーブルに追加する。また、優先順位付ルーティングテーブルにアクセス優先順位が既に定義されているストレージ装置１２（＃Ｂ，＃Ｃ）に対して、新たなストレージ装置１２（＃Ｄ）がストレージクラスタに追加された旨のメッセージと、新たなストレージ装置１２（＃Ｄ）の情報とを送信する。
【０１１３】
追加マスタであるストレージ装置１２（＃Ａ）、及び新たなストレージ装置１２（＃Ｄ）以外のストレージ装置１２、すなわちストレージ装置１２（＃Ｂ）及びストレージ装置（＃Ｃ）は、自己の優先順位付ルーティングテーブルの優先順位最下位に新たなストレージ装置１２（＃Ｄ）を追加し、追加マスタへ追加完了応答を返信する。
【０１１４】
次に、追加マスタであるストレージ装置１２（＃Ａ）は、新たなストレージ装置１２（＃Ｄ）に対して、ストレージクラスタに含まれるストレージ装置のリストを送信する。これに対して、新たなストレージ装置１２（＃Ｄ）は、このリストに従って、自己以外のストレージ装置１２、すなわちストレージ装置１２（＃Ａ）、ストレージ装置（＃Ｂ）、及びストレージ装置（＃Ｃ）に対してテストメッセージを送信する。
【０１１５】
各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）は、このテストメッセージを受信し、このテストメッセージに対する応答を新たなストレージ装置１２（＃Ｄ）に返信する。
【０１１６】
新たなストレージ装置１２（＃Ｄ）は、返信された応答から、このテストメッセージに対する各ストレージ装置（＃Ａ，＃Ｂ，＃Ｃ）の応答時間を計測し、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）を応答時間の短い順に優先順位付けすることによってアクセス優先順位を決定し、優先順位付ルーティングテーブルを作成する。そして、追加マスタであるストレージ装置１２（＃Ａ）に対して、優先順位付ルーティングテーブル作成完了応答を返信する。
【０１１７】
追加マスタであるストレージ装置１２（＃Ａ）は、ストレージ装置１２（＃Ｂ，＃Ｃ）からの追加完了、及びストレージ装置１２（＃Ｄ）からの作成完了応答を受信し、管理コンソール２０に対して、新たなストレージ装置１２（＃Ｄ）の追加完了応答を返信することによって、新たなストレージ装置１２（＃Ｄ）の追加処理を完了する。
【０１１８】
次に、以上のようなストレージクラスタにおける新たなストレージ装置の追加処理の流れを図１４に示すフローチャートを用いて説明する。以下では、ストレージ装置１２（＃Ａ）が追加マスタであるとして説明する。
【０１１９】
動作中のストレージクラスタに、新たなストレージ装置１２（＃Ｄ）が追加される場合、管理コンソール２０によって、既に動作中の各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）のうち任意のストレージ装置（ここでは、ストレージ装置１２（＃Ａ）とする）に対して、新たなストレージ装置１２（＃Ｄ）の追加要求と、この新たなストレージ装置１２（＃Ｄ）の情報とが送信される（Ｓ４０）。送信された追加要求と情報とがストレージ装置１２（＃Ａ）に受信されることにより、ストレージ装置１２（＃Ａ）が、ストレージ装置１２（＃Ｄ）の追加処理に関してマスタの役割をする追加マスタとされる（Ｓ４１）。
【０１２０】
追加マスタとされたストレージ装置１２（＃Ａ）からは、新たなストレージ装置１２（＃Ｄ）に対して、テストメッセージが送信される（Ｓ４２）。
【０１２１】
このように送信されたテストメッセージが、ストレージ装置１２（＃Ｄ）によって受信されると、ストレージ装置１２（＃Ｄ）から、追加マスタであるストレージ装置１２（＃Ａ）に対して応答がなされる（Ｓ４３）。
【０１２２】
この応答が、追加マスタであるストレージ装置１２（＃Ａ）により受信され確認されると、ストレージ装置１２（＃Ａ）では、ストレージ装置１２（＃Ｄ）のアクセス優先順位を最下位の優先順位として優先順位付ルーティングテーブルに追加される（Ｓ４４）。更に、ストレージ装置１２（＃Ａ）から、優先順位付ルーティングテーブルにアクセス優先順位が既に定義されているストレージ装置１２（＃Ｂ，＃Ｃ）に対して、新たなストレージ装置１２（＃Ｄ）がストレージクラスタに追加された旨のメッセージと、新たなストレージ装置１２（＃Ｄ）の情報とが送信される（Ｓ４５）。
【０１２３】
ストレージ装置１２（＃Ａ）、ストレージ装置１２（＃Ｂ）及びストレージ装置（＃Ｃ）では、それぞれの優先順位付ルーティングテーブルの優先順位最下位に、新たなストレージ装置１２（＃Ｄ）が追加される（Ｓ４６）。しかる後、ストレージ装置１２（＃Ｂ）及びストレージ装置（＃Ｃ）から追加マスタであるストレージ装置１２（＃Ａ）へは、追加マスタへ追加完了応答が返信される（Ｓ４７）。
【０１２４】
次に、追加マスタであるストレージ装置１２（＃Ａ）から、新たなストレージ装置１２（＃Ｄ）に対して、ストレージクラスタに含まれるストレージ装置のリストが送信される（Ｓ４８）。
【０１２５】
これに対して、新たなストレージ装置１２（＃Ｄ）からは、このリストに従って、自己以外のストレージ装置１２、すなわちストレージ装置１２（＃Ａ）、ストレージ装置（＃Ｂ）、及びストレージ装置（＃Ｃ）に対してテストメッセージが送信される（Ｓ４９）。このテストメッセージが、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）により受信されると、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）からストレージ装置１２（＃Ｄ）に、このテストメッセージに対する応答が返信される。
【０１２６】
ストレージ装置１２（＃Ｄ）では、返信された応答から、このテストメッセージに対する各ストレージ装置（＃Ａ，＃Ｂ，＃Ｃ）の応答時間が計測され、各ストレージ装置１２（＃Ａ，＃Ｂ，＃Ｃ）を応答時間の短い順に優先順位付けすることによってアクセス優先順位が決定され、優先順位付ルーティングテーブルが作成される（Ｓ５０）。そして、追加マスタであるストレージ装置１２（＃Ａ）に対して、優先順位付ルーティングテーブル作成完了応答が返信される（Ｓ５１）。
【０１２７】
ストレージ装置１２（＃Ｄ）からの作成完了応答が、追加マスタであるストレージ装置１２（＃Ａ）によって受信されると、ストレージ装置１２（＃Ａ）から管理コンソール２０に対して、新たなストレージ装置１２（＃Ｄ）の追加完了応答が返信される（Ｓ５２）。これによって、新たなストレージ装置１２（＃Ｄ）の追加処理が完了する（Ｓ５３）。
【０１２８】
本実施の形態に係るストレージクラスタシステムによれば、以上説明したようにして、新たなストレージ装置１２（＃Ｄ）の追加処理を効率的に行うことができる。
【０１２９】
（実施例）
ここでは、第１乃至第７の実施の形態で説明したストレージクラスタシステムの更なる具体例について説明する。
【０１３０】
まず、図１５のような構成のストレージクラスタシステム１０を用いて、第１、第２、及び第５の実施の形態における更なる具体例を説明する。
【０１３１】
図１５のストレージクラスタシステム１０を構成する各ストレージ装置１２（＃０，＃１，＃２）は、図２のように、各物理記憶媒体１６（＃１，＃２，＃３）内にそれぞれ１ＧＢサイズの３つのエクステントＥＸＴ（＃０，＃１，＃２）を３つ持ち、各物理記憶媒体１６（＃０，＃１，＃２）当たり３ＧＢの総容量を持つ。図１５に示す構成例のストレージクラスタには、ストレージ装置１２が３つ存在するので、ストレージクラスタ全体の総容量は９ＧＢとなる。
【０１３２】
一方、各論理エクステントＬＤＩＳＫと物理エクステントＥＸＴとの対応関係は、図１６に示すテーブルで定義されている。図１６（ａ）のテーブルは、ストレージ装置１２（＃０）によって、図１６（ｂ）のテーブルは、ストレージ装置１２（＃１）によって、図１６（ｃ）のテーブルは、ストレージ装置１２（＃２）によって、それぞれ保持されている。
【０１３３】
また、図１７に示すように、ホスト装置１８の識別番号（Ｈｏｓｔ  ＩＤ）と、ホスト装置１８の特定値（図１５参照）と、論理エクステントＬＤＩＳＫ番号と、ＬＵＮ番号との関係を示すホスト装置−ＬＵＮマッピングテーブルを、各ストレージ装置１２（＃０，＃１，＃２）が共有している。
【０１３４】
また、ストレージ装置１２（＃０）は、第６の実施の形態で説明したように作成され、図１８（ａ）に示すような優先順位付ルーティングテーブルを保持している。同様に、ストレージ装置１２（＃１）は、図１８（ｂ）に示すような優先順位付ルーティングテーブルを、ストレージ装置１２（＃２）は、図１８（ｃ）に示すような優先順位付ルーティングテーブルをそれぞれ保持している。
【０１３５】
このとき、ホスト装置１８（＃０）からストレージ装置１２（＃０）に対してなされた処理要求が、次のようなリード要求コマンドＡであった場合のリード処理の流れについて以下に説明する。  
コマンドＡ：  
ＳＣＳＩ  Ｃｏｍｍａｎｄ  Ｃｏｄｅ＝２８ｈ（ＲＥＡＤ  ＥＸＴＥＮＤＥＤ）  
ＬＵＮ＝０２ｈ  
ＬＢＡ＝４００００１ｈ  （≧２ＧＢ，＜３ＧＢ）  
Ｔｒａｎｓｆｅｒ  Ｓｉｚｅ＝１００ｈ（１２８ＫＢ）
処理の流れ：  
１）ホスト装置１８（＃０）が、ストレージ装置１２（＃０）にコマンドＡを送信する。
【０１３６】
２）ストレージ装置１２（＃０）は、コマンドＡのリクエストから、Ｈｏｓｔ  ＩＤ＝０と特定し、ホスト装置１８（＃０）からアクセス可能な論理ボリュームへのアクセスかどうかを判定する。この場合、まず、コマンドＡのアクセス論理エクステントＬＤＩＳＫを特定する。この場合、図１７のマッピングテーブルが参照され、論理エクステントＬＤＩＳＫ２へのアクセスであり、アクセス可能であると判定される。
【０１３７】
３）次に、ストレージ装置１２（＃０）は、コマンドＡがどの論理エクステントＬＤＩＳＫへのアクセスであるかを判定する。コマンドＡのＬＢＡから、論理エクステントＬＤＩＳＫ上の何番目の論理エクステントかが判定されるが、この場合、２ＧＢ≦ＬＢＡ＜３ＧＢであるから、物理エクステントＥＸＴ（＃２）へのアクセスと判定する。したがって、２）での結果と合わせて、論理エクステントＬＤＩＳＫ（２，２）へのアクセスと判定される。
【０１３８】
４）ストレージ装置１２（＃０）は、論理エクステントＬＤＩＳＫ（２，２）に対応する物理エクステントが自装置内に存在するかどうかを判定する。この場合、図１６（ａ）に示すテーブルを参照し、自己の物理記憶媒体１６（＃０）内に論理エクステント（２，２）が存在しないと判定される。
【０１３９】
５）ストレージ装置１２（＃０）は、コマンドＡが自己の物理記憶媒体１６（＃０）へのアクセスではないため、図１８（ａ）の優先順位付ルーティングテーブルで定義された上流のストレージ装置を除く最高優先順位のストレージ装置、すなわち、ストレージ装置１２（＃１）へリクエストを転送する。このとき、第２の実施の形態におけるベンダユニークコマンドとして、下記コマンドＢに示すようなベンダユニークコマンドにて送信する。なお、図１９（ａ）は、送信元の装置別にリード及びライトのＳＣＳＩコマンドをまとめた表であり、図１９（ｂ）は、コマンドフォーマットの一例を示す表である。
【０１４０】
コマンドＢ（ストレージ装置１２（＃０）からストレージ装置１２（＃１）への転送）：  
ＳＣＳＩ  Ｃｏｍｍａｎｄ  Ｃｏｄｅ＝Ｃ８ｈ（ＲＥＡＤ  ＲＥＤＩＲＥＣＴ）  
ＬＵＮ＝０２ｈ  
ＬＢＡ＝４００００１ｈ  （≧２ＧＢ，＜３ＧＢ）  
Ｔｒａｎｓｆｅｒ  Ｓｉｚｅ＝１００ｈ（１２８ＫＢ）
Ｈｏｓｔ  ＩＤ＝００ｈ
Ｕｎｉｔ  ＩＤ  Ｂｉｔｍａｐ｜＝０×０１（Ｂｉｔ０を立てる）（→Ｈｏｓｔ  ＩＤ  Ｂｉｔｍａｐ＝０×０１）
６）ストレージ装置１２（＃１）は、コマンドＢを受信し、コマンドＢに含まれるＨｏｓｔ  ＩＤとＬＵＮとの組から、２）〜４）と同様にして、論理エクステントＬＤＩＳＫ(２，２)に対するアクセスと判定し、自己の物理記憶媒体１６（＃１）内に対応する物理エクステントＥＸＴが存在するかどうかを判定する。この場合、図１６（ｂ）に示すテーブルを参照し、自己の物理記憶媒体１６（＃１）内に論理エクステントＬＤＩＳＫ（２，２）が存在しないと判定される。
【０１４１】
７）ストレージ装置１２（＃１）は、コマンドＡは自己の物理記憶媒体１６（＃１）へのアクセスでないため、図１８（ｂ）に示す優先順位付ルーティングテーブルで、Ｈｏｓｔ  ＩＤ  Ｂｉｔｍａｐに存在している、上流側のストレージ装置を除いた、最高の優先順位のストレージ装置であるストレージ装置１２（＃２）へリクエストを転送する。このとき、第２の実施の形態におけるベンダユニークコマンドとして、下記コマンドＣに示すようなベンダユニークコマンドとして、下記コマンドＣに示すようなベンダユニークコマンドにて送信する。
【０１４２】
コマンドＣ（ストレージ装置１２（＃１）からストレージ装置１２（＃２）への転送）：  
ＳＣＳＩ  Ｃｏｍｍａｎｄ  Ｃｏｄｅ＝Ｄ８ｈ（ＲＥＡＤ  ＰＡＳＳＴＨＲＵ）（ベンダユニーク）  
ＬＵＮ＝０２ｈ  
ＬＢＡ＝４００００１ｈ  （≧２ＧＢ，＜３ＧＢ）  
Ｔｒａｎｓｆｅｒ  Ｓｉｚｅ＝１００ｈ（１２８ＫＢ）
Ｈｏｓｔ  ＩＤ＝００ｈ
Ｕｎｉｔ  ＩＤ  Ｂｉｔｍａｐ｜＝０×０２（Ｂｉｔ１を立てる）（→Ｈｏｓｔ  ＩＤ  Ｂｉｔｍａｐ＝０×０３）
８）ストレージ装置１２（＃２）は、コマンドＣを受信し、コマンドＣに含まれるＨｏｓｔ  ＩＤとＬＵＮとの組から、２）〜４）と同様にして、論理エクステントＬＤＩＳＫ(２，２)に対するアクセスと判定し、自己の物理記憶媒体１６（＃２）内に対応する物理エクステントＥＸＴが存在するかどうかを判定する。この場合、図１６（ｃ）に示すテーブルを参照し、自己の物理記憶媒体１６（＃２）内に論理エクステントＬＤＩＳＫ（２，２）が存在し、物理エクステントＥＸＴ（２，２）に対応すると判定される。
【０１４３】
９）ストレージ装置１２（＃２）は、コマンドＣのコマンドコードから、コマンドＣは中間のストレージ装置１２（＃１）から転送されたものであると判定する。すなわち、ホスト装置１８（＃０）からストレージ装置１２（＃０）に送られたコマンドが、一旦ストレージ装置１２（＃１）を経由して転送されたものであると判定する。
【０１４４】
１０）ストレージ装置１２（＃２）は、第２の実施の形態で説明したように、コマンドＣの送信元であるストレージ装置１２（＃１）に対して、以下のレスポンスＡに示すようなセンスデータが返信される。
【０１４５】
レスポンスＡ：  
ＳＣＳＩ  Ｓｔａｔｕｓ＝Ｃｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎ（０２ｈ）  
Ｓｅｎｓｅ  Ｋｅｙ＝Ｎｏｔ  Ｄｉｒｅｃｔ  Ｔｒａｎｓｆｅｒ（Ｃ０ｈ）（ベンダユニーク）  
Ｓｅｎｓｅ  Ｄａｔａ＝ストレージ装置１２（＃２）のＨｏｓｔ  ＩＤ（０２ｈ）
１１）レスポンスＡは、ストレージ装置１２（＃２）→ストレージ装置１２（＃１）→ストレージ装置１２（＃０）と、コマンドの逆順に転送され、ストレージ装置１２（＃１）及びストレージ装置１２（＃２）は、図２０（ａ）及び図２０（ｂ）に示すように、アクセスが該当する論理エクステントＬＤＩＳＫ（２，２）に対するエクステントルーティングテーブルを確保することで、次回、同じ論理エクステントＬＤＩＳＫ（２，２）へのアクセスを受信した場合には、ストレージ装置１２（＃２）へ直接送信するように学習する。
【０１４６】
１２）ホストであるストレージ装置１２（＃０）は、レスポンスＡを受信後、１１）で学習したエクステントルーティングテーブル（図２０（ａ））に基づき、ストレージ装置１２（＃２）へ、以下に示すコマンドＤを送信する。
【０１４７】
コマンドＤ：  
ＬＵＮ＝０２ｈ  
ＬＢＡ＝４００００１ｈ  （≧２ＧＢ，＜３ＧＢ）  
Ｔｒａｎｓｆｅｒ  Ｓｉｚｅ＝１００ｈ（１２８ＫＢ）  
Ｈｏｓｔ  ＩＤ＝００ｈ  
Ｕｎｉｔ  ＩＤ  Ｂｉｔｍａｐ｜０×０１（Ｂｉｔ０を立てる）（→Ｈｏｓｔ  ＩＤ  Ｂｉｔｍａｐ＝０×０１）
１３）ストレージ装置１２（＃２）は、コマンドＤを受信し、２）〜４）と同様にして、論理エクステントＬＤＩＳＫ（２，２）に対するアクセスと判定し、自己の物理記憶媒体１６（＃２）に対応する物理エクステントＥＸＴが存在するかどうかを判定する。この場合、図１６（ｃ）に示すテーブルを参照し、自己の物理記憶媒体１６（＃２）内に論理エクステントＬＤＩＳＫ（２，２）が存在し、物理エクステントＥＸＴ（２，２）に対応すると判定される。
【０１４８】
１４）ストレージ装置１２（＃２）は、コマンドＤのコマンドコードから、コマンドＤはホストストレージ装置、すなわちストレージ装置１２（＃０）から転送されたものであると判定する。
【０１４９】
１５）ストレージ装置１２（＃２）は、物理エクステントＥＸＴ（２，２）に対してリードアクセスを実行し、ストレージ装置１２（＃０）との間で一連のデータ転送を行う。
【０１５０】
１６）ストレージ装置１２（＃０）は、ストレージ装置１２（＃２）とのリード転送が完了次第、ホスト装置１８（＃０）に対してリード転送を実行し、処理を完了する。
【０１５１】
これによって、ストレージクラスタに参加するストレージ装置１２の数に比例してルーティング情報が増加することが回避され、テーブル検索時間の増加と、テーブル保持用記憶領域の増加とを抑制するとともに、エクステントマイグレーション時の構成変更も必要に応じて行うことができる。その結果、効率的なルーティングを実現することが可能となる。
【０１５２】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１５３】
【図１】第１の実施の形態に係るデータ処理方法を適用したストレージクラスタシステムの構成例を示すブロック図。
【図２】３つのエクステントに分割された物理記憶媒体の例を示す概念図。
【図３】第１の実施の形態に係るストレージクラスタシステムにおける処理要求コマンドのルーティングを示す簡略図。
【図４】第２の実施の形態に係るストレージクラスタシステムの動作例を示すフローチャート。
【図５】第２の実施の形態に係るストレージクラスタシステムの動作におけるｃａｓｅ１乃至ｃａｓｅ５の相違点をまとめた図。
【図６】第２の実施の形態に係るストレージクラスタシステムの動作におけるｃａｓｅ５の場合の処理の流れを示す図。
【図７】第３の実施の形態に係るストレージクラスタシステムの動作における処理の流れを示す図。
【図８】第４の実施の形態に係るストレージクラスタシステムの動作における処理の流れを示す図。
【図９】第５の実施の形態に係るストレージクラスタシステムの動作例を示すフローチャート。
【図１０】管理コンソールが設けられたストレージクラスタシステムの構成例を示すブロック図。
【図１１】管理コンソールが設けられたストレージクラスタシステムの他の構成例を示すブロック図。
【図１２】第６の実施の形態に係るストレージクラスタシステムにおける優先順位付ルーティングテーブル構築処理の流れを示すフローチャート。
【図１３】新たなストレージ装置が追加されたストレージクラスタシステムの構成零を示す図。
【図１４】第７の実施の形態に係るストレージクラスタシステムにおける新たなストレージ装置の追加処理の流れを示すフローチャート。
【図１５】実施例におけるストレージクラスタシステムの構成例を示す機能ブロック図。
【図１６】論理エクステントと物理エクステントとの対応関係を示すテーブルの一例。
【図１７】ホスト装置の識別番号と、ホスト装置の特定値と、論理エクステント番号と、ＬＵＮ番号との関係を示すホスト装置−ＬＵＮマッピングテーブルの一例。
【図１８】優先順位付ルーティングテーブルの一例。
【図１９】送信元の装置別にリード及びライトのＳＣＳＩコマンドをまとめた図と、コマンドフォーマットの一例を示す図。
【図２０】エクステントルーティングテーブルの一例を示す図。
【符号の説明】
【０１５４】
１０…ストレージクラスタシステム、１１…ストレージエリアネットワーク、１２…ストレージ装置、１４…コントローラ、１６…物理記憶媒体、１８…ホスト装置、２０…管理コンソール、２２…ＬＡＮ
【図１】
2007272357.tif 000003
【図２】
2007272357.tif 000004
【図３】
2007272357.tif 000005
【図４】
2007272357.tif 000006
【図５】
2007272357.tif 000007
【図６】
2007272357.tif 000008
【図７】
2007272357.tif 000009
【図８】
2007272357.tif 000010
【図９】
2007272357.tif 000011
【図１０】
2007272357.tif 000012
【図１１】
2007272357.tif 000013
【図１２】
2007272357.tif 000014
【図１３】
2007272357.tif 000015
【図１４】
2007272357.tif 000016
【図１５】
2007272357.tif 000017
【図１６】
2007272357.tif 000018
【図１７】
2007272357.tif 000019
【図１８】
2007272357.tif 000020
【図１９】
2007272357.tif 000021
【図２０】
2007272357.tif 000022