(57)【要約】【課題】本発明は、アクセス対象となるファイルの内容の更新を伴わない二次記憶への書き込み処理を排除して処理性能の向上を図ったコンピュータシステムおよびデータ構造書き込み制御方法を提供することを課題とする。【解決手段】ファイル内容の更新（データ更新）を伴わないファイル参照（リード要求）時のファイルアクセスに関しては、そのファイルのｉノードをディスク装置３０に書き込む処理が実行されず（書き込み要求が発生せず）、カーネル空間１１上で「ｉノードの最終アクセス時刻」が更新されｉノードが管理される。【選択図】    図１
2005063139.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置と、
二次記憶装置と、
前記二次記憶装置上のファイルの参照に伴い、当該ファイルのデータに対応する属性情報を前記主記憶装置に記憶し管理する属性情報管理手段と、
前記ファイルの参照に伴って前記主記憶装置に記憶した前記属性情報を更新する属性情報更新手段と
を具備したことを特徴とするコンピュータシステム。
【請求項２】
前記属性情報管理手段は、前記二次記憶装置上のファイルの属性情報を前記主記憶装置のカーネル空間に設けた特定の領域上で管理する請求項１記載のコンピュータシステム。
【請求項３】
前記属性情報更新手段は、前記二次記憶装置上のファイル参照の都度、当該ファイルに対応する属性情報を前記特定の領域より読み出して更新する請求項２記載のコンピュータシステム。
【請求項４】
前記属性情報更新手段は、前記二次記憶装置上のファイル参照の都度、当該ファイルに対応する属性情報を前記特定の領域より取得し、取得した属性情報に含まれる最終アクセス時刻を現在時刻に更新する請求項２記載のコンピュータシステム。
【請求項５】
前記属性情報更新手段は、
前記二次記憶装置上のファイルの参照に伴い、当該ファイルに対応する属性情報が前記カーネル空間に設けた特定の領域に存在するか否かを判断する手段と、
前記判断の結果、前記属性情報が前記カーネル空間に設けた特定の領域に存在するとき、当該ファイルの属性情報を前記特定の領域より取得して、取得した属性情報の最終アクセス時刻を現在時刻に更新する手段と、
前記判断の結果、前記属性情報が前記カーネル空間に設けた特定の領域に存在しないとき、当該ファイルの属性情報を前記特定の領域に書き込んで、当該属性情報の最終アクセス時刻を現在時刻に更新する手段と
を具備する請求項２記載のコンピュータシステム。
【請求項６】
前記属性情報管理手段は、
前記カーネル空間上に、前記属性情報を遅延書き込みするための遅延書き込みリストを設定する手段と、
前記設定した遅延書き込みリスト上で前記属性情報を管理する手段とを具備し、
前記属性情報更新手段は、
アプリケーションプログラムのファイル読み出し要求に従うファイルの属性情報が前記遅延書き込みリストに存在するか否かを判断する処理手段と、
前記属性情報が前記遅延書き込みリストに存在するとき、前記遅延書き込みリスト上で前記属性情報の最終アクセス時刻を更新し、前記属性情報が前記遅延書き込みリストに存在しないとき、前記ファイル読み出し要求に従うファイルの属性情報を前記遅延書き込みリストに追加して当該属性情報の最終アクセス時刻を更新する処理手段と
を具備することを特徴とする請求項６記載のコンピュータシステム。
【請求項７】
前記属性情報更新手段は、前記二次記憶装置へのファイル読み出し要求が発生した際に、前記二次記憶装置上のファイルの参照に伴う更新処理を実行し、
前記属性情報書き込み処理手段は、前記二次記憶装置へのファイル書き込み要求が発生した際に、前記更新後の属性情報を前記二次記憶装置に書き込む処理を実行する請求項１記載のコンピュータシステム。
【請求項８】
前記二次記憶装置上のファイルのデータを更新するファイルアクセスに伴い、当該ファイルに対応する前記属性情報を更新し、更新後の属性情報を前記更新されたデータとともに前記二次記憶装置に書き込む属性情報書き込み処理手段とをさらに具備した請求項１記載のコンピュータシステム。
【請求項９】
ファイルを管理するシステムとしてコンピュータを機能させるためのプログラムであって、
二次記憶装置上のファイルの参照に伴い、当該ファイルのデータに対応する属性情報を主記憶装置に記憶し管理する属性情報管理機能と、
前記ファイルの参照に伴って前記主記憶装置に記憶した前記属性情報を更新する属性情報更新機能と
をコンピュータに実現させるためのプログラム。
【請求項１０】
前記属性情報管理機能は、前記二次記憶装置上のファイルの属性情報を前記主記憶装置のカーネル空間に設けた特定の領域上で管理する請求項９記載のプログラム。
【請求項１１】
前記属性情報更新機能は、前記二次記憶装置上のファイル参照の都度、当該ファイルに対応する属性情報を前記特定の領域より読み出して更新する請求項１０記載のプログラム。
【請求項１２】
前記属性情報更新機能は、前記二次記憶装置上のファイル参照の都度、当該ファイルに対応する属性情報を前記特定の領域より取得し、取得した属性情報に含まれる最終アクセス時刻を現在時刻に更新する請求項１１記載のプログラム。
【請求項１３】
前記属性情報更新機能は、
前記二次記憶装置上のファイルの参照に伴い、当該ファイルに対応する属性情報が前記カーネル空間に設けた特定の領域に存在するか否かを判断する機能と、
前記判断の結果、前記属性情報が前記カーネル空間に設けた特定の領域に存在するとき、当該ファイルの属性情報を前記特定の領域より取得して、取得した属性情報の最終アクセス時刻を現在時刻に更新する機能と、
前記判断の結果、前記属性情報が前記カーネル空間に設けた特定の領域に存在しないとき、当該ファイルの属性情報を前記特定の領域に書き込んで、当該属性情報の最終アクセス時刻を現在時刻に更新する機能とをもつ請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばジャーナリングファイルシステム、ストレージエリアネットワーク、入出力コントローラ等に適用して好適なコンピュータシステムおよびプログラムに関する。
【背景技術】
【０００２】
二次記憶（ディスク装置）上のファイルを対象にファイルの管理を行うコンピュータシステムに於いては、ファイルを効率よく高い信頼性を維持して管理するための種々の提案がなされている（例えば特許文献１参照）。この種のコンピュータシステムに於いては、ファイルのアクセス並びに更新に伴いファイルを保存し管理している二次記憶へのデータ構造並びにデータの書き込み処理が伴う。データベース等のアプリケーションでは、アクセスタイムを管理しているため、アクセスタイムが更新される度に、データ、ジャーナルデータ、ディスク装置上のデータ構造等について書き込み要求が発生している。特に、ジャーナルデータの書き込み処理が伴うジャーナルファイルシステムに於いては、アプリケーションプログラムからファイルのアクセスタイム更新要求があった場合、その都度、カーネルメモリ上に配置されている、ファイルを記述するディスク装置上のデータ構造（ｉノード）について、そのアクセスタイムの情報を更新し、ジャーナルデータとともにディスク装置へ書き込む処理が実施される（例えば非特許文献１参照）。従って、頻繁にファイルのアクセス時間を更新するアプリケーションプログラムが動作するシステムに於いては、ジャーナルデータやユーザデータの更新処理に伴う書き込み要求以外の書き込み要求が頻繁に発生し、システムの性能劣化を招いていた。
【特許文献１】特開２０００−３５３１１５号公報
【非特許文献１】“The Episode File Systems”by S. Chutani et al.,Proceedings of the USENIX Winter 1992 Technical Conference,pp.43-60, Jun 1992.
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したように、従来では、ファイル（データ）の内容更新を伴わない二次記憶（ディスク装置）上のファイルアクセスに対しても二次記憶への書き込み処理が介在し、システム性能に影響を及ぼすという問題があった。
【０００４】
本発明は、アクセス対象となるファイルの内容の更新を伴わない二次記憶への書き込み処理を排除して処理性能の向上を図ったコンピュータシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、アプリケーションプログラムの変更はしないで、アプリケーションプログラムからのファイルのアクセスタイム更新要求の書き込み処理を、カーネルメモリ上にキャッシュすることで実現し、ジャーナルデータのフラッシュ間隔時にアクセスタイムの更新要求があったディスク装置上のデータ構造を遅延書き込みすることで、不必要な書き込み要求を実行せず、コンピュータシステムの性能を向上させたことを特徴とする。
【発明の効果】
【０００６】
アクセス対象となるファイルの内容の更新を伴わない二次記憶への書き込み処理を排除して処理性能の向上を図ることができる。
【０００７】
また、ジャーナルファイルシステムに於いて、アプリケーションプログラムからのファイルアクセスに伴うファイルアクセス時間の更新処理によるディスク装置への書き込み要求を遅延書き込みする際に、ジャーナルファイルシステムが管理するメタデータ、データ等に矛盾が発生せず、ファイルのファイルアクセス時間の変更要求を遅延書き込みすることができる。更にアプリケーションプログラムとジャーナルファイルシステムとのインターフェースは一切変更しないため、アプリケーションプログラムの変更が不要である。
【発明を実施するための最良の形態】
【０００８】
以下図面を参照して本発明の実施形態を説明する。尚、この実施形態では、ジャーナルファイルシステムを例に採って説明を行うが、ジャーナルファイルシステムに限らず、ストレージエリアネットワーク、入出力コントローラ等、ファイルのアクセスに伴うデータ構造の管理機能をもつ各種のコンピュータシステムに於いて実施可能である。
【０００９】
図１は本発明の実施形態に係るコンピュータシステムの要部の構成を示したもので、主記憶となるメモリ１０、二次記憶となるディスク装置（ＤＩＳＫ）３０、ディスク装置３０へのファイルアクセスを行うＣＰＵ２０，２０，…等により構成される。
【００１０】
メモリ１０上のカーネル空間１１には、オペレーティングシステム（ＯＳ）１３が常駐し、当該オペレーティングシステム１３の管理下にある所定の領域には、ファイルアクセス時に於ける当該ファイルの属性情報（ここではｉノードとする）を一時的に保存管理する遅延書き込みリスト１４が設けられる。メモリ１０上のユーザ空間１２にはアプリケーションプログラム、処理データ等が格納される。
【００１１】
図２に上記図１に示すコンピュータシステムのソフトウェア構成を示している。  
上記メモリ１０上のユーザ空間１２には、ディスク装置３０へファイルアクセスを行うアプリケーションプログラム１２１が格納される。上記メモリ１０上のカーネル空間１１には、オペレーティングシステム１３の管理の下に、仮想ファイルシステム（ＶＦＳ）１１１、ジャーナルファイルシステム１１２、デバイスドライバ１１３等が格納される。
【００１２】
仮想ファイルシステム１１１は、アプリケーションプログラム１２１からの入出力要求を受け付けて、要求されたファイル形式を認識し、認識したファイル形式に従うファイルシステムを呼び出す。ジャーナルファイルシステム１１２は、仮想ファイルシステム１１１を介して入力されたアプリケーションプログラム１２１からの要求に従うファイルのアクセス（リード／ライト）に伴うアクセス履歴の管理を行う。この実施形態では、メモリ１０のカーネル空間１１に設けられた遅延書き込みリスト１４を用いて、図４乃至図７に示すようなデータ構造（ｉノード）の管理を行う。デバイスドライバ１１３は、ジャーナルファイルシステム１１２の指示に従いディスク装置３０上へのｉノードの書き込みを行う。
【００１３】
図３に上記管理の対象となるディスク装置３０上のデータ構造例を示している。ここでは「所有者」、「グループ名」、「ファイル形式」、「許可モード」、「ｉノードの最終アクセス時刻」「ｉノードの作成時刻」「ブロック番号」等の各フィールドを有して構成されるｉノード１００を示している。このｉノード１００は、アプリケーションプログラム１２１からの要求がファイルの内容更新（データ更新）を伴わないファイルの参照（リード要求）であるときは、「ｉノードの最終アクセス時刻」のフィールド内容が現在時刻に更新され、カーネル空間１１上の遅延書き込みリスト１４上で管理される。ファイルの更新（データの更新）を伴うファイルのアクセスであるときは、当該ファイルのｉノードがカーネル空間１１上の遅延書き込みリスト１４から取り出され、「ｉノードの最終アクセス時刻」のフィールド内容を現在時刻に更新した後、ディスク装置３０に書き込まれる（書き戻される）。この際のｉノードの更新並びに書き込みの各処理については図４乃至図７を参照して後述する。
【００１４】
図４に上記ジャーナルファイルシステム１１２により実行される上記遅延書き込みリスト１４上でのｉノードの管理処理手順を示し、図５に上記遅延書き込みリスト１４上で管理されるｉノード１００の最終アクセス時刻の状態遷移の一例を示している。ここではディスク装置３０上のファイル（ＦＡ）のｉノード１００の最終アクセス時刻（ａ−ｔｉｍｅ）の状態遷移例を示している。
【００１５】
図６にファイルの更新（データの更新）を伴うファイルアクセス時に於けるジャーナルファイルシステム１１２のｉノード書き込み処理手順を示している。ここでは、アプリケーションプログラム１２１からの書き込み要求に伴い、図示する手順でｉノードのディスク装置３０への書き込み処理が実行される。
【００１６】
図７に一定の時間間隔で実行されるジャーナルデータのコミット処理の手順を示している。
【００１７】
ここで上記各図を参照してジャーナルファイルシステム１１２に於けるｉノードの更新並びに書き込み処理について説明する。
【００１８】
ジャーナルファイルシステム１１２はアプリケーションプログラム１２１からの要求に従うディスク装置３０上のファイルアクセス時に於いて、当該ファイルのｉノードが遅延書き込みリスト１４に存在する（既に書き込まれている）か否かを調べる（図４ステップＳ１１）。
【００１９】
ここで、上記アクセス対象となるファイルのｉノードが遅延書き込みリスト１４に存在しない（書き込まれていない）ときは（図４ステップＳ１１  ＮＯ）、当該ファイルのｉノードを遅延書き込みリスト１４に追加する（図４ステップＳ１２）。
【００２０】
続いて、遅延書き込みリスト１４に既に書き込まれている（図４ステップＳ１１  ＹＥＳ）、若しくは新たに追加した（図４ステップＳ１２）、上記アクセス対象となるファイルのｉノードに対して、「ｉノードの最終アクセス時刻」のフィールド内容を例えばＲＴＣが示す現在時刻に更新（変更）する（図４ステップＳ１３）。
【００２１】
このようにして、ファイル内容の更新（データ更新）を伴わないファイル参照（リード要求）時のファイルアクセスに関しては、そのファイルのｉノードをディスク装置３０に書き込む処理が実行されず（書き込み要求が発生せず）、カーネル空間１１上で「ｉノードの最終アクセス時刻」が更新されｉノードが管理される。この際のファイルアクセスに伴う、カーネル空間１１（遅延書き込みリスト１４）上でのｉノード１００の最終アクセス時刻（ａ−ｔｉｍｅ）の更新状態遷移例を図５に示している。
【００２２】
これにより、ファイル内容の更新を伴わないファイル参照時のファイルアクセスについて、ディスク装置３０上でのｉノードの更新を伴う書き戻し処理が実行されないことからシステムの処理負荷を軽減できる。即ち、ｉノードのアクセスタイムの更新を行う際のディスク装置３０への書き込み要求が発生しないことから、システム性能を向上できる。
【００２３】
次に、アプリケーションプログラム１２１からの書き込み要求に伴うｉノードの書き込み処理について図６を参照して説明する。
【００２４】
ジャーナルファイルシステム１１２はアプリケーションプログラム１２１からの書き込み要求に従うディスク装置３０上のファイルアクセス時に於いて、当該書き込み要求の対象となるファイルのｉノードが遅延書き込みリスト１４に存在する（既に書き込まれている）か否かを調べる（図６ステップＳ２１）。
【００２５】
ここで、上記書き込み要求の対象となるファイルのｉノードが遅延書き込みリスト１４に存在するときは、そのｉノードを遅延書き込みリスト１４から取り出して（図６ステップＳ２２）、「ｉノードの最終アクセス時刻」のフィールド内容を現在時刻に更新（変更）する（図６ステップＳ２３）。
【００２６】
また、新規なファイルの書き込み時、ファイルの再書き込み時等に於いては上記書き込み要求の対象となるファイルのｉノードが遅延書き込みリスト１４に存在しないので（図６ステップＳ２１  Ｎｏ）、新規書き込みファイルの際は当該ファイルのｉノードを生成し、また再書き込みファイルについてはディスク装置３０からそのファイルに対応するｉノードを読み出して、そのｉノードについて「ｉノードの最終アクセス時刻」のフィールド内容を現在時刻に更新（変更）する（図６ステップＳ２３）。
【００２７】
続いて、上記ｉノードに対応するファイルのデータ（ユーザデータ）をディスク装置３０上に書き（図６ステップＳ２４）、正常に書き込みが行われたことを確認して（図６ステップＳ２５  ＯＫ）、上記ｉノードに対応するファイルのジャーナルデータをディスク装置３０上に書く（図６ステップＳ２６）。さらに上記ジャーナルデータの書き込みが正常に行われたことを確認した後（図６ステップＳ２５  ＯＫ）、上記更新したｉノードをディスク装置３０上に書く（図６ステップＳ２８）。尚、上記ユーザデータ、ジャーナルデータ、ｉノードの各書き込み処理に於いて、書き込み異常が発生した際（図６ステップＳ２５，Ｓ２７，Ｓ２９  ＮＧ）は、所定のエラー処理を実行する（図６ステップＳ３０）。
【００２８】
次に、所定の周期で発生するコミット要求に伴うｉノードの書き込み処理について図７を参照して説明する。
【００２９】
ジャーナルファイルシステム１１２は上記コミット要求に従うディスク装置３０上のファイルアクセス時に於いて、当該コミット要求のファイルに対応するｉノードが遅延書き込みリスト１４に存在するか否かを調べる（図７ステップＳ４１）。当該ｉノードが遅延書き込みリスト１４に存在するときは、そのｉノードを遅延書き込みリスト１４から取り出して（図７ステップＳ４２）、「ｉノードの最終アクセス時刻」を現在時刻に更新する（図７ステップＳ４３）。また、上記ファイルのｉノードが遅延書き込みリスト１４に存在しない際は当該ファイルのｉノードをディスク装置３０から読み出して「ｉノードの最終アクセス時刻」を現在時刻に更新する（図６ステップＳ２３）。
【００３０】
続いて、上記ｉノードに対応するファイルのデータをディスク装置３０上に書き（図７ステップＳ４４）、正常に書き込みが行われたことを確認して（図７ステップＳ４５  ＯＫ）、上記ｉノードに対応するファイルのジャーナルデータをディスク装置３０上に書く（図７ステップＳ４６）。さらに上記ジャーナルデータの書き込みが正常に行われたことを確認した後（図７ステップＳ４５  ＯＫ）、上記更新したｉノードをディスク装置３０上に書く（図７ステップＳ４８）。尚、上記ディスク装置３０への書き込み処理に於いて書き込み異常が発生した際（図７ステップＳ４５，Ｓ４７，Ｓ４９  ＮＧ）は、所定のエラー処理を実行する（図７ステップＳ５０）。
【００３１】
尚、上記した実施形態では、ジャーナルファイルシステムを例にデータ構造（ｉノード）のフィールド更新並びに書き込み処理について説明したが、本発明はジャーナルファイルシステムに限らず、例えばストレージエリアネットワーク、入出力コントローラ等、ファイルのアクセスに伴うデータ構造の管理機能をもつ各種のコンピュータシステムに於いて適用可能である。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るコンピュータシステムの要部の構成を示すブロック図。
【図２】本発明の実施形態に係るコンピュータシステムのソフトウェア構成を示すブロック図。
【図３】本発明の実施形態に係るコンピュータシステムに用いられるデータ構造の一例を示す図。
【図４】本発明の実施形態に係るジャーナルファイルシステムにより実行される遅延書き込みリスト上でのｉノードの管理処理手順を示すフローチャート。
【図５】本発明の実施形態に係る遅延書き込みリスト上で管理されるｉノードの最終アクセス時刻の状態遷移の一例を示す図。
【図６】本発明の実施形態に係るファイルの更新を伴うファイルアクセス時に於けるジャーナルファイルシステムのｉノード書き込み処理手順を示すフローチャート。
【図７】本発明の実施形態に係るコミット処理の手順を示すフローチャート。
【符号の説明】
【００３３】
１０…メモリ、１１…カーネル空間、１２…ユーザ空間、１３…オペレーティングシステム（ＯＳ）、１４…遅延書き込みリスト、２０…ＣＰＵ、３０…ディスク装置（ＤＩＳＫ）、１００…ｉノード、１１１…仮想ファイルシステム（ＶＦＳ）、１１２…ジャーナルファイルシステム、１１３…デバイスドライバ、１２１…アプリケーションプログラム。
【図１】
2005063139.tif 000003
【図２】
2005063139.tif 000004
【図３】
2005063139.tif 000005
【図４】
2005063139.tif 000006
【図５】
2005063139.tif 000007
【図６】
2005063139.tif 000008
【図７】
2005063139.tif 000009