(58)【調査した分野】(Int.Cl.,DB名)
複数の記憶装置のそれぞれに記憶されたデータセットに対してデータ処理を実行する情報処理装置における、新たなデータセットを記憶する記憶領域の確保をするための方法であって、
前記複数の記憶装置のそれぞれに対するアクセスの内容を示すアクセスデータを収集する収集ステップと、
前記新たなデータセットの使用を予定する期間である予定期間を入力する入力ステップと、
前記新たなデータセットを記憶させるための記憶領域の確保要求を受けたことに応じて、前記複数の記憶装置のそれぞれに対するアクセスデータに基づき、記憶装置毎のアクセス頻度の予測推移を算出する算出ステップと、
記憶装置毎の前記予測推移に基づき、前記複数の記憶装置のうち前記新たなデータセットを記憶する記憶領域を確保する記憶装置を選択する選択ステップと、
を備え、
前記算出ステップでは、
各記憶装置における前記データセット毎に、アクセス頻度の推移データをフーリエ変換により複数の周波数成分の推移データに分離し、前記複数の周波数成分の推移データの波形の振幅及び位相に基づいて、各推移データの前記予定期間での波形を予測し、
各推移データの前記予定期間での波形を加算することにより、当該データセットに対する前記予定期間でのアクセス頻度の推移波形を生成し、
前記記憶装置毎に前記データセットの前記推移波形を加算することにより、当該記憶装置に対する前記予定期間でのアクセス頻度の推移波形を生成し、前記記憶装置毎のアクセス頻度の予測推移とする方法。
【発明を実施するための形態】
【0010】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0011】
図1は、本実施形態に係るコンピューティングシステム10の構成を示す。コンピューティングシステム10は、一例として、いわゆるメインフレームと呼ばれる汎用コンピュータであって、計算処理、制御処理、データ管理等の様々データ処理を実行する。
【0012】
コンピューティングシステム10は、複数の端末22と、複数の記憶装置24と、情報処理装置30とを備える。複数の端末22のそれぞれは、ネットワークを介して情報処理装置30と接続される。複数の端末22のそれぞれは、ユーザにより入力された情報を情報処理装置30に送信し、情報処理装置30からの情報をユーザに出力する。
【0013】
複数の記憶装置24のそれぞれは、情報処理装置30によりアクセスされ、情報処理装置30により取り扱われるデータを記憶する。複数の記憶装置24のそれぞれは、一例として、ディスク状記録媒体に対してデータの記録再生を行うディスクドライブ装置、および、テープ状記録媒体にデータの記録再生を行うテープドライブ装置等の、どのような記録メディアを用いたドライブ装置であってもよい。また、1つの記憶装置24は、複数の記録媒体を備える構成であってもよい。また、1つの記憶装置24は、1つの記録媒体の記録領域を分割した分割領域に対してデータを記録および再生するドライブ装置であってもよい。
【0014】
また、複数の記憶装置24は、データセットと呼ばれる単位のデータを記憶する。データセットは、例えば、コンピュータが取り扱う予め定められた規則で構造化されたデータ単位であり、ファイルおよびドキュメントと呼ばれるデータ単位と同様の構造であってもよい。
【0015】
ここで、1つのデータセットは、1つの記憶装置24内の記憶領域にまとめて記憶される。新しいデータセットを使用する場合には、コンピューティングシステム10は、新しいデータセットの使用に先立って、複数の記憶装置24の何れか1つを選択して、選択した記憶装置24に新しいデータセットの記憶領域を確保する。
【0016】
情報処理装置30は、ソフトウェアプログラムを実行して、複数の記憶装置24のそれぞれに記憶されたデータセットに対してデータ処理を実行する。より具体的には、情報処理装置30は、端末22を介してユーザにより入力された情報に基づき、対応するデータセットに対するデータ処理を実行する。また、情報処理装置30は、データセットに対するデータ処理の処理結果を端末22を介してユーザに出力する。さらに、情報処理装置30は、データ処理の処理結果に応じて、対応するデータセットの内容を更新する。
【0017】
図2は、本実施形態に係る情報処理装置30の機能構成を示す。情報処理装置30は、ソフトウェアプログラムを実行することにより、
図2に示されるような各機能が実現される。すなわち、情報処理装置30は、ソフトウェアプログラムを実行することにより、機能ブロックとして、プログラム実行部32と、権限管理部34と、収集部36と、管理データ格納部38と、確保処理部40とを有する。
【0018】
プログラム実行部32は、ユーザから提供されたソフトウェアプログラムを実行することにより実現される。プログラム実行部32は、対応するデータセットに対してデータ処理を実行して、データ処理の結果を外部に出力したり、データ処理の結果に応じてデータセットを更新したりする。
【0019】
権限管理部34は、複数の記憶装置24のそれぞれの使用権限を管理する。すなわち、権限管理部34は、特定の権限を有するユーザのみがアクセス可能な記憶装置24に対してアクセスがあった場合、使用権限をチェックする。そして、権限管理部34は、使用権限を有さないユーザがアクセスした場合には、そのアクセスを拒否する。
【0020】
収集部36は、当該情報処理装置30による、複数の記憶装置24のそれぞれに対するアクセスの内容を示すアクセスデータを収集する。管理データ格納部38は、収集部36により管理されるデータを記憶する。管理データ格納部38は、複数の記憶装置24のうちの一部の記憶装置24に形成されてもよいし、複数の記憶装置24とは別個の記憶媒体上に形成されてもよい。
【0021】
収集部36は、一例として、アクション取得部42と、アクセス記録部44と、ボリューム管理部46とを含む。アクション取得部42は、当該情報処理装置30と記憶装置24との間の全てのアクション(例えば、書き込み、読み出し、削除等)を取得し、取得したアクションの内容およびアクションが発生した時刻等をアクションデータとして管理データ格納部38に書き込む。
【0022】
アクセス記録部44は、当該情報処理装置30と対応する記憶装置24との間に生じたアクセスに関する内容を、複数の記憶装置24のそれぞれ毎にまとめてアクセスデータとして管理データ格納部38に書き込む。アクセス記録部44は、アクション取得部42がアクションデータを管理データ格納部38に書き込む毎に呼び出され、管理データ格納部38に書き込まれたアクションデータから、記憶装置24のそれぞれの状態を管理するために必要なデータを抽出して、アクセスデータとして管理データ格納部38に書き込む。
【0023】
ボリューム管理部46は、複数の記憶装置24のそれぞれ毎の空き容量等を管理する。ボリューム管理部46は、一例として、当該情報処理装置30の起動時において、当該情報処理装置30に接続されている記憶装置24の名称、空き容量の情報、および、記憶装置24の退避に関する情報を取得し、取得したこれらの情報を管理データとして、記憶装置24毎に分類して管理データ格納部38に書き込む。なお、記憶装置24の退避とは、例えば一定期間アクセスの無いデータセットを、例えば速度の遅い他の記憶装置24へと移動させる処理をいう。
【0024】
また、ボリューム管理部46は、当該情報処理装置30の運用中において、記憶装置24の空き容量を一定時間毎に取得して、容量に変化があった場合に管理データ格納部38に書き込まれている対応する記憶装置24の管理データを更新する。また、ボリューム管理部46は、記憶装置24の退避に関する情報に変化があれば、管理データ格納部38に書き込まれている対応する記憶装置24の管理データを更新する。また、ボリューム管理部46は、一定期間内に容量に変化があった記憶装置24のアクセスデータを管理データ格納部38から抽出して、対応する記憶装置24の管理データの一部として管理データ格納部38に書き込む。
【0025】
確保処理部40は、新たなデータセットを記憶させるための記憶領域の確保要求を受けたことに応じて、複数の記憶装置24の何れか1つを選択する。そして、確保処理部40は、選択した記憶装置24に新しいデータセットの記憶領域を確保する処理を実行する。
【0026】
確保処理部40は、入力部52と、算出部54と、選択部56とを含む。入力部52は、端末22を介してユーザから、新たなデータセットを記憶させるための記憶領域の確保要求を取得する。これとともに、入力部52は、記憶領域を確保するために必要な情報も取得する。
【0027】
算出部54は、新たなデータセットを記憶させるための記憶領域の確保要求を受けたことに応じて、収集部36により収集された複数の記憶装置24のそれぞれに対するアクセスデータに基づき、記憶装置24毎のアクセス頻度の予測推移を算出する。選択部56は、記憶装置24毎のアクセス頻度の予測推移に基づき、複数の記憶装置24のうち新たなデータセットを記憶する記憶領域を確保する記憶装置24を選択する。そして、選択部56は、選択した記憶装置24に対して、必要な容量の記憶領域を確保するべく、管理データ格納部38に記憶された対応する記憶装置24の管理データの更新等の処理を実行する。
【0028】
図3は、新たなデータセットを記憶させるための記憶領域の確保要求がされた場合における、本実施形態に係る情報処理装置30の処理フローを示す。情報処理装置30は、新たなデータセットを記憶させるための記憶領域の確保要求を受けると、
図3のステップS11からステップS22に示される処理を実行する。
【0029】
まず、ステップS11において、情報処理装置30の入力部52は、記憶領域の確保要求とともに、新たなデータセットの使用を予定する期間である予定期間、および、新たなデータセットの使用を予定する時間帯である利用時間帯を入力する。予定期間および利用時間帯は、端末22を介してユーザにより入力される。
【0030】
例えば、入力部52は、予定期間として、「現在から3ヶ月後まで」、といった期間を入力する。また、入力部52は、予定期間として、「現在から無期限後まで」といった期間を入力してもよい。また、入力部52は、利用時間帯として、「午前10時00分から午後16時30分まで」、といった1日のうちにおいて使用する時間帯を入力する。また、入力部52は、利用時間帯として、平日と休日の区別等も入力してもよい。
【0031】
さらに、情報処理装置30の入力部52は、記憶領域の確保要求とともに、新しいデータセットを記憶するために必要な空き容量を示す必要容量、新しいデータセットを記憶させる記憶装置24のセキュリティ要件、および、新しいデータセットを記憶させる記憶装置24の退避要件を入力する。入力部52は、必要容量として、例えばバイト数を入力する。
【0032】
また、入力部52は、セキュリティ要件として、予め登録されたユーザのみが使用できる記憶装置24を利用する、または、全てのユーザが自由に使用できる記憶装置24を使用する、といった要件を入力する。また、入力部52は、退避要件として、一定期間不使用であることを条件としてデータセットを他の記憶装置24へと移転させる記憶装置24を利用する、または、どのような条件下においてもデータセットを他の記憶装置24へと移転させない記憶装置24を使用する、といった要件を入力する。
【0033】
続いて、ステップS12において、情報処理装置30の算出部54は、複数の記憶装置24のうち、新たなデータセットを記憶する記憶領域を確保するために必要な空き容量を少なくとも有する複数の記憶装置24を、選択すべき記憶装置24の候補として検出する。これにより、算出部54は、少なくとも新たなデータセットを記憶することができない記憶装置24を、予め除外することができる。
【0034】
この場合において、算出部54は、空き容量が減少傾向ではない記憶装置24を候補として検出する。これにより、算出部54は、現在は必要容量以上の空き容量があっても、将来的に空き容量が必要容量より少なくなってしまうような記憶装置24を候補として選択してしまうことを回避することができる。
【0035】
さらに、算出部54は、セキュリティ要件および退避要件を満足する記憶装置24を候補として選択する。例えば、算出部54は、アクセスするユーザに対するセキュリティ管理をする場合にはセキュリティ管理可能な記憶装置24を候補として選択する。また、例えば、算出部54は、退避要件が入力された場合には、退避要件を満足した記憶装置24を候補として選択する。
【0036】
続いて、情報処理装置30の算出部54は、ステップS13からステップS20のループ処理を、候補となる記憶装置24のそれぞれについて実行する。さらに、ステップS13からステップS20のループ処理内において、算出部54は、当該記憶装置24内に記憶されたデータセット毎に、ステップS14からステップS18のループ処理を実行する。
【0037】
ステップS14からステップS18のデータセット毎のループ処理内においては、まず、ステップS15において、算出部54は、対象となるデータセットに対してされたアクセスに関するアクセスデータであって、且つ、利用時間帯においてされたアクセスに関するアクセスデータを、管理データ格納部38内の記録装置毎の管理データの中から抽出する。この場合において、算出部54は、当該情報処理装置30が運用を開始した後の全期間のアクセスデータから対応するアクセスデータを抽出してもよいし、過去の一定期間(例えば過去1年間)のアクセスデータから、対応するアクセスデータを抽出してもよい。
【0038】
続いて、ステップS16において、算出部54は、抽出したアクセスデータに基づき、当該データセットの過去のアクセス頻度の推移を算出する。すなわち、算出部54は、対象となるデータセットに対する利用時間帯においてのアクセスの頻度を示す、過去のアクセス頻度の推移データを算出する。算出部54は、一例として、過去の、日毎のアクセス頻度の推移を表す推移データを算出する。
【0039】
続いて、ステップS17において、算出部54は、過去のアクセス頻度の推移データに基づき、対象となるデータセットについての予定期間におけるアクセス頻度の推移を予測する。例えば、算出部54は、当該データセットについての日毎のアクセス頻度の推移を表す推移データを、高速フーリエ変換等により複数の周波数成分に分離する。算出部54は、周波数成分のそれぞれに分離した推移データの波形の振幅および位相に基づき、対応する周波数成分における予定期間の波形を予測する。そして、算出部54は、複数の周波数成分毎のそれぞれ毎の予定期間における予測波形を全て加算して、予定期間におけるアクセス頻度の推移を表す波形を生成する。
【0040】
続いて、ステップS18において、算出部54は、対象となる候補の記憶装置24に記憶された全てのデータセットについて、ステップS15からステップS17の処理を完了したか否かを判断する。算出部54は、完了した場合には、処理をステップS19に進める。処理を完了していない場合には、算出部54は、次のデータセットについてステップS15からステップS17の処理を実行する。
【0041】
続いて、ステップS19において、算出部54は、対象となる候補の記憶装置24に記憶された全てのデータセットについて算出された、予定期間におけるアクセス頻度の推移を表す波形を加算する。これにより、算出部54は、対象となる候補の記憶装置24についての、予定期間におけるアクセス頻度の予測推移を算出することができる。
【0042】
続いて、ステップS20において、算出部54は、対象となる候補の記憶装置24の全てについて、ステップS14からステップS19の処理を完了したか否かを判断する。算出部54は、完了した場合には、処理をステップS21に進める。処理を完了していない場合には、算出部54は、次の候補となる記憶装置24についてステップS14からステップS19の処理を実行する。
【0043】
続いて、ステップS21において、情報処理装置30の選択部56は、候補となる複数の記憶装置24のそれぞれにおける予定期間におけるアクセス頻度の予測推移に基づき、新たなデータセットの記憶領域を確保するのに適切な一つの記憶装置24を選択する。選択部56は、一例として、予定期間における予測推移の最大値に基づき、新たなデータセットを記憶する記憶領域を確保する記憶装置24を選択する。例えば、選択部56は、予定期間における予測推移の最大値が、候補となる複数の記憶装置24のうちで最も小さい記憶装置24を選択する。
【0044】
また、選択部56は、一例として、予定期間における予測推移の平均値に基づき、新たなデータセットを記憶する記憶領域を確保する記憶装置24を選択してもよい。例えば、選択部56は、予定期間における予測推移の平均値が、候補となる複数の記憶装置24のうちで最も小さい記憶装置24を選択する。
【0045】
続いて、ステップS22において、情報処理装置30の選択部56は、選択した一の記憶装置24に対して、新たなデータセットを記憶する記憶領域を確保するための確保処理を実行する。例えば、選択部56は、管理データ格納部38に記憶された対応する記憶装置24の管理データの更新等の処理を実行する。
【0046】
以上のように、本実施形態に係る情報処理装置30は、記憶装置24のそれぞれの将来のアクセス頻度を予測して、新たなデータセットを記憶させるために適切な記憶装置24を割り当てることができる。これにより、本実施形態に係る情報処理装置30によれば、記憶装置24の将来の使用状況を考慮しつつ適切な記憶装置を割り当てることができる。
【0047】
図4は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0048】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0049】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0050】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0051】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0052】
コンピュータ1900にインストールされ、コンピュータ1900を、情報処理装置30として機能させるプログラムは、プログラム実行モジュールと、権限管理モジュールと、収集モジュールと、管理データ格納モジュールと、確保処理モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、プログラム実行部32、権限管理部34、収集部36、管理データ格納部38および確保処理部40としてそれぞれ機能させる。
【0053】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、プログラム実行部32、権限管理部34、収集部36、管理データ格納部38および確保処理部40として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置30が構築される。
【0054】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0055】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0056】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0057】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0058】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0059】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0060】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。