(57)【要約】      （修正有）【課題】記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くする。【解決手段】記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。また、期間毎のアクセス数又はアクセス数の変動量を要素とする各範囲のベクトルのクラスタリングによって、範囲間の相関を特定するようにしてもよい。【選択図】図５
2018124915.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理をコンピュータに実行させる解析プログラム。
【請求項２】
前記期間毎の前記アクセス数又は前記アクセス数の変動量を要素とする前記各範囲のベクトルのクラスタリングによって、前記範囲間の相関を特定する
請求項１記載の解析プログラム。
【請求項３】
更に、
前記ベクトルの各々に含まれる前記要素のうち、基準を下回る要素を所定値に変換し、変換された前記ベクトルを前記クラスタリングの対象とする
請求項２記載の解析プログラム。
【請求項４】
前記記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であって、
更に、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理
をコンピュータに実行させる請求項１乃至３のいずれか１つ記載の解析プログラム。
【請求項５】
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理を含み、コンピュータにより実行される解析方法。
【請求項６】
解析装置と、複数の記憶デバイスを制御する制御装置とを含み、
前記解析装置は、
前記複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出する算出部と、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する第１特定部と
を有し、
前記制御装置は、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する第２特定部
を有するストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスへのアクセスを解析する技術に関する。
【背景技術】
【０００２】
例えば補助記憶装置としてＳＳＤ（Solid State Drive）とＨＤＤ（Hard Disk Drive）とを併用するストレージシステムでは、レイテンシの小さいＳＳＤを有効に利用することによって処理性能を高め、安価なＨＤＤで大きな容量を確保することによってコストの低減を図っている。
【０００３】
このようなストレージシステムでは、下位層でＳＳＤのプールとＨＤＤのプールとを管理し、上位層で全体としての論理的な記憶領域を制御するストレージ階層制御が行われることが多い。ストレージ階層制御では、アクセス頻度が高いデータをＳＳＤへ配置することによって、適宜性能を高めるようにしている。
【０００４】
或る特許文献には、同時にアクセスされたデータのパターンに基づいて、事前読み込みを行う技術が開示されている。このように、先んじてアクセスされる範囲を予測できれば、ストレージ階層制御における処理性能を向上させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２１９９２６号公報
【特許文献２】特開２００６−２６００６７号公報
【特許文献３】特開２００３−１６７７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くすることである。
【課題を解決するための手段】
【０００７】
一態様に係る解析方法は、（Ａ）記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、（Ｂ）各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。
【発明の効果】
【０００８】
一側面としては、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
【図面の簡単な説明】
【０００９】
【図１】図１は、システム構成例を示す図である。
【図２】図２は、アプリケーションプログラムの動作例を示す図である。
【図３】図３は、アプリケーションプログラムの動作例を示す図である。
【図４】図４は、アクセス数ベクトルの概要を示す図である。
【図５】図５は、フェーズを示す図である。
【図６】図６は、キャプチャサーバ装置のモジュール構成例を示す図である。
【図７】図７は、範囲テーブルの例を示す図である。
【図８】図８は、期間テーブルの例を示す図である。
【図９】図９は、サンプル収集処理（Ａ）フローを示す図である。
【図１０】図１０は、サンプルテーブルの例を示す図である。
【図１１】図１１は、解析処理（Ａ）フローを示す図である。
【図１２】図１２は、第１ベクトルテーブルの例を示す図である。
【図１３】図１３は、ベクトル生成処理（Ａ）フローを示す図である。
【図１４】図１４は、グループテーブルの例を示す図である。
【図１５】図１５は、適用処理（Ａ）フローを示す図である。
【図１６】図１６は、第２ベクトルテーブルの例を示す図である。
【図１７】図１７は、ベクトル生成処理（Ｂ）フローを示す図である。
【図１８】図１８は、解析処理（Ｂ）フローを示す図である。
【図１９】図１９は、ベクトル変換処理フローを示す図である。
【図２０】図２０は、要素変換処理（Ａ）フローを示す図である。
【図２１】図２１は、要素変換処理（Ｂ）フローを示す図である。
【図２２】図２２は、要素変換処理（Ｃ）フローを示す図である。
【図２３】図２３は、適用処理（Ｂ）フローを示す図である。
【図２４】図２４は、ログテーブルの例を示す図である。
【図２５】図２５は、事前読み込みルーチン処理（Ａ）フローを示す図である。
【図２６】図２６は、適用処理（Ｃ）フローを示す図である。
【図２７】図２７は、事前読み込みルーチン処理（Ｂ）を示す図である。
【図２８】図２８は、サンプル収集処理（Ｂ）フローを示す図である。
【図２９】図２９は、適用処理（Ｄ）フローを示す図である。
【図３０】図３０は、サンプル収集処理（Ｃ）フローを示す図である。
【図３１】図３１は、適用処理（Ｅ）フローを示す図である。
【図３２】図３２は、システム構成例を示す図である。
【図３３】図３３は、サンプル収集処理（Ｄ）フローを示す図である。
【図３４】図３４は、サンプル収集処理（Ｅ）フローを示す図である。
【図３５】図３５は、サンプル収集処理（Ｆ）フローを示す図である。
【図３６】図３６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、システム構成例を示す。クライアント装置１０１ａ乃至ｃは、ネットワークスイッチ１０３を介してストレージサーバ装置１０５と接続している。ストレージサーバ装置１０５は、クライアント装置１０１ａ乃至ｃにおいて動作するアプリケーションプログラム１０９ａ乃至ｃが使用するデータを管理する。クライアント装置１０１ａ乃至ｃから送られるＩ／Ｏ要求は、ネットワークスイッチ１０３を介してストレージサーバ装置１０５へ送られる。具体的には、リードコマンド又はライトコマンドが設定されたパケットが伝送される。以下では、リードコマンド及びライトコマンドをアクセスコマンドという。尚、システムに含まれるクライアント装置１０１は、１台であってもよい。また、クライアント装置１０１において動作するアプリケーションプログラム１０９は、複数であってもよい。
【００１１】
ネットワークスイッチ１０３には、キャプチャサーバ装置１０７が接続されている。キャプチャサーバ装置１０７は、ネットワークスイッチ１０３におけるポートミラーリング機能を利用して、ネットワークスイッチ１０３からストレージサーバ装置１０５へ伝送されるパケットをキャプチャする。そして、キャプチャしたパケットの解析を行う。そして、解析によって生成されたグループテーブルがストレージサーバ装置１０５へ送られる。尚、解析の内容及びグループテーブルについては後述する。
【００１２】
ストレージサーバ装置１０５は、複数の記憶デバイスを有している。この例で、ストレージサーバ装置１０５は、第１記憶デバイス１１５及び第２記憶デバイス１１７を有している。第１記憶デバイス１１５は、例えばＳＳＤである。第２記憶デバイス１１７は、例えばＨＤＤである。ＳＳＤは、ＨＤＤよりもレイテンシが小さい。但し、ＳＳＤは、ＨＤＤよりも高価である。尚、記憶デバイスは、ＳＳＤ及びＨＤＤに限らない。
【００１３】
ここでは第１記憶デバイス１１５及び第２記憶デバイス１１７がストレージサーバ装置１０５に含まれる例を示したが、第１記憶デバイス１１５及び第２記憶デバイス１１７をストレージサーバ装置１０５の外部に設けるようにしてもよい。また、３つ以上の記憶デバイスを制御対象としてもよい。
【００１４】
第１受付部１１１は、アクセスコマンドを受け付け、当該アクセスコマンドをアクセス制御部１１３へ転送する。
【００１５】
アクセス制御部１１３は、ストレージ階層制御を行う。下位層でＳＳＤのプールとＨＤＤのプールとを管理する。これら下位層のプールは、内部的且つ論理的な記憶領域に相当する。アクセス制御部１１３は、下位層のプールと連係する上位層のプールも管理する。上位層のプールも、論理的な記憶領域に相当する。但し、上位層のプールは、ストレージサーバ装置１０５のインターフェースにおける論理アドレスに対応する。ストレージサーバ装置１０５のインターフェースにおける論理アドレスは、例えばＬＢＡ（Logical Block Addressing）である。ＬＢＡは、仮想的なセクタの番号に相当する。仮想的なセクタには、移動単位に相当するデータが割り当てられる。内部的には、移動単位によってデータ管理が行われる。アクセス頻度が低い移動単位は、第２記憶デバイス１１７のプールで管理される。アクセス頻度が高い移動単位は、第１記憶デバイス１１５のプールで管理される。この処理は、例えば配置ポリシーに基づいて自動的に行われる。尚、ストレージサーバ装置１０５のインターフェースにおける論理アドレスは、ＬＢＡ以外であってもよい。
【００１６】
また、アクセス制御部１１３は、事前読み込み処理を行う。事前読み込み対象としてＬＢＡで特定される移動単位が第２記憶デバイス１１７のプールにおいて管理されている場合には、当該移動単位の管理を第１記憶デバイス１１５のプールにおいて行うようにする。その際、移動単位は、第２記憶デバイス１１７から第１記憶デバイス１１５へ移される。当該移動単位が既に第１記憶デバイス１１５のプールにおいて管理されている場合には、当該移動単位の移動は行われない。
【００１７】
第２受付部１１９は、キャプチャサーバ装置１０７から出力されたグループテーブルを受け付ける。グループ記憶部１２１は、受け付けたグループテーブルを記憶する。本実施の形態では、アクセス制御部１１３は、事前読み込み処理においてグループテーブルを利用する。グループテーブルの利用方法については、後述する。
【００１８】
また、ストレージサーバ装置１０５は、ログ記憶部１２３を有する。ログ記憶部１２３は、ログテーブルを記憶する。ログテーブルについては、図２４を用いて後述する。
【００１９】
上述した第１受付部１１１、アクセス制御部１１３及び第２受付部１１９は、ハードウエア資源（例えば、図３６）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２０】
上述したグループ記憶部１２１及びログ記憶部１２３は、ハードウエア資源（例えば、図３６）を用いて実現される。
【００２１】
続いて、アプリケーションプログラム１０９の動作例を示す。まず、図２に示した動作例について説明する。第１段に示すように、アプリケーションプログラム１０９ｂは、或るタイミングでアプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃを起動する。
【００２２】
第２段に示すように、立ち上がったアプリケーションプログラム１０９ａは、ストレージサーバ装置１０５で管理されているデータＡを読み、更にデータＡを更新する処理を繰り返す。この時点で、アプリケーションプログラム１０９ｃはまだ立ち上がっていない。
【００２３】
その後１０秒ほど遅れて、第３段に示すように、アプリケーションプログラム１０９ｃが立ち上がる。そして、アプリケーションプログラム１０９ｃは、ストレージサーバ装置１０５で管理されているデータＢを読み、更にデータＢを更新する処理を繰り返す。
【００２４】
しばらく第３段に示した状態が継続した後、第４段に示すように、或るタイミングでアプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃを停止させる。その後は、データＡ及びデータＢを読む動作及び更新する動作は行われない。
【００２５】
この例で、アプリケーションプログラム１０９ａがデータＡを読んだ時点で、ストレージサーバ装置１０５が内部的にデータＢの事前読み込みを行えば、アプリケーションプログラム１０９ｃが実際にデータＢを読むために要する時間が短くなる。
【００２６】
図３に別の動作例を示す。第１段に示すように、アプリケーションプログラム１０９ｄはデータＣを読み、データＣに関する処理を行う。そして、第２段に示すように、アプリケーションプログラム１０９ｄは、処理結果をアプリケーションプログラム１０９ｅへ渡す。処理結果を受けたアプリケーションプログラム１０９ｅは、当該処理結果に基づいてデータＤを更新する。アプリケーションプログラム１０９ｄがデータＣを読んだ時点からアプリケーションプログラム１０９ｅがデータＤを更新するまでの時間は、５秒程度である。第１段から第３段までの処理が、何度か繰り返される。
【００２７】
この例で、アプリケーションプログラム１０９ｄがデータＣを読んだ時点で、ストレージサーバ装置１０５が内部的にデータＤの事前読み込みを行えば、アプリケーションプログラム１０９ｅが実際にデータＤを更新するために要する時間が短くなる。
【００２８】
本実施の形態では、このように近い時期に生じる傾向があるアクセスに着目する。そのために、アクセス数ベクトルを生成する。続いて、図４を用いてアクセス数ベクトルの概要について説明する。
【００２９】
上段のグラフで、縦軸はＬＢＡを示す。横軸は、経過時間を示す。ＬＢＡは、１ＧｉＢの範囲（エクステントということもある。）に分けられる。範囲の数は、１０００である。２４時間に亘る経過時間は、１分の期間に分けられる。期間の数は、１４４０である。
【００３０】
１つのドットは、１回のアクセスに対応し、アクセスされたＬＢＡ及びアクセスされたタイミングを示す。例えば、計測開始から１分経つまでの間に、２ＧｉＢ以上３ＧｉＢ未満の範囲に含まれるＬＢＡによるアクセスが１回あったことを示している。
【００３１】
下段は、当該グラフに対応するアクセス数ベクトルの例を示している。アクセス数ベクトルは、範囲毎に設けられる。アクセス数ベクトルは、各期間に対応する要素を有する。要素の値は、当該期間において当該範囲内のＬＢＡによるアクセスが行われた回数である。例えば、第３範囲のアクセス数ベクトルに関して、２ＧｉＢ以上３ＧｉＢ未満の範囲内のＬＢＡによるアクセス数が、要素の値に相当する。
【００３２】
近い時期に同じ程度のアクセスが生じた範囲同士は、アクセス数ベクトルが近似する。図２に示した動作例で、アプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃの動作中は、アプリケーションプログラム１０９ａによるアクセスとアプリケーションプログラム１０９ｃによるアクセスとが頻発する。従って、アプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃの動作中に相当する期間における要素の値は、データＡを読むためのＬＢＡを含む範囲のアクセス数ベクトルとデータＢを読むためのＬＢＡを含む範囲のアクセス数ベクトルとのいずれにおいても大きな値となる。一方、アプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃの停止中は、アプリケーションプログラム１０９ａによるアクセスとアプリケーションプログラム１０９ｃによるアクセスとが生じない。従って、アプリケーションプログラム１０９ａ及びアプリケーションプログラム１０９ｃの停止中に相当する期間における要素の値は、データＡを読むためのＬＢＡを含む範囲のアクセス数ベクトルとデータＢを読むためのＬＢＡを含む範囲のアクセス数ベクトルとのいずれにおいても小さい値となる。
【００３３】
また、図３に示した動作例で、アプリケーションプログラム１０９ｄがデータＣを読んだ時点とアプリケーションプログラム１０９ｅがデータＤを更新する時点は、高い確率で同じ期間に含まれる。更に、読む回数と更新する回数も一致する。従って、データＣを読むためのＬＢＡを含む範囲のアクセス数ベクトルとデータＤを更新するためのＬＢＡを含む範囲のアクセス数ベクトルとは近似する。
【００３４】
尚、図２及び図３の動作例で、他の偶発的なアクセスや定常的なアクセスが一緒に生じることがある。但し、これらのアクセスが生じるタイミングはアプリケーションプログラム１０９ａ乃至１０９ｅによるアクセスと無関係であるので、アクセス数ベクトル間の相関を示す特徴は表れない。
【００３５】
本実施の形態では、アクセス数ベクトルのクラスタリングによって、範囲をグループ化する。アクセス数ベクトルのクラスタリングによってグループとなった範囲同士は相関がある。つまり、同じグループに含まれる各範囲内のＬＢＡによるアクセスのタイミングは、集中し易い。
【００３６】
続いて、図５を用いて、本実施の形態におけるフェーズについて説明する。最初のサンプル収集フェーズでは、キャプチャサーバ装置１０７においてパケットをキャプチャし、アクセスコマンドに係るパケットを取得した日時と当該アクセスコマンドのＬＢＡとの組であるサンプルを収集する（Ｓ５０１）。
【００３７】
サンプル収集フェーズに続く解析フェーズでは、キャプチャサーバ装置１０７において、サンプルに基づくアクセス数ベクトルのクラスタリングによって範囲のグループ分けを行う（Ｓ５０３）。
【００３８】
最後の適用フェーズでは、ストレージサーバ装置１０５においてグループ分けの結果を用いて、事前読み込み処理を行う（Ｓ５０５）。以上で本実施の形態における概要の説明を終える。
【００３９】
以下、キャプチャサーバ装置１０７の動作について説明する。図６に、キャプチャサーバ装置１０７のモジュール構成例を示す。キャプチャサーバ装置１０７は、サンプル収集部６０１、サンプル記憶部６０３、解析部６０５、グループ記憶部６０７及び出力部６０９を有する。
【００４０】
サンプル収集部６０１は、パケットをキャプチャし、アクセスコマンドに係るパケットを取得した日時と当該アクセスコマンドのＬＢＡとの組であるサンプルを収集する。サンプル記憶部６０３は、サンプルテーブルを記憶する。サンプルテーブルについては、図１０を用いて後述する。解析部６０５は、サンプルを解析して、アクセス数ベクトルのクラスタリングによって範囲のグループ分けを行う。グループ記憶部６０７は、グループテーブルを記憶する。グループテーブルについては、図１４を用いて後述する。出力部６０９は、グループテーブルを出力する。
【００４１】
サンプル収集部６０１は、キャプチャ部６１１及びロギング部６１３を有する。キャプチャ部６１１は、ネットワークスイッチ１０３からストレージサーバ装置１０５へ伝送されるパケットをキャプチャする。ロギング部６１３は、サンプルテーブルを生成する。
【００４２】
解析部６０５は、ベクトル生成部６２１、範囲記憶部６２３、期間記憶部６２５、ベクトル記憶部６２７及び分類部６２９を有している。ベクトル生成部６２１は、範囲毎のアクセス数ベクトルを生成する。後述する実施の形態において、ベクトル生成部６２１は、範囲毎にアクセス数の変動量のベクトルを生成する。
【００４３】
範囲記憶部６２３は、範囲テーブルを記憶する。範囲テーブルについては、図７を用いて後述する。期間記憶部６２５は、期間テーブルを記憶する。期間テーブルについては、図８を用いて後述する。ベクトル記憶部６２７は、第１ベクトルテーブル及び第２ベクトルテーブルを記憶する。第１ベクトルテーブルについては、図１２を用いて後述する。第２ベクトルテーブルについては、図１６を用いて後述する。
【００４４】
分類部６２９は、範囲を分類する。分類部６２９は、ベクトル変換部６３１及びクラスタリング部６３３を有している。ベクトル変換部６３１は、アクセス数ベクトルを変動量ベクトルに変換する。クラスタリング部６３３は、アクセス数ベクトル及び変動量ベクトルをクラスタリングする。
【００４５】
上述したサンプル収集部６０１、解析部６０５、出力部６０９、キャプチャ部６１１、ロギング部６１３、ベクトル生成部６２１、分類部６２９、ベクトル変換部６３１及びクラスタリング部６３３は、ハードウエア資源（例えば、図３６）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００４６】
上述したサンプル記憶部６０３、グループ記憶部６０７、範囲記憶部６２３、期間記憶部６２５及びベクトル記憶部６２７は、ハードウエア資源（例えば、図３６）を用いて実現される。
【００４７】
図７に、範囲テーブルの例を示す。この例における範囲テーブルは、範囲に対応するレコードを有している。範囲テーブルのレコードは、範囲ＩＤが設定されているフィールドと、ＬＢＡ範囲が設定されているフィールドとを有している。
【００４８】
範囲ＩＤは、範囲を識別する。ＬＢＡ範囲は、記憶領域の区分けによって定まる。この例で、ＬＢＡ範囲のサイズは、１ＧｉＢである。図示した１番目のレコードは、範囲ＩＤ：Ｅ1が、ＬＢＡの０ＧｉＢ以上１ＧｉＢ未満の範囲を識別することを示している。
【００４９】
図８に、期間テーブルの例を示す。この例における期間テーブルは、期間に対応するレコードを有している。期間テーブルのレコードは、期間ＩＤが設定されているフィールドと、期間が設定されているフィールドとを有している。
【００５０】
期間ＩＤは、期間を識別する。この例における期間の長さは、１分である。図示した１番目のレコードは、期間ＩＤ：Ｐ1が、０時０分０秒以降０時１分０秒の直前までの期間を識別することを示している。
【００５１】
続いて、サンプル収集フェーズにおける処理について説明する。本実施の形態では、サンプル収集処理（Ａ）を実行する。図９に、サンプル収集処理（Ａ）フローを示す。キャプチャ部６１１は、ストレージサーバ装置１０５へ送られるパケットをキャプチャする（Ｓ９０１）。ロギング部６１３は、キャプチャされたパケットがアクセスコマンドに該当するか否かを判定する（Ｓ９０３）。キャプチャされたパケットがアクセスコマンドに該当しないと判定した場合には、そのままＳ９０９の処理に移る。
【００５２】
一方、キャプチャされたパケットがアクセスコマンドに該当すると判定した場合には、ロギング部６１３は、当該アクセスコマンドからＬＢＡを抽出する（Ｓ９０５）。ロギング部６１３は、取得日時とＬＢＡとをサンプルテーブルの新たなレコードに格納する（Ｓ９０７）。
【００５３】
図１０に、サンプルテーブルの例を示す。この例におけるサンプルテーブルは、アクセスコマンドに対応するレコードを有している。サンプルテーブルのレコードは、取得日時が格納されるフィールドと、ＬＢＡが格納されるフィールドとを有している。
【００５４】
取得日時は、アクセスコマンドを取得したタイミングを特定する。ＬＢＡは、アクセスされた領域を特定する。図示した１番目のレコードは、２０１７年１月１日の０時０分０１．００秒において、ＬＢＡ：Ｌ1に対するアクセスコマンドを取得したことを示している。
【００５５】
図９の説明に戻る。ロギング部６１３は、終了タイミングに至ったか否かを判定する（Ｓ９０９）。終了タイミングに至っていないと判定した場合には、Ｓ９０１に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理（Ａ）を終える。
【００５６】
次に、解析フェーズにおける処理について説明する。本実施の形態では、解析処理（Ａ）を実行する。図１１に、解析処理（Ａ）フローを示す。ベクトル生成部６２１は、ベクトル生成処理を実行する（Ｓ１１０１）。
【００５７】
本実施の形態におけるベクトル生成処理では、各範囲におけるアクセス数ベクトルを生成する。アクセス数ベクトルは、第１ベクトルテーブルに設定される。
【００５８】
図１２に、第１ベクトルテーブルの例を示す。第１ベクトルテーブルは、範囲に対応するレコードを有している。第１ベクトルテーブルのレコードは、範囲ＩＤが格納されるフィールドと、各期間ＩＤにおけるアクセス数が格納されるフィールドとを有している。
【００５９】
範囲ＩＤは、アクセス数のカウント対象である範囲を特定する。図示した１番目のレコードは、例えば期間ＩＤ：Ｐ1で特定される期間において、範囲ＩＤ：Ｅ1で特定される範囲においてＡ1_1回のアクセスがあったことを示している。
【００６０】
図１３を用いて、本実施の形態におけるベクトル生成処理（Ａ）について詳述する。ベクトル生成部６２１は、範囲を１つ特定する（Ｓ１３０１）。例えば、ベクトル生成部６２１は、昇順に範囲ＩＤを１つ特定する。
【００６１】
ベクトル生成部６２１は、各期間内において当該範囲にアクセスされた回数を要素とするベクトルを生成する（Ｓ１３０３）。
【００６２】
ベクトル生成部６２１は、未処理の範囲があるか否かを判定する（Ｓ１３０５）。未処理の範囲があると判定した場合には、Ｓ１３０１に示した処理に戻って、上述した処理を繰り返す。一方、未処理の範囲がないと判定した場合には、ベクトル生成処理（Ａ）処理を終える。そして、呼び出し元の解析処理（Ａ）に復帰する。
【００６３】
図１１の説明に戻る。クラスタリング部６３３は、クラスタリング処理を実行する（Ｓ１１０３）。クラスタリング処理では、アクセス数ベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。このとき、階層型クラスタリング又は非階層型クラスタリングのいずれを実行するようにしてもよい。これらのクラスタリングは、従来技術と同様であるので、詳細は省略する。尚、本実施の形態におけるクラスタリング処理は、分類部６２９における分類処理に相当する。
【００６４】
クラスタリング処理の結果、グループテーブルが生成される。図１４に、グループテーブルの例を示す。この例におけるグループテーブルは、範囲に対応するレコードを有している。グループテーブルのレコードは、範囲ＩＤが格納されるフィールドと、グループＩＤが格納されるフィールドとを有している。
【００６５】
範囲ＩＤは、分類対象の範囲を特定する。グループＩＤは、当該範囲が属するグループを特定する。図示した１番目のレコードは、範囲ＩＤ：Ｅ1の範囲が、グループＩＤ：Ｇ1のグループに属することを示している。
【００６６】
図１１の説明に戻る。出力部６０９は、グループテーブルを出力する（Ｓ１１０５）。この例では、出力部６０９は、グループテーブルをストレージサーバ装置１０５へ送信する。そして、解析処理（Ａ）を終える。尚、記憶媒体を介してグループテーブルをストレージサーバ装置１０５へ渡すようにしてもよい。
【００６７】
最後に、適用フェーズにおける処理について説明する。本実施の形態では、適用処理（Ａ）を実行する。図１５に、適用処理（Ａ）フローを示す。第２受付部１１９は、キャプチャサーバ装置１０７からグループテーブルを受け付ける（Ｓ１５０１）。適用フェーズが開始される時点までにキャプチャサーバ装置１０７からグループテーブルを受け付けていれば、Ｓ１５０１の処理を省くようにしてもよい。グループテーブルは、グループ記憶部１２１に記憶される。
【００６８】
第１受付部１１１がアクセスコマンドを受け付けると（Ｓ１５０３）、アクセス制御部１１３は、受け付けたアクセスコマンドを実行する（Ｓ１５０５）。リードコマンドの場合には、ＬＢＡで特定される領域からデータを読み出し、Ｉ／Ｏ要求元のクライアント装置１０１へ当該データを送信する。ライトコマンドの場合には、Ｉ／Ｏ要求元のクライアント装置１０１から受信したデータを、ＬＢＡで特定される領域に書き込む。
【００６９】
アクセス制御部１１３は、実行したアクセスコマンドからＬＢＡを抽出する（Ｓ１５０７）。アクセス制御部１１３は、範囲テーブルに基づいて当該ＬＢＡを含む範囲を特定する（Ｓ１５０９）。アクセス制御部１１３は、グループテーブルに基づいて当該範囲が属するグループを特定する（Ｓ１５１１）。
【００７０】
アクセス制御部１１３は、グループテーブルに基づいて当該グループに属する他の範囲を１つ特定する（Ｓ１５１３）。アクセス制御部１１３は、当該他の範囲に関する事前読み込みを実行する（Ｓ１５１５）。
【００７１】
当該他の範囲に含まれる各ＬＢＡについて、当該ＬＢＡで特定される移動単位が第２記憶デバイス１１７のプールにおいて管理されている場合には、当該移動単位の管理を第１記憶デバイス１１５のプールにおいて行うようにする。その際、移動単位は、第２記憶デバイス１１７から第１記憶デバイス１１５へ移される。当該移動単位が既に第１記憶デバイス１１５のプールにおいて管理されている場合には、当該移動単位の移動は行われない。
【００７２】
アクセス制御部１１３は、未特定の他の範囲があるか否かを判定する（Ｓ１５１７）。未特定の他の範囲があると判定した場合には、Ｓ１５１３に示した処理に戻って、上述した処理を繰り返す。一方、未特定の他の範囲がないと判定した場合には、Ｓ１５０３に示した処理に戻って、上述した処理を繰り返す。
【００７３】
本実施の形態によれば、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
【００７４】
また、アクセス数を要素とするベクトルのクラスタリングを行うので、相関のある範囲を特定し易い。
【００７５】
また、グループに基づいて事前読み出し処理の対象となる範囲を特定するので、リソースの有効利用を図り易い。
【００７６】
［実施の形態２］
上述した実施の形態では、アクセス数を要素とするベクトルを生成する例について説明したが、本実施の形態では、アクセス数の変動量を要素とするベクトルを生成する例について説明する。
【００７７】
アクセス数の変動量を要素とするベクトルは、第２ベクトルテーブルに設定される。図１６に、第２ベクトルテーブルの例を示す。第２ベクトルテーブルは、範囲に対応するレコードを有している。第２ベクトルテーブルのレコードは、範囲ＩＤが格納されるフィールドと、各期間ＩＤにおけるアクセス数の変動量が格納されるフィールドとを有している。
【００７８】
アクセス数の変動量は、当該期間におけるアクセス数から直前期間におけるアクセス数を引いた値である。例えば、期間ＩＤ：Ｐ2で特定される期間において、範囲ＩＤ：Ｅ1で特定される範囲の変動量Ｂ1_2は、Ｐ2の期間におけるＥ1の範囲内のアクセス数からＰ1の期間におけるＥ1の範囲内のアクセス数を引いた値である。
【００７９】
本実施の形態では、ベクトル生成処理（Ａ）に代えて、ベクトル生成処理（Ｂ）を実行する。図１７に、ベクトル生成処理（Ｂ）フローを示す。ベクトル生成処理（Ａ）の場合と同様に、ベクトル生成部６２１は、範囲を１つ特定する（Ｓ１７０１）。そして、ベクトル生成部６２１は、ベクトル生成処理（Ａ）の場合と同様に、各期間内において当該範囲にアクセスされた回数を要素とするベクトルを生成する（Ｓ１７０３）。
【００８０】
次に、ベクトル生成部６２１は、期間を１つ特定する（Ｓ１７０５）。例えば、ベクトル生成部６２１は、昇順に期間ＩＤを特定する。
【００８１】
ベクトル生成部６２１は、当該期間内のアクセス数から直前期間内のアクセス数を引いて、変動量を求める（Ｓ１７０７）。そして、ベクトル生成部６２１は、当該アクセス数の変動量を、Ｓ１７０１で特定された範囲の変動量ベクトルの要素に設定する（Ｓ１７０９）。
【００８２】
ベクトル生成部６２１は、未処理の期間があるか否かを判定する（Ｓ１７１１）。未処理の期間があると判定した場合には、Ｓ１７０５に示した処理に戻って、上述した処理を繰り返す。
【００８３】
一方、未処理の期間がないと判定した場合には、ベクトル生成部６２１は、未処理の範囲があるか否かを判定する（Ｓ１７１３）。未処理の範囲があると判定した場合には、Ｓ１７０１に示した処理に戻って、上述した処理を繰り返す。
【００８４】
一方、未処理の範囲がないと判定した場合には、ベクトル生成処理（Ｂ）を終える。そして、呼び出し元の解析処理（Ａ）に復帰する。尚、Ｓ１１０３のクラスタリング処理では、変動量ベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。
【００８５】
本実施の形態によれば、アプリケーションプログラム１０９によるアクセスの増減に特徴がある場合に、範囲間の相関を特定し易い。
【００８６】
［実施の形態３］
本実施の形態では、上述したベクトルにおける要素をクラスタリングに適した値に変換する例について説明する。
【００８７】
本実施の形態では、解析処理（Ａ）に代えて、解析処理（Ｂ）を実行する。図１８に、解析処理（Ｂ）フローを示す。ベクトル生成部６２１は、ベクトル生成処理を実行する（Ｓ１８０１）。このとき、ベクトル生成部６２１は、ベクトル生成処理（Ａ）又はベクトル生成処理（Ｂ）のいずれを実行するようにしてもよい。
【００８８】
ベクトル変換部６３１は、ベクトル変換処理を実行する（Ｓ１８０３）。ベクトル変換処理では、ベクトル生成処理において生成されたベクトルを変換する。図１９に、ベクトル変換処理フローを示す。ベクトル変換部６３１は、範囲に対応するベクトルを１つ特定する（Ｓ１９０１）。例えば、ベクトル変換部６３１は、範囲ＩＤの昇順にベクトルを１つ特定する。
【００８９】
ベクトル変換部６３１は、ベクトルの要素を１つ特定する（Ｓ１９０３）。例えば、ベクトル変換部６３１は、順番に従って要素を特定する。ベクトル変換部６３１は、要素を変換する（Ｓ１９０５）。元の要素の値を新たな要素の値に変換する。
【００９０】
例えば、新たな要素の値として、元の値の平方根を求めるようにしてもよい。平方根に変換すれば、例えばアクセス数が極端に多い場合に、その影響を抑制することができる。
【００９１】
また、新たな要素の値として、ｌｏｇe（元の値＋１）を求めるようにしてもよい。平方根の場合と同様に、例えばアクセス数が極端に多い場合に、その影響を抑制することができる。但し、抑制の程度が異なる。
【００９２】
図２０に示した要素変換処理（Ａ）を実行するようにしてもよい。要素変換処理（Ａ）では、閾値による判定を行って元の値を２値に変換する。
【００９３】
ベクトル変換部６３１は、元の要素、つまり変換元のベクトルにおける要素の値が閾値以上であるか否かを判定する（Ｓ２００１）。
【００９４】
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部６３１は、新たな要素の値を１とする（Ｓ２００３）。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部６３１は、新たな要素の値を０とする（Ｓ２００５）。要素変換処理（Ａ）を終えると、ベクトル変換処理に復帰する。
【００９５】
また、図２１に示した要素変換処理（Ｂ）を実行するようにしてもよい。要素変換処理（Ｂ）では、元の値が閾値以上である場合に、対数変換を行う。
【００９６】
要素変換処理（Ａ）の場合と同様に、ベクトル変換部６３１は、元の要素の値が閾値以上であるか否かを判定する（Ｓ２１０１）。
【００９７】
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部６３１は、ｌｏｇ（元の要素の値−閾値＋１）を算出し、新たな要素の値とする（Ｓ２１０３）。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部６３１は、新たな要素の値を０とする（Ｓ２１０５）。要素変換処理（Ｂ）を終えると、ベクトル変換処理に復帰する。
【００９８】
更に、図２２に示した要素変換処理（Ｃ）を実行するようにしてもよい。要素変換処理（Ｂ）では、元の値が閾値以上である場合に、平方根変換を行う。
【００９９】
要素変換処理（Ａ）の場合と同様に、ベクトル変換部６３１は、元の要素の値が閾値以上であるか否かを判定する（Ｓ２２０１）。
【０１００】
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部６３１は、（元の要素の値−閾値）の平方根を算出し、新たな要素の値とする（Ｓ２２０３）。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部６３１は、新たな要素の値を０とする（Ｓ２２０５）。要素変換処理（Ｃ）を終えると、ベクトル変換処理に復帰する。
【０１０１】
図１９の説明に戻る。ベクトル変換部６３１は、未処理の要素があるか否かを判定する（Ｓ１９０７）。未処理の要素があると判定した場合には、Ｓ１９０３に示した処理に戻って、上述した処理を繰り返す。
【０１０２】
一方、未処理の要素がないと判定した場合には、ベクトル変換部６３１は、未処理のベクトルがあるか否かを判定する（Ｓ１９０９）。未処理のベクトルがあると判定した場合には、Ｓ１９０１に示した処理に戻って、上述した処理を繰り返す。
【０１０３】
一方、未処理のベクトルがないと判定した場合には、ベクトル変換処理を終える。そして、解析処理（Ｂ）に復帰する。
【０１０４】
図１８の説明に戻る。クラスタリング部６３３は、クラスタリング処理を実行する（Ｓ１８０５）。クラスタリング処理では、変換されたベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。上述した通り、階層型クラスタリング又は非階層型クラスタリングのいずれを実行するようにしてもよい。尚、本実施の形態におけるベクトル生成処理及びクラスタリング処理は、分類部６２９における分類処理に相当する。
【０１０５】
出力部６０９は、グループテーブルを出力する（Ｓ１８０７）。そして、解析処理（Ｂ）を終える。
【０１０６】
本実施の形態によれば、ベクトルの各々に含まれる要素のうち、基準を下回る要素を所定値に変換し、変換されたベクトルをクラスタリングの対象とするので、例えば偶発的なアクセス或いは定常的なアクセスに起因する解析誤差を排除し易い。
【０１０７】
［実施の形態４］
本実施の形態では、第２の適用例について説明する。第２の適用例では、アクセスコマンドを受け付けないときに事前読み込みを行う。
【０１０８】
本実施の形態では、適用処理（Ａ）に代えて、適用処理（Ｂ）を実行する。図２３に、適用処理（Ｂ）フローを示す。アクセス制御部１１３は、第１受付部１１１においてアクセスコマンドを受け付けたか否かを判定する（Ｓ２３０１）。
【０１０９】
アクセスコマンドを受け付けたと判定した場合には、アクセス制御部１１３は、受け付けたアクセスコマンドを実行する（Ｓ２３０３）。アクセス制御部１１３は、実行したアクセスコマンドからＬＢＡを抽出する（Ｓ２３０５）。アクセス制御部１１３は、ＬＢＡを含む範囲を特定し、ＬＢＡ及び範囲の組をログテーブルに記録する（Ｓ２３０７）。そして、Ｓ２３０１の処理に戻る。
【０１１０】
図２４に、ログテーブルの例を示す。この例におけるログテーブルは、１回のアクセスに対応するレコードを有している。ログテーブルのレコードは、アクセス日時が格納されるフィールドと、範囲ＩＤが格納されるフィールドとを有している。
【０１１１】
アクセス日時は、アクセスされたタイミングを特定する。範囲ＩＤは、アクセスされたＬＢＡを含む範囲を特定する。
【０１１２】
図示した１番目のレコードは、範囲ＩＤ：Ｅ2に含まれるＬＢＡへのアクセスが、日時：Ｔ1に行われたことを示している。
【０１１３】
図２３の説明に戻る。Ｓ２３０１においてアクセスコマンドを受け付けていないと判定した場合には、アクセス制御部１１３は、事前読み込みルーチン処理（Ａ）を起動する（Ｓ２３０９）。事前読み込みルーチン処理（Ａ）は、適用処理（Ｂ）と並行に動作する。
【０１１４】
図２５に、事前読み込みルーチン処理（Ａ）フローを示す。アクセス制御部１１３は、ログテーブルに基づいて、直近の期間で最もアクセスが多かった範囲を特定する（Ｓ２５０１）。更に、アクセス制御部１１３は、グループテーブルに基づいて、当該範囲が属するグループを特定する（Ｓ２５０３）。
【０１１５】
アクセス制御部１１３は、グループテーブルに基づいて当該グループに属する他の範囲を１つ特定する（Ｓ２５０５）。例えば、アクセス制御部１１３は、昇順に範囲ＩＤを特定する。アクセス制御部１１３は、当該他の範囲に関する事前読み込みを実行する（Ｓ２５０７）。
【０１１６】
アクセス制御部１１３は、未特定の他の範囲があるか否かを判定する（Ｓ２５０９）。未特定の他の範囲があると判定した場合には、Ｓ２５０５に示した処理に戻って、上述した処理を繰り返す。
【０１１７】
一方、未特定の他の範囲がないと判定した場合には、事前読み込みルーチン処理（Ａ）を終える。
【０１１８】
本実施の形態によれば、アクセスコマンドが集中している間は事前読み込みを行わないので、Ｉ／Ｏ要求に対する応答性能を高めることができる。
【０１１９】
［実施の形態５］
本実施の形態では、第３の適用例について説明する。第３の適用例では、周期的に事前読み込みを行う。
【０１２０】
本実施の形態では、適用処理（Ｃ）を実行する。図２６に、適用処理（Ｃ）フローを示す。アクセス制御部１１３は、第１受付部１１１においてアクセスコマンドを受け付けたか否かを判定する（Ｓ２６０１）。
【０１２１】
アクセスコマンドを受け付けていないと判定した場合には、Ｓ２６０１の処理を繰り返す。
【０１２２】
一方、アクセスコマンドを受け付けていると判定した場合には、アクセス制御部１１３は、アクセスコマンドを実行する（Ｓ２６０３）。
【０１２３】
Ｓ２６０３乃至Ｓ２６０７に示した処理は、図２３のＳ２３０３乃至Ｓ２３０７に示した処理の場合と同様である。
【０１２４】
本実施の形態では、適用処理（Ｃ）と並行に事前読み込みルーチン処理（Ｂ）を動作させる。図２７に、事前読み込みルーチン処理（Ｂ）を示す。Ｓ２７０１乃至Ｓ２７０９に示した処理は、図２５のＳ２５０１乃至Ｓ２５０９に示した処理と同様である。
【０１２５】
アクセス制御部１１３は、一定時間待機して（Ｓ２７１１）、Ｓ２７０１に示した処理に戻って、上述した処理を繰り返す。
【０１２６】
本実施の形態によれば、事前読み込みの処理負担を時間的に分散することができる。
【０１２７】
［実施の形態６］
上述した実施の形態では、リードコマンド及びライトコマンドに関する事前読み込みを行う例について説明したが、本実施の形態では、リードコマンドに関する事前読み込みを行う例について説明する。
【０１２８】
本実施の形態では、例えばサンプル収集処理（Ａ）に代えて、サンプル収集処理（Ｂ）を実行する。図２８に、サンプル収集処理（Ｂ）フローを示す。Ｓ９０１に示した処理は、図９の場合と同様である。
【０１２９】
ロギング部６１３は、キャプチャされたパケットがリードコマンドに該当するか否かを判定する（Ｓ２８０１）。キャプチャされたパケットがリードコマンドに該当しないと判定した場合には、そのままＳ９０９の処理に移る。
【０１３０】
一方、キャプチャされたパケットがリードコマンドに該当すると判定した場合には、ロギング部６１３は、リードコマンドからＬＢＡを抽出する（Ｓ２８０３）。
【０１３１】
Ｓ９０７及びＳ９０９に示した処理は、図９の場合と同様である。
【０１３２】
本実施の形態では、例えば適用処理（Ａ）に代えて、適用処理（Ｄ）を実行する。図２９に、適用処理（Ｄ）フローを示す。Ｓ１５０１乃至Ｓ１５０５に示した処理は、図１５の場合と同様である。
【０１３３】
アクセス制御部１１３は、実行したアクセスコマンドがリードコマンドであったか否かを判定する（Ｓ２９０１）。実行したアクセスコマンドがリードコマンドではなかったと判定した場合には、Ｓ１５０３に示した処理に戻って、上述した処理を繰り返す。
【０１３４】
一方、実行したアクセスコマンドがリードコマンドであったと判定した場合には、アクセス制御部１１３は、当該リードコマンドからＬＢＡを抽出する（Ｓ２９０３）。
【０１３５】
Ｓ１５０９乃至Ｓ１５１７に示した処理は、図１５の場合と同様である。
【０１３６】
本実施の形態によれば、例えばリード処理の性能を重視するアプリケーションプログラム１０９が多い場合に、リード処理の高速化を優先してリソースを使うようにできる。
【０１３７】
［実施の形態７］
本実施の形態では、ライトコマンドに関する事前読み込みを行う例について説明する。
【０１３８】
本実施の形態では、例えばサンプル収集処理（Ａ）に代えて、サンプル収集処理（Ｃ）を実行する。図３０に、サンプル収集処理（Ｃ）フローを示す。Ｓ９０１に示した処理は、図９の場合と同様である。
【０１３９】
ロギング部６１３は、キャプチャされたパケットがライトコマンドに該当するか否かを判定する（Ｓ３００１）。キャプチャされたパケットがライトコマンドに該当しないと判定した場合には、そのままＳ９０９の処理に移る。
【０１４０】
一方、キャプチャされたパケットがライトコマンドに該当すると判定した場合には、ロギング部６１３は、ライトコマンドからＬＢＡを抽出する（Ｓ３００３）。
【０１４１】
Ｓ９０７及びＳ９０９に示した処理は、図９の場合と同様である。
【０１４２】
本実施の形態では、例えば適用処理（Ａ）に代えて、適用処理（Ｅ）を実行する。図３１に、適用処理（Ｅ）フローを示す。Ｓ１５０１乃至Ｓ１５０５に示した処理は、図１５の場合と同様である。
【０１４３】
アクセス制御部１１３は、実行したアクセスコマンドがライトコマンドであったか否かを判定する（Ｓ３１０１）。実行したアクセスコマンドがライトコマンドではなかったと判定した場合には、Ｓ１５０３に示した処理に戻って、上述した処理を繰り返す。
【０１４４】
一方、実行したアクセスコマンドがライトコマンドであったと判定した場合には、アクセス制御部１１３は、当該ライトコマンドからＬＢＡを抽出する（Ｓ３１０３）。
【０１４５】
Ｓ１５０９乃至Ｓ１５１７に示した処理は、図１５の場合と同様である。
【０１４６】
本実施の形態によれば、例えばライト処理の性能を重視するアプリケーションプログラム１０９が多い場合に、ライト処理の高速化を優先してリソースを使うようにできる。
【０１４７】
［実施の形態８］
本実施の形態では、ストレージサーバ装置１０５においてサンプル収集及び解析を行う例について説明する。
【０１４８】
図３２に、システム構成例を示す。ストレージサーバ装置１０５は、第１受付部１１１、アクセス制御部１１３、第１記憶デバイス１１５、第２記憶デバイス１１７、グループ記憶部１２１及びログ記憶部１２３の他に、サンプル収集部３２０１、サンプル記憶部３２０３及び解析部３２０５を有する。
【０１４９】
サンプル収集部３２０１は、取得部３２１１及びロギング部３２１３を有する。取得部３２１１は、第１受付部１１１からアクセスコマンドを取得する。ロギング部３２１３は、ロギング部６１３と同様である。サンプル記憶部３２０３は、サンプル記憶部６０３と同様である。解析部３２０５は、グループテーブルの出力を省く点を除き解析部６０５と同様である。
【０１５０】
上述したサンプル収集部３２０１、解析部３２０５、取得部３２１１及びロギング部３２１３は、ハードウエア資源（例えば、図３６）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１５１】
上述したサンプル記憶部３２０３は、ハードウエア資源（例えば、図３６）を用いて実現される。
【０１５２】
本実施の形態のストレージサーバ装置１０５は、サンプル収集処理（Ｄ）を実行する。図３３に、サンプル収集処理（Ｄ）フローを示す。取得部３２１１は、第１受付部１１１からアクセスコマンドを取得する（Ｓ３３０１）。ロギング部３２１３は、取得したアクセスコマンドからＬＢＡを抽出する（Ｓ３３０３）。ロギング部３２１３は、取得日時とＬＢＡとをサンプルテーブルの新たなレコードに格納する（Ｓ３３０５）。
【０１５３】
ロギング部３２１３は、終了タイミングに至ったか否かを判定する（Ｓ３３０７）。終了タイミングに至っていないと判定した場合には、Ｓ３３０１に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理（Ｄ）を終える。
【０１５４】
ストレージサーバ装置１０５における適用処理は、グループテーブルの受け付けを省く点を除き、上述した実施の形態と同様である。
【０１５５】
実施の形態６で説明したように、リードコマンドに関する事前読み込みを行うようにしてもよい。その場合に、ストレージサーバ装置１０５は、サンプル収集処理（Ｅ）を実行する。
【０１５６】
図３４に、サンプル収集処理（Ｅ）フローを示す。取得部３２１１は、第１受付部１１１からリードコマンドを取得する（Ｓ３４０１）。ロギング部３２１３は、取得したリードコマンドからＬＢＡを抽出する（Ｓ３４０３）。ロギング部３２１３は、取得日時とＬＢＡとをサンプルテーブルの新たなレコードに格納する（Ｓ３４０５）。
【０１５７】
ロギング部３２１３は、終了タイミングに至ったか否かを判定する（Ｓ３４０７）。終了タイミングに至っていないと判定した場合には、Ｓ３４０１に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理（Ｅ）を終える。
【０１５８】
実施の形態７で説明したように、ライトコマンドに関する事前読み込みを行うようにしてもよい。その場合に、ストレージサーバ装置１０５は、サンプル収集処理（Ｆ）を実行する。
【０１５９】
図３５に、サンプル収集処理（Ｆ）フローを示す。取得部３２１１は、第１受付部１１１からライトコマンドを取得する（Ｓ３５０１）。ロギング部３２１３は、取得したライトコマンドからＬＢＡを抽出する（Ｓ３５０３）。ロギング部３２１３は、取得日時とＬＢＡとをサンプルテーブルの新たなレコードに格納する（Ｓ３５０５）。
【０１６０】
ロギング部３２１３は、終了タイミングに至ったか否かを判定する（Ｓ３５０７）。終了タイミングに至っていないと判定した場合には、Ｓ３５０１に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理（Ｆ）を終える。
【０１６１】
本実施の形態によれば、システムの構成を単純にすることができる。例えばＩ／Ｏ要求が比較的少ない場合やストレージサーバ装置１０５の処理能力が高い場合には、キャプチャサーバ装置１０７を設けなくてもよい。
【０１６２】
尚、補助記憶装置に対するアクセスを解析する例について説明したが、主記憶装置に対するアクセスを解析する場合に本実施の形態を適用するようにしてもよい。
【０１６３】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１６４】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１６５】
なお、上で述べたストレージサーバ装置１０５及びキャプチャサーバ装置１０７は、コンピュータ装置であって、図３６に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーションプログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーションプログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１６７】
本実施の形態に係る解析方法は、（Ａ）記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、（Ｂ）各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。
【０１６８】
このようにすれば、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
【０１６９】
また、期間毎のアクセス数又はアクセス数の変動量を要素とする各範囲のベクトルのクラスタリングによって、範囲間の相関を特定するようにしてもよい。
【０１７０】
このようにすれば、相関のある範囲を特定し易い。
【０１７１】
更に、ベクトルの各々に含まれる要素のうち、基準を下回る要素を所定値に変換し、変換されたベクトルをクラスタリングの対象とするようにしてもよい。
【０１７２】
このようにすれば、例えば偶発的なアクセス或いは定常的なアクセスに起因する解析誤差を排除し易い。
【０１７３】
また、記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であってもよい。更に、範囲間の相関に基づいて、ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理を含むようにしてもよい。
【０１７４】
このようにすれば、リソースの有効利用を図り易い。
【０１７５】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７７】
（付記１）
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理をコンピュータに実行させる解析プログラム。
【０１７８】
（付記２）
前記期間毎の前記アクセス数又は前記アクセス数の変動量を要素とする前記各範囲のベクトルのクラスタリングによって、前記範囲間の相関を特定する
付記１記載の解析プログラム。
【０１７９】
（付記３）
更に、
前記ベクトルの各々に含まれる前記要素のうち、基準を下回る要素を所定値に変換し、変換された前記ベクトルを前記クラスタリングの対象とする
付記２記載の解析プログラム。
【０１８０】
（付記４）
前記記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であって、
更に、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理
をコンピュータに実行させる付記１乃至３のいずれか１つ記載の解析プログラム。
【０１８１】
（付記５）
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理を含み、コンピュータにより実行される解析方法。
【０１８２】
（付記６）
解析装置と、複数の記憶デバイスを制御する制御装置とを含み、
前記解析装置は、
前記複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出する算出部と、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する第１特定部と
を有し、
前記制御装置は、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する第２特定部
を有するストレージシステム。
【符号の説明】
【０１８３】
１０１  クライアント装置    １０３  ネットワークスイッチ
１０５  ストレージサーバ装置    １０７  キャプチャサーバ装置
１０９  アプリケーションプログラム    １１１  第１受付部
１１３  アクセス制御部    １１５  第１記憶デバイス
１１７  第２記憶デバイス    １１９  第２受付部
１２１  グループ記憶部    １２３  ログ記憶部
６０１  サンプル収集部    ６０３  サンプル記憶部
６０５  解析部    ６０７  グループ記憶部
６０９  出力部    ６１１  キャプチャ部
６１３  ロギング部    ６２１  ベクトル生成部
６２３  範囲記憶部    ６２５  期間記憶部
６２７  ベクトル記憶部    ６２９  分類部
６３１  ベクトル変換部    ６３３  クラスタリング部
３２０１  サンプル収集部    ３２０３  サンプル記憶部
３２０５  解析部    ３２１１  取得部
３２１３  ロギング部
【図１】
2018124915.tif 000003
【図２】
2018124915.tif 000004
【図３】
2018124915.tif 000005
【図４】
2018124915.tif 000006
【図５】
2018124915.tif 000007
【図６】
2018124915.tif 000008
【図７】
2018124915.tif 000009
【図８】
2018124915.tif 000010
【図９】
2018124915.tif 000011
【図１０】
2018124915.tif 000012
【図１１】
2018124915.tif 000013
【図１２】
2018124915.tif 000014
【図１３】
2018124915.tif 000015
【図１４】
2018124915.tif 000016
【図１５】
2018124915.tif 000017
【図１６】
2018124915.tif 000018
【図１７】
2018124915.tif 000019
【図１８】
2018124915.tif 000020
【図１９】
2018124915.tif 000021
【図２０】
2018124915.tif 000022
【図２１】
2018124915.tif 000023
【図２２】
2018124915.tif 000024
【図２３】
2018124915.tif 000025
【図２４】
2018124915.tif 000026
【図２５】
2018124915.tif 000027
【図２６】
2018124915.tif 000028
【図２７】
2018124915.tif 000029
【図２８】
2018124915.tif 000030
【図２９】
2018124915.tif 000031
【図３０】
2018124915.tif 000032
【図３１】
2018124915.tif 000033
【図３２】
2018124915.tif 000034
【図３３】
2018124915.tif 000035
【図３４】
2018124915.tif 000036
【図３５】
2018124915.tif 000037
【図３６】
2018124915.tif 000038