(57)【要約】【課題】ファイルへのアクセスを簡易に予測可能にする。【解決手段】ストレージ装置３０Ａ，３０Ｂにおけるファイル及び同ファイルに対するアクセスを管理するファイル管理部４０と、ストレージ装置３０Ａ，３０Ｂにおける第１記憶媒体３１と同第１記憶媒体３１とは異なる性能の第２記憶装媒体３２との間でファイルの移動を制御するストレージ制御部５０と、を有する。ファイル管理部４０は、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、第２記憶媒体３２から第１記憶媒体３１への移動対象ファイルを決定し、ストレージ制御部５０は、決定した移動対象ファイルを第２記憶媒体３２から第１記憶媒体３１へ移動させる。【選択図】図１
2018005446.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理するファイル管理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間での前記ファイルの移動を制御するストレージ制御部と、を有し、
前記ファイル管理部は、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定し、
前記ストレージ制御部は、前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動させる、情報処理装置。
【請求項２】
前記ファイル管理部は、
前記ファイルに対する前記アクセスの状況を前記履歴として収集する収集部と、
前記履歴に基づいて、一アクセス状況と前記一アクセス状況が所定時間内に到達する他アクセス状況とを対応付けるアクセス状況データベースを作成する作成部と、
前記ファイルに対する最新アクセスを受けると、前記最新アクセスの状況によって前記アクセス状況データベースを検索して得られる前記他アクセス状況を、前記最新アクセスの状況が前記所定時間内に到達しうる予測状況として取得する予測部と、
前記予測状況に基づいて前記移動対象ファイルを決定する決定部と、を有し、
前記ストレージ制御部は、
前記決定部によって決定される前記移動対象ファイルを、前記第２記憶媒体から前記第１記憶媒体へ移動させるファイル移動制御部、を有する、請求項１に記載の情報処理装置。
【請求項３】
前記一アクセス状況は、前記一アクセス状況においてアクセス対象の一ファイルを特定する第１ファイル情報を含み、
前記他アクセス状況は、前記他アクセス状況においてアクセス対象の他ファイルを特定する第２ファイル情報と、前記一ファイルにアクセスした後に前記所定時間内に前記他ファイルにアクセスする確率と、を含み、
前記予測部は、
前記最新アクセスのアクセス対象ファイルを特定する最新ファイル情報によって前記アクセス状況データベースの前記第１ファイル情報を検索することで、前記最新ファイル情報と一致する前記第１ファイル情報に対応付けられた前記第２ファイル情報及び前記確率を前記予測状況として取得し、
取得した前記第２ファイル情報及び前記確率について、前記確率が第１閾値以上である場合、前記第２ファイル情報によって特定されるファイルを、前記移動対象ファイルの候補として予測し、
前記決定部は、前記予測部によって予測される前記候補の中から前記移動対象ファイルを決定する、請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、
前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動しない場合に対する、前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動した場合の、前記ストレージ装置におけるファイルアクセス性能の改善度合いに基づいて、前記候補の中から前記移動対象ファイルを決定する、請求項３に記載の情報処理装置。
【請求項５】
前記決定部は、
前記候補についての前記改善度合いを定量的に評価する効用関数によって算出し、
前記効用関数によって算出される前記改善度合いが第２閾値以上である前記候補を、前記移動対象ファイルとして決定する、請求項４に記載の情報処理装置。
【請求項６】
前記ファイル管理部は、
前記第１記憶媒体における各ファイルについて、前記アクセス状況データベースに蓄積される情報に基づいて、前記各ファイルがアクセスされない確率を算出し、
算出した前記アクセスされない確率が第３閾値以上であるファイルを、書戻し対象ファイルとして決定し、
前記ストレージ制御部は、
前記書戻し対象ファイルを、前記第１記憶媒体から前記第２記憶媒体へ書き戻す、請求項２〜請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理する第１処理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御する第２処理部と、において実行されるプログラムであって、
前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定する、
処理を、前記第１処理部に実行させるとともに、
前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動する、
処理を、前記第２処理部に実行させる、ストレージ制御プログラム。
【請求項８】
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理する第１処理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御する第２処理部と、を有する情報処理装置において、
前記第１処理部が、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定し、
前記第２処理部が、前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動させる、ストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法に関する。
【背景技術】
【０００２】
階層的記憶管理（Hierarchical Storage Management；以下、ＨＳＭという）は、ファイルを、その使用頻度に応じ、相対的に低速／大容量／安価な二次記憶媒体の集合と相対的に高速／小容量／高価な一次記憶媒体の集合とのうちのどちらかに配置する技術である。このようにファイルを配置する媒体を使用頻度（アクセス頻度）に応じて変更することで、記憶媒体維持費用あたりのシステム性能を最大化することが可能である。
【０００３】
典型的なＨＳＭの実装では、例えば、以下の契機[a1]及び[a2]で、性能の異なる二種類の記憶媒体間におけるデータブロック（ファイル）の移動が行なわれる。ここで、二種類の記憶媒体の一方は、上記一次記憶媒体で、例えばＳＣＭ（Storage Class Memory），ＳＳＤ（Solid State Drive）である。また、二種類の記憶媒体の他方は、上記二次記憶媒体で、例えばＨＤＤ（Hard Disk Drive）である。
【０００４】
[a1]  二次記憶媒体上のデータブロックに対するアクセス要求があれば、以後のアクセスを高速化すべく、当該データが二次記憶媒体から一次記憶媒体に移される。
【０００５】
[a2]  一次記憶媒体上のデータブロックであってアクセス要求が所定時間以上ないデータブロックが、一次記憶媒体から二次記憶媒体に移される。もしくは、一次記憶媒体の空き容量が所定閾値以下になった時にアクセス要求のない時間の長いデータブロックから順に、当該データブロックが一次記憶媒体から二次記憶媒体に移される。なお、上記二つのタイミングの両方で一次記憶媒体から二次記憶媒体へのデータブロックの移動が行なわれてもよい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１５７７１１号公報
【特許文献２】特開２００６−２６００６７号公報
【特許文献３】特開２０１５−１４１５４５号公報
【特許文献４】特開２００８−４１０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、典型的なＨＳＭ技術では、所定時間幅の過去から現在までの間におけるファイルへのアクセス状況に基づいて、媒体間のファイル移動が制御される。このため、「しばらくアクセスされていないファイル」の先読みを実現することは困難であり、「しばらくアクセスされていないファイル」に対するアクセスを行なう際には、低速の二次記憶媒体から高速の一次記憶媒体へのデータ移動に伴う遅延の発生は避け難い。
【０００８】
すなわち、図１０に示すように、二次記憶媒体上のファイルに対するアクセス要求を受けたことを契機として対象ファイルを一次記憶媒体に移す転送処理を開始するオンデマンド制御では、その転送処理が完了するまで、計算処理について比較的長い待ち時間が発生する。よって、オンデマンド制御の性能限界を超えるには、所定期間以上アクセスのないファイルへのアクセスを予測して記憶媒体間でファイル移動を行なう必要がある。
【０００９】
しかし、ファイルへのアクセスを予測してファイルの先読みを行なう既存技術（特許文献１〜４参照）では、ファイル毎の明確なスケジュールや、ファイルアクセス特性に関する精密な情報や、プログラムの動作タイミングなどの詳細情報が予め取得されていることが前提である。このため、特に詳細情報の取得に、ひいてはファイルへのアクセスの予測に手間がかかる。したがって、ＨＳＭ技術において、上述のような詳細情報を所与とすることなく、ファイルへのアクセスを簡易に予測可能にすることが課題になっている。
【００１０】
一つの側面では、本件明細書に開示の発明は、ファイルへのアクセスを簡易に予測可能にすることを目的とする。
【課題を解決するための手段】
【００１１】
本件の情報処理装置は、ファイル管理部及びストレージ制御部を有する。前記ファイル管理部は、ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理する。前記ストレージ制御部は、前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御する。そして、前記ファイル管理部は、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定する。また、前記ストレージ制御部は、前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動させる。
【発明の効果】
【００１２】
ファイルへのアクセスを簡易に予測することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態の情報処理装置のハードウエア構成例を示すブロック図である。
【図２】本実施形態の情報処理装置の機能構成例を示すブロック図である。
【図３】本実施形態の情報処理装置におけるアクセス履歴の収集蓄積動作を説明するフローチャートである。
【図４】本実施形態の情報処理装置におけるファイル管理動作及びストレージ制御動作を説明するフローチャートである。
【図５】アクセス履歴として蓄積される本実施形態のファイルアクセス履歴ログファイルのレコードの定義例を示す図である。
【図６】本実施形態のアクセス状況データベースの作成手法を説明する図である。
【図７】本実施形態のアクセス状況データベースの作成動作を説明するフローチャートである。
【図８】本実施形態のアクセス確率算出の際に想定される制御文の一例を示す図である。
【図９】本実施形態のアクセス確率算出の際に想定される制御文の他例を示す図である。
【図１０】既存技術において生じる、計算処理の待ち時間を説明する図である。
【図１１】本実施形態において生じる、計算処理の待ち時間を説明する図である。
【発明を実施するための形態】
【００１４】
以下に、図面を参照し、本願の開示する情報処理装置、ストレージ制御プログラム、及びストレージ制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１５】
なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一もしくは同様の部分を表わす。
【００１６】
〔１〕本実施形態の情報処理装置のハードウエア構成
まず、図１を参照しながら、本実施形態の情報処理装置１００のハードウエア構成について説明する。図１は、本実施形態の情報処理装置１００のハードウエア構成例を示すブロック図である。
【００１７】
図１に示すように、本実施形態の情報処理装置１００は、ＬＡＮ（Local Area Network）等のネットワーク２０を介して端末（クライアント）１０からアクセス要求を受け、当該アクセス要求に応じたストレージ装置３０Ａ，３０Ｂに対するアクセス制御を行なう。アクセス要求は、ストレージ装置３０Ａ，３０Ｂへの書込み要求やストレージ装置３０Ａ，３０Ｂからの読出し要求などの入出力（Ｉ／Ｏ）要求である。端末１０は、ストレージ装置３０Ａ，３０Ｂを利用するＰＣ（Personal Computer）等のコンピュータである。
【００１８】
ストレージ装置３０Ａおよび３０Ｂは、ＨＳＭ技術を適用され、端末１０のアクセス対象であるファイルを保存する階層化ストレージであり、それぞれ、性能の異なる二種類の記憶媒体３１及び３２を含む。記憶媒体３１は、相対的に高速／小容量／高価な一次記憶媒体であり、例えばＳＳＤである。記憶媒体３２は、相対的に低速／大容量／安価な二次記憶媒体であり、例えばＨＤＤである。一次記憶媒体は、第１記憶媒体に相当し、二次記憶媒体は、第２記憶媒体に相当する。
【００１９】
なお、図１に示す例では、二つのストレージ装置３０Ａおよび３０Ｂが備えられているが、三以上のストレージ装置が備えられてもよい。また、ストレージ装置３０Ａには、一つの一次記憶媒体３１が備えられているが、二以上の一次記憶媒体３１が備えられてもよい。同様に、ストレージ装置３０Ｂには、一つの二次記憶媒体３２が備えられているが、二以上の二次記憶媒体３２が備えられてもよい。
【００２０】
情報処理装置１００は、メタデータサーバ４０及びデータサーバ５０を含む。メタデータサーバ４０及びデータサーバ５０は、それぞれ、ＰＣ等のコンピュータである。
【００２１】
メタデータサーバ４０は、ストレージ装置３０Ａ，３０Ｂにおけるファイル及び当該ファイルに対するアクセスを管理するファイル管理部（ファイル管理側）に相当し、ファイルの属性やアクセス情報などの管理を行なう。メタデータサーバ４０は、少なくとも処理部４１及び記憶部４２を含み、記憶部４２に保存されるプログラムを処理部４１が実行することで、前記ファイル管理部としての機能を果たす。処理部４１は第１処理部に相当する。
【００２２】
データサーバ５０は、一次記憶媒体３１と二次記憶装媒体３２との間で前記ファイルの移動を制御するストレージ制御部（ストレージ制御側）に相当し、ファイルの実データの制御を行なう。データサーバ５０は、少なくとも処理部５１及び記憶部５２を含み、記憶部５２に保存されるプログラムを処理部５１が実行することで、データサーバ５０は、前記ファイル管理部としての機能を果たす。処理部５１は、第２処理部に相当する。
【００２３】
なお、本実施形態では、ファイル管理部としての機能とストレージ制御部としての機能とは、それぞれ別個のサーバ４０，５０における処理部４１，５１によって実現される。しかし、ファイル管理部としての機能とストレージ制御部としての機能とは、一のサーバにおける一の処理部によって実現することも可能である。
【００２４】
処理部４１，５１は、それぞれ、サーバ４０，５０の全体を制御する。処理部４１，５１は、単一のプロセッサであってもよいし、マルチプロセッサであってもよい。また、処理部４１，５１は、例えば、ＣＰＵ（Central Processing Unit），ＭＰＵ（Micro Processing Unit），ＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、処理部４１，５１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２５】
記憶部４２は、処理部４１によるファイル管理処理に必要な各種データを格納する。当該各種データとしては、例えば、図２を参照しながら後述するアクセス履歴４２１やアクセス状況データベース４２２が含まれるほか、プログラムなどが含まれる。プログラムとしては、処理部４１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムが含まれてもよい。アプリケーションプログラムには、ファイル管理プログラムを含むストレージ制御プログラム（図示略）が含まれてもよい。記憶部４２としては、ＲＡＭ（Random Access Memory）やＨＤＤが用いられてもよいし、フラッシュメモリ等の半導体記憶装置（ＳＳＤ）が用いられてもよい。
【００２６】
同様に、記憶部５２は、処理部５１によるストレージ制御処理に必要な各種データを格納する。当該各種データとしては、例えば、処理部５１に実行させるＯＳプログラムやアプリケーションプログラムが含まれる。アプリケーションプログラムには、ストレージ制御プログラム（図示略）が含まれてもよい。記憶部５２としては、ＲＡＭやＨＤＤが用いられてもよいし、フラッシュメモリ等の半導体記憶装置（ＳＳＤ）が用いられてもよい。
【００２７】
処理部４１，５１に実行させるプログラムは、光ディスク，メモリ装置，メモリカード等の非一時的な可搬型記録媒体に記録されてもよい。非一時的な可搬型記録媒体に格納されたプログラムは、例えば処理部４１，５１からの制御により、記憶部４２，５２にインストールされた後、実行可能になる。また、処理部４１，５１が、非一時的な可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００２８】
ここで、光ディスクは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスクとしては、Ｂｌｕ−ｒａｙ（登録商標），ＤＶＤ（Digital Versatile Disc），ＤＶＤ−ＲＡＭ，ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。メモリ装置は、機器接続インタフェース（図示略）との通信機能を搭載した非一時的な記録媒体、例えばＵＳＢ（Universal Serial Bus）メモリである。メモリカードは、メモリリーダライタ（図示略）を介し処理部４１，５１に接続されてデータの書込／読出対象になる、カード型の非一時的な記録媒体である。
【００２９】
〔２〕本実施形態の情報処理装置の機能構成
次に、図１及び図２を参照しながら、本実施形態の情報処理装置１００の機能構成について説明する。図２は、本実施形態の情報処理装置１００の機能構成例を示すブロック図である。
【００３０】
メタデータサーバ４０の処理部４１は、ファイルに対するアクセスの履歴４２１に基づいて、ファイルの中から、二次記憶媒体３２から一次記憶媒体３１への移動対象ファイルを決定する機能を果たす。このため、処理部４１は、記憶部４２におけるストレージ制御プログラムを実行することにより、以下に説明する、メタデータ制御部４１１、アクセス状況データベース作成部４１２、アクセス予測部４１３、及び移動対象ファイル決定部４１４としての機能を果たす。
【００３１】
データサーバ５０の処理部５１は、移動対象ファイルを二次記憶媒体３２から一次記憶媒体３１へ移動させる機能を果たす。このため、処理部５１は、記憶部５２におけるストレージ制御プログラムを実行することにより、以下に説明するファイル移動制御部５１１としての機能を果たす。
【００３２】
メタデータ制御部４１１は、各ファイルに対するアクセスの状況をアクセス履歴４２１として収集する収集部に相当する。つまり、メタデータ制御部４１１は、クライアント１０からのファイル操作（アクセス要求）を受け付け、ファイル属性等に関する情報をアクセス履歴４２１として記憶部４２に保存する。アクセス履歴４２１は、例えば図５を参照しながら後述するファイルアクセス履歴ログファイルを蓄積したものである。
【００３３】
アクセス状況データベース作成部４１２は、アクセス履歴４２１に基づいて、一アクセス状況と当該一アクセス状況が所定時間ｔ１内に到達する他アクセス状況とを対応付けるアクセス状況データベース４２２を作成する作成部に相当する。
【００３４】
アクセス予測部４１３は、ファイルに対する最新アクセスを受けると、当該最新アクセスの状況によってアクセス状況データベース４２２を検索して得られる他アクセス状況を、当該最新アクセスの状況が所定時間ｔ１内に到達しうる予測状況として取得する予測部に相当する。つまり、アクセス予測部４１３は、メタデータサーバ４０が最新アクセスを受け付けると、後述するごとく、アクセス状況データベース４２２を基に、最新アクセスの受付後、所定時間ｔ１以内にアクセスされる可能性が高いファイル群（移動対象ファイルの候補）を抽出する。
【００３５】
移動対象ファイル決定部４１４は、アクセス予測部４１３によって取得された予測状況に基づいて移動対象ファイルを決定する決定部に相当する。つまり、移動対象ファイル決定部４１４は、アクセス予測部４１３で抽出されたファイル群（移動対象ファイルの候補）の中から、移動対象ファイルを決定する。
【００３６】
ファイル移動制御部５１１は、移動対象ファイル決定部４１４によって決定された移動対象ファイルを、二次記憶媒体３２から一次記憶媒体３１へ移動させる。
【００３７】
ここで、アクセス状況データベース４２２における上述した一アクセス状況は、当該一アクセス状況においてアクセス対象の一ファイルを特定する第１ファイル情報を含んでいてもよい。また、アクセス状況データベース４２２における上述した他アクセス状況は、当該他アクセス状況においてアクセス対象の他ファイルを特定する第２ファイル情報と、当該一ファイルにアクセスした後に所定時間ｔ１内に当該他ファイルにアクセスする確率と、を含んでいてもよい。また、第１ファイル情報や第２ファイル情報は、ファイル名，ファイル属性，利用者属性，拡張子情報，ディレクトリ情報，ノード情報等を含んでいてもよい。
【００３８】
このとき、アクセス予測部４１３は、最新アクセスのアクセス対象ファイルを特定する最新ファイル情報によってアクセス状況データベース４２２の第１ファイル情報を検索する。これにより、アクセス予測部４１３は、最新ファイル情報と一致する第１ファイル情報に対応付けられた第２ファイル情報及び確率を前記予測状況として取得する。そして、アクセス予測部４１３は、取得した第２ファイル情報及び確率について、当該確率が第１閾値以上である場合、当該第２ファイル情報によって特定されるファイルを、移動対象ファイルの候補として予測する。
【００３９】
移動対象ファイル決定部４１４は、アクセス予測部４１３によって予測された候補の中から移動対象ファイルを決定する。このとき、移動対象ファイル決定部４１４は、ストレージ装置３０Ａ，３０Ｂ（階層化ストレージ）におけるファイルアクセス性能の改善度合いに基づいて、前記候補の中から前記移動対象ファイルを決定する。ここで、ストレージ装置３０Ａ，３０Ｂにおけるファイルアクセス性能の改善度合いは、移動対象ファイルの候補を二次記憶媒体３２から一次記憶媒体３１へ移動しない場合に対する、前記候補を二次記憶媒体３２から一次記憶媒体３１へ移動した場合の、改善度合いである。改善度合いの具体例については後述するが、移動対象ファイル決定部４１４は、前記候補についての改善度合いを定量的に評価する効用関数によって算出してよい。そして、移動対象ファイル決定部４１４は、前記効用関数によって算出される改善度合いが第２閾値以上である候補を、移動対象ファイルとして決定してもよい。
【００４０】
なお、本実施形態においても、ファイル移動制御部５１１は、上述した契機[a2]で、ファイルを一次記憶媒体３１から二次記憶媒体３２に移動させてもよいが、本実施形態においては、以下のような契機で、ファイルを一次記憶媒体３１から二次記憶媒体３２に移動させてもよい。
【００４１】
つまり、ファイル管理部４０（処理部４１）は、一次記憶媒体３１における各ファイルについて、アクセス状況データベース４２２に蓄積される情報に基づいて、各ファイルがアクセスされない確率を算出する。そして、ファイル管理部４０（処理部４１）は、算出したアクセスされない確率が第３閾値以上であるファイルを、書戻し対象ファイルとして決定する。ストレージ制御部５０（処理部５１のファイル移動制御部５１１）は、ファイル管理部４０によって決定された書戻し対象ファイルを、一次記憶媒体３１から二次記憶媒体３２へ書き戻す。
【００４２】
〔３〕本実施形態の情報処理装置の動作
〔３−１〕本実施形態の情報処理装置の概要
本実施形態では、現時刻から所定時間ｔ１経過後の未来のファイルのアクセス状況（使用状況；予測状況に相当）について、以下の入力データ[b1]及び[b2]に基づく予測が行なわれる。そして、当該予測の結果に基づいて、性能（例えばアクセス速度や容量）の異なる複数種類の記憶媒体ヘのファイル配置が、システム全体のファイルアクセスのスループットについて最適化される。
【００４３】
[b1]  現時刻よりも所定時間ｔ２以前の過去から現時刻までの、「個々の利用者、プログラム、及びファイル属性」ないし「複数の利用者、プログラム、及びファイル属性のまとまり」毎に分類された「直近のファイルアクセス状況履歴」。「直近のファイルアクセス状況履歴」は、図５を参照しながら後述するファイルアクセス履歴ログファイルに相当し、メタデータ制御部４１１によって収集される。
【００４４】
[b2]  上記[b1]の「直近のファイルアクセス状況履歴」を蓄積して得られるアクセス履歴４２１を基に作成された「データベース化されたファイルアクセス状況履歴」。「データベース化されたファイルアクセス状況履歴」は、アクセス状況データベース作成部４１２によって作成されるアクセス状況データベース４２２に相当する。「データベース化されたファイルアクセス状況履歴」は、「所定時間ｔ２に亘る期間内における各ファイルアクセス状況と、各ファイルアクセス状況から所定時間ｔ１経過後のファイルアクセス状況との対」からなる。「所定時間ｔ２に亘る期間内における各ファイルアクセス状況」は、上述した一アクセス状況に相当する。また、「各アクセス状況から所定時間ｔ１経過後のファイルアクセス状況」は、上述した他アクセス状況に相当する。
【００４５】
ここで、所定時間ｔ１は、例えば、数分程度のオーダの時間である。また、所定時間ｔ２は、所定時間ｔ１よりも十分に大きい、学習期間に相当する時間であり、例えば、数時間程度のオーダの時間である。
【００４６】
本実施形態では、５つのコンポーネント、即ち上述したメタデータ制御部４１１、アクセス状況データベース作成部４１２、アクセス予測部４１３、移動対象ファイル決定部４１４、及びファイル移動制御部５１１を含む階層化ファイルシステムが構築される。
【００４７】
メタデータ制御部（収集部）４１１は、最新アクセスを受ける都度、最新アクセスの状況を、上記[b1]の「直近のファイルアクセス状況履歴」として収集して蓄積し、アクセス履歴４２１を取得する。
【００４８】
アクセス状況データベース作成部（作成部）４１２は、メタデータ制御部４１１によって取得されたアクセス履歴４２１を基に、「データベース化されたファイルアクセス状況履歴」（上記[b2]参照）を、アクセス状況データベース４２２として作成する。
【００４９】
アクセス予測部（予測部）４１３は、作成部４１２によって作成された「データベース化されたファイルアクセス状況履歴」と、メタデータ制御部４１１によって収集される「直近のファイルアクセス状況履歴」つまり最新アクセスの状況とを入力として、「現時刻から所定時間ｔ１経過後（または所定時間ｔ１内）のファイルアクセス状況」を予測する。つまり、アクセス予測部４１３は、アクセス状況データベース４２２に基づいて、最新アクセスの受付後、所定時間ｔ１以内にアクセスされる可能性が高いファイル群（移動対象ファイルの候補）を抽出する。
【００５０】
移動対象ファイル決定部（決定部）４１４は、アクセス予測部４１３による予測結果（移動対象ファイルの候補）に基づき、あるファイルを記憶媒体間で移動する場合と移動しない場合との各々についての「効用」（得失）を、効用関数によって数値化する。「効用」（得失）は、上述した改善度合いに相当する。そして、移動対象ファイル決定部４１４は、前記効用関数によって算出される改善度合いが第２閾値以上である候補を、移動対象ファイルとして決定する。
【００５１】
つまり、本実施形態では、アクセス対象のファイルないし、属性により分類されたファイルの集合に対し、先読みを行なうことで得られる効用が、効用関数（先読み効用関数）によって計算される。そして、事前に定められる「効用関数値による記憶媒体間ファイル移動の判定基準」（上記第２閾値）に従って、先読みするか否かが判定される。
【００５２】
ファイル移動制御部５１１は、決定部４１４によって決定された移動対象ファイルを、二次記憶媒体３２から一次記憶媒体３１へ移動させる。これにより、ストレージ装置３０Ａ，３０Ｂにおける各ファイルの各記憶媒体への配置は、システム全体として効用が大きくなる方向に変更され最適化される。
【００５３】
本実施形態によれば、事前に定められた明確なスケジュールなどの詳細情報がなくても、一般的なアクセス履歴を用いてファイルへのアクセスを簡易に予測することができる。これにより、図１１に示すように、予測したファイルを、事前に二次記憶媒体３２から一次記憶媒体３１に先読みすることができ、図１０に示す例に比較して、計算処理の待ち時間を減らすことができる。つまり、階層化ストレージ上で待ち時間を最小限に抑えてファイルアクセスを行なうことが可能になる。
【００５４】
したがって、システム内の個々のファイルアクセスやプログラムの実行について、事前に定められた明確なスケジュールがない場合にも、オンデマンド方式でファイル移動を行った場合（図１０参照）に比べ、ファイルアクセスのスループットを改善することができる。
【００５５】
なお、図１０は、既存技術において生じる、計算処理の待ち時間を説明する図である。図１１は、本実施形態において生じる、計算処理の待ち時間を説明する図である。
【００５６】
〔３−２〕アクセス履歴の収集動作
次に、図３に示すフローチャート（ステップＳ１１，Ｓ１２）に従って、本実施形態の情報処理装置１００におけるアクセス履歴４２１の収集蓄積動作について説明する。
【００５７】
メタデータ制御部４１１は、ファイルアクセスを受ける都度（ステップＳ１１）、当該ファイルアクセスの状況を収集して蓄積し、アクセス履歴４２１を取得する（ステップＳ１２）。
【００５８】
ここで、取得されるアクセス履歴４２１は、ファイルアクセス履歴ログファイル（図５参照）に相当する「直近のファイルアクセス状況履歴」を、上記[b1]で説明した通り、現時刻よりも所定時間ｔ２以前の過去から現時刻までの期間に亘って蓄積したものである。
【００５９】
〔３−３〕ファイル管理動作及びストレージ制御動作
次に、図４に示すフローチャート（ステップＳ２１〜Ｓ２７）に従って、本実施形態の情報処理装置１００におけるファイル管理動作及びストレージ制御動作について説明する。なお、図４において、ステップＳ２１〜Ｓ２６は、メタデータサーバ４０（ファイル管理側）での処理であり、ステップＳ２７は、データサーバ５０（ストレージ制御側）での処理である。
【００６０】
アクセス状況データベース作成部４１２は、ファイルアクセスを受ける都度（ステップＳ２１）、蓄積されたアクセス履歴４２１に基づき、「データベース化されたファイルアクセス状況履歴」（上記[b2]参照）をアクセス状況データベース４２２として作成する（ステップＳ２２）。
【００６１】
そして、アクセス予測部４１３は、作成部４１２によって作成されたアクセス状況データベース４２２と、メタデータ制御部４１１によって収集される最新アクセスの状況とを入力として、「現時刻から所定時間ｔ１経過後のファイルアクセス状況」を予測する。つまり、アクセス予測部４１３は、アクセス状況データベース４２２から情報を取得し（ステップＳ２３）、当該情報に基づき、最新アクセスの受付後、所定時間ｔ１以内にアクセスされる可能性が高いファイル群、つまり移動対象ファイルの候補を選出する（ステップＳ２４）。
【００６２】
この後、移動対象ファイル決定部４１４は、選出された移動対象ファイルの候補に基づき、ある候補を記憶媒体間で移動する場合と移動しない場合との各々についての効用（改善度合い）を、効用関数によって算出する（ステップＳ２５）。算出された改善度合いが第２閾値以上の候補がない場合（ステップＳ２６のＮＯルート）、移動対象ファイル決定部４１４は、ファイル移動を行なうことなく処理を終了する。
【００６３】
一方、算出された改善度合いが第２閾値以上の候補がある場合、移動対象ファイル決定部４１４は、改善度合いが第２閾値以上の候補を移動対象ファイルとして決定する（ステップＳ２６のＹＥＳルート）。そして、移動対象ファイル決定部４１４は、ファイル移動制御部５１１によって、決定された移動対象ファイルを、二次記憶媒体３２から一次記憶媒体３１へ移動させる（ステップＳ２７）。
【００６４】
〔３−４〕本実施形態の詳細な動作例
次に、図５〜図９を参照しながら、本実施形態の詳細な動作例について説明する。
【００６５】
以下に説明する詳細な動作例においては、ファイルアクセス状況の予測および記憶媒体間のファイル移動の効用の計算を、以下の項目[c1]及び[c2]の通り、「条件付確率」に基づいて行なう。
【００６６】
[c1]  「直近のファイルアクセス状況履歴」を基に、例えば、現時刻よりも所定時間ｔ２以前の過去から現時刻までのファイルアクセス状況（例えば回数）と、現時刻から所定時間ｔ１経過後のファイルアクセス状況（例えば回数）との組合せを保存するデータベース４２２が作成される。ここで、「直近のファイルアクセス状況履歴」（図５のファイルアクセス履歴ログファイル参照）は、各利用者ないし利用者グループによる各ファイルないしファイル集合ヘのアクセスタイミングと、所属フォルダや拡張子を含めた複数のファイル属性の組み合わせと、を含む。上記アクセスタイミングは、例えば、ファイルをオープンしてからクローズするまでの時刻ないし時間帯である。本実施形態では、各ファイルのファイルオープン情報（アクセス時刻）がデータベース４２２に蓄積され、当該データベース４２２に基づき、「現時刻から所定時間ｔ１経過後のファイルアクセス状況」の様々な場合に対し、各々の場合が生じる「条件付確率」が求められる。
【００６７】
[c2]  「現時刻のファイルアクセス状況」と上記[c1]で推定された「現時刻から所定時間ｔ１経過後のファイルアクセス状況」との差分に基づいて、ファイル移動の「効用」（改善度合い）が効用関数によって算出される。そして、システム全体について「効用」（総和や全ての積）が大きくなる場合に限り、記憶媒体間のファイル移動（二次記憶媒体３２から一次記憶媒体３１へのファイル移動）が行なわれる。
【００６８】
以下、本実施形態の詳細な動作例について、より具体的に説明する。
ファイルおよび利用者の属性に基づいて分類されたファイルアクセス履歴ログファイル（図５参照）に基づき、ファイルと関連のある属性に基づいたファイルアクセス状況による所定時間ｔ１内のファイルアクセス状況を保存するデータベース４２２が作成される。
【００６９】
ここで、図５は、アクセス履歴４２１として蓄積される、本実施形態のファイルアクセス履歴ログファイルのレコードの定義例を示す図である。図５に示すファイルアクセス履歴ログファイルには、「ファイル名」、「ファイル属性」、「利用者属性」、「最初のアクセス時刻」、及び「最後のアクセス時刻」が含まれる。
【００７０】
「ファイル名」は、アクセスされたファイル（アクセス対象ファイル）の名前（rec.file）であり、例えば、/mnt/aである。
【００７１】
「ファイル属性」は、該当ファイル（アクセス対象ファイル）に関する属性であり、パーミッション，uid/gid，サイズ，更新時間などを含み、例えば、-rw-r--r--, root:root, 09:00 2016である。
【００７２】
「利用者属性」は、該当ファイル（アクセス対象ファイル）にアクセスした利用者の属性であり、ユーザ名や、アクセスしたノードなどに関する情報を含み、例えば、root, rx200-004である。
【００７３】
「最初のアクセス時刻」は、ログファイル内のレコード中の最初（早い方）のアクセス時刻（rec.mintime）である。
【００７４】
「最後のアクセス時刻」は、ログファイル内のレコード中の最後（遅い方）のアクセス時刻（rec.maxtime）である。あるログファイルに対し最初にアクセスする際、「最初のアクセス時刻」（rec.mintime）と「最後のアクセス時刻」（rec.maxtime）とには、同じアクセス時刻（rec.mintime）が記録される。そして、以後のアクセスに際しては、「最後のアクセス時刻」（rec.maxtime）のみが更新される。
【００７５】
このとき、アクセス状況データベース４２２の作成手法は、以下のようになる。ここでは、図６〜図９を参照しながら、アクセス状況データベース４２２の作成手法について説明する。なお、図６は、本実施形態のアクセス状況データベース４２２の作成手法を説明する図である。図７は、本実施形態のアクセス状況データベース４２２の作成動作を説明するフローチャートである。図８及び図９は、それぞれ、本実施形態のアクセス確率算出の際に想定される制御文の一例及び他例を示す図である。
【００７６】
以下では、処理時間ｔ１は、所定時間ｔ２よりも十分に短いとする。また、ファイルアクセス状況履歴のログファイルは、所定時間ｔ１よりも短い時間（例えばｔ１／２）毎に新たに作成され、順次、切り替えられるものとする。各ログファイルは、図５に示す形式のレコードからなり、一つのファイルに対応するエントリは、各ログファイル内に一つだけとする。各ログファイルにおける「アクセス時刻」は、例えば、ファイルがオープンされた時刻、ファイルへのread/write があった時刻、ないしそれらのいずれかがあった時刻として定義される。
【００７７】
例えば、図７に示すフローチャートに従って説明するデータベース４２２の作成動作では、所定時間ｔ１の半分の時間ｔ１／２毎にログファイル（レコード）が切り替えられるものとする。このため、ここで説明する詳細な動作例では、図６に示すように、複数（図６中、Ｌ個）のレコードacclog(1), acclog(2), acclog(3), …, acclog(L)が、時間帯毎に生成されるものとする。
【００７８】
即ち、本実施形態では、一ファイルにつき、図５に示すごとく定義される一つのレコードが作成される。そして、図６に示すように、acclog(1), acclog(2), acclog(3), …, acclog(L)という複数のログファイルに分けて所定時間ｔ２に亘る過去の期間のファイルアクセス状況履歴が保持される。このような記録形式には、ログファイルの大きさを抑えやすいという利点がある。
【００７９】
なお、図７に示すフローチャートや、図８及び図９に示す制御文の説明で使用される、上述したログレコード以外の変数等の意味は、以下の通りである。
【００８０】
lfnarr[]：  使用するログファイルの識別子を格納する配列
Ｍ：  使用するログファイルの総数（例えば２）
ｍ：  使用するログファイルのカウンタ変数
【００８１】
Ｓ[file]：  指定したファイルに対応する総アクセス数の連想配列。データが格納されていない（ファイルに対応する）要素は「アクセスなし」の意味になる。
【００８２】
Ｒ[file1, file2]：  file1（一ファイル）にアクセスしてから所定時間ｔ１以内にfile2（他ファイル）がアクセスされた回数の連想配列。データが格納されていない（ファイルの組に対応する）要素は「アクセスなし」の意味になる。
【００８３】
Prob[file1, file2]：  file1（一ファイル）にアクセスしてから所定時間ｔ１以内にfile2（他ファイル）がアクセスされた確率の連想配列。データが格納されていない（ファイルの組に対応する）要素は、確率０として扱う。
【００８４】
なお、「連想配列」は、「全ての格納済要素を順次取得する」操作が可能なデータ型であり、awk, perl, pythonなどの多くのプログラム言語で使用可能である。システム内の全てのファイルの組の中で、「あるファイルへのアクセスから所定時間ｔ１以内に、別のファイルにアクセスがある」という組は非常に少ないため、記憶領域の使用効率の観点から「ログに出現する組だけを記録する」目的で「連想配列」が使用される。
【００８５】
ここで、logfileは、図５に示すごとく定義される、ファイルアクセス履歴ログファイルであり、exclude_fileはファイル名であり、rec1及びrec2は、それぞれファイルアクセス履歴ログファイルのレコードである。また、file*は、プログラムの関数の説明のために一般化した変数（ファイル名）で、rec*.fileはレコードの要素のファイル名である。
【００８６】
以下の関数については、多くのプログラム言語の標準的な機能で容易に実現可能なことが明白であるので、その実現方法の説明は省略し、ここでは機能のみについて説明する。
【００８７】
getlogrec(logfile)：  ログファイルから「次のアクセスレコード」を取得する。ただし、ファイルの最後に到達すると終了コードを返す。
【００８８】
getlogrecex(logfile, exclude_file):  ログファイルから、exclude_file 以外のファイルへの次のアクセスレコードを取得する。ただし、ファイルの最後に到達すると終了コードを返す。
【００８９】
calcprob(R, S)：  連想配列Ｒ内の全ての格納済要素に対し、確率を次式で計算する。
Prob[file1, file2] = Ｒ[file1, file2] / Ｓ[file1]
【００９０】
ここで、calcprob(R, S)への入力となる連想配列Ｒ，Ｓを用意するまでの処理がポイントになる。疑似コードでは、例えば、図８に示すような処理をしていると考えてよい。ここでは、集合をデータとして扱える仮想的な言語を想定していて、∪は和集合を意味する。なお、next;は、同じレコードrec2を重複して計数しないようにするという意味の制御文を想定している。
【００９１】
ここで、図７に示すフローチャート（ステップＳ３１〜Ｓ４２）に従って、図８に示す制御文に対応付けながら、アクセス状況データベース４２２の作成動作について、簡単に説明する。
【００９２】
まず、lfnarrに使用するログファイル全ての識別子が格納され（ステップＳ３１）、カウンタ変数ｍが配列の最初の番号０に設定される（ステップＳ３２）。この後、ｍが１増やされ（ステップＳ３３）、ｍ≦Ｍであるか否かが判定される（ステップＳ３４）。ｍ≦Ｍでない場合つまりｍ＞Ｍである場合（ステップＳ３４のＮＯルート）、処理はステップＳ４２へ移行する。ステップＳ４２では、calcprob(R, S)により、連想配列Ｒ内の全ての格納済要素に対し、確率Prob[file1, file2] = Ｒ[file1, file2] / Ｓ[file1]が算出される。当該確率は、一ファイルfile1にアクセスした後に所定時間ｔ１以内に他ファイルfile2にアクセスする確率に相当する。
【００９３】
一方、ｍ≦Ｍである場合（ステップＳ３４のＹＥＳルート）、acclog(m)のレコードが取得される（ステップＳ３５）。図８に示す“forall(rec1 in acclog(m)){”は、図７のステップＳ３５の処理rec1 = getlogrec(lfnarr[m])に対応する。
【００９４】
有効なレコードrec1を取得できない場合（ステップＳ３６のＮＯルート）、処理はステップＳ３３に移行する。一方、有効なレコードrec1を取得できる場合（ステップＳ３６のＹＥＳルート）、連想配列Ｓ[rec1.file]が１増やされる（ステップＳ３７）。図８に示す“Ｓ[rec1.file]++”は、図７のステップＳ３７の処理に対応する。つまり、rec1.fileという名前のファイルがアクセスされた回数を増加させる。
【００９５】
この後、図８に示す“rec2 in (acclog(m) ∪ acclog(m+1) ∪acclog(m+2))”は、図７のステップＳ３８の処理rec2=(getlogrecex(lfnarr[m],rec1)∪getlogrecex(lfnarr[m+1],rec1)∪getlogrecex(lfnarr[m+2],rec1))に対応する。この例では、所定時間ｔ１の半分の時間ｔ１／２毎にログファイルを切り替えているので、ステップＳ３５で取得されたレコードrec1のファイルがアクセスされてから所定時間ｔ１以内にアクセスされた可能性のあるファイルのレコード群が取得される。
【００９６】
そして、終了コードではない有効なレコードrec2を取得できない場合（ステップＳ３９のＮＯルート）、処理はステップＳ３５に移行する。一方、終了コードではない有効なレコードrec2を取得できる場合（ステップＳ３９のＹＥＳルート）、rec2.mintime < rec1.maxtime + t1の判定が行なわれる（ステップＳ４０）。図８に示す“if(rec2.mintime < rec1.maxtime + t1)”は、図７のステップＳ３９における上記判定に対応する。rec2.mintime < rec1.maxtime + t1でない場合（ステップＳ４０のＮＯルート）、処理はステップＳ３８に移行する。
【００９７】
一方、rec2.mintime < rec1.maxtime + t1である場合（ステップＳ４０のＹＥＳルート）、連想配列Ｒ[rec1.file,rec2.file]を１増やすことで（ステップＳ４１）、実際に所定時間ｔ１以内にアクセスされたファイルのアクセス回数を１増加させた後、処理はステップＳ３８に移行する。図８に示す“Ｒ[rec1.file,rec2.file]++”は、図７のステップＳ４１の処理に対応する。
【００９８】
さて、本実施形態において、ｔ１という時間は、いわば「あるファイルへのアクセスがあった後に『それほど長く経過することなく』別のファイルへのアクセスが発生する」という判定での「目安」を意味している。このため、制御上、「所定時間ｔ１以内である」ことを厳密に判定する必要はないことに留意すると、上述した「時間帯毎に生成されるログファイル」のレコードから時刻をなくして記録データ量を削減することも可能である。以下、この点について補足的に説明する。
【００９９】
図７に示すフローチャートでは、配列lfnarr[m], lfnarr[m+1], lfnarr[m+2]にそれぞれacclog(m), acclog(m+1),acclog(m+2) の識別子が格納されている。しかし、配列lfnarr[m]内のファイルと配列lfnarr[m+2]内のファイルとの対についての関係を調べるとき以外では、rec.mintimeやrec.maxtimeは使用されない。配列lfnarr[m]内のファイルと配列lfnarr[m+2]内のファイルとの対の時にrec.mintimeやrec.maxtime を使用する理由は、厳密に所定時間ｔ１以内であることを判定するためだけである。このため、所定時間ｔ１について１．５倍までの誤差を許容できる場合には、rec.mintimeやrec.maxtimeを使用する必要はなく、これらを記録する必要もない。従って、図９に示すように、図８に示す制御文からif文を削除することができ、処理時間を短縮することができる。
【０１００】
なお、上述した例では、所定時間ｔ１の半分の時間ｔ１／２毎にログファイルを切り替える場合について説明したが、本発明はこれに限定されるものでない。例えば、所定時間ｔ１のｋ（ｋは３以上の整数）分の一の時間ｔ１／ｋ毎にログファイルを切り替えるようにすれば、アクセス予測の誤差等をより小さくすることができる。
【０１０１】
上述した例では、ファイル識別子が同じファイルについてのデータベース作成手順について説明しているが、その他にも、ファイルと関連のある属性として、以下の属性を想定することができる。
【０１０２】
・ディレクトリ（同一ディレクトリあるいは親ディレクトリを共有するディレクトリ）
・ユーザ（同一ユーザ、同一グループ）
・プログラム関係（拡張子が共通のファイル）
・ノード（アクセスされたノード）
【０１０３】
また、上述した例では、一ファイルにアクセスした後に所定時間ｔ１以内に他ファイルにアクセスする確率が、条件付き確率に基づいて推定される。複数の条件を組み合わせた場合の確率については、ベイズの定理により条件付確率の定義通りに計算するか、もしくは、計算を簡略化するため組合せ条件に関わる事象がすべて独立とみなすナイーブベイズ法による推定が用いられる。ナイーブベイズ法については、具体的な第２動作例において説明する。
【０１０４】
〔４〕具体的な動作例
〔４−１〕第１動作例
本実施形態の情報処理装置１００についての具体的な第１動作例を説明する。
【０１０５】
第１動作例では、ファイルアクセス予兆現象として、アクセス履歴２４１から、以下の現象Ａ(d,f,t)が想定される。
Ａ(d,f,t)：  あるディレクトリｄ配下のファイルｆが、時刻ｔにアクセスされる現象
【０１０６】
また、第１動作例では、評価対象ファイル群として、以下のファイルＳ(Ａ)が想定される。
Ｓ(Ａ)：  「同一ディレクトリ内のファイル」や、「親ディレクトリを共有するディレクトリ内にある、ファイルの拡張子が同じファイル」
【０１０７】
このとき、アクセス状況データベース４２２から、評価対象ファイル群Ｓ(Ａ)に属するファイルのアクセス確率が取得（算出）される。
【０１０８】
取得されたアクセス確率がある閾値以上ならば二次記憶媒体３２から一次記憶媒体３１へデータを移動させる。ここでいう閾値は、上述した第１閾値（もしくは第２閾値）として捉えることができる。
【０１０９】
〔４−２〕第２動作例
本実施形態の情報処理装置１００についての具体的な第２動作例を説明する。
【０１１０】
第２動作例では、アクセス予測の精度をより高めるために、アクセス予測に使用するアクセス履歴を増やす。ここで使用するアクセス履歴を以下に示す。
【０１１１】
[d1]  ファイルアクセス予兆現象
「ファイルアクセス予兆現象」として、以下の現象Ａ〜Ｄを採る。
Ａ(d,f,t)：  あるディレクトリｄ配下のファイルｆが、時刻ｔにアクセスされる現象
Ｂ(u,f,t)：  あるユーザｕのファイルｆが、時刻ｔにアクセスされる現象
Ｃ(p,f,t)：  あるプログラムｐのファイルｆが、時刻ｔにアクセスされる現象
Ｄ(n,u,f,t)：  あるノードｎ上でユーザｕによってファイルfが、時刻ｔtにアクセスされる現象
【０１１２】
[d2]  評価対象ファイル群
上記ファイルアクセス予兆現象Ａ〜Ｄの「評価対象ファイル群」を、それぞれ、以下のようなＳ(Ａ)，Ｓ(Ｂ)，Ｓ(Ｃ)，Ｓ(Ｄ)とする。ここでは、ファイルアクセス予兆現象Ａ〜Ｄのそれぞれについて、アクセス履歴から、所定時間ｔ１以内に所定値（第１閾値）以上の確率でアクセスされたことがあり且つ各「評価対象ファイル群」に対して次の条件を満たすファイルが、事前に定められているものとする。
【０１１３】
Ｓ(Ａ)：  「同一ディレクトリ内のファイル」や、「親ディレクトリを共有するディレクトリ内にある、ファイルの拡張子が同じファイル」
Ｓ(Ｂ)：  「ユーザｕが所有するファイル」や、「ユーザｕと同じグループに所属するユーザのファイルで、ユーザｕにアクセス権限のあるファイル」
Ｓ(Ｃ)：  「プログラムｐがアクセス対象とするファイルの拡張子が共通のファイル」
Ｓ(Ｄ)：  「ノードｎでユーザｕからアクセスされたファイル」
【０１１４】
[d3]  所定時間内アクセス確率
あるファイルに対する評価対象ファイル群Ｓ(Ａ)〜Ｓ(Ｄ)に属するファイルに対し「所定時間内アクセス確率」が記録されている。当該「所定時間内アクセス確率」は、あるファイルへのアクセス回数に対する、当該ファイルにアクセスがあってから所定時間ｔ１以内にアクセスがあったファイルへのアクセス回数の割合として求められる。「所定時間内アクセス確率」は、ファイル毎に記憶されてもよい。また、「所定時間内アクセス確率」は、参照するデータ量の削減のために、群全体について記憶されてもよいし、群の部分集合毎に記憶されてもよい。ここで、群の部分集合は、例えば、ファイル名長さがＸ未満のファイルの部分集合もしくはファイル名長さがＸ以上のファイルの部分集合でもよいし、ファイルサイズがＹ未満のファイルの部分集合もしくはファイルサイズがＹ以上のファイルの部分集合でもよい。なお、「所定時間内アクセス確率」は、アクセス要求がある毎に更新されてもよいし、随時更新ではなく、ある一定期間の学習後は更新しない方式を採ってもよい。
【０１１５】
本実施形態では、Ｓ(Ａ)∩Ｓ(Ｂ)のような複数の予兆事象に対応する確率の計算には、余事象を独立とみなすナイーブベイズ法が使用される。即ち、ｘ∈Ｓ(Ａ)が所定時間ｔ１内にアクセスされる確率をｐ、ｙ∈Ｓ(Ｂ)が所定時間ｔ１内にアクセスされる確率をｑとするとき、ｚ∈Ｓ(Ａ)∩Ｓ(Ｂ)が所定時間ｔ１内にアクセスされる確率は、1-(1-p)(1-q)と見積られる。
【０１１６】
このとき、全てのｅ∈Ｓ(Ａ)∪Ｓ(Ｂ)∪Ｓ(Ｃ)∪Ｓ(Ｄ)に対し、以下のようにアクセス確率Ｐ(ｅ)を求めることができる。なお、以下において、ｘ′∈Ｓ(Ｃ)が所定時間ｔ１内にアクセスされる確率をｒ、ｙ′∈Ｓ(Ｄ)が所定時間ｔ１内にアクセスされる確率をｓとする。
【０１１７】
case1：  ｅがＳ(Ａ)，Ｓ(Ｂ)，Ｓ(Ｃ)，Ｓ(Ｄ)のどれか一つだけに属す場合、所属する「評価対象ファイル群」での確率（確率ｐ，ｑ，ｒ，ｓのうちの一つ）を、ｅに対応させる。
【０１１８】
case2：  ｅがＳ(Ａ)，Ｓ(Ｂ)，Ｓ(Ｃ)，Ｓ(Ｄ)のうちの二つに属す場合、所属する二つの「評価対象ファイル群」での確率をｐ，ｑとすると、確率1-(1-p)(1-q)をｅに対応させる。
【０１１９】
case3：  ｅがＳ(Ａ)，Ｓ(Ｂ)，Ｓ(Ｃ)，Ｓ(Ｄ)のうちの三つに属す場合、所属する三つの「評価対象ファイル群」での確率をｐ，ｑ，ｒとすると、確率1-(1-p)(1-q)(1-r)をｅに対応させる。
【０１２０】
case4：  ｅがＳ(Ａ)，Ｓ(Ｂ)，Ｓ(Ｃ)，Ｓ(Ｄ)の全てに属す場合、確率1-(1-p)(1-q)(1-r)(1-s)をｅに対応させる。
【０１２１】
また、本実施形態では、ファイルを先読みする効用を定量的に評価するため、「先読み効用関数」が、上記ファイルｅに対し、例えば以下の[e1]〜[e3]のうちのいずれか一つとして、事前に定められる。
【０１２２】
[e1]  所定時間ｔ１内にアクセスされる確率自体
[e2]  ファイルサイズによる転送時間（転送待ち時間）の予測値
[e3]  実測による処理時間差。つまり、ファイルの先読みを行なわずに二次記憶媒体３２からのファイルアクセスとなった場合と、ファイルの先読みを行ない一次記憶媒体３１からのファイルアクセスとなった場合との処理時間差の実測値を、ファイルｅについての関数として事前に設定しておく。
【０１２３】
先読み（二次記憶媒体３２から一次記憶媒体３１へのファイル移動）を行なうか否かの判定基準としては、例えば以下の[f1]及び[f2]が考えられる。
【０１２４】
[f1]  上記ファイルｅに対して「先読み効用関数」を適用した値が所定閾値（第２閾値）以上である場合は対象のファイルを一次記憶媒体３１に先読みする。当該所定閾値は、一次記憶媒体３１の空き容量によって動的に変更することもできる。
【０１２５】
[f2]  上記ファイルｅに対して「先読み効用関数」を適用した値が大きいファイル順に所定個数のファイルを一次記憶媒体３１に先読みする。当該所定個数は、一次記憶媒体３１の空き容量によって動的に変更することも想定する。
【０１２６】
〔４−３〕第３動作例
本実施形態の情報処理装置１００についての具体的な第３動作例を説明する。
【０１２７】
一次記憶媒体３１においては、空き容量が所定閾値（第４閾値）よりも小さい場合や、フラグメンテーションの進行度が所定閾値（第５閾値）以上である場合がある。このとき、一次記憶媒体３１上の一部のファイルを、一旦、二次記憶媒体３２に退避させた後、再度、一次記憶媒体３１に読み出すことで、フラグメンテーションを解消することが望ましい場合がある。
【０１２８】
このような場合に、第３動作例では、上述した第１動作例に加え、一次記憶媒体３１における各ファイルについて、アクセス状況データベース４２２に蓄積される情報に基づき、各ファイルがアクセスされない確率が算出される。そして、算出されたアクセスされない確率が第３閾値以上であるファイルが、書戻し対象ファイルとして決定され、当該書戻し対象ファイルが、一次記憶媒体３１から二次記憶媒体３２へ書き戻される。
【０１２９】
これにより、一次記憶媒体３１の空き領域を拡大し、より積極的な先読み処理が実行されるようになるほか、再度、ファイルを一次記憶媒体３１に読み出し直すことで、フラグメンテーションが確実に解消される。
【０１３０】
〔５〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理するファイル管理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御するストレージ制御部と、を有し、
前記ファイル管理部は、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定し、
前記ストレージ制御部は、前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動させる、情報処理装置。
【０１３２】
（付記２）
前記ファイル管理部は、
前記ファイルに対する前記アクセスの状況を前記履歴として収集する収集部と、
前記履歴に基づいて、一アクセス状況と前記一アクセス状況が所定時間内に到達する他アクセス状況とを対応付けるアクセス状況データベースを作成する作成部と、
前記ファイルに対する最新アクセスを受けると、前記最新アクセスの状況によって前記アクセス状況データベースを検索して得られる前記他アクセス状況を、前記最新アクセスの状況が前記所定時間内に到達しうる予測状況として取得する予測部と、
前記予測状況に基づいて前記移動対象ファイルを決定する決定部と、を有し、
前記ストレージ制御部は、
前記決定部によって決定される前記移動対象ファイルを、前記第２記憶媒体から前記第１記憶媒体へ移動させるファイル移動制御部、を有する、付記１に記載の情報処理装置。
【０１３３】
（付記３）
前記一アクセス状況は、前記一アクセス状況においてアクセス対象の一ファイルを特定する第１ファイル情報を含み、
前記他アクセス状況は、前記他アクセス状況においてアクセス対象の他ファイルを特定する第２ファイル情報と、前記一ファイルにアクセスした後に前記所定時間内に前記他ファイルにアクセスする確率と、を含み、
前記予測部は、
前記最新アクセスのアクセス対象ファイルを特定する最新ファイル情報によって前記アクセス状況データベースの前記第１ファイル情報を検索することで、前記最新ファイル情報と一致する前記第１ファイル情報に対応付けられた前記第２ファイル情報及び前記確率を前記予測状況として取得し、
取得した前記第２ファイル情報及び前記確率について、前記確率が第１閾値以上である場合、前記第２ファイル情報によって特定されるファイルを、前記移動対象ファイルの候補として予測し、
前記決定部は、前記予測部によって予測される前記候補の中から前記移動対象ファイルを決定する、付記２に記載の情報処理装置。
【０１３４】
（付記４）
前記決定部は、
前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動しない場合に対する、前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動した場合の、前記ストレージ装置におけるファイルアクセス性能の改善度合いに基づいて、前記候補の中から前記移動対象ファイルを決定する、付記３に記載の情報処理装置。
【０１３５】
（付記５）
前記決定部は、
前記候補についての前記改善度合いを定量的に評価する効用関数によって算出し、
前記効用関数によって算出される前記改善度合いが第２閾値以上である前記候補を、前記移動対象ファイルとして決定する、付記４に記載の情報処理装置。
【０１３６】
（付記６）
前記ファイル管理部は、
前記第１記憶媒体における各ファイルについて、前記アクセス状況データベースに蓄積される情報に基づいて、前記各ファイルがアクセスされない確率を算出し、
算出した前記アクセスされない確率が第３閾値以上であるファイルを、書戻し対象ファイルとして決定し、
前記ストレージ制御部は、
前記書戻し対象ファイルを、前記第１記憶媒体から前記第２記憶媒体へ書き戻す、付記２〜付記５のいずれか一項に記載の情報処理装置。
【０１３７】
（付記７）
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理する第１処理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御する第２処理部と、において実行されるプログラムであって、
前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定する、
処理を、前記第１処理部に実行させるとともに、
前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動する、
処理を、前記第２処理部に実行させる、ストレージ制御プログラム。
【０１３８】
（付記８）
前記ファイルに対する前記アクセスの状況を前記履歴として収集し、
前記履歴に基づいて、一アクセス状況と前記一アクセス状況が所定時間内に到達する他アクセス状況とを対応付けるアクセス状況データベースを作成し、
前記ファイルに対する最新アクセスを受けると、前記最新アクセスの状況によって前記アクセス状況データベースを検索して得られる前記他アクセス状況を、前記最新アクセスの状況が前記所定時間内に到達しうる予測状況として取得し、
前記予測状況に基づいて前記移動対象ファイルを決定する、
処理を、前記第１処理部に実行させるとともに、
前記第１処理部によって決定される前記移動対象ファイルを、前記第２記憶媒体から前記第１記憶媒体へ移動する、
処理を、前記第２処理部に実行させる、付記７に記載のストレージ制御プログラム。
【０１３９】
（付記９）
前記一アクセス状況は、前記一アクセス状況においてアクセス対象の一ファイルを特定する第１ファイル情報を含み、
前記他アクセス状況は、前記他アクセス状況においてアクセス対象の他ファイルを特定する第２ファイル情報と、前記一ファイルにアクセスした後に前記所定時間内に前記他ファイルにアクセスする確率と、を含み、
前記最新アクセスのアクセス対象ファイルを特定する最新ファイル情報によって前記アクセス状況データベースの前記第１ファイル情報を検索することで、前記最新ファイル情報と一致する前記第１ファイル情報に対応付けられた前記第２ファイル情報及び前記確率を前記予測状況として取得し、
取得した前記第２ファイル情報及び前記確率について、前記確率が第１閾値以上である場合、前記第２ファイル情報によって特定されるファイルを、前記移動対象ファイルの候補として予測し、
予測される前記候補の中から前記移動対象ファイルを決定する、
処理を、前記第１処理部に実行させる、付記８に記載のストレージ制御プログラム。
【０１４０】
（付記１０）
前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動しない場合に対する、前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動した場合の、前記ストレージ装置におけるファイルアクセス性能の改善度合いに基づいて、前記候補の中から前記移動対象ファイルを決定する、
処理を、前記第１処理部に実行させる、付記９に記載のストレージ制御プログラム。
【０１４１】
（付記１１）
前記候補についての前記改善度合いを定量的に評価する効用関数によって算出し、
前記効用関数によって算出される前記改善度合いが第２閾値以上である前記候補を、前記移動対象ファイルとして決定する、
処理を、前記第１処理部に実行させる、付記１０に記載のストレージ制御プログラム。
【０１４２】
（付記１２）
前記第１記憶媒体における各ファイルについて、前記アクセス状況データベースに蓄積される情報に基づいて、前記各ファイルがアクセスされない確率を算出し、
算出した前記アクセスされない確率が第３閾値以上であるファイルを、書戻し対象ファイルとして決定する、
処理を、前記第１処理部に実行させるとともに、
前記書戻し対象ファイルを、前記第１記憶媒体から前記第２記憶媒体へ書き戻す、
処理を、前記第２処理部に実行させる、付記８〜付記１１のいずれか一項に記載のストレージ制御プログラム。
【０１４３】
（付記１３）
ストレージ装置におけるファイル及び前記ファイルに対するアクセスを管理する第１処理部と、
前記ストレージ装置における第１記憶媒体と前記第１記憶媒体とは異なる性能の第２記憶装媒体との間で前記ファイルの移動を制御する第２処理部と、を有する情報処理装置において、
前記第１処理部が、前記ファイルに対する前記アクセスの履歴に基づいて、前記ファイルの中から、前記第２記憶媒体から前記第１記憶媒体への移動対象ファイルを決定し、
前記第２処理部が、前記移動対象ファイルを前記第２記憶媒体から前記第１記憶媒体へ移動させる、ストレージ制御方法。
【０１４４】
（付記１４）
前記第１処理部が、
前記ファイルに対する前記アクセスの状況を前記履歴として収集し、
前記履歴に基づいて、一アクセス状況と前記一アクセス状況が所定時間内に到達する他アクセス状況とを対応付けるアクセス状況データベースを作成し、
前記ファイルに対する最新アクセスを受けると、前記最新アクセスの状況によって前記アクセス状況データベースを検索して得られる前記他アクセス状況を、前記最新アクセスの状況が前記所定時間内に到達しうる予測状況として取得し、
前記予測状況に基づいて前記移動対象ファイルを決定するとともに、
前記第２処理部が、
前記第１処理部によって決定される前記移動対象ファイルを、前記第２記憶媒体から前記第１記憶媒体へ移動させる、付記１３に記載のストレージ制御方法。
【０１４５】
（付記１５）
前記一アクセス状況は、前記一アクセス状況においてアクセス対象の一ファイルを特定する第１ファイル情報を含み、
前記他アクセス状況は、前記他アクセス状況においてアクセス対象の他ファイルを特定する第２ファイル情報と、前記一ファイルにアクセスした後に前記所定時間内に前記他ファイルにアクセスする確率と、を含み、
前記第１処理部が、
前記最新アクセスのアクセス対象ファイルを特定する最新ファイル情報によって前記アクセス状況データベースの前記第１ファイル情報を検索することで、前記最新ファイル情報と一致する前記第１ファイル情報に対応付けられた前記第２ファイル情報及び前記確率を前記予測状況として取得し、
取得した前記第２ファイル情報及び前記確率について、前記確率が第１閾値以上である場合、前記第２ファイル情報によって特定されるファイルを、前記移動対象ファイルの候補として予測し、
予測される前記候補の中から前記移動対象ファイルを決定する、付記１４に記載のストレージ制御方法。
【０１４６】
（付記１６）
前記第１処理部が、
前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動しない場合に対する、前記候補を前記第２記憶媒体から前記第１記憶媒体へ移動した場合の、前記ストレージ装置におけるファイルアクセス性能の改善度合いに基づいて、前記候補の中から前記移動対象ファイルを決定する、付記１５に記載のストレージ制御方法。
【０１４７】
（付記１７）
前記第１処理部が、
前記候補についての前記改善度合いを定量的に評価する効用関数によって算出し、
前記効用関数によって算出される前記改善度合いが第２閾値以上である前記候補を、前記移動対象ファイルとして決定する、付記１６に記載のストレージ制御方法。
【０１４８】
（付記１８）
前記第１処理部が、
前記第１記憶媒体における各ファイルについて、前記アクセス状況データベースに蓄積される情報に基づいて、前記各ファイルがアクセスされない確率を算出し、
算出した前記アクセスされない確率が第３閾値以上であるファイルを、書戻し対象ファイルとして決定するとともに、
前記第２処理部が、
前記書戻し対象ファイルを、前記第１記憶媒体から前記第２記憶媒体へ書き戻す、付記１４〜付記１７のいずれか一項に記載のストレージ制御方法。
【符号の説明】
【０１４９】
１０    端末（クライアント）
２０    ネットワーク
３０Ａ，３０Ｂ    ストレージ装置（階層化ストレージ）
３１    一次記憶媒体（第１記憶媒体，ＳＳＤ）
３２    二次記憶媒体（第２記憶媒体，ＨＤＤ）
４０    メタデータサーバ（ファイル管理部，ＰＣ，コンピュータ）
４１    処理部（第１処理部）
４１１    メタデータ制御部（収集部）
４１２    アクセス状況データベース作成部（作成部）
４１３    アクセス予測部（予測部）
４１４    移動対象ファイル決定部（決定部）
４２    記憶部
４２１    アクセス履歴（ファイルアクセス履歴ログファイル）
４２２    アクセス状況データベース
５０    データサーバ（ストレージ制御部，ＰＣ，コンピュータ）
５１    処理部（第２処理部）
５１１    ファイル移動制御部
１００    情報処理装置（ＰＣ，コンピュータ）
【図１】
2018005446.tif 000003
【図２】
2018005446.tif 000004
【図３】
2018005446.tif 000005
【図４】
2018005446.tif 000006
【図５】
2018005446.tif 000007
【図６】
2018005446.tif 000008
【図７】
2018005446.tif 000009
【図８】
2018005446.tif 000010
【図９】
2018005446.tif 000011
【図１０】
2018005446.tif 000012
【図１１】
2018005446.tif 000013