(57)【要約】【課題】データ移動処理時間を短縮する。【解決手段】論理記憶領域２に含まれる各単位領域に対して、アクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される物理記憶領域３〜５のいずれかから、記憶領域が割り当てられる。制御部１ｂは、記憶領域の割り当て元の物理記憶領域を変更すべき単位領域Ｒ１〜Ｒ４の中から、データ移動の候補を順次選択し、選択された単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理を実行する。この移動制御処理は、単位領域Ｒ３を選択したとき、単位領域Ｒ３のデータＤ３の移動先となる物理記憶領域３を分割した分割領域３ａ，３ｂのそれぞれにおいて、他の単位領域についてのデータ移動が実行中かを判定し、判定結果に基づいて、単位領域Ｒ３についてのデータ移動の指示処理を制御する処理を含む。【選択図】図１
2019125175.tif 000002
【特許請求の範囲】
【請求項１】
アクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される複数の物理記憶領域の構成を示す構成情報を記憶する記憶部と、
前記構成情報に基づき、論理記憶領域に含まれる複数の単位領域のそれぞれに対して、前記複数の物理記憶領域のいずれかから記憶領域が割り当てられた状態において、前記複数の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されたとき、前記複数の第１単位領域の中からデータ移動の候補を順次選択し、前記候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理を実行する制御部と、
を有するデータ処理装置であって、
前記移動制御処理は、
前記複数の第１単位領域の中から前記候補として第２単位領域を選択したとき、前記第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定し、
前記判定の結果に基づいて、前記第２単位領域についてのデータ移動の指示処理を制御する、
処理を含むデータ処理装置。
【請求項２】
前記指示処理の制御では、前記複数の分割領域の中に、移動指示済みの単位領域についてのデータ移動が実行されていない一の分割領域が存在した場合、前記第２単位領域のデータを前記一の分割領域に移動させるように指示する、
請求項１記載のデータ処理装置。
【請求項３】
前記指示処理の制御では、前記複数の分割領域のすべてにおいて、移動指示済みの単位領域についてのデータ移動が実行中であった場合、前記第２単位領域についてのデータ移動を指示待ち状態とし、前記複数の第１単位領域の中から第３単位領域を前記候補として選択する、
請求項１または２記載のデータ処理装置。
【請求項４】
前記複数の第１単位領域のそれぞれにはデータ移動の実行優先度が設定されており、
前記候補は、前記複数の第１単位領域の中から前記実行優先度の高い順に選択され、
前記移動制御処理は、前記候補として前記第２単位領域を選択したとき、前記第２単位領域における直近のアクセス頻度が所定値未満である場合には、前記複数の第１単位領域の中から、前記第２単位領域と同一の前記実行優先度が設定され、かつデータ移動が指示されていない第４単位領域を特定し、前記第４単位領域の中に、直近のアクセス頻度が前記所定値以上である第５単位領域が存在する場合には、前記第２単位領域よりも先に前記第５単位領域についてのデータ移動を指示する処理をさらに含む、
請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記複数の第１単位領域のそれぞれについてのデータ移動元およびデータ移動先の物理記憶領域は、決定タイミングより前の期間に計測された、前記複数の第１単位領域のそれぞれにおけるアクセス頻度に基づいて決定され、
前記第２単位領域および前記第４単位領域についての前記直近のアクセス頻度は、前記決定タイミングの後の期間において計測されたアクセス頻度である、
請求項４記載のデータ処理装置。
【請求項６】
前記複数の物理記憶領域が複数組存在し、前記論理記憶領域が複数存在し、前記複数の物理記憶領域のそれぞれを用いて、複数の前記論理記憶領域のうちそれぞれ個別の論理記憶領域を用いて前記移動制御処理が実行され、それぞれの前記移動制御処理において前記単位領域のサイズが互いに異なり、
前記複数の第１単位領域のそれぞれにはデータ移動の実行優先度が設定されており、前記候補は、前記複数の第１単位領域の中から前記実行優先度の高い順に選択され、
前記移動制御処理は、前記候補として前記第２単位領域を選択したとき、複数の前記論理記憶領域に含まれる前記第１単位領域の中に、前記第２単位領域と同一の前記実行優先度が設定され、かつ前記第２単位領域より小さいサイズの第６単位領域が存在する場合には、前記第２単位領域よりも先に前記第６単位領域についてのデータ移動を指示する処理をさらに含む、
請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
複数の記憶装置と、
論理記憶領域に含まれる複数の単位領域のそれぞれに対して、前記複数の記憶装置のうちアクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される複数の物理記憶領域のいずれかから、記憶領域が割り当てられた状態において、前記複数の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されたとき、前記複数の第１単位領域の中からデータ移動の候補を順次選択し、前記候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理を実行するデータ処理装置と、
を有するデータ処理システムであって、
前記移動制御処理は、
前記複数の第１単位領域の中から前記候補として第２単位領域を選択したとき、前記第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定し、
前記判定の結果に基づいて、前記第２単位領域についてのデータ移動の指示処理を制御する、
処理を含むデータ処理システム。
【請求項８】
コンピュータに、
論理記憶領域に含まれる複数の単位領域のそれぞれに対して、アクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される複数の物理記憶領域のいずれかから、記憶領域が割り当てられた状態において、前記複数の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されたとき、前記複数の第１単位領域の中からデータ移動の候補を順次選択し、前記候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理、
を実行させるデータ処理プログラムであって、
前記移動制御処理は、
前記複数の第１単位領域の中から前記候補として第２単位領域を選択したとき、前記第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定し、
前記判定の結果に基づいて、前記第２単位領域についてのデータ移動の指示処理を制御する、
処理を含むデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理システムおよびデータ処理プログラムに関する。
【背景技術】
【０００２】
ストレージ装置内の記憶装置をアクセス性能に応じて階層化し、階層間でデータを再配置するストレージ階層制御が知られている。例えば、アクセス頻度の高いデータはアクセス速度の高い記憶装置に配置され、アクセス頻度の低いデータはアクセス速度の低い記憶装置に配置される。このようにデータを配置することで、迅速なアクセス処理を実現できる。
【０００３】
また、ストレージ階層制御技術を用いたシステムの一例として、次のような計算機システムが提案されている。この計算機システムでは、データベース管理システム上のオブジェクト（例えば、テーブル、インデックスなど）のデータの格納先が制御される。各オブジェクトにはその種別に応じて優先度が設定され、優先度の高いオブジェクトのデータが優先的に再配置される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１９９５９６号公報
【特許文献２】国際公開第２０１３／１６４８７８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストレージ階層制御では、例えば、データごとのアクセス頻度に基づいて、階層間で移動させる移動対象のデータが特定される。ここで、移動対象のデータが複数特定された場合、これらのデータの移動処理にかかる全体の時間を短縮することで、各データを早期に適切な階層に配置でき、その結果、各データに対するアクセス性能を向上させることができる。しかし、各データの移動の実行をどのように制御すれば、全体の移動処理時間を短縮できるかという点に課題がある。
【０００６】
１つの側面では、本発明は、データ移動処理時間を短縮することが可能なデータ処理装置、データ処理システムおよびデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、記憶部と制御部とを有する次のようなデータ処理装置が提供される。このデータ処理装置において、記憶部は、アクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される複数の物理記憶領域の構成を示す構成情報を記憶する。制御部は、構成情報に基づき、論理記憶領域に含まれる複数の単位領域のそれぞれに対して、複数の物理記憶領域のいずれかから記憶領域が割り当てられた状態において、複数の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されたとき、複数の第１単位領域の中からデータ移動の候補を順次選択し、候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理を実行する。また、この移動制御処理は、複数の第１単位領域の中から候補として第２単位領域を選択したとき、第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定し、判定の結果に基づいて、第２単位領域についてのデータ移動の指示処理を制御する、処理を含む。
【０００８】
また、１つの案では、複数の記憶装置と、データ処理装置とを有するデータ処理システムが提供される。データ処理装置は、論理記憶領域に含まれる複数の単位領域のそれぞれに対して、複数の記憶装置のうちアクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される複数の物理記憶領域のいずれかから、記憶領域が割り当てられた状態において、複数の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されたとき、複数の第１単位領域の中からデータ移動の候補を順次選択し、候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する移動制御処理を実行する。また、この移動制御処理は、複数の第１単位領域の中から候補として第２単位領域を選択したとき、第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定し、判定の結果に基づいて、第２単位領域についてのデータ移動の指示処理を制御する、処理を含む。
【０００９】
さらに、１つの案として、上記のデータ処理装置と同様の処理をコンピュータに実行させるデータ処理プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、データ移動処理時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るデータ処理装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】階層化された記憶領域の設定例を示す図である。
【図４】サブプールに対するＲＡＩＤグループの設定例を示す図である。
【図５】ＣＭおよび管理サーバが備える処理機能の構成例を示すブロック図である。
【図６】ＣＭに記憶される単位領域管理テーブルのデータ構成例を示す図である。
【図７】ＣＭに記憶されるプール管理テーブルのデータ構成例を示す図である。
【図８】優先度設定用テーブルのデータ構成例を示す図である。
【図９】アクセス頻度の収集処理手順を示すシーケンス図の例である。
【図１０】データの配置先決定処理手順を示すフローチャートの例である。
【図１１】データ移動処理手順を示すフローチャートの例（その１）である。
【図１２】データ移動処理手順を示すフローチャートの例（その２）である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るデータ処理装置の構成例および処理例を示す図である。図１に示すデータ処理装置１は、記憶部１ａと制御部１ｂを有する。なお、記憶部１ａは、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）など、データ処理装置１が備える記憶装置の記憶領域によって実現される。制御部１ｂは、例えば、データ処理装置１が備えるプロセッサとして実現される。
【００１３】
このデータ処理装置１は、論理記憶領域２に含まれる複数の単位領域のそれぞれに対して、物理記憶領域を割り当てる。また、各単位領域への割り当て元となる物理記憶領域は複数用意される。本実施の形態では、例として３つの物理記憶領域３〜５が用意される。これらの物理記憶領域３〜５は、アクセス性能が互いに異なる記憶装置を用いてそれぞれ実現される。そして、論理記憶領域２の各単位領域に対しては、物理記憶領域３〜５のいずれかから記憶領域が割り当てられる。ただし、論理記憶領域２の単位領域のうち、少なくともデータが格納されている単位領域に対してのみ、物理記憶領域３〜５のいずれかから記憶領域が割り当てられればよい。
【００１４】
記憶部１ａには、物理記憶領域３〜５の構成を示す構成情報１ａ１が記憶される。例えば、構成情報１ａ１には、物理記憶領域３〜５の容量や、物理記憶領域３〜５を実現する記憶装置に関する情報が含まれる。
【００１５】
制御部１ｂは、上記のように、論理記憶領域２の複数の単位領域に対して、物理記憶領域３〜５のいずれかから記憶領域が割り当てられている状態において、次のような処理を実行する。論理記憶領域２の単位領域の中から、記憶領域の割り当て元の物理記憶領域を変更すべき複数の第１単位領域が特定されると、制御部１ｂは、これらの複数の第１単位領域の中からデータ移動の候補を順次選択する。そして、制御部１ｂは、候補として選択された第１単位領域のデータを物理記憶領域間で移動させるように指示する。このように、データ移動の候補を順次選択し、選択された候補のデータの移動指示を行う処理を、ここでは「移動制御処理」と記載する。
【００１６】
図１では例として、第１単位領域として単位領域Ｒ１〜Ｒ４が特定されたとする。制御部１ｂは、例えば、単位領域Ｒ１，Ｒ２，Ｒ３，Ｒ４の順にデータ移動の候補を選択し、選択された単位領域についての移動制御処理を実行する。この移動制御処理では、詳細には、次のような処理が実行される。
【００１７】
制御部１ｂは、第１単位領域の中から候補として１つの単位領域（第２単位領域とする）を選択したとき、第２単位領域のデータの移動先となる物理記憶領域を分割した複数の分割領域のそれぞれにおいて、移動指示済みの単位領域についてのデータ移動が実行中であるかを判定する。
【００１８】
例えば、データ移動の候補として単位領域Ｒ３が選択されたとする。また、単位領域Ｒ３については、記憶領域の割り当て元を物理記憶領域５から物理記憶領域３へ変更するように要求されており、単位領域Ｒ３のデータＤ３の移動先は物理記憶領域３であるとする。さらに、物理記憶領域３は、２つの分割領域３ａ，３ｂに分割されているとする。なお、分割領域３ａ，３ｂは、それぞれ個別の記憶装置によって実現される。例えば、分割領域３ａ，３ｂは、個別のＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループとして実現される。
【００１９】
この場合、制御部１ｂは、分割領域３ａ，３ｂのそれぞれにおいて、移動指示済みの単位領域（このケースでは単位領域Ｒ１，Ｒ２のいずれか）についてのデータ移動が実行中であるかを判定する。そして、制御部１ｂは、その判定結果に基づいて、単位領域Ｒ３についてのデータ移動の指示処理を制御する。これにより、データ移動処理時間を短縮できる。
【００２０】
例えば、分割領域３ｂにおいて、単位領域Ｒ２のデータＤ２の移動が実行中であったとする。図１では例として、データＤ２を分割領域３ｂから物理記憶領域４へ移動する処理が実行中であったとする。この場合に、単位領域Ｒ３のデータＤ３を分割領域３ｂへ移動させようとすると、データＤ２の移動が完了するまでデータＤ３は移動待ちになってしまう。そこで、制御部１ｂは例えば、データＤ３を、データ移動が実行中でない分割領域３ａを移動させるように指示する。これにより、データＤ３の移動待ちが発生することなく、データＤ２の移動とデータＤ３の移動とが並列に実行される。その結果、データ移動にかかる全体の時間を短縮できる。
【００２１】
また、図示しないが、例えば、分割領域３ａ，３ｂのそれぞれにおいて、単位領域Ｒ３以外の単位領域についてのデータ移動が実行中であったとする。この場合、制御部１ｂは例えば、単位領域Ｒ３についてのデータ移動を指示待ち状態とし、データ移動の候補として次の単位領域Ｒ４を選択して、単位領域Ｒ４についての移動制御処理を実行する。これにより、単位領域Ｒ３のデータＤ３の移動待ちによって新たな単位領域Ｒ４のデータ移動が実行されなくなる無駄な時間の発生確率を低減でき、データ移動効率を向上させることができる。その結果、データ移動にかかる全体の時間を短縮できる。
【００２２】
このように、分割領域３ａ，３ｂのそれぞれにおいてデータ移動が実行中であるかを判定し、その判定結果に基づいて単位領域Ｒ３についてのデータ移動の指示処理を制御することで、データ移動処理時間を短縮できる。
【００２３】
〔第２の実施の形態〕
次に、第２の実施の形態に係るストレージシステムについて説明する。
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００、ホストサーバ２００、管理サーバ３００および管理端末４００を含む。ストレージ装置１００、ホストサーバ２００、管理サーバ３００および管理端末４００は、ネットワーク５００を介して相互に接続されている。ネットワーク５００は、例えば、ＬＡＮ（Local Area Network）でもよいし、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークでもよい。また、ストレージ装置１００とホストサーバ２００との間は、ＳＡＮ（Storage Area Network）を通じて通信が行われてもよい。
【００２４】
ストレージ装置１００は、ＣＭ（Controller Module）１１０とドライブ部１２０を有する。ＣＭ１１０は、ホストサーバ２００からの要求に応じて、ドライブ部１２０に搭載された記憶装置にアクセスするストレージ制御装置である。例えば、ＣＭ１１０は、ドライブ部１２０に搭載された記憶装置の記憶領域を用いた論理ボリュームを設定し、ホストサーバ２００から論理ボリュームに対するアクセス要求を受け付ける。なお、ＣＭ１１０は、図１に示したデータ処理装置１の一例である。
【００２５】
ドライブ部１２０には、ホストサーバ２００からのアクセス対象となる記憶装置１２１ａ，１２１ｂ，１２１ｃ，・・・が搭載されている。ドライブ部１２０には、アクセス性能の異なる複数種類の記憶装置が搭載されている。例えば、ドライブ部１２０には、アクセス性能の低い順に、ニアラインＨＤＤ、オンラインＨＤＤ、ＳＳＤ（Solid State Drive）が搭載されている。
【００２６】
ホストサーバ２００は、例えば、種々の業務処理を実行するコンピュータである。ホストサーバ２００は、論理ボリュームに対するアクセス要求をＣＭ１１０に送信することで、論理ボリュームにアクセスする。
【００２７】
管理サーバ３００は、ストレージ装置１００の運用を管理するサーバコンピュータである。例えば、管理サーバ３００は、ストレージ装置１００における階層制御を行う。具体的には、管理サーバ３００は、論理ボリューム上のデータのアクセス頻度をＣＭ１１０から定期的に収集し、論理ボリューム上のデータがそのアクセス頻度に応じた適切なアクセス性能を有する記憶装置に配置されるように制御する。
【００２８】
管理端末４００は、ストレージシステムの管理者が利用する端末装置である。例えば、管理端末４００は、管理者の操作により、論理ボリュームの設定や、記憶領域の階層化に関する設定などを実行する。
【００２９】
次に、図２を用いて、ＣＭ１１０のハードウェア構成例について説明する。図２に示すように、ＣＭ１１０は、プロセッサ１１１、ＲＡＭ１１２、ＳＳＤ１１３、ネットワークインタフェース（Ｉ／Ｆ）１１４およびドライブインタフェース（Ｉ／Ｆ）１１５を有する。
【００３０】
プロセッサ１１１は、ＣＭ１１０全体を統括的に制御する。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３１】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＲＡＭ１１２には、プロセッサ１１１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１１２には、プロセッサ１１１による処理に必要な各種データが格納される。
【００３２】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【００３３】
ネットワークインタフェース１１４は、ネットワーク５００を介してホストサーバ２００や管理サーバ３００と通信するための通信インタフェースである。なお、例えば、ホストサーバ２００とＳＡＮなどを介して接続する通信インタフェースと、管理サーバ３００とＬＡＮなどを介して接続する通信インタフェースとが、個別に設けられていてもよい。
【００３４】
ドライブインタフェース１１５は、ドライブ部１２０に搭載された記憶装置１２１ａ，１２１ｂ，１２１ｃ，・・・と通信するための通信インタフェースである。
なお、図示しないが、ホストサーバ２００、管理サーバ３００および管理端末４００も、プロセッサや主記憶装置、補助記憶装置などを有するコンピュータとして実現可能である。
【００３５】
次に、ストレージシステムにおける階層制御について説明する。
図３は、階層化された記憶領域の設定例を示す図である。前述のように、ストレージ装置１００には、ホストサーバ２００からのアクセス対象となる論理ボリュームが設定される。また、ストレージ装置１００には、論理ボリュームに対応する物理記憶領域の割り当て元となるＴｉｅｒプールが設定される。Ｔｉｅｒプールは、ドライブ部１２０に搭載された１以上の記憶装置によって実現される記憶領域である。そして、論理ボリュームを所定サイズごとに分割した単位領域ごとに、Ｔｉｅｒプールから記憶領域が割り当てられる。ただし、本実施の形態では、論理ボリューム上の単位領域のうち、ホストサーバ２００からの要求に応じてデータが格納されている単位領域に対してのみ、Ｔｉｅｒプールから記憶領域が割り当てられる。
【００３６】
Ｔｉｅｒプールは、互いにアクセス速度の異なる記憶装置によって実現される複数のサブプールに分割される。これにより、Ｔｉｅｒプールは、アクセス速度の異なる複数の記憶領域に階層化される。そして、単位領域には、ホストサーバ２００からのアクセス頻度に応じて、いずれかのサブプールから記憶領域が割り当てられる。すなわち、アクセス頻度が高い単位領域には、アクセス速度の高い記憶装置によって実現されるサブプールが割り当てられ、アクセス頻度が低い単位領域には、アクセス速度の低い記憶装置によって実現されるサブプールが割り当てられる。
【００３７】
これにより、ストレージ装置１００は、アクセス頻度が高いデータほど、高速でアクセスできるようになる。したがって、ホストサーバ２００からのアクセス頻度が高いデータほど、ホストサーバ２００からのアクセス要求に対する応答速度が高くなる。その結果、全体としてホストサーバ２００からのアクセス要求に対する応答性能が向上する。
【００３８】
以下の説明では、アクセス速度が互いに異なる記憶装置として、アクセス速度の低い順にニアラインＨＤＤ、オンラインＨＤＤ、ＳＳＤが用いられるものとする。なお、ニアラインＨＤＤによって実現されるサブプールの階層を「低階層」、オンラインＨＤＤによって実現されるサブプールの階層を「中間階層」、ＳＳＤによって実現されるサブプールの階層を「高階層」と記載する場合がある。
【００３９】
図３では例として、論理ボリュームＬＶ１が設定され、論理ボリュームＬＶ１に対応する物理記憶領域の割り当て元として、ＴｉｅｒプールＴＰ１が設定されている。また、ＴｉｅｒプールＴＰ１には、３階層のサブプールＳＰ１−Ｌ，ＳＰ１−Ｍ，ＳＰ１−Ｈが設定されている。サブプールＳＰ１−Ｌは、１台以上のニアラインＨＤＤによって実現され、サブプールＳＰ１−Ｍは、１台以上のオンラインＨＤＤによって実現され、サブプールＳＰ１−Ｈは、１台以上のＳＳＤによって実現される。したがって、サブプールＳＰ１−Ｈ，ＳＰ１−Ｍ，ＳＰ１−Ｌの順でアクセス速度が高い。
【００４０】
さらに、ストレージ装置１００には、単位領域のサイズが異なる複数のＴｉｅｒプールを設定可能になっている。そして、各論理ボリュームに対して、いずれか１つのＴｉｅｒプールから記憶領域を割り当てることができるようになっている。図３の例では、ＴｉｅｒプールＴＰ１に加えて、ＴｉｅｒプールＴＰ２，ＴＰ３が設定されている。また、論理ボリュームＬＶ１に加えて、論理ボリュームＬＶ２〜４が設定されている。そして、論理ボリュームＬＶ２には、ＴｉｅｒプールＴＰ２から記憶領域が割り当てられ、論理ボリュームＬＶ３，ＬＶ４には、ＴｉｅｒプールＴＰ３から記憶領域が割り当てられる。
【００４１】
また、ＴｉｅｒプールＴＰ２，ＴＰ３も、複数のサブプールに分割される。図３の例では、ＴｉｅｒプールＴＰ２には、１台以上のニアラインＨＤＤによって実現されるサブプールＳＰ２−Ｌと、１台以上のＳＳＤによって実現されるＳＰ２−Ｈが設定されている。また、ＴｉｅｒプールＴＰ３には、１台以上のニアラインＨＤＤによって実現されるサブプールＳＰ３−Ｌと、１台以上のオンラインＨＤＤによって実現されるサブプールＳＰ３−Ｍと、１台以上のＳＳＤによって実点されるサブプールＳＰ３−Ｈが設定されている。
【００４２】
ここで、データ移動の管理単位となる単位領域のサイズを小さくして、より小さなサイズに分割したデータごとに配置先の階層を決定するほど、アクセス頻度に応じた適切な階層にデータが配置されやすくなる。その反面、管理対象となる単位領域の数が大きくなるので、管理効率が低下する。したがって、単位領域のサイズは、論理ボリュームに格納するデータの性質などに応じて、ユーザによって任意に設定されればよい。
【００４３】
また、他の例として、Ｔｉｅｒプールの容量が、そのＴｉｅｒプールから割り当て可能な単位領域の最大数によって決定されてもよい。この場合、単位領域のサイズを大きくすることで、Ｔｉｅｒプールの容量を拡張することができる。この方法によれば、単位領域のサイズに関係なく、Ｔｉｅｒプールごとに割り当て先として管理すべき単位領域の最大数が同一となる。このため、単位領域のサイズに関係なく、Ｔｉｅｒプールの管理方法を共通化でき、管理を効率化できる。
【００４４】
図４は、サブプールに対するＲＡＩＤグループの設定例を示す図である。サブプールには、１以上のＲＡＩＤグループが設定される。ＲＡＩＤグループは、データが複数の記憶装置に冗長化されるように書き込みが制御される論理記憶領域である。サブプールに対してＲＡＩＤグループが設定されることで、そのサブプールの物理記憶領域が設定される。換言すると、サブプールの記憶領域は、ＲＡＩＤグループに組み込まれた、ＲＡＩＤによって制御される複数の記憶装置によって実現される。
【００４５】
図４の例では、サブプールＳＰ１−ＬにはＲＡＩＤグループＲＧ１，ＲＧ２が設定され、サブプールＳＰ１−ＭにはＲＡＩＤグループＲＧ３，ＲＧ４が設定され、サブプールＳＰ１−ＨにはＲＡＩＤグループＲＧ５，ＲＧ６が設定されている。また、サブプールＳＰ２−ＬにはＲＡＩＤグループＲＧ１１，ＲＧ１２が設定され、サブプールＳＰ２−ＨにはＲＡＩＤグループＲＧ１３，ＲＧ１４が設定されている。さらに、サブプールＳＰ３−ＬにはＲＡＩＤグループＲＧ２１〜ＲＧ２３が設定され、サブプールＳＰ３−ＭにはＲＡＩＤグループＲＧ２４〜ＲＧ２６が設定され、サブプールＳＰ３−ＨにはＲＡＩＤグループＲＧ２７〜ＲＧ２９が設定されている。
【００４６】
次に、ストレージ装置１００のＣＭ１１０および管理サーバ３００で実行される処理の詳細について説明する。
図５は、ＣＭおよび管理サーバが備える処理機能の構成例を示すブロック図である。
【００４７】
ＣＭ１１０は、記憶部１３０、アクセス制御部１４１、アクセス頻度送信部１４２および移動処理部１４３を有する。なお、記憶部１３０は、ＲＡＭ１１２などのＣＭ１１０が備える記憶装置の記憶領域として実現される。また、アクセス制御部１４１、アクセス頻度送信部１４２および移動処理部１４３の処理は、例えば、プロセッサ１１１が所定のプログラムを実行することで実現される。
【００４８】
記憶部１３０には、論理ボリューム管理テーブル１３１、単位領域管理テーブル１３２、プール管理テーブル１３３およびＲＡＩＤグループ管理テーブル１３４が記憶される。
論理ボリューム管理テーブル１３１には、論理ボリュームに関する設定情報が登録される。例えば、論理ボリューム管理テーブル１３１には、論理ボリュームごとに、ボリューム名、容量、記憶領域が割り当てられるＴｉｅｒプールを示すプール名などが登録される。
【００４９】
単位領域管理テーブル１３２には、論理ボリュームに含まれる各単位領域に関する情報が登録される。例えば、単位領域管理テーブル１３２には、単位領域ごとに、Ｔｉｅｒプールから割り当てられた記憶領域を示すサブプール名、ＲＡＩＤグループ名およびオフセットや、単位期間におけるホストサーバ２００からのアクセス回数などが登録される。
【００５０】
プール管理テーブル１３３には、Ｔｉｅｒプールに関する情報が登録される。例えば、プール管理テーブル１３３には、Ｔｉｅｒプールごとに、単位領域のサイズ、設定されたサブプールを示す情報、サブプールに設定されたＲＡＩＤグループを示す情報、空き領域を示す情報などが登録される。
【００５１】
ＲＡＩＤグループ管理テーブル１３４には、設定されたＲＡＩＤグループに関する情報が登録される。例えば、ＲＡＩＤグループ管理テーブル１３４には、ＲＡＩＤグループごとに、ＲＡＩＤレベル、使用される記憶装置を示す情報などが登録される。
【００５２】
アクセス制御部１４１は、ホストサーバ２００からの論理ボリュームに対するアクセス要求に応じたアクセス制御を実行する。例えば、アクセス制御部１４１は、論理ボリューム内のいずれかの単位領域に格納されたデータの読み出し要求を受信すると、単位領域管理テーブル１３２を参照して、そのデータが格納されているＲＡＩＤボリューム（ＲＡＩＤグループに対応する論理記憶領域）上の記憶領域を特定する。アクセス制御部１４１はさらに、ＲＡＩＤグループ管理テーブル１３４を参照して、特定された記憶領域に対応する物理記憶領域（ドライブ部１２０内の記憶装置の記憶領域）を特定し、特定された物理記憶領域からデータを読み出してホストサーバ２００に送信する。
【００５３】
また、アクセス制御部１４１は、論理ボリューム内のいずれかの単位領域に対する新規データの書き込み要求を受信すると、論理ボリューム管理テーブル１３１を参照して、この論理ボリュームに対応付けられたＴｉｅｒプールを特定する。アクセス制御部１４１は、プール管理テーブル１３３を参照して、特定されたＴｉｅｒプールから空き領域を特定し、特定された空き領域にデータを書き込む。また、アクセス制御部１４１は、単位領域管理テーブル１３２におけるこの単位領域に対応するレコードに、書き込み先の記憶領域を示す情報を登録する。なお、書き込み先とする空き領域は、例えば、特定されたＴｉｅｒプール内のサブプールのうち、あらかじめ決められたサブプール（例えば高階層のサブプール）から特定される。
【００５４】
アクセス頻度送信部１４２は、一定時間間隔で単位領域ごとのアクセス頻度を収集し、収集されたアクセス頻度をアクセス頻度情報として管理サーバ３００に送信する。アクセス頻度情報は、例えば、各単位領域におけるアクセス頻度の値がリスト化された情報として送信される。
【００５５】
移動処理部１４３は、管理サーバ３００から移動指示情報を受信し、移動指示情報に基づいて、階層間（サブプール間）でのデータ移動（再配置）を実行する。移動指示情報は、例えば、移動対象の単位領域とその移動先階層とを示す情報がリスト化された情報として受信される。なお、後述するように、移動指示情報には、単位領域ごとに優先度が設定されている。
【００５６】
一方、管理サーバ３００は、記憶部３１０、アクセス頻度収集部３２１および配置先決定部３２２を有する。なお、記憶部３１０は、管理サーバ３００が備える図示しない記憶装置の記憶領域として実現される。また、アクセス頻度収集部３２１および配置先決定部３２２の処理は、例えば、管理サーバ３００が備える図示しないプロセッサが所定のプログラムを実行することで実現される。
【００５７】
記憶部３１０には、単位領域管理テーブル３１１、プール管理テーブル３１２および優先度設定用テーブル３１３が記憶される。
単位領域管理テーブル３１１には、論理ボリュームに含まれる各単位領域に関する情報が登録される。例えば、単位領域管理テーブル３１１には、単位領域ごとに、Ｔｉｅｒプールから割り当てられた記憶領域を示すサブプール名や、単位期間におけるホストサーバ２００からのアクセス回数などが登録される。なお、ＣＭ１１０側の単位領域管理テーブル１３２とは異なり、単位領域管理テーブル３１１では、ＲＡＩＤグループ単位での記憶領域の位置は管理されない。
【００５８】
プール管理テーブル３１２には、Ｔｉｅｒプールに関する情報が登録される。例えば、プール管理テーブル３１２には、Ｔｉｅｒプールごとに、単位領域のサイズ、設定されたサブプールを示す情報、空き領域を示す情報などが登録される。ただし、ＣＭ１１０側のプール管理テーブル１３３とは異なり、プール管理テーブル３１２では、ＲＡＩＤグループ単位での空き領域の管理は行われない。
【００５９】
優先度設定用テーブル３１３には、移動対象となった単位領域に対して優先度を設定するための条件が設定されている。優先度設定用テーブル３１３では、基本的に、移動先の階層とアクセス頻度との組み合わせに応じて優先度が設定されている。
【００６０】
アクセス頻度収集部３２１は、単位領域ごとのアクセス頻度を一定時間間隔でＣＭ１１０から収集する。収集された情報は単位領域管理テーブル３１１に記録される。
配置先決定部３２２は、収集されたアクセス頻度に基づいて、単位領域のデータを配置すべき階層（サブプール）を決定する。そして、配置先決定部３２２は、決定された配置先が現在の配置先と異なる単位領域を移動対象として抽出し、移動対象の単位領域のデータを階層間で移動させるように指示する移動指示情報を、ＣＭ１１０に送信する。
【００６１】
配置先決定部３２２は、移動対象とされた複数の単位領域についての移動を、まとめて指示する。このとき、配置先決定部３２２は、複数の単位領域のそれぞれに対して、優先度設定用テーブル３１３に基づいて優先度を設定する。送信される移動指示情報には、複数の単位領域のそれぞれに対して、移動先階層を示す情報と優先度とが設定されている。
【００６２】
図６は、ＣＭに記憶される単位領域管理テーブルのデータ構成例を示す図である。ＣＭ１１０に記憶される単位領域管理テーブル１３２は、単位領域ごとのレコードを含む。各レコードは、単位領域名、論理ボリューム名、ＬＢＡ（Logical Block Address）、サブプール名、ＲＡＩＤグループ名、オフセット、アクセス頻度の各項目を含む。
【００６３】
単位領域名は、単位領域の識別情報を示す。論理ボリューム名は、単位領域が属する論理ボリュームの識別情報を示す。ＬＢＡは、その論理ボリュームにおける単位領域の先頭の論理アドレスを示す。サブプール名は、単位領域に割り当てられたサブプールの識別情報を示す。ＲＡＩＤグループ名は、単位領域に割り当てられた記憶領域が属するＲＡＩＤグループの識別情報を示す。オフセットは、単位領域に割り当てられた記憶領域についての、ＲＡＩＤグループに対応するＲＡＩＤボリューム上の位置を示す。
【００６４】
アクセス頻度は、一定時間においてホストサーバ２００から単位領域に対してアクセスされた回数を示す。
本実施の形態では、一例として、管理サーバ３００のアクセス頻度収集部３２１は、アクセス頻度を収集する収集期間を一定の単位期間に分割し、単位期間ごとにアクセス頻度をＣＭ１１０から収集するものとする。単位領域管理テーブル１３２のアクセス頻度の項目には、単位期間におけるアクセス回数が登録される。具体的には、アクセス頻度の値は、ホストサーバ２００から単位領域に対する書き込みおよび単位領域からの読み出しが要求されるたびに、アクセス制御部１４１によってカウントアップされる。そして、単位期間に相当する一定時間が経過して、アクセス頻度収集部３２１からアクセス頻度情報の送信が要求されると、アクセス頻度送信部１４２は、アクセス頻度の項目の値をアクセス頻度情報に含めてアクセス頻度収集部３２１に送信する。これとともに、アクセス頻度送信部１４２は、アクセス頻度の項目に登録された値を０にリセットする。
【００６５】
このような処理により、ＣＭ１１０に記憶される単位領域管理テーブル１３２では、単位期間が終了するタイミングにおいて、アクセス頻度の項目にその単位期間におけるアクセス頻度が保持されるようになる。なお、上記処理に鑑み、本実施の形態では、「アクセス頻度」は「単位期間におけるアクセス回数」として定義されるものとする。
【００６６】
一方、図示しないが、管理サーバ３００に記憶される単位領域管理テーブル３１１も、単位領域ごとのレコードを含む。ただし、各レコードは、単位領域名、論理ボリューム名、ＬＢＡ、サブプール名、アクセス頻度の各項目を含むが、ＲＡＩＤグループ名およびオフセットの各項目を含まない。単位領域名、論理ボリューム名、ＬＢＡ、サブプール名の各項目には、ＣＭ１１０の単位領域管理テーブル１３２における対応する項目と同じ値が登録される。
【００６７】
また、アクセス頻度収集部３２１は、ＣＭ１１０からアクセス頻度を収集したとき、収集されたアクセス頻度の値が現在アクセス頻度の項目に登録されている値より大きい場合には、収集された値によって登録されている値を更新する。これにより、アクセス頻度の項目には、収集期間が終了したとき、その収集期間における単位期間ごとのアクセス頻度のうちの最大値が登録されるようになる。
【００６８】
図７は、ＣＭに記憶されるプール管理テーブルのデータ構成例を示す図である。ＣＭ１１０に記憶されるプール管理テーブル１３３は、設定されたＴｉｅｒプールごとのレコードを含む。各レコードは、単位領域サイズの項目を含むとともに、低階層、中間階層、高階層のそれぞれについてサブプール名、ディスク種別、ＲＡＩＤグループ名の各項目を含む。
【００６９】
単位領域サイズは、Ｔｉｅｒプールにおける単位領域のサイズを示す。サブプール名は、Ｔｉｅｒプールに設定されたサブプールの識別情報を示す。ディスク種別は、サブプールを実現する記憶装置の種別を示す。ＲＡＩＤグループ名は、サブプールに設定されたＲＡＩＤグループの識別情報を示す。
【００７０】
また、図示しないが、管理サーバ３００に記憶されるプール管理テーブル３１２も、設定されたＴｉｅｒプールごとのレコードを含む。ただし、各レコードは、単位領域サイズ、サブプール名の各項目を含むが、少なくともＲＡＩＤグループ名の項目を含まない。すなわち、管理サーバ３００は、Ｔｉｅｒプールの構成をサブプール単位（すなわち、階層単位）では認識するものの、ＲＡＩＤグループ単位では認識しない。なお、単位領域サイズ、サブプールの各項目には、ＣＭ１１０のプール管理テーブル１３３における対応する項目と同じ値が登録される。
【００７１】
なお、図示しないが、実際には、プール管理テーブル１３３，３１２にはさらに、各サブプールのサイズを示す情報や、各サブプールにおける空き領域を管理するための情報が保持される。
【００７２】
次に、優先度に基づく階層間のデータ移動制御について説明する。
前述のように、管理サーバ３００の配置先決定部３２２は、移動対象の単位領域を抽出すると、ＣＭ１１０に対して、抽出された複数の単位領域についてまとめて移動を指示する。このとき、配置先決定部３２２は、各単位領域に対して優先度を設定する。ＣＭ１１０の移動処理部１４３は、基本的に、移動が指示された複数の単位領域について、優先度の高い順に階層間のデータ移動を実行する。
【００７３】
優先度の決定方法としては、例えば、どの階層からどの階層へ移動するかを示す「移動経路条件」に基づいて決定する方法がある。例えば、中間階層から高階層への移動が指示された単位領域は、低階層から中間階層への移動が指示された単位領域より、アクセス頻度が高い。このため、中間階層から高階層への移動は、低階層から中間階層への移動より緊急性が高い。したがって、中間階層から高階層への移動に対してより高い優先度が設定される。また、例えば、２つの階層のうち上位階層への移動が指示された単位領域は、下位階層への移動が指示された単位領域より、アクセス頻度が高い。このため、上位階層への移動は、下位階層への移動より緊急性が高い。したがって、上位階層への移動に対してより高い優先度が設定される。
【００７４】
また、移動経路条件が同一の単位領域については、さらに、アクセス頻度の高さを示す「アクセス頻度条件」に基づいて優先度が決定されてもよい。すなわち、アクセス頻度が高いほど移動の緊急性が高いので、アクセス頻度が高い単位領域に対してより高い優先度が設定される。
【００７５】
しかしながら、実際には、上記の移動経路条件やアクセス頻度条件を用いて優先度を設定するだけでは、実際の状況に応じた最適な階層制御を実現できるとは限らない。例えば、上記各条件以外に、データ移動の緊急性に影響を与える条件がある可能性がある。また、データ移動が実行されるＣＭ１１０側の処理状況や設定環境によっては、データ移動の緊急性に違いが生じることもあり得る。さらに、同じ階層に属する物理記憶領域の中でも、データを配置する位置によってはＣＭ１１０の処理効率が低下することも考えられる。
【００７６】
このような問題に鑑み、本実施の形態では、管理サーバ３００側で、上記各条件に加えてさらに別の条件を用いた下記のような優先度決定制御が実行される。さらに、ＣＭ１１０側でも、下記のようなデータ移動制御（１）〜（４）が実行される。
【００７７】
＜管理サーバでの優先度決定制御＞
ある階層から上位階層へデータを移動させる際に、上位階層に空き領域がない場合には、ＣＭ１１０の移動処理部１４３は、まず上位階層のデータを下位階層へ移動させた後、上位階層へのデータ移動を実行する必要がある。以下、このように上位階層の空き領域を確保するために下位階層へデータを移動することを、「領域確保用の移動」と記載する。
【００７８】
上位階層へデータを移動させる際に、下位階層への領域確保用の移動が必要になる場合には、上位階層へのデータ移動より下位階層への領域確保用の移動の方が、緊急性が高い。そこで、管理サーバ３００の配置先決定部３２２は、前述の移動経路条件およびアクセス頻度条件に加えて、領域確保用の移動か否かという条件を用いて、優先度を決定する。
【００７９】
図８は、優先度設定用テーブルのデータ構成例を示す図である。本実施の形態では、配置先決定部３２２は、優先度設定用テーブル３１３に基づいて優先度を決定する。なお、図８では、Ｔｉｅｒプールが３階層である場合の例を示している。
【００８０】
優先度設定用テーブル３１３では、移動内容に応じて大まかな移動種別Ｃ１〜Ｃ７が設定され、移動種別Ｃ１〜Ｃ７のそれぞれに対して異なる優先度が対応付けられている。これらのうち、移動種別Ｃ３，Ｃ５〜Ｃ７は、移動経路条件によって区分された移動種別である。中間階層から高階層への移動を示す移動種別Ｃ３、低階層から中間階層への移動を示す移動種別Ｃ５、高階層から中間階層への移動を示す移動種別Ｃ６、中間階層から低階層への移動を示す移動種別Ｃ７の順に、高い優先度が設定されている。
【００８１】
また、これらの移動種別Ｃ３，Ｃ５〜Ｃ７のそれぞれについては、さらにアクセス頻度条件に応じて優先度が細分化されている。すなわち、移動種別Ｃ３，Ｃ５〜Ｃ７のそれぞれについて、所定段階数のアクセス頻度範囲ごとに異なる優先度が設定されている。アクセス頻度が高いほど、高い優先度が設定される。
【００８２】
さらに、移動種別Ｃ１，Ｃ２，Ｃ４は、領域確保用の移動を示す。移動種別Ｃ１は、中間階層から低階層への移動のうち、高階層の領域確保用の移動を示す。高階層の空き領域確保のために高階層から中間階層へデータ移動する際、中間階層に空き領域がない場合には、先に中間階層のデータを低階層に移動させて中間階層に空き領域を確保する必要がある。移動種別Ｃ１は、この場合の低階層へのデータ移動を示す。したがって、このようなデータ移動には、最も高い優先度が設定される。移動種別Ｃ２は、高階層から中間階層への移動のうち、高階層の領域確保用の移動を示す。この移動種別Ｃ２には、移動種別Ｃ１の次に高い優先度が設定される。
【００８３】
移動種別Ｃ４は、中間階層から低階層への移動のうち、中間階層の領域確保用の移動を示す。このデータ移動は、移動種別Ｃ５に対応する、低階層から中間階層へのデータ移動のために実行されるものである。このため、移動種別Ｃ４には、移動種別Ｃ５より高い優先度が設定される。
【００８４】
配置先決定部３２２は、上記のような優先度設定用テーブル３１３を参照することで、領域確保用の移動か否かという条件を加味して、優先度を適切に決定できる。
なお、Ｔｉｅｒプールが２階層である場合には、高階層の領域確保用の移動に対しては、低階層から高階層への移動より高い優先度（最大の優先度を示す値）が設定される。
【００８５】
＜ＣＭでのデータ移動制御（１）＞
図４に例示したように、ある階層のサブプールに対して複数のＲＡＩＤグループが設定される場合がある。これらのＲＡＩＤグループは、それぞれ個別の記憶装置によって実現される。このため、異なるＲＡＩＤグループを移動元または移動先としたデータ移動を並列に実行することで、データ移動の処理効率を向上させ、全体のデータ移動にかかる時間を短縮できる。
【００８６】
そこで、ＣＭ１１０の移動処理部１４３は、あるサブプールへのデータ移動を実行する場合に、そのサブプールに設定されているＲＡＩＤグループの中から、データ移動が実行中であるＲＡＩＤグループ以外のＲＡＩＤグループを、データ移動先として選択する。これにより、データ移動を並列に実行できるようになり、その結果、全体のデータ移動にかかる時間を短縮できる。
【００８７】
＜ＣＭでのデータ移動制御（２）＞
移動処理部１４３は、あるサブプールへの新たなデータ移動を実行しようとしたときに、そのサブプールに設定されているすべてのＲＡＩＤグループにおいてデータ移動が実行中である場合には、実行中のいずれかのデータ移動の完了を待つ必要がある。いずれかのデータ移動が完了するまで、他のすべての新たなデータ移動を実行待ちにしてしまうと、その待ち時間が無駄になり、処理効率が悪い。
【００８８】
そこで、移動処理部１４３は、上記のケースでは、実行しようとした新たなデータ移動については一旦実行待ち状態として、次に優先度の高い新たなデータ移動を実行する。これにより、管理サーバ３００から移動対象として指示された単位領域のデータ移動を、効率よく実行することができる。すなわち、実行待ちによって新たなデータ移動が実行されない無駄な時間が発生する確率を低減でき、その結果、全体のデータ移動にかかる時間を短縮できる。
【００８９】
＜ＣＭでのデータ移動制御（３）＞
上位階層へのデータ移動は、単位領域のアクセス頻度が上昇した場合に実行される。しかし、管理サーバ３００による移動先階層の決定は、その直前におけるアクセス頻度に基づいて行われる。このため、上位階層へ実際にデータを移動する際に、アクセス頻度の状況が変化している可能性がある。
【００９０】
そこで、移動処理部１４３は、上位階層へのデータ移動を実行しようとする際に、同じ優先度が設定された他の単位領域の中に、現在のアクセス頻度が非常に高く、移動の緊急性が高いと判断される単位領域が存在する場合には、その単位領域のデータ移動を優先的に実行する。
【００９１】
例えば、移動処理部１４３は、データ移動を実行しようとしている単位領域についての現在のアクセス頻度が所定値未満である場合、同じ優先度が設定された他の単位領域についてのアクセス頻度を確認する。移動処理部１４３は、他の単位領域の中にアクセス頻度が所定値以上のものがある場合、その単位領域のデータ移動を先に実行する。また、別の処理例としては、移動処理部１４３は、同じ優先度が設定された他の単位領域の中に、現在データ移動を実行しようとしている単位領域より現在のアクセス頻度が高いものがある場合に、その単位領域のデータ移動を先に実行してもよい。
【００９２】
このような処理により、アクセス頻度の変動に応じて、データ移動の実行順を適正化することができる。すなわち、アクセス頻度の高い単位領域に対してアクセス速度の高い記憶領域を早期に割り当てることができ、その結果、ホストサーバ２００からのアクセス要求に対する応答速度を向上させることができる。
【００９３】
＜ＣＭでのデータ移動制御（４）＞
前述のように、本実施の形態では、単位領域のサイズが可変となっている。一方、ＣＭ１１０は、単位領域ごとのアクセス頻度を、一定の単位期間におけるアクセス回数として計測している。しかし、この方法では、単位期間でのアクセス回数が同一である場合、単位領域のサイズが小さいほど、容量当たりのアクセス頻度（ＩＯＰＳ：Input Output operations Per Second）は高いことになる。このため、単位期間でのアクセス回数が同一である場合、サイズが小さい単位領域の方が、データ移動の緊急性が高い。
【００９４】
そこで、移動処理部１４３は、同一の優先度が設定された複数の単位領域のうち、サイズが小さい単位領域のデータ移動を優先的に実行する。これにより、データ移動の実行順を、アクセス頻度が正確に反映されるように適正化することができる。すなわち、アクセス頻度の高い単位領域に対してアクセス速度の高い記憶領域を早期に割り当てることができ、その結果、ホストサーバ２００からのアクセス要求に対する応答速度を向上させることができる。
【００９５】
次に、管理サーバ３００およびＣＭ１１０の処理の詳細について、シーケンス図およびフローチャートを用いて説明する。
まず、図９は、アクセス頻度の収集処理手順を示すシーケンス図の例である。ストレージシステムにおいては、図９の処理が繰り返し実行される。
【００９６】
図９の実行直前の初期状態では、ＣＭ１１０の単位領域管理テーブル１３２の各レコードでは、アクセス頻度の値が０に初期化されている。また、管理サーバ３００の単位領域管理テーブル３１１の各レコードでは、アクセス頻度の項目に値が登録されていない。
【００９７】
この状態から、管理サーバ３００のアクセス頻度収集部３２１は、一定時間が経過するまで、すなわち、単位期間が終了するまで待機する（ステップＳ１１）。一定時間が経過するまでの間、ＣＭ１１０のアクセス制御部１４１は、ホストサーバ２００からの要求に応じたアクセス制御を実行する。単位領域に対するアクセスが要求されるたびに、単位領域管理テーブル１３２におけるその単位領域に対応するアクセス頻度の値がカウントアップされる。
【００９８】
一定時間が経過すると、アクセス頻度収集部３２１は、ＣＭ１１０に対してアクセス頻度の送信を要求する（ステップＳ１２）。ＣＭ１１０のアクセス頻度送信部１４２は、単位領域管理テーブル１３２の各レコードからアクセス頻度を取得し、各単位領域のアクセス頻度をリスト化したアクセス頻度情報を作成する（ステップＳ１３）。アクセス頻度送信部１４２は、作成されたアクセス頻度情報を管理サーバ３００に送信する（ステップＳ１４）。これとともに、アクセス頻度送信部１４２は、単位領域管理テーブル１３２の各レコードのアクセス頻度の値を０にリセットする（ステップＳ１５）。
【００９９】
管理サーバ３００のアクセス頻度収集部３２１は、アクセス頻度情報を受信し、アクセス頻度情報に含まれるアクセス頻度を単位領域管理テーブル３１１に保存する（ステップＳ１６）。このとき、アクセス頻度収集部３２１は、アクセス頻度情報に含まれるある単位領域のアクセス頻度と、単位領域管理テーブル３１１に登録された、その単位領域に対応するアクセス頻度とを比較する。アクセス頻度収集部３２１は、前者の値の方が大きい場合、前者の値によって後者の値を更新する。これにより、単位領域管理テーブル３１１のアクセス頻度の項目には、アクセス頻度の収集期間における単位期間ごとのアクセス頻度のうちの最大値が登録される。
【０１００】
アクセス頻度収集部３２１は、ステップＳ１２，Ｓ１６の処理を所定回数実行したかを判定する（ステップＳ１７）。アクセス頻度収集部３２１は、これらの処理を所定回数実行していない場合には、一定時間が経過するまで待機し（ステップＳ１１）、一定時間が経過するとステップＳ１２の処理を実行する。また、アクセス頻度収集部３２１は、ステップＳ１２，Ｓ１６の処理を所定回数実行済みの場合、すなわち、アクセス頻度の収集期間が終了した場合には、各単位領域のデータの配置先決定処理を開始する（ステップＳ１８）。
【０１０１】
図１０は、データの配置先決定処理手順を示すフローチャートの例である。
［ステップＳ２１］管理サーバ３００の配置先決定部３２２は、各単位領域のデータの配置先階層を決定する。例えば、配置先決定部３２２は、単位領域をデータの配置先となるＴｉｅｒプールごとに分類し、分類された単位領域のグループのそれぞれについて以下の処理を実行する。
【０１０２】
配置先決定部３２２は、まず、単位領域管理テーブル３１１から各単位領域のアクセス頻度を取得し、取得されたアクセス頻度に基づいて、各単位領域のデータの配置先階層を決定する。例えば、Ｔｉｅｒプールの階層数が２層の場合、閾値ＴＨが設定される。そして、アクセス頻度が閾値ＴＨ未満である単位領域のデータを低階層に配置し、アクセス頻度が閾値ＴＨ以上である単位領域のデータを高階層に配置するように、配置先階層が決定される。また、Ｔｉｅｒプールの階層数が３層の場合、２つの閾値ＴＨ１，ＴＨ２（ただし、ＴＨ１＜ＴＨ２）が設定される。そして、アクセス頻度が閾値ＴＨ１未満である単位領域のデータを低階層に配置し、アクセス頻度が閾値ＴＨ１以上閾値ＴＨ２未満である単位領域のデータを中間階層に配置し、アクセス頻度が閾値ＴＨ２以上である単位領域のデータを高階層に配置するように、配置先階層が決定される。
【０１０３】
また、閾値を用いた上記の決定方法では、ある階層が配置先に決定された単位領域の合計データサイズが、その階層のサイズを超えてしまう場合がある。この場合、配置先決定部３２２は、その階層が配置先として決定された単位領域の中から、合計データサイズがその階層のサイズ内に収まる範囲で、アクセス頻度が高い順に単位領域を選択し、選択された各単位領域の配置先をその階層に確定する。また、配置先決定部３２２は、残りの単位領域の配置先を１つ下位の階層に変更する。階層が３層以上の場合、配置先決定部３２２は、上位階層から上記処理を順次実行する。
【０１０４】
［ステップＳ２２］配置先決定部３２２は、階層間でデータの移動が必要となる移動対象の単位領域を決定する。具体的には、配置先決定部３２２は、現在配置されている階層と、ステップＳ２１で決定された配置先階層とが異なる単位領域を、移動対象に決定する。また、配置先決定部３２２は、移動対象に決定された単位領域について、ステップＳ２１で決定された配置先階層を、移動先階層に決定する。
【０１０５】
さらに、配置先決定部３２２は、移動対象の単位領域の中から、下位階層への移動が行われる単位領域を抽出し、抽出された単位領域の中からさらに、上位階層の領域確保用の移動が行われる単位領域を特定する。このような単位領域としては、移動先の階層が、ステップＳ２１で決定された配置先階層より低い単位領域が特定される。具体的には、例えば、次のようにして特定される。
【０１０６】
Ｔｉｅｒプールの階層数が２層の場合、高階層から低階層への移動が行われる単位領域のうち、アクセス頻度が前述の閾値ＴＨ以上である単位領域が、領域確保用の移動が行われる単位領域として特定される。また、Ｔｉｅｒプールの階層数が３層の場合、高階層から中間階層への移動が行われる単位領域のうち、アクセス頻度が前述の閾値ＴＨ２以上である単位領域が、領域確保用の移動が行われる単位領域として特定される。さらに、中間階層から低階層への移動が行われる単位領域のうち、アクセス頻度が前述の閾値ＴＨ１以上である単位領域が、領域確保用の移動が行われる単位領域として特定される。
【０１０７】
［ステップＳ２３］配置先決定部３２２は、優先度設定用テーブル３１３を参照して、移動対象の単位領域のそれぞれについて、どの階層からどの階層へ移動するかを示す移動経路条件に基づいて優先度を仮決定する。例えば、Ｔｉｅｒプールが３階層である場合、配置先決定部３２２は、各単位領域を移動経路条件に応じて移動種別Ｃ３，Ｃ５〜Ｃ７（図８参照）のいずれかに分類する。配置先決定部３２２は、優先度設定用テーブル３１３において、分類された移動種別に対して設定されたいずれかの優先度（例えば、最も高い優先度を示す値）を、単位領域に対する優先度として仮決定する。
【０１０８】
［ステップＳ２４］配置先決定部３２２は、移動対象の単位領域を１つ選択する。
［ステップＳ２５］配置先決定部３２２は、選択された単位領域についてのデータ移動が、下位階層への移動であるかを判定する。配置先決定部３２２は、下位階層への移動である場合、ステップＳ２６の処理を実行し、下位階層への移動でない場合、ステップＳ２８の処理を実行する。
【０１０９】
［ステップＳ２６］配置先決定部３２２は、選択された単位領域についてのデータ移動が、上位階層の領域確保用の移動であるかを判定する。配置先決定部３２２は、領域確保用の移動である場合、ステップＳ２７の処理を実行し、領域確保用の移動でない場合、ステップＳ２８の処理を実行する。
【０１１０】
［ステップＳ２７］配置先決定部３２２は、優先度設定用テーブル３１３に基づいて、選択された単位領域に対応する優先度の値を、より高い優先度を示すように変更する。例えば、Ｔｉｅｒプールが３階層である場合、中間階層から低階層への移動が行われる単位領域の優先度は、「１」に変更される。高階層から中間階層への移動が行われる単位領域の優先度は、「２」に変更される。中間階層から低階層への移動が行われる単位領域の優先度は、「７」に変更される。
【０１１１】
［ステップＳ２８］配置先決定部３２２は、優先度設定用テーブル３１３を参照し、単位領域のアクセス頻度に基づいて優先度を最終決定する。具体的には、配置先決定部３２２は、優先度設定用テーブル３１３において、ステップＳ２３で分類された移動種別に対して設定されたアクセス頻度範囲と、単位領域のアクセス頻度とを比較することによって、単位領域に対応する優先度を決定する。
【０１１２】
以上のステップＳ２７，Ｓ２８のいずれかの処理により、ステップＳ２４で選択された移動対象の単位領域に対応する優先度が、正式に決定される。
［ステップＳ２９］配置先決定部３２２は、移動対象の単位領域のすべてを選択済みであるかを判定する。未選択の単位領域がある場合、配置先決定部３２２は、処理をステップＳ２４に進め、未選択の単位領域を１つ選択する。一方、単位領域をすべて選択済みの場合、配置先決定部３２２は、ステップＳ３０の処理を実行する。
【０１１３】
［ステップＳ３０］配置先決定部３２２は、移動指示情報を作成する。移動指示情報には、移動対象の単位領域のそれぞれについて、単位領域を示す識別情報と、データ移動先の階層またはサブプールを示す識別情報と、決定された優先度とが含められる。配置先決定部３２２は、作成された移動指示情報をＣＭ１１０に送信する。
【０１１４】
［ステップＳ３１］配置先決定部３２２は、移動対象の単位領域のデータ移動がＣＭ１１０で実行されるたびに、移動結果情報を受信する。移動結果情報には、単位領域の識別情報と、データの移動先の階層またはサブプールを示す識別情報とが含められている。配置先決定部３２２は、移動結果情報に基づいて、単位領域管理テーブル３１１のレコードのうち、データ移動が実行された単位領域に対応するレコードを更新する。
【０１１５】
図１１、図１２は、データ移動処理手順を示すフローチャートの例である。ＣＭ１１０の移動処理部１４３が、図１０のステップＳ３０で送信された移動指示情報を受信すると、図１１の処理が開始される。
【０１１６】
［ステップＳ４１］移動処理部１４３は、受信された移動指示情報に含まれる移動対象の単位領域を、優先度の高い順にソートした移動対象リストを作成する。
［ステップＳ４２］移動処理部１４３は、移動対象リストから、先頭の単位領域を移動候補として選択する。
【０１１７】
［ステップＳ４３］移動処理部１４３は、選択された単位領域についてのデータ移動が、上位階層への移動であるかを判定する。移動処理部１４３は、上位階層への移動である場合、ステップＳ４４の処理を実行し、上位階層への移動でない場合、ステップＳ４７の処理を実行する。
【０１１８】
［ステップＳ４４］移動処理部１４３は、単位領域管理テーブル１３２を参照し、選択された単位領域に対応するレコードに現在登録されているアクセス頻度を取得する。移動処理部１４３は、取得されたアクセス頻度が所定値ＴＨ３以上かを判定し、所定値ＴＨ３以上の場合はステップＳ４７の処理を実行し、所定値ＴＨ３未満の場合はステップＳ４５の処理を実行する。
【０１１９】
［ステップＳ４５］移動処理部１４３は、移動対象リストから、移動候補として選択された単位領域と同一の優先度が設定された他の単位領域を特定する。移動処理部１４３は、単位領域管理テーブル１３２を参照し、特定された他の単位領域に対応するレコードに現在登録されているアクセス頻度を取得する。移動処理部１４３は、特定された他の単位領域の中に、アクセス頻度が所定値ＴＨ３以上のものがあるかを判定する。移動処理部１４３は、アクセス頻度が所定値ＴＨ３以上である他の単位領域がある場合、ステップＳ４６の処理を実行し、アクセス頻度が所定値ＴＨ３以上である他の単位領域がない場合、ステップＳ４７の処理を実行する。
【０１２０】
［ステップＳ４６］移動処理部１４３は、移動候補を、ステップＳ４５でアクセス頻度が所定値ＴＨ３以上と判定された他の単位領域に変更する。該当する他の単位領域が複数存在する場合には、例えば、アクセス頻度が最大の単位領域が選択される。なお、変更前の単位領域は、移動対象リストにそのまま残される。
【０１２１】
［ステップＳ４７］移動処理部１４３は、移動対象リストから、移動候補として選択された単位領域と同一の優先度が設定された他の単位領域を特定する。移動処理部１４３は、特定された他の単位領域の中に、移動候補として選択された単位領域よりサイズが小さいものがあるかを判定する。移動処理部１４３は、サイズが小さい他の単位領域がある場合、ステップＳ４８の処理を実行し、サイズが小さい他の単位領域がない場合、図１２のステップＳ５１の処理を実行する。
【０１２２】
［ステップＳ４８］移動処理部１４３は、移動候補を、ステップＳ４７でサイズが小さいと判定された他の単位領域に変更する。該当する他の単位領域が複数存在する場合には、例えば、サイズが最小の単位領域が選択される。なお、変更前の単位領域は、移動対象リストにそのまま残される。この後、図１２のステップＳ５１の処理が実行される。
【０１２３】
以下、図１２を用いて説明を続ける。
［ステップＳ５１］移動処理部１４３は、移動候補として選択された単位領域についてのデータ移動先のサブプールを判別する。移動処理部１４３は、プール管理テーブル１３３を参照し、判別されたサブプールに設定されたＲＡＩＤグループを特定する。移動処理部１４３は、特定されたＲＡＩＤグループの中から、他の単位領域についての階層間のデータ移動が現在実行されていないＲＡＩＤグループを抽出する。
【０１２４】
［ステップＳ５２］移動処理部１４３は、ステップＳ５１においてデータ移動が実行されていないＲＡＩＤグループが抽出された場合、ステップＳ５３の処理を実行し、抽出されなかった場合、ステップＳ５６の処理を実行する。
【０１２５】
［ステップＳ５３］移動処理部１４３は、抽出されたＲＡＩＤグループの中から、単位領域に対して記憶領域が割り当てられた容量が最も少ないＲＡＩＤグループを選択し、選択されたＲＡＩＤグループをデータの移動先に決定する。
【０１２６】
［ステップＳ５４］移動処理部１４３は、移動候補として選択された単位領域のデータを、ステップＳ５３で決定された移動先のＲＡＩＤグループに移動させる。
［ステップＳ５５］移動処理部１４３は、ステップＳ５４でのデータ移動内容を示す移動結果情報を、管理サーバ３００に送信する。また、移動処理部１４３は、データ移動が完了した単位領域を、移動対象リストから削除する。
【０１２７】
［ステップＳ５６］移動処理部１４３は、移動対象として選択された単位領域を、移動対象リストの末尾に移動させる。これにより、この単位領域は移動待ち状態になる。
［ステップＳ５７］移動処理部１４３は、移動対象リストにデータ移動が実行されていない単位領域が残っているかを判定する。単位領域が残っている場合、移動処理部１４３はステップＳ４２に処理を進め、次の単位領域を移動候補として選択する。一方、単位領域が残っていない場合、移動処理部１４３は処理を終了する。
【０１２８】
以上の図１１、図１２の処理では、移動先のサブプールに設定されているＲＡＩＤグループの中にデータ移動が実行されていないＲＡＩＤグループがある場合には、ステップＳ５４においてそのＲＡＩＤグループに対してデータが移動される。これにより、前述のデータ移動制御（１）が実現される。
【０１２９】
また、移動先のサブプールに設定されているすべてのＲＡＩＤグループにおいてデータ移動が実行中の場合には、ステップＳ５６において、移動候補として選択された単位領域のデータ移動の実行が後回しにされる。そして、その後に再度ステップＳ４２の処理が実行されて、次の単位領域が移動候補として選択される。これにより、前述のデータ移動制御（２）が実現される。
【０１３０】
また、同一の優先度が設定された他の単位領域の中に、現在のアクセス頻度が非常に高い単位領域が存在する場合には、ステップＳ４６において、移動候補がその単位領域に変更されて、その単位領域のデータ移動が優先的に実行されるようになる。これにより、前述のデータ移動制御（３）が実現される。
【０１３１】
また、同一の優先度が設定された他の単位領域の中に、移動候補の単位領域よりサイズが小さい単位領域が存在する場合には、ステップＳ４８において、移動候補がその単位領域に変更されて、その単位領域のデータ移動が優先的に実行されるようになる。これにより、前述のデータ移動制御（４）が実現される。
【０１３２】
なお、上記の各実施の形態に示した装置（データ処理装置１、ＣＭ１１０、ホストサーバ２００、管理サーバ３００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（ＢＤ）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１３５】
１  データ処理装置
１ａ  記憶部
１ａ１  構成情報
１ｂ  制御部
２  論理記憶領域
３〜５  物理記憶領域
３ａ，３ｂ  分割領域
Ｄ２，Ｄ３  データ
Ｒ１〜Ｒ４  単位領域
【図１】
2019125175.tif 000003
【図２】
2019125175.tif 000004
【図３】
2019125175.tif 000005
【図４】
2019125175.tif 000006
【図５】
2019125175.tif 000007
【図６】
2019125175.tif 000008
【図７】
2019125175.tif 000009
【図８】
2019125175.tif 000010
【図９】
2019125175.tif 000011
【図１０】
2019125175.tif 000012
【図１１】
2019125175.tif 000013
【図１２】
2019125175.tif 000014