(57)【要約】【課題】複数のプロセスを並行に実行してもファイルアクセスが高速になるように、ディスク装置に記憶されたデータを再配置し得るファイルシステム，データ再配置方法及びデータ再配置用プログラムを提供する。【解決手段】データ再配置手段１２４が、アプリケーション１１からの要求に応じてファイル管理手段１２１に読み込まれるデータの一覧を示すアクセスパターンテーブルに基づいて、ディスク装置２の記憶領域に格納されたデータをアプリケーションに読み込まれる順番で連続するように再配置する。【選択図】図１
2010237837.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションからの要求に対応してディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段を備えたファイルシステムにおいて、
前記アプリケーションからの要求に応じて前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部と、
この記憶されたアクセスパターンテーブルに基づいて、前記ディスク装置に記憶されているデータを、前記アプリケーションによって読み取られる順番に連続して並ぶように再配置するデータ再配置手段とを備えたことを特徴とするファイルシステム。
【請求項２】
前記請求項１に記載のファイルシステムにおいて、
前記アプリケーションの実行中に、前記ファイル管理手段が読み込んだデータに関する情報を順に前記アクセスパターンテーブルに記録するアクセスパターン記録手段を備えたことを特徴とするファイルシステム。
【請求項３】
前記請求項２に記載のファイルシステムにおいて、
前記アクセスパターンテーブルが、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズを読み込みを行う順に示すテーブルであり、
前記データ再配置手段は、前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出する機能と、この算出された各累計に基づいて前記全プロセスにおける各データ読込の順番を特定する機能と、この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置する機能とを有したことを特徴とするファイルシステム。
【請求項４】
前記請求項２に記載のファイルシステムにおいて、
前記アクセスパターンテーブルが、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズ，読込開始時刻を、読み込みを行う順に示すテーブルであり、
前記データ再配置手段は、前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って、前記各データ読込の順番を特定する機能と、この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置する機能とを有したことを特徴とするファイルシステム。
【請求項５】
アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段と、前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部とを備えたファイルシステムにあって、
前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出し、
このアクセスパターンテーブルに基づいて、前記アプリケーションによって読み取られるデータとその読み取られる順番を前記データ再配置手段が特定し、
この特定された順番で連続するように前記ディスク装置に記憶されているデータを前記データ再配置手段が再配置することを特徴とするデータ再配置方法。
【請求項６】
前記請求項５に記載のデータ再配置方法において、
前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出す前に、
前記アプリケーションの実行中に、前記ファイル管理手段が読み込んだデータに関する情報を順にアクセスパターン記録手段が前記アクセスパターンテーブルに記録することを特徴とするデータ再配置方法。
【請求項７】
前記請求項６に記載のデータ再配置方法において、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズを、読み込みを行う順に示すテーブルとし、
前記アプリケーション実行時に読み出されるデータの読出される順番を特定するに際しては、
前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出し、この算出した各累計に基づいて前記全プロセスにおける各データ読込の順番を特定することを特徴とするデータ再配置方法。
【請求項８】
前記請求項７に記載のデータ再配置方法において、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズ，読込開始時刻を、読み込みを行う順に示すテーブルとし、
前記アプリケーション実行時のデータを読み込む順番を特定するに際しては、
前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って前記各データ読込の順番を特定することを特徴とするデータ再配置方法。
【請求項９】
アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理機能、
前記ファイル管理機能に読み取られるデータの一覧を示すアクセスパターンテーブルに基づいて、前記アプリケーションによって読み取られるデータとその読み取られる順番を特定する読込み順特定機能及び、
この特定された順番に連続して並ぶように前記ディスク装置に記憶されているデータを再配置するデータ再配置機能、をコンピュータに実行させることを特徴とするデータ再配置用プログラム。
【請求項１０】
前記請求項９に記載のデータ再配置用プログラムにおいて、
前記アプリケーションの実行中に、前記ファイル管理機能に読み込んまれたデータに関する情報を順に前記アクセスパターンテーブルに記録するアクセスパターン記録機能を、前記コンピュータに実行させることを特徴とするデータ再配置用プログラム。
【請求項１１】
前記請求項１０に記載のデータ再配置用プログラムにおいて、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズを、読み込みを行う順に示すテーブルとし、
前記読込み順特定機能は、前記アプリケーションにおける複数のプロセスが同時に実行された場合、前記アクセスパターンテーブルに基づいて、前記各プロセスのデータ読込毎に読込サイズの累計を算出し、この算出した各累計に基づいて前記全プロセスにおける各データ読込の順番を特定する機能であることを特徴とするデータ再配置用プログラム。
【請求項１２】
前記請求項１１に記載のデータ再配置用プログラムにおいて、
前記アクセスパターンテーブルを、前記アプリケーションにおける各プロセス毎に読込ファイル名，読込開始位置，読込サイズ，読込開始時刻を、読み込みを行う順に示すテーブルとし、
前記読込み順特定機能は、前記アクセスパターンテーブルに記録された前記各データ読込の開始時刻に従って、前記各データ読込の順番を特定する機能であることを特徴とするデータ再配置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク装置に記憶されたデータへのアクセスを管理するファイルシステム及びそのデータ再配置方法，データ再配置用プログラムに関する。
【背景技術】
【０００２】
コンピュータシステムにおけるファイルシステムがアプリケーションの要求に応じてディスク装置に対しファイルの書き換えや削除を繰り返すと、ディスク装置に格納されたファイルが断片化し、１つのファイルが複数のデータに分散されて記憶領域内の別々の位置に記憶される。このファイルの断片化が進んだ場合、１つファイルが連続した領域に記録されている場合と比べて、ファイルの読み取り時間が長くなってしまう。
【０００３】
このファイルの断片化を解消するために、通常のファイルシステムは、ディスク装置に記憶されているデータの再配置を行うデフラグメント機能を有している。通常のデフラグメント機能は、複数のデータに分散されてディスク装置に保存されているファイルを、連続した状態で記憶されるように再配置することにより、一つのファイルに対するアクセスがシーケンシャルなアクセスになるようにして、ファイルアクセスを高速化するものである。
【０００４】
これに関連する技術が特許文献１に開示されている。特許文献１に開示された技術は、論理ユニット上で発生するアクセスの傾向を表すアクセス統計情報に基づいて、アプリケーションからの各アクセス要求に係る各ファイルのアクセス性能の劣化度合いを「物理的分割数×単位時間当たりのアクセス回数」で算出し、アクセス性能の劣化度合いが大きいファイルを優先的に再配置していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２８４６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した関連技術では、ディスク装置に記憶されたデータをファイル毎に連続して格納されるように再配置することで、１つのファイルに対するアクセスがシーケンシャルなアクセスになりファイルアクセスの高速化を図っているが、これでは、並列処理により同時に複数のファイルへアクセスする場合、複数のファイルに交互にアクセスすることになってしまい、高速なファイルアクセスを行うことができなかった。
【０００７】
近年、複数のＣＰＵが搭載されたコンピュータシステムが一般に知られていると共に、複数のＣＰＵによる並列処理を実行することを前提としたアプリケーションも利用されている。特に、ＨＰＣ（High Performance Computing）分野においては、一つのアプリケーションを複数のＣＰＵに実行させることが行われており、入力データとして使用されるファイルはサイズの大きいものが多い。また、計算に必要な入力データはアプリケーションの実行直後に全てメモリ上に読み込まれ、読み込みが完了しないと計算が開始できないようなアプリケーションも存在する。
【０００８】
並列処理によって複数の異なるファイルに同時にアクセスする場合、通常のデフラグメントによるデータ配置では、シーケンシャルなアクセスを行うことができず、大量のデータの入出力が低速なランダムアクセスで行われることになるので、アプリケーションの実行速度を高速化できないという問題があった。
【０００９】
この問題について、図７に基づいて具体的に説明すると、図７に示すホスト７で実行されるアプリケーション７１は、並列に実行されるプロセス７１１と、プロセス７１２と、プロセス７１３と、プロセス７１４とで構成されている。プロセス７１１は、ディスク装置８に記憶されたファイル８１の読み込みを実行し、１回目の読み込みでデータ８１１、２回目の読み込みでデータ８１２を読み込む。プロセス７１２はディスク装置８に記憶されたファイル８２からシーケンシャルな読み込みを行い、１回目の読み込みではデータ８２１、２回目の読み込みではデータ８２２を読み込む。プロセス７１３とプロセス７１４についても同様である。ファイル８１，ファイル８２，ファイル８３，ファイル８４は、ホスト７におけるデフラグメント機能により、それぞれディスク装置８上の連続した領域に配置されている。
【００１０】
この場合、ディスク装置８に対するアクセスとして、まず、データ８１１，データ８２１，データ８３１，データ８４１へのアクセスが並列に行われるが、これらはディスク装置８内では不連続な領域に配置されているので、シーケンシャルなアクセスにはならず、低速なランダムアクセスとなる。続いてのアクセスでは、データ８１２，データ８２２，データ８３２，データ８４２へのアクセスが並列に行われるが、これらもディスク装置８の記憶領域における不連続な領域に配置されているため、低速なランダムアクセスとなる。
【００１１】
このように、通常のデフラグメント技術は、ファイル毎に連続した記憶領域に配置するので、複数のプロセスが並列に別のファイルへアクセスした場合、ディスク装置に対して低速なランダムアクセスとなり、ファイルへの入出力も低速になってしまっていた。
【００１２】
また、他の関連技術として、頻繁にアクセスが行われるデータを高速なディスク装置やメインメモリ上に配置することによって、データアクセスを高速化する技術が知られているが、ＨＰＣ分野のように、大量のデータの入出力を行う場合には適用できなかった。
【００１３】
そこで、本発明は、上記関連技術の有する課題を改善し、並行処理によって複数のプロセスを同時に実行した場合でもファイルアクセスを高速にするように、ディスク装置に記憶されたファイルデータの再配置を行い、アプリケーションの実効時間を短縮し得るファイルシステム，データ再配置方法及びデータ再配置用プログラムを提供することを，その目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明のファイルシステムは、アプリケーションからの要求に対応してディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段を備えたファイルシステムであり、前記アプリケーションからの要求に応じて前記ファイル管理手段が読み込みを行うデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部と、この記憶されたアクセスパターンテーブルに基づいて、前記ディスク装置に記憶されているデータを、前記アプリケーションによって読み取られる順番に連続して並ぶように当該ディスク装置の記憶領域上に再配置するデータ再配置手段とを備えたことを特徴とする。
【００１５】
また、本発明のデータ再配置方法は、アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理手段と、前記アプリケーションの要求に応じて前記ファイル管理手段が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部とを備えたファイルシステムにあって、前記アクセスパターンテーブルをアクセスパターン記憶部からデータ再配置手段が読み出し、このアクセスパターンテーブルに基づいて前記データ再配置手段が、前記アプリケーションによって読み取られるデータとその読み取られる順番を特定し、この特定された順番で連続するように前記ディスク装置に記憶されているデータを前記データ再配置手段が再配置することを特徴とする。
【００１６】
また、本発明のデータ再配置用プログラムは、アプリケーションからの要求に対応して前記ディスク装置に記憶されたファイルの読み書き及び削除を実行するファイル管理機能、前記アプリケーションからの要求に応じて前記ファイル管理機能に読み込まれるデータの一覧を示すアクセスパターンテーブルに基づいて前記アプリケーションによって読み取られるデータとその読み取られる順番を特定する読込み順特定機能及び、この特定された順番で連続するように前記ディスク装置に記憶されているデータを再配置するデータ再配置機能、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１７】
本発明は、以上のように構成したので、これにより、ディスク装置の記憶領域に記憶されたファイルデータを、アプリケーションによって読み込みが行われる順番に連続して並ぶように再配置するので、並列処理により複数のファイルに同時にアクセスを行う場合であっても、その一連のファイルアクセスがディスク装置でシーケンシャルなアクセスになるため、ディスク装置のデータ読出動作を物理的に速くすることができ、よって、アプリケーションの処理速度を有効に高速化することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明にかかる一実施形態のファイルシステムの構成を示す機能ブロック図である。
【図２】図１に開示した実施形態におけるアクセスパターンテーブルの一例を示す図である。
【図３】図１に開示した実施形態におけるディスク装置２に格納されたデータの配置状態を示す図である。
【図４】図１に開示した実施形態におけるアクセスパターンテーブルの他の例を示す図である。
【図５】図１に開示した実施形態のファイルシステムの動作を示すフローチャートである。
【図６】図１に開示した実施形態のファイルシステムの動作を示すフローチャートである。
【図７】並列処理によってアプリケーションで複数のプロセスを同時に実行した際のファイルアクセスについて表す説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明にかかる一実施形態を、図面に基づいて説明する。
【００２０】
図１は、本実施形態のファイルシステム１２の構成を示す機能ブロック図である。図１に示すように、本実施形態では、ホスト１とディスク装置２とが接続しており、ホスト１は、アプリケーション１１の実行に対応してディスク装置２に記憶されるファイルの管理を行うファイルシステム１２を備えている。ディスク装置２は、アプリケーション１１の実行に用いるファイルを記憶する。アプリケーション１１は、複数のプロセスからなり、プロセスとは、アプリケーション１１の処理の一単位である。
【００２１】
本実施形態のファイルシステム１２は、アプリケーション１１からの要求に対応してディスク装置２に対しファイルの読み書き及び削除を実行するファイル管理手段１２１と、ディスク装置２と接続しデータの入出力を行うデータ入出力部１２５とを備えている。
【００２２】
更に、ファイルシステム１２は、アプリケーション１１からの要求に応じてファイル管理手段１２１が読み込むデータの一覧を示すアクセスパターンテーブルを記憶するアクセスパターン記憶部１２３と、この記憶されたアクセスパターンテーブルに基づいてディスク装置２に記憶されているデータをアプリケーション１１によって読み出される順番に連続して並ぶようにディスク装置２の記憶領域上に再配置するデータ再配置手段１２４とを備えている。
【００２３】
また、ファイルシステム１２は、アプリケーション１１の実行中にファイル管理手段１２１が読み込んだデータに関する情報を順にアクセスパターンテーブルに記録するアクセスパターン記録手段１２２を備えている。
【００２４】
ファイル管理手段１２１は、予め設定された方式に従って、ディスク装置２の記憶領域に対しデータの記録、移動、削除をデータ入出力部１２５を介して行う手段である。本実施形態のファイル管理手段１２１は、アプリケーション１１からの要求を入力し、その要求に従って、ディスク装置２に対しファイルデータの記録，読み出し，更新，削除を行う機能を有している。
【００２５】
ここで、本実施形態のファイル管理手段１２１は、ディスク装置２の記憶領域を複数のブロックに分割し、その各ブロックに記録されているデータ内容を管理しており、このブロックサイズが４０９６バイトに設定されている。このため、本実施形態のディスク装置２には、４０９６バイト単位でデータが記録される。
【００２６】
アクセスパターン記録手段１２２は、アプリケーション１１の実行時に、アプリケーション１１によるファイル読み込みのパターンをアクセスパターンテーブルに記録する手段である。このアクセスパターン記録手段１２２は、アプリケーション１１からのデータアクセス要求をファイル管理手段１２１から取得しその要求をアクセスパターンテーブルに記録する。これにより、アプリケーション１１の実際のファイル読み込みパターンを記録することができる。
【００２７】
アクセスパターン記憶部１２３は、アプリケーション１１の各プロセスで読込まれるデータの内容を読込まれた順に示すアクセスパターンテーブルを記憶している。アクセスパターンテーブルは、アプリケーション１１からファイル管理手段への要求内容を示している。図２は、本実施形態におけるアクセスパターンテーブルの一例を示す図である。
【００２８】
図２に示すアクセスパターンテーブルは、アプリケーショ１１におけるプロセス毎に読込ファイル名，読込開始位置（オフセット），読込サイズが読み込みを行う順に記録されている。図２のアクセスパターンテーブルには、プロセスＡで最初にファイルａのオフセット０から４０９６バイト分のデータを読み込み（エントリー１）、２回目にファイルａのオフセット４０９６バイトから１０２４０バイト分のデータを読み込み（エントリー２）、３回目にファイルａのオフセット１４３３６バイトから６１４４バイト分のデータを読み込む（エントリー３）ことが記録されており、プロセスＢで最初にファイルｂのオフセット０から４０９６バイト分のデータを読み込み（エントリー１）、２回目にファイルｂのオフセット４０９６バイトから４０９６バイト分のデータを読み込み（エントリー２）、３回目にファイルｂのオフセット８１９２バイトから８１９２バイト分のデータを読み込む（エントリー３）ことが記録されている。
【００２９】
また、図４は、本実施形態におけるアクセスパターンテーブルの別の例を示す図である。図４に示すアクセスパターンテーブルは、ファイル名，オフセット，サイズと共に、読み込みを開始した時刻が記録されている。
【００３０】
ここで、図１においては、アクセスパターン記憶部１２３は、ホスト１に搭載されたメモリで構成されているが、これに限らず、ディスク装置２の記憶領域の一部で構成されていてもよい。このように構成すると、ホスト１とは別のホストが、ディスク装置２と接続してアプリケーション１１を実行するような構成の場合に、別のホストは、予めホスト１が作成したアクセスパターンテーブルをディスク装置２から読み込んで、ファイルの再配置を行うことができ、別のホストはアプリケーション１１の最初の実行から高速なファイルの読み込みを行わせることが可能になる。
【００３１】
データ再配置手段１２４は、アクセスパターン記憶部１２３に記憶されたアクセスパターンテーブルに基づいてディスク装置２に記憶されているデータの記録位置を、アプリケーション１１が読み込みを行う順番で連続するように再配置する手段である。
【００３２】
このデータ再配置手段１２４は、アクセスパターン記憶部１２３に記憶されたアクセスパターンテーブルに基づいて、アプリケーション１１の読み取りデータとその読み取る順番を特定し、その特定した順番に連続して並ぶようにディスク装置２に記憶されているデータの配置を変える機能を備えている。ここで、ディスク装置２に記憶されたデータの配置を変える手順については通常のデフラグメント技術と同様なので省略する。本実施形態のデータ再配置手段１２４は、アクセスパターンテーブルに基づいて、ディスク装置２に記憶されているデータの配置を、アプリケーション１１の実行時に読み込みを行う順番に連続して並ぶように変えることが特徴である。
【００３３】
例えば、ホスト１が並列処理を実行する機能を備え、アプリケーション１１における複数のプロセスが同時に実行される場合で、アクセスパターン記憶部１２３が、図２に示すようなアクセスパターンテーブルを記憶しているとすると、データ再配置手段１２４は、このアクセスパターンテーブルに基づいて、プロセスＡ及びＢのデータ読込毎に読込サイズの累計を算出する機能と、この算出された各累計に基づいてプロセスＡ及びＢにおける各データ読込の順番を特定する機能とを有する構成であればよい。
【００３４】
この場合のデータ再配置手段１２４の機能について具体的に説明する。データ再配置手段１２４は、アプリケーション１１の停止時に、図２に示すようなアクセスパターンテーブルを参照し、まず、プロセスＡについて、エントリー１のファイルａ，オフセット＝０，サイズ＝４０９６バイトという情報から、ディスク装置２における連続した領域の先頭にファイルａのオフセット０から始まる４０９６バイトのデータを配置する。そして、プロセスＡについて合計４０９６バイトの配置を行ったことを予め備えたメモリに記憶する。その後に、プロセスＡ以外の全てのプロセスについて、合計４０９６バイトまでの再配置を行う。
【００３５】
この場合、プロセスＢについて、エントリー１のファイルｂ，オフセット＝０，サイズ＝４０９６という情報から、ディスク装置２における前述した連続領域の２番目にファイルｂのオフセット０から始まる４０９６バイトのデータを配置し、プロセスＢについて合計４０９６バイトの配置を行ったことをメモリに記憶する。この結果、プロセスＡ以外の全てのプロセスについて、合計４０９６バイトまでの再配置が完了する。
【００３６】
そして、アクセスパターンテーブルの、プロセスＡについてエントリー２のファイルａ，オフセット＝４０９６，サイズ＝１０２４０という情報について、ディスク装置２の記憶領域におけるブロックサイズは４０９６バイトに設定されているので、終端が４０９６バイト単位になるようにサイズを１０２４０から１２２８８バイトに切り上げる。この結果、ディスク装置２における連続した領域の３番目に、ファイルａのオフセット４０９６から始まる１２２８８バイトのデータを配置し、プロセスＡについて合計１６３８４バイトの配置を行ったことをメモリに記憶する。その後に、プロセスＡ以外の全てのプロセスについて、合計１６３８４バイトまでの再配置を行う。
【００３７】
この場合、プロセスＢについてエントリー２のファイルｂ，オフセット＝４０９６，サイズ＝４０９６という情報から、ディスク装置２の連続する領域の４番目に、ファイルｂのオフセット４０９６から４０９６バイトのデータを配置し、プロセスＢについて合計８１９２バイトの配置を行ったことをメモリに記憶する。プロセスＢについて再配置を行った８１９２バイトは、プロセスＡについて再配置を行った１６３８４バイトより小さいため、プロセスＢについてエントリー３のファイルｂ，オフセット＝８１９２，サイズ＝８１９２という情報から、ディスク装置２の連続する領域の５番目に、ファイルｂのオフセット８１９２から８１９２バイトのデータを配置し、プロセスＢについて合計１６３８４バイトの再配置を行ったことをメモリに記憶する。この結果、プロセスＡ以外の全てのプロセスについて、合計１６３８４バイトまでの再配置が完了する。
【００３８】
そして、アクセスパターンテーブルのプロセスＡについてエントリー３のファイルａ，オフセット＝１４３３６，サイズ＝６１４４という情報を参照し、上述したようにブロックサイズは４０９６バイトであるため、開始位置が４０９６バイト単位になるように、オフセットを１２２８８に切り下げる。その結果、プロセスＡのエントリー３を、ファイルａ，オフセット＝１２２８８，サイズ＝８１９２に変更する。オフセット１２２８８から４０９６バイトについては既に配置済みのため、オフセットを１６３８４に変更する。その結果、プロセスＡのエントリー３を、ファイルａ，オフセット＝１６３８４，サイズ＝４０９６に変更する。この情報から、ディスク装置２の連続する領域の６番目に、ファイルａのオフセット１６３８４から４０９６バイトのデータを配置する。そして、プロセスＡについて合計２０４８０バイトの配置を行ったことをメモリに記憶する。
【００３９】
その後に、プロセスＡ以外の全てのプロセスについて、合計２０４８０バイトまでの再配置を行おうとするが、プロセスＢについての再配置は完了しているので何もしない。プロセスＡ以外の全てのプロセスについて、合計２０４８０バイトまでの再配置が完了する。そして、まだ再配置が完了していないプロセスがいないかを、アクセスパターンテーブルと各プロセスについて合計何バイトの再配置が完了しているかの情報とを基に検索し、全てのプロセスについて再配置が完了していると判定した場合に、データ再配置の処理を終了する。このようにして再配置された場合のディスク装置２におけるデータの配置を図３に示す。
【００４０】
また別の例として、アクセスパターン記憶部１２３が、図４に示すようなアクセスパターンテーブルを記憶している場合、データ再配置手段１２４は、読み込み開始時刻の順に連続するように、ディスク装置２に記憶されているデータの再配置を行うような構成であればよい。具体的に、データ再配置手段１２４は、図４に示すようなアクセスパターンテーブルを参照し、開始時刻が５．００秒のプロセスａのエントリー１，開始時刻が５．１０秒のプロセスｂのエントリー１，開始時刻が６．００秒のプロセスａのエントリー２，開始時刻が６．１０秒のプロセスｂのエントリー２，開始時刻が７．５０秒のプロセスｂのエントリー３，開始時刻が８．５０秒のプロセスａのエントリー３の順でそれぞれのデータが連続するようにディスク装置２に記憶されているデータの再配置を行う。
【００４１】
これにより、アプリケーション１１の実行時において複数のプロセスが同時にファイルアクセスを行う場合でも、その一連のデータアクセスがディスク装置２でシーケンシャルなアクセスとなるので、ディスク装置２のデータ読み出し動作が物理的に高速となり、結果的に、アプリケーション１１の処理速度を高速化することができる。
【００４２】
次に、本実施形態のファイルシステム１２の動作について説明する。ここで、以下の動作説明は、本発明のデータ再配置方法の実施形態となる。
【００４３】
図５は、本実施形態のファイルシステム１２におけるアクセスパターン記録動作を示すフローチャートである。図５に示すように、ファイルシステム１２におけるアクセスパターン記録動作は、まず、ホスト１でアプリケーション１１の実行が開始されると、アプリケーション１１におけるプロセスからファイル管理手段１２１へデータ読み込みの要求が送出され、ファイル管理手段１２１がアプリケーション１１からデータの読み込み要求を受けると（図５のステップｓ５１）、アクセスパターン記録手段１２２に対して、データの読み込みを行った旨の通知を送出する。この通知を受けたアクセスパターン記録手段１２が、データ読み込みに関する情報をアクセスパターン記憶部１２３に記憶されたアクセスパターンテーブルに記録する（図５のステップｓ５２）。このような動作が、アプリケーション１１の実行中に繰り返される。
【００４４】
ここで、このアクセスパターン記録動作について、図２に示すアクセスパターンテーブルが完成するまでを例にして具体的に説明する。
【００４５】
ホスト１は並列処理を行うため、アプリケーション１１の実行が開始されると、プロセスＡとプロセスＢが同時に処理される。プロセスＡとプロセスＢは、ファイル管理手段１２１に対してファイルの読み込みを要求する。まず、プロセスＡはファイルａのオフセット０から４０９６バイトの読み込みを要求し、プロセスＢはファイルｂのオフセット０から４０９６バイトの読み込みを要求する。ファイル管理手段１２１が、アクセスパターン記録手段１２２に対して、プロセスＡがファイルａのオフセット０から４０９６バイトの読み込みを行ったこと及び、プロセスＢがファイルｂのオフセット０から４０９６バイトの読み込みを行ったことを記録するように指示する。アクセスパターン記録手段１２２が、アクセスパターンテーブルとしてプロセスＡとプロセスＢのアクセスを記録するテーブルを作成し、プロセスＡのアクセスを記録するテーブルに対してファイル名＝ファイルａ，オフセット＝０，サイズ＝４０９６という情報を記録し、プロセスＢのアクセスを記録するテーブルに対してファイル名＝ファイルｂ，オフセット＝０，サイズ＝４０９６という情報を記録する。
【００４６】
続いて、プロセスＡはファイルａのオフセット４０９６から１０２４０バイト、プロセスＢはファイルｂのオフセット４０９６から４０９６バイトの読み込みを要求する。ファイル管理手段１２１が、アクセスパターン記録手段１２２に対して、プロセスＡがファイルａのオフセット４０９６から１０２４０バイトの読み込みを行ったことと、プロセスＢがファイルｂのオフセット４０９６から４０９６バイトの読み込みを行ったことを記録するように指示する。アクセスパターン記録手段１２２が、アクセスパターンテーブルにおけるプロセスＡのテーブルに対してファイル名＝ファイルａ，オフセット＝４０９６，サイズ＝１０２４０という情報を記録し、プロセスＢのテーブルに対してファイル名＝ファイルｂ，オフセット＝４０９６，サイズ＝４０９６という情報を記録する。
【００４７】
続いて、プロセスＡはファイルａのオフセット１４３３６から６１４４バイト、プロセスＢはファイルｂのオフセット８１９２から８１９２バイトの読み込みを要求する。同様にして、アクセスパターン記録手段１２２が、アクセスパターンテーブルにおけるプロセスＡのテーブルに対してファイル名＝ファイルａ，オフセット＝１４３３６，サイズ＝６１４４という情報を記録し、プロセスＢのテーブルに対してファイル名＝ファイルｂ，オフセット＝８１９２，サイズ＝８１９２という情報を記録する。このようにして、図２に示すようなアクセスパターンテーブルが完成する。
【００４８】
次に、図６は、本実施形態のファイルシステム１２におけるデータ再配置手段１２４の動作を示すフローチャートである。図６に示すように、ファイルシステム１２におけるデータ再配置手段１２４は、まず、アプリケーション１１の終了時にアプリケーション１１から送られてくるデータ再配置の指示を受けると（図６のステップｓ６１）、アクセスパターン記憶部１２３からアクセスパターンテーブルを読み込む（図６のステップｓ６２）。
【００４９】
続いて、このアクセスパターンテーブルに基づいてアプリケーション１１のデータ読み込みの順番を特定し（図６のステップｓ６３）、この特定した順番で連続するようにディスク装置２に記憶されているデータを再配置する（図６のステップｓ６４）。
【００５０】
例えば、アプリケーション１１における複数のプロセスが同時に実行される場合で、アクセスパターン記憶部１２３が、図２に示すようなアクセスパターンテーブルを記憶しているとすると、データ再配置手段１２４は、このアクセスパターンテーブルに基づいて、プロセスＡ及びＢのデータ読込毎に読込サイズの累計を算出し、この算出された各累計に基づいてプロセスＡ及びＢにおける各データ読込の順番を特定し、この特定した順番で連続するようにディスク装置２に記憶されているデータを再配置する。
【００５１】
また、アクセスパターン記憶部１２３が、図４に示すようなアクセスパターンテーブルを記憶している場合、データ再配置手段１２４は、読み込み開始時刻の順に連続するように、ディスク装置２に記憶されているデータの再配置を行う。
【００５２】
ここでは、アプリケーション１１からファイル再配置手段１２４に対してファイルの再配置の開始が指示されているが、ファイル再配置手段１２４が、アプリケーション１１の終了を監視し、アプリケーション１１の終了時にファイルの再配置の開始を開始するようにしてもよい。
【００５３】
このように本実施形態のファイルシステム１２では、アプリケーション１１のデータ読込みの履歴であるアクセスパターンテーブルに基づいて、アプリケーション１１のデータ読み込みの順番を特定し、ディスク装置２の記憶領域に格納されたデータを、アプリケーション１１に読み込まれる順番に連続するように再配置するので、アプリケーション１１の実行時において複数のプロセスが同時にファイルアクセスを行う場合でも、その一連のデータアクセスがシーケンシャルなアクセスとなり、ディスク装置２のデータ読み出し動作が物理的に高速となり、結果的に、アプリケーション１１を高速化することができる。
【００５４】
ここで、上述した説明の構成では、アプリケーション１１の最初の実行時にアクセスパターン記録手段１２２によってアクセスパターンテーブルが作成されるので、アプリケーション１１の最初の実行時は高速なファイルの読み込みを行うことができないが、アプリケーション１１の入出力パターンが既知であれば、予め作成されたアクセスパターンテーブルをアクセスパターン記憶部１２３に記憶させておくようにしてもよい。このようにすれば、データ再配置手段１２４がアプリケーション１１の実行前にアクセスパターンテーブルに基づいてデータの再配置を行うことが可能となり、アプリケーション１１の最初の実行時から高速なデータアクセスを実施することができる。
【００５５】
また、アプリケーション１１を構成する全てのプロセスが、ホスト１で実行されるような構成であるが、これに限らず、プロセスを複数のホストで分散して実行するようにして、ファイルシステム１２がＮＦＳ（Network File System）のような共有ファイルシステムで共有されているようにしてもよい。この場合、アクセスパターン記録手段１２２とアクセスパターンテーブルはＮＦＳクライアントが有し、ファイル再配置手段１２４はＮＦＳサーバが有する。
【００５６】
また、本実施形態におけるファイル管理手段１２１，アクセスパターン記録手段１２２，データ再配置手段１２４については、その機能内容をプログラム化してコンピュータに実行させるように構成してもよい。
【００５７】
以上のように、本実施形態のファイルシステム１２によれば、アプリケーション１１の実行時におけるファイルアクセスパターンを記録したアクセスパターンテーブルに基づいて、ディスク装置２の記憶領域内のデータを、実際にアクセスが行われる順序で連続するように再配置するため、アプリケーション１１の再実行の際にディスク装置２に対してシーケンシャルなアクセスが行われるようになり、高速なファイルアクセスが可能となる。
【００５８】
ＨＰＣ分野においては、入力データファイルは同じものを使用し、パラメータのみ変更してアプリケーションを何度も再実行するようなことが行われており、また、入力データファイルを変更して実行する場合でも、アクセスパターンは変化しないことが多い。よって、本実施形態のファイルシステム１２のように、アプリケーション１１の１回目の実行時に、入力データファイルのアクセスパターンを記録し、記録したアクセスパターンに合わせてデータの再配置を行うことにより、２回目以降の実行時に、高速なデータアクセスを実現することが可能になる。
【００５９】
通常のデフラグメント技術は、記憶装置内の情報をファイル毎に連続した領域に配置しており、複数のプロセスが同時にファイルアクセスを行う場合を想定していないので、複数のプロセスが同時にファイルアクセスを行うと、記憶装置が低速なランダムアクセスを行うことになり、ファイルの入出力が低速になってしまっていた。これに対して、本実施形態のファイルシステム１２は、ディスク装置２に格納されたデータを、アプリケーション１１が読み込む順番に連続するように再配置するので、図３に示すように、各ファイルは断片化されている状態となるが、アプリケーション１１の実行時に複数のプロセスから行われる一連のファイルアクセスは、ディスク装置２でシーケンシャルなアクセスとなり、データ入出力が高速になる。これにより、アプリケーションの実行速度を有効に高速化することができる。
【産業上の利用可能性】
【００６０】
本発明は、並行処理を実行するコンピュータシステムに適用することが可能である。
【符号の説明】
【００６１】
１  ホスト
２  ディスク装置
１１  アプリケーション
１２  ファイルシステム
１２１  ファイル管理手段
１２２  アクセスパターン記録手段
１２３  アクセスパターン記憶部
１２４  データ再配置手段
１２５  データ入出力部
【図１】
2010237837.tif 000003
【図２】
2010237837.tif 000004
【図３】
2010237837.tif 000005
【図４】
2010237837.tif 000006
【図５】
2010237837.tif 000007
【図６】
2010237837.tif 000008
【図７】
2010237837.tif 000009