(57)【要約】【課題】通信遅延を低減する情報処理装置等を提供する。【解決手段】  情報処理装置１０１は、論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージ２０１が採用するポリシー情報５０１に基づき、入出力対象となる論理ブロックに関連付けされた特定のコントローラを求め、特定のコントローラに入出力対象に関するリクエスト５０３を送信する発行部を有する。【選択図】  図１
2015179448.tif 000002
【特許請求の範囲】
【請求項１】
論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージが採用する前記ポリシー情報に基づき、入出力対象となる論理ブロックに関連付けされた特定のコントローラを求め、前記特定のコントローラに前記入出力対象に関するリクエストを送信する発行手段
を備えることを特徴とする情報処理装置。
【請求項２】
論理ブロックとコントローラとが関連付けされたポリシー情報のうち、入出力対象を含むリクエストに含まれる論理ブロックを制御する特定のコントローラを決める場合に従う特定のポリシー情報を、前記リクエストを送信する情報処理装置に送信するコントローラ
を備えることを特徴とするストレージ。
【請求項３】
請求項１に記載の情報処理装置と、
請求項２に記載のストレージと
を備え、
前記コントローラは、自装置が採用する前記特定のポリシー情報を一意に識別可能なポリシー識別子を、前記情報処理装置に送信し、
前記発行手段は、前記コントローラが送信した前記ポリシー識別子が表す前記ポリシー情報に基づき、前記リクエストを送信する
ことを特徴とする情報処理システム。
【請求項４】
前記情報処理装置は、
前記コントローラが送信する前記ポリシー識別子を、記憶手段に格納するポリシー格納手段
をさらに備え、
前記発行手段は、前記記憶手段から、前記ポリシー識別子を読み取り、読み取ったポリシー識別子が表す前記ポリシー情報に従い、前記リクエストを送信する
ことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記コントローラは、自装置が制御する物理記憶装置が、前記リクエストに含まれる前記論理ブロックを含む場合に、前記リクエストに応じた処理を行い、前記物理記憶装置が、前記リクエストに含まれる前記論理ブロックを含まない場合に、自装置が従う前記特定のポリシー情報を表す前記ポリシー識別子を送信する
ことを特徴とする請求項３または請求項４に記載の情報処理システム。
【請求項６】
前記ポリシー情報と、前記ポリシー識別子とを関連付けて記憶可能なポリシー情報記憶手段
をさらに備え、
前記発行手段は、前記ポリシー情報記憶手段において、前記コントローラが送信する前記ポリシー識別子に関連付けされた前記ポリシー情報を読み取り、読み取った前記ポリシー情報に基づき、前記コントローラを決める
ことを特徴とする請求項３乃至請求項５のいずれかに記載の情報処理システム。
【請求項７】
情報処理装置を用いて、論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージが採用する前記ポリシー情報に基づき、入出力対象となる前記論理ブロックに関連付けされた特定のコントローラを求め、前記特定のコントローラに前記入出力対象に関するリクエストを送信することを特徴とする情報処理方法。
【請求項８】
情報処理装置を用いて、論理ブロックとコントローラとが関連付けされたポリシー情報のうち、入出力対象を含むリクエストに含まれる論理ブロックを制御する前記特定のコントローラを決める場合に従う特定のポリシー情報を、前記リクエストを送信する情報処理装置に送信するストレージ制御方法。
【請求項９】
論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージが採用する前記ポリシー情報に基づき、入出力対象となる前記論理ブロックに関連付けされた特定のコントローラを求め、前記特定のコントローラに前記入出力対象に関するリクエストを送信する発行機能
をコンピュータに実現させることを特徴とする情報処理プログラム。
【請求項１０】
論理ブロックとコントローラとが関連付けされたポリシー情報のうち、入出力対象を含むリクエストに含まれる論理ブロックを制御する特定のコントローラを決める場合に従う特定のポリシー情報を、前記リクエストを送信する情報処理装置に送信するコントローラ機能
をコンピュータに実現させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ストレージに入出力処理を実施する情報処理装置等に関する。
【背景技術】
【０００２】
近年、ストレージ業界において、ユーザがシステムに対して提示する要件やシステムにおける業務に関する負荷等、システムの状態に応じて処理する新たな技術が次々と出てきている。このような技術の１つに、ストレージに含まれる記憶装置（たとえば、ディスク）における情報（データ）を最適に配置（再配置）する技術（以降、「最適配置技術」と表す。）がある。
【０００３】
システムに含まれるストレージには、高速にアクセス可能な記憶装置及び低速にアクセス可能な記憶装置等、様々な種類の記憶装置がある。最適配置技術は、記憶装置の種類、業務の状況、または、記憶装置にアクセスする頻度の変化等に応じて、記憶領域等に関する割り当て状況を変更する技術である。たとえば、最適配置技術においては、論理的に構築された記憶装置（以降、「論理記憶装置」と表す。）を物理的な記憶装置（以降、「物理記憶装置」と表す。）に割り当てる状況を変更する。あるいは、最適配置技術においては、論理記憶装置内においてデータを記憶する記憶領域を割り当てる状況等を変更する。最適配置技術を用いて記憶領域を割り当てる状況を変更するのに応じて、システムに関する処理性能は変化する。
【０００４】
このようなシステムにおいて、サーバは、ストレージにおける論理記憶装置に関する情報のみを読み取ることができる。この場合、サーバは、ストレージが制御する物理記憶装置に関する情報を読み取ることができない。
【０００５】
これは、システムにおいて、入出力処理は、サーバとストレージとに階層化されているためである。すなわち、ストレージが、論理記憶装置から物理記憶装置への割り当てを制御する一方で、サーバは、入出力（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理を制御しない。入出力処理が、サーバとストレージとに階層化されている場合、サーバは、ストレージに含まれる物理記憶装置が故障する場合であっても、該物理記憶装置に係る入出力処理を制御しない。この結果、サーバにおける負荷は軽減する。
【０００６】
また、ストレージに関する入出力処理方法として、ＡＬＵＡ（Ａｓｙｍｍｅｔｒｉｃ＿Ｌｏｇｉｃａｌ＿Ｕｎｉｔ＿Ａｃｃｅｓｓ）技術がある。ＡＬＵＡは、記憶装置を制御するコントローラ（たとえば、ディスクコントローラ）に論理記憶装置を作成する場合に、各論理記憶装置を優先的に制御するコントローラ（以降、「優先コントローラ」と表す。）を決める技術である。この技術を用いるシステムにおいて、サーバは、優先コントローラに、入出力処理に関するリクエストを送信する。
【０００７】
ストレージが複数のコントローラを有する場合に、複数のコントローラが１つの論理記憶装置を制御する態様であってもよい。この場合、論理記憶装置を制御するコントローラは、必ずしも、該論理記憶装置に割り当てられた全ての物理記憶装置を制御するとは限らない。
【０００８】
上述したように、論理記憶装置を制御するコントローラ（説明の便宜上、「第１コントローラ」と表す。）と、該論理記憶装置に割り当てられた物理記憶装置を制御するコントローラ（説明の便宜上、「第２コントローラ」と表す。）とが異なる場合には、第１コントローラと第２コントローラとの間において通信する必要がある。この結果、第１コントローラと第２コントローラとが同一の場合に比べ、通信が必要なため、ストレージに関する処理性能は低下する。
【０００９】
特許文献１乃至特許文献３は、ストレージに関連する一般的な技術を開示する。
【００１０】
特許文献１に開示された装置は、クラスタ構成を有するストレージにおいて、データを格納する場合に、通信ネットワークを介して値を格納する。該装置は、キャッシュメモリに、該データの複製を作成しないため、キャッシュメモリに係る利用効率が低下するのを軽減する。
【００１１】
特許文献２に開示されたデータ転送装置は、ストレージに格納するデータを含むリクエストを受信する第１ノードと、第１ノードとは異なる第２ノードとを有する。第１ノードは、リクエストを受信し、該リクエストに含まれるデータを第２ノードに送信する。第２ノードは、該データを受信し、その後、確認メッセージを、該リクエストを送信したノードに送信する。
【００１２】
特許文献３に開示されるストレージシステムは、Ｍ／Ｍ／１待ち行列理論に従い、リクエストを投入してから該リクエストの処理が開始されるまでの期間が最短になるように、論理記憶装置を再配置する
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００３−１３１８１８号公報
【特許文献２】特開２０００−２５９５０２号公報
【特許文献３】特開２００３−５９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ストレージが複数のコントローラを有する場合には、上述したように、１つの論理記憶装置に対して、該論理記憶装置を優先的に制御する優先コントローラを設定する。論理記憶装置を割り当てられたコントローラは、それぞれ、自装置の配下にある物理記憶装置を制御する。
【００１５】
この場合、サーバ（情報処理装置、入出力処理装置）は、優先コントローラに入出力処理を依頼するリクエストを送信する。優先コントローラが、論理記憶装置に割り当てられた物理記憶装置を制御しない場合であっても、サーバは、該優先コントローラにリクエストを送信する。
【００１６】
この場合、優先コントローラは、該物理記憶装置を制御するコントローラと通信することにより、リクエストに応じた入出処理を行う。したがって、この場合には、コントローラ間における通信が発生するため、通信遅延が生じる。
【００１７】
そこで、本発明の主たる目的は、通信遅延を低減する情報処理装置等を提供することである。
【課題を解決するための手段】
【００１８】
前述の目的を達成するために、本発明の一態様において、情報処理装置は、以下の構成を備える。
【００１９】
すなわち、情報処理装置は、
論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージが採用する前記ポリシー情報に基づき、入出力対象となる論理ブロックに関連付けされた特定のコントローラを求め、前記特定のコントローラに前記入出力対象に関するリクエストを送信する発行手段
を備える。
【００２０】
また、本発明の他の見地として、情報処理方法は、
情報処理装置を用いて、論理ブロックとコントローラとが関連付けされたポリシー情報のうち、ストレージが採用する前記ポリシー情報に基づき、入出力対象となる前記論理ブロックに関連付けされた特定のコントローラを求め、前記特定のコントローラに前記入出力対象に関するリクエストを送信する。
【００２１】
さらに、同目的は、係る情報処理プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２２】
本発明に係る情報処理装置等によれば、通信遅延を低減することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態に係る情報処理装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係る情報処理装置における処理の流れを示すフローチャートである。
【図３】論理記憶装置情報を概念的に表す図である。
【図４】ストレージが行う処理を表すフローチャートである。
【図５】論理アドレスに基づきコントローラを割り当てる場合に参照されるポリシー情報の一例を概念的に表す図である。
【図６】論理アドレスに基づきコントローラを割り当てる場合に参照されるポリシー情報の一例を概念的に表す図である。
【図７】相互に類似するポリシー情報の一例を概念的に表す図である。
【図８】相互に類似するポリシー情報の一例を概念的に表す図である。
【図９】本発明の第２の実施形態に係るストレージが有する構成を示すブロック図である。
【図１０】第２の実施形態に係るストレージにおける処理の流れを示すフローチャートである。
【図１１】第２の実施形態に係るストレージ及び情報処理装置における処理の流れを示すシーケンス図である。
【図１２】応答情報の一例を概念的に表す図である。
【図１３】本発明の第３の実施形態に係る情報処理システムが有する構成を示すブロック図である。
【図１４】本発明の情報処理装置及びストレージ等を実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。
【発明を実施するための形態】
【００２４】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２５】
＜第１の実施形態＞
本発明の第１の実施形態に係る情報処理装置１０１が有する構成と、情報処理装置１０１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係る情報処理装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係る情報処理装置１０１における処理の流れを示すフローチャートである。
【００２６】
第１の実施形態に係る情報処理装置１０１は、発行部１０２を有する。
【００２７】
以降、説明の便宜上、ストレージ２０１は、ポリシー情報５０１に従い、リクエストに応じた入出力処理を行うものとする。また、本実施形態においては、論理記憶装置のアドレスを、ＬＢＡ（Ｌｏｇｉｃａｌ＿Ｂｌｏｏｃｋ＿Ａｄｄｒｅｓｓｉｎｇ）を用いて表すものとする。しかし、表現方法は、ＬＢＡに限定されない。以降の各実施形態においても同様である。
【００２８】
まず、ポリシー情報５０１について説明する。
【００２９】
ポリシー情報５０１は、たとえば、図５及び図６に示すように、論理記憶装置における記憶領域（以降、「論理ブロック」と表す。）を指し示す論理アドレスに応じて、該論理ブロックを制御するコントローラを割り当てる場合に参照される情報である。図５及び図６は、論理アドレスに基づきコントローラを割り当てる場合に参照されるポリシー情報５０１の一例を概念的に表す図である。
【００３０】
たとえば、ポリシー情報５０１は、論理ブロックの先頭を表す論理アドレス（以降、「先頭アドレス」と表す。）に基づき、どのコントローラが、該先頭アドレスを含む論理ブロックを制御するのかを表す情報である。尚、ポリシー情報５０１は、コントローラが制御する物理記憶装置における記憶領域を特定する情報を、必ずしも、含まなくてもよい。
【００３１】
ポリシー情報５０１は、たとえば、ポリシー情報１乃至ポリシー情報３に示すように、論理ブロックの先頭アドレスを１メビバイト（ｍｅｂｉｂｙｔｅ、ＭｉＢ）で割った商に応じて、該論理ブロックを制御するコントローラを決める情報である。すなわち、
・（ポリシー情報１、図５）：商が偶数の場合には、コントローラとして、コントローラ０を割り当てる（図５における無地の領域）。一方、商が奇数の場合には、コントローラとして、コントローラ１を割り当てる（図５における斜線が付された領域）。すなわち、ポリシー情報１に従えば、コントローラに、論理記憶装置を１ＭｉＢ単位にて均等に割り当てることになる、
・（ポリシー情報２、図６）：商を５で割った余りが０または２の場合には、コントローラとして、コントローラ０を割り当てる（図６における無地の領域）。商を５で割った余りが１、３または４の場合には、コントローラとして、コントローラ１を割り当てる（図６における斜線が付された領域）。すなわち、ポリシー情報２に従えば、コントローラに、論理記憶装置を１ＭｉＢ単位にて不均等に割り当てることになる、
・（ポリシー情報３）：商を４で割った余りが０の場合には、コントローラとして、コントローラ０を割り当てる。商を４で割った余りが１の場合には、コントローラとして、コントローラ１を割り当てる。商を４で割った余りが２の場合には、コントローラとして、コントローラ２を割り当てる。さらに、商を４で割った余りが３の場合には、コントローラとして、コントローラ３を割り当てる。すなわち、ポリシー情報３に従えば、コントローラに、論理記憶装置を１ＭｉＢ単位にて均等に割り当てることになる。
【００３２】
ストレージ２０１（または、情報処理装置１０１）は、ポリシー情報５０１に従い、各論理ブロックを制御するコントローラを決めることができる。
【００３３】
たとえば、ポリシー情報１に従い、論理ブロックを制御するコントローラを決める一例について、図５を参照しながら詳細に説明する。
【００３４】
図５に示す例において、論理ブロックは、１ＭｉＢの大きさである。たとえば、論理ブロック０ｘ００００００乃至０ｘ１０００００（ただし、ｘは、１６進数であることを表す。）の先頭アドレス０ｘ００００００を、１ＭｉＢにて割り算することにより算出される商が０（すなわち、偶数）であるため、論理ブロック０ｘ００００００乃至０ｘ１０００００には、コントローラ０が割り当てられる。
【００３５】
同様に、論理ブロック０ｘ３０００００乃至０ｘ４０００００の先頭を表す論理アドレス０ｘ３０００００を、１ＭｉＢにて割り算することにより算出される商が３（すなわち、奇数）であるため、論理ブロック０ｘ００００００乃至０ｘ１０００００には、コントローラ１が割り当てられる。
【００３６】
また、ポリシー情報２に従い、コントローラを決める一例について、図６を参照しながら詳細に説明する。
【００３７】
図６に示す例において、論理ブロックは、１ＭｉＢの大きさである。たとえば、論理ブロック０ｘ００００００乃至０ｘ１０００００の先頭アドレス０ｘ００００００を、１ＭｉＢにて割り算することにより算出される商が０（すなわち、商を５で割った余りが０）であるため、論理ブロック０ｘ００００００乃至０ｘ１０００００には、コントローラ０が割り当てられる。
【００３８】
同様に、論理ブロック０ｘ３０００００乃至０ｘ４０００００の先頭アドレス０ｘ３０００００を、１ＭｉＢにて割り算することにより算出される商が３（すなわち、商を５で割った余りが３）であるため、論理ブロック０ｘ００００００乃至０ｘ１０００００には、コントローラ１が割り当てられる。
【００３９】
ポリシー情報５０１としては、ＳＣＳＩ（Ｓｍａｌｌ＿Ｃｏｍｐｕｔｅｒ＿Ｓｙｓｔｅｍ＿Ｉｎｔｅｒｆａｃｅ）の場合に、２５６種類まで定義することができる。ポリシー情報５０１が複数ある場合、ストレージ２０１は、あるポリシー情報５０１を選ぶことにより、論理ブロックを制御するコントローラを決める。
【００４０】
また、図７及び図８に例示するように、ストレージ２０１内において最適配置（再配置）する処理を軽減するために、相互に類似するポリシー情報５０１を定義しておくのが望ましい。図７及び図８は、相互に類似するポリシー情報の一例を概念的に表す図である。
【００４１】
相互に類似するポリシー情報は、たとえば、ポリシー情報４（図７）及びポリシー情報５（図８）に示す情報である。たとえば、論理ブロックの先頭アドレスを１ＭｉＢで割った商を６４で割った余りに応じて、コントローラを決めるポリシー情報５０１の場合には、
・（ポリシー情報４、図７）：余りが０乃至７、１６乃至２３、３２乃至３９、または、４８乃至５５の場合には、コントローラ０を割り当てる（図７における無地の領域）。余りが８乃至１５、２４乃至３１、４０乃至４７、または、５６乃至６３の場合には、コントローラ１を割り当てる（図７における斜線が付された領域）、
・（ポリシー情報５、図８）：余りが０乃至７、１６乃至２３、３２乃至３９、または、４８乃至５６の場合には、コントローラ０を割り当てる（図８における無地の領域）。余りが８乃至１５、２４乃至３１、４０乃至４７、または、５７乃至６３の場合には、コントローラ１を割り当てる（図８における斜線が付された領域）。
【００４２】
ポリシー情報４と、ポリシー情報５との違いは、余りが５６である場合の論理ブロックを制御するコントローラが異なる点である（図８における「差分」にて示された領域）。すなわち、ポリシー情報４からポリシー情報５に変更する場合には、６４個の論理ブロックのうち、余りが５６である場合の論理ブロック（すなわち、図８における「差分」にて示された領域）を制御するコントローラを、コントローラ０からコントローラ１に変更する。すなわち、ポリシー情報４からポリシー情報５に変更する場合には、６４分の１個分の論理ブロックを変更する。
【００４３】
上述したポリシー情報１乃至ポリシー情報５は、論理ブロックの先頭アドレスに基づきコントローラを決めるハッシュ関数を用いる場合の一例である。たとえば、論理ブロックの先頭アドレスに基づきコントローラを決める手法として、コンシステントハッシュ技法を用いてもよい。
【００４４】
尚、ポリシー情報５０１は、たとえば、セクターに基づきコントローラを決める方法であってもよい。ポリシー情報５０１は、セクターサイズが４０９６である場合に、１つのセクター（以降、「論理セクター」と表す。）の先頭を指し示す論理アドレスを、２５０で割った商に応じてコントローラを決める方法であってもよい。すなわち、
・（ポリシー情報６）：商が偶数の場合には、論理セクターを制御するコントローラとして、コントローラ０を割り当てる。商が奇数の場合には、論理セクターを制御するコントローラとして、コントローラ１を割り当てる。
【００４５】
尚、ポリシー情報５０１を実現する表現方法には、たとえば、スクリプト言語を用いることにより、条件式を記述する方法や、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ＿Ｍａｒｋｕｐ＿Ｌａｎｇｕａｇｅ）を用いることにより、条件式を記述する方法等がある。また、条件式において参照されるパラメータは、たとえば、論理ブロックの先頭アドレスと、該論理ブロックのサイズ等である。これらのパラメータは、たとえば、ＳＣＳＩに関するＲＥＡＤ＿ＢＵＦＦＥＲコマンド、または、ＷＲＩＴＥ＿ＢＵＦＦＥＲコマンドを実行する場合に参照されるパラメータである。上述したスクリプト言語や、ＸＭＬは、一般的な技術であるため、本実施形態においては詳細な説明を省略する。
【００４６】
以降、説明の便宜上、情報処理装置１０１、及び、ストレージ２０１は、ポリシー情報５０１を一意に識別可能なポリシー識別子を用いて、ポリシー情報５０１を識別するとする。ポリシー識別子は、数字であっても、記号であってもよい。また、情報処理装置１０１と、ストレージ２０１とは、ポリシー識別子を共有しているとする。すなわち、あるポリシー識別子が表すポリシー情報は、情報処理装置１０１と、ストレージ２０１とにおいて同じポリシー情報であるとする。また、情報処理装置１０１が１つの論理ブロックを処理する場合に読み取るポリシー情報５０１は、ストレージ２０１が該論理ブロックに適用した最新のポリシー情報であるとする。
【００４７】
たとえば、ストレージ２０１は、論理ブロックを処理するのに応じて、該論理ブロックに適用するポリシー情報５０１を更新する。あるいは、情報処理装置１０１は、処理する対象である論理ブロックに関して、ストレージ２０１からポリシー情報５０１を受信してもよい。また、情報処理装置１０１と、ストレージ２０１とが、ポリシー識別子を共有している場合に、ポリシー情報５０１が、ポリシー識別子を用いて表現されていてもよい。
【００４８】
次に、本実施形態に係る情報処理装置１０１における処理について説明する。
【００４９】
まず、発行部１０２は、処理を行う対象である論理記憶装置が、ポリシー情報５０１を適用する対象であるか否かを判定する（ステップＳ１０１）。たとえば、発行部１０２は、図３に例示する論理記憶装置情報５０２を参照することにより、該論理記憶装置が、ポリシー情報５０１を適用する対象であるか否かを判定する。図３は、論理記憶装置情報５０２を概念的に表す図である。
【００５０】
図３を参照すると、論理記憶装置情報５０２においては、たとえば、論理記憶装置１と、適用状態１とが関連付けされている。これは、論理記憶装置１に関連付けされた適用状態が１であるため、論理記憶装置１がポリシー情報を適用する対象であることを表す。また、論理記憶装置情報５０２においては、たとえば、論理記憶装置２と、適用状態０とが関連付けされている。これは、論理記憶装置２に関連付けされた適用状態が０であるため、論理記憶装置２が、ポリシー情報５０１を適用する対象でないことを表す。
【００５１】
情報処理装置１０１は、あらかじめ、ストレージ２０１に関する情報に基づき、論理記憶装置情報５０２を作成する。尚、情報処理装置１０１は、ストレージ２０１がポリシー情報を論理記憶装置に適用するか否かに基づき、論理記憶装置情報５０２を更新してもよい。また、論理記憶装置情報５０２は、さらに、論理記憶装置と、該論理記憶装置に適用するポリシー識別子とが関連付けされた情報を含んでいてもよい。たとえば、情報処理装置１０１は、ストレージ２０１から、論理記憶装置と、該論理記憶装置に関する適用状態とに関する情報を受信することにより、論理記憶装置情報５０２を作成する。
【００５２】
たとえば、発行部１０２は、論理記憶装置１を対象とする処理を実施する場合に、論理記憶装置情報５０２において、論理記憶装置１に関連付けされた適用状態を読み取る。次に、発行部１０２は、論理記憶装置１がポリシー情報５０１を適用する対象であることを表すか否かを、読み取った適用状態に基づき判定する（ステップＳ１０１）。図３に示す例において、論理記憶装置１に関連付けされた適用状態が１であるため、発行部１０２は、論理記憶装置１がポリシー情報５０１を適用する対象であると判定する。
【００５３】
発行部１０２は、論理記憶装置がポリシー情報５０１を適用する対象でないと判定する場合（ステップＳ１０１にてＮＯと判定）に、ストレージ２０１における優先コントローラに対してリクエスト５０３を送信する（ステップＳ１０４）。
【００５４】
一方、発行部１０２は、論理記憶装置がポリシー情報５０１を適用する対象であると判定する場合（ステップＳ１０１にてＹＥＳと判定）に、ポリシー情報５０１に従い、論理記憶装置における論理ブロックの先頭アドレスに基づき、該論理ブロックを制御する特定のコントローラを決定（推定）する（ステップＳ１０２）。
【００５５】
次に、発行部１０２は、決定した特定のコントローラ（たとえば、コントローラ２０２であるとする。）に対して、該論理ブロックに関する処理を表すリクエスト５０３を送信する（ステップＳ１０３）。
【００５６】
尚、ストレージ２０１は、情報処理装置１０１からリクエスト５０３を受信するよりも前に、論理記憶装置を作成しているものとする。ここでは、ストレージ２０１が論理記憶装置を作成する方法について、図４を参照しながら説明する。図４は、ストレージ２０１が行う処理を表すフローチャートである。
【００５７】
ストレージ２０１は、１つ以上の物理記憶装置をまとめることにより、論理記憶装置となるプール（ストレージプール）を作成する（ステップＳ２０１）。すなわち、ストレージ２０１は、１つ以上の物理記憶装置に、論理記憶装置を配置（または、再配置）する。
【００５８】
次に、論理記憶装置が、１つ以上の物理記憶装置から構成される場合に、ストレージ２０１におけるコントローラは、複数種類のポリシー情報から、特定のポリシー情報（すなわち、ポリシー情報５０１）を選ぶ（ステップＳ２０２）。次に、ストレージ２０１は、選んだポリシー情報５０１に従い、論理記憶装置に含まれる論理ブロックを処理する特定のコントローラを決める（求める）。たとえば、ストレージ２０１は、上述したポリシー情報１乃至ポリシー情報６のいずれかに従い、該論理ブロックを処理する特定のコントローラを決める。すなわち、ストレージ２０１において、各論理ブロックを処理する態様が決定される。
【００５９】
１つ以上の物理記憶装置を用いて論理記憶装置を作成する方法、すなわち、プールを作成する方法は、既に様々な方法が知られているため、ここでは、詳細な説明を省略する。
【００６０】
次に、コントローラ２０２がリクエスト５０３を受信する場合の処理について説明する。
【００６１】
まず、コントローラ２０２は、情報処理装置１０１が送信したリクエスト５０３を受信する。次に、コントローラ２０２は、受信したリクエスト５０３に応じて入出力処理を実行する（ステップＳ２０３）。
【００６２】
ストレージ２０１は、自装置において、入出力処理に関する論理ブロックを処理する場合に適用するポリシー情報を、ポリシー情報５０１として出力してもよい。あるいは、ストレージ２０１は、リクエスト５０３に応じたリプライとして、ポリシー情報５０１を情報処理装置１０１に送信してもよい。
【００６３】
次に、第１の実施形態に係る情報処理装置１０１に関する作用効果について説明する。
【００６４】
本実施形態に係る情報処理装置１０１によれば、ストレージ２０１における通信遅延を低減することができる。
【００６５】
この理由は、リクエスト５０３に基づいて処理する対象となる論理ブロックを格納する物理記憶装置を制御する特定のコントローラと、情報処理装置１０１がリクエスト５０３を送信するコントローラ２０２とが一致する可能性が高いためである。これは、発行部１０２が、ストレージ２０１が従う最新のポリシー情報に基づき、リクエスト５０３を送信するコントローラを決めることに起因する。
【００６６】
上述したように、コントローラ２０２と、ストレージ２０１においてリクエスト５０３に関する論理ブロックを処理する特定のコントローラ（たとえば、コントローラ２０３であるとする。）とが異なる場合、コントローラ２０２と、コントローラ２０３との間において、通信が発生する。一方で、該２つのコントローラが同じである場合、該２つのコントローラ間において、通信は発生しない。発行部１０２は、ストレージ２０１が従う最新のポリシー情報に基づき、リクエスト５０３をコントローラ２０２に送信するため、コントローラ２０２と、ストレージ２０１においてリクエスト５０３に関する論理ブロックを処理する特定のコントローラとは一致する可能性が高い。この場合、２つのコントローラの間において、通信は発生しない。
【００６７】
一方、特許文献３に開示された装置は、ストレージにおけるポリシー情報を参照することなく、リクエストを送信する。すなわち、コントローラ２０２とコントローラ２０３とが一致する可能性は低い。したがって、該装置においては、本実施形態に係る情報処理装置１０１に比べ、コントローラ２０２とコントローラ２０３との間に通信が発生する確率が高い。この結果、該装置によれば、ストレージにおける処理を効率よく行うことができない。
【００６８】
尚、発行部１０２は、先頭アドレスに基づきコントローラを算出したが、必ずしも、先頭アドレスでなくともよく、たとえば、論理ブロックの末尾を表す論理アドレス等であってもよい。
【００６９】
また、情報処理装置１０１と、ストレージ２０１とが、ポリシー識別子及びポリシー情報を共有する場合に、情報処理装置１０１は、ポリシー識別子とポリシー情報とを関連づけて記憶可能なポリシー記憶部（不図示）を有してもよい。ストレージ２０１がポリシー識別子を用いて、ポリシー情報を送信する場合に、情報処理装置１０１は、ポリシー記憶部において、該ポリシー識別子に関連付けされたポリシー情報を読み取ってもよい。
【００７０】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００７１】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００７２】
図９乃至図１１を参照しながら、第２の実施形態に係るストレージ１６０が有する構成と、ストレージ１６０が行う処理とについて説明する。図９は、本発明の第２の実施形態に係るストレージ１６０が有する構成を示すブロック図である。図１０は、第２の実施形態に係るストレージ１６０における処理の流れを示すフローチャートである。図１１は、第２の実施形態に係るストレージ１６０及び情報処理装置１５１における処理の流れを示すシーケンス図である。
【００７３】
第２の実施形態に係るストレージ１６０は、コントローラ１６１と、コントローラ１６２と、物理記憶装置１７１乃至物理記憶装置１７６とを有する。
【００７４】
コントローラ１６１は、物理記憶装置１７１と、物理記憶装置１７２と、物理記憶装置１７３とを制御する。また、コントローラ１６２は、物理記憶装置１７４と、物理記憶装置１７５と、物理記憶装置１７６とを制御する。
【００７５】
また、コントローラ１６１は、ファイバチャネルスイッチ（Ｆｉｂｒｅ＿Ｃｈａｎｎｅｌスイッチ、ＦＣスイッチ）１５２を介して、情報処理装置１５１と情報を送受信することができる。同様に、コントローラ１６２は、ＦＣスイッチ１５３を介して、情報処理装置１５１と情報を送受信することができる。
【００７６】
説明の便宜上、コントローラ１６１及びコントローラ１６２が制御する物理記憶装置は３つであるとするが、必ずしも、３つである必要はない。コントローラ１６１及びコントローラ１６２は、より多くの物理記憶装置を制御してもよいし、より少ない物理記憶装置を制御してもよい。また、コントローラ１６１とコントローラ１６２とが、相互に異なる個数の物理記憶装置を制御してもよい。
【００７７】
図１１を参照すると、コントローラ１６１及びコントローラ１６２は、論理記憶装置を作成し（ステップＳ２０１）、該論理記憶装置を制御する基準となるポリシー情報５０１を選択する（ステップＳ２０２）。その後、コントローラ１６１及びコントローラ１６２は、リクエスト５０３を受信する（ステップＳ１５１）。
【００７８】
ここで、説明の便宜上、コントローラ１６１は、ＦＣスイッチ１５２を介して情報処理装置１５１からリクエスト５０３を受信するとする。
【００７９】
コントローラ１６１は、受信したリクエスト５０３において処理する対象となる論理ブロックに関して、自コントローラが制御する物理記憶装置（すなわち、物理記憶装置１７１乃至物理記憶装置１７３）に割り当てられているか否かを、ポリシー情報５０１等に基づき判定する（ステップＳ１５２）。たとえば、コントローラ１６１は、リクエスト５０３の一例である「ＲＥＡＤ」コマンドまたは「ＷＲＩＴＥ」コマンドに基づいて処理する論理ブロックの先頭アドレスに基づき、ポリシー情報５０１に従い、該論理ブロックを制御する特定のコントローラを求める。
【００８０】
次に、コントローラ１６１は、求めた特定のコントローラが自コントローラであるか否かを判定する。求めた特定のコントローラが自コントローラである場合、コントローラ１６１は、処理対象である論理ブロックに割り当てられた物理記憶装置を制御する。すなわち、処理対象である論理ブロックに関する制御は、コントローラ１６１に割り当てられている。
【００８１】
次に、コントローラ１６１は、処理対象である論理ブロックを制御する場合（ステップＳ１５２にてＹＥＳと判定）に、該リクエスト５０３に応じた処理を行う（ステップＳ１５３）。
【００８２】
その後、コントローラ１６１は、さらに、ストレージ１６０において特定のコントローラを決める特定のポリシー情報を、情報処理装置１５１に送信してもよい。
【００８３】
一方、コントローラ１６１は、処理対象である論理ブロックを制御しない場合（ステップＳ１５２にてＮＯと判定）に、ストレージ１６０が処理対象である論理ブロックに適用する特定のポリシー情報を表すポリシー識別子を、情報処理装置１５１に送信する（ステップＳ１５４）。この場合、コントローラ１６１は、ポリシー情報５０１を、ストレージ１６０が処理対象である論理ブロックに適用する最新のポリシー情報に更新してもよい。また、コントローラ１６１が該ポリシー識別子を送信し、情報処理装置１５１が該ポリシー識別子を受信してもよい（ステップＳ１７１）。この場合、情報処理装置１５１は、ポリシー情報５０１を、受信したポリシー識別子に更新する。
【００８４】
ポリシー情報５０１が最新のポリシー情報に更新された後、情報処理装置１５１は、ポリシー情報５０１における該最新のポリシー情報に基づき、コントローラ１６１を決める。
【００８５】
また、本実施形態に係るシステム（すなわち、ストレージ１６０及び情報処理装置１５１を含む）においては、ステップＳ１５２にてＮＯと判定される期間に、ステップＳ１０１、ステップＳ１０２、ステップＳ１０３、ステップＳ１５１、ステップＳ１５２、及び、ステップＳ１５４に示す処理を繰り返し実行してもよい。
【００８６】
さらに、本実施形態に係るシステムにおいては、再配置が実行されるのに応じて、ステップＳ１０１、ステップＳ１０２、ステップＳ１０３、ステップＳ１５１、ステップＳ１５２、ステップＳ１５３、及び、ステップＳ１５４示す処理を実行してもよい。
【００８７】
たとえば、コントローラ１６１は、リクエスト５０３に対して、ＳＣＳＩに関する応答である「Ｓｔａｔｕｓ＿ｃｏｄｅ」を「ＧＯＯＤ」（すなわち、００ｈ。ｈは１６進数であることを表す。）に設定することにより応答情報を作成し、作成した応答情報を情報処理装置１５１に送信してもよい。
【００８８】
コントローラ１６１は、上述した応答情報に、さらに、「Ｓｅｎｓｅ＿ｄａｔａ」を付してもよい。たとえば、コントローラ１６１は、「Ｓｅｎｓｅ＿ｄａｔａ」において、「Ｒｅｓｐｏｎｓｅ＿ｃｏｄｅ」を７０ｈに設定する。さらに、コントローラ１６１は、応答情報に、図１２に示すように、「Ａｄｄｉｔｉｏｎａｌ＿ｓｅｎｓｅ＿ｃｏｄｅ」、または、「Ａｄｄｉｔｉｏｎａｌ＿ｓｅｎｓｅ＿ｃｏｄｅ＿ｑｕａｌｉｆｉｅｒ」を表す領域に、最新のポリシー情報を表すポリシー識別子を設定してもよい。図１２は、応答情報の一例を概念的に表す図である。
【００８９】
図１２に示すように、応答情報である「Ｓｅｎｓｅ＿ｄａｔａ」は、「Ｓｔａｔｕｓ＿ｃｏｄｅ」と、「Ｒｅｓｐｏｎｓｅ＿ｃｏｄｅ」と、「Ｓｅｎｓｅ＿ｋｅｙと、Ａｄｄｉｔｉｏｎａｌ＿ｓｅｎｓｅ＿ｃｏｄｅ」と、「Ａｄｄｉｔｉｏｎａｌ＿ｓｅｎｓｅ＿ｃｏｄｅ＿ｑｕａｌｉｆｉｅｒ」とを含む。
【００９０】
上述したように、コントローラ１６１は、ポリシー識別子を含む応答情報を作成することにより、改めて、情報処理装置１５１に応答する必要がなくなる。このため、コントローラ１６１は、さらに効率よくリクエスト５０３に応答することができる。
【００９１】
ストレージ１６０は、ステップＳ１５２にてＮＯと判定する場合であっても、リクエスト５０３としては正常に処理する必要がある。そこで、ストレージ１６０は、応答情報における、「Ｓｔａｔｕｓ＿ｃｏｄｅ」を「ＧＯＯＤ」に設定する。情報処理装置１５１は、第１の実施形態に示した情報処理装置でない場合であっても、ストレージ１６０から「Ｓｔａｔｕｓ＿ｃｏｄｅ」が「ＧＯＯＤ」である応答情報を受信する。この場合、情報処理装置１５１は、「ＧＯＯＤ」という応答に応じて、ストレージ１６０において問題が発生していないと判定する。
【００９２】
次に、第２の実施形態に係るストレージ１６０に関する作用効果について説明する。
【００９３】
本実施形態に係るストレージ１６０によれば、第１の実施形態に係る効果に加え、さらに、通信遅延を低減することができる。
【００９４】
この理由は、理由１及び理由２である。すなわち、
（理由１）情報処理装置１５１が、第１の実施形態に示したような作用効果を有するためである、
（理由２）情報処理装置１５１及びストレージ１６０は、サイズが小さなポリシー識別子を送受信するためである。
【００９５】
一般に、送受信する情報のサイズが大きいほど、通信遅延は大きくなる。ポリシー識別子が、高々、数バイトの情報であるため、ポリシー識別子のサイズは小さい。したがって、通信遅延は、上述した実施形態に比べ、さらに短い。
【００９６】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【００９７】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００９８】
尚、第３の実施形態に係る情報処理装置１８１は、ハードウェアを用いて実現される。
【００９９】
図１３を参照しながら、第３の実施形態に係る情報処理システム１８５が有する構成と、情報処理装置１８１が行う処理とについて説明する。図１３は、本発明の第３の実施形態に係る情報処理システム１８５が有する構成を示すブロック図である。
【０１００】
第３の実施形態に係る情報処理システム１８５は、情報処理装置１８１と、ＦＣスイッチ１５２と、ＦＣスイッチ１５３と、ストレージ１６０とを有する。情報処理装置１８１は、ＦＣスイッチ１５２及びＦＣスイッチ１５３を介して、ストレージ１６０と情報を送受信することができる。
【０１０１】
情報処理装置１８１は、発行部１８２と、ホストバスアダプター（ＨＢＡ）１８３と、ＨＢＡ１８４とを有する。
【０１０２】
発行部１８２は、リクエスト５０３を複数のＨＢＡ（インタフェースカード）に送信する。ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、論理記憶装置がポリシー情報５０１を適用する対象である場合に、ＦＣスイッチ１５２及びＦＣスイッチ１５３を介して該リクエスト５０３を送信する。ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、それぞれ、ＦＣスイッチを介して通信接続可能な論理記憶装置がポリシー情報５０１を適用する対象でない場合に、該リクエスト５０３をコントローラに送信しない。
【０１０３】
また、情報処理装置１８１は、入出力処理が複数の経路を指し示すマルチパスソフトウェアに従い動作する場合に、リクエスト５０３を送信するコントローラを各ＨＢＡに設定することにより、各ＨＢＡを制御するドライバにリクエスト５０３を送信する。
【０１０４】
ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、リクエスト５０３を受信し、リクエスト５０３にて処理する論理ブロックの先頭アドレスを参照する。次に、ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、該先頭アドレスが、コントローラにより制御される論理ブロックに含まれるアドレスであるか否かを判定する。ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、先頭アドレスが該論理ブロックに含まれるアドレスであると判定する場合に、ＦＣスイッチ（ＦＣスイッチ１５２及びＦＣスイッチ１５３）を介してリクエスト５０３を送信する。ＨＢＡは、先頭アドレスが該論理ブロックに含まれないアドレスであると判定する場合に、リクエスト５０３をコントローラに送信しない。その場合に、ＨＢＡ（ＨＢＡ１８３及びＨＢＡ１８４）は、情報処理装置１８１にリクエスト５０３が正常に完了した情報（たとえば、Ｌｉｎｕｘ（登録商標）においては、ｈｏｓｔ＿ｂｙｔｅにＤＩＤ＿ＯＫを設定する。）を送信する。
【０１０５】
マルチパスソフトウェアは、複数の経路に係るすべての処理正常に完了した情報を受信することにより、入出力処理を完了する。一方、マルチパスソフトウェアは、正常終了しない経路がある場合、該経路を対象にする場合の処理と同様に、入出力処理に係るエラーハンドリングを実施する。
【０１０６】
また、ソフトウェアを用いて機能を実現する場合には、上述した各実施形態に示した処理を行う。
【０１０７】
次に、第３の実施形態に係る情報処理システム１８５に関する作用効果について説明する。
【０１０８】
本実施形態に係る情報処理システム１８５によれば、ストレージ１６０における通信遅延を低減することができる。
【０１０９】
この理由は、本実施形態に係る情報処理システム１８５が有する構成は、第１の実施形態に係る情報処理装置が有する構成、及び、第２の実施形態に係るストレージが有する構成を含むためである。この結果、情報処理システム１８５は、上述した各実施形態に記載の作用効果を享受することができる。
【０１１０】
（ハードウェア構成例）
上述した本発明の第１の実施形態における情報処理装置を及び第２の実施形態におけるストレージ（以降、「情報処理システム」と表す）を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る情報処理システムは、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る情報処理システムは、専用の装置として実現してもよい。
【０１１１】
図１４は、第１の実施形態における情報処理装置を及び第２の実施形態におけるストレージを実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、入力装置２５、出力装置２６、および、通信インターフェース（以降、「通信ＩＦ」と表す。）２７を有する。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１１２】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ。登録商標）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１１３】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、あるいは、図９に示した各部が表す機能（処理）に対応するところのメモリ２２にある情報処理装置制御プログラム（図２、図４、あるいは、図１０）、または、ストレージ制御プログラムを解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１１４】
すなわち、このような場合、本発明は、係る情報処理装置制御プログラム、または、ストレージ制御プログラムによっても成し得ると捉えることができる。更に、係る情報処理装置制御プログラム、または、ストレージ制御プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【符号の説明】
【０１１５】
１０１    情報処理装置
１０２    発行部
２０１    ストレージ
２０２    コントローラ
２０３    コントローラ
５０１    ポリシー情報
５０２    論理記憶装置情報
５０３    リクエスト
１５１    情報処理装置
１５２    ＦＣスイッチ
１５３    ＦＣスイッチ
１６０    ストレージ
１６１    コントローラ
１６２    コントローラ
１７１    物理記憶装置
１７２    物理記憶装置
１７３    物理記憶装置
１７４    物理記憶装置
１７５    物理記憶装置
１７６    物理記憶装置
１８１    情報処理装置
１８２    発行部
１８３    ＨＢＡ
１８４    ＨＢＡ
１８５    情報処理システム
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
2015179448.tif 000003
【図２】
2015179448.tif 000004
【図３】
2015179448.tif 000005
【図４】
2015179448.tif 000006
【図５】
2015179448.tif 000007
【図６】
2015179448.tif 000008
【図７】
2015179448.tif 000009
【図８】
2015179448.tif 000010
【図９】
2015179448.tif 000011
【図１０】
2015179448.tif 000012
【図１１】
2015179448.tif 000013
【図１２】
2015179448.tif 000014
【図１３】
2015179448.tif 000015
【図１４】
2015179448.tif 000016