説明

ファイルシステム及びそのデータ再配置方法,プログラム

【課題】複数のプロセスを並行に実行してもファイルアクセスが高速になるように、ディスク装置に記憶されたデータを再配置し得るファイルシステム,データ再配置方法及びデータ再配置用プログラムを提供する。
【解決手段】データ再配置手段124が、アプリケーション11からの要求に応じてファイル管理手段121に読み込まれるデータの一覧を示すアクセスパターンテーブルに基づいて、ディスク装置2の記憶領域に格納されたデータをアプリケーションに読み込まれる順番で連続するように再配置する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスク装置に記憶されたデータへのアクセスを管理するファイルシステム及びそのデータ再配置方法,データ再配置用プログラムに関する。
【背景技術】
【0002】
コンピュータシステムにおけるファイルシステムがアプリケーションの要求に応じてディスク装置に対しファイルの書き換えや削除を繰り返すと、ディスク装置に格納されたファイルが断片化し、1つのファイルが複数のデータに分散されて記憶領域内の別々の位置に記憶される。このファイルの断片化が進んだ場合、1つファイルが連続した領域に記録されている場合と比べて、ファイルの読み取り時間が長くなってしまう。
【0003】
このファイルの断片化を解消するために、通常のファイルシステムは、ディスク装置に記憶されているデータの再配置を行うデフラグメント機能を有している。通常のデフラグメント機能は、複数のデータに分散されてディスク装置に保存されているファイルを、連続した状態で記憶されるように再配置することにより、一つのファイルに対するアクセスがシーケンシャルなアクセスになるようにして、ファイルアクセスを高速化するものである。
【0004】
これに関連する技術が特許文献1に開示されている。特許文献1に開示された技術は、論理ユニット上で発生するアクセスの傾向を表すアクセス統計情報に基づいて、アプリケーションからの各アクセス要求に係る各ファイルのアクセス性能の劣化度合いを「物理的分割数×単位時間当たりのアクセス回数」で算出し、アクセス性能の劣化度合いが大きいファイルを優先的に再配置していた。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−284632号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した関連技術では、ディスク装置に記憶されたデータをファイル毎に連続して格納されるように再配置することで、1つのファイルに対するアクセスがシーケンシャルなアクセスになりファイルアクセスの高速化を図っているが、これでは、並列処理により同時に複数のファイルへアクセスする場合、複数のファイルに交互にアクセスすることになってしまい、高速なファイルアクセスを行うことができなかった。
【0007】
近年、複数のCPUが搭載されたコンピュータシステムが一般に知られていると共に、複数のCPUによる並列処理を実行することを前提としたアプリケーションも利用されている。特に、HPC(High Performance Computing)分野においては、一つのアプリケーションを複数のCPUに実行させることが行われており、入力データとして使用されるファイルはサイズの大きいものが多い。また、計算に必要な入力データはアプリケーションの実行直後に全てメモリ上に読み込まれ、読み込みが完了しないと計算が開始できないようなアプリケーションも存在する。
【0008】
並列処理によって複数の異なるファイルに同時にアクセスする場合、通常のデフラグメントによるデータ配置では、シーケンシャルなアクセスを行うことができず、大量のデータの入出力が低速なランダムアクセスで行われることになるので、アプリケーションの実行速度を高速化できないという問題があった。
【0009】
この問題について、図7に基づいて具体的に説明すると、図7に示すホスト7で実行されるアプリケーション71は、並列に実行されるプロセス711と、プロセス712と、プロセス713と、プロセス714とで構成されている。プロセス711は、ディスク装置8に記憶されたファイル81の読み込みを実行し、1回目の読み込みでデータ811、2回目の読み込みでデータ812を読み込む。プロセス712はディスク装置8に記憶されたファイル82からシーケンシャルな読み込みを行い、1回目の読み込みではデータ821、2回目の読み込みではデータ822を読み込む。プロセス713とプロセス714についても同様である。ファイル81,ファイル82,ファイル83,ファイル84は、ホスト7におけるデフラグメント機能により、それぞれディスク装置8上の連続した領域に配置されている。
【0010】
この場合、ディスク装置8に対するアクセスとして、まず、データ811,データ821,データ831,データ841へのアクセスが並列に行われるが、これらはディスク装置8内では不連続な領域に配置されているので、シーケンシャルなアクセスにはならず、低速なランダムアクセスとなる。続いてのアクセスでは、データ812,データ822,データ832,データ842へのアクセスが並列に行われるが、これらもディスク装置8の記憶領域における不連続な領域に配置されているため、低速なランダムアクセスとなる。
【0011】
このように、通常のデフラグメント技術は、ファイル毎に連続した記憶領域に配置するので、複数のプロセスが並列に別のファイルへアクセスした場合、ディスク装置に対して低速なランダムアクセスとなり、ファイルへの入出力も低速になってしまっていた。
【0012】
また、他の関連技術として、頻繁にアクセスが行われるデータを高速なディスク装置やメインメモリ上に配置することによって、データアクセスを高速化する技術が知られているが、HPC分野のように、大量のデータの入出力を行う場合には適用できなかった。
【0013】
そこで、本発明は、上記関連技術の有する課題を改善し、並行処理によって複数のプロセスを同時に実行した場合でもファイルアクセスを高速にするように、ディスク装置に記憶されたファイルデータの再配置を行い、アプリケーションの実効時間を短縮し得るファイルシステム,データ再配置方法及びデータ再配置用プログラムを提供することを,その目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するため、本発明のファイルシステムは、アプリケーションからの要求に対応してディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段を備えたファイルシステムであり、前記アプリケーションからの要求に応じて前記ファイル管理手段が読み込みを行うデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部と、この記憶されたアクセスパターンテーブルに基づいて、前記ディスク装置に記憶されているデータを、前記アプリケーションによって読み取られる順番に連続して並ぶように当該ディスク装置の記憶領域上に再配置するデータ再配置手段とを備えたことを特徴とする。
【0015】
また、本発明のデータ再配置方法は、アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段と、前記アプリケーションの要求に応じて前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部とを備えたファイルシステムにあって、前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出し、このアクセスパターンテーブルに基づいて前記データ再配置手段が、前記アプリケーションによって読み取られるデータとその読み取られる順番を特定し、この特定された順番で連続するように前記ディスク装置に記憶されているデータを前記データ再配置手段が再配置することを特徴とする。
【0016】
また、本発明のデータ再配置用プログラムは、アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理機能、前記アプリケーションからの要求に応じて前記ファイル管理機能に読み込まれるデータの一覧を示すアクセスパターンテーブルに基づいて前記アプリケーションによって読み取られるデータとその読み取られる順番を特定する読込み順特定機能及び、この特定された順番で連続するように前記ディスク装置に記憶されているデータを再配置するデータ再配置機能、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0017】
本発明は、以上のように構成したので、これにより、ディスク装置の記憶領域に記憶されたファイルデータを、アプリケーションによって読み込みが行われる順番に連続して並ぶように再配置するので、並列処理により複数のファイルに同時にアクセスを行う場合であっても、その一連のファイルアクセスがディスク装置でシーケンシャルなアクセスになるため、ディスク装置のデータ読出動作を物理的に速くすることができ、よって、アプリケーションの処理速度を有効に高速化することができる。
【図面の簡単な説明】
【0018】
【図1】本発明にかかる一実施形態のファイルシステムの構成を示す機能ブロック図である。
【図2】図1に開示した実施形態におけるアクセスパターンテーブルの一例を示す図である。
【図3】図1に開示した実施形態におけるディスク装置2に格納されたデータの配置状態を示す図である。
【図4】図1に開示した実施形態におけるアクセスパターンテーブルの他の例を示す図である。
【図5】図1に開示した実施形態のファイルシステムの動作を示すフローチャートである。
【図6】図1に開示した実施形態のファイルシステムの動作を示すフローチャートである。
【図7】並列処理によってアプリケーションで複数のプロセスを同時に実行した際のファイルアクセスについて表す説明図である。
【発明を実施するための形態】
【0019】
以下、本発明にかかる一実施形態を、図面に基づいて説明する。
【0020】
図1は、本実施形態のファイルシステム12の構成を示す機能ブロック図である。図1に示すように、本実施形態では、ホスト1とディスク装置2とが接続しており、ホスト1は、アプリケーション11の実行に対応してディスク装置2に記憶されるファイルの管理を行うファイルシステム12を備えている。ディスク装置2は、アプリケーション11の実行に用いるファイルを記憶する。アプリケーション11は、複数のプロセスからなり、プロセスとは、アプリケーション11の処理の一単位である。
【0021】
本実施形態のファイルシステム12は、アプリケーション11からの要求に対応してディスク装置2に対しファイルの読み書き及び削除を実行するファイル管理手段121と、ディスク装置2と接続しデータの入出力を行うデータ入出力部125とを備えている。
【0022】
更に、ファイルシステム12は、アプリケーション11からの要求に応じてファイル管理手段121が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部123と、この記憶されたアクセスパターンテーブルに基づいてディスク装置2に記憶されているデータをアプリケーション11によって読み出される順番に連続して並ぶようにディスク装置2の記憶領域上に再配置するデータ再配置手段124とを備えている。
【0023】
また、ファイルシステム12は、アプリケーション11の実行中にファイル管理手段121が読み込んだデータに関する情報を順にアクセスパターンテーブルに記録するアクセスパターン記録手段122を備えている。
【0024】
ファイル管理手段121は、予め設定された方式に従って、ディスク装置2の記憶領域に対しデータの記録、移動、削除をデータ入出力部125を介して行う手段である。本実施形態のファイル管理手段121は、アプリケーション11からの要求を入力し、その要求に従って、ディスク装置2に対しファイルデータの記録,読み出し,更新,削除を行う機能を有している。
【0025】
ここで、本実施形態のファイル管理手段121は、ディスク装置2の記憶領域を複数のブロックに分割し、その各ブロックに記録されているデータ内容を管理しており、このブロックサイズが4096バイトに設定されている。このため、本実施形態のディスク装置2には、4096バイト単位でデータが記録される。
【0026】
アクセスパターン記録手段122は、アプリケーション11の実行時に、アプリケーション11によるファイル読み込みのパターンをアクセスパターンテーブルに記録する手段である。このアクセスパターン記録手段122は、アプリケーション11からのデータアクセス要求をファイル管理手段121から取得しその要求をアクセスパターンテーブルに記録する。これにより、アプリケーション11の実際のファイル読み込みパターンを記録することができる。
【0027】
アクセスパターン記憶部123は、アプリケーション11の各プロセスで読込まれるデータの内容を読込まれた順に示すアクセスパターンテーブルを記憶している。アクセスパターンテーブルは、アプリケーション11からファイル管理手段への要求内容を示している。図2は、本実施形態におけるアクセスパターンテーブルの一例を示す図である。
【0028】
図2に示すアクセスパターンテーブルは、アプリケーショ11におけるプロセス毎に読込ファイル名,読込開始位置(オフセット),読込サイズが読み込みを行う順に記録されている。図2のアクセスパターンテーブルには、プロセスAで最初にファイルaのオフセット0から4096バイト分のデータを読み込み(エントリー1)、2回目にファイルaのオフセット4096バイトから10240バイト分のデータを読み込み(エントリー2)、3回目にファイルaのオフセット14336バイトから6144バイト分のデータを読み込む(エントリー3)ことが記録されており、プロセスBで最初にファイルbのオフセット0から4096バイト分のデータを読み込み(エントリー1)、2回目にファイルbのオフセット4096バイトから4096バイト分のデータを読み込み(エントリー2)、3回目にファイルbのオフセット8192バイトから8192バイト分のデータを読み込む(エントリー3)ことが記録されている。
【0029】
また、図4は、本実施形態におけるアクセスパターンテーブルの別の例を示す図である。図4に示すアクセスパターンテーブルは、ファイル名,オフセット,サイズと共に、読み込みを開始した時刻が記録されている。
【0030】
ここで、図1においては、アクセスパターン記憶部123は、ホスト1に搭載されたメモリで構成されているが、これに限らず、ディスク装置2の記憶領域の一部で構成されていてもよい。このように構成すると、ホスト1とは別のホストが、ディスク装置2と接続してアプリケーション11を実行するような構成の場合に、別のホストは、予めホスト1が作成したアクセスパターンテーブルをディスク装置2から読み込んで、ファイルの再配置を行うことができ、別のホストはアプリケーション11の最初の実行から高速なファイルの読み込みを行わせることが可能になる。
【0031】
データ再配置手段124は、アクセスパターン記憶部123に記憶されたアクセスパターンテーブルに基づいてディスク装置2に記憶されているデータの記録位置を、アプリケーション11が読み込みを行う順番で連続するように再配置する手段である。
【0032】
このデータ再配置手段124は、アクセスパターン記憶部123に記憶されたアクセスパターンテーブルに基づいて、アプリケーション11の読み取りデータとその読み取る順番を特定し、その特定した順番に連続して並ぶようにディスク装置2に記憶されているデータの配置を変える機能を備えている。ここで、ディスク装置2に記憶されたデータの配置を変える手順については通常のデフラグメント技術と同様なので省略する。本実施形態のデータ再配置手段124は、アクセスパターンテーブルに基づいて、ディスク装置2に記憶されているデータの配置を、アプリケーション11の実行時に読み込みを行う順番に連続して並ぶように変えることが特徴である。
【0033】
例えば、ホスト1が並列処理を実行する機能を備え、アプリケーション11における複数のプロセスが同時に実行される場合で、アクセスパターン記憶部123が、図2に示すようなアクセスパターンテーブルを記憶しているとすると、データ再配置手段124は、このアクセスパターンテーブルに基づいて、プロセスA及びBのデータ読込毎に読込サイズの累計を算出する機能と、この算出された各累計に基づいてプロセスA及びBにおける各データ読込の順番を特定する機能とを有する構成であればよい。
【0034】
この場合のデータ再配置手段124の機能について具体的に説明する。データ再配置手段124は、アプリケーション11の停止時に、図2に示すようなアクセスパターンテーブルを参照し、まず、プロセスAについて、エントリー1のファイルa,オフセット=0,サイズ=4096バイトという情報から、ディスク装置2における連続した領域の先頭にファイルaのオフセット0から始まる4096バイトのデータを配置する。そして、プロセスAについて合計4096バイトの配置を行ったことを予め備えたメモリに記憶する。その後に、プロセスA以外の全てのプロセスについて、合計4096バイトまでの再配置を行う。
【0035】
この場合、プロセスBについて、エントリー1のファイルb,オフセット=0,サイズ=4096という情報から、ディスク装置2における前述した連続領域の2番目にファイルbのオフセット0から始まる4096バイトのデータを配置し、プロセスBについて合計4096バイトの配置を行ったことをメモリに記憶する。この結果、プロセスA以外の全てのプロセスについて、合計4096バイトまでの再配置が完了する。
【0036】
そして、アクセスパターンテーブルの、プロセスAについてエントリー2のファイルa,オフセット=4096,サイズ=10240という情報について、ディスク装置2の記憶領域におけるブロックサイズは4096バイトに設定されているので、終端が4096バイト単位になるようにサイズを10240から12288バイトに切り上げる。この結果、ディスク装置2における連続した領域の3番目に、ファイルaのオフセット4096から始まる12288バイトのデータを配置し、プロセスAについて合計16384バイトの配置を行ったことをメモリに記憶する。その後に、プロセスA以外の全てのプロセスについて、合計16384バイトまでの再配置を行う。
【0037】
この場合、プロセスBについてエントリー2のファイルb,オフセット=4096,サイズ=4096という情報から、ディスク装置2の連続する領域の4番目に、ファイルbのオフセット4096から4096バイトのデータを配置し、プロセスBについて合計8192バイトの配置を行ったことをメモリに記憶する。プロセスBについて再配置を行った8192バイトは、プロセスAについて再配置を行った16384バイトより小さいため、プロセスBについてエントリー3のファイルb,オフセット=8192,サイズ=8192という情報から、ディスク装置2の連続する領域の5番目に、ファイルbのオフセット8192から8192バイトのデータを配置し、プロセスBについて合計16384バイトの再配置を行ったことをメモリに記憶する。この結果、プロセスA以外の全てのプロセスについて、合計16384バイトまでの再配置が完了する。
【0038】
そして、アクセスパターンテーブルのプロセスAについてエントリー3のファイルa,オフセット=14336,サイズ=6144という情報を参照し、上述したようにブロックサイズは4096バイトであるため、開始位置が4096バイト単位になるように、オフセットを12288に切り下げる。その結果、プロセスAのエントリー3を、ファイルa,オフセット=12288,サイズ=8192に変更する。オフセット12288から4096バイトについては既に配置済みのため、オフセットを16384に変更する。その結果、プロセスAのエントリー3を、ファイルa,オフセット=16384,サイズ=4096に変更する。この情報から、ディスク装置2の連続する領域の6番目に、ファイルaのオフセット16384から4096バイトのデータを配置する。そして、プロセスAについて合計20480バイトの配置を行ったことをメモリに記憶する。
【0039】
その後に、プロセスA以外の全てのプロセスについて、合計20480バイトまでの再配置を行おうとするが、プロセスBについての再配置は完了しているので何もしない。プロセスA以外の全てのプロセスについて、合計20480バイトまでの再配置が完了する。そして、まだ再配置が完了していないプロセスがいないかを、アクセスパターンテーブルと各プロセスについて合計何バイトの再配置が完了しているかの情報とを基に検索し、全てのプロセスについて再配置が完了していると判定した場合に、データ再配置の処理を終了する。このようにして再配置された場合のディスク装置2におけるデータの配置を図3に示す。
【0040】
また別の例として、アクセスパターン記憶部123が、図4に示すようなアクセスパターンテーブルを記憶している場合、データ再配置手段124は、読み込み開始時刻の順に連続するように、ディスク装置2に記憶されているデータの再配置を行うような構成であればよい。具体的に、データ再配置手段124は、図4に示すようなアクセスパターンテーブルを参照し、開始時刻が5.00秒のプロセスaのエントリー1,開始時刻が5.10秒のプロセスbのエントリー1,開始時刻が6.00秒のプロセスaのエントリー2,開始時刻が6.10秒のプロセスbのエントリー2,開始時刻が7.50秒のプロセスbのエントリー3,開始時刻が8.50秒のプロセスaのエントリー3の順でそれぞれのデータが連続するようにディスク装置2に記憶されているデータの再配置を行う。
【0041】
これにより、アプリケーション11の実行時において複数のプロセスが同時にファイルアクセスを行う場合でも、その一連のデータアクセスがディスク装置2でシーケンシャルなアクセスとなるので、ディスク装置2のデータ読み出し動作が物理的に高速となり、結果的に、アプリケーション11の処理速度を高速化することができる。
【0042】
次に、本実施形態のファイルシステム12の動作について説明する。ここで、以下の動作説明は、本発明のデータ再配置方法の実施形態となる。
【0043】
図5は、本実施形態のファイルシステム12におけるアクセスパターン記録動作を示すフローチャートである。図5に示すように、ファイルシステム12におけるアクセスパターン記録動作は、まず、ホスト1でアプリケーション11の実行が開始されると、アプリケーション11におけるプロセスからファイル管理手段121へデータ読み込みの要求が送出され、ファイル管理手段121がアプリケーション11からデータの読み込み要求を受けると(図5のステップs51)、アクセスパターン記録手段122に対して、データの読み込みを行った旨の通知を送出する。この通知を受けたアクセスパターン記録手段12が、データ読み込みに関する情報をアクセスパターン記憶部123に記憶されたアクセスパターンテーブルに記録する(図5のステップs52)。このような動作が、アプリケーション11の実行中に繰り返される。
【0044】
ここで、このアクセスパターン記録動作について、図2に示すアクセスパターンテーブルが完成するまでを例にして具体的に説明する。
【0045】
ホスト1は並列処理を行うため、アプリケーション11の実行が開始されると、プロセスAとプロセスBが同時に処理される。プロセスAとプロセスBは、ファイル管理手段121に対してファイルの読み込みを要求する。まず、プロセスAはファイルaのオフセット0から4096バイトの読み込みを要求し、プロセスBはファイルbのオフセット0から4096バイトの読み込みを要求する。ファイル管理手段121が、アクセスパターン記録手段122に対して、プロセスAがファイルaのオフセット0から4096バイトの読み込みを行ったこと及び、プロセスBがファイルbのオフセット0から4096バイトの読み込みを行ったことを記録するように指示する。アクセスパターン記録手段122が、アクセスパターンテーブルとしてプロセスAとプロセスBのアクセスを記録するテーブルを作成し、プロセスAのアクセスを記録するテーブルに対してファイル名=ファイルa,オフセット=0,サイズ=4096という情報を記録し、プロセスBのアクセスを記録するテーブルに対してファイル名=ファイルb,オフセット=0,サイズ=4096という情報を記録する。
【0046】
続いて、プロセスAはファイルaのオフセット4096から10240バイト、プロセスBはファイルbのオフセット4096から4096バイトの読み込みを要求する。ファイル管理手段121が、アクセスパターン記録手段122に対して、プロセスAがファイルaのオフセット4096から10240バイトの読み込みを行ったことと、プロセスBがファイルbのオフセット4096から4096バイトの読み込みを行ったことを記録するように指示する。アクセスパターン記録手段122が、アクセスパターンテーブルにおけるプロセスAのテーブルに対してファイル名=ファイルa,オフセット=4096,サイズ=10240という情報を記録し、プロセスBのテーブルに対してファイル名=ファイルb,オフセット=4096,サイズ=4096という情報を記録する。
【0047】
続いて、プロセスAはファイルaのオフセット14336から6144バイト、プロセスBはファイルbのオフセット8192から8192バイトの読み込みを要求する。同様にして、アクセスパターン記録手段122が、アクセスパターンテーブルにおけるプロセスAのテーブルに対してファイル名=ファイルa,オフセット=14336,サイズ=6144という情報を記録し、プロセスBのテーブルに対してファイル名=ファイルb,オフセット=8192,サイズ=8192という情報を記録する。このようにして、図2に示すようなアクセスパターンテーブルが完成する。
【0048】
次に、図6は、本実施形態のファイルシステム12におけるデータ再配置手段124の動作を示すフローチャートである。図6に示すように、ファイルシステム12におけるデータ再配置手段124は、まず、アプリケーション11の終了時にアプリケーション11から送られてくるデータ再配置の指示を受けると(図6のステップs61)、アクセスパターン記憶部123からアクセスパターンテーブルを読み込む(図6のステップs62)。
【0049】
続いて、このアクセスパターンテーブルに基づいてアプリケーション11のデータ読み込みの順番を特定し(図6のステップs63)、この特定した順番で連続するようにディスク装置2に記憶されているデータを再配置する(図6のステップs64)。
【0050】
例えば、アプリケーション11における複数のプロセスが同時に実行される場合で、アクセスパターン記憶部123が、図2に示すようなアクセスパターンテーブルを記憶しているとすると、データ再配置手段124は、このアクセスパターンテーブルに基づいて、プロセスA及びBのデータ読込毎に読込サイズの累計を算出し、この算出された各累計に基づいてプロセスA及びBにおける各データ読込の順番を特定し、この特定した順番で連続するようにディスク装置2に記憶されているデータを再配置する。
【0051】
また、アクセスパターン記憶部123が、図4に示すようなアクセスパターンテーブルを記憶している場合、データ再配置手段124は、読み込み開始時刻の順に連続するように、ディスク装置2に記憶されているデータの再配置を行う。
【0052】
ここでは、アプリケーション11からファイル再配置手段124に対してファイルの再配置の開始が指示されているが、ファイル再配置手段124が、アプリケーション11の終了を監視し、アプリケーション11の終了時にファイルの再配置の開始を開始するようにしてもよい。
【0053】
このように本実施形態のファイルシステム12では、アプリケーション11のデータ読込みの履歴であるアクセスパターンテーブルに基づいて、アプリケーション11のデータ読み込みの順番を特定し、ディスク装置2の記憶領域に格納されたデータを、アプリケーション11に読み込まれる順番に連続するように再配置するので、アプリケーション11の実行時において複数のプロセスが同時にファイルアクセスを行う場合でも、その一連のデータアクセスがシーケンシャルなアクセスとなり、ディスク装置2のデータ読み出し動作が物理的に高速となり、結果的に、アプリケーション11を高速化することができる。
【0054】
ここで、上述した説明の構成では、アプリケーション11の最初の実行時にアクセスパターン記録手段122によってアクセスパターンテーブルが作成されるので、アプリケーション11の最初の実行時は高速なファイルの読み込みを行うことができないが、アプリケーション11の入出力パターンが既知であれば、予め作成されたアクセスパターンテーブルをアクセスパターン記憶部123に記憶させておくようにしてもよい。このようにすれば、データ再配置手段124がアプリケーション11の実行前にアクセスパターンテーブルに基づいてデータの再配置を行うことが可能となり、アプリケーション11の最初の実行時から高速なデータアクセスを実施することができる。
【0055】
また、アプリケーション11を構成する全てのプロセスが、ホスト1で実行されるような構成であるが、これに限らず、プロセスを複数のホストで分散して実行するようにして、ファイルシステム12がNFS(Network File System)のような共有ファイルシステムで共有されているようにしてもよい。この場合、アクセスパターン記録手段122とアクセスパターンテーブルはNFSクライアントが有し、ファイル再配置手段124はNFSサーバが有する。
【0056】
また、本実施形態におけるファイル管理手段121,アクセスパターン記録手段122,データ再配置手段124については、その機能内容をプログラム化してコンピュータに実行させるように構成してもよい。
【0057】
以上のように、本実施形態のファイルシステム12によれば、アプリケーション11の実行時におけるファイルアクセスパターンを記録したアクセスパターンテーブルに基づいて、ディスク装置2の記憶領域内のデータを、実際にアクセスが行われる順序で連続するように再配置するため、アプリケーション11の再実行の際にディスク装置2に対してシーケンシャルなアクセスが行われるようになり、高速なファイルアクセスが可能となる。
【0058】
HPC分野においては、入力データファイルは同じものを使用し、パラメータのみ変更してアプリケーションを何度も再実行するようなことが行われており、また、入力データファイルを変更して実行する場合でも、アクセスパターンは変化しないことが多い。よって、本実施形態のファイルシステム12のように、アプリケーション11の1回目の実行時に、入力データファイルのアクセスパターンを記録し、記録したアクセスパターンに合わせてデータの再配置を行うことにより、2回目以降の実行時に、高速なデータアクセスを実現することが可能になる。
【0059】
通常のデフラグメント技術は、記憶装置内の情報をファイル毎に連続した領域に配置しており、複数のプロセスが同時にファイルアクセスを行う場合を想定していないので、複数のプロセスが同時にファイルアクセスを行うと、記憶装置が低速なランダムアクセスを行うことになり、ファイルの入出力が低速になってしまっていた。これに対して、本実施形態のファイルシステム12は、ディスク装置2に格納されたデータを、アプリケーション11が読み込む順番に連続するように再配置するので、図3に示すように、各ファイルは断片化されている状態となるが、アプリケーション11の実行時に複数のプロセスから行われる一連のファイルアクセスは、ディスク装置2でシーケンシャルなアクセスとなり、データ入出力が高速になる。これにより、アプリケーションの実行速度を有効に高速化することができる。
【産業上の利用可能性】
【0060】
本発明は、並行処理を実行するコンピュータシステムに適用することが可能である。
【符号の説明】
【0061】
1 ホスト
2 ディスク装置
11 アプリケーション
12 ファイルシステム
121 ファイル管理手段
122 アクセスパターン記録手段
123 アクセスパターン記憶部
124 データ再配置手段
125 データ入出力部

