(57)【要約】【課題】アクセス性能の低下を抑制すること。【解決手段】１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３にそれぞれ対応付けられ、対応する第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３に対してアクセス制御を行う複数の制御部２１、２２と、制御部２１、２２毎に設けられ、対応する１つ又は複数の第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３内で確保された単位記憶領域Ｃｈ１、Ｃｈ２、…が割り当てられる第２記憶領域２３Ａが配置される複数の記憶部２３と、を有するストレージ制御装置２０が提供される。制御部２１、２２は、第２記憶領域２３Ａに単位記憶領域ＣｈＮを割り当てる際、同じ制御部に対応する複数の単位記憶領域が第２記憶領域２３Ａ内で連続して配置されるように、第２記憶領域２３Ａにおける単位記憶領域Ｃｈ１、Ｃｈ２、…、ＣｈＮの配置を変更する。【選択図】図１
2015114808.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、
前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、
を有し、
前記制御部は、前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
ストレージ制御装置。
【請求項２】
前記制御部は、前記第２記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第２記憶領域における前記単位記憶領域の配置を変更する
請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、複数の前記第１記憶領域について、前記第１記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第２記憶領域に割り当てる前記単位記憶領域を設定する
請求項１又は２に記載のストレージ制御装置。
【請求項４】
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータの前記制御部が、
前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
制御方法。
【請求項５】
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータに、
前記制御部が前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
業務サーバなどのコンピュータ（以下、サーバ）が扱う大量のデータは、複数のＨＤＤ（Hard Disk Drive）を有する信頼性の高いＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置などのストレージ装置を用いて管理される。最近では、ＳＡＮ（Storage Area Network）と呼ばれるネットワークでサーバと複数のストレージ装置とを接続したストレージシステムなども広く利用されている。
【０００３】
ストレージ装置の記憶領域（以下、物理領域）は、論理的な記憶領域の単位（以下、ＬＵ：Logical Unit）に分割され、ＬＵ単位でサーバに認識される。例えば、各ＬＵにはＬＵＮ（Logical Unit Number）と呼ばれる識別情報が付されており、サーバは、ＬＵＮを参照して各ＬＵを認識することができる。なお、ＲＡＩＤグループ毎に設定したＬＵをＲＬＵ（RAID LU）と呼ぶ場合がある。
【０００４】
近年、ストレージの仮想化に注目が集まっている。ストレージの仮想化は、ストレージ装置とサーバとの間に仮想化エンジンを設け、サーバに対して仮想化エンジンを１台の仮想的なストレージ装置に見せる技術である。仮想化エンジンは、物理領域を分割したＬＵ（以下、物理ＬＵ）とは異なる仮想的なＬＵ（以下、仮想ＬＵ）を用意し、１つ又は複数の物理ＬＵから選定した記憶領域を仮想ＬＵに割り当てる。
【０００５】
仮想ＬＵの導入により、サーバが認識する記憶領域と物理領域との関係が高度に抽象化され、利用効率や運用形態の柔軟性などを向上させる効果が期待できる。ストレージの仮想化を適用した場合、サーバは、データを読み書きする場合、仮想ＬＵにアクセスする。つまり、サーバは、仮想化エンジンを介して物理ＬＵへのアクセスを実現する。このような仕組みを有するストレージシステムに関し、信頼性向上のためにサーバから物理ＬＵへのアクセスパスを冗長化したマルチパス環境を構築する方法が提案されている。
【０００６】
マルチパス環境では一部のアクセスパスに障害が発生しても正常なアクセスパスを利用して運用を継続することができるため、ストレージシステムの信頼性向上に寄与する。マルチパス環境におけるアクセスパスの選定は、例えば、ＲＴＰＧ（REPORT TARGET PORT GROUPS）コマンドを利用して実現することができる。なお、ＲＴＰＧコマンドは、ＳＣＳＩ（Small Computer System Interface）コマンドの１つである。サーバがＲＴＰＧコマンドを発行すると、ＲＴＰＧコマンドを受けたストレージ装置は、推奨するアクセスパス（以下、推奨パス）をサーバに通知する。そして、サーバは、通知を受けた推奨パスを利用してデータを読み書きする。
【０００７】
ところで、仮想化したストレージシステムにおける物理領域の利用率を高める技術の１つにシンプロビジョニングと呼ばれる技術がある。通常、仮想ＬＵには、サーバから要求されたサイズの物理領域が割り当てられる。一方、シンプロビジョニングを適用したストレージシステムでは、要求サイズの仮想ＬＵ（以下、ＴＰＶ（Thin Provisioning Volume））が設定されるものの、要求サイズを上限として利用量に応じたサイズの物理領域が割り当てられる。そのため、現実の運用に即したストレージ容量で運用することが可能になり、利用率の向上や運用開始時のコスト低減などの効果が期待できる。
【０００８】
なお、仮想化したストレージシステムに関し、フラグメンテーションの回避及び物理領域の使用効率向上を目的として仮想ＬＵへの物理領域の割り当てを好適に制御する方法が提案されている。また、ＴＰＶへの物理領域の割り当てに関し、未割り当ての物理領域を管理情報から特定し、特定された未割り当ての物理領域を複数のサブ領域に分割し、ＴＰＶ内で規則的に並んだ連続領域にサブ領域を割り当てる方法が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−１５７０８９号公報
【特許文献２】特開２００４−１６４３７０号公報
【特許文献３】特開２００８−  ５９３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のように、マルチパス環境におけるアクセスパスの選定は、ストレージ装置からサーバへと推奨パスを通知することにより実現される。１つの物理ＬＵに対して推奨パスが１つに定まる場合、上述したようにＲＴＰＧコマンドを利用した推奨パスの通知が可能である。推奨パスが１つに定まらない場合（例えば、ＴＰＶを利用する場合）には、ＲＲ（REPORT REFERRALS）コマンドを利用することで仮想ＬＵのＬＢＡ（Logical Block Addressing）範囲毎に推奨パスの通知を受けることが可能である。なお、ＲＲコマンドは、ＳＣＳＩコマンドの１つである。
【００１１】
ＬＢＡ範囲毎に推奨パスを管理すると、１つの物理ＬＵに関する管理対象の推奨パス数が２以上となる可能性があり、物理ＬＵ毎に推奨パスを管理する場合に比べて管理情報のデータサイズが大きくなる。管理情報のデータサイズは、１つの推奨パスに対応する分断されたＬＢＡ範囲の数に応じて大きくなる。管理情報のデータサイズ又は管理対象となるＬＢＡ範囲の数が制限されている場合、管理対象から洩れたＬＢＡ範囲へのアクセスについて推奨パスとは異なるアクセスパスが利用される可能性がある。推奨パスとは異なるアクセスパスが利用されるとアクセス性能の低下が生じうる。
【００１２】
そこで、１つの側面によれば、本発明の目的は、アクセス性能の低下を抑制することが可能なストレージ制御装置、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本開示の１つの側面によれば、１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する第１記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する１つ又は複数の第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有し、制御部は、第２記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第２記憶領域内で連続して配置されるように、第２記憶領域における単位記憶領域の配置を変更するストレージ制御装置が提供される。
【００１４】
また、本開示の他の１つの側面によれば、１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する第１記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する１つ又は複数の第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータの制御部が、第２記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第２記憶領域内で連続して配置されるように、第２記憶領域における単位記憶領域の配置を変更する制御方法が提供される。
【００１５】
また、本開示の他の１つの側面によれば、１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する第１記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する１つ又は複数の第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータに、制御部が第２記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第２記憶領域内で連続して配置されるように、第２記憶領域における単位記憶領域の配置を変更する処理を実行させるプログラムが提供される。
【発明の効果】
【００１６】
以上説明したように本発明によれば、アクセス性能の低下を抑制することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係るストレージシステムについて説明するための図である。
【図２】第２実施形態に係るストレージシステムについて説明するための第１の図である。
【図３】第２実施形態に係るストレージシステムについて説明するための第２の図である。
【図４】第２実施形態に係るサーバが有する機能を実現することが可能なハードウェアの一例を示した図である。
【図５】第２実施形態に係るストレージ制御装置が有する機能について説明するための図である。
【図６】第２実施形態に係るストレージ制御装置が保持する平準化用情報の一例を示した図である。
【図７】第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理について説明するための図である。
【図８】第２実施形態に係るストレージ制御装置が保持する推奨パス情報の一例を示した図である。
【図９】第２実施形態に係るストレージ制御装置が保持するセグメント情報の一例を示した図である。
【図１０】第２実施形態に係るストレージ制御装置が保持する閾値情報の一例を示した図である。
【図１１】第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第１の図である。
【図１２】第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第２の図である。
【図１３】第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第３の図である。
【図１４】第２実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第１の図である。
【図１５】第２実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第２の図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１９】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。なお、図１は、第１実施形態に係るストレージシステムについて説明するための図である。
【００２０】
図１に示すように、第１実施形態に係るストレージシステムは、サーバ１０、ストレージ制御装置２０、及びストレージ装置３０を含む。
サーバ１０は、ストレージ制御装置２０を介して、ストレージ装置３０が有する１つ又は複数の記録媒体にアクセスする。記録媒体としては、例えば、ＨＤＤや磁気テープなどの磁気記録媒体、光ディスクなどの光記録媒体、ＳＳＤ（Solid State Drive）などの半導体メモリが利用可能である。ＲＡＩＤ装置は、ストレージ装置３０の一例である。
【００２１】
ストレージ制御装置２０は、制御部２１、２２と、記憶部２３とを有する。なお、図１の例では、ストレージ制御装置２０が有する制御部の数は２つ（制御部２１、２２）であるが、３つ以上の制御部がストレージ制御装置２０に設けられていてもよい。また、図１の例では、制御部２１をＣＭ＃１と表記し、制御部２２をＣＭ＃２と表記している。
【００２２】
記憶部２３は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。制御部２１、２２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、制御部２１、２２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。制御部２１、２２は、例えば、記憶部２３又は他のメモリに記憶されたプログラムを実行する。
【００２３】
制御部２１、２２は、ストレージ制御装置３０が有する１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３にそれぞれ対応付けられている。なお、上述した物理ＬＵやＲＬＵは、第１記憶領域の一例である。また、複数の第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３は、制御部２１、２２が管理するストレージプール２３Ｂに登録されている。図１の例では、ストレージプール２３Ｂに登録されている第１記憶領域の数が３つ（第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３）であるが、ストレージプール２３Ｂに登録可能な第１記憶領域の数は２以下又は４以上であってもよい。
【００２４】
制御部２１、２２は、それぞれ自身に対応する第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３に対してアクセス制御を行う。図１の例では、制御部２１（ＣＭ＃１）と第１記憶領域Ｒｄ１、Ｒｄ２とが対応付けられ、制御部２２（ＣＭ＃２）と第１記憶領域Ｒｄ３とが対応付けられている。従って、制御部２１は、第１記憶領域Ｒｄ１、Ｒｄ２に対するアクセスを制御する。また、制御部２２は、第１記憶領域Ｒｄ３に対するアクセスを制御する。
【００２５】
記憶部２３には、ストレージプール２３Ｂの情報、及びストレージプール２３Ｂに登録された第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３の情報が格納される。また、記憶部２３には、第２記憶領域２３Ａの情報が格納される。第２記憶領域２３Ａは、論理的な記憶領域（論理ボリューム）である。上述したＴＰＶは、第２記憶領域の一例である。なお、図１の例では１つの第２記憶領域２３Ａしか記載されていないが、２以上の第２記憶領域２３Ａを設けることも可能である。
【００２６】
第２記憶領域２３Ａには、設定したサイズの単位記憶領域Ｃｈ１、Ｃｈ２、…が割り当てられる。また、単位記憶領域Ｃｈ１、Ｃｈ２、…のそれぞれには、第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３が有する物理領域の一部又は全部が割り当てられる。図１の例では、第１記憶領域Ｒｄ１、Ｒｄ２が有する物理領域の一部又は全部が単位記憶領域Ｃｈ１に割り当てられている。また、第１記憶領域Ｒｄ３が有する物理領域の一部又は全部が単位記憶領域Ｃｈ２に割り当てられている。なお、上述したＴＰＶに割り当てられる単位ブロック（チャンク）は、単位記憶領域の一例である。
【００２７】
上記のように、第２記憶領域２３Ａには、制御部２１、２２毎に、対応する１つ又は複数の第１記憶領域Ｒｄ１、Ｒｄ２、Ｒｄ３内で確保された単位記憶領域Ｃｈ１、Ｃｈ２、…が割り当てられる。
【００２８】
図１の例では、制御部２１がアクセス可能な第１記憶領域Ｒｄ１、Ｒｄ２内で確保された単位記憶領域Ｃｈ１、及び制御部２２がアクセス可能な第１記憶領域Ｒｄ３内で確保された単位記憶領域Ｃｈ２が第２記憶領域２３Ａ内で混在している。つまり、ストレージ制御装置２０は、制御部２１を経由するアクセスパスを与える単位記憶領域Ｃｈ１と、制御部２２を経由するアクセスパスを与える単位記憶領域Ｃｈ２とが１つの第２記憶領域２３Ａに混在する状態を許容する。
【００２９】
制御部２１、２２は、第２記憶領域２３Ａに単位記憶領域ＣｈＮを割り当てる際、同じ制御部に対応する複数の単位記憶領域が第２記憶領域２３Ａ内で連続して配置されるように単位記憶領域Ｃｈ１、Ｃｈ２、…、ＣｈＮの配置を変更する。
【００３０】
例えば、第２記憶領域２３ＡのＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）が未割り当て領域であり、第１記憶領域Ｒｄ３内で確保された単位記憶領域ＣｈＮを当該未割り当て領域に割り当てた場合について考える。図１（Ａ）は単位記憶領域ＣｈＮを割り当て直後の状態であり、図１（Ｂ）は単位記憶領域Ｃｈ１、Ｃｈ２、…、ＣｈＮの配置を変更した後の状態である。なお、図１（Ａ）及び（Ｂ）には、各ＬＢＡ範囲と、各ＬＢＡ範囲に割り当てた単位記憶領域に対応する第１記憶領域との関係を示した。
【００３１】
図１（Ａ）の例では、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ａ）に第１記憶領域Ｒｄ１内の単位記憶領域が割り当てられ、ＬＢＡ範囲（ＬＢＡ＃Ａ−ＬＢＡ＃Ｂ）には第１記憶領域Ｒｄ２内の単位記憶領域が割り当てられている。また、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に第１記憶領域Ｒｄ３内の単位記憶領域が割り当てられ、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｄ）には第１記憶領域Ｒｄ１内の単位記憶領域が割り当てられている。また、ＬＢＡ範囲（ＬＢＡ＃Ｄ−ＬＢＡ＃Ｅ）に第１記憶領域Ｒｄ１内の単位記憶領域が割り当てられ、ＬＢＡ範囲（ＬＢＡ＃Ｅ−ＬＢＡ＃Ｆ）には第１記憶領域Ｒｄ３内の単位記憶領域が割り当てられている。
【００３２】
制御部２１を経由する第１のアクセスパスと制御部２２を経由する第２のアクセスパスとをＬＢＡ範囲毎に管理する場合、管理情報は次のようになる。図１（Ａ）の場合、管理情報は、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ｂ）を第１のアクセスパスに対応付け、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）を第２のアクセスパスに対応付ける情報を含む。さらに、この管理情報は、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）を第１のアクセスパスに対応付け、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）を第１のアクセスパスに対応付ける情報を含む。この場合、管理対象となるＬＢＡ範囲の数（セグメント数）は４つとなる。
【００３３】
図１（Ｂ）の場合、管理情報は、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ｄ）を第１のアクセスパスに対応付け、ＬＢＡ範囲（ＬＢＡ＃Ｄ−ＬＢＡ＃Ｆ）を第２のアクセスパスに対応付ける情報を含む。この場合、管理対象となるＬＢＡ範囲の数（セグメント数）は２つとなる。このように、セグメント数が少なくなると管理情報の情報量を小さくすることができる。
【００３４】
例えば、サーバ１０が管理できるセグメント数が３の場合、図１（Ａ）の状態ではアクセスパスの管理対象から漏れる単位記憶領域が生じるが、図１（Ｂ）の状態ではアクセスパスの管理対象から漏れる単位記憶領域が生じない。アクセスパスの管理対象から漏れた単位記憶領域へアクセスする場合、サーバ１０は、任意のアクセスパスを選定する。例えば、サーバ１０は、第１記憶領域Ｒｄ３に対応する単位記憶領域Ｃｈ２へのアクセス要求を制御部２１に通知することも考えられる。この場合、制御部２１は、制御部２２を介して第１記憶領域Ｒｄ３へアクセス（クロスアクセス）することになる。
【００３５】
そこで、制御部２１、２２は、セグメント数が少なくなるように第２記憶領域２３Ａにおける単位記憶領域Ｃｈ１、Ｃｈ２、…、ＣｈＮの配置を変更する。この変更により、管理対象から漏れる単位記憶領域Ｃｈ１、Ｃｈ２、…、ＣｈＮの数を低減することが可能になり、クロスアクセスの発生頻度を低減することが可能になる。クロスアクセスの発生頻度が低減することでアクセス性能の低下が抑制される。
【００３６】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。
【００３７】
［２−１．システム］
まず、図２及び図３を参照しながら、第２実施形態に係るストレージシステムについて説明する。なお、図２は、第２実施形態に係るストレージシステムについて説明するための第１の図である。また、図３は、第２実施形態に係るストレージシステムについて説明するための第２の図である。
【００３８】
図２に示すように、第２実施形態に係るストレージシステムは、サーバ１００、ストレージ制御装置２００、及びディスクアレイ３０１、３０２を含む。
サーバ１００は、ストレージ制御装置２００を介してディスクアレイ３０１、３０２にアクセスする。ディスクアレイ３０１は、複数の記録媒体Ｄ１、Ｄ２、Ｄ３、Ｄ４を有する。また、ディスクアレイ３０２は、複数の記録媒体Ｄ５、Ｄ６、Ｄ７、Ｄ８を有する。記録媒体としては、例えば、ＨＤＤや磁気テープなどの磁気記録媒体、光ディスクなどの光記録媒体、ＳＳＤなどの半導体メモリが利用可能である。ＲＡＩＤ装置は、ディスクアレイ３０１、３０２の一例である。
【００３９】
ストレージ制御装置２００は、コントローラ２０１、２０２を有する。なお、図２の例では、ストレージ制御装置２００が有するコントローラの数は２つ（コントローラ２０１、２０２）であるが、３つ以上のコントローラがストレージ制御装置２００に設けられていてもよい。また、以下では、コントローラ２０１をＣＭ＃１と表記し、コントローラ２０２をＣＭ＃２と表記する場合がある。
【００４０】
図３に示すように、サーバ１００は、ストレージ制御装置２００を介してディスクアレイ３０１、３０２の物理領域へとアクセスするためのアクセスパスを管理するマルチパスドライバ１０１を有する。サーバ１００には複数のホストバスアダプタ（ＨＢＡ：Host Bus Adapter）が設けられており、それぞれがストレージ制御装置２００のコントローラ２０１、２０２に設けられたポート（Ｐｏｒｔ）に接続される。マルチパスドライバ１０１は、ＨＢＡを介してコントローラ２０１、２０２にアクセスする。また、マルチパスドライバ１０１は、物理領域へとアクセスする際に用いる好適なアクセスパス（推奨パス）の情報を管理する。
【００４１】
コントローラ２０１、２０２は、サーバ１００に提供される論理的な記憶領域を格納する論理ボリューム、及び、ディスクアレイ３０１、３０２の物理領域を割り当てるディスクプールを管理する。以下、簡単のために、コントローラ２０１、２０２により管理される論理ボリュームがＴＰＶである場合について考える。また、ディスクアレイ３０１、３０２の物理領域をグループ分けしたＲＡＩＤグループＲ１、Ｒ２、Ｒ３がディスクプールに登録されている場合について考える。以下、ＲＡＩＤグループＲｋ（ｋ＝１，２，３）の物理領域をＲＬＵ領域Ｒｋと表記する。
【００４２】
コントローラ２０１はＲＬＵ領域Ｒ１、Ｒ２に対してアクセス可能に設定され、コントローラ２０２はＲＬＵ領域Ｒ３にアクセス可能に設定されているものとする。つまり、コントローラ２０１はＲＬＵ領域Ｒ１、Ｒ２の担当コントローラであり、コントローラ２０２はＲＬＵ領域Ｒ３の担当コントローラである場合について考える。以下、担当コントローラを担当ＣＭと表記する場合がある。
【００４３】
ＴＰＶには、チャンクと呼ばれる論理的な記憶領域の単位が割り当てられる。チャンクには、ＲＬＵ領域の一部又は全部が割り当てられる。図３の例では、ＴＰＶにチャンクＣ１、Ｃ２、Ｃ３、…が割り当てられ、チャンクＣ１にＲＬＵ領域Ｒ１、チャンクＣ２にＲＬＵ領域Ｒ２、チャンクＣ３にＲＬＵ領域Ｒ３が割り当てられている。
【００４４】
チャンクは、コントローラ２０１、２０２がサーバ１００からデータの書き込みを要求するコマンド（Ｗｒｉｔｅコマンド）を受けた場合に生成される。例えば、既存のチャンクに割り当てられたＲＬＵ領域を超えてデータの書き込みが行われる場合、新たなチャンクが生成され、そのチャンクに割り当てられたＲＬＵ領域に対してデータの書き込みが行われる。
【００４５】
サーバ１００は、ＴＰＶのデータにアクセスする場合、マルチパスドライバ１０１によりアクセスパスの選定処理を実行する。例えば、コントローラ２０２が担当するＲＬＵ領域Ｒ３を割り当てたチャンクＣ３へのアクセス要求をコントローラ２０１に送信すると、コントローラ２０１がコントローラ２０２を介してＲＬＵ領域Ｒ３へとアクセスするクロスアクセスが発生する。そのため、マルチパスドライバ１０１は、チャンクＣ３へのアクセス要求がコントローラ２０２へと送信されるようなアクセスパス（推奨パス）を選定し、クロスアクセスの発生を抑制する。
【００４６】
マルチパスドライバ１０１は、例えば、ＲＲコマンドを利用してＴＰＶのＬＢＡ範囲毎に推奨パスの情報を取得する。マルチパスドライバ１０１は、取得した推奨パスの情報を保持し、保持している推奨パスの情報をアクセスパスの選定に利用する。このようにＬＢＡ範囲毎に推奨パスの情報を管理することで、ＲＬＵ領域の担当ＣＭが異なる複数のチャンクが１つのＴＰＶ内に混在してもマルチパスドライバ１０１による推奨パスの選定が可能になる。
【００４７】
以上、第２実施形態に係るストレージシステムについて説明した。
［２−２．ハードウェア］
次に、図４を参照しながら、サーバ１００のハードウェアについて説明する。図４は、第２実施形態に係るサーバが有する機能を実現することが可能なハードウェアの一例を示した図である。
【００４８】
サーバ１００が有する機能は、例えば、図４に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、サーバ１００が有する機能は、コンピュータプログラムを用いて図４に示すハードウェアを制御することにより実現される。
【００４９】
図４に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００５０】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００５１】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００５２】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００５３】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００５４】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００５５】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００５６】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００５７】
以上、サーバ１００のハードウェアについて説明した。なお、ストレージ制御装置２００が有する機能も、図４に例示したハードウェアの一部又は全部を用いて実現することができる。そのため、ストレージ制御装置２００のハードウェアについては説明を省略する。
【００５８】
［２−３．ストレージ制御装置の機能］
次に、図５を参照しながら、ストレージ制御装置２００が有する機能について説明する。なお、図５は、第２実施形態に係るストレージ制御装置が有する機能について説明するための図である。
【００５９】
図５に示すように、ストレージ制御装置２００は、記憶部２１１と、物理ボリューム管理部２１２と、論理ボリューム管理部２１３と、コマンド実行部２１４とを有する。
なお、記憶部２１１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。物理ボリューム管理部２１２、論理ボリューム管理部２１３、及びコマンド実行部２１４の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００６０】
（記憶部２１１）
記憶部２１１には、プール情報２１１Ａ、ＴＰＶ情報２１１Ｂ、平準化用情報２１１Ｃ、推奨パス情報２１１Ｄ、セグメント情報２１１Ｅ、及び閾値情報２１１Ｆが格納される。プール情報２１１Ａは、管理対象のディスクプールに関する情報及びディスクプールに登録されたＲＬＵ領域に関する情報を含む。また、プール情報２１１Ａは、ＲＬＵ領域と担当ＣＭとを対応付ける情報を含む。ＴＰＶ情報２１１Ｂは、管理対象のＴＰＶに関する情報及びＴＰＶに割り当てられたチャンクに関する情報を含む。また、ＴＰＶ情報２１１Ｂは、チャンクとＲＬＵ領域とを対応付ける情報を含む。
【００６１】
ここで、図６〜図１０を参照しながら、平準化用情報２１１Ｃ、推奨パス情報２１１Ｄ、セグメント情報２１１Ｅ、及び閾値情報２１１Ｆのそれぞれについて説明する。
なお、図６は、第２実施形態に係るストレージ制御装置が保持する平準化用情報の一例を示した図である。また、図７は、第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理について説明するための図である。また、図８は、第２実施形態に係るストレージ制御装置が保持する推奨パス情報の一例を示した図である。また、図９は、第２実施形態に係るストレージ制御装置が保持するセグメント情報の一例を示した図である。また、図１０は、第２実施形態に係るストレージ制御装置が保持する閾値情報の一例を示した図である。
【００６２】
（平準化用情報２１１Ｃ）
平準化用情報２１１Ｃは、チャンクに対してＲＬＵ領域を割り当てる際に利用される。平準化用情報２１１Ｃは、１つのディスクプールに登録された各ＲＡＩＤグループについてチャンク割り当て数が均等になるように管理するための割り当て管理情報である。例えば、図６に示した平準割り当て用テーブルは、平準化用情報２１１Ｃの一例である。
【００６３】
図６に示すように、平準割り当て用テーブルは、ディスクプールを識別するための識別情報（Ｐｏｏｌ  Ｎｏ．）と、ＲＡＩＤグループと、チャンク割り当て数とを対応付ける。なお、チャンク割り当て数は、各ＲＡＩＤグループのＲＬＵ領域が割り当てられたチャンクの数である。チャンクに対してＲＬＵ領域を割り当てる際には、ディスクプール毎に、チャンク割り当て数が同じになるようにサイクリックに割り当て対象のＲＡＩＤグループが選択され、選択されたＲＡＩＤグループのＲＬＵ領域がチャンクに割り当てられる。
【００６４】
図６の例では、Ｐｏｏｌ  Ｎｏ．１のディスクプールに含まれるＲＡＩＤグループＲ１、Ｒ２、Ｒ３のチャンク割り当て数がそれぞれＮ１となっており、ＲＡＩＤグループの割り当てが平準化されている。チャンク割り当て数は、ＴＰＶにチャンクが登録され、チャンクにＲＬＵ領域が割り当てられた場合に加算される。一方、ＴＰＶからチャンクが削除された場合、そのチャンクに割り当てられていたＲＬＵ領域のＲＡＩＤグループに対応するチャンク割り当て数が減算される。
【００６５】
（推奨パス情報２１１Ｄ）
推奨パス情報２１１Ｄは、推奨パスを管理するためのパス管理情報である。上記のように、各ＲＬＵ領域には担当ＣＭが存在する。担当ＣＭを経由してＲＬＵ領域へアクセスするアクセスパスが推奨パスである。ＴＰＶにチャンクを割り当てる際、チャンクにはＲＬＵ領域が割り当てられる。そのため、図７に示すように、チャンクが割り当てられたＬＢＡ範囲と、そのチャンクに割り当てたＲＬＵ領域とが対応付けられる。さらに、ＲＬＵ領域と担当ＣＭとの関係から、ＬＢＡ範囲と担当ＣＭ（推奨パス）とが対応付けられる。
【００６６】
図７の例では、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ａ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在し、ＬＢＡ範囲（ＬＢＡ＃Ａ−ＬＢＡ＃Ｂ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在する。また、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）は未割り当て領域である。また、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在し、ＬＢＡ範囲（ＬＢＡ＃Ｅ−ＬＢＡ＃Ｆ）にＲＬＵ領域Ｒ３を割り当てたチャンクが存在する。この場合、ＬＢＡ範囲と推奨パスとの対応関係は、図８のようになる。図８に例示した推奨パステーブルは、推奨パス情報２１１Ｄの一例である。
【００６７】
ここで、同じ推奨パスに対応する連続したＬＢＡ範囲をセグメントと呼ぶ。図８の例では、ＬＢＡ範囲（ＬＢＡ＃０−＃Ｂ）がＣＭ＃１を経由する推奨パスに対応し、セグメント＃１を成している。また、ＬＢＡ範囲（ＬＢＡ＃Ｃ−＃Ｅ）がＣＭ＃１を経由する推奨パスに対応し、セグメント＃３を成している。また、未割り当て領域がセグメント＃２を成し、ＬＢＡ範囲（ＬＢＡ＃Ｅ−ＬＢＡ＃Ｆ）がＣＭ＃２を経由する推奨パスに対応し、セグメント＃４を成している。このように、ＬＢＡ範囲と推奨パスとを対応付ける推奨パス情報２１１Ｄは、ＴＰＶ毎にセグメントに関する情報を与える。
【００６８】
（セグメント情報２１１Ｅ）
セグメント情報２１１Ｅは、ＴＰＶ毎のセグメント数を管理するための管理用情報である。図９に例示したＴＰＶ管理テーブルは、セグメント情報２１１Ｅの一例である。上述したように、推奨パス情報２１１Ｄを参照することで、ＴＰＶ毎にセグメント数をカウントすることができる。そのカウント結果をまとめたものがＴＰＶ管理テーブルである。図９に示すように、ＴＰＶ管理テーブルは、ＴＰＶを識別するための識別情報（ＴＰＶ  Ｎｏ．）とセグメント数とを対応付ける。セグメント情報２１１Ｅは、ＴＰＶへチャンクを割り当てた場合など、推奨パス情報２１１Ｄの内容が変更された場合に更新される。
【００６９】
（閾値情報２１１Ｆ）
閾値情報２１１Ｆは、サーバ１００が保持可能な推奨パスの数を管理するための管理用情報である。図１０に例示した閾値管理テーブルは、閾値情報２１１Ｆの一例である。閾値管理テーブルは、サーバ１００を識別するサーバ識別情報と推奨パス数閾値とを対応付ける。図１０の例では、サーバ識別子ｘ００１００１のサーバ１００が保持可能な推奨パスの数（推奨パス数閾値）は３に設定されている。また、サーバ識別子ｘ００１００２のサーバ１００が保持可能な推奨パスの数（推奨パス数閾値）は４に設定されている。なお、サーバ１００は、推奨パスの情報をセグメント単位で保持する。つまり、推奨パス数閾値は、サーバ１００毎に管理可能なセグメント数の上限値を表す。
【００７０】
（物理ボリューム管理部２１２）
再び図５を参照する。物理ボリューム管理部２１２は、プール情報２１１Ａを管理する。例えば、物理ボリューム管理部２１２は、ディスクプールに対してＲＬＵ領域を登録する処理や、ＲＬＵ領域の利用状況を管理する処理などを実行する。
【００７１】
（論理ボリューム管理部２１３）
論理ボリューム管理部２１３は、ＴＰＶ情報２１１Ｂを管理する。例えば、論理ボリューム管理部２１３は、ＴＰＶにチャンクを登録する処理、チャンクへＲＬＵ領域を割り当てる処理、及びＴＰＶに登録されたチャンクの配置を変更する処理などを実行する。また、論理ボリューム管理部２１３は、平準化用情報２１１Ｃ、推奨パス情報２１１Ｄ、及びセグメント情報２１１Ｅの更新処理なども実行する。
【００７２】
上記のような処理を実行するため、論理ボリューム管理部２１３は、割り当て部２３１、及び検証部２３２を有する。割り当て部２３１は、ＴＰＶにチャンクを登録する処理や、チャンクへＲＬＵ領域を割り当てる処理などを実行する。検証部２３２は、ＴＰＶに登録されたチャンクの配置を変更する処理などを実行する。
【００７３】
以下、図１１〜図１３の例を参照しながら、割り当て部２３１及び検証部２３２の機能について、さらに説明する。
なお、図７及び図８に例示したＴＰＶの状態を想定して説明を進める。図１１は、第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第１の図である。また、図１２は、第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第２の図である。また、図１３は、第２実施形態に係るストレージ制御装置によるＲＬＵ領域の割り当て処理とセグメント数について説明するための第３の図である。
【００７４】
図１１を参照する。図１１（Ａ）の例では、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ａ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在し、ＬＢＡ範囲（ＬＢＡ＃Ａ−ＬＢＡ＃Ｂ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在する。また、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）は未割り当て領域である。また、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）にＲＬＵ領域Ｒ１を割り当てたチャンクが存在し、ＬＢＡ範囲（ＬＢＡ＃Ｅ−ＬＢＡ＃Ｆ）にＲＬＵ領域Ｒ３を割り当てたチャンクが存在する。この場合、ＴＰＶのセグメント数は４となる。
【００７５】
ここで、ＲＬＵ領域Ｒ２を割り当てたチャンクＣＮを未割り当て領域のＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に対して割り当てる場合について考える。この場合、チャンクの割り当て状況、及び、ＬＢＡ範囲と推奨パスとの対応関係は図１１（Ｂ）のようになる。図１１（Ｂ）上側には、各ＬＢＡ範囲とＲＬＵ領域との対応関係を示している。
【００７６】
割り当て部２３１は、ＲＬＵ領域Ｒ２を割り当てたチャンクＣＮを未割り当て領域のＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に対して割り当てる。チャンクＣＮをＴＰＶに割り当てたことで、図１１（Ｂ）上側に示すように、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に対してＲＬＵ領域Ｒ２が対応付けられる。検証部２３２は、図１１（Ｂ）下側に示すように、各ＬＢＡ範囲と推奨パスとの関係を示す推奨パス情報２１１Ｄを更新する。
【００７７】
図１１の例では、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）にチャンクＣＮが割り当てられたことで、ＬＢＡ範囲（ＬＢＡ＃０−＃Ｅ）に対応する推奨パスが同じ担当ＣＭ（ＣＭ＃１）を経由するアクセスパスとなる。検証部２３２は、同じ担当ＣＭを経由する推奨パスに対応付けられた連続するＬＢＡ範囲（セグメント）を抽出し、抽出したセグメントの数をカウントする。また、検証部２３２は、カウントしたセグメント数に基づいてセグメント情報２１１Ｅを更新する。なお、図１１の例では、セグメント数が２となる。
【００７８】
検証部２３２は、閾値情報２１１Ｆを参照し、チャンクＣＮが割り当てられたＴＰＶにアクセスするサーバ１００の推奨パス数閾値を取得する。さらに、検証部２３２は、取得した推奨パス数閾値と、更新後のセグメント情報２１１Ｅに記載のセグメント数とを比較する。セグメント数が推奨パス数閾値よりも大きい場合、検証部２３２は、ＴＰＶにおけるチャンクの配置を変更する。例えば、推奨パス数閾値が３である場合、図１１の例ではセグメント数が２であるため、チャンクの配置変更は行われない。一方、図１２に示すように、チャンクＣＮがＲＬＵ領域Ｒ３に割り当てられる場合は状況が異なる。
【００７９】
図１２を参照する。図１２の例において、割り当て部２３１は、ＲＬＵ領域Ｒ３を割り当てたチャンクＣＮを未割り当て領域のＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に対して割り当てる。チャンクＣＮをＴＰＶに割り当てたことで、図１２（Ｂ）上側に示すように、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に対してＲＬＵ領域Ｒ３が対応付けられる。検証部２３２は、図１２（Ｂ）下側に示すように、各ＬＢＡ範囲と推奨パスとの関係を示す推奨パス情報２１１Ｄを更新する。
【００８０】
図１２の例では、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）にチャンクＣＮが割り当てられた後、ＬＢＡ範囲（ＬＢＡ＃０−＃Ｂ）に対応する推奨パスが同じ担当ＣＭ（ＣＭ＃１）を経由するアクセスパスとなる。また、ＬＢＡ範囲（ＬＢＡ＃Ｂ−＃Ｃ）に対応する推奨パスが同じ担当ＣＭ（ＣＭ＃２）を経由するアクセスパスとなる。また、ＬＢＡ範囲（ＬＢＡ＃Ｃ−＃Ｅ）に対応する推奨パスが同じ担当ＣＭ（ＣＭ＃１）を経由するアクセスパスとなる。また、ＬＢＡ範囲（ＬＢＡ＃Ｅ−＃Ｆ）に対応する推奨パスが同じ担当ＣＭ（ＣＭ＃２）を経由するアクセスパスとなる。
【００８１】
検証部２３２は、同じ担当ＣＭを経由する推奨パスに対応付けられた連続するＬＢＡ範囲（セグメント）を抽出し、抽出したセグメントの数をカウントする。また、検証部２３２は、カウントしたセグメント数に基づいてセグメント情報２１１Ｅを更新する。なお、図１２の例では、セグメント数が４となる。
【００８２】
検証部２３２は、閾値情報２１１Ｆを参照し、チャンクＣＮが割り当てられたＴＰＶにアクセスするサーバ１００の推奨パス数閾値を取得する。さらに、検証部２３２は、取得した推奨パス数閾値と、更新後のセグメント情報２１１Ｅに記載のセグメント数とを比較する。推奨パス数閾値が３である場合、図１２の例ではセグメント数が４であるため、検証部２３２は、図１３に示すように、ＴＰＶにおけるチャンクの配置を変更する。図１３（Ａ）には、ＲＬＵ領域Ｒ３が割り当てられたチャンクＣＮをＴＰＶに対して割り当てた場合の割り当て状況が示されている。
【００８３】
チャンクＣＮに割り当てたＲＬＵ領域Ｒ３の担当ＣＭはＣＭ＃２である。チャンクＣＮを割り当てたＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）の前に位置するＲＬＵ領域（ＬＢＡ＃０−ＬＢＡ＃Ｂ）には、担当ＣＭがＣＭ＃１のＲＬＵ領域Ｒ１、Ｒ２が割り当てられている。また、チャンクＣＮを割り当てたＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）の後に続くＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）には、担当ＣＭがＣＭ＃１のＲＬＵ領域Ｒ１が割り当てられている。
【００８４】
つまり、チャンクＣＮの担当ＣＭがＣＭ＃２であることにより、同じ担当ＣＭに対応する連続したＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ｂ）及びＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｅ）がチャンクＣＮの割り当てにより連結されず、セグメントが分断される。その結果、セグメント数が大きくなる。そこで、検証部２３２は、同じ担当ＣＭに対応する連続したＬＢＡ範囲が長くなるようにＬＢＡ範囲の割り当てを変更する。
【００８５】
例えば、検証部２３２は、図１３（Ｂ）に示すように、ＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｄ）に割り当てられていたチャンクをＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）へと移動する。また、検証部２３２は、ＬＢＡ範囲（ＬＢＡ＃Ｄ−ＬＢＡ＃Ｅ）に割り当てられていたチャンクをＬＢＡ範囲（ＬＢＡ＃Ｃ−ＬＢＡ＃Ｄ）へと移動する。さらに、検証部２３２は、ＬＢＡ範囲（ＬＢＡ＃Ｂ−ＬＢＡ＃Ｃ）に割り当てられていたチャンクをＬＢＡ範囲（ＬＢＡ＃Ｄ−ＬＢＡ＃Ｅ）へと移動する。つまり、検証部２３２は、ＴＰＶ情報２１１Ｂを更新する。
【００８６】
上記のようなチャンクの配置変更により、ＬＢＡ範囲（ＬＢＡ＃０−ＬＢＡ＃Ｄ）が同じ担当ＣＭ（ＣＭ＃１）に対応する連続したＬＢＡ範囲となる。さらに、ＬＢＡ範囲（ＬＢＡ＃Ｄ−ＬＢＡ＃Ｆ）が同じ担当ＣＭ（ＣＭ＃２）に対応する連続したＬＢＡ範囲となる。検証部２３２は、配置変更後の内容で推奨パス情報２１１Ｄを更新する。また、検証部２３２は、セグメントの数をカウントする。さらに、検証部２３２は、カウントしたセグメント数に基づいてセグメント情報２１１Ｅを更新する。図１３の例では、セグメント数が２となる。
【００８７】
検証部２３２は、閾値情報２１１Ｆを参照して推奨パス数閾値を取得する。さらに、検証部２３２は、取得した推奨パス数閾値と、更新後のセグメント情報２１１Ｅに記載のセグメント数とを再び比較する。セグメント数が推奨パス数閾値よりも大きい場合、検証部２３２は、再びＴＰＶにおけるチャンクの配置を変更する。図１３の例では、セグメント数が２であるため、検証部２３２は、チャンクＣＮの割り当てに伴う配置変更の処理を完了する。そして、検証部２３２は、マルチパスの再構築を要求するセンスをサーバ１００へと通知する。なお、マルチパスの再構築時に、検証部２３２は、更新後の推奨パス情報２１１Ｄに基づく推奨パスの情報をサーバ１００へ提供する。
【００８８】
（コマンド実行部２１４）
再び図５を参照する。コマンド実行部２１４は、サーバ１００から受けたコマンドを実行する。例えば、コマンド実行部２１４は、サーバ１００からＷｒｉｔｅコマンドを受けた場合、ＴＰＶ情報２１１Ｂを参照し、データの書き込み対象となるチャンクに割り当てられたＲＬＵ領域を認識する。そして、コマンド実行部２１４は、認識したＲＬＵ領域にデータを書き込む。
【００８９】
また、サーバ１００からＲｅａｄコマンドを受けた場合、コマンド実行部２１４は、ＴＰＶ情報２１１Ｂを参照し、データの読み出し対象となるチャンクに割り当てられたＲＬＵ領域を認識する。そして、コマンド実行部２１４は、認識したＲＬＵ領域からデータを読み出す。また、コマンド実行部２１４は、サーバ１００からＲＲコマンドを受けた場合、推奨パス情報２１１Ｄを参照し、ＬＢＡ範囲毎に推奨パスの情報をサーバ１００に提供する。
【００９０】
以上、ストレージ制御装置２００が有する機能について説明した。
［２−４．処理フロー］
次に、図１４及び図１５を参照しながら、ストレージ制御装置２００が実行する処理の流れについて説明する。ここでは、主にチャンクの割り当てに関する処理の流れについて説明する。
【００９１】
なお、図１４は、第２実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第１の図である。また、図１５は、第２実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第２の図である。また、図１４及び図１５に示した一連の処理を開始する段階でインデックスｎは０に設定されている。なお、チャンクｎはｎ番目のチャンクを表す。
【００９２】
（Ｓ１０１）コマンド実行部２１４は、サーバ１００からＷｒｉｔｅコマンドを受信したか否かを判定する。コマンド実行部２１４がＷｒｉｔｅコマンドを受信した場合、処理はＳ１０２へと進む。一方、コマンド実行部２１４がＷｒｉｔｅコマンドを受信していない場合、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
【００９３】
（Ｓ１０２）論理ボリューム管理部２１３は、ＴＰＶに新たなチャンクを設けて、そのチャンクにＲＬＵ領域を割り当てるか否かを判定する。例えば、サーバ１００から受信したＷｒｉｔｅコマンドに応じてデータを書き込むには既存のチャンクに割り当てたＲＬＵ領域のデータサイズが小さすぎる場合、新たなチャンクが設けられる。
【００９４】
論理ボリューム管理部２１３がＴＰＶに新たなチャンクを設けて新規にＲＬＵ領域を割り当てる場合、処理はＳ１０３へと進む。一方、論理ボリューム管理部２１３がＴＰＶに新たなチャンクを設けない場合、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
【００９５】
（Ｓ１０３）論理ボリューム管理部２１３は、セグメント数が推奨パス数閾値を上回るか否かを判定する。例えば、論理ボリューム管理部２１３は、新たなチャンクをＴＰＶに割り当てて推奨パス情報２１１Ｄを更新する。また、論理ボリューム管理部２１３は、更新後の推奨パス情報２１１Ｄを参照し、同じ担当ＣＭに対応する連続したＬＢＡ範囲の数をカウントしてセグメント数を計算する。そして、論理ボリューム管理部２１３は、計算したセグメント数に基づいてセグメント情報２１１Ｅを更新する。
【００９６】
また、論理ボリューム管理部２１３は、更新後のセグメント情報２１１Ｅに記載のセグメント数と閾値情報２１１Ｆに記載の推奨パス数閾値とを比較する。論理ボリューム管理部２１３によりセグメント数が推奨パス数閾値を上回ると判定した場合、処理はＳ１０４へと進む。一方、論理ボリューム管理部２１３によりセグメント数が推奨パス数閾値を上回らないと判定した場合、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
【００９７】
（Ｓ１０４）論理ボリューム管理部２１３は、チャンクｎに割り当てられたＲＬＵ領域の担当ＣＭと、新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが異なるか否かを判定する。チャンクｎに割り当てられたＲＬＵ領域の担当ＣＭと新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが異なる場合、処理はＳ１０５へと進む。一方、チャンクｎに割り当てられたＲＬＵ領域の担当ＣＭと新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが同じ場合、処理はＳ１０８へと進む。
【００９８】
（Ｓ１０５）論理ボリューム管理部２１３は、チャンクｎ＋１、ｎ−１に割り当てられたＲＬＵ領域の担当ＣＭと、新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが同じか否かを判定する。チャンクｎ＋１、ｎ−１に割り当てられたＲＬＵ領域の担当ＣＭ及び新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭが同じである場合、処理は図１５に示したＳ１１０へと進む。一方、チャンクｎ＋１、ｎ−１に割り当てられたＲＬＵ領域の担当ＣＭ及び新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭが同じではない場合、処理はＳ１０６へと進む。
【００９９】
（Ｓ１０６）論理ボリューム管理部２１３は、次の第１条件を満たし、かつ、次の第２条件を満たすか否かを判定する。第１条件は、「チャンクｎ＋１に割り当てられたＲＬＵ領域の担当ＣＭと、新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが同じ」という条件である。第２条件は、「チャンクｎ、ｎ−１に割り当てられたＲＬＵ領域の担当ＣＭが異なる」という条件である。上記の第１条件を満たし、かつ、上記の第２条件を満たす場合、処理は図１５に示したＳ１１０へと進む。一方、上記の第１条件又は上記の第２条件を満たさない場合、処理はＳ１０７へと進む。
【０１００】
（Ｓ１０７）論理ボリューム管理部２１３は、次の第３条件を満たし、かつ、次の第４条件を満たすか否かを判定する。第３条件は、「チャンクｎ−１に割り当てられたＲＬＵ領域の担当ＣＭと、新たなチャンクに割り当てたＲＬＵ領域の担当ＣＭとが同じ」という条件である。第４条件は、「チャンクｎ、ｎ＋１に割り当てられたＲＬＵ領域の担当ＣＭが異なる」という条件である。上記の第３条件を満たし、かつ、上記の第４条件を満たす場合、処理は図１５に示したＳ１１０へと進む。一方、上記の第３条件又は上記の第４条件を満たさない場合、処理はＳ１０８へと進む。
【０１０１】
（Ｓ１０８）論理ボリューム管理部２１３は、インデックスｎを１増加させる。つまり、論理ボリューム管理部２１３は、注目するチャンクを変更する。
（Ｓ１０９）論理ボリューム管理部２１３は、ＴＰＶの全範囲（ＴＰＶ内に設けた全チャンク）をチェック（Ｓ１０４以降の処理を実行）したか否かを判定する。論理ボリューム管理部２１３がＴＰＶの全範囲をチェックし終えた場合、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。一方、論理ボリューム管理部２１３がＴＰＶの全範囲をチェックし終えていない場合、処理はＳ１０４へと進む。
【０１０２】
（Ｓ１１０）論理ボリューム管理部２１３は、チャンクｎに割り当てられたＲＬＵ領域のデータ及び新たなチャンクに割り当てたＲＬＵ領域のデータと、管理情報とをスワップ（交換）する。つまり、論理ボリューム管理部２１３は、図１３に例示したチャンクの入れ替え処理を実行する。
【０１０３】
（Ｓ１１１）論理ボリューム管理部２１３は、スワップ後の内容で推奨パス情報２１１Ｄを更新する。また、論理ボリューム管理部２１３は、セグメントの数をカウントし、カウントしたセグメント数に基づいてセグメント情報２１１Ｅを更新する。
【０１０４】
（Ｓ１１２）論理ボリューム管理部２１３は、セグメント数が推奨パス数閾値を上回るか否かを判定する。例えば、論理ボリューム管理部２１３は、閾値情報２１１Ｆを参照して推奨パス数閾値を取得する。さらに、論理ボリューム管理部２１３は、取得した推奨パス数閾値と、更新後のセグメント情報２１１Ｅに記載のセグメント数とを比較する。セグメント数が推奨パス数閾値を上回る場合、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。一方、セグメント数が推奨パス数閾値を上回らない場合、処理はＳ１１３へと進む。
【０１０５】
（Ｓ１１３）論理ボリューム管理部２１３は、マルチパスの再構築を要求するセンスをサーバ１００へと通知する。Ｓ１１３の処理を終えると、図１４及び図１５に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。なお、マルチパスの再構築時に、論理ボリューム管理部２１３は、更新後の推奨パス情報２１１Ｄに基づく推奨パスの情報をサーバ１００へ提供する。
【０１０６】
以上、ストレージ制御装置２００が実行する処理の流れについて説明した。
以上説明したように、ストレージ制御装置２００は、新たなチャンクにＲＬＵ領域を割り当てる際、セグメント数が推奨パス数閾値より少なくなるようにＴＰＶにおけるチャンクの配置を変更する機能を有する。この機能により、サーバ１００が管理可能なセグメント数の範囲内に収まるようにＴＰＶのチャンク配置が設定される。そのため、サーバ１００の管理対象から漏れる推奨パスの数が低減される。その結果、推奨パス以外のアクセスパスを通じてＲＬＵ領域へとアクセスする機会が減少することにより、クロスアクセスの発生によるアクセス性能の低下を抑制することが可能になる。
【０１０７】
以上、第２実施形態について説明した。
以上、添付図面を参照しながら好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本発明の技術的範囲に属することは言うまでもない。
【０１０８】
＜３．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、
前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、
を有し、
前記制御部は、前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
ストレージ制御装置。
【０１０９】
（付記２）
前記制御部は、前記第２記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第２記憶領域における前記単位記憶領域の配置を変更する
付記１に記載のストレージ制御装置。
【０１１０】
（付記３）
前記制御部は、複数の前記第１記憶領域について、前記第１記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第２記憶領域に割り当てる前記単位記憶領域を設定する
付記１又は２に記載のストレージ制御装置。
【０１１１】
（付記４）
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータの前記制御部が、
前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
制御方法。
【０１１２】
（付記５）
前記制御部が、前記第２記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第２記憶領域における前記単位記憶領域の配置を変更する
付記４に記載の制御方法。
【０１１３】
（付記６）
前記制御部が、複数の前記第１記憶領域について、前記第１記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第２記憶領域に割り当てる前記単位記憶領域を設定する
付記４又は５に記載の制御方法。
【０１１４】
（付記７）
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータに、
前記制御部が前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
処理を実行させる、プログラム。
【０１１５】
（付記８）
１つ又は複数の記録媒体に割り当てられた複数の第１記憶領域にそれぞれ対応付けられ、対応する前記第１記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する１つ又は複数の前記第１記憶領域内で確保された単位記憶領域が割り当てられる第２記憶領域が配置される複数の記憶部と、を有するコンピュータに、
前記制御部が前記第２記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第２記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
処理を実行させるプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
【符号の説明】
【０１１６】
１０  サーバ
２０  ストレージ制御装置
２１、２２  制御部
２３  記憶部
２３Ａ  第２記憶領域
２３Ｂ  ストレージプール
３０  ストレージ装置
Ｃｈ１、Ｃｈ２、ＣｈＮ  単位記憶領域
Ｒｄ１、Ｒｄ２、Ｒｄ３  第１記憶領域
【図１】
2015114808.tif 000003
【図２】
2015114808.tif 000004
【図３】
2015114808.tif 000005
【図４】
2015114808.tif 000006
【図５】
2015114808.tif 000007
【図６】
2015114808.tif 000008
【図７】
2015114808.tif 000009
【図８】
2015114808.tif 000010
【図９】
2015114808.tif 000011
【図１０】
2015114808.tif 000012
【図１１】
2015114808.tif 000013
【図１２】
2015114808.tif 000014
【図１３】
2015114808.tif 000015
【図１４】
2015114808.tif 000016
【図１５】
2015114808.tif 000017