(57)【要約】【課題】アクセス性能を効率よく向上させる。【解決手段】データ配置プログラムにおいて、階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、取得した前記指標値に基づいて前記データの移動の可否を決定する、処理をコンピュータに実行させる。【選択図】図４
2014199596.tif 000002
【特許請求の範囲】
【請求項１】
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、
取得した前記指標値に基づいて前記データの移動の可否を決定する、処理をコンピュータに実行させるためのデータ配置プログラム。
【請求項２】
前記再配置条件は、前記データに対するアクセス頻度を有し、
前記記憶領域に記憶される他のデータとの相対的なアクセス頻度に基づいて前記指標値を取得することを特徴とする請求項１に記載のデータ配置プログラム。
【請求項３】
前記階層化された記憶領域に対する仮想階層を設定し、設定された前記仮想階層に、実際に記憶されたデータを割り当てた結果と、予め設定された条件に基づいてデータを割り当てた結果とを用いて前記指標値を取得することを特徴とする請求項１又は２に記載のデータ配置プログラム。
【請求項４】
前記指標値は、前記実際に記憶されたデータを割り当てた結果に対応する仮想階層数と、前記予め設定された条件に基づいてデータを割り当てた結果に対応する仮想階層数との差分であることを特徴とする請求項３に記載のデータ配置プログラム。
【請求項５】
前記指標値に基づいて決定されたデータの移動の可否から暫定的な仮想配置を決定し、
決定した前記暫定的な仮想配置に属するデータ容量と、前記階層化された記憶領域の容量とを比較し、前記記憶領域の容量がオーバーする場合に、前記オーバーを解消する処理を実行することを特徴とする請求項１乃至４の何れか１項に記載のデータ配置プログラム。
【請求項６】
情報処理装置が、
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得する取得ステップと、
前記指標値取得ステップにより取得した前記指標値に基づいて前記データの移動の可否を決定する決定ステップとを有することを特徴とするデータ配置方法。
【請求項７】
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、取得した前記指標値に基づいて前記データの移動の可否を決定する決定部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配置プログラム、データ配置方法、及び情報処理装置に関する。
【背景技術】
【０００２】
アクセス速度の異なるディスク装置等で階層化されたストレージ装置に記憶されるデータは、データ毎に単位時間あたりのアクセス頻度（回数）が監視されている。そして、アクセス頻度が予め設定された値を超えると高速なディスクにデータを移動する手法が存在する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５７０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば高速なディスクと低速なディスクとの間で再配置が頻繁に行われるデータは、そのデータに実際に要求されるアクセス速度（アクセス性能）があまり変化していないにもかかわらず、頻繁な移動が生じてしまう。そのため、データの移動処理に対する負荷が大きくなってしまう。
【０００５】
１つの側面では、本発明は、データの再配置による負荷を軽減してアクセス性能を効率よく向上させることを目的とする。
【課題を解決するための手段】
【０００６】
一態様におけるデータ配置プログラムは、階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、取得した前記指標値に基づいて前記データの移動の可否を決定する、処理をコンピュータに実行させる。
【発明の効果】
【０００７】
アクセス性能を効率よく向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態におけるストレージシステムの構成例を示す図である。
【図２】第２実施形態におけるストレージシステムの構成例を示す図である。
【図３】データ配置処理が実現可能なハードウェア構成の一例を示す図である。
【図４】データ配置処理の一例を示すフローチャートである。
【図５】再配置処理の一例を示すフローチャートである。
【図６】新規作成処理の一例を示すフローチャートである。
【図７】仮想階層作成処理の一例を示すフローチャートである。
【図８】物理階層テーブルの一例を示す図である。
【図９】仮想階層テーブルの一例を示す図である。
【図１０】現実仮想配置へのデータ割り当て処理の一例を示すフローチャートである。
【図１１】理想仮想配置へのデータ割り当て処理の一例を示す図である。
【図１２】暫定仮想配置の決定手法の一例を示すフローチャートである。
【図１３】仮想配置テーブルの一例を示す図である。
【図１４】暫定仮想配置テーブルの一例を示す図である。
【図１５】各仮想配置の具体例を示す図である。
【図１６】データ容量のチェック処理の一例を示すフローチャートである。
【図１７】容量オーバー解消処理の一例を示すフローチャート（その１）である。
【図１８】容量オーバー解消処理の一例を示すフローチャート（その２）である。
【図１９】容量オーバー解消処理を説明するための図である。
【図２０】移動データの決定処理の一例を示すフローチャートである。
【図２１】移動リストの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら実施例について詳細に説明する。なお、以下の説明では、データの再配置を行うシステム構成の一例とでストレージシステムを例に説明するが、これに限定されるものではない。
【００１０】
＜第１実施形態＞
図１は、第１実施形態におけるストレージシステムの構成例を示す図である。図１に示すストレージシステム１０は、情報処理装置の一例としてのストレージ装置１１と、端末１２と、管理サーバ１３とを有する。ストレージ装置１１と、端末１２と、管理サーバ１３とは、例えばインターネットやＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等に代表される通信ネットワーク１４によりデータの送受信が可能な状態で接続されている。
【００１１】
ストレージ装置１１は、所定のサービスを提供したり、業務を実施するために必要な各種データを記憶する記憶手段である。ストレージ装置１１は、例えば自動階層化における効率的なデータ配置を実現すると共に、データを絶対的ではなく相対的に配置する。また、ストレージ装置１１は、例えば高い階層や高速ストレージを有効に使用し、仮想階層を用いて移動の効果が低いデータについては移動させないようにする。
【００１２】
端末１２は、ストレージ装置１１に記憶された各種データを必要に応じて選択的に利用するユーザが使用する端末であり、管理サーバ１２やストレージ装置１１にデータ要求等の指示を送信したり、要求に対応するデータを受信する。
【００１３】
管理サーバ１３は、ストレージ装置１１に対するデータのアクセス等を管理したり、端末１２毎におけるデータの利用履歴等を管理するための管理手段であり、管理者が使用する端末である。
【００１４】
端末１２及び管理サーバ１３としては、例えばＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）やタブレット端末等があるが、これに限定されるものではない。
【００１５】
次に、ストレージ装置１１の具体的な機能構成例について説明する。ストレージ装置１１は、構成情報管理部２１と、算出部の一例としてのアクセス回数カウント部２２と、仮想階層作成部２３と、決定部の一例としての再配置場所決定部２４と、再配置実行部２５と、新規データ書き込み判定部２６と、物理記憶装置２７とを有する。
【００１６】
構成情報管理部２１は、物理記憶装置２７内の構成情報を管理する。構成情報とは、例えば物理記憶装置２７における物理階層の数や、物理階層毎の記憶容量や空き容量等であるが、これに限定されるものではなく、例えばアクセス（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）速度等のアクセス性能を有していてもよい。物理階層とは、例えばアクセス速度の異なるディスクの種類等を基準に階層化することができるが、これに限定されるものではない。構成情報管理部２１は、各ディスクに物理階層を割り当てることで、物理階層の全容量を把握することができる。また、構成情報管理部２１は、例えば各データに対する単位時間あたりのアクセス頻度（回数）や最終更新日時等のデータ管理情報等も管理することができる。
【００１７】
また、構成情報管理部２１は、物理記憶装置２７内の構成情報が変更されたか否かを管理し、変更された場合には、管理情報を更新する。構成情報管理部２１は、例えば初回起動時やディスクが追加されたり交換された時等のタイミングで更新を行うが、これに限定されるものではない。
【００１８】
アクセス回数カウント部２２は、物理記憶装置２７内にデータのアクセスがあった場合に、そのアクセス回数（頻度）をカウントする。アクセス回数カウント部２２は、アクセスされたデータ毎にアクセス回数等をカウントすることができるが、これに限定されるものではなく、例えば物理記憶装置２７内の各ディスクのアクセス回数をカウントしてもよい。また、アクセス回数カウント部２２は、例えばアクセス頻度（例えば、単位時間あたりアクセス回数の平均）等を取得することができるが、これに限定されるものではない。カウントされたアクセス回数等は、例えば構成情報管理部２１にて管理される。
【００１９】
また、アクセス回数カウント部２２は、例えば、最後にアクセスされてからの時間や最高層（最上位層）の使用率等をカウントすることもできるが、これに限定されるものではない。
【００２０】
仮想階層作成部２３は、再配置場所を決定するために、物理記憶装置２７内の物理階層に対する仮想階層を作成する。仮想階層作成部２３により作成された仮想階層を用いることで、データの移動のコストを数値化することができ、移動効果が高いデータを移動させ、移動効果が低いデータの移動を削減することができる。これにより、無駄なディスク間のデータ移動（入出力）が減少するためアクセス性能の低下を防止することができる。
【００２１】
なお、仮想階層作成部２３は、仮想階層を作成する前に予め一部又は全ての階層において空き容量を確保する。これにより、例えばある一定量の空き容量を高層に存在させることで、新規データを高層に書き込めるため、新規データに対してのアクセス性能は非常に高くなる。
【００２２】
再配置場所決定部２４は、仮想階層作成部２３により作成された仮想階層領域を用いて、データの再配置場所を決定する。再配置場所決定部２４は、実際のデータの配置に対応する現実仮想階層へのデータ割り当てを行い、更に予め設定された再配置条件に対応した理想とする配置に対応する理想仮想階層へのデータ割り当てを行う。
【００２３】
再配置条件とは、例えばデータへのアクセス頻度（回数）が所定の閾値を超えるか否かを条件にすることができるがこれに限定されるものではない。例えば、最後に再配置してからの時間や最高層（最上位層）の使用率等が、所定の閾値を超えるか否かを条件にしてもよく、上述した複数の条件を組み合わせてもよい。
【００２４】
また、再配置場所決定部２４は、現実仮想階層でのデータ配置と、理想仮想階層でのデータ配置とを比較して各データに対する指標値を取得し、取得した指標値に基づいて、各データの移動の可否を決定する。また、再配置場所決定部２４は、決定された各データの移動の可否に基づいて暫定的な仮想配置を決定する。なお、指標値の一例としては、例えば現実仮想階層でのデータ配置と、理想仮想階層でのデータ配置との移動幅である。再配置場所決定部２４は、取得した移動幅と、予め設定された閾値とに基づいて暫定的な仮想配置を決定する。
【００２５】
また、再配置場所決定部２４は、その暫定的な仮想配置のデータ容量をチェックし、必要であれば容量オーバーの解消を行ってもよい。再配置場所決定部２４は、最終的に調整された移動データを再配置実行部２５に出力する。
【００２６】
再配置実行部２５は、再配置場所決定部２４から得られる移動リストに基づいてデータを移動して再配置を実行する。なお、上述した仮想階層作成部２３、再配置場所決定部２４、再配置実行部２５における処理は、予め設定された再配置メソッドを呼び出して実行することができる。この再配置メソッドには、例えば「空き容量の確保」、「相対評価による高層優先配置の導入」、及び「仮想階層の導入」等のうち、少なくとも１つの処理を有する。また、再配置メソッドは、例えば予期せぬエラー（容量不足等）が生じた場合に、端末１２や管理サーバ１３等にエラーメッセージ等の例外処理を通知する。
【００２７】
新規データ書き込み判定部２６は、例えば端末１２又は管理サーバ１３等から物理記憶装置２７に対してアクセスが生じた場合に、そのアクセスが新規データの作成（書き込み）であるか否かを判定する。例えば、新規データ書き込み判定部２６は、そのアクセスが新規データの作成である場合には、空き容量がある高層の物理階層から新規作成データを書き込む。なお、新規データ書き込み判定部２６は、上述した処理を行う新規作成メソッドを呼び出して実行してもよい。高層の物理階層とは、例えば物理記憶装置２７内の含まれる複数のディスクのうち、高速アクセスが可能な上位の階層であるが、これに限定されるものではない。
【００２８】
また、新規データ書き込み判定部２６は、新規データに対する読み込みがあったか否かを判定してもよい。また、新規データ書き込み判定部２６は、例えば新規作成メソッド等で予期せぬエラー（例えば、容量不足等）が生じた場合に、端末１２や管理サーバ１３等にエラーメッセージ等の例外処理を通知する。
【００２９】
新規データ書き込み判定部２６は、新規データの書き込みや読み込み等が終了後、構成情報管理部２１にデータ管理情報の更新を行わせる。なお、新規データ書き込み判定部２６は、例えば端末１２又は管理サーバ１３等から物理記憶装置２７に対してアクセスが生じた場合に、そのアクセスが新規データの作成（書き込み）でない場合には、通常通りの処理を行う。
【００３０】
物理記憶装置２７は、１又は複数のディスク装置やドライブ装置を有し、それぞれが同一又は異なるアクセス速度や記憶容量を有している。物理記憶装置２７としては、例えばＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）やＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等であるが、これに限定されるものではない。
【００３１】
第１実施形態では、データを絶対評価ではなく相対評価により上位の階層から順にデータを配置することができるため、アクセス性能の高いディスクを有効に活用できる。そのため、全体のアクセススピードを向上させることができる。
【００３２】
また、第１実施形態では、データを再配置する際に、予めデータを割り当てない領域（空き領域）を高層に作成し、新規データによる書き込みが起こった場合に、高速アクセス可能な高層ディスクに書き込むことができるため、高いアクセス性能を実現できる。
【００３３】
＜第２実施形態＞
なお、上述した第１実施形態では、上述した各構成（構成情報管理部２１、アクセス回数カウント部２２、仮想階層作成部２３、再配置場所決定部２４、再配置実行部２５、新規データ書き込み判定部２６）をストレージ装置１１に設けた構成にしている。しかしながら、システム構成についてはこれに限定されるものではなく、例えば上述した構成の一部又は全部を管理サーバ１３等の他の装置に持たせた構成にしてもよい。
【００３４】
図２は、第２実施形態におけるストレージシステムの構成例を示す図である。なお、第１実施形態で説明した各構成と同一の機能を有する部分については、同一の符号を付すものとし、ここでの具体的な説明は省略する。
【００３５】
図２に示すストレージシステム１０'は、ストレージ装置１１'と、端末１２と、情報処理装置の一例としての管理サーバ１３'とを有する。ストレージ装置１１'と、端末１２と、管理サーバ１３'とは、例えば通信ネットワーク１４によりデータの送受信が可能な状態で接続されている。
【００３６】
図２に示すストレージ装置１１'は、物理記憶装置２７を有する。また、管理サーバ１３'は、構成情報管理部２１と、アクセス回数カウント部２２と、仮想階層作成部２３と、再配置場所決定部２４と、再配置実行部２５と、新規データ書き込み判定部２６とを有する。
【００３７】
上述した図１に示す第１実施形態では、データ配置処理に必要な構成をストレージ装置１１として組み込んだが、図２に示す第２実施形態では、管理サーバ１３'側に上述した構成をソフトウェアとして組み込んでいる。管理サーバ１３'は通信ネットワーク１４を介してストレージ装置１１'の物理記憶装置２７を参照しながら、上述した第１実施形態と同様のデータ再配置処理を行う。なお、第１実施形態におけるストレージ装置１１と、第２実施形態における管理サーバ１３'とは、共に上述したデータ再配置処理を行う情報処理装置である。
【００３８】
＜ハードウェア構成例＞
各機能をコンピュータに実行させることができる実行プログラム（データ配置プログラム）を、例えば汎用のＰＣやサーバ等にインストールすることにより、本実施形態におけるデータ配置処理を実現することができる。ここで、情報処理装置におけるデータ配置処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。
【００３９】
図３は、データ配置処理が実現可能なハードウェア構成の一例を示す図である。図３におけるコンピュータ本体には、入力装置３１と、出力装置３２と、ドライブ装置３３と、補助記憶装置３４と、主記憶装置３５と、各種制御を行うＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）３６と、ネットワーク接続装置３７とを有するよう構成されており、これらはシステムバスＢで相互に接続されている。
【００４０】
入力装置３１は、管理者等のユーザが操作するキーボード及びマウス等のポインティングデバイスや、マイクロフォン等の音声入力デバイスを有する。入力手段３１は、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。
【００４１】
出力装置３２は、本実施形態における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、ＣＰＵ３６が有する制御プログラムによりプログラムの実行経過や結果等を表示する。
【００４２】
ここで、本実施形態においてコンピュータ本体にインストールされる実行プログラムは、例えば、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）メモリやＣＤ−ＲＯＭ、ＤＶＤ等の可搬型の記録媒体３８等により提供される。プログラムを記録した記録媒体３８は、ドライブ装置３３にセット可能であり、ＣＰＵ３６からの制御信号に基づき、記録媒体３８に含まれる実行プログラムが、記録媒体３８からドライブ装置３３を介して補助記憶装置３４にインストールされる。
【００４３】
補助記憶装置３４は、ハードディスク等のストレージ手段であり、ＣＰＵ３６からの制御信号に基づき、本実施形態における実行プログラムや、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置３４は、ＣＰＵ３６からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
【００４４】
主記憶装置３５は、ＣＰＵ３６により補助記憶装置３４から読み出された実行プログラム等を格納する。なお、主記憶装置３５は、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）やＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）等である。なお、補助記憶装置３４及び主記憶装置３５は、例えば上述した記憶手段１３に対応している。
【００４５】
ＣＰＵ３６は、オペレーティングシステム等の制御プログラム、及び主記憶装置３５に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置３４から取得することができ、また実行結果等を格納することもできる。
【００４６】
具体的には、ＣＰＵ３６は、例えば入力装置３１から得られるプログラムの実行指示等に基づき、補助記憶装置３４にインストールされたデータ配置プログラムを実行させることにより、主記憶装置３５上でプログラムに対応する処理を行う。
【００４７】
例えば、ＣＰＵ３６は、データ配置プログラムを実行させることで、上述した構成情報管理部２１における構成情報の管理、アクセス回数カウント部２２によるアクセス回数（頻度）の算出等の処理を行う。また、ＣＰＵ３６は、データ配置プログラムを実行させることで、仮想階層作成部２３による仮想階層の作成、再配置場所決定部２４による再配置場所の決定等の処理を行う。また、ＣＰＵ３６は、データ配置プログラムを実行させることで、再配置実行部２５による再配置の実行、新規データ書き込み判定部２６による新規データの書き込み判定及びデータの書き込み等の処理を行う。なお、ＣＰＵ３６における処理内容は、これに限定されるものではない。
【００４８】
ネットワーク接続装置３７は、ＣＰＵ３６からの制御信号に基づき、通信ネットワーク等と接続することにより、実行プログラムやソフトウェア、設定情報等を、通信ネットワーク１４に接続されている外部装置等から取得する。また、ネットワーク接続装置３７は、プログラムを実行することで得られた実行結果又は本実施形態における実行プログラム自体を外部装置等に提供することができる。
【００４９】
上述したようなハードウェア構成により、本実施形態におけるデータ配置処理を実行することができる。また、プログラムをインストールすることにより、汎用のＰＣやサーバ等で本実施形態におけるデータ配置処理を容易に実現することができる。
【００５０】
＜データ配置処理例＞
次に、データ配置処理の一例についてフローチャートを用いて説明する。なお、以下の説明では、一例として上述した第１実施形態の構成に基づくデータ配置処理について説明するが、第２実施形態についても同様に適用することができる。
【００５１】
図４は、データ配置処理の一例を示すフローチャートである。図４の例において、構成情報管理手段２１は、物理記憶装置２７内における構成情報が変更されたか否かを判断する（Ｓ０１）。なお、構成情報管理手段２１は、例えば物理記憶装置２７内における物理階層毎の容量やアクセス（入出力）速度の変化の有無等により、構成情報の変更等を判断することができるが、これに限定されるものではない。また、Ｓ０１の処理は、例えば初回起動時又は物理記憶装置２７内へのディスク追加時等を基準に判断してもよいが、これに限定されるものではない。
【００５２】
次に、構成情報管理手段２１は、構成情報が変更された場合（Ｓ０１において、ＹＥＳ）、変更された構成情報を取得する（Ｓ０２）。例えば、構成情報管理手段２１は、ディスクの容量やアクセス速度等の情報に基づいて、物理記憶装置２７に物理階層を割り当てることで、各物理階層の全容量を把握し、その構成情報を取得する。
【００５３】
Ｓ０１の処理において構成情報が変更されていない場合（Ｓ０１において、ＮＯ）、又は、Ｓ０２の処理後、再配置場所決定部２４は、予め設定された再配置条件を満たすか否かを判断する（Ｓ０３）。再配置条件とは、例えばデータへのアクセス頻度や、最後に再配置してからの時間、最高階層の使用率等が、所定の閾値を超えるか否かを条件にすることができるがこれに限定されるものではなく、例えば上述した条件のうちの複数を組み合わせてもよい。
【００５４】
再配置条件を満たす場合（Ｓ０３において、ＹＥＳ）、再配置実行手段２６は、予め設定された再配置メソッド等を呼び出し、再配置処理を実行する（Ｓ０４）。
【００５５】
また、Ｓ０３の処理において再配置条件を満たさない場合（Ｓ０３において、ＮＯ）、又は、Ｓ０４の処理後、新規データ書き込み判定部２６は、データアクセスが発生したか否かを判断する（Ｓ０５）。新規データ書き込み判定部２６は、データのアクセスが発生していない場合（Ｓ０５において、ＮＯ）、Ｓ０１の処理に戻る。また、新規データ書き込み判定部２６は、データアクセスが発生した場合（Ｓ０５において、ＹＥＳ）、そのアクセスがデータの新規作成か否かを判断する（Ｓ０６）。
【００５６】
ここで、新規データ書き込み判定部２６は、データの新規作成である場合（Ｓ０６において、ＹＥＳ）、予め設定された新規作成メソッドを呼び出し、新規作成処理を実行する（Ｓ０７）。なお、Ｓ０７の処理では、データを新規作成する場合に、空き容量が十分な高層階層のディスクから書き込む処理を含んでいてもよい。
【００５７】
また、新規データ書き込み判定部２６は、データの新規作成でない場合（Ｓ０６において、ＮＯ）、通常の該当データの読み込み、又は、追加書き込み等の通常通りの処理を行う（Ｓ０８）。
【００５８】
構成情報管理手段２１は、Ｓ０７又はＳ０８の処理後、データの管理情報を更新する（Ｓ０９）。次に、構成情報管理手段２１は、処理を終了するか否かを判断し（Ｓ１０）、処理を終了しない場合（Ｓ１０において、ＮＯ）、Ｓ０１の処理に戻る。また、構成情報管理手段２１は、ユーザからの指示等により処理を終了する場合（Ｓ１０において、ＹＥＳ）、データ配置処理を終了する。
【００５９】
なお、上述したＳ０４における再配置処理やＳ０７における新規作成処理において、例えば容量不足等の予期せぬエラーが生じた場合はその旨（例外処理）を通知してもよい。
【００６０】
＜Ｓ０４：再配置処理について＞
次に、上述したＳ０４の処理（再配置メソッド）についてフローチャートを用いて説明する。図５は、再配置処理の一例を示すフローチャートである。図５の例において、仮想階層作成部２３は、仮想階層を作成する（Ｓ２１）。なお、Ｓ２１の処理において、仮想階層作成部２３は、仮想階層を作成する前に予め一部又は全ての階層において空き容量を確保する。
【００６１】
次に、再配置場所決定部２４は、現在のデータの配置に対応する現実仮想階層へのデータ割り当てを行う（Ｓ２２）。また、再配置場所決定部２４は、予め設定された理想とする配置に対応する理想仮想階層へのデータ割り当てを行う（Ｓ２３）。
【００６２】
次に、再配置場所決定部２４は、上述したＳ２２の処理で得られたデータの配置と、Ｓ２３の処理で得られたデータの配置とを比較し、各データの移動幅によるコストが予め設定された閾値以下の場合に移動対象として暫定的な仮想配置を決定する（Ｓ２４）。次に、再配置場所決定部２４は、その暫定的な仮想配置のデータ容量をチェックし、必要であれば容量オーバーの解消を行う（Ｓ２５）。
【００６３】
また、再配置場所決定部２４は、Ｓ２５の処理で最終的に得られた物理配置と、現在の物理配置との差分から移動データを決定する（Ｓ２６）。次に、再配置実行部２５は、Ｓ２６の処理で得られる移動データに基づいて各データの再配置を実行する（Ｓ２７）。
【００６４】
ここで、既存手法では、主にデータを格納する物理階層を決めるためのポリシー（閾値）等を取得後、そのポリシーにしたがってデータを配置するが、このポリシーは、配置する階層をデータのアクセス回数の絶対値で評価するものである。そのため、従来では、空き容量の作成やデータの相対的配置ができず、高層にデータがあまり配置されないことや中低層に過剰に配置される恐れがあった。そこで、本実施形態では、上述した再配置処理を行うことで、アクセス性能を効率よく向上させることができる。
【００６５】
＜Ｓ０７：新規作成処理について＞
次に、上述したＳ０７の新規作成処理についてフローチャートを用いて説明する。図６は、新規作成処理の一例を示すフローチャートである。図６の例において、新規データ書き込み判定部２６は、まず物理記憶装置２７内の最高の物理階層を選択し（Ｓ３１）、新規のデータサイズがその選択した物理階層の空き容量よりも大きいか否かを判断する（Ｓ３２）。
【００６６】
新規データ書き込み判定部２６は、データサイズが空き容量よりも大きい場合（Ｓ３２において、ＹＥＳ）、現在の階層が物理記憶装置２７内の最低の層か否かを判断する（Ｓ３３）。新規データ書き込み判定部２６は、最低の層でない場合（Ｓ３３において、ＮＯ）、１つ下の物理階層を選択し（Ｓ３４）、Ｓ３２の処理に戻る。通常、下層の物理階層の場合には、上層の物理階層よりもアクセス速度が遅いが大容量である場合が多い。そのため、Ｓ３４の処理のように、１つ下の物理階層を選択して容量のチェックを行う。
【００６７】
また、新規データ書き込み判定部２６は、最低の層である場合（Ｓ３３において、ＹＥＳ）、例外処理として、例えば容量不足である旨をユーザ等に通知する。なお、Ｓ３３の処理において、選択した物理階層が最低の層である場合に、新規データ書き込み判定部２６が例外処理を行うのは、その層より下の物理階層が存在せず、この時点で新規のデータが物理階層に書き込めないと判断されるからである。
【００６８】
また、新規データ書き込み判定部２６は、Ｓ３２の処理においてデータサイズがその選択した物理階層の空き容量よりも大きくない場合（Ｓ３２において、ＮＯ）、その新規のデータを選択階層に書き込み（Ｓ３６）、管理情報を更新する（Ｓ３７）。管理情報としては、例えばデータＩＤ、格納物理階層、データサイズ、アクセス回数等があるが、これに限定されるものではない。この方法によって、新規データは、常に書き込み可能な最高層に書き込むことができる。新規データは、一定期間は頻繁にアクセスされるため、最高層に書き込むことで、新規データのアクセス効率がよくなると共に、全体のアクセス効率もよくなる。
【００６９】
＜Ｓ２１：仮想階層作成処理について＞
次に、上述したＳ２１の処理（仮想階層作成処理）についてフローチャートを用いて説明する。図７は、仮想階層作成処理の一例を示すフローチャートである。仮想階層作成部２３は、データを移動する際に生じるコストを調べるために、仮想階層を作成する。また、仮想階層作成部２３は、作成する際に一部を空き容量として残し、作成した仮想階層は全て仮想階層テーブルに書き込む。
【００７０】
図７の例において、仮想階層作成部２３は、最高の物理階層を選択し（Ｓ４１）、選択物理階層の容量の一部を、仮想階層に割り当てない「空きスペース」として定義する（Ｓ４２）。
【００７１】
次に、仮想階層作成部２３は、空きスペース以外の容量を分割し、各々を仮想階層の容量とし（Ｓ４３）、予め設定された仮想階層テーブルに物理階層を識別するための番号と、作成した仮想階層の番号や空き容量等の必要情報を書き込む（Ｓ４４）。
【００７２】
次に、仮想階層作成部２３は、物理階層が最低の層か否かを判断し（Ｓ４５）、最低の層でない場合（Ｓ４５において、ＮＯ）、１つ下の物理階層を選択し（Ｓ４６）、Ｓ４２の処理に戻る。これにより、上述した仮想階層の作成を全ての物理階層で行うことができる。
【００７３】
仮想階層作成部２３は、Ｓ４５の処理において、物理階層が最低の層である場合（Ｓ４５において、ＹＥＳ）、処理を終了する。
【００７４】
＜物理階層テーブル＞
ここで、図８は、物理階層テーブルの一例を示す図である。図８に示す物理階層テーブルの項目としては、例えば「物理階層番号」、「合計容量（ＧＢ）」、「空き容量（ＧＢ）」等があるが、これに限定されるものではない。
【００７５】
物理階層テーブルは、物理記憶装置２７内に設定された各物理階層の記憶領域を管理するものであり、１つのカラムに１つの物理階層に関する情報が格納されている。各物理階層は番号で識別され、物理階層毎に合計容量及び空き容量が管理されている。なお、この情報は、ストレージ装置１１が有していてもよく、管理サーバ１３が有していてもよい。
【００７６】
図８の例では、階層番号が小さい方が上位の物理階層とし、上の物理階層は下の物理階層よりもアクセス速度が速いがデータ容量は小さい。図８に示す物理階層テーブルは、予め準備の段階で作成され、上述した仮想階層の作成時やデータ容量のチェック時、容量オーバーの解消の際に参照や更新が行われる。
【００７７】
＜仮想階層テーブル＞
図９は、仮想階層テーブルの一例を示す図である。図９に示す仮想階層テーブルの項目としては、例えば「仮想階層番号」、「物理階層番号」、「理想空き容量（ＧＢ）」、「理想格納データＩＤ」、「現実空き容量」、「現実格納データＩＤ」等があるが、これに限定されるものではない。
【００７８】
仮想階層番号と物理階層番号とは、仮想階層と物理階層とをそれぞれ識別するための識別情報である。仮想階層テーブルには、仮想階層毎に、理想の格納データと、現実の格納データとがそれぞれデータＩＤで管理されている。１つの仮想階層には、理想の空き容量と現実の空き容量に対応した１又は複数のデータＩＤが格納される。
【００７９】
図９の例では、１つのカラムに対して１つの仮想階層に関する情報が格納されている。図９に示す仮想階層テーブルは、仮想階層を作成する際に作成され、理想仮想階層や現実仮想階層へのデータ割り当ての際に参照や更新が行われる。
【００８０】
＜Ｓ２２：現実仮想配置へのデータ割り当て処理について＞
次に、上述したＳ２２の処理（現実仮想配置へのデータ割り当て処理）についてフローチャートを用いて説明する。図１０は、現実仮想配置へのデータ割り当て処理の一例を示すフローチャートである。
【００８１】
図１０の例において、再配置場所決定部２４は、最高の物理階層を選択し（Ｓ５１）、選択物理階層内にあるデータを、例えばアクセス頻度等で降順にソートし、最も高いアクセス頻度のデータを選択する（Ｓ５２）。また、再配置場所決定部２４は、選択物理階層内において最高の仮想階層を選択し（Ｓ５３）、Ｓ５２の処理で選択された選択データより選択仮想階層の空き容量が大きいか否かを判断する（Ｓ５４）。
【００８２】
再配置場所決定部２４は、選択仮想階層の空き容量が大きい場合（Ｓ５４において、ＹＥＳ）、仮想階層テーブルの空き容量をデータ分だけ引き、現実仮想配置テーブルにデータＩＤ、データサイズ、現実選択階層（現実仮想配置情報）を格納する（Ｓ５５）。このとき、再配置場所決定部２４は、格納したデータに対応させて仮想階層テーブルの現実格納データＩＤと現実空き容量を更新してもよい。
【００８３】
次に、再配置場所決定部２４は、選択物理階層内の全てのデータが仮想階層に格納されたか否かを判断し（Ｓ５６）、全てのデータが仮想階層に格納されていない場合（Ｓ５６において、ＮＯ）、選択物理階層内にあるデータのうち、次にアクセス頻度の高いデータを選択し（Ｓ５７）、Ｓ５４の処理に戻る。
【００８４】
また、再配置場所決定部２４は、Ｓ５４の処理において選択データより選択仮想階層の空き容量が大きくない場合（Ｓ５４において、ＮＯ）、選択仮想階層が最低の層か否かを判断する（Ｓ５８）。再配置場所決定部２４は、選択仮想階層が最低の層でない場合（Ｓ５８において、ＮＯ）、１つ下の仮想階層を選択し（Ｓ５９）、Ｓ５４の処理に戻る。また、再配置場所決定部２４は、Ｓ５８の処理において選択仮想階層が最低の層である場合（Ｓ５８において、ＹＥＳ）、残りのデータを全て選択階層に割り当てる（Ｓ６０）。
【００８５】
再配置場所決定部２４は、Ｓ５６の処理において選択物理階層内の全てのデータが仮想階層に格納された場合（Ｓ５６において、ＹＥＳ）、又は、Ｓ６０の処理後、選択物理階層が最低の層か否かを判断し（Ｓ６１）、最低の層でない場合（Ｓ６１において、ＮＯ）、１つ下の物理階層を選択し（Ｓ６２）、Ｓ５２の処理に戻る。また、再配置場所決定部２４は、最低の層である場合（Ｓ６１において、ＹＥＳ）、処理を終了する。
【００８６】
図１０の例では、データを選択した物理階層から作成された仮想階層に、高層からデータを配置する。つまり、図１０の例では、物理階層を超えない範囲でデータを相対的に上から順に仮想階層に配置する。再配置場所決定部２４は、アクセス頻度が同じである場合は、そのデータを最終アクセス日時やデータサイズ等の基準で並べる。また、Ｓ５２の処理におけるソートのキーはアクセス頻度に限定されるものではなく、例えば各データに対する最終アクセス日時等を基準にソートしてもよい。また、管理情報には、現実仮想階層の更新を行い、仮想階層テーブルには格納するデータのＩＤや空き容量を更新する。
【００８７】
＜Ｓ２３：理想仮想階層のデータ割り当てについて＞
次に、上述したＳ２３の処理（理想仮想配置へのデータ割り当て処理）についてフローチャートを用いて説明する。図１１は、理想仮想配置へのデータ割り当て処理の一例を示す図である。
【００８８】
図１１の例において、再配置場所決定部２４は、最高の仮想階層を選択する（Ｓ７１）。また、再配置場所決定部２４は、全てのデータをアクセス頻度で降順にソートする（Ｓ７２）。
【００８９】
次に、再配置場所決定部２４は、Ｓ７２の処理で得られた結果から、まだ配置されてない最も高いアクセス頻度を持つデータを選択し（Ｓ７３）、選択されたデータより仮想階層の空き容量が大きいか否かを判断する（Ｓ７４）。
【００９０】
再配置場所決定部２４は、選択されたデータより仮想階層の空き容量が大きい場合（Ｓ７４において、ＹＥＳ）、仮想階層テーブルの空き容量をデータ分だけ引き、理想仮想配置テーブルにデータＩＤ、データサイズ、理想選択階層（理想仮想配置情報）を格納する（Ｓ７５）。このとき、再配置場所決定部２４は、格納したデータに対応させて仮想階層テーブルの理想格納データＩＤと理想空き容量を更新してもよい。
【００９１】
次に、再配置場所決定部２４は、全てのデータが仮想階層に格納されたか否かを判断し（Ｓ７６）、全てのデータが仮想階層に格納されていない場合（Ｓ７６において、ＮＯ）、Ｓ７３の処理に戻る。
【００９２】
また、再配置場所決定部２４は、Ｓ７４の処理において選択されたデータより仮想階層の空き容量が大きくない場合（Ｓ７４において、ＮＯ）、選択仮想階層が最低の層か否かを判断する（Ｓ７７）。再配置場所決定部２４は、選択仮想階層が最低の層でない場合（Ｓ７７において、ＮＯ）、１つ下の仮想階層を選択し（Ｓ７８）、Ｓ７３の処理に戻る。また、再配置場所決定部２４は、Ｓ７７の処理において選択仮想階層が最低の層である場合（Ｓ７７において、ＹＥＳ）、残りのデータを仮想階層の最低の層に割り当て（Ｓ７９）、処理を終了する。また、再配置場所決定部２４は、Ｓ７６の処理において全てのデータが仮想階層に格納された場合（Ｓ７６において、ＹＥＳ）、処理を終了する。
【００９３】
図１１の例では、全てのデータを対象として理想仮想階層の高層から順に配置する。つまり、図１１の例では、物理階層を超えてデータを相対的に上から順に仮想階層に配置する。なお、再配置場所決定部２４は、アクセス頻度が同じデータがある場合、そのデータを最終アクセス日時やデータサイズ等の基準で並べる。また、Ｓ７２の処理におけるソートのキーはアクセス頻度に限定されるものではなく、例えば各データに対する最終アクセス日時等を基準にソートしてもよい。また、管理情報には、理想仮想階層の更新を行い、仮想階層テーブルには格納するデータのＩＤや空き容量を更新する。
【００９４】
＜Ｓ２４：暫定仮想配置決定手法について＞
次に、上述したＳ２４の処理（暫定仮想配置決定処理）についてフローチャートを用いて説明する。図１２は、暫定仮想配置決定処理の一例を示すフローチャートである。図１２の例において、再配置場所決定部２４は、暫定仮想階層が未決定のデータＩＤを選択する（Ｓ８１）。なお、暫定仮想階層が未決定であるか否かの判断は、例えば暫定仮想配置テーブルに含まれる「暫定仮想階層」の欄が空欄である場合に未決定として判断することができるが、これに限定されるものではない。
【００９５】
次に、再配置場所決定部２４は、選択したデータＩＤの理想仮想階層と現実仮想階層との差分の絶対値が予め設定された閾値より大きいか否かを判断する（Ｓ８２）。再配置場所決定部２４は、差分の絶対値が閾値より大きい場合（Ｓ８２において、ＹＥＳ）、暫定仮想階層に理想仮想階層と同じ値を入れる（Ｓ８３）。また、再配置場所決定部２４は、Ｓ８２の処理において差分の絶対値が閾値より大きくない場合（Ｓ８２において、ＮＯ）、そのデータの移動による効果が低いとして暫定仮想階層に現実仮想階層を同じ値を入れる（Ｓ８４）。
【００９６】
次に、再配置場所決定部２４は、全ての暫定仮想配置が決定したか否かを判断し（Ｓ８５）、全ての暫定仮想配置が決定していない場合（Ｓ８５において、ＮＯ）、Ｓ８１の処理に戻る。また、再配置場所決定部２４は、全ての暫定仮想配置が決定した場合（Ｓ８５において、ＹＥＳ）、処理を終了する。
【００９７】
＜仮想配置テーブル＞
図１３は、仮想配置テーブルの一例を示す図である。なお、図１３（Ａ）は、現実仮想配置テーブルの一例を示し、図１３（Ｂ）は、理想仮想配置テーブルの一例を示している。
【００９８】
図１３（Ａ）に示す現実仮想配置テーブルの項目としては、例えば「データＩＤ」、「格納物理階層」、「データサイズ（ＧＢ）」、「現実仮想配置情報」等があるが、これに限定されるものではない。図１３（Ａ）は、上述した図１０に示す現実仮想配置へのデータ割り当て処理により作成される。
【００９９】
図１３（Ｂ）に示す理想仮想配置テーブルの項目としては、例えば「データＩＤ」、「格納物理階層」、「データサイズ（ＧＢ）」、「理想仮想配置情報」等があるが、これに限定されるものではない。図１３（Ｂ）は、上述した図１１に示す理想仮想配置へのデータ割り当て処理により作成される。
【０１００】
本実施形態では、図１３（Ａ）に示す現実仮想配置テーブルの現実仮想配置情報の階層と、図１３（Ｂ）に示す理想仮想配置テーブルの理想仮想配置情報の階層とを比較することで、異なる部分を抽出し、抽出された情報に基づいて再配置位置を決定し、決定した再配置位置に再配置を行う。なお、階層が異なる場合には、その移動幅の絶対値が予め設定された閾値を超える場合に再配置を行い、閾値以下の場合には移動を行わないようにすることができる。
【０１０１】
図１４は、暫定仮想配置テーブルの一例を示す図である。図１４に示す暫定仮想配置テーブルの項目としては、例えば「データＩＤ」、「現実仮想配置情報」、「理想仮想配置情報」、「仮想階層移動幅」、「暫定仮想階層」等であるが、これに限定されるものではない。
【０１０２】
図１４に示す現実仮想配置情報は、図１３（Ａ）の現実仮想配置テーブルから取得した情報である。また、図１４に示す理想仮想配置情報は、図１３（Ｂ）の理想仮想配置テーブルから取得した情報である。図１４に示す仮想階層移動幅には、現実仮想配置情報と理想仮想配置情報との差分情報（現実仮想配置情報−理想仮想配置情報）が格納されている。なお、移動幅は、絶対値情報であってもよい。
【０１０３】
ここで、例えば移動幅が３以上のデータを理想仮想配置に移動させるように設定していた場合、図１４の例では、データＩＤの３２及び１２０の移動幅（絶対値）が３以上であるため、移動対象となる。したがって、３２と１２０のデータＩＤについては、理想仮想配置の値を暫定仮想配置とし、それ以外のデータＩＤは、全て現実仮想配置の値を暫定仮想配置に入れる。本実施形態では、所定数以上の階層の移動は、移動の効果が高いため移動を行い、所定数未満の階層の移動は、移動の効果が低く、移動によるシステムの負荷もあるため、移動させないようにする。
【０１０４】
なお、移動幅については、絶対値ではなく、図１４に示すように正負の符号で管理してもよく、その場合は、上限値と下限値とで別々の閾値を設けてもよい。例えば、上限閾値２以上、下限閾値−５以下等であるが、これに限定されるものではない。これにより、上層への移動を優先したり、下層への移動を制限することができる。
【０１０５】
＜各仮想配置の具体例＞
図１５は、各仮想配置の具体例を示す図である。図１５（Ａ）は、現実仮想配置の一例を示し、図１５（Ｂ）は、理想仮想配置の一例を示し、図１５（Ｃ）は暫定仮想配置の一例を示している。また、図１５に例では、高層、中層、低層の３層の物理階層（記憶領域）を有し、それぞれのアクセス速度は「高層＞中層＞低層」の関係を有している。
【０１０６】
また、図１５の例において、高層には１つの仮想階層（仮想階層１）を有し、中層には２つの階層（仮想階層２，３）を有し、低層には３つの仮想階層（仮想階層４〜６）を有しているが、各階層数については、これに限定されるものではない。
【０１０７】
物理階層に対する仮想階層の分割手法については、例えば、ある一定容量（例えば、１０ＧＢ毎等）に分割してもよく、また全ての物理階層を等分割（例えば、各物理階層を３分割ずつ等）があるが、これに限定されるものではない。
【０１０８】
図１５に示す○内の数字は、データＩＤを示すものであるが、説明の便宜上、アクセス回数にも相当するものとする。
【０１０９】
本実施形態では、各層毎に少なくとも１つの仮想階層を設定し、設定した仮想階層を用いて現実に記憶されたデータに対する現実仮想階層（図１５（Ａ））を割り当てる。また、本実施形態では、アクセス頻度（回数）等の所定の条件に基づいてソートされた順番に理想仮想階層（図１５（Ｂ））を割り当てる。そして、本実施形態では、それぞれの仮想階層の移動幅の大きさに基づいて、移動するデータを決定し、その結果に基づく暫定仮想階層を設定する（図１５（Ｃ））。
【０１１０】
＜Ｓ２５：データ容量チェック処理について＞
次に、上述したＳ２５の処理（データ容量チェック処理）についてフローチャートを用いて説明する。図１６は、データ容量チェック処理の一例を示すフローチャートである。図１６の例において、再配置場所決定部２４は、最高の物理階層を選択し（Ｓ９１）、例えば仮想階層テーブルから選択物理階層と同じ物理階層番号を持つ仮想階層番号を得る（Ｓ９２）。
【０１１１】
次に、再配置場所決定部２４は、例えば暫定仮想配置テーブルから得た仮想階層番号と同じ暫定仮想階層を持つデータを順に探し、その各データ容量（データサイズ）を合計する（Ｓ９３）。各データ容量は、例えば現実仮想配置テーブルや理想仮想配置テーブル等から取得することができるが、これに限定されるものではない。
【０１１２】
次に、再配置場所決定部２４は、選択物理階層と同じ物理階層番号の空き容量と、合計した容量とを比較し（Ｓ９４）、合計容量が大きいか否かを判断する（Ｓ９５）。再配置場所決定部２４は、合計容量が大きい場合（Ｓ９５において、ＹＥＳ）、容量オーバー解消処理を行う（Ｓ９６）。また、再配置場所決定部２４は、合計容量が大きくない場合（Ｓ９５において、ＮＯ）、又は、Ｓ９６の処理後、選択物理階層が最低の層か否かを判断する（Ｓ９７）、最低の層でない場合（Ｓ９７において、ＮＯ）、１つ下の物理階層を選択し（Ｓ９８）、Ｓ９２の処理に戻る。また、選択階層が最低の層である場合（Ｓ９７において、ＹＥＳ）、当該処理を終了する。
【０１１３】
暫定仮想階層の決定の際には、移動のキャンセルを行うことで、その階層の物理容量をオーバーする可能性がある。そこで、データ容量チェック処理は、上述したように上から物理階層を選択し、選択された階層から作成された暫定仮想階層に配置されるデータの合計量を計算する。その合計量が物理容量を超えない場合には１つ下の階層に進み、超えるのであればＳ９６の容量オーバー解消処理を行う。
【０１１４】
＜Ｓ９６：容量オーバー解消処理について＞
次に、上述したＳ９６の処理（容量オーバー解消処理）についてフローチャートを用いて説明する。図１７，図１８は、容量オーバー解消処理の一例を示すフローチャート（その１，その２）である。なお、以下の説明では、図１７に示す処理を第１の容量オーバー解消処理とし、図１８に示す処理を第２の容量オーバー解消処理とする。
【０１１５】
図１７の例において、再配置場所決定部２４は、最高の物理階層を選択し（Ｓ１０１）、選択物理階層が最低の層か否かを判断する（Ｓ１０２）。再配置場所決定部２４は、選択物理階層が最低の層でない場合（Ｓ１０２において、ＮＯ）、選択物理階層が容量オーバーか否かを判断する（Ｓ１０３）。再配置場所決定部２４は、容量オーバーでない場合（Ｓ１０３において、ＮＯ）、１つ下の物理階層を選択し（Ｓ１０４）、Ｓ１０２の処理に戻る。
【０１１６】
また、再配置場所決定部２４は、Ｓ１０３の処理において容量オーバーである場合（Ｓ１０３において、ＹＥＳ）、現在の選択物理階層の中で最もアクセス頻度の低いデータを選択し、そのデータの暫定物理階層を１つ下の物理階層に置き換える（Ｓ１０５）。なお、暫定仮想階層のデータは、物理階層毎にリストアップしてアクセス頻度でソートされていてもよいが、これに限定されるものではない。
【０１１７】
次に、再配置場所決定部２４は、選択物理階層が容量不足を解消したか否かを判断し（Ｓ１０６）、解消していない場合（Ｓ１０６において、ＮＯ）、Ｓ１０５の処理に戻る。また、再配置場所決定部２４は、Ｓ１０６の処理において容量不足を解消している場合（Ｓ１０６において、ＹＥＳ）、１つ下の物理階層を選択し（Ｓ１０７）、Ｓ１０２の処理に戻る。
【０１１８】
また、再配置場所決定部２４は、Ｓ１０２の処理において選択物理階層が最低の層である場合（Ｓ１０２において、ＹＥＳ）、選択物理階層が容量オーバーであるか否かを判断し（Ｓ１０８）、容量オーバーである場合（Ｓ１０８において、ＹＥＳ）、図１８に示す第２の容量オーバー解消処理を行う（Ｓ１０９）。
【０１１９】
また、再配置場所決定部２４は、容量オーバーしている場合（Ｓ１０８において、ＮＯ）、又は、Ｓ１０９の処理後、処理を終了する。
【０１２０】
次に、図１８に示す第２の容量オーバー解消処理について説明する。再配置場所決定部２４は、最低の物理階層を選択し（Ｓ１１１）、選択物理階層の最もアクセス頻度の高いデータを選択し、そのデータの暫定物理階層を１つ上の物理階層に書き換える（Ｓ１１２）。なお、暫定仮想階層のデータは、物理階層毎にリストアップしてアクセス頻度でソートされていてもよいが、これに限定されるものではない。
【０１２１】
次に、再配置場所決定部２４は、選択物理階層が容量不足を解消したか否かを判断し（Ｓ１１３）、容量不足を解消していない場合（Ｓ１１３において、ＮＯ）、Ｓ１１２の処理に戻る。また、再配置場所決定部２４は、容量不足を解消している場合（Ｓ１１３において、ＹＥＳ）、１つ上の物理階層が容量オーバーか否かを判断する（Ｓ１１４）。再配置場所決定部２４は、容量オーバーである場合（Ｓ１１４において、ＹＥＳ）、１つ上の物理階層が最高の物理階層か否かを判断する（Ｓ１１５）。再配置場所決定部２４は、最高の物理階層である場合（Ｓ１１５において、ＹＥＳ）、更に上の物理階層が存在しないため、この時点で容量オーバーが解消できなかったと判断し、例外処理として、容量オーバーである旨をユーザに通知し（Ｓ１１６）、処理を終了する。
【０１２２】
また、再配置場所決定部２４は、Ｓ１１５の処理において最高の物理階層でない場合（Ｓ１１５において、ＮＯ）、１つ上の物理階層を選択し（Ｓ１１７）、Ｓ１１２の処理に戻る。なお、図１７、図１８に示す容量オーバー解消処理により移動したデータの情報は、例えば格納物理階層として記憶される。
【０１２３】
＜容量オーバー解消処理を説明するための図＞
図１９は、容量オーバー解消処理を説明するための図である。また、図１９に示す○内の数字は、データＩＤを示すものであるが、説明の便宜上、アクセス回数にも相当するものとする。図１９（Ａ）は、上述した図１５（Ｃ）の暫定仮想階層に対応している。
【０１２４】
容量オーバー解消処理は、図１９（Ａ）に示す状態から、１つの物理階層を選択し、この物理階層に暫定配置されたデータの合計容量が物理層の合計容量を超えるか否かをチェックする。また、オーバーしている場合には、選択物理階層にあるデータのうち、最も低いアクセス回数のデータを選択する。
【０１２５】
図１９（Ａ）の例では、データＩＤ２００、１２０、７０の合計容量が、高層の合計容量を超えている。したがって、再配置場所決定部２４は、高層にあるデータのうち、最も低いアクセス回数のデータであるデータＩＤ７０が選択される。また、再配置場所決定部２４は、選択したデータを１つ下の物理階層に移動させる。図１９（Ｂ）の例では、データＩＤ７０を中層に移動させている。
【０１２６】
上述したような処理を同一階層について容量オーバーが解消されるまで行う。また、再配置場所決定部２４は、容量オーバーが解消したら、１つ下の階層（中層）が容量オーバーしている階層がないかチェックする。
【０１２７】
また、再配置場所決定部２４は、最低層がオーバーしていなければ終了とし、最低層がオーバーしている場合には、上述した図１８に示す第２の容量オーバー解消処理を行う。
【０１２８】
第２の容量オーバー解消処理は、例えば低層が容量オーバーしている場合に、その中で最も高いアクセス頻度を持つデータを選択し、そのデータＩＤを１つ上の物理階層に移動する。上述の処理を低層の容量オーバーが解消されるまで行う。図１９（Ｃ）の例では、データＩＤ６７、６０の順で中層に移動させている。
【０１２９】
次に、再配置場所決定部２４は、１つ上の物理階層（図１９の例において、中層）を選択し、その階層が容量オーバーしていないかチェックする。再配置場所決定部２４は、容量オーバーしていない場合には、第２の容量オーバー解消処理を終了する。
【０１３０】
また、再配置場所決定部２４は、中層で容量オーバーしていた場合には、その階層の中で最も高いアクセス頻度を持つデータ（例えば、データＩＤ１０８）を選択し、そのデータＩＤを１つ上の物理階層（図１９の例において、高層）に移動する。上述の処理を中層の容量オーバーが解消されるまで行う。ここで、もし高層のデータが容量オーバーした場合には、容量オーバーとして例外処理（例えば、エラーメッセージの通知）等を行う。
【０１３１】
＜Ｓ２６：移動データ決定処理について＞
次に、上述したＳ２６の処理（移動データ決定処理）についてフローチャートを用いて説明する。図２０は、移動データの決定処理の一例を示すフローチャートである。
【０１３２】
図２０の例において、再配置場所決定部２４は、例えば暫定仮想配置テーブル等から一番小さいデータＩＤを持つデータを選択し（Ｓ１２１）、選択したデータＩＤに対して、暫定仮想配置テーブルに示す暫定物理階層と、例えば現実仮想配置テーブルに示す格納物理階層とが異なるか否かを判断する（Ｓ１２２）。再配置場所決定部２４は、暫定物理階層と格納物理階層とが異なる場合（Ｓ１２２において、ＹＥＳ）、格納物理階層の内容を移動リストに加える（Ｓ１２３）。
【０１３３】
また、再配置場所決定部２４は、Ｓ１２２の処理において、暫定物理階層と格納物理階層とが異なっていない場合（Ｓ１２２において、ＮＯ）、又は、Ｓ１２３の処理後、全てのデータを調べたか否かを判断する（Ｓ１２４）。再配置場所決定部２４は、全てのデータを調べていない場合（Ｓ１２４において、ＮＯ）、次に小さい番号を選択し（Ｓ１２５）、Ｓ１２２の処理に戻る。また、再配置場所決定部２４は、全てのデータを調べた場合（Ｓ１２４において、ＹＥＳ）、処理を終了する。
【０１３４】
＜移動リストの一例＞
図２１は、移動リストの一例を示す図である。図２１に示す移動リストの項目としては、例えば「データＩＤ」、「移動元物理階層」、「移動先物理階層」等があるが、これに限定されるものではない。
【０１３５】
図２１に示す移動リストの移動元物理階層及び移動先物理階層には、各物理階層（例えば、高層、中層、低層等）が格納されているが、これに限定されるものではなく、例えば物理階層を識別するための番号（物理階層番号）等が格納されていてもよい。
【０１３６】
本実施形態では、図２１に示すような移動リストの情報に基づいて、再配置実行部２５にてデータの再配置処理が実行される。これにより、物理記憶装置２７に対する適切なデータ移動を実現することができ、アクセス性能を効率よく向上させることができる。
【０１３７】
上述したように本実施形態によれば、データの再配置による負荷を軽減してアクセス性能を効率よく向上させることができる。具体的には、本実施形態では、物理的な階層を細分化し、仮想的な階層を作成し、作成した仮想階層内において、相対的評価でデータを理想的な配置と現実の配置を作成し比較することで、効果の低いデータの移動をキャンセルする。
【０１３８】
この場合、本実施形態では、空き容量を確保したり、相対評価による高層優先配置を導入したり、仮想階層の導入等を行う。空き容量の確保では、データを再配置する際に予めデータを割り当てない領域を高層に作ることで、データを新規作成する際の書き込むスペースを空ける。これにより、新規データによる書き込みが起こった場合、高層、つまり高速アクセス可能なディスクの空き容量に書き込むことが可能となり、結果として高いアクセス性能を実現できる。
【０１３９】
また、相対評価による高層優先配置の導入では、再配置する際にデータを絶対評価ではなく、一定の指標値に基づいた相対評価を行い、高層から順に配置する。例えば、アクセス頻度を降順で並べ、高層から順にデータを配置する。これにより、本実施形態では、高層から順にアクセス頻度の高いデータを配置することで絶対評価による配置よりも高いアクセス性能を実現できる。
【０１４０】
更に、仮想階層の導入では、仮想階層を導入することで移動のコストをシミュレーションすることができ、効果の低い移動を抽出できる。例えば、本実施形態では、物理階層を更に細かく分割した仮想階層を用いて、理想的なデータの配置と現実のデータの配置を仮想階層に作成する。また、本実施形態では、２つの配置を比較し、指標値を用いることで移動のコストを計算し、それに対して閾値を設けることで移動の可否を判定する。
【０１４１】
なお、本実施形態における移動のコストには、例えば仮想階層間の移動幅や、データサイズ（データサイズの大きいものを移動しにくくするような評価）、最終移動時間（最近移動したものは移動しにくくするような評価）等を用いて計算する。これにより、物理階層間の移動として捉えるのではなく、仮想階層間の移動として捉えることで、従来手法よりも詳細にデータ移動の妥当性を評価することができる。したがって、相対評価による小さな変化を、全て効果の低い移動として抽出でき、階層間のデータの移動をキャンセルさせることが可能となる。
【０１４２】
なお、評価した結果、閾値や判断基準を設けることで、移動の妥当性を判断することができる。このように無駄な移動がなくなることで、アクセス回数が減少し、全体のアクセス性能が向上させることができる。
【０１４３】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【０１４４】
なお、以上の実施例に関し、更に以下の付記を開示する。
（付記１）
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、
取得した前記指標値に基づいて前記データの移動の可否を決定する、処理をコンピュータに実行させるためのデータ配置プログラム。
（付記２）
前記再配置条件は、前記データに対するアクセス頻度を有し、
前記記憶領域に記憶される他のデータとの相対的なアクセス頻度に基づいて前記指標値を取得することを特徴とする付記１に記載のデータ配置プログラム。
（付記３）
前記階層化された記憶領域に対する仮想階層を設定し、設定された前記仮想階層に、実際に記憶されたデータを割り当てた結果と、予め設定された条件に基づいてデータを割り当てた結果とを用いて前記指標値を取得することを特徴とする付記１又は２に記載のデータ配置プログラム。
（付記４）
前記指標値は、前記実際に記憶されたデータを割り当てた結果に対応する仮想階層数と、前記予め設定された条件に基づいてデータを割り当てた結果に対応する仮想階層数との差分であることを特徴とする付記３に記載のデータ配置プログラム。
（付記５）
前記差分が、予め設定された閾値を超える場合に、前記データを移動対象とすることを特徴とする付記４に記載のデータ配置プログラム。
（付記６）
前記指標値に基づいて決定されたデータの移動の可否から暫定的な仮想配置を決定し、
決定した前記暫定的な仮想配置に属するデータ容量と、前記階層化された記憶領域の容量とを比較し、前記記憶領域の容量がオーバーする場合に、前記オーバーを解消する処理を実行することを特徴とする付記１乃至５の何れか１項に記載のデータ配置プログラム。
（付記７）
前記階層化された記憶領域に新規に作成されたデータを書き込む場合に、前記データをより高層の記憶領域に書き込ませることを特徴とする付記１乃至６の何れか１項に記載のデータ配置プログラム。
（付記８）
情報処理装置が、
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得する指標値取得ステップと、
前記指標値取得ステップにより取得した前記指標値に基づいて前記データの移動の可否を決定する決定ステップとを有することを特徴とするデータ配置方法。
（付記９）
階層化された記憶領域間でデータの移動を行う際に、前記階層化された記憶領域に記憶されたデータに対し、予め設定された再配置条件に基づく指標値を取得し、取得した前記指標値に基づいて前記データの移動の可否を決定する決定部を有することを特徴とする情報処理装置。
【符号の説明】
【０１４５】
１０，１０'  ストレージシステム
１１，１１'  ストレージ装置
１２  端末
１３，１３'  管理サーバ
１４  通信ネットワーク
２１  構成情報管理部
２２  アクセス回数カウント部（算出部）
２３  仮想階層作成部
２４  再配置場所決定部（決定部）
２５  再配置実行部
２６  新規データ書き込み判定部
２７  物理記憶装置
３１  入力装置
３２  出力装置
３３  ドライブ装置
３４  補助記憶装置
３５  主記憶装置
３６  ＣＰＵ
３７  ネットワーク接続装置
３８  記録媒体
【図１】
2014199596.tif 000003
【図２】
2014199596.tif 000004
【図３】
2014199596.tif 000005
【図４】
2014199596.tif 000006
【図５】
2014199596.tif 000007
【図６】
2014199596.tif 000008
【図７】
2014199596.tif 000009
【図８】
2014199596.tif 000010
【図９】
2014199596.tif 000011
【図１０】
2014199596.tif 000012
【図１１】
2014199596.tif 000013
【図１２】
2014199596.tif 000014
【図１３】
2014199596.tif 000015
【図１４】
2014199596.tif 000016
【図１５】
2014199596.tif 000017
【図１６】
2014199596.tif 000018
【図１７】
2014199596.tif 000019
【図１８】
2014199596.tif 000020
【図１９】
2014199596.tif 000021
【図２０】
2014199596.tif 000022
【図２１】
2014199596.tif 000023