【特許請求の範囲】
【請求項1】
アプリケーションからの要求に対応してディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段を備えたファイルシステムにおいて、
前記アプリケーションからの要求に応じて前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部と、
この記憶されたアクセスパターンテーブルに基づいて、前記ディスク装置に記憶されているデータを、前記アプリケーションによって読み取られる順番に連続して並ぶように再配置するデータ再配置手段とを備えたことを特徴とするファイルシステム。
【請求項2】
前記請求項1に記載のファイルシステムにおいて、
前記アプリケーションの実行中に、前記ファイル管理手段が読み込んだデータに関する情報を順に前記アクセスパターンテーブルに記録するアクセスパターン記録手段を備えたことを特徴とするファイルシステム。
【請求項3】
前記請求項2に記載のファイルシステムにおいて、
前記アクセスパターンテーブルが、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズを読み込みを行う順に示すテーブルであり、
前記データ再配置手段は、前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出する機能と、この算出された各累計に基づいて前記全プロセスにおける各データ読込の順番を特定する機能と、この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置する機能とを有したことを特徴とするファイルシステム。
【請求項4】
前記請求項2に記載のファイルシステムにおいて、
前記アクセスパターンテーブルが、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズ,読込開始時刻を、読み込みを行う順に示すテーブルであり、
前記データ再配置手段は、前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って、前記各データ読込の順番を特定する機能と、この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置する機能とを有したことを特徴とするファイルシステム。
【請求項5】
アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段と、前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部とを備えたファイルシステムにあって、
前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出し、
このアクセスパターンテーブルに基づいて、前記アプリケーションによって読み取られるデータとその読み取られる順番を前記データ再配置手段が特定し、
この特定された順番で連続するように前記ディスク装置に記憶されているデータを前記データ再配置手段が再配置することを特徴とするデータ再配置方法。
【請求項6】
前記請求項5に記載のデータ再配置方法において、
前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出す前に、
前記アプリケーションの実行中に、前記ファイル管理手段が読み込んだデータに関する情報を順にアクセスパターン記録手段が前記アクセスパターンテーブルに記録することを特徴とするデータ再配置方法。
【請求項7】
前記請求項6に記載のデータ再配置方法において、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズを、読み込みを行う順に示すテーブルとし、
前記アプリケーション実行時に読み出されるデータの読出される順番を特定するに際しては、
前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出し、この算出した各累計に基づいて前記全プロセスにおける各データ読込の順番を特定することを特徴とするデータ再配置方法。
【請求項8】
前記請求項7に記載のデータ再配置方法において、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズ,読込開始時刻を、読み込みを行う順に示すテーブルとし、
前記アプリケーション実行時のデータを読み込む順番を特定するに際しては、
前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って前記各データ読込の順番を特定することを特徴とするデータ再配置方法。
【請求項9】
アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理機能、
前記ファイル管理機能に読み取られるデータの一覧を示すアクセスパターンテーブルに基づいて、前記アプリケーションによって読み取られるデータとその読み取られる順番を特定する読込み順特定機能及び、
この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置するデータ再配置機能、をコンピュータに実行させることを特徴とするデータ再配置用プログラム。
【請求項10】
前記請求項9に記載のデータ再配置用プログラムにおいて、
前記アプリケーションの実行中に、前記ファイル管理機能に読み込んまれたデータに関する情報を順に前記アクセスパターンテーブルに記録するアクセスパターン記録機能を、前記コンピュータに実行させることを特徴とするデータ再配置用プログラム。
【請求項11】
前記請求項10に記載のデータ再配置用プログラムにおいて、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズを、読み込みを行う順に示すテーブルとし、
前記読込み順特定機能は、前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出し、この算出した各累計に基づいて前記全プロセスにおける各データ読込の順番を特定する機能であることを特徴とするデータ再配置用プログラム。
【請求項12】
前記請求項11に記載のデータ再配置用プログラムにおいて、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名,読込開始位置,読込サイズ,読込開始時刻を、読み込みを行う順に示すテーブルとし、
前記読込み順特定機能は、前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って、前記各データ読込の順番を特定する機能であることを特徴とするデータ再配置用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate