(57)【要約】【課題】複数の記憶階層におけるデータの適切な配置先を決定する。【解決手段】データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置６から、第１のデータに対する読出要求を受信する受信部２２と、互いに読出性能の異なる複数の記憶階層３０のうちの前記第１のデータを記憶する第１の記憶階層３０から、前記第１のデータを読み出し、読み出した前記第１のデータを前記読出要求に応じて前記処理装置６へ送信する送信部２２、２３と、前記処理装置６による前記所定の処理の処理時間を測定する測定部２４と、前記複数の記憶階層３０の各々の読出性能と、測定した前記処理時間とに基づいて、前記複数の記憶階層３０の中から、前記第１のデータを記憶させる記憶階層３０を決定する決定部２５と、前記第１のデータを、前記第１の記憶階層３０から、決定した前記記憶階層３０へ移動する移動部２６と、を備える。【選択図】図６
2020135683.tif 000002
【特許請求の範囲】
【請求項１】
データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置から、前記複数のデータのうちの第１のデータに対する読出要求を受信する受信部と、
互いに読出性能の異なる複数の記憶階層のうちの前記第１のデータを記憶する第１の記憶階層から、前記第１のデータを読み出し、読み出した前記第１のデータを、前記読出要求に応じて前記処理装置へ送信する送信部と、
前記処理装置による前記所定の処理の処理時間を測定する測定部と、
前記複数の記憶階層の各々の読出性能と、前記測定部が測定した前記処理時間とに基づいて、前記複数の記憶階層の中から、前記第１のデータを記憶させる記憶階層を決定する決定部と、
前記第１のデータを、前記第１の記憶階層から、決定した前記記憶階層へ移動する移動部と、を備える、
制御装置。
【請求項２】
前記複数のデータは、Ｎ個のデータであり、
前記第１のデータは、第ｉ（ｉは１以上且つＮ以下）のデータであり、
前記測定部は、前記受信部が前記第ｉのデータに対する読出要求を受信した受信時刻と、前記送信部が前記複数のデータのうちの第（ｉ−１）のデータを前記処理装置に送信した送信時刻と、に基づいて、前記処理装置による前記第ｉのデータに対する前記所定の処理の前記処理時間を算出する、
請求項１に記載の制御装置。
【請求項３】
前記決定部による、前記第１のデータを記憶させる前記記憶階層の決定は、
前記複数の記憶階層の各々の読出性能に基づいて、前記複数の記憶階層の各々から前記第１のデータを読み出す場合のそれぞれの読出完了時刻を推定し、
前記測定部が測定した前記処理時間に基づいて、前記受信部が前記第１のデータに対する読出要求を受信する場合の推定受信時刻を推定し、
推定した複数の前記読出完了時刻と、推定した前記推定受信時刻とに基づいて、前記第１のデータを記憶させる前記記憶階層を決定する、
請求項１又は請求項２に記載の制御装置。
【請求項４】
前記決定部は、
前記複数の読出完了時刻において、前記推定受信時刻以前である１以上の読出完了時刻が存在するか否かを判定し、
前記１以上の読出完了時刻が存在する場合、前記１以上の読出完了時刻のうちの、前記推定受信時刻との時刻差が最小である読出完了時刻に対応する記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
請求項３に記載の制御装置。
【請求項５】
前記決定部は、前記１以上の読出完了時刻が存在しない場合、前記複数の記憶階層のうちの読出性能の高い順に選択される記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
請求項４に記載の制御装置。
【請求項６】
前記処理装置は、前記複数のデータの各々に対して前記所定の処理を行なう、一連の処理を１単位として、前記一連の処理を複数回実行し、
前記決定部は、前記一連の処理の完了後であって、次の前記一連の処理が実行される前に、前記第１のデータを記憶させる前記記憶階層を決定する、
請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記決定部は、前記複数のデータの各々を記憶させる記憶階層をそれぞれ決定し、
前記移動部は、前記複数のデータの各々を、決定した前記記憶階層へそれぞれ移動する、
請求項１〜６のいずれか１項に記載の制御装置。
【請求項８】
コンピュータに、
データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置から、前記複数のデータのうちの第１のデータに対する読出要求を受信し、
互いに読出性能の異なる複数の記憶階層のうちの前記第１のデータを記憶する第１の記憶階層から、前記第１のデータを読み出し、
読み出した前記第１のデータを、前記読出要求に応じて前記処理装置へ送信し、
前記処理装置による前記所定の処理の処理時間を測定し、
前記複数の記憶階層の各々の読出性能と、測定した前記処理時間とに基づいて、前記複数の記憶階層の中から、前記第１のデータを記憶させる記憶階層を決定し、
前記第１のデータを、前記第１の記憶階層から、決定した前記記憶階層へ移動する、
処理を実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、及び制御プログラムに関する。
【背景技術】
【０００２】
データを格納する情報処理システムとして、複数の記憶装置（記憶媒体）を組み合わせた階層ストレージシステムが知られている。記憶装置の種類（種別）としては、例えば、性能の高い（アクセス速度の速い）順に、ＳＳＤ（Solid State Drive）、ＨＤＤ（Hard Disk Drive）、テープドライブ（ＴＤ；Tape Drive）、等が挙げられる。
【０００３】
階層ストレージシステムにおいては、ストレージ制御装置等の制御装置（以下、「サーバ」と表記する場合がある）が、データへのアクセス頻度に応じて、データを配置する記憶装置の階層（記憶階層）を変更する階層制御を行なうことがある。
【０００４】
階層制御では、サーバは、アクセス頻度の低いデータを性能の低い記憶装置に配置する一方、アクセス頻度の高いデータ又は当該データに関連するデータを性能の高い記憶装置に配置する。これにより、階層ストレージシステムは、性能の高い記憶装置の使用効率を高めることができ、アクセス元である情報処理装置（以下、「クライアント」と表記する場合がある）に対する応答性能を向上させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６-７９４３２号公報
【特許文献２】特表２０１５-５０１９５８号公報
【特許文献３】特開２００３-１３１９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
階層ストレージシステムには、人工知能（ＡＩ；Artificial Intelligence）を利用した機械学習又はデータマイニング等の一連の処理で利用されるデータが格納されることがある。なお、「一連の処理」は、体系化され反復的に行なわれ得る処理群を意味し、「ワークフロー」又は「ＷＦ」（Workflow）と称されてもよい。
【０００７】
機械学習やデータマイニング等のＷＦでは、クライアントは、従来の人手（人力）で行なわれるアクセスに代えて、ＷＦを実行するためのアプリケーションにより、階層ストレージシステムに対するアクセス（例えばデータの読み出し）を行なう。
【０００８】
当該アプリケーションから階層ストレージシステムへのアクセスは、例えば、アクセス対象のデータ範囲やその遷移、アクセスの頻度や回数、等の点において、従来の人手で行なわれるアクセスとは異なるアクセス傾向を持つ場合がある。
【０００９】
そのため、階層ストレージシステムにおいては、サーバにより、このようなアプリケーションを実行するクライアントからのアクセスに対する適切な階層制御が行なわれず、当該クライアントに対する応答性能が低下する場合がある。
【００１０】
１つの側面では、本発明は、複数の記憶階層におけるデータの適切な配置先を決定することを目的の１つとする。
【課題を解決するための手段】
【００１１】
１つの側面では、制御装置は受信部と、送信部と、測定部と、決定部と、移動部と、を備えてよい。前記受信部は、データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置から、前記複数のデータのうちの第１のデータに対する読出要求を受信してよい。前記送信部は、互いに読出性能の異なる複数の記憶階層のうちの前記第１のデータを記憶する第１の記憶階層から、前記第１のデータを読み出し、読み出した前記第１のデータを、前記読出要求に応じて前記処理装置へ送信してよい。前記測定部は、前記処理装置による前記所定の処理の処理時間を測定してよい。前記決定部は、前記複数の記憶階層の各々の読出性能と、前記測定部が測定した前記処理時間とに基づいて、前記複数の記憶階層の中から、前記第１のデータを記憶させる記憶階層を決定してよい。前記移動部は、前記第１のデータを、前記第１の記憶階層から、決定した前記記憶階層へ移動してよい。
【発明の効果】
【００１２】
１つの側面では、複数の記憶階層におけるデータの適切な配置先を決定することができる。
【図面の簡単な説明】
【００１３】
【図１】クライアント及びサーバの動作例を時系列で示す図である。
【図２】図１に示すワークフロー後に、サーバがデータセットをＨＤＤからＳＳＤに再配置した場合の例を示す図である。
【図３】図１に比べて処理時間の長いワークフロー後に、サーバがデータセットをＨＤＤからＳＳＤに再配置した場合の例を示す図である。
【図４】一実施形態の一例としての階層ストレージシステムの構成例を示すブロック図である。
【図５】一実施形態に係るコンピュータのハードウェア構成例を示すブロック図である。
【図６】一実施形態の一例としてのストレージ制御装置の機能構成例を示すブロック図である。
【図７】階層テーブルの一例を示す図である。
【図８】計測値の一例を示す図である。
【図９】パラメータの一例を示す図である。
【図１０】処理装置の動作状態とパラメータとの関係の一例を説明する図である。
【図１１】処理装置の動作状態とパラメータとの関係の一例を説明する図である。
【図１２】判定部による判定処理の一例を説明する図である。
【図１３】判定部による判定処理の一例を説明する図である。
【図１４】一実施形態に係るストレージ制御装置の動作例を説明するフローチャートである。
【図１５】図１４に示す再配置先算出処理の動作例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１５】
〔１〕一実施形態
〔１−１〕比較例
まず、一実施形態の比較例について説明する。階層ストレージシステムにおいて、サーバは、ネットワークを介して接続された複数のクライアントからの要求に応じて、記憶装置に対するアクセスを行なう。
【００１６】
以下、クライアントが、階層ストレージシステムに格納されているデータを順次読み出し、画像認識等の機械学習やデータマイニング等の処理を行なう場合を想定する。
【００１７】
この場合、サーバにおけるワークロードは、従来の人手でデータ操作を行なう場合のワークロードに比べ、以下の点が異なる。なお、「ワークロード」は、サーバの処理（作業）負荷やリソースの利用状況を示す情報（例えば指標）であり、ＷＦを実行するクライアントからのアクセスの傾向に相関のある（例えばアクセスの傾向に応じて変化する）情報である。
【００１８】
・クライアントは、階層ストレージシステムから読み出したデータに対して計算処理を行なう。そのため、クライアントが或るデータを読み出してから次のデータを読み出すまでに、換言すれば、サーバが読出要求を受信してから次の読出要求を受信するまでに、ある程度の時間間隔が開く。
【００１９】
・クライアントが同一のアプリケーションによる処理を繰り返し実行する場合、或るデータに対する処理時間は略一定となる。
【００２０】
このようなワークロードにおいて、各クライアントが以下の動作を行なう場合を想定する。
【００２１】
（ｉ）クライアントは、ＷＦ開始時、複数のデータ（以下、「データセット」と表記する場合がある）に含まれるデータ一覧と、これらのデータを読み出す順番とをサーバに対して通知する。以下、この通知を「プリフェッチ要求」と表記する場合がある。
【００２２】
（ii）クライアントは、ＷＦにおいて、データセットに対して順番に読出アクセスを行なう。ここで、「読出アクセス」とは、クライアントがサーバに対して読出要求を送信し、サーバから当該データを受信（取得）することを意味する。
【００２３】
（iii）クライアントは、或るデータを読み出し、読み出したデータに対して処理を行なった後、次のデータに対する読出要求をサーバに送信する。
【００２４】
（iv）クライアントは、ＷＦを複数回繰り返して実行する。
【００２５】
また、このようなワークロードにおいて、サーバが以下の動作を行なう場合を想定する。
【００２６】
（Ｉ）サーバは、プリフェッチ要求で指定された順番に、データを記憶装置（ＳＳＤ、ＨＤＤ、又は、ＴＤ）から、読み出したデータを一時的に格納するＲＡＭ（Random Access Memory）に読み出す。
【００２７】
（II）サーバは、クライアントから読出要求を受信すると、以下の（II-1）及び（II-2）のいずれか一方の処理を行なう。
【００２８】
（II-1）読出要求で要求されたデータが既にＲＡＭに格納されている場合、サーバは、読出要求に係るデータをＲＡＭから読み出し、読み出したデータをクライアントに送信する。また、サーバは、当該データをＲＡＭから削除する。
【００２９】
（II-2）読出要求で要求されたデータがＲＡＭに格納されていない場合、サーバは、クライアントを待たせ、読出要求に係るデータを記憶装置からＲＡＭに読み出し、ＲＡＭから当該データを読み出してクライアントに送信する。また、サーバは、当該データをＲＡＭから削除する。
【００３０】
図１は、クライアント及びサーバの動作例を時系列で示す図である。図１において、横軸は時刻を示す。
【００３１】
図１の例において、網掛けで示す“I/O(Read)”がサーバの処理であり、クライアントから１つのデータの読出要求を受信してから読出要求に係るデータをクライアントに送信するまでの上記（Ｉ）及び（II）の処理に対応する。また、図１の例において、白抜きで示す“Compute”がクライアントの処理であり、サーバから読出要求に係るデータを受信してから、受信したデータに対する処理を行なうまでの上記（ii）及び（iii）の処理の一部に対応する。
【００３２】
また、“I/O(Read)”及び“Compute”の１組の処理が、データセットに含まれる１つのデータに対する処理であり、図１の例では、“data1”、“data2”、“data3”の３つのデータの処理を示す。
【００３３】
図１に示すＷＦの例としては、動画像処理が挙げられる。クライアントは、サーバから動画像を１フレームずつ読み出し、１フレームの画像データに対して物体検出等の処理を行なっている間に、次のフレームをサーバから読み出す。この場合、フレームがデータ、動画像ファイル全体がデータセットに相当する。
【００３４】
なお、図１に示すように、クライアントは、“data3”についてサーバから受信したデータに対する処理が完了すると、データセットの先頭（“data1”）から処理を繰り返すために（上記（iv）参照）、再び“data1”に係る読出要求をサーバに送信する。
【００３５】
ここで、サーバは、ＷＦの終了時、換言すれば、プリフェッチ要求で指定された最後のデータを読み出した後、プリフェッチ要求で指定されたデータセット全体をＳＳＤに移動（再配置）する。なお、データ（データセット）が既にＳＳＤに配置されている場合は、何もしなくてよい（再配置を省略してよい）。
【００３６】
図２は、図１に示すＷＦ後に、サーバがデータセットをＨＤＤからＳＳＤに再配置した場合の例を示す図である。
【００３７】
図２に示すように、サーバは、データセットをＨＤＤ（又はＴＤ）等の低速デバイスから、ＳＳＤ等の高速デバイスに移動させることで、２回目以降のＷＦにおいて、データを記憶装置から読み出す処理を高速化することができる。その結果、ＷＦ完了にかかる時間を短縮させることができる。
【００３８】
ここで、サーバによる記憶装置からデータを読み出す時間と、読み出したデータに対するクライアントによる処理時間との比率は、ＷＦ（換言すれば、クライアント）により異なる。
【００３９】
図３に示すように、例えば、図２に示す例に比べてデータに対する処理時間が長いＷＦを想定する。最初に、このＷＦによりアクセスされるデータセットが、階層ストレージシステムのＨＤＤに格納されている場合、サーバは、１回目のＷＦ終了後に、データセット全体をＳＳＤに移動する。
【００４０】
図３に示すように、このワークロードの場合、最初にアクセスされるオブジェクト（データ；“data1”）の読出高速化は、高速化された分の時間だけ、ワークロード全体の完了時間の短縮に繋がる。しかし、次以降にアクセスされるオブジェクト（図３の例では“data2”及びそれ以降のデータ）の読み出し高速化は、ワークロード全体の完了時間の短縮には寄与しない。これは、サーバが“data2”を早いタイミングで読み出したとしても、クライアントからの“data2”の読出要求は、その前の“data1”に対するクライアントでの処理が完了しないと送信されず、サーバで“data2”の読出要求の待ち合わせが発生するためである。
【００４１】
以上のように、１回目のＷＦ完了後に、当該データセットを無条件にＳＳＤに移動させることは、ＨＤＤやＴＤよりも比較的低容量且つ高価格であるＳＳＤ容量の圧迫に繋がる。その結果、ＳＳＤに移動させることで大きな性能向上効果を見込めるデータセットを十分にＳＳＤに配置することができず、階層ストレージシステムにアクセスする全クライアントの平均性能が低下する場合がある。
【００４２】
そこで、一実施形態では、１つの側面において、複数の記憶装置におけるデータの適切な配置先を決定する手法を説明する。
【００４３】
〔１−２〕一実施形態の構成例
図４は、一実施形態の一例としての階層ストレージシステム１の構成例を示すブロック図である。階層ストレージシステム１は、ストレージシステム又は情報処理システムの一例である。図４に示すように、階層ストレージシステム１は、例示的に、１以上の階層ストレージ装置２、及び、複数の処理装置６を備えてよい。なお、階層ストレージ装置２が備える処理装置６は、１台でもよい。
【００４４】
階層ストレージ装置２は、ストレージ装置、情報処理装置、又はコンピュータの一例である。階層ストレージ装置２は、１以上のストレージ制御装置２０、並びに、複数種類の記憶装置の一例であるＳＳＤ３、ＨＤＤ４及びＴＤ５を備えてよく、ストレージ制御装置２０により、これらの記憶装置の記憶領域を複数の処理装置６に提供してよい。以下、ＳＳＤ３、ＨＤＤ４及びＴＤ５を総称して記憶装置３０と表記する場合がある。
【００４５】
ストレージ制御装置２０は、制御装置（コントローラ）、情報処理装置、又はコンピュータの一例であり、例えば、ＣＭ（Controller Module）であってもよい。なお、階層ストレージ装置２は、冗長化やスケールアウトのために、２以上のストレージ制御装置２０を備えてもよい。
【００４６】
ストレージ制御装置２０は、複数の記憶装置３０の各々と通信可能に接続され、処理装置６に対するアクセス制御、並びに、記憶装置３０に対するアクセス制御及び階層制御、等の種々の制御を行なう。ストレージ制御装置２０による制御には、上記（Ｉ）及び（II）に記載した処理の少なくとも一部が含まれてよい。
【００４７】
ＳＳＤ３、ＨＤＤ４及びＴＤ５は、互いに性能の異なる、換言すれば、互いに異なる階層である、複数種類の記憶装置３０の一例であり、互いに読出性能の異なる複数の記憶階層の一例である。ＳＳＤ３、ＨＤＤ４及びＴＤ５は、階層ストレージを構成してよい。
【００４８】
図４に示すように、複数種類（種別）の記憶装置３０としては、例えば、ＳＳＤ３等の半導体ドライブ装置、ＨＤＤ４の磁気ディスク装置、及び、ＴＤ５等の外部記録媒体装置、等が挙げられる。ＴＤ５は、例えば、磁気テープカートリッジや光ディスクカートリッジ等の媒体カートリッジ（記録媒体）を挿抜可能であり、挿入された媒体カートリッジに対してデータのリード及びライトを行なう、テープライブラリ装置であってもよい。
【００４９】
半導体ドライブ装置は、高速アクセスが可能な高速記憶装置の一例である。外部記録媒体装置は、比較的低速な低速記憶装置の一例である。磁気ディスク装置は、高速記憶装置と低速記憶装置との間のアクセス性能である中速記憶装置の一例である。
【００５０】
なお、階層ストレージ装置２が備える記憶装置３０は、上述したものに限定されず、性能及び記憶容量の少なくとも一方が互いに異なる、２種類以上の記憶装置であってよい。また、図４の例では、階層ストレージ装置２が、ＳＳＤ３、ＨＤＤ４及びＴＤ５をそれぞれ１台ずつ備えるものとして示すが、これに限定されるものではなく、階層ストレージ装置２は、ＳＳＤ３、ＨＤＤ４及びＴＤ５を、それぞれ、２台以上備えてもよい。
【００５１】
階層ストレージ装置２が提供する記憶領域には、処理装置６においてアプリケーションの実行により読み出され使用されるデータが格納されてよい。なお、当該データは、処理装置６又は図示しない他のコンピュータから階層ストレージ装置２に送信され、階層ストレージ装置２により記憶装置３０に格納されてよい。
【００５２】
処理装置６は、ＰＣ（Personal Computer）又はサーバ等の情報処理装置の一例であり、図示しないＣＰＵ（Central Processing Unit）等のプロセッサを備えてよい。処理装置６は、例えば、プロセッサによりＯＳ（Operating System）上でアプリケーションを実行することで、種々の機能を実現してよい。一実施形態において、処理装置６は、アプリケーションにより、上述した（ｉ）〜（iv）のＷＦを実行するものとする。
【００５３】
なお、処理装置６は、１以上のＶＭ（Virtual Machine；仮想マシン）を実行し、１以上のＶＭにおいてＯＳを実行してもよい。この場合、処理装置６は、１以上のＶＭのＯＳ上でそれぞれアプリケーションを実行し、各アプリケーションにより、上述した（ｉ）〜（iv）のＷＦを実行してもよい。
【００５４】
このように、処理装置６は、データセットに含まれる複数のデータの各々に対して所定の処理を行なう、一連の処理（ＷＦ）を１単位として、一連の処理を複数回実行する。
【００５５】
一連の処理としては、非限定的な一例として、画像認識等の機械学習における動画像処理やデータマイニング等が挙げられる。この場合、データセットは、動画像処理やデータマイニングの処理対象であり、例えばファイルである。また、データセットに含まれる各データは、動画像処理やデータマイニングにおける所定の処理が行なわれる１単位のデータであり、例えば、動画像における画像データ（フレーム）である。なお、所定の処理としては、例えば、画像データに対する物体検出や圧縮伸張等の処理が挙げられる。
【００５６】
所定の処理には、上記に加えて、１ファイルとして扱われる情報を分割して得られる所定の処理単位の各々に対して、互いに同様の（一定の）態様で行なわれる種々の処理が含まれてよい。
【００５７】
階層ストレージ装置２と複数の処理装置６の各々とは、ネットワーク７を介して相互に通信可能に接続されてよい。ネットワーク７としては、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、及び、インターネットの少なくとも１つを含んでよい。
【００５８】
なお、ネットワーク７は、例えば、ＶＰＮ（Virtual Private Network）等の仮想的なネットワークを含んでもよい。また、ネットワーク７は、例えば、ＳＡＳ（Serial Attached Small Computer System Interface）又はＦＣ（Fibre Channel；ファイバチャネル）等のインタフェース（ＩＦ；Interface）を介したＳＡＮ（Storage Area Network）を含んでもよい。
【００５９】
〔１−３〕ハードウェア構成例
次に、ストレージ制御装置２０及び処理装置６のハードウェア（ＨＷ；Hardware）構成例を説明する。ストレージ制御装置２０及び処理装置６は、いずれも同様又は類似のハードウェア構成を備えてよい。そこで、以下、コンピュータ１０のハードウェア構成例を参照して、ストレージ制御装置２０及び処理装置６のハードウェア構成例を説明する。図５は、一実施形態に係るコンピュータ１０のハードウェア構成例を示すブロック図である。
【００６０】
コンピュータ１０は、ＨＷ構成として、例示的に、プロセッサ１０ａ、メモリ１０ｂ、記憶部１０ｃ、ＩＦ部１０ｄ、Ｉ／Ｏ（Input / Output）部１０ｅ、及び、読取部１０ｆを備えてよい。
【００６１】
プロセッサ１０ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ１０ａは、コンピュータ１０内の各ブロックとバス１０ｉで相互に通信可能に接続されてよい。なお、プロセッサ１０ａは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【００６２】
プロセッサ１０ａとしては、例えば、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＡＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ等の集積回路（ＩＣ；Integrated Circuit）が挙げられる。ＭＰＵはMicro Processing Unitの略称である。ＧＰＵはGraphics Processing Unitの略称であり、ＡＰＵはAccelerated Processing Unitの略称である。ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific ICの略称であり、ＦＰＧＡはField-Programmable Gate Arrayの略称である。
【００６３】
メモリ１０ｂは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ１０ｂとしては、例えばＤＲＡＭ（Dynamic RAM）等の揮発性メモリが挙げられる。
【００６４】
記憶部１０ｃは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。記憶部１０ｃとしては、ＨＤＤ等の磁気ディスク装置、例えばＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。
【００６５】
また、記憶部１０ｃは、コンピュータ１０の各種機能の全部若しくは一部を実現するプログラム１０ｇを格納してよい。例えば、ストレージ制御装置２０のプロセッサ１０ａは、記憶部１０ｃに格納されたプログラム１０ｇをメモリ１０ｂに展開して実行することにより、ストレージ制御装置２０としての機能を実現できる。また、処理装置６のプロセッサ１０ａは、記憶部１０ｃに格納されたプログラム１０ｇをメモリ１０ｂに展開して実行することにより、処理装置６としての機能を実現できる。
【００６６】
ＩＦ部１０ｄは、図示しないネットワーク（図４に示すネットワーク７を含んでもよい）との間の接続及び通信の制御等を行なう通信ＩＦの一例である。例えば、ＩＦ部１０ｄは、ＬＡＮ、或いは、光通信（例えばＦＣ）等に準拠したアダプタを含んでよい。例えば、プログラム１０ｇは、当該通信ＩＦを介して、ネットワークからコンピュータ１０にダウンロードされ、記憶部１０ｃに格納されてもよい。
【００６７】
なお、ストレージ制御装置２０のＩＦ部１０ｄは、ネットワーク７に対する通信ＩＦに加えて、ＳＳＤ３、ＨＤＤ４及びＴＤ５にそれぞれ対応する１以上の通信ＩＦや、冗長化して備えられた他のストレージ制御装置２０に対する通信ＩＦ等を備えてもよい。
【００６８】
Ｉ／Ｏ部１０ｅは、マウス、キーボード、又は操作ボタン等の入力部、並びに、タッチパネルディスプレイ、ＬＣＤ（Liquid Crystal Display）等のモニタ、プロジェクタ、又はプリンタ等の出力部、の一方又は双方を含んでよい。
【００６９】
読取部１０ｆは、記録媒体１０ｈに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部１０ｆは、記録媒体１０ｈを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部１０ｆとしては、例えば、ＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体１０ｈにはプログラム１０ｇが格納されてもよく、読取部１０ｆが記録媒体１０ｈからプログラム１０ｇを読み出して記憶部１０ｃに格納してもよい。
【００７０】
記録媒体１０ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等が挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００７１】
上述したコンピュータ１０のハードウェア構成は例示である。従って、コンピュータ１０内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【００７２】
例えば、ストレージ制御装置２０としてのコンピュータ１０において、Ｉ／Ｏ部１０ｅ及び読取部１０ｆの少なくとも一方は、省略されてもよい。また、ストレージ制御装置２０としてのコンピュータ１０は、記憶部１０ｃとして、記憶装置３０（ＳＳＤ３、ＨＤＤ４、及びＴＤ５）の少なくとも１つを用いてもよい。
【００７３】
〔１−４〕機能構成例
図６は、一実施形態の一例としてのストレージ制御装置２０の機能構成例を示すブロック図である。なお、図６は、処理装置６から階層ストレージ装置２に対するデータの読出アクセスが行なわれる場合の機能構成に着目した図である。ストレージ制御装置２０は、例示的に、メモリ部２１、受付部２２、アクセス部２３、計測部２４、判定部２５、及び、移動制御部２６を備えてよい。
【００７４】
メモリ部２１は、ストレージ制御装置２０の制御に用いられる種々の情報を記憶する。メモリ部２１は、例示的に、複数の記憶領域を備えてよく、これらの記憶領域に、読出データ２１ａ、計測値２１ｂ、パラメータ２１ｃ、及び階層テーブル２１ｄをそれぞれ記憶してよい。メモリ部２１は、図５に示すメモリ１０ｂ及び記憶部１０ｃの少なくとも一方が有する記憶領域により実現されてよい。
【００７５】
受付部２２は、例えば、処理装置６で実行されるアプリケーション（図６中、「ＡＰＰ」と表記）６１からプリフェッチ要求及び読出要求を受信し、受信した要求の種別や内容等の情報を取得して、取得した情報をアクセス部２３に送信（出力）する。また、受付部２２は、後述するアクセス部２３から読出データ２１ａを受信すると、当該データを読出要求への応答として処理装置６に送信する。
【００７６】
プリフェッチ要求は、ＷＦを開始するタイミングで処理装置６から送信され、受付部２２により受信される。プリフェッチ要求には、データセットに含まれるデータ一覧と、データ一覧で指定された複数のデータの読出順序と、が含まれてよい。なお、ＷＦが繰り返し実行される場合、アプリケーション６１は、プリフェッチ要求を、ＷＦを開始する各タイミングで送信してもよいし、１回目にＷＦを開始するタイミングで送信してもよい。
【００７７】
読出要求は、データの先読みを指示するタイミング（ＷＦを開始するタイミング又は１つ前のデータに対する処理が完了したタイミング）で処理装置６から送信され、受付部２２により受信される。読出要求には、データ一覧に含まれるデータのうちの読出対象のデータを特定する情報が含まれてよい。
【００７８】
なお、データセットからのデータの読出順序は、プリフェッチ要求で指定されているため、読出対象のデータを特定する情報は、プリフェッチ要求に含まれるデータ一覧から読出対象のデータのエントリを特定する情報であってもよい。或いは、データ一覧の中の未読出のデータを読出順に読み出すことが分かっているため、読出対象のデータを特定する情報は、単に、プリフェッチ要求又はデータセットを特定する情報であってもよい。
【００７９】
以上のように、受付部２２は、処理装置６から、複数のデータのうちの第１のデータに対する読出要求を受信する受信部の一例である。
【００８０】
アクセス部２３は、プリフェッチ要求で指定された順番に、データを記憶装置３０から読み出し、読み出したデータを読出データ２１ａとして、ＲＡＭの一例であるメモリ部２１に格納する。
【００８１】
また、アクセス部２３は、読出要求を受信すると、読出要求で指定された読出対象のデータがメモリ部２１に格納されているか（プリフェッチ済みか）否かを判定する。
【００８２】
読出対象のデータがメモリ部２１に格納されている場合、アクセス部２３は、メモリ部２１から読出対象の読出データ２１ａを読み出し、受付部２２に送信（出力）する。
【００８３】
一方、読出対象のデータがメモリ部２１に格納されていない場合、アクセス部２３は、読出対象のデータを記憶装置３０から読み出し、読み出したデータを読出データ２１ａとして、メモリ部２１に格納する。そして、アクセス部２３は、メモリ部２１から読出対象の読出データ２１ａを読み出し、受付部２２に送信（出力）する。
【００８４】
なお、アクセス部２３は、読出データ２１ａを受付部２２に送信すると、メモリ部２１から読出データ２１ａを削除する。
【００８５】
ここで、アクセス部２３は、メモリ部２１に記憶された階層テーブル２１ｄを参照することで、読出対象のデータが格納（配置）されている記憶装置３０（ＳＳＤ３、ＨＤＤ４、又はＴＤ５）を特定してよい。
【００８６】
図７は、階層テーブル２１ｄの一例を示す図である。階層テーブル２１ｄは、データセット（例えばファイル）に含まれる複数のデータの各々が格納（配置）されている記憶装置３０を示す情報である。なお、図７には、階層テーブル２１ｄをテーブル形式で例示しているが、これに限定されるものではなく、階層テーブル２１ｄは配列やＤＢ（Database）等の種々の形態でメモリ部２１に格納されてよい。
【００８７】
階層テーブル２１ｄは、例示的に、データセット及びデータを特定する情報、データの格納先の記憶装置３０を特定する情報、及び、記憶装置３０におけるデータの格納位置を示す情報、を含んでよい。
【００８８】
図７の例では、階層テーブル２１ｄは、データＩＤ（Identifier）、格納先、及び、格納位置を含んでよい。データＩＤには、データセット及びデータセット内のデータを特定できる情報が設定されてよい。図７に例示するように、データＩＤには、データセットのＩＤ“ds1”と当該データセット内のデータのＩＤ“data00001”とを結合したＩＤが設定されてもよい。なお、データＩＤは、これに限定されるものではなく、該当データの先頭の論理アドレス（例えば、ＬＢＡ；Logical Block Address）等が設定されてもよい。
【００８９】
格納先には、データが格納される記憶装置３０の識別情報が設定されてよい。格納位置には、記憶装置３０におけるデータの記憶位置を特定可能な情報が設定されてよい。例えば、ＳＳＤ３又はＨＤＤ４の格納位置には、ボリューム上の物理アドレス等が設定されてもよいし、ブロックやセグメント等のサイズに対応するオフセットが設定されてもよい。また、例えば、ＴＤ５の格納位置には、記憶媒体に割り当てられたＬＶ（Logical Volume）及びＰＶ（Physical Volume）の少なくとも一方をボリューム番号等が設定されてもよい。
【００９０】
アクセス部２３は、階層テーブル２１ｄを参照し、読出対象のデータの格納先の記憶装置３０を特定し、格納位置から読出対象のデータを読み出してよい。
【００９１】
階層テーブル２１ｄは、例えば、後述する移動制御部２６によるデータの再配置処理に応じて更新されてよい。
【００９２】
以上のように、受付部２２及びアクセス部２３は、複数の記憶階層のうちの第１のデータを記憶する第１の記憶階層から、第１のデータを読み出し、読み出した第１のデータを、読出要求に応じて処理装置６へ送信する送信部の一例である。
【００９３】
計測部２４は、データセットに含まれるデータごとに、ＷＦを実行する処理装置６によるデータに対する処理時間を計測し、計測結果を計測値２１ｂとしてメモリ部２１に格納する。なお、ストレージ制御装置２０が、１以上の処理装置６との間で複数のＷＦを処理する場合、メモリ部２１には、ＷＦごとの計測値２１ｂが記憶されてよい。
【００９４】
図８は、計測値２１ｂの一例を示す図である。図８に示すように、メモリ部２１には、処理時間ＴＰ（ｉ）を含む計測値２１ｂがＷＦごと（ＷＦ＃０、ＷＦ＃１、・・・）に格納されてよい。なお、データセットに含まれる全データ数をＮとし、データセットに含まれるｉ番目のデータ（ＷＦでｉ番目に読み出されるデータ）をｄｉとすると、処理時間ＴＰ（ｉ）は、当該ＷＦを実行する処理装置６がデータｄｉを処理するのにかかる時間を意味する。ここで、ｉは、１以上且つＮ未満の整数である。
【００９５】
例えば、計測部２４は、下記式（１）を計算することで、処理時間ＴＰ（ｉ）を算出してよい。
【００９６】
処理時間ＴＰ（ｉ）
＝  （処理装置６からデータｄｉ＋１に対する読出要求を受信した時刻）
−  （処理装置６にデータｄｉを送信した時刻）                        （１）
【００９７】
上記式（１）では、処理装置６にデータｄｉを送信した時刻を、処理装置６がデータｄｉを利用できるようになる時刻と推定する。また、上記式（１）では、処理装置６からデータｄｉ＋１に対する読出要求を受信した時刻を、処理装置６が次のデータｄｉ＋１を要求する時刻、すなわち、処理装置６がデータｄｉに対する処理を終了した時刻と推定する。
【００９８】
これにより、計測部２４は、処理装置６がデータｄｉに対して処理を行なうことができた時間を推定（近似）することができるため、処理装置６から処理時間の実測値を取得せずに済み、容易に処理時間ＴＰ（ｉ）を取得することができる。従って、実測値を取得するための処理装置６の処理負荷やネットワーク７の通信負荷等の増加を抑制できる。
【００９９】
計測部２４は、或る処理装置６により繰り返し実行されるＷＦについて、１回目のＷＦの実行中に、ＷＦの対象のデータセットに含まれる各データｄｉに対する処理時間ＴＰ（ｉ）を計測（算出）してよい。
【０１００】
なお、計測部２４による処理時間ＴＰ（ｉ）を計測のタイミングは、これに限定されるものではなく、例えば、処理時間ＴＰ（ｉ）がＷＦ実行の度に変わる可能性を考慮し、ＴＰ（ｉ）の測定は、ＷＦが実行される度に行なわれてもよい。
【０１０１】
このように、計測部２４は、処理装置６による所定の処理の処理時間ＴＰ（ｉ）を測定する測定部の一例である。この測定部は、受付部２２が第ｉのデータに対する読出要求を受信した受信時刻ＴＤ（ｉ）と、受付部２２及びアクセス部２３が複数のデータのうちの第（ｉ−１）のデータを処理装置６に送信した送信時刻と、に基づいて、処理時間ＴＰ（ｉ）を算出する。
【０１０２】
判定部２５は、計測部２４が計測した計測値２１ｂと、パラメータ２１ｃと、に基づいて、ＷＦにおける処理対象のデータセットに含まれる各データを配置（再配置）する記憶装置３０の階層を判定し、判定結果を移動制御部２６に通知する。すなわち、判定部２５は、処理対象のデータセットを、データ単位で適切な記憶装置３０に配置（再配置）するための判定を行なう。
【０１０３】
判定部２５は、或る処理装置６により繰り返し実行されるＷＦのうち、計測部２４により処理時間ＴＰ（ｉ）が計測されたＷＦの実行後に、判定を行なってよい。例えば、判定部２５は、計測部２４による処理時間ＴＰ（ｉ）の計測がＷＦの実行の都度行なわれる場合には、ＷＦの実行の都度、換言すれば、ＷＦの完了後であって、次のＷＦが実行される前に、判定を行なってよい。
【０１０４】
移動制御部２６は、判定部２５からの通知に基づき、複数の記憶装置３０における階層間でのデータの移動を制御する。例えば、移動制御部２６は、判定部２５から、或るデータの移動先がＳＳＤ３と判定された判定結果の通知を受信すると、当該データを、現在の格納先である記憶装置３０からＳＳＤ３に移動（再配置）する。また、移動制御部２６は、階層テーブル２１ｄにおける当該データのエントリに対して、格納先及び格納位置の内容を、移動先（再配置先）の情報に更新する。
【０１０５】
なお、移動制御部２６は、通知に係るデータの移動先が、現在の格納先と同一の階層（例えば同じ性能）である場合、移動制御を抑制してよい。或いは、判定部２５は、判定したデータの移動先が、現在の格納先と同一の階層である場合、当該データについて、移動制御部２６に対する判定結果の通知を制御してもよい。
【０１０６】
移動制御部２６によるデータの移動制御は、例えば、データセットに含まれる全てのデータについて、判定部２５から通知を受信した場合（ＷＦが完了した場合）に、例えばデータセットに含まれる全てのデータを対象に実行されてよい。
【０１０７】
なお、移動制御部２６によるデータの移動制御は、判定部２５からデータごとに通知を受信する都度（ＷＦの実行中に）、受信した通知に基づきデータ単位で実行されてもよい。
【０１０８】
このように、移動制御部２６は、第１のデータを、第１の記憶階層から、判定部２５が決定した記憶階層へ移動する移動部の一例である。
【０１０９】
〔１−５〕判定部の説明
次に、上述した判定部２５について説明する。判定部２５は、計測値２１ｂと、パラメータ２１ｃと、に基づいて、データごとに移動先（配置先）の記憶装置３０の階層を判定する。
【０１１０】
図９は、パラメータ２１ｃの一例を示す図である。図９に示すように、パラメータ２１ｃは、Ｎ、ｄｉ、Ｓｉ、ＢＤ、ＴＩ／Ｏ（ｉ）、ｔＳ（ｉ）、ｔＦ（ｉ）、及び、ｔＤ（ｉ）を含んでよい。なお、パラメータ２１ｃは、これらの値を、変数又は配列等の形式でメモリ部２１（例えばメモリ１０ｂ）に格納してよい。Ｎ及びｄｉは、上述の通りであり、他の記号は以下の通りである。
【０１１１】
Ｓｉ：データｄｉのサイズ
ＢＤ：データセット格納先であるデバイスＤの読出性能
ＴＩ／Ｏ（ｉ）：ストレージ制御装置２０がデータｄｉを読み出す読出時間
ｔＳ（ｉ）：ストレージ制御装置２０がデータｄｉの読み出しを開始する時刻
ｔＦ（ｉ）：ストレージ制御装置２０がデータｄｉの読み出しを完了する時刻
ｔＤ（ｉ）：ストレージ制御装置２０がデータｄｉに対する処理装置６からの
読出要求を受信する時刻
【０１１２】
なお、上記の説明において、デバイスＤは、データセットが格納されているＳＳＤ３、ＨＤＤ４又はＴＤ５のいずれかを示す。ＢＤは、ＳＳＤ３の読出性能ＢＳＳＤ、ＨＤＤ４の読出性能ＢＨＤＤ、ＴＤ５の読出性能ＢＴＤ、を含んでよく、これらの値はいずれも既知であるものとする。
【０１１３】
また、Ｎ、ｄｉ、Ｓｉは、いずれも、記憶装置３０へのデータセットの格納のタイミング以降、ストレージ制御装置２０において取得可能である。
【０１１４】
さらに、ＴＩ／Ｏ（ｉ）は、データｄｉがデバイスＤに格納されている場合、下記（２）式により算出可能である。パラメータ２１ｃは、ＢＳＳＤ、ＢＨＤＤ、ＢＴＤのそれぞれの場合におけるＴＩ／Ｏ（ｉ）を含んでもよい。
【０１１５】
ＴＩ／Ｏ（ｉ）＝Ｓｉ／ＢＤ                                            （２）
【０１１６】
パラメータ２１ｃのうち、Ｎ、ｄｉ、Ｓｉの値については、例えば、判定部２５による処理に先立って（例えば記憶装置３０にデータセットが格納されたタイミング以降に）設定されてもよい。また、パラメータ２１ｃのうち、ＢＤ、ＴＩ／Ｏ（ｉ）の値については、例えば、判定部２５による処理に先立って（例えばストレージ制御装置２０が起動した後等に）設定されてもよい。
【０１１７】
ここで、図３を参照して説明したように、一実施形態で想定するワークロードの場合、ストレージ制御装置２０がＳＳＤ３から“data2”を早いタイミングで読み出したとしても、処理装置６からの“data2”の読出要求の待ち合わせが発生することがある。一方で、ストレージ制御装置２０が“data2”を低速なＨＤＤ４やＴＤ５に配置したことにより、“data2”の読み出しが完了する前に、処理装置６による“data1”に対する処理が完了し、処理装置６において“data2”の待ち合わせが発生することがある。
【０１１８】
そこで、判定部２５は、計測部２４により計測された処理時間ＴＰ（ｉ）と、パラメータ２１ｃの値と、に基づいて、処理装置６が当該ＷＦに係るデータセットにおけるｉ番目のデータにアクセスする時刻を推定する。そして、判定部２５は、推定した時刻と、アクセス部２３が記憶装置３０からデータｄｉの読み出しを完了する時刻との関係から、データｄｉの適切な配置先を決定するのである。
【０１１９】
このために、判定部２５は、処理時間ＴＰ（ｉ）と、パラメータ２１ｃのうちのＮ、ｄｉ、Ｓｉ、ＢＤ、ＴＩ／Ｏ（ｉ）の値と、に基づき、以下のように、ｔＳ（ｉ）、ｔＤ（ｉ）、及びｔＦ（ｉ）を算出してよい。なお、１番目のデータｄ１については、ｔＳ（１）＝０と定義する。
【０１２０】
なお、処理時間ＴＰ（ｉ）は、ＷＦの実行中に計測部２４により計測された実測値であるのに対し、判定部２５が算出する、以下のｔＳ（ｉ）、ｔＤ（ｉ）、及びｔＦ（ｉ）は、処理時間ＴＰ（ｉ）を用いて算出した算出値である。
【０１２１】
例えば、ｔＳ（ｉ）、ｔＤ（ｉ）、及びｔＦ（ｉ）の算出には、後述するように、ｔＤ（ｉ−１）、ｔＦ（ｉ−１）等の、１つ前の算出値が用いられる。このように、ｔＳ（ｉ）、ｔＤ（ｉ）、及びｔＦ（ｉ）の算出値は、過去の算出結果を利用して推定される推定値（シミュレート値）と捉えられてよい。このため、ｔＳ（ｉ）、ｔＤ（ｉ）、及びｔＦ（ｉ）は、それぞれ、データｄｉの読み出しの推定開始時刻、データｄｉの読出要求の推定受信時刻ｔＤ（ｉ）、及びデータｄｉの読み出しの推定完了時刻ｔＦ（ｉ）と捉えられてよい。
【０１２２】
一実施形態では、サブセット内のデータが順番に読み出されると仮定するため、ｔＳ（ｉ）について、下記式（３）の関係が成立する。
【０１２３】
ｔＳ（ｉ）＝ｔＦ（ｉ−１）    （但し、ｉ≧２）                        （３）
【０１２４】
また、判定部２５は、上記式（１）を変形した下記式（４）によりｔＤ（ｉ）を算出してよい。
【０１２５】
ｔＤ（ｉ）＝ｍａｘ（ｔＤ（ｉ−１），ｔＦ（ｉ−１））＋ＴＰ（ｉ−１）  （４）
【０１２６】
さらに、判定部２５は、下記式（５）によりｔＦ（ｉ）を算出してよい。
【０１２７】
ｔＦ（ｉ）＝ｔＳ（ｉ）＋ＴＩ／Ｏ（ｉ）                                （５）
【０１２８】
ここで、上記式（４）のｍａｘ演算子は、ｔＤ（ｉ−１）及びｔＦ（ｉ−１）のうちの値の大きい方を選択する演算子である。以下、上記式（４）のｍａｘ演算子について説明する。
【０１２９】
（ｔＤ（ｉ−１）＞ｔＦ（ｉ−１）の場合）
ｔＤ（ｉ−１）＞ｔＦ（ｉ−１）は、図１０に示すように、処理装置６がデータｄｉ−２に対する処理を行なっている間に、アクセス部２３によるデータｄｉ−１の読み出しが完了したことを意味する。
【０１３０】
この場合、処理装置６がストレージ制御装置２０にデータｄｉの読出要求を送信するタイミングは、以下の（ａ）〜（ｃ）を全て完了したタイミングとなる（図１０参照）。
【０１３１】
（ａ）処理装置６が、データｄｉ−２に対する処理を完了する。
（ｂ）処理装置６が、データｄｉ−１の読出要求をストレージ制御装置２０に送信する。
（ｃ）処理装置６が、データｄｉ−１に対する処理を完了する。
【０１３２】
従って、ｔＤ（ｉ−１）＞ｔＦ（ｉ−１）の場合、ｍａｘ（ｔＤ（ｉ−１），ｔＦ（ｉ−１））＝ｔＤ（ｉ−１）となる（図１０参照）。
【０１３３】
（ｔＤ（ｉ−１）＜ｔＦ（ｉ−１）の場合）
ｔＤ（ｉ−１）＜ｔＦ（ｉ−１）は、図１１に示すように、アクセス部２３がデータｄｉ−１の読み出しを完了する前に、処理装置６が、データｄｉ−２に対する処理を完了し、ストレージ制御装置２０にデータｄｉ−１の読出要求を送信したことを意味する。
【０１３４】
この場合、処理装置６がストレージ制御装置２０にデータｄｉの読出要求を送信するタイミングは、以下の（ｄ）及び（ｅ）を全て完了したタイミングとなる（図１１参照）。
【０１３５】
（ｄ）アクセス部２３が、サーバがデータｄｉ−１の読み出しを完了して、当該データｄｉ−１を処理装置６に送信する。
（ｅ）処理装置６が、データｄｉ−１に対する処理を完了する。
【０１３６】
従って、ｔＤ（ｉ−１）＜ｔＦ（ｉ−１）の場合、ｍａｘ（ｔＤ（ｉ−１），ｔＦ（ｉ−１））＝ｔＦ（ｉ−１）となる（図１１参照）。
【０１３７】
なお、判定部２５は、算出したｔＳ（ｉ）、ｔＤ（ｉ）、ｔＦ（ｉ）を、対応するＷＦのパラメータ２１ｃに設定してよい。
【０１３８】
次に、上記式（３）〜（５）に基づく、判定部２５によるｉ番目のデータの配置先の決定処理の一例を説明する。
【０１３９】
（ｉ＝１の場合）
判定部２５は、データｄ１を最もアクセス性能の高いＳＳＤ３に配置すると判定する。これは、アクセス部２３が、ＷＦの処理対象のデータセットにおける最初のデータを読み出す間は、処理装置６を待たせることになるからである。
【０１４０】
なお、判定部２５は、上記式（３）〜（５）に対してそれぞれｉ＝１を代入した下記式（６）〜（８）を算出し、ｔＳ（１）、ｔＤ（１）、ｔＦ（１）を求めてよい。
【０１４１】
ｔＳ（１）＝０                                                        （６）
ｔＤ（１）＝ｍａｘ（ｔＤ（０），ｔＦ（０））＋ＴＰ（０）＝０          （７）
ｔＦ（１）＝ｔＳ（１）＋ＴＩ／Ｏ（１）＝Ｓ１／ＢＳＳＤ                （８）
【０１４２】
上記式（６）において、ｔＳ（１）は、上記で定義した通り“０”となる。また、上記式（７）において、ｔＤ（０）、ｔＦ（０）、ＴＰ（０）はいずれも存在しないため“０”となり、ｔＤ（１）は“０”となる。なお、判定部２５は、“０”であることが分かっているｔＳ（１）及びｔＤ（１）の算出を省略してもよい。
【０１４３】
また、上記式（８）において、ｔＳ（１）は、上記式（６）から“０”となるため、ｔＦ（１）は、アクセス部２３がＳＳＤ３からデータｄ１を読み出すのにかかる時間であるＴＩ／Ｏ（１）と一致する。
【０１４４】
（ｉ＝２の場合）
判定部２５は、上記式（３）〜（５）のそれぞれに対して、ｉ＝２及びパラメータ２１ｃの値を代入した下記式（９）〜（１１）を算出する。例えば、判定部２５は、下記式（１１）の算出において、ＴＩ／Ｏ（２）（＝Ｓ２／ＢＤ）のＢＤとして、ＢＳＳＤ、ＢＨＤＤ、ＢＴＤのそれぞれを用いた場合のｔＦ（２）を算出してよい。
【０１４５】
ｔＳ（２）＝ｔＦ（１）                                                （９）
ｔＤ（２）＝ｍａｘ（ｔＤ（１），ｔＦ（１））＋ＴＰ（１）
＝ｔＳ（２）＋ＴＰ（１）                                  （１０）
ｔＦ（２）＝ｔＳ（２）＋ＴＩ／Ｏ（２）                              （１１）
【０１４６】
上記式（１０）において、ｔＦ（１）は、上記式（９）からｔＳ（２）となる一方、ｔＤ（１）は、最初のデータｄ１の読出要求の受信時刻であり、ｔＳ（２）よりも前となるから、ｍａｘ（ｔＤ（１），ｔＦ（１））は、ｔＳ（２）となる。
【０１４７】
判定部２５は、上記式（１０）及び（１１）から、ｔＦ（２）≦ｔＤ（２）を満たすデバイスＤが存在するか否かを判定し、判定結果に応じて、データｄ２の配置先の記憶装置３０を以下のように決定する。なお、判定部２５は、ＢＳＳＤ、ＢＨＤＤ、ＢＴＤのそれぞれを用いた場合のｔＦ（２）を用いて、判定を行なってよい。
【０１４８】
（ｔＦ（２）≦ｔＤ（２）を満たすデバイスＤが存在する場合）
図１２に例示するように、上記式（１０）及び（１１）の算出結果がｔＦ（２）≦ｔＤ（２）を満たす場合、アクセス部２３によるデータｄ２の読出完了時点で、処理装置６における１つ前のデータｄ１に対する処理が完了していない。
【０１４９】
この場合、データｄ２を格納する記憶装置３０（例えばＳＳＤ３）の性能が過多である（早い）ことを意味する。オーバスペックな記憶装置３０がデータｄ２を格納することで、当該記憶装置３０の容量が圧迫されるため、当該記憶装置３０に移動させることで性能向上効果を見込めるデータセット又はデータを、十分に当該記憶装置３０に配置することができなくなる。従って、階層ストレージ装置２にアクセスする全処理装置６の平均性能が低下する場合がある。
【０１５０】
そこで、判定部２５は、ｔＦ（２）≦ｔＤ（２）を満たすデバイスＤのうち、ｔＤ（２）−ｔＦ（２）が最小となるデバイスＤをデータｄ２の配置先の記憶装置３０として選択する。
【０１５１】
これにより、図１２に例示する場合よりも、アクセス部２３によるデータｄ２の読出時間がかかる（アクセス性能がより低い）記憶装置３０（例えばＨＤＤ４やＴＤ５）がデータｄ２の配置先の記憶装置３０として選択される。従って、データｄ２の読出完了時刻であるｔＦ（２）を、処理装置６からのデータｄ２の読出要求の受信時刻ｔＤ（２）（換言すれば、処理装置６によるデータｄ１の処理完了時刻）に近付けることができ、データｄ２を適切な記憶装置３０に配置できる。
【０１５２】
（ｔＦ（２）≦ｔＤ（２）を満たすデバイスＤが存在しない場合）
図１３に例示するように、上記式（１０）及び（１１）の算出結果がｔＦ（２）≦ｔＤ（２）を満たさない場合、処理装置６からのデータｄ２の読出要求の受信時点で、アクセス部２３によるデータｄ２の読み出しが完了していない。
【０１５３】
この場合、データｄ２を格納する記憶装置３０（例えばＨＤＤ４）の性能が不足しており、処理装置６によるデータｄ２に対する処理の実行を遅延させることを意味する。従って、記憶装置３０がボトルネックとなり、当該処理装置６の性能（スループット）が低下することになる。
【０１５４】
そこで、判定部２５は、データｄ２の読出時間を短縮するために、アクセス性能の高い記憶装置３０（例えば最もアクセス性能の高いＳＳＤ３）をデータｄ２の配置先の記憶装置３０として選択する。
【０１５５】
これにより、図１２に例示する場合よりも、アクセス部２３によるデータｄ２の読出時間が短い（アクセス性能がより高い）記憶装置３０（例えばＳＳＤ３）がデータｄ２の配置先の記憶装置３０として選択される。従って、データｄ２の読出完了時刻であるｔＦ（２）を、処理装置６からのデータｄ２の読出要求の受信時刻ｔＤ（２）に近付けることができ、データｄ２を適切な記憶装置３０に配置できる。
【０１５６】
（ｉ≧３の場合）
判定部２５は、上記式（３）〜（５）のそれぞれに対して、ｉ（但し、３≦ｉ≦Ｎ）及びパラメータ２１ｃの値を代入することで、ｔＳ（ｉ）、ｔＤ（ｉ）、ｔＦ（ｉ）を算出してする。
【０１５７】
なお、判定部２５による、ｔＳ（ｉ）、ｔＤ（ｉ）、ｔＦ（ｉ）の算出処理やデータｄｉの再配置先の記憶装置３０の選択処理は、ｉ＝２の場合と同様である。
【０１５８】
例えば、判定部２５は、算出したｔＤ（ｉ）及びｔＦ（ｉ）について、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤがあるか否かを判定し、判定結果に応じて、データｄｉの配置先の記憶装置３０を決定してよい。なお、判定部２５は、ｉ≧３の場合においても、ＢＳＳＤ、ＢＨＤＤ、ＢＴＤのそれぞれを用いた場合のｔＦ（ｉ）を用いて、判定を行なってよい。
【０１５９】
ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが存在する場合、判定部２５は、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤのうち、ｔＤ（ｉ）−ｔＦ（ｉ）が最小となるデバイスＤをデータｄｉの配置先の記憶装置３０として選択する。
【０１６０】
一方、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが存在しない場合、判定部２５は、データｄｉの読出時間を短縮するために、アクセス性能の高い記憶装置３０（例えば最もアクセス性能の高いＳＳＤ３）をデータｄｉの配置先の記憶装置３０として選択する。
【０１６１】
以上のように、判定部２５は、ｉ番目のデータ（ｉ＝１，２，・・・，Ｎ）を配置するデバイスＤを、次の手順で決定してよい。
【０１６２】
判定部２５は、複数の記憶装置３０の各々の読出性能に基づいて、複数の記憶装置３０の各々から第１のデータを読み出す場合のそれぞれの読出完了時刻ｔＦ（ｉ）を推定する。
【０１６３】
判定部２５は、計測部２４が測定した処理時間ＴＰ（ｉ−１）に基づいて、受付部２２が第１のデータに対する読出要求を受信する場合の推定受信時刻ｔＤ（ｉ）を推定する。
【０１６４】
判定部２５は、推定した複数の読出完了時刻ｔＦ（ｉ）と、推定した推定受信時刻ｔＤ（ｉ）とに基づいて、第１のデータを記憶させる記憶装置３０を決定する。
【０１６５】
例えば、推定受信時刻ｔＤ（ｉ）と、読出完了時刻ｔＦ（ｉ）とは、下記式（１２）及び下記式（１３）により推定されてよい。
【０１６６】
ｔＤ（ｉ）
＝ｍａｘ（ｔＤ（ｉ−１），ｔＦ（ｉ−１））＋ＴＰ（ｉ−１）          （１２）
但し、ｔＤ（０）＝ｔＦ（０）＝ＴＰ（０）＝ｔＩ／Ｏ（０）＝０
ｔＦ（ｉ）＝ｔＦ（ｉ−１）＋ＴＩ／Ｏ（ｉ）                          （１３）
【０１６７】
例えば、上記式（１２）及び上記式（１３）としたとき、判定部２５は、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが有るか否かを判定する。換言すれば、判定部２５は、複数の読出完了時刻ｔＦ（ｉ）において、推定受信時刻ｔＤ（ｉ）以前である１以上の読出完了時刻ｔＦ（ｉ）が存在するか否かを判定する。
【０１６８】
そして、判定部２５は、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが有る場合、当該デバイスＤのうち、ｔＤ（ｉ）−ｔＦ（ｉ）が最小となるデバイスＤをデータｄｉの配置先として選択する。換言すれば、判定部２５は、１以上の読出完了時刻ｔＦ（ｉ）が存在する場合、１以上の読出完了時刻ｔＦ（ｉ）のうちの、推定受信時刻ｔＤ（ｉ）との時刻差が最小である読出完了時刻ｔＦ（ｉ）に対応する記憶装置３０を、第１のデータを記憶させる記憶装置３０に決定する。
【０１６９】
一方、判定部２５は、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤがなければ、複数の記憶装置３０のうちの読出性能の高い順に選択される記憶装置３０、例えば、最もアクセス性能の高いＳＳＤ３をデータｄｉの配置先として選択する。
【０１７０】
なお、上記式（１）では、処理時間ＴＰ（ｉ）を算出する式を示したが、上記式（１２）のように、処理時間ＴＰ（ｉ−１）を算出するためには、上記式（１）を下記式（１４）に置き換えればよい。
【０１７１】
処理時間ＴＰ（ｉ−１）
＝  （処理装置６からデータｄｉに対する読出要求を受信した時刻）
−  （処理装置６にデータｄｉ−１を送信した時刻）                  （１４）
【０１７２】
このように、判定部２５は、複数の記憶階層の各々の読出性能ＢＤと、計測部２４が測定した処理時間ＴＰ（ｉ−１）とに基づいて、複数の記憶階層の中から、第１のデータを記憶させる記憶階層を決定する決定部の一例である。
【０１７３】
以上のように、一実施形態に係るストレージ制御装置２０によれば、処理装置６で実行されるアプリケーションから与えられたＷＦと、記憶装置３０の性能情報とに基づき、処理装置６においてデータに対するアクセスが行なわれる開始時刻を推定できる。そして、ストレージ制御装置２０により、推定結果に基づいて、当該データを最適な性能の記憶装置３０に配置することができる。
【０１７４】
これにより、処理装置６によるデータに対する処理性能に適合した（マッチした）性能の記憶装置３０に、データを配置することができる。従って、処理装置６におけるデータに対する処理の待ち時間の低減、及び、ストレージ制御装置２０における性能の高い記憶装置３０の記憶リソースの有効活用、を図ることができる。
【０１７５】
また、他の処理装置６におけるＷＦ実行の際に、性能の高い記憶装置３０の記憶リソースを利用できる可能性が向上するため、階層ストレージ装置２にアクセスする全処理装置６の平均性能を向上させることができる。
【０１７６】
このように、一実施形態に係るストレージ制御装置２０は、期限（上限時間）を意識した（deadline-aware）階層ストレージシステム１にアクセスする複数の処理装置６に対して、安定したパフォーマンスで読出データを送信することができる。
【０１７７】
〔１−６〕動作例
次に、図１４及び図１５を参照して、上述の如く構成された一実施形態に係るストレージ制御装置２０ストレージ制御装置２０の動作例を説明する。
【０１７８】
まず、図１４を参照して、処理装置６によりＷＦが複数回に亘って実行される場合を説明する。図１４は、一実施形態に係るストレージ制御装置２０の動作例を説明するフローチャートである。
【０１７９】
図１４に示すように、ストレージ制御装置２０は、記憶装置３０のいずれかの階層にデータセットを格納する（ステップＳ１）。例えば、ストレージ制御装置２０は、データセットを処理装置６から受信してもよい。
【０１８０】
ストレージ制御装置２０の受付部２２は、処理装置６からのＷＦ実行要求の受信を待ち受ける（ステップＳ２、ステップＳ２でＮｏ）。なお、ＷＦ実行要求は、ＷＦの対象のデータセットのプリフェッチ要求と、当該データセットに含まれる最初のデータの読出要求と、の少なくとも一方を含んでよく、一実施形態では、双方を含むものとする。
【０１８１】
ＷＦ実行要求を受信すると（ステップＳ２でＹｅｓ）、受付部２２は、ＷＦ実行要求をアクセス部２３に通知する。
【０１８２】
アクセス部２３は、ＷＦ実行要求の受信に応じて、階層テーブル２１ｄに基づいて、ＷＦ実行に伴う記憶装置３０へのアクセスを行なう。例えば、アクセス部２３は、記憶装置３０からメモリ部２１への読出データ２１ａのプリフェッチを行なうとともに、読出要求の受信に応じて、メモリ部２１から読出データ２１ａを読み出して処理装置６に送信する。また、計測部２４は、アクセス部２３による記憶装置３０へのアクセスに係る時刻を計測することで、処理装置６によるデータに対する処理時間ＴＰ（ｉ）を計測（推定）する（ステップＳ３）。
【０１８３】
判定部２５は、計測値２１ｂと、パラメータ２１ｃとに基づいて、再配置先算出処理を実行し（ステップＳ４）、各データの移動先として選択した記憶装置３０の情報を移動制御部２６に通知する。例えば、判定部２５は、ＷＦ実行が完了したときに、ステップＳ４の処理を実行してよい。
【０１８４】
移動制御部２６は、判定部２５からの通知に応じて、データごとの再配置処理を実行する（ステップＳ５）。再配置処理には、階層テーブル２１ｄの更新処理が含まれてよい。
【０１８５】
受付部２２は、処理装置６又は他のコンピュータから、データセットの削除要求を受信したか否かを判定する（ステップＳ６）。なお、データセットの削除要求は、例えば、処理装置６又は他のコンピュータが、データセットに対するＷＦ実行を終了する（繰り返しのＷＦ実行を終了する）と判断した場合に送信されてよい。
【０１８６】
データセットの削除要求を受信しない場合（ステップＳ６でＮｏ）、処理がステップＳ２に移行し、受付部２２は、２回目以降のＷＦ実行要求の受信を待ち合わせる。
【０１８７】
一方、データセットの削除要求を受信した場合（ステップＳ６でＹｅｓ）、ストレージ制御装置２０は、ステップＳ１で記憶装置３０に格納した（或いはステップＳ５で他の記憶装置３０に再配置した）データセットを削除し（ステップＳ７），処理が終了する。
【０１８８】
次に、図１５を参照して、図１４のステップＳ４に示す再配置先算出処理の動作例を説明する。なお、パラメータ２１ｃのうち、Ｎ、ｄｉ、Ｓｉの値については、例えば、図１４のステップＳ４による処理に先立って、データセットの情報に基づき設定されてよい。また、パラメータ２１ｃのうち、ＢＤ、ＴＩ／Ｏ（ｉ）の値については、例えば、ストレージ制御装置２０が起動した後等に設定されてもよい。
【０１８９】
判定部２５は、変数ｉに“１”を設定し（ステップＳ１１）、ｉ＞Ｎか否かを判定する（ステップＳ１２）。
【０１９０】
ｉ＞Ｎの場合（ステップＳ１２でＹｅｓ）、処理が終了する。一方、ｉ＞Ｎではない場合（ステップＳ１２でＮｏ）、判定部２５は、下記式（１５）及び（１６）を算出する（ステップＳ１３）。
【０１９１】
ｔＤ（ｉ）
＝ｍａｘ（ｔＤ（ｉ−１），ｔＦ（ｉ−１））＋ＴＰ（ｉ−１）          （１５）
ｔＦ（ｉ）＝ｔＦ（ｉ−１）＋ＴＩ／Ｏ（ｉ）                          （１６）
【０１９２】
次いで、判定部２５は、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが存在するか否かを判定する（ステップＳ１４）。
【０１９３】
ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが存在する場合（ステップＳ１４でＹｅｓ）、判定部２５は、ｔＤ（ｉ）−ｔＦ（ｉ）が最小となるデバイスＤをデータｄｉの配置先として選択し（ステップＳ１５）、処理がステップＳ１７に移行する。
【０１９４】
一方、ｔＦ（ｉ）≦ｔＤ（ｉ）を満たすデバイスＤが存在しない場合（ステップＳ１４でＮｏ）、判定部２５は、ＳＳＤ３をデータｄｉの配置先として選択し（ステップＳ１６）、処理がステップＳ１７に移行する。
【０１９５】
ステップＳ１７では、判定部２５は、変数ｉに“１”を加算し、処理がステップＳ１２に移行する。
【０１９６】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１９７】
例えば、図６に示すストレージ制御装置２０の各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。ストレージ制御装置２０の機能ブロックとしては、受付部２２、アクセス部２３、計測部２４、判定部２５、及び、移動制御部２６が挙げられる。
【０１９８】
また、上述のように、処理装置６によるデータに対する処理時間がＷＦ実行の度に変わる可能性を考慮し、処理時間Ｔｐ（ｉ）の計測、再配置先の記憶装置３０の判定、及び、再配置処理の実行を、ＷＦが実行される度に行なわれてよい。
【０１９９】
例えば、判定部２５は、繰り返し実行されるＷＦごとに計測された計測値２１ｂをメモリ部２１に保持（待避）してもよい。そして、判定部２５は、処理時間Ｔｐ（ｉ）が、過去のＷＦにおいて計測された処理時間Ｔｐ（ｉ）と変わらない、又は、変化が所定の閾値（例えば数％程度）以下の場合、判定を中止してもよい。判定部２５による判定の中止は、データ単位であってもよいし、ＷＦ単位で、当該ＷＦに係る全てのデータの判定を中止してもよい。また、判定部２５による判定の中止に伴い、移動制御部２６による移動制御も中止してよい。
【０２００】
さらに、一実施形態では、計測部２４が、処理装置６によるデータｄｉごとの処理時間ＴＰ（ｉ）を計測し、判定部２５が、各処理時間ＴＰ（ｉ）を対応するデータｄｉの格納先の記憶装置３０の判定に用いるものとしたが、これに限定されるものではない。例えば、計測部２４は、データセットに含まれるデータｄ１〜ｄＮに共通の処理時間ＴＰを、例えば処理時間ＴＰ（１）〜ＴＰ（Ｎ）の平均又は加重平均を取ることにより算出してもよい。この場合、判定部２５は、共通の処理時間ＴＰを、データｄ１〜ｄＮの各々の格納先の記憶装置３０の判定に用いてよい。
【０２０１】
また、一実施形態では、階層ストレージシステム１を例に挙げて説明したが、これに限定されるものではなく、複数の記憶階層を備える種々の情報処理システムに対しても、一実施形態に係る手法を適用することで、一実施形態と同様の効果を奏することができる。
【０２０２】
〔３〕付記
以上の一実施形態に関し、さらに以下の付記を開示する。
【０２０３】
（付記１）
データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置から、前記複数のデータのうちの第１のデータに対する読出要求を受信する受信部と、
互いに読出性能の異なる複数の記憶階層のうちの前記第１のデータを記憶する第１の記憶階層から、前記第１のデータを読み出し、読み出した前記第１のデータを、前記読出要求に応じて前記処理装置へ送信する送信部と、
前記処理装置による前記所定の処理の処理時間を測定する測定部と、
前記複数の記憶階層の各々の読出性能と、前記測定部が測定した前記処理時間とに基づいて、前記複数の記憶階層の中から、前記第１のデータを記憶させる記憶階層を決定する決定部と、
前記第１のデータを、前記第１の記憶階層から、決定した前記記憶階層へ移動する移動部と、を備える、
制御装置。
【０２０４】
（付記２）
前記複数のデータは、Ｎ個のデータであり、
前記第１のデータは、第ｉ（ｉは１以上且つＮ以下）のデータであり、
前記測定部は、前記受信部が前記第ｉのデータに対する読出要求を受信した受信時刻と、前記送信部が前記複数のデータのうちの第（ｉ−１）のデータを前記処理装置に送信した送信時刻と、に基づいて、前記処理装置による前記第ｉのデータに対する前記所定の処理の前記処理時間を算出する、
付記１に記載の制御装置。
【０２０５】
（付記３）
前記決定部による、前記第１のデータを記憶させる前記記憶階層の決定は、
前記複数の記憶階層の各々の読出性能に基づいて、前記複数の記憶階層の各々から前記第１のデータを読み出す場合のそれぞれの読出完了時刻を推定し、
前記測定部が測定した前記処理時間に基づいて、前記受信部が前記第１のデータに対する読出要求を受信する場合の推定受信時刻を推定し、
推定した複数の前記読出完了時刻と、推定した前記推定受信時刻とに基づいて、前記第１のデータを記憶させる前記記憶階層を決定する、
付記１又は付記２に記載の制御装置。
【０２０６】
（付記４）
前記決定部は、
前記複数の読出完了時刻において、前記推定受信時刻以前である１以上の読出完了時刻が存在するか否かを判定し、
前記１以上の読出完了時刻が存在する場合、前記１以上の読出完了時刻のうちの、前記推定受信時刻との時刻差が最小である読出完了時刻に対応する記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
付記３に記載の制御装置。
【０２０７】
（付記５）
前記決定部は、前記１以上の読出完了時刻が存在しない場合、前記複数の記憶階層のうちの読出性能の高い順に選択される記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
付記４に記載の制御装置。
【０２０８】
（付記６）
前記処理装置は、前記複数のデータの各々に対して前記所定の処理を行なう、一連の処理を１単位として、前記一連の処理を複数回実行し、
前記決定部は、前記一連の処理の完了後であって、次の前記一連の処理が実行される前に、前記第１のデータを記憶させる前記記憶階層を決定する、
付記１〜５のいずれか１項に記載の制御装置。
【０２０９】
（付記７）
前記決定部は、前記複数のデータの各々を記憶させる記憶階層をそれぞれ決定し、
前記移動部は、前記複数のデータの各々を、決定した前記記憶階層へそれぞれ移動する、
付記１〜６のいずれか１項に記載の制御装置。
【０２１０】
（付記８）
コンピュータに、
データセットに含まれる複数のデータの各々に対して所定の処理を行なう処理装置から、前記複数のデータのうちの第１のデータに対する読出要求を受信し、
互いに読出性能の異なる複数の記憶階層のうちの前記第１のデータを記憶する第１の記憶階層から、前記第１のデータを読み出し、
読み出した前記第１のデータを、前記読出要求に応じて前記処理装置へ送信し、
前記処理装置による前記所定の処理の処理時間を測定し、
前記複数の記憶階層の各々の読出性能と、測定した前記処理時間とに基づいて、前記複数の記憶階層の中から、前記第１のデータを記憶させる記憶階層を決定し、
前記第１のデータを、前記第１の記憶階層から、決定した前記記憶階層へ移動する、
処理を実行させる、制御プログラム。
【０２１１】
（付記９）
前記複数のデータは、Ｎ個のデータであり、
前記第１のデータは、第ｉ（ｉは１以上且つＮ以下）のデータであり、
前記測定は、前記第ｉのデータに対する読出要求を受信した受信時刻と、前記複数のデータのうちの第（ｉ−１）のデータを前記処理装置に送信した送信時刻と、に基づいて、前記処理装置による前記第ｉのデータに対する前記所定の処理の前記処理時間を算出する、
付記８に記載の制御プログラム。
【０２１２】
（付記１０）
前記第１のデータを記憶させる前記記憶階層の決定は、
前記複数の記憶階層の各々の読出性能に基づいて、前記複数の記憶階層の各々から前記第１のデータを読み出す場合のそれぞれの読出完了時刻を推定し、
測定した前記処理時間に基づいて、前記第１のデータに対する読出要求を受信する場合の推定受信時刻を推定し、
推定した複数の前記読出完了時刻と、推定した前記推定受信時刻とに基づいて、前記第１のデータを記憶させる前記記憶階層を決定する、
付記８又は付記９に記載の制御プログラム。
【０２１３】
（付記１１）
前記第１のデータを記憶させる前記記憶階層の決定は、
前記複数の読出完了時刻において、前記推定受信時刻以前である１以上の読出完了時刻が存在するか否かを判定し、
前記１以上の読出完了時刻が存在する場合、前記１以上の読出完了時刻のうちの、前記推定受信時刻との時刻差が最小である読出完了時刻に対応する記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
付記１０に記載の制御プログラム。
【０２１４】
（付記１２）
前記第１のデータを記憶させる前記記憶階層の決定は、前記１以上の読出完了時刻が存在しない場合、前記複数の記憶階層のうちの読出性能の高い順に選択される記憶階層を、前記第１のデータを記憶させる前記記憶階層に決定する、
付記１１に記載の制御プログラム。
【０２１５】
（付記１３）
前記処理装置は、前記複数のデータの各々に対して前記所定の処理を行なう、一連の処理を１単位として、前記一連の処理を複数回実行し、
前記第１のデータを記憶させる前記記憶階層の決定は、前記一連の処理の完了後であって、次の前記一連の処理が実行される前に、前記第１のデータを記憶させる前記記憶階層を決定する、
付記８〜１２のいずれか１項に記載の制御プログラム。
【０２１６】
（付記１４）
前記コンピュータに、
前記複数のデータの各々を記憶させる記憶階層をそれぞれ決定し、
前記複数のデータの各々を、決定した前記記憶階層へそれぞれ移動する、
処理を実行させる、付記８〜１３のいずれか１項に記載の制御プログラム。
【符号の説明】
【０２１７】
１    階層ストレージシステム
１０    コンピュータ
２    階層ストレージ装置
２０    ストレージ制御装置
２１    メモリ部
２１ａ    読出データ
２１ｂ    計測値
２１ｃ    パラメータ
２１ｄ    階層テーブル
２２    受付部
２３    アクセス部
２４    計測部
２５    判定部
２６    移動制御部
３    ＳＳＤ
３０    記憶装置
４    ＨＤＤ
５    ＴＤ
６    処理装置
６１    アプリケーション
７    ネットワーク
【図１】
2020135683.tif 000003
【図２】
2020135683.tif 000004
【図３】
2020135683.tif 000005
【図４】
2020135683.tif 000006
【図５】
2020135683.tif 000007
【図６】
2020135683.tif 000008
【図７】
2020135683.tif 000009
【図８】
2020135683.tif 000010
【図９】
2020135683.tif 000011
【図１０】
2020135683.tif 000012
【図１１】
2020135683.tif 000013
【図１２】
2020135683.tif 000014
【図１３】
2020135683.tif 000015
【図１４】
2020135683.tif 000016
【図１５】
2020135683.tif 000017