(57)【特許請求の範囲】
【請求項１】
メモリ、中央処理装置及び第１の記憶媒体を含み、上記第１の記憶媒体に、ファイル管理システムにより管理されるヘッダ領域、およびユーザデータを格納するユーザデータ領域を有するファイルを記録する情報処理装置と、
当該情報処理装置の外部に設けられて、第２の記録媒体を有するサーバと、
上記第１の記憶媒体に記憶されている上記ファイルを上記第２の記録媒体に転送するマイグレーション処理により、上記第２の記録媒体に、上記ユーザデータおよびビットファイルＩＤを有するビットファイルを記憶させ、上記第１の記憶媒体に、上記ファイルに換えて、ファイル管理システムにより管理されるヘッダ領域、および上記ビットファイルＩＤを格納するユーザデータ領域を有するスタブファイルを記録するマイグレーション処理手段と、
ファイルオープンコマンドによりファイルをオープンするファイルオープン手段と、
上記ファイルオープン手段によって上記ビットファイルＩＤが取得された場合に、上記サーバとの結合を確立する手段と、
上記サーバとの結合状態において、上記ビットファイルＩＤを含む上記ビットファイルをオープンする手段と、
上記オープンした上記ビットファイルから上記ユーザデータを読み出し、上記情報処理装置の上記メモリに格納する読み出し手段と
を有するデータ記録再生装置。
【請求項２】
上記スタブファイルが生成されたあと、上記ファイルを格納する領域が開放される
請求項１記載のデータ記録再生装置。
【請求項３】
上記読み出し手段は、アプリケーションのために割り当てられたメモリ領域に直接格納する
請求項１または２記載のデータ記録再生装置。
【請求項４】
上記データ読み出し終了後、上記オープン手段によりオープンしたファイルをクローズするファイルクローズ手段をさらに有する
請求項１から３のいずれか一項記載のデータ記録再生装置。
【請求項５】
上記マイグレーション処理手段は、マイグレーション処理を自動的に行う
請求項１から４のいずれか一項記載のデータ記録再生装置。
【請求項６】
上記情報処理装置は、上記第１の記録媒体上に記録されている複数のファイルに対して、所定の基準に基づきマイグレーション処理の優先度を決定し、最も優先度の高いファイルからマイグレーション処理を行う
請求項１から５のいずれか一項記載のデータ記録再生装置。
【請求項７】
上記情報処理装置は、コンピュータである
請求項１から６のいずれか一項記載のデータ記録再生装置。
【請求項８】
上記第１の記録媒体は、ハードディスクである
請求項１から７のいずれか一項記載のデータ記録再生装置。
【請求項９】
上記第２の記録媒体は、リムーバブルメディアである
請求項１から８のいずれか一項記載のデータ記録再生装置。
【請求項１０】
上記スタブファイルは、上記マイグレーション処理前に上記第１記録媒体にある上記ファイルのサイズ情報を含む
請求項１から９のいずれか一項記載のデータ記録再生装置。
【請求項１１】
上記スタブファイルは、上記マイグレーション処理前に上記第１記録媒体にある上記ファイルの上記ユーザデータ領域の先頭の１ブロックを含む
請求項１から１０のいずれか一項記載のデータ記録再生装置。
【請求項１２】
メモリ、中央処理装置及び第１の記憶媒体を含む情報処理装置の上記第１の記憶媒体に記憶されて、ファイル管理システムにより管理されるヘッダ領域、およびユーザデータを格納するユーザデータ領域を有するファイルを、当該情報処理装置の外部に設けられたサーバの第２の記録媒体に転送するマイグレーション処理により、上記第２の記録媒体に、上記ユーザデータおよびビットファイルＩＤを有するビットファイルを記憶させ、上記第１の記憶媒体に、上記ファイルに換えて、ファイル管理システムにより管理されるヘッダ領域、および上記ビットファイルＩＤを格納するユーザデータ領域を有するスタブファイルを記録させるマイグレーションステップと、
ファイルオープンコマンドによりファイルをオープンするファイルオープンステップと、
上記ファイルオープンステップによって上記ビットファイルＩＤが取得された場合に、上記サーバとの結合を確立するステップと、
上記サーバとの結合状態において、上記ビットファイルＩＤを含む上記ビットファイルをオープンするステップと、
上記オープンした上記ビットファイルから上記ユーザデータを読み出し、上記情報処理装置の上記メモリに格納する読み出しステップと
を有するデータ記録再生方法。
【請求項１３】
上記マイグレーションステップでは、
上記スタブファイルが生成されたあと、上記ファイルを格納する領域が開放される
請求項１２記載のデータ記録再生方法。
【請求項１４】
上記読み出しステップでは、アプリケーションのために割り当てられたメモリ領域に直接格納する
請求項１２または１３記載のデータ記録再生方法。
【請求項１５】
上記データ読み出し終了後、上記オープン手段によりオープンしたファイルをクローズするファイルクローズステップをさらに有する
請求項１２から１４のいずれか一項記載のデータ記録再生方法。
【請求項１６】
上記マイグレーションステップは、自動的に行われる
請求項１２から１５のいずれか一項記載のデータ記録再生方法。
【請求項１７】
上記マイグレーションステップでは、
上記第１の記録媒体上に記録されている複数のファイルに対して、所定の基準に基づきマイグレーション処理の優先度を決定し、最も優先度の高いファイルからマイグレーション処理を行う
請求項１２から１６のいずれか一項記載のデータ記録再生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータなどの情報処理装置におけるファイルの記録、保存及び再生に関するデータ記録再生装置及びその方法に関するものである。
【０００２】
【従来の技術】
コンピュータなどの情報処理装置において、所定の目的を達成するため、大容量なデータを用いることがしばしばある。通常、これらのデータが、用途、種類などに応じて分類され、分類された各々のデータの集まりがデータファイルという形で管理される。データファイルはハードディスク、光磁気ディスク（ＭＯ）、磁気テープなどのデータ記憶媒体に記録され、コンピュータなどの情報処理装置において、必要なとき所望のデータファイルをデータ記憶媒体から読み出し、アプリケーションなどによって利用される。
【０００３】
これまでに種々のデータ記録媒体及びそれぞれのデータ記録媒体を管理するシステムが提案され、実用化されている。例えば、出願人が提唱しているＤＴＦ（Digital Tape Format）規格のテープを用いたデータ記録システムがその一例である。このＤＴＦテープのフォーマットでは、テープの先頭部（ヘッダ部）とテープに格納されているデータの最後部に、ファイルのサイズや位置情報などを記録することにより、高速なファイルアクセスを実現できる。
【０００４】
ＤＴＦ規格が適用しているシステムとして、ＰｅｔａＳｅｒｖｅ（ペタサーブ、出願人が提供しているソフトウェアの商品名、登録商標）がある。ペタサーブは、階層型ストレージマネージメント（ＨＳＭ：Hierarchical Storage Management）ソフトウェアであり、ストレージ（記録）システムをそれぞれの記録媒体の特性やデータ記憶容量によって階層化し、ユーザから見た使い易さを向上させながら大規模な記憶システムを合理的に管理できるソフトウェアである。ペタサーブは、ハードディスク、光磁気ディスク（ＭＯ）、磁気テープなどのデータ記憶媒体のそれぞれの特性とデータの使用状況に応じて、ユーザの設定に基づき自動的に記憶システムを管理する。
【０００５】
ペタサーブは、例えば、コンピュータのハードディスク上に存在するファイルをより経済的なリムーバブルメディア（ＤＴＦテープ、磁気テープなどの記憶媒体）に移動し、ハードディスクの見かけ上の記憶容量を大きく確保する。また、リムーバブルメディアに移動したファイルを利用する必要が生じた場合に、リムーバブルメディアに移動したファイルを再びコンピュータのハードディスクに復元する。ペタサーブでは、ハードディスク上のファイルをリムーバブルメディアにコピーし、ハードディスク上にある元のファイルを縮小することをマイグレーション（Migration）といい、マイグレーションされたファイルをハードディスク上に復元することをリロードという。
【０００６】
図７は、マイグレーション及びリロードを示す概念図である。図７において、１０は、ＣＰＵ（中央処理装置）１１、メモリ１２及びハードディスク１３を含むコンピュータ、２０は、リムーバブルメディアからなる記録媒体をそれぞれ示している。３０と４０は、それぞれマイグレーション及びリロード処理時のデータの流れを示している。マイグレーション処理により、ハードディスク１３にあるファイル１４がリムーバブルメディア２０にコピーされ、元のファイルにマイグレーションされたファイルに関する情報のみを残し、他の内容を切り捨てる。これによって、ハードディスク１３に格納されているファイル１４と同じ内容を有するファイル１４ａが記録媒体２０に記録され、ハードディスク１３においては、ファイル１４を格納する領域を他のアプリケーションに開放できる。ＣＰＵ１１などにより、ファイル１４の内容を利用したい場合、リロード処理により、記録媒体２０からハードディスク１３にファイル１４ａの内容をコピーし、ハードディスク１３上のファイル１４を元通りに復元するので、ＣＰＵ１１などは、復元したファイル１４に対して通常のファイルアクセスを行うことができる。
【０００７】
マイグレーション及びリロードは、ペタサーブにより自動的に行われるので、ユーザが特に意識する必要はなく、透過的な処理が実現できる。
【０００８】
【発明が解決しようとする課題】
しかし、上述したリロード処理においては、リムーバブルメディア２０にマイグレーションされたファイル１４ａをコンピュータのハードディスク１３に復元する場合、リムーバブルメディア２０からファイル１４ａの内容を読み出し、コンピュータ１０のハードディスク１３にそれを書き込む。その後、ＣＰＵ１１により、ハードディスク１３からファイル１４の内容を読み出し、メモリ１２に割り当てられた領域に格納する。このようにリロード処理にハードディスク１３が介在するため、ハードディスク１３の容量を圧迫するほか、ＣＰＵ１１から見たファイル１４に対するアクセス速度は、ハードディスクの書き込み・読み出し速度により制限され、システムのパフォーマンスが低下してしまうという不利益が生じる。
【０００９】
従って、本発明は、このような従来のシステムにおける問題点に鑑みてなされたものであり、マイグレーションされたファイルに対してアクセス要求が発生した場合、リムーバブルメディアなどの記憶媒体に記憶されているファイルから読み出したデータをハードディスクを経由せず、コンピュータなどのメモリに割り当てられた領域に直接書き込む（本発明の実施形態においては、これをＤＤＡ（Direct Device Access）処理と称している）ことにより、ハードディスクの容量を圧迫することなく、かつハードディスクのアクセス速度に依存せず、高速なファイルアクセルを実現できるデータ記録再生装置及びその方法を提供することを目的にとしている。
【００１０】
【課題を解決するための手段】
本発明のデータ記録再生装置は、メモリ、中央処理装置及び第１の記憶媒体を含み、上記第１の記憶媒体に、ファイル管理システムにより管理されるヘッダ領域、およびユーザデータを格納するユーザデータ領域を有するファイルを記録する情報処理装置と、当該情報処理装置の外部に設けられて、第２の記録媒体を有するサーバと、上記第１の記憶媒体に記憶されている上記ファイルを上記第２の記録媒体に転送するマイグレーション処理により、上記第２の記録媒体に、上記ユーザデータおよびビットファイルＩＤを有するビットファイルを記憶させ、上記第１の記憶媒体に、上記ファイルに換えて、ファイル管理システムにより管理されるヘッダ領域、および上記ビットファイルＩＤを格納するユーザデータ領域を有するスタブファイルを記録するマイグレーション処理手段と、ファイルオープンコマンドによりファイルをオープンするファイルオープン手段と、上記ファイルオープン手段によって上記ビットファイルＩＤが取得された場合に、上記サーバとの結合を確立する手段と、上記サーバとの結合状態において、上記ビットファイルＩＤを含む上記ビットファイルをオープンする手段と、上記オープンした上記ビットファイルから上記ユーザデータを読み出し、上記情報処理装置の上記メモリに格納する読み出し手段とを有する。
【００１１】
また、本発明では、好適には、上記情報処理装置は、コンピュータであり、上記第１の記録媒体は、ハードディスクで、上記第２の記録媒体は、リムーバブルメディアである。
【００１２】
また、本発明では、好適には、上記情報処理装置は、上記第１の記録媒体上に記録されている複数のファイルに対して、所定の基準に基づきマイグレーション処理の優先度を決定し、最も優先度の高いファイルからマイグレーション処理を自動的に行い、上記第１の記録媒体に記録されているファイルは、ファイル管理情報を記録する情報領域とデータを記録するデータ領域とを有し、上記マイグレーション処理により、上記データ領域の全てのデータが上記第２の記録媒体に転送され、上記第１の記録媒体に上記情報ファイルが生成される。
【００１３】
さらに、本発明では、好適には、上記スタブファイルが生成されたあと、上記ファイルを格納する領域が開放される。また、上記読み出し手段は、アプリケーションのために割り当てられたメモリ領域に直接格納する。さらに、上記データ読み出し終了後、上記オープン手段によりオープンしたファイルをクローズするファイルクローズ手段を有する。また、上記スタブファイルは、上記マイグレーション処理前に上記第１記録媒体にある上記ファイルのサイズ情報、または上記ユーザデータ領域の先頭の１ブロックを含む。
【００１４】
また、本発明のデータ記録再生方法は、メモリ、中央処理装置及び第１の記憶媒体を含む情報処理装置の上記第１の記憶媒体に記憶されて、ファイル管理システムにより管理されるヘッダ領域、およびユーザデータを格納するユーザデータ領域を有するファイルを、当該情報処理装置の外部に設けられたサーバの第２の記録媒体に転送するマイグレーション処理により、上記第２の記録媒体に、上記ユーザデータおよびビットファイルＩＤを有するビットファイルを記憶させ、上記第１の記憶媒体に、上記ファイルに換えて、ファイル管理システムにより管理されるヘッダ領域、および上記ビットファイルＩＤを格納するユーザデータ領域を有するスタブファイルを記録させるマイグレーションステップと、ファイルオープンコマンドによりファイルをオープンするファイルオープンステップと、上記ファイルオープンステップによって上記ビットファイルＩＤが取得された場合に、上記サーバとの結合を確立するステップと、上記サーバとの結合状態において、上記ビットファイルＩＤを含む上記ビットファイルをオープンするステップと、上記オープンした上記ビットファイルから上記ユーザデータを読み出し、上記情報処理装置の上記メモリに格納する読み出しステップとを有する。
【００１５】
【発明の効果】
本発明では、ハードディスクの容量を圧迫することなく、かつハードディスクのアクセス速度に依存せず、高速なファイルアクセルを実現できる。
【００１６】
【発明の実施の形態】
本発明のデータ記録再生装置の一実施形態を図１に示すブロック図を参照して説明する。本実施形態のデータ記録装置は、ＣＰＵ１１、メモリ１２、ハードディスク１３を含む情報処理装置、例えば、コンピュータ１０と、コンピュータ１０の外部に設けられているデータ記録媒体２０を有する。データ記録媒体２０は、例えば、ＤＴＦテープ、磁気テープなどのリムーバブルメディアによって構成されている。
【００１７】
本実施形態のデータ記録再生装置において、ＣＰＵ１１は制御プログラムに基づいて動作し、メモリ１２、ハードディスク１３などの周辺装置を制御する。データ記憶装置は、それぞれの記憶媒体の特性とデータの使用状況、例えば、使用頻度、記憶後から利用されるまでの経過時間、転送・検索速度などに応じて、ユーザが設定したパラメータに基づき、ハードディスク１３上のファイルを自動的に管理し、最大の記録及び運用効率を実現する。例えば、ハードディスク１３に記録されている複数のファイルの内、使用頻度など所定の条件に基づいてマイグレーションの優先順位を決定する。そして、最も優先順位の高いファイル、例えば、使用頻度の最も低いファイルからマイグレーション処理を行う。ここで、例えば、図１に示すように、ハードディスク１３用のファイル１４をマイグレーションの対象ファイルとし、ファイル１４をハードディスク１３から外部記録媒体２０に転送するマイグレーション処理を行う。
【００１８】
本実施形態のデータ記憶再生装置におけるマイグレーション処理は、前述したペタサーブにおけるマイグレーション処理と同じである。まず、マイグレーションの対象となるファイル１４の内容が、外部記録媒体２０にコピーされる。これによって、外部記録媒体２０にファイル１４と同じ内容のファイル１４ａが生成される。そして、ハードディスク１３には、ファイル１４のアクセス情報などを記録するスタブファイルが生成される。当該スタブファイルは、ファイル１４のアクセス情報、例えば、ビットファイルＩＤ、ファイルサイズなどを記録しており、実際の内容を保持していないので、そのサイズが元のファイル１４に比べて遙に小さくなる。このため、ハードディスク１３に元のファイル１４の記憶領域が他のアプリケーションに開放され、ハードディスク１３の使用可能容量が拡大される。
【００１９】
図２Ａ、２Ｃは、ハードディスク１３に記録されている元のファイル及びスタブファイルの概念をそれぞれ示している。
【００２０】
図２Ａに示すように、ハードディスク上に記録されているファイルは、ｉノード（ｉ−ｎｏｄｅ）からなるヘッダ領域とユーザデータを格納するユーザデータ領域により構成されている。ｉノードはバイト単位に形成され、ファイル管理システムにより管理され、ファイルに関する必要な情報を保持している。ユーザデータ領域においては、ユーザデータがブロック単位（例えば、５１２バイト単位）に分割されて、格納されている。
【００２１】
図２Ｂに示すように、ビットファイル（bit file）は、マイグレーションされる元のファイルのユーザデータ領域とビットファイルＩＤにより構成されている。なお、ビットファイルＩＤは、マイグレーション時に作成されるシステム内で一意のＩＤである。ビットファイルＩＤにより、スタブファイルからビットファイルが結び付けられる。
【００２２】
図２Ｃに示すように、スタブファイルは、ｉノード、ユーザデータ領域の先頭の１ブロック、ビットファイルＩＤ、マイグレーション前のファイルの論理サイズ（バイトと、ブロック単位両方）及びスタブファイルＩＤにより構成されている。スタブファイルのサイズは固定となり、例えば、１０２３バイトに設定されている。
【００２３】
マイグレーションにより、ビットファイルが外部記憶媒体に形成され、ハードディスクにはスタブファイルのみが残されている。ユーザは、ハードディスク上に残されたスタブファイルを介して、マイグレーションされたファイルへのアクセスを透過的に検索、復元させることができる。即ち、マイグレーションされたファイルであってもユーザからは、ハードディスク上に元のファイルが存在するかのように見える。
【００２４】
本実施形態のデータ記録再生装置は、ＭＦＳ（Migrating File System）により、ファイルのマイグレーション及びＤＤＡ処理を制御する。なお、ここでいうＭＦＳは、例えば、演算処理装置及び当該演算処理装置にロードされている制御プログラムにより構成されている。また、ＭＦＳの機能がインストールされているクライアントをＭＦＳクライアントという。
【００２５】
図３は、マイグレーション及びＤＤＡ処理の動作を示す図である。図３では、１００はＭＦＳクライアント、１１０はデータムーバ（ｄｍ）、１２０はビットファイルサーバ（ｂｆｓｄ）、１３０はストレージサーバ（ｓｔｓｄ）、１４０はリムーバブルメディアサーバ（ＲＭＳ：Removable Media Server）、１５０はリムーバブルメディア、１６０はストアデータベースをそれぞれ示している。図示のように、リムーバブルメディアサーバ１４０は、ボリュームサーバ１４２とライブラリサーバ１４４を含む。
【００２６】
ＭＦＳクライアント１００は、マイグレーションまたはＤＤＡ処理の要求を発生し、データムーバ１１０及びビットファイルサーバ１２０にそれぞれ出力する。また、ＭＦＳクライアント１００は、データ移動するために使うＴＣＰストリームソケットポート（データ入出力するためのインターフェース）番号をデータムーバ１１０及びビットファイルサーバ１２０にそれぞれ提供する。
【００２７】
ビットファイルサーバ１２０は、ＭＦＳクライアント１００からのマイグレーション及びＤＤＡ処理の要求を受けて、これに対しビットファイルＩＤを割り当てて、また、ストレージサーバ１３０及びリムーバブルメディアサーバ１４０にあるボリュームサーバ１４２を選択する。ビットファイルサーバ１２０は、リムーバブルメディア１５０に記憶されている全てのビットファイルの配置、情報（マイグレーションパスなど）をストアデータベースを通じて管理し、ストレージサーバ１３０に必要な指示を出力する。
【００２８】
ストレージサーバ１３０は、指定されるビットファイルをどのようにストア（保存）するかを決定する。要求されているビットファイルに対するストアの処理のために、適切なボリュームセットを決定する。ここで、ボリュームとは、物理記録装置の１つの単位であり、例えば、テープ装置ならば、そのテープの一本であり、全ての面を同時にアクセスすることができない装置（例えば、光ディスク装置）ならばその一面である。ボリュームセットは、同じ種類のメディアの集合をいう。ストレージサーバ１３０は、ボリュームのマウントやディスクのマウントのための要求をリムーバブルメディアサーバ１４０に出力し、またデータムーバ１１０を起動する。
【００２９】
データムーバ１１０は、ＭＦＳクライアント１００によって提供されるＳＴＣストリームソケットポートを使って、ＭＦＳクライアント１００からリムーバブルメディア１５０まで（あるいはその逆）、実際にデータの移動を実行する。データの移動が要求されたボリュームがマウントされたとき、ストレージサーバ１３０がリムーバブルメディアサーバ１４０からマウント情報を受け、データムーバ１１０が起動される。
【００３０】
リムーバブルメディアサーバ１４０は、リムーバブルメディア１５０にある全てのボリュームを管理し、適当なボリュームに対してマウント、アンマウントの要求を行う。また、リムーバブルメディアサーバ１４０は、クライアントへのボリュームの割り当てと開放、クライアントへのボリュームの予約と解除を行う。
ストアデータベース１６０は、ビットファイルサーバ１２０により管理されているデータベース（ファイル）である。ストアデータベース１６０に、ストアに存在する全てのビットファイルの情報が記録されている。これらのビットファイル情報は、マイグレーション、ＤＤＡ処理が実行されるたびに更新される。
【００３１】
以下、図３を参照しながら、本実施形態におけるマイグレーション及びＤＤＡ処理の流れを説明する。
【００３２】
マイグレーションのとき、ＭＦＳクライアント１００からハードディスク上の所定のファイルに対してマイグレーション処理を行う指示信号Ｓ１００がビットファイルサーバ１２０に出力される。また、ＭＦＳクライアント１００からデータ移動のために使用するＴＣＰストリームソケットポート番号Ｓ１０１がデータムーバ１１０に出力される。
【００３３】
ビットファイルサーバ１２０によって、ボリュームサーバ１４２とストレージサーバ１３０が選択される。さらに、ＭＦＳクライアント１００からの提供された情報、特にストアされたファイルに割り当てられたマイグレーションパス、ファイルのサイズなどの情報を元に、使用するボリュームサーバ及びボリュームが決められる。そして、ビットファイルサーバ１２０によってストアデータベース１６０が更新される。ここで、ビットファイルサーバ１２０がストレージサーバ１３０により呼ばれたとき、新しいビットファイルにビットファイルＩＤを割り当て、ストアデータベース１６０のビットファイルテーブルに追加される。さらに、選択されたボリュームの使用状況がストアデータベース１６０に記録される。ビットファイルサーバ１２０により、ＭＦＳクライアント１００にマイグレーションされるビットファイルのＩＤを示す信号Ｓ１２０が返される。
【００３４】
次に、ストレージサーバ１３０から選択されたボリュームをマウントするためのマウント要求Ｓ１３０がリムーバブルメディアサーバ１４０にあるボリュームサーバ１４２に出力される。このため、ストレージサーバ１３０は、ボリュームサーバ１４２に接続される。
【００３５】
選択されたボリュームがすでにマウントされた状態にあるとき、ボリュームサーバ１４２からストレージサーバ１３０にその状態を示す信号Ｓ１４０が出力される。ストレージサーバ１３０は、ボリュームサーバ１４２から選択ボリュームがマウントされている情報を受けると、データムーバ１１０に起動信号Ｓ１３２を出力する。さらに、ストレージサーバ１３０によって、クライアントのソケット番号、ビットファイルＩＤ、マウントポイントなどの情報がデータムーバ１１０に提供される。
【００３６】
データムーバ１１０は、選択されたボリュームにファイルを生成し、ＭＦＳクライアント１００に接続してデータを移動させる。ＭＦＳクライアント１００は、ハードディスク上のファイルからデータを読み出してソケットポートに書き込み、データムーバ１１０は、ソケットポートからデータを読み出してボリュームに生成したファイルに書き込む。
【００３７】
以上説明した動作により、ＭＦＳクライアント１００のハードディスク上のファイルがマイグレーション処理され、選択されたボリュームにビットファイルが形成される。ＭＦＳクライアント１００のハードディスクにスタブファイルが記録され、元のファイルのデータ領域が開放される。
【００３８】
ＤＤＡ処理は、マイグレーション処理の逆である。本実施形態のＤＤＡ処理においては、指定されたビットファイルの内容をＭＦＳクライアント１００のハードディスクを経由することなく、クライアントにアプリケーションのために割り当てられたメモリ領域に直接格納される。図４〜６は、ＤＤＡ処理時のファイルオープン、データ読み出し及びファイルクローズのそれぞれの流れを示すフローチャートである。以下、これらのフローチャートを参照しながら、ＤＤＡ処理について詳細に説明する。
【００３９】
ＤＤＡ処理は、あるアプリケーションによってスタブファイルに対してアクセス要求が出されたなどのときに実行される。例えば、スタブファイルに対して、５１２バイト以上のファイルのデータ部分を読むとき、ファイルに書き込みが起こるときまたはファイルのサイズに変化があるときＤＤＡ処理が実行される。この場合、スタブファイルへのアクセスを要求するアプリケーションによって、メモリ上に所定の領域が割り当てられ、アクセスするファイルから読み出されるデータが当該割り当て領域に格納される。
【００４０】
図４は、ファイルオープンの手順を示すフローチャートである。ＭＦＳクライアント１００において、アプリケーションなどからのファイルオープンコマンドdda＿open（path,oflag,mode）に応じてファイルオープンが始まる。この処理により、ファイルオープンコマンドに従って、“ｐａｔｈ”で指定したパス名を持つファイルのビットファイル記述子がオープンフラグ“ｏｆｌａｇ”に従ってオープンされる。なお、図４において、“ｍｏｄｅ”はオープンされるファイルのモードを示している。
【００４１】
まず、ステップＳ１に示すように、“ｐａｔｈ”のファイル情報が取得され、そのファイルは指定されたマイグレーティングシステム上に存在しないファイルの場合に、エラーコードがセットされ、“−１”の値を返してファイルオープン処理が終了する（ステップＳ１２）。
【００４２】
次いで、ステップＳ２に示すように、“ｐａｔｈ”により指定されたファイルは、指定されたマイグレーティングシステム上に存在すると確認された場合、マイグレーティングシステム上のファイルの状態が取得され、そのファイルがスタブファイルかシャドウドファイルかの確認が行われる。ＭＦＳ上のファイルの状態が取得できない場合に、エラーコードがセットされ、“−１”の値を返して処理が終了する。なお、ここで、シャドウドファイルとは、ＭＦＳクライアントにおいてハードディスクにファイルが存在し、かつ所定のボリューム上にマイグレーションされた同じ内容のファイルが存在するような状態のファイルである。
【００４３】
そして、ステップＳ３に示すように、“ｐａｔｈ”により指定されたファイルがオープンされる。ここで、指定されたファイルをオープンできない場合に、エラーコードがセットし、“−１”の値を返して処理が終了する。
【００４４】
次に、ステップＳ４に示すように、ビットファイル情報が取得され、そのメディアファミリーがＤＴＦフォーマットの磁気テープであるかの確認が行われる。メディアファミリーがＤＴＦフォーマットの磁気テープでない場合は、エラーコードがセットされ、“−１”の値を返して処理が終了する。
【００４５】
次いで、ステップＳ５に示すように、ボリュームサーバーとの結合が確立され、この結合に結び付けられたビットファイルの記述子が返される。ここで、ボリュームサーバーとの結合ができない場合には、エラーコードがセットされ、“−１”の値を返して処理が終了する。
【００４６】
ステップＳ６は、その前のステップＳ５によって返されたビットファイル記述子に結び付けられるボリュームサーバーから特定のボリュームと空きドライバーの予約が行われる。空きドライバーの予約に失敗した場合は、エラーコードがセットされ、“−１”を返して処理が終了する。
【００４７】
次いで、ステップＳ７においては、予約されたボリューム、ここではＤＴＦフォーマットの磁気テープが予約されたドライバーにマウントされる。マウントに失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００４８】
ステップＳ７においてテープのマウントに成功したあと、ステップＳ８に示すように、ドライバーにマウントされたボリュームがビットファイル記述子に対応するリードポジションまでロケート（配置）される。なお、ここで、リードポジションへのロケートが失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００４９】
そして、ステップＳ９に示すように、ビットファイル記述子に対応したリードポジションから、テープバッファへ規定のテープバッファサイズ分だけをリードする。リードに失敗した場合に、上述した各ステップと同様に、エラーコードがセットされ、“−１”を返して処理が終了する。テープバッファは、例えば、リムーバブルメディアサーバにより提供され、テープからの読み出しは、全てテープバッファを通して行われる。
【００５０】
ステップＳ１０において、テープバッファの先頭にあるヘッダ情報が取得される。ここで、ヘッダ情報を取得できない場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００５１】
最後に、上述した一連の処理がすべて正常に終了した場合、ステップＳ１１に示すように、“ｐａｔｈ”により指定されたビットファイルをオープンしたファイル記述子（ｆｄ）が返され、処理が終了する。
【００５２】
上述したステップＳ１〜Ｓ１１までの処理によって、“ｐａｔｈ”で指定されたファイルのファイル記述子が確定される。その後、当該ファイル記述子に応じて、指定されたファイルからデータの読み出しが行われる。
【００５３】
図５は、指定ファイルからデータの読み出しを行う場合の動作手順を示すフローチャートである。ファイルの読み出しは、上述したファイルオープンによって得られたビットファイル記述子“ｆｄ”に対応するビットファイルからｎバイト分のデータを“ｂｕｆ”で指定されているバッファ（以下、これをユーザバッファと表記する）に読み取る。ただし、ここで、ｎバイトは最大１メガバイト（Ｍｂｙｔｅ）として、ｎ＝０の場合には“０”を返して結果は生じない。
【００５４】
以下、図５を参照しつつ、ファイルの読み出しの動作について説明する。
【００５５】
まず、ステップＳＲ１に示すように、読み出しの指定サイズｎバイトは、１メガバイト以下であるかの確認が行われる。その結果、指定サイズのｎバイトは、１メガバイト以上の場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００５６】
次に、ステップＳＲ２において、指定されたビットファイル記述子“ｆｄ”が上述したファイルオープンにより得られたビットファイル記述子であるか否かの確認が行われる。ビットファイル記述子“ｆｄ”がファイルオープンで得られたビットファイル記述子でない場合には、エラーコードがセットされ、“−１”を返して処理が終了する。
【００５７】
次いで、ステップＳＲ３に示すように、上述したファイルオープンで読み込んだテープバッファの先頭にあるヘッダ部分がスキップされ、実データの先頭にポインタが移動される。また、ユーザバッファにメモリコピーのサイズが確認される。ここで、メモリコピーのサイズは、テープバッファにリードされている実データがｎバイトより大きい場合はｎバイト、ｎバイトより小さい場合はその実データのサイズを設定し、次のステップＳＲ４に処理を進める。
【００５８】
ステップＳＲ４において、ビットファイル記述子“ｆｄ”に対応するビットファイルがスパニングされているビットファイルであるかの確認が行われる。当該ビットファイルがスパニングされていない場合に、ステップＳＲ１０に進み、ユーザバッファにステップＳＲ３で設定されたサイズ分だけがメモリコピーされ、ステップＳＲ７に進む。なお、ここで、スパニングとは、２つのボリュームに分割して記録されているビットファイルのことをいう。
【００５９】
ステップＳＲ４において、ビットファイル記述子“ｆｄ”に対応するビットファイルがスパニングされていると確認されたとき、ステップＳＲ５の処理に進み、ユーザバッファにステップＳＲ３で設定されたサイズ分だけメモリコピーを行ったあと、必要であれば、次のボリュームを準備し、テープバッファにリードされる。ここで、この処理に失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００６０】
ステップＳＲ５の処理が正常に実行された場合に、ステップＳＲ６に進み、ユーザバッファに未コピーの残りデータがある場合は、そのバイト分だけテープバッファからユーザバッファにコピーされる。
【００６１】
図５に示すように、ステップＳＲ６またはステップＳＲ１０の何れかの処理が行われたあと、ステップＳＲ７に示す処理が実行される。ステップＳＲ７において、ビットファイルのヘッダなどを除いた実データサイズが、ユーザバッファへメモリコピーをした合計のサイズより小さい場合は、そのサイズが返され、処理が終了する（ステップＳＲ１１）。実データサイズが、ユーザバッファへのメモリコピーをした合計サイズより大きい場合は、ステップＳＲ８に進む。
【００６２】
ステップＳＲ８において、データバッファに未コピーのデータがあるか否かの確認が行われ、データバッファに未コピーのデータがある場合に、即ち、データバッファに実データが残っている場合は、ユーザバッファに残りのデータのサイズ分だけメモリコピーが行われる。データバッファに未コピーのデータがない場合には、ステップＳＲ９の処理に進む。
【００６３】
ステップＳＲ９において、ボリュームからテープバッファへのリードが行される。この処理に失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。逆に、テープバッファへのリードが成功した場合には、ステップＳＲ４に戻り処理を繰り返す。
【００６４】
上述した一連の処理がすべて成功した場合に、実際に読み取ったデータのバイト数を示す負でない整数が返される。このバイト数が、ビットファイル内に残されたバイト数がｎバイトより少ない場合は少なくなり、ファイルの終わりであった場合に、“０”となる。即ち、データ読み出しの結果、“０”が返されたとき、ファイルにあるすべての実データが読み出されたことが示される。これに応じて、ビットファイルからのデータ読み出しが終了する。
【００６５】
読み出し終了後、ファイルのクローズが行われる。図６は、ファイルクローズの手順を示している。以下、図６を参照しつつ、それについて説明する。
【００６６】
ファイルクローズにおいて、“ｆｄ”により指定されたビットファイル記述子に対応するビットファイルがクローズされる。なお、ここで、“ｆｄ”は上述したファイルオープンによって得られたビットファイル記述子である。
【００６７】
まず、ステップＳＣ１に示すように、指定されたビットファイル記述子“ｆｄ”が上述したファイルオープンにより得られたビットファイル記述子であるか否かの確認が行われる。ビットファイル記述子“ｆｄ”がファイルオープンで得られたビットファイル記述子でない場合には、エラーコードがセットされ、“−１”を返して処理が終了する。また、ステップＳＣ２，ＳＣ３の処理がスキップされ、ステップＳＣ４の処理が実行される。
【００６８】
一方、ビットファイル記述子“ｆｄ”がファイルオープンで得られたビットファイル記述子である場合に、次のステップＳＣ２に進む。
【００６９】
ステップＳＣ２において、ファイルオープンで予約した特定のボリュームと空きドライバーが解除される。これによって、予約されたボリュームおよびドライバーが開放され、他の処理によって利用可能となる。ここで、予約したボリュームおよび空きドライバーの解除に失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００７０】
ステップＳＣ２の処理が正常に行われたあと、ステップＳＣ３が実行される。この処理によりファイルオープンで結合したボリュームサーバーが解除される。ここで、この解除に失敗した場合は、エラーコードがセットされ、“−１”を返して処理が終了する。
【００７１】
ステップＳＣ３においてボリュームの解除が成功した場合に、ステップＳＣ４に進み、ファイルオープンで指定された“ｐａｔｈ”がクローズされる。“ｐａｔｈ”のクローズに失敗した場合に、エラーコードがセットされ、“−１”を返して処理が終了する。
【００７２】
ステップＳＣ４における“ｐａｔｈ”のクローズが正常に実行された場合に、次のステップＳＣ５において、デバイス（予約したドライバー）がクローズされる。ここで、上述した各ステップの処理と同様に、クローズに失敗した場合は、エラーコードがセットされ、“−１”を返して処理が終了する。
【００７３】
上述した一連の処理が正常に終了した場合に、“０”を返して処理が終了し（ステップＳＣ６）、正常終了でない場合には、“−１”が返されるので、アプリケーションにより、ファイルクローズからの戻り値によって、ファイルクローズが正常に終了したか否かを判断することができる。
【００７４】
以上説明したように、本発明のデータ記録再生装置及びその方法によれば、マイグレーションされたファイルをＤＤＡ処理する場合、記録媒体、例えば、磁気テープ上に記録されているビットファイルの内容が読み出されたあと、ハードディスクを経由することなく、アプリケーションに割り当てられたメモリに直接書き込まれる。このため、ハードディスクの容量を圧迫することを回避でき、さらに、ハードディスクの書き込み速度に依存せず高速なファイルアクセスを実現可能である。
【００７５】
本発明のデータ記録再生装置及びその方法は、コンピュータ、または複数のコンピュータからなるコンピュータネットワーク、特に大容量なデータを取り扱う大規模な情報処理システムに適用することができる。
【図面の簡単な説明】
【図１】図１は、本発明のデータ記録再生装置の一実施形態を示すブロックであり、当該データ記録再生装置の構成及びマイグレーション、ＤＤＡ処理時のデータの流れを示す図である。
【図２】図２Ａは、本実施形態における通常のファイルの構成を示す図であり、図２Ｂは、本実施形態におけるビットファイルの構成を示す図であり、図２Ｃは、本実施形態におけるスタブファイル（stub file）の構成を示す図である。
【図３】図３は、マイグレーション及びＤＤＡ処理の流れを示す図である。
【図４】図４は、ＤＤＡ処理におけるファイルオープンの処理手順を示すフローチャートである。
【図５】図５は、ＤＤＡ処理におけるデータ読み出しの処理手順を示すフローチャートである。
【図６】図６は、ＤＤＡ処理におけるファイルクローズの処理手順を示すフローチャートである。
【図７】図７は、従来のデータ記録生成装置の構成及びそのマイグレーション及びリロード処理時のデータの流れを示す図である。
【符号の説明】
１０…コンピュータ、１１…ＣＰＵ、１２…メモリ、１３…ハードディスク、１４，１４ａ…ファイル、２０…記録媒体、３０…マイグレーション処理時のデータの流れ、４０…リロード処理時のデータの流れ、５０…ＤＤＡ処理時のデータの流れ、１００…ＭＦＳクライアント、１１０…データムーバ、１２０…ビットファイルサーバ、１３０…ストレージサーバ、１４０…リムーバブルメディアサーバ、１５０…リムーバブルメディア、１６０…ストアデータベース
【図１】
0004292331.tif 000002
【図２】
0004292331.tif 000003
【図３】
0004292331.tif 000004
【図４】
0004292331.tif 000005
【図５】
0004292331.tif 000006
【図６】
0004292331.tif 000007
【図７】
0004292331.tif 000008
0004292331.tif 000009