(57)【特許請求の範囲】
【請求項１】
記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するためのアクセス時間測定部と、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置におけるオブジェクトへのアクセスの前記アクセス位置を示す統計情報を取得するための統計情報取得部と、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するための対象特定部とを備える、情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
複数の前記アクセスのうち、前記時間差に基づいて前記アクセスを選択するための選択部を備え、
前記統計情報取得部は、前記選択部によって選択された前記アクセスについての前記統計情報を取得する、請求項１に記載の情報処理装置。
【請求項３】
前記対象特定部は、前記統計情報が示す複数の前記アクセスのうち、前記時間差が最大のアクセスに対応する前記ファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する、請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記統計情報を記憶するための記憶部を備え、
前記対象特定部は、前記記憶部から前記統計情報を取得し、取得した前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する、請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するステップと、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置におけるオブジェクトへのアクセスの前記アクセス位置を示す統計情報を取得するステップと、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを含む、デフラグメンテーション方法。
【請求項６】
コンピュータに、
記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するステップと、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置におけるオブジェクトへのアクセスの前記アクセス位置を示す統計情報を取得するステップと、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを実行させるための、デフラグメンテーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、デフラグメンテーション方法、およびデフラグメンテーションプログラムに関し、特に、デフラグメンテーションの対象領域を特定する情報処理装置、デフラグメンテーション方法、およびデフラグメンテーションプログラムに関する。
【背景技術】
【０００２】
ディスク装置に対して同一サイズのＩ／Ｏすなわちアクセスを行なう場合、通常、連続領域へのアクセスは、分散した領域へのアクセスに比べて、ディスクヘッドの移動待ちなどの影響が低減するため、速くなる。
【０００３】
このため、ディスク装置を利用するファイルシステムにおいて、ファイルまたはファイル群へのアクセスが、可能な限り連続領域へのアクセスとなるように、ディスクブロックの配置を行なう。
【０００４】
しかしながら、ファイルへのアクセスパターンは用途により様々であり、必ずしもファイルシステムによる初期配置が最適となるとは限らない。また、当初連続して割り当てられていたディスクブロックがファイルに対する追記および削除により分散してしまうこともある。
【０００５】
ファイルシステムのデフラグメンテーションは、このようなフラグメンテーションすなわちファイルの断片化および分散に対して、ブロックの再配置を行なうことでアクセス性能を向上させる機能である。
【０００６】
従来、ファイルシステムのフラグメンテーションは、ファイルシステムがディスクのブロック割り当て時に工夫をすることで回避していた（たとえば、特開２００５−１３５１２６号公報（特許文献１）参照）。
【０００７】
しかしながら、一度最適な割り当てが行なわれても、ファイルの削除によって空き領域が断片化されたり、ファイルシステムの想定から外れたアクセスパターンがなされることでディスクへのアクセスが非連続となったりすることは不可避であった。
【０００８】
このような問題点を解決するための技術として、たとえば、特開２００２−２６８９２４号公報（特許文献２）には、シーケンシャルアクセスにおいてシーク発生するアクセスパターンを検知する仕組みをディスク装置に備え、シーク発生時には自動的に空き領域を捜索してデフラグメンテーション処理を行なう方法が開示されている。
【０００９】
しかしながら、このような方法では、ファイルシステムの作成およびチェックなどの一時的なアクセスに対しても過敏に反応してしまうことがある。
【００１０】
また、特開２００５−２８４６３２号公報（特許文献３）には、ディスク領域のアクセス頻度およびＩ／Ｏ要求の分割頻度に基づいてデフラグメンテーションの対象を選択する方法が開示されている。
【００１１】
しかしながら、このような方法では、単一のファイルが断片化している状況は検出できても、複数のファイルが分散している状況は検出できない。すなわち、一つのＩ／Ｏが断片化によって分割されるのではなく元々別々のＩ／Ｏとして発行されるが、アプリケーション観点では連関したアクセスについて、デフラグメンテーションの効果が見込める、という状況は検出できない。
【００１２】
また、「ｅｘｔ４オンラインデフラグ実装に関する研究開発」Linux Conference、2009（非特許文献１）では、デフラグメンテーション機能を備えるファイルシステムに対して、デフラグメンテーションの指示を出すことにより、より実際の利用形態に即したデフラグメンテーション対象の選択を可能とする技術が開示されている。
【００１３】
しかしながら、このような方法をファイルシステム全体に適用すると、ディスク装置において大きなペナルティとはならないようなアクセスパターンであっても、ブロック位置が離れているというだけで不必要なデフラグメンテーションを行なってしまう場合がある。また、ファイルシステムの一部に適用するためには、対象選択のためにコマンド使用者がファイルシステムのアクセスパターンに習熟している必要があり、機能の利便性を損なってしまう。
【００１４】
また、特開２００１−００５７０１号公報（特許文献４）には、以下のような技術が開示されている。すなわち、書換え可能な記録媒体の記憶領域を規定の大きさからなる複数の区画領域に分割し、その区画領域単位に連続データを分割して格納することによって上記記憶領域に対するランダムな位置でのデータの記録および再生を行なう書換え型情報記録再生装置において、上記記憶領域の隣接しない複数の区画領域に渡って連続データが分割して記録されているとき、その分割されたデータがそれぞれ記録された区画領域を示す分割区画情報を記憶する分割区画情報記憶手段と、上記連続データの再生時、各区画領域に対するアクセス頻度を上記分割区画情報に対応させて記憶するアクセス頻度記憶手段と、上記分割区画情報記憶手段に記憶された分割区画情報の中からアクセス頻度の高い分割区画情報を選び、その分割区画情報によって示される各区画領域に記録されているデータを連続する区画領域にそれぞれ記録し直すデフラグメンテーション制御手段とを設ける。
【００１５】
また、特開２００７−０７６０６３号公報（特許文献５）には、には、以下のような技術が開示されている。すなわち、ハードディスクドライブを備え、上記ハードディスクドライブに対するデータ書き込みおよび読み出しを行ないながら画像形成する画像形成装置において、上記ハードディスクの書き込みおよび読み出し速度の増大を判定するための指標の閾値を予め記憶する記憶手段と、画像形成処理を実行する際に、上記指標を算出する算出手段と、上記算出手段が算出した指標の値が上記記憶手段に記憶された閾値を超えた場合に上記ハードディスクの断片化解消処理が必要であると判定する判定手段とを有する。
【００１６】
また、特開平１０−２８９０６３号公報（特許文献６）には、には、以下のような技術が開示されている。すなわち、ディスク装置を記憶装置に用い、上記ディスク装置にデータを格納し上記ディスク装置から上記データを読み出して使用するホストシステムを有する情報処理装置であって、上記ディスク装置は、上記ディスク装置へのアクセスに対する上記ディスク装置の処理において将来のアクセスについての応答時間予測に使用する情報を収集する手段と、上記情報を用いて上記将来のアクセスについての応答時間を予測する手段と、上記予測した応答時間に基づく報告を上記ホストシステムに通知する手段を有する。上記ホストシステムは、上記報告に基づき上記ディスク装置に対するデータ格納状態についての制御を行なうデータ格納制御手段を有する。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００５−１３５１２６号公報
【特許文献２】特開２００２−２６８９２４号公報
【特許文献３】特開２００５−２８４６３２号公報
【特許文献４】特開２００１−００５７０１号公報
【特許文献５】特開２００７−０７６０６３号公報
【特許文献６】特開平１０−２８９０６３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
デフラグメンテーション処理では、従来、対象領域内のディスクブロックを並び替える、または連続している空き領域に対象領域をコピーすることで対象領域内での連続性を高めている。
【００１９】
ここで、対象領域を狭くとりすぎるとデフラグメンテーションの効果が低くなり、また、広くとりすぎるとデフラグメンテーション処理の無駄が増えることから、対象領域の選択は重要な要素である。
【００２０】
特許文献３および４に記載の技術では、デフラグメンテーション処理の対象をファイルとしている。これは最も一般的な対象領域の選択方法である。
【００２１】
また、特許文献５に記載の技術では、断片化検出の対象を、印刷処理に伴う一連のディスクアクセスに絞っている。
【００２２】
また、特許文献６に記載の技術では、対象領域について具体的には定めず、アプリケーションまたはＯＳ（Operating System）が連続データアクセスする予め登録した領域としている。
【００２３】
すなわち、特許文献３〜６に記載の技術では、いずれも、連続アクセスが見込まれる領域に関する前提知識を元に対象領域を予め定めている。
【００２４】
このため、特許文献３〜６に記載の技術では、たとえば「システム運用上、ある二つのファイルは常に連続してアクセスされる」という事実がある場合において、当該事実を予め認識していないと、二つのファイルのディスク上の位置が分断されていても、この分断を検出し、対処することができない。
【００２５】
また、特許文献１および２には、このような課題を解決するための構成は開示されていない。
【００２６】
この発明は、上述の課題を解決するためになされたもので、その目的は、デフラグメンテーションの対象領域を適切に選択することが可能な情報処理装置、デフラグメンテーション方法、およびデフラグメンテーションプログラムを提供することである。
【課題を解決するための手段】
【００２７】
上記課題を解決するために、この発明のある局面に係わる情報処理装置は、記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するためのアクセス時間測定部と、上記アクセスについて、上記実測値から上記アクセスの所要時間の予測値を差し引いた時間差、上記記憶装置におけるアクセス位置、および上記アクセスの１つ前に発生した上記記憶装置におけるオブジェクトへのアクセスの上記アクセス位置を示す統計情報を取得するための統計情報取得部と、上記統計情報に基づいて、上記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するための対象特定部とを備える。
【００２８】
上記課題を解決するために、この発明のある局面に係わるデフラグメンテーション方法は、記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するステップと、上記アクセスについて、上記実測値から上記アクセスの所要時間の予測値を差し引いた時間差、上記記憶装置におけるアクセス位置、および上記アクセスの１つ前に発生した上記記憶装置におけるオブジェクトへのアクセスの上記アクセス位置を示す統計情報を取得するステップと、上記統計情報に基づいて、上記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを含む。
【００２９】
上記課題を解決するために、この発明のある局面に係わるデフラグメンテーションプログラムは、コンピュータに、記憶装置におけるオブジェクトへのアクセスの所要時間を測定して実測値を取得するステップと、上記アクセスについて、上記実測値から上記アクセスの所要時間の予測値を差し引いた時間差、上記記憶装置におけるアクセス位置、および上記アクセスの１つ前に発生した上記記憶装置におけるオブジェクトへのアクセスの上記アクセス位置を示す統計情報を取得するステップと、上記統計情報に基づいて、上記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを実行させるためのプログラムである。
【発明の効果】
【００３０】
本発明によれば、デフラグメンテーションの対象領域を適切に選択することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態に係る情報処理装置の概略構成図である。
【図２】本発明の実施の形態に係る情報処理装置が提供する制御構造を示すブロック図である。
【図３】本発明の実施の形態に係る情報処理装置が統計情報を作成する際の動作手順を示すフローチャートである。
【図４】本発明の実施の形態に係る情報処理装置がデフラグメンテーション対象を特定する際の動作手順を示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００３３】
本発明の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク（Flexible Disk）およびＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【００３４】
本発明の実施の形態に係るプログラムは、ＯＳ等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００３５】
なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００３６】
［装置構成］
図１は、本発明の実施の形態に係る情報処理装置の概略構成図である。
【００３７】
図１を参照して、情報処理装置２０１は、演算処理部であるＣＰＵ（Central Processing Unit）１０１と、メインメモリ１０２と、ハードディスク１０３と、入力インタフェース１０４と、表示コントローラ１０５と、データリーダ／ライタ１０６と、通信インタフェース１０７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００３８】
ＣＰＵ１０１は、ハードディスク１０３に格納されたプログラム（コード）をメインメモリ１０２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１０２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１０３から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク１０３は不揮発性の磁気記憶装置であり、ＣＰＵ１０１で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク１０３にインストールされるプログラムは、後述するように、記録媒体１１１に格納された状態で流通する。なお、ハードディスク１０３に加えて、あるいはハードディスク１０３に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００３９】
入力インタフェース１０４は、ＣＰＵ１０１とキーボード１０８、マウス１０９および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インタフェース１０４は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
【００４０】
表示コントローラ１０５は、表示部の典型例であるディスプレイ１１０と接続され、ディスプレイ１１０での表示を制御する。すなわち、表示コントローラ１０５は、ＣＰＵ１０１による画像処理の結果などをユーザに対して表示する。ディスプレイ１１０は、たとえばＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）である。
【００４１】
データリーダ／ライタ１０６は、ＣＰＵ１０１と記録媒体１１１の間のデータ伝送を仲介する。すなわち、記録媒体１１１は、情報処理装置２０１で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１０６は、この記録媒体１１１からプログラムを読み出す。また、データリーダ／ライタ１０６は、ＣＰＵ１０１の内部指令に応答して、情報処理装置２０１における処理結果などを記録媒体１１１へ書き込む。なお、記録媒体１１１は、たとえば、ＣＦ（Compact Flash）およびＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体、またはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体である。
【００４２】
通信インタフェース１０７は、ＣＰＵ１０１と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インタフェース１０７は、典型的には、イーサネット（登録商標）またはＵＳＢ（Universal Serial Bus）の通信機能を有する。なお、記録媒体１１１に格納されたプログラムを情報処理装置２０１にインストールする形態に代えて、通信インタフェース１０７を介して配信サーバなどからダウンロードしたプログラムを情報処理装置２０１にインストールしてもよい。
【００４３】
また、情報処理装置２０１には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【００４４】
［制御構造］
次に、情報処理装置２０１におけるデフラグメンテーション機能を提供するための制御構造について説明する。
【００４５】
図２は、本発明の実施の形態に係る情報処理装置が提供する制御構造を示すブロック図である。図２に示す情報処理装置２０１における各ブロックは、ハードディスク１０３に格納されたプログラム（コード）などをメインメモリ１０２に展開して、ＣＰＵ１０１に実行させることで提供される。なお、図２に示す情報処理装置２０１の制御構造の一部もしくは全部を専用ハードウェアおよび／または配線回路によって実現してもよい。
【００４６】
図２を参照して、情報処理装置２０１は、その制御構造として、ファイルシステムモジュール（対象特定部）１０と、ディスクＩ／Ｏモジュール（アクセス時間測定部、統計情報取得部および選択部）２０とを備える。また、情報処理装置２０１は、ディスク装置（記憶装置）３０を備える。ディスク装置３０は、たとえば図１に示すハードディスク１０３に相当する。
【００４７】
ファイルシステムモジュール１０は、デフラグメンテーション機能１１を有する。デフラグメンテーション機能１１は、ファイルシステム中の指定されたオブジェクト群に対してデフラグメンテーション処理を行なう機能である。ここで、オブジェクト群は、ファイルシステムにおける各ファイルと、当該ファイルのディスク装置３０上の位置を示すデータ等、各ファイルを管理するためのデータとを含む。
【００４８】
ディスクＩ／Ｏモジュール２０は、Ｉ／Ｏ完了所要時間に関する統計情報を保存するための一時記憶領域（記憶部）２１を含む。一時記憶領域２１は、たとえば図１に示すメインメモリ１０２に相当する。
【００４９】
ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対するアクセスの所要時間を測定して実測値を取得する。
【００５０】
そして、ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対するアクセスについて、実測値からアクセスの所要時間の予測値を差し引いた時間差、ディスク装置３０におけるアクセス位置、およびアクセスの１つ前に発生したディスク装置３０に対するアクセスのアクセス位置を示す統計情報を取得する。
【００５１】
たとえば、ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対する複数のアクセスのうち、上記時間差に基づいてアクセスを選択し、選択したアクセスについての統計情報を取得する。
【００５２】
ファイルシステムモジュール１０は、ディスクＩ／Ｏモジュール２０によって取得された統計情報に基づいて、ディスク装置３０を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する。
【００５３】
具体的には、一時記憶領域２１は、ディスクＩ／Ｏモジュール２０によって取得された統計情報を記憶する。ファイルシステムモジュール１０は、一時記憶領域２１から統計情報を取得し、取得した統計情報に基づいて、ディスク装置３０を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する。
【００５４】
たとえば、ファイルシステムモジュール１０は、ディスクＩ／Ｏモジュール２０によって取得された統計情報が示す複数のアクセスのうち、アクセスの所要時間の実測値から予測値を差し引いた時間差が最大のアクセスに対応するファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する。
【００５５】
より詳細には、ファイルシステムモジュール１０は、外部からの要求に基づき、ディスクＩ／Ｏモジュール２０に対してＩ／Ｏ要求を発行する。
【００５６】
ディスクＩ／Ｏモジュール２０は、発行されたＩ／Ｏ要求のサイズおよび種類、当該Ｉ／Ｏ要求の示すディスク装置３０上の位置、ならびにディスク装置３０の性能に基づいて、Ｉ／Ｏ所要時間の予測を行ない、予測値を記憶する。
【００５７】
ディスク装置３０は、ディスクＩ／Ｏモジュール２０からＩ／Ｏ要求を受けて、ディスクに対する書き込みまたは読み出しを行ない、書き込みまたは読み出しが完了したことをディスクＩ／Ｏモジュール２０に通知する。
【００５８】
ディスクＩ／Ｏモジュール２０は、ディスク装置３０から完了通知を受けて、Ｉ／Ｏ所要時間を算出し、予測値と比較する。ディスクＩ／Ｏモジュール２０は、たとえば算出したＩ／Ｏ所要時間と予測値との時間差が既定の閾値を超えている場合には、算出したＩ／Ｏ所要時間に対応するＩ／Ｏ要求について、当該Ｉ／Ｏ要求の示すディスク装置３０上の位置と、当該Ｉ／Ｏ要求の一つ前に発行されたＩ／Ｏ要求の示すディスク装置３０上の位置と、上記時間差とを統計情報として一時記憶領域２１に保存する。
【００５９】
ファイルシステムモジュール１０は、定期的または外部からの入力に基づき、一時記憶領域２１に保存された情報を読み出し、上記時間差すなわち最も予測値とのずれが大きかったＩ／Ｏ要求の組、すなわち１対のＩ／Ｏ要求の示すディスク装置３０上の各位置を取得する。そして、ファイルシステムモジュール１０は、取得した各位置に対応するファイルシステム中のオブジェクト群を判別し、当該オブジェクト群に対してデフラグメンテーション処理１１を起動する。
【００６０】
また、一時記憶領域２１に保存された統計情報は、外部から読み出すこともでき、デフラグメンテーション以外の性能改善用途および調査用途で利用可能である。
【００６１】
より具体的には、ディスクＩ／Ｏモジュール２０は、Ｉ／Ｏ完了所要時間の予測および実測を行ない、予測値と実測値との差が既定の閾値または過去の履歴と比べて悪い場合には、当該Ｉ／Ｏ要求のブロック位置と、当該Ｉ／Ｏ要求の一つ前に発行されたＩ／Ｏ要求のブロック位置と、予測値および実測値の差とをディスクＩ／Ｏモジュール２０内の一時記憶領域２１に記録する。
【００６２】
ファイルシステムモジュール１０は、定期的または外部からの指示があった場合に、一時記憶領域２１を参照し、性能差すなわち予測値および実測値の差が大きく、かつ比較的頻度の高いＩ／Ｏ要求の組み合わせを選択する。
【００６３】
そして、ファイルシステムモジュール１０は、選択したＩ／Ｏ要求のブロック位置に基づいて、対応するオブジェクト群、すなわち対応するファイルもしくはファイルの組またはファイル管理データを判別し、システムの設定に応じてデフラグメンテーション処理を行なう。
【００６４】
たとえば、ディスクＩ／Ｏモジュール２０は、ディスク装置３０のシーク動作等のアクセス時間のペナルティ動作が発生した場合に、ペナルティの大きさおよびディスク装置３０上のブロック位置の遷移についての統計情報を収集する。
【００６５】
ファイルシステムモジュール１０は、この統計情報を参照することにより、連続してアクセスされる頻度が高く、かつ連続してアクセスされた場合のペナルティが大きいアクセスの組を認識する。そして、ファイルシステムモジュール１０が、当該アクセスの組に対応するファイルシステムのオブジェクト群を特定することにより、デフラグメンテーション処理の対象を決定する。
【００６６】
［動作］
次に、本発明の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の実施の形態では、情報処理装置２０１を動作させることによって、本発明の実施の形態に係るデフラグメンテーション方法が実施される。よって、本発明の実施の形態に係るデフラグメンテーション方法の説明は、以下の情報処理装置２０１の動作説明に代える。なお、以下の説明においては、適宜図２を参照する。
【００６７】
図３は、本発明の実施の形態に係る情報処理装置が統計情報を作成する際の動作手順を示すフローチャートである。
【００６８】
図３を参照して、まず、ディスクＩ／Ｏモジュール２０は、ファイルシステムモジュール１０からＩ／Ｏ要求を受ける（ステップＡ１）。
【００６９】
次に、ディスクＩ／Ｏモジュール２０は、Ｉ／Ｏ要求の所要時間の予測を行ない、予測値を一時記憶領域２１に記録する。最も単純には、ディスクＩ／Ｏモジュール２０は、ディスク装置３０固有の固定値を予測値として用いる。より現実的には、ディスクＩ／Ｏモジュール２０は、磁気ディスクの回転速度およびディスク装置３０上のアクセス位置に基づいて、予測値を算出する（ステップＡ２）。
【００７０】
次に、ディスクＩ／Ｏモジュール２０は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ処理の所要時間の実測値と、一時記憶領域２１に記録した予測値とを比較する（ステップＡ３）。
【００７１】
次に、ディスクＩ／Ｏモジュール２０は、たとえば予測値と比べて実測値が規定の閾値を超えて悪い場合には（ステップＡ４でＹＥＳ）、実測値と予測値との時間差、当該Ｉ／Ｏ要求の示すディスク装置３０上の位置、および一つ前に発行されたＩ／Ｏ要求の示すディスク装置３０上の位置を一時記憶領域２１に記録する（ステップＡ５）。
【００７２】
なお、ディスクＩ／Ｏモジュール２０は、規定の閾値の代わりに、過去の履歴、たとえば実測値と予測値との時間差の平均を用いてもよい。
【００７３】
図４は、本発明の実施の形態に係る情報処理装置がデフラグメンテーション対象を特定する際の動作手順を示すフローチャートである。
【００７４】
図４を参照して、まず、ファイルシステムモジュール１０は、定期的または外部からの指示によりデフラグメンテーション処理を開始する（ステップＢ１）。
【００７５】
次に、ファイルシステムモジュール１０は、ディスクＩ／Ｏモジュール２０の一時記憶領域２１から、Ｉ／Ｏ所要時間が予測以上に悪かったＩ／Ｏ要求の組を１または複数読み出す（ステップＢ２）。
【００７６】
次に、ファイルシステムモジュール１０は、読み出した１または複数の組に基づいてファイルシステム中のオブジェクト群を特定する（ステップＢ３）。
【００７７】
次に、ファイルシステムモジュール１０は、特定したオブジェクト群を対象としてデフラグメンテーション機能１１を起動する（ステップＢ４）。
【００７８】
ところで、特許文献１〜６に記載の技術では、たとえば「システム運用上、ある二つのファイルは常に連続してアクセスされる」という事実がある場合において、当該事実を予め認識していないと、二つのファイルのディスク上の位置が分断されていても、この分断を検出し、対処することができない。
【００７９】
これに対して、本発明の実施の形態に係る情報処理装置では、ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対するアクセスの所要時間を測定して実測値を取得する。ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対するアクセスについて、実測値からアクセスの所要時間の予測値を差し引いた時間差、ディスク装置３０におけるアクセス位置、およびアクセスの１つ前に発生したディスク装置３０に対するアクセスのアクセス位置を示す統計情報を取得する。そして、ファイルシステムモジュール１０は、ディスクＩ／Ｏモジュール２０によって取得された統計情報に基づいて、ディスク装置３０を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する。
【００８０】
ここで、特許文献１〜６に記載の技術では、ファイルシステムにおけるオブジェクト群すなわち複数のオブジェクトを特定する構成は開示されていない。
【００８１】
本発明の実施の形態に係る情報処理装置では、デフラグメンテーション対象を予め特定せず、実測値が悪くなる場合のＩ／Ｏ要求と当該Ｉ／Ｏ要求の一つ前に発生したＩ／Ｏ要求との組を記録することにより、デフラグメンテーション対象とすべき「オブジェクト群」を特定する。
【００８２】
すなわち、ファイルシステムにおいて、オブジェクト間の関係、たとえば連続してアクセスされる複数のアクセス先をデフラグメンテーション対象とすることができるため、より最適なデフラグメンテーション処理を行なうことができる。
【００８３】
具体的には、ディスクＩ／Ｏ所要時間についての統計情報の保存および取得を行なう構成により、実際に時間のかかるＩ／Ｏ要求パターンを特定することができる。
【００８４】
そして、Ｉ／Ｏ要求内容とオブジェクトとの対応づけを行なうことが可能なファイルシステムモジュールが上述の統計情報を取得する構成により、特定したＩ／Ｏ要求パターンを発生させうるファイルシステム内のオブジェクト群を特定することができる。
【００８５】
すなわち、本発明の実施の形態に係る情報処理装置における各構成要素のうち、ファイルシステムモジュール１０およびディスクＩ／Ｏモジュール２０からなる最小構成により、デフラグメンテーションの対象領域を適切に選択する、という本発明の目的を達成することが可能となる。
【００８６】
また、本発明の実施の形態に係る情報処理装置では、ディスクＩ／Ｏモジュール２０は、ディスク装置３０に対する複数のアクセスのうち、アクセスの所要時間の実測値から予測値を差し引いた時間差に基づいてアクセスを選択する。ディスクＩ／Ｏモジュール２０は、ディスクＩ／Ｏモジュール２０によって選択されたアクセスについての統計情報を取得する。
【００８７】
このように、アクセスの予測値と実測値との時間差を用いる構成により、複数のアクセスの中から適切なアクセスを選択し、選択したアクセスの統計情報を取得することができる。
【００８８】
また、本発明の実施の形態に係る情報処理装置では、ファイルシステムモジュール１０は、ディスクＩ／Ｏモジュール２０によって取得された統計情報が示す複数のアクセスのうち、アクセスの所要時間の実測値から予測値を差し引いた時間差が最大のアクセスに対応するファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する。
【００８９】
このように、ディスク装置３０の性能等から予測されるアクセス時間との乖離が最も大きいアクセスを選択し、対応のオブジェクト群をデフラグメンテーション処理の対象として特定する構成により、デフラグメンテーション処理による効果をさらに高めることができる。
【００９０】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９１】
上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。
【００９２】
［付記１］
記憶装置に対するアクセスの所要時間を測定して実測値を取得するためのアクセス時間測定部と、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置に対するアクセスの前記アクセス位置を示す統計情報を取得するための統計情報取得部と、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するための対象特定部とを備える、情報処理装置。
【００９３】
［付記２］
前記情報処理装置は、さらに、
複数の前記アクセスのうち、前記時間差に基づいて前記アクセスを選択するための選択部を備え、
前記統計情報取得部は、前記選択部によって選択された前記アクセスについての前記統計情報を取得する、付記１に記載の情報処理装置。
【００９４】
［付記３］
前記対象特定部は、前記統計情報が示す複数の前記アクセスのうち、前記時間差が最大のアクセスに対応する前記ファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する、付記１または２に記載の情報処理装置。
【００９５】
［付記４］
前記情報処理装置は、さらに、
前記統計情報を記憶するための記憶部を備え、
前記対象特定部は、前記記憶部から前記統計情報を取得し、取得した前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する、付記１から３のいずれかに記載の情報処理装置。
【００９６】
［付記５］
記憶装置に対するアクセスの所要時間を測定して実測値を取得するステップと、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置に対するアクセスの前記アクセス位置を示す統計情報を取得するステップと、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを含む、デフラグメンテーション方法。
【００９７】
［付記６］
前記デフラグメンテーション方法は、さらに、
複数の前記アクセスのうち、前記時間差に基づいて前記アクセスを選択するステップを含み、
前記統計情報を取得するステップにおいては、選択した前記アクセスについての前記統計情報を取得する、付記５に記載のデフラグメンテーション方法。
【００９８】
［付記７］
前記オブジェクト群を特定するステップにおいては、前記統計情報が示す複数の前記アクセスのうち、前記時間差が最大のアクセスに対応する前記ファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する、付記５または６に記載のデフラグメンテーション方法。
【００９９】
［付記８］
前記デフラグメンテーション方法は、さらに、
前記統計情報を記憶するステップを含み、
前記オブジェクト群を特定するステップにおいては、記憶した前記統計情報を取得し、取得した前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する、付記５から７のいずれかに記載のデフラグメンテーション方法。
【０１００】
［付記９］
コンピュータに、
記憶装置に対するアクセスの所要時間を測定して実測値を取得するステップと、
前記アクセスについて、前記実測値から前記アクセスの所要時間の予測値を差し引いた時間差、前記記憶装置におけるアクセス位置、および前記アクセスの１つ前に発生した前記記憶装置に対するアクセスの前記アクセス位置を示す統計情報を取得するステップと、
前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定するステップとを実行させるための、デフラグメンテーションプログラム。
【０１０１】
［付記１０］
前記デフラグメンテーションプログラムは、さらに、コンピュータに、
複数の前記アクセスのうち、前記時間差に基づいて前記アクセスを選択するステップを実行させ、
前記統計情報を取得するステップにおいては、選択した前記アクセスについての前記統計情報を取得する、付記９に記載のデフラグメンテーションプログラム。
【０１０２】
［付記１１］
前記オブジェクト群を特定するステップにおいては、前記統計情報が示す複数の前記アクセスのうち、前記時間差が最大のアクセスに対応する前記ファイルシステム中のオブジェクト群をデフラグメンテーション処理の対象として特定する、付記９または１０に記載のデフラグメンテーションプログラム。
【０１０３】
［付記１２］
前記デフラグメンテーションプログラムは、さらに、コンピュータに、
前記統計情報を記憶するステップを実行させ、
前記オブジェクト群を特定するステップにおいては、記憶した前記統計情報を取得し、取得した前記統計情報に基づいて、前記記憶装置を用いるファイルシステムにおけるオブジェクト群の中から、デフラグメンテーション処理の対象とすべきオブジェクト群を特定する、付記９から１１のいずれかに記載のデフラグメンテーションプログラム。
【産業上の利用可能性】
【０１０４】
本発明は、たとえば、デフラグメンテーション処理を行なうコンピュータシステムに適用可能である。したがって、本発明は、産業上の利用可能性を有している。
【符号の説明】
【０１０５】
１０  ファイルシステムモジュール（対象特定部）
１１  デフラグメンテーション機能
２０  ディスクＩ／Ｏモジュール（アクセス時間測定部、統計情報取得部および選択部）
２１  一時記憶領域（記憶部）
３０  ディスク装置（記憶装置）
１０１  ＣＰＵ
１０２  メインメモリ
１０３  ハードディスク
１０４  入力インタフェース
１０５  表示コントローラ
１０６  データリーダ／ライタ
１０７  通信インタフェース
１０８  キーボード
１０９  マウス
１１０  ディスプレイ
１１１  記録媒体
１２１  バス
２０１  情報処理装置
【図１】
0005708053.tif 000002
【図２】
0005708053.tif 000003
【図３】
0005708053.tif 000004
【図４】
0005708053.tif 000005