(57)【要約】【課題】  二次記憶装置の種別によらずに、ファイルの最適配置を行うことのできる計算機システムを提供する。【解決手段】  二次記憶装置２のファイル管理・コマンド管理手段２３ａは、ファイルの識別情報を含んだコマンドによってファイルの新規格納を上位計算機１より指示されると、これを新規ファイルアドレス決定手段２６に通知する。新規ファイルアドレス決定手段２６は、ディスク管理テ−ブル２５ｂを参照して把握した空き領域のうち、ファイルの特性や自二次記憶装置の構成等を考慮して最適な領域を、新規ファイルを登録する領域として決定する。また、決定した領域のアドレスを、ローカルファイル管理テ−ブル２７にファイルの識別情報に対応付けて登録する。ファイル管理・コマンド管理手段２３ａは、ディスク装置制御手段２４を介してディスク装置２９の決定された領域にファイルを格納する。【選択図】  図１１
2006294052.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と接続されるインターフェースと、
ファイルが格納されたディスク装置と、
前記インターフェースに入力されるファイル識別子及びファイル内での位置を特定するための位置情報に基づいて、前記外部装置がアクセスするファイル内のデータの位置を判別する判別手段と、
前記判別されたデータにアクセスするように、前記ディスク装置を制御するディスク制御手段とを有することを特徴とする記憶装置。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位計算機と二次記憶装置とから構成する計算機システムに関し、特に、二次記憶装置におけるファイルの最適配置の技術に関するものである。
【背景技術】
【０００２】
上位計算機と二次記憶装置とから構成される計算機システムとしては、ＵＮＩＸとして知られるオペレーティングシステム（以下、「ＯＳ」と記す）を採用するワークステーション（以下、「ＷＳ」と記す）にハードディスク装置（以下、「ディスク装置」という）を接続したシステムが知られている。
【０００３】
また、このような計算機システムにおけるファイル管理の技術としては、非特許文献１に記載された技術が知られている。
【０００４】
以下、この技術について説明する。
【０００５】
図２４に、この計算機システムの構成を示す。
【０００６】
図中、１が上位計算機、２が二次記憶装置である。
【０００７】
上位計算機１において、２０はＯＳ，１２はＯＳ２０が管理するユーザが実行したアプリケーションプログラム（以下、「ＡＰ」と記す）のプロセスを表している。すなわち、上位計算機において実行されているアプリケーションプログラムはＯＳ２０によりプロセス１２として管理されている。
【０００８】
また、ＯＳ２０において、１３はファイルの管理やファイルアクセス時のデータ転送に使用するバッファを管理するファイル管理・バッファ管理手段、１５はディレクトリやファイル論理的なアドレス（ＯＳ内部でのアドレス）と、ディスク装置内でのローカルなアドレス（ローカルアドレス）との対応付けのための情報を記述するファイル管理テーブル、１４はディレクトリ情報（ディレクトリやファイルの名称とファイル管理テーブルの対応付けのための情報）を記述するディレクトリ管理テーブルを示している。また、１６はファイル管理・バッファ管理手段１３からのファイルアクセス要求を、様々な二次記憶装置等の外部デバイスの物理特性に合わせて変換、制御を行うデバイスドライバ、３０はファイルを新規にライトする際に書き込みに最適なディスク装置のローカルアドレスを決定するファイルアドレス決定手段、２５ａはディスクの使用状況を管理するディスク管理テーブル、２１、２２は上位計算機と二次記憶装置との間の通信およびデータ転送を制御するインタフェース制御手段を示している。
【０００９】
ここで、論理アドレスとは、上位計算機においてファイルを管理するための論理的なアドレスである。また、ローカルアドレス（ディスク装置内でのローカルなアドレス）とは、ディスク装置（二次記憶装置）が、データを管理するためのディスク装置内でのローカルなアドレスであり、論理的なアドレスである場合も、物理的なアドレスである場合もある。たとえば、ＳＣＳＩ（Small Computer Interface)に適合したディスク装置（ＳＣＳＩディスク）では、ローカルアドレスとして論理的な連続番号（ＬＢＡ；Logical Block Address)を用いている。また、ＩＤＥ（Intelligent Device Electronics)ディスク装置等では、ローカルアドレスとして、ヘッド番号、シリンダ番号、セクタ番号等の、物理的な記憶位置を直接表す物理アドレスを用いている。
【００１０】
次に、二次記憶装置２において、２９は１台以上のディスク装置、２４はディスク装置２９を制御するディスク装置制御手段、２３は上位計算機から送信されたリード及びライトコマンドを受信、解析し、ディスク装置２９特有のディスクコマンドを作成してディスク装置制御手段２４に送るコマンド管理手段を示している。
【００１１】
以下、プロセス１２が既存のファイルにアクセスを行う際に実行するファイルアクセス処理を説明する。
【００１２】
プロセス１２がファイルアクセスを行う際にはＯＳ２０にファイルアクセスリードおよびライト要求（システムコール）を発行する。
【００１３】
ＯＳ２０のファイル管理・バッファ管理手段１３はこの要求を受け、ディレクトリ管理テーブル１４を参照し、ファイル名からファイル管理テーブルの位置を求める。次に求めたファイル管理テーブル１５を参照し、プロセスのリード（またはライト）要求データが存在する（またはデータを登録する）論理アドレスを算出し、ローカルアドレスに変換する。また、データ転送に必要なバッファエリアを確保する。
【００１４】
次に、ＯＳ２０は、デバイスドライバ１６に対し算出したローカルアドレスを用いアクセス依頼を行う。デバイスドライバ１６はこのアクセス依頼を受け、ファイルの格納されている（または、ファイルを格納する）二次記憶装置２の物理特性に合わせた形のコマンドを作成し、インタフェース制御手段２１を介し、二次記憶装置２に送出する。
【００１５】
二次記憶装置２ではコマンド管理手段２３がインタフェース制御手段２２を介しコマンドを受信し、このコマンドを解析する。そして、アクセスの種類、アクセス開始アドレス、データ長等のコマンドの解析結果に基づき、ディスク装置２９特有のディスクコマンドを作成し、ディスク制御装置２４にコマンド実行を依頼する。ディスク制御装置２４はこのコマンドに基づきディスク装置２９を制御し、適切なデータ転送処理を実行する。
【００１６】
さて、プロセス１２が既存のファイルにアクセスを行う際には二次記憶装置２の、どのアドレスにファイルを格納するかを決定する必要がある。
【００１７】
そこで、新規にファイルを作成する際には、以下に示す新規登録処理を、ファイルアクセス（ライト）処理に先立ち行う必要がある。
【００１８】
すなわち、新規ファイルのライト要求をプロセス１２から依頼されたとき、ファイル管理・バッファ管理手段１３は、ディレクトリ管理テーブル１４にファイル名を登録し、ファイル管理テーブル１５にこのファイルのための管理データ領域を確保し、その位置をディレクトリ管理テーブル１４に登録する。次に、ファイルアドレス決定手段３０は、ディスク管理テーブル２５ａを参照しながら、予めユーザが設定しておいたディスク装置のヘッド数、シリンダ数、セクタ数等の物理特性パラメータを基に最適アドレス、すなわちできるだけシークを行わず、また無駄な回転待ちの発生しないような領域のローカルアドレスを所定の配置アルゴリズムにより決定する。そして、この決定したローカルアドレスをファイル管理テーブルに登録し、論理アドレスとの対応付けを行う。
【００１９】
以上の新規登録処理により、以降のアクセスにおいては、ディレクトリ管理テーブル１４、ファイル管理テーブル１５の両者を参照して行う通常のファイルアクセス処理により、このファイルアクセスが可能となる。
【００２０】
【非特許文献１】ユニックス(ＵＮＩＸは登録商標)４．３ＢＳＤの設計と実装、丸善、１９９１年出版
【発明の開示】
【発明が解決しようとする課題】
【００２１】
前記非特許文献１に記載の技術によれば、前述したように、新規に作成したファイルを格納する最適アドレスを決定するために、ディスク装置等の二次記憶装置の物理パラメータを予め設定しておかなければならない。
【００２２】
一方、近年、大容量化、高性能化、高信頼化の要請に伴い、単に１台または複数台のディスク装置を接続するのではなく、ディスクをアレイ上に配置し、各ディスク装置にデータを分割配置するディスクアレイ装置等、高度化、複雑化した様々な形態の二次記憶装置が出現してきている。
【００２３】
このため、二次記憶装置の物理パラメータも、ディスク単体のパラメータのみならず、アレイの構成、データ分配方式、高信頼化を実現するために複数台のディスク装置のデータから計算した冗長データの配置等、その二次記憶装置のアーキテクチャに依存し多種多様となる。また、一般的に、上位計算機と二次記憶装置は、独立して流通しているため、製造元であらかじめ二次記憶装置のパラメータを予め上位計算機に設定することはできない。
【００２４】
このため、二次記憶装置のパラメータの設定はユーザが行うことになるが、ユーザが、これら多種多彩な二次記憶装置のすべてのパラメータを上位計算機に設定することは困難であり、現実には、これを行うことができない場合が多い。その結果、上位計算機において複雑な構成をとる二次記憶装置へのファイル最適配置は困難になり、二次記憶装置の性能を有効に利用することができないという問題が生じる。
【００２５】
そこで、本発明は、上位計算機に二次記憶装置のパラメータを設定すること無しに、ファイルの二次記憶装置への最適配置を実現することのできる計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
前記目的達成のために、本発明は、たとえば、計算機と、前記計算機に接続された１または複数の二次記憶装置とを有し、前記二次記憶装置は、二次記憶装置内のロ−カルなアドレスであるロ−カルアドレスによって記憶したデータを管理する計算機システムであって、前記二次記憶装置は、１または複数の論理ブロックより構成されるファイルを記憶する記憶手段と、ロ−カルアドレスを指定して前記計算機より要求された、既に前記記憶手段に記憶されている論理ブロックのアクセスを実行する手段と、新たな論理ブロックの前記記憶手段への記憶を前記計算機より要求された場合に、記憶を要求された論理ブロックを記憶するロ−カルアドレスを所定の手順により決定する手段と、決定したロ−カルアドレスに記憶を要求された論理ブロックを記憶する手段と、決定したロ−カルアドレスを前記計算機に通知する手段とを有し、
前記計算機は、二次記憶装置に記憶されているファイルを構成する各論理ブロックが記憶されているロ−カルアドレスを、各論理ブロックに対応付けて管理するファイル管理テ−ブルと、既に二次記憶装置に記憶されている論理ブロックにアクセスする場合に、前記ファイル管理テ−ブルを参照してアクセスする論理ブロックのロ−カルアドレスを求め、ロ−カルアドレスを指定して二次記憶装置に当該論理ブロックのアクセスを要求する手段と、新たな論理ブロックの二次記憶装置への記憶を行う場合に、ロ−カルアドレスを指定せずに、前記二次記憶装置に論理ブロックの記憶を要求する手段と、前記二次記憶装置から通知されたロ−カルアドレスを、記憶を要求した新たな論理ブロックに対応付けて前記ファイル管理テ−ブルに登録する手段とを有することを特徴とする計算機システムを提供する。
【発明の効果】
【００２７】
以上のように、本発明によれば、上位計算機に二次記憶装置のパラメータを設定すること無しに、ファイルの二次記憶装置への最適配置を実現することのできる計算機システムを提供することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係る計算機システムの実施例を説明する。
【実施例１】
【００２９】
はじめに、本実施例に係る計算機システムのハ−ドウェア構成例を図１に示す。
【００３０】
図示するように、本実施例に係る計算機システムは、上位計算機１と二次記憶装置２から成る。上位計算機１は、ＯＳやアプリケ−ションプログラムを実行するＣＰＵ１０と、ＣＰＵ１０が用いる一次記憶装置１１と、二次記憶装置２へのインプット／アウトプット要求（Ｉ／Ｏ要求）を制御するＩ／Ｏ制御部９と、二次記憶装置２へのインタフェース８から構成される。
【００３１】
一方、二次記憶装置２は、上位計算機１からのＩ／Ｏ要求の授受を行うインタフェース７と、データ転送および二次記憶装置２内部の制御を司る制御装置５と、データを格納するディスク装置４と、ディスク装置４と上位計算機１とのデータ転送速度の違いを吸収するためのバッファ装置とから構成される。
【００３２】
ただし、本実施例係る計算機システムのハ−ドウェア構成は、この他、図１に示した構成に準じる他の構成としてもよい。
【００３３】
次に、本実施例に係る計算機システムにおける、ファイルの論理的位置と、ファイルの、二次記憶装置上の位置の管理の方式について説明する。
【００３４】
図２に示すように、ファイルの論理的位置は、ディレクトリを用いて構築した木構造によって階層的に管理される。これは、前述したＵＮＩＸなどのＯＳで採用している方式である。
【００３５】
ここで、ファイルは、二次記憶装置の実記憶領域に、所定長のデータの集まりであるブロック毎に記憶される。そして、ファイルの二次記憶装置上のロ−カルな位置は、ファイルを構成するブロックの、それぞれが記憶されている論理アドレスと、この論理アドレスに対応する二次記憶装置上のロ−カルアドレスを管理することにより管理される。二次記憶装置上のロ−カルな位置は、二次記憶装置によって、二次記憶装置のロ−カルなアドレスを用いて管理される。二次記憶装置のロ−カルなアドレスをロ−カルアドレスと呼ぶ。前述したようにロ−カルアドレスは二次記憶装置上の物理位置を指定する物理アドレスである場合もあり、二次記憶装置上の論理的な位置を指定する論理的なアドレスである場合もある。
【００３６】
但し、このような管理方式に準じた方式によって、ファイルの論理的位置と、ファイルの二次記憶装置上の位置を管理するようにしてもよい。
【００３７】
さて、新規ファイルを二次記憶装置２に格納する際には、前述した新規登録処理の一環として、そのファイルを分割したブロックのそれぞれを最適化アルゴリズムに従い２次記憶装置のロ−カルアドレスにマッピングする処理を行う必要がある。しかし、二次記憶装置２内にディスク装置を複数台接続したり、二次記憶装置２が、いわゆるＲＡＩＤ（Redundant Arrays of Inexpensive Disks)アーキテクチャに従い複数のディスク装置にデータを分散配置するような複雑な構成を持つ二次記憶装置であった場合には、上位計算機１に、使用する二次記憶装置の種別に応じた最適化アルゴリズムや、多種多彩なパラメータを入力することは極めて困難である。このため、通常は、二次記憶装置２を従来の単純な二次記憶装置に見せかけ、従来のアルゴリズムを使用することになる。しかし、このようにすると、二次記憶装置の持つ潜在的な能力を引き出せないばかりでなく最悪の場合従来に比べても低い性能しか期待できない場合がある。
【００３８】
以下、本発明の第１の実施例について説明する。
【００３９】
図３に、本第１実施例に係る計算機システムの構成を示す。
【００４０】
図示するように、本第１実施例に係る計算機システムは、上位計算機１と二次記憶装置２を有している。
【００４１】
上位計算機１において、２０はＯＳ、１２はＯＳ２０が管理するアプリケ−ションプログラムのプロセスを表している。上位計算機において実行されているアプリケーションプログラムはＯＳ２０によりプロセス１２として管理されている。
【００４２】
また、ＯＳ２０において、１３はファイルの管理やファイルアクセス時のデータ転送に使用するバッファを管理するファイル管理・バッファ管理手段、１５はディレクトリやファイルの論理アドレスとロ−カルアドレスとの対応を記述するファイル管理テーブル、１４はディレクトリ情報を記述するディレクトリ管理テーブルを示している。また、１６はファイル管理・バッファ管理手段１３からのファイルアクセス要求を、様々な二次記憶装置等の外部デバイスの物理特性に合わせて変換、制御を行うデバイスドライバ、１８はファイルがオープンされたことを二次記憶装置２に通知するオープンファイル情報通知手段、１９は新規のファイルをライトすることを二次記憶装置２に通知する新規ファイルライト通知手段、１７は二次記憶装置２により決定された新規ファイルの格納アドレスを受信しファイル管理テーブル１５に登録する新規ファイルアドレス登録手段を示している、また、上位計算機１において、２１は二次記憶装置との間の通信およびデータ転送を制御するインタフェ−ス制御手段を示している。
【００４３】
ファイル管理テ−ブル１５はファイル毎に設けられたファイル管理情報を格納している。この、ファイル毎に設けらたファイル管理情報は、ファイル識別番号により特定されるファイル管理情報のアドレスを介して特定される。なお、前記ＵＮＩＸでは、このファイル管理情報をｉノ−ドと呼び、ファイル識別番号をｉノ−ド番号と呼んでいる。各ファイル管理情報は、図４に示すように構成されている。
【００４４】
すなわち、各ファイル管理情報は、モ−ド１５１、所有者１５２、タイムスタンプ１５３、大きさ１５４、ブロック数１５５、参照カウント１５６、参照ポインタ１５７、更新フラグ１５８のエントリを有している。
【００４５】
モ−ド１５１は、ファイルの種類と、そのファイルの現在のアクセスモ−ド（リ−ド／ライト等）の情報を格納し、所有者１５２には、ファイルの所有者や、そのファイルにアクセス権を持つユ−ザグル−プを識別する情報を格納する。また、タイムスタンプ１５３は、ファイルが最後のアクセスされた時間や、自ファイル管理テ−ブルが更新された時間等を格納する。大きさ１５４は、ファイルのバイト数を格納し、ブロック数１５４はファイルの前記ブロック数を格納する。また、参照カウンタ１５６は、ファイルが参照された回数を格納し、参照ポインタ１７７は、ファイルの各ブロックの論理アドレスと二次記憶装置のロ−カルアドレスとを対応付けて格納する。以下では、ブロックの論理アドレスを論理ブロックアドレス、ブロックの二次記憶装置のロ−カルアドレスをロ−カルブロックアドレスという。
【００４６】
次に、ディレクトリ管理テーブル１４も、ディレクトリ毎に設けられたディレクトリ管理情報を格納しており、各ディレクトリ管理情報は、ファイル管理テーブル１５の対応するディレクトリに属するファイルに対応するファイル管理情報を特定するファイル識別番号と、対応するディレクトリに属するディレクトリに対応するディレクトリ管理情報を特定する番号の情報（またはディレクトリ管理テーブルの存在位置を示すポインタ）を記憶する。
【００４７】
このような、ディレクトリ管理テーブル１４とファイル管理テ−ブル１５の構成により、デレクトリｄｉｒ１、ｄｉｒ２、ｄｉｒ３の指定とｆｉｌｅ５の指定によりｆｉｌｅ５というファイルを次のようにしてｆｉｌｅ５を構成する各ブロックのロ−カルブロックアドレスを得ることができる。すなわち、ｄｉｒ１、ｄｉｒ２、ｄｉｒ３のディレクトリ管理テ−ブル１４を順次走査し、ｄｉｒ３のディレクトリ管理情報から、ファイル管理テーブル１５のｆｉｌｅ５に対応するファイル管理情報のファイル識別番号を得、ｆｉｌｅ５のファイル管理情報より、ｆｉｌｅ５を構成する各ブロックのロ−カルブロックアドレスを得る。
【００４８】
さて、一方、二次記憶装置２において、２９は１台以上のディスク装置、２４はディスク装置２９を制御するディスク装置制御手段、２３は上位計算機から送信されたのリード及びライトコマンドを受信、解析し、ディスク装置２９特有のディスクコマンドを作成してディスク装置制御手段２４に送るコマンド管理手段、２２は上位計算機１との間の通信およびデータ転送を制御するインタフェ−ス制御手段、２７は二次記憶装置２のディスク装置２９に記憶されているファイルのファイル管理情報を格納するロ−カルファイル管理テーブル、３９は上位計算機１の送出するファイルがオープンされたことを示す情報を受信しローカルファイル管理テーブル２７に登録するオープンファイル情報受信登録手段、２６は上記上位計算機１の送出する新規のファイルをライトすることを受信し新規ファイルの格納アドレスを決定する新規ファイルアドレス決定手段、２８は新規ファイルアドレス決定手段２６により決定されたアドレスを上記上位計算機１に通知する新規ファイルアドレス通知手段、２５ｂは二次記憶装置内部のディスク装置の構成を決定するパラメータおよびディスク装置の利用状況を管理するディスク管理テーブルである。
【００４９】
ロ−カルファイル管理テーブル２７の構成およびロ−カルファイル管理テーブル２７に格納されるファイル管理情報は、上位計算機１のファイル管理テ−ブル１５およびファイル管理情報と同じであり、同じファイルのファイル管理情報は同じファイル識別番号で特定される。
【００５０】
以下、本第１実施例に係る計算機システムのファイルのアクセス動作を説明する。
【００５１】
まず、あらかじめ、ファイル管理バッファ管理手段１３は、二次記憶装置２のロ−カルファイル管理テ−ブル２７に格納されているファイル管理情報を、上位計算機１のファイル管理テ−ブル１５にロ−ドしておく。このロ−ドは、上位計算機のイニシャル時や、二次記憶装置に新たな記憶媒体がマウントされた時や、次に述べるファイルオ−プン処理の開始時等に行う。
【００５２】
さて、ＡＰのプロセス１２から、オープンシステムコールを発行されると、ＯＳ２０は、図５に示すファイルオープン処理を行う。
【００５３】
すなわち、図示するように、オープンシステムコールを発行されると（ステップ１０１）、ＯＳ２０内部のファイル管理・バッファ管理手段１３は、このシステムコールを解析し、ファイルのアクセスモードを判定する（ステップ１０２）。もしライトモードでファイルのオープンを行うのであれば、新規のファイルであるかどうかをさらに判定し（ステップ１０３）、もし、新規ファイルであるならばディレクトリ管理テーブル１４の、このファイルを作成するディレクトリに対応するディレクトリ管理情報にファイル名を登録し、ファイル管理テーブル１５中に、新規ファイルについてのファイル管理情報を格納する領域を確保する（ステップ１０４）。また、この確保したファイル管理情報のファイル識別番号を、ディレクトリ管理テーブル１４の、ファイルを作成するディレクトリに対応するディレクトリ管理情報に登録する。そして、ファイル識別番号をプロセス１２に通知する（ステップ１０５）。
【００５４】
新規のファイルでなければ、ディレクトリ管理テーブル１４より、ファイルのファイル識別番号を獲得し、これをプロセス１２に通知する（ステップ１０５）。
次に、ファイル管理・バッファ管理手段１３はこのファイル固有のファイル識別番号により特定されるファイル管理情報のロ−カルアドレス、ファイル名等の情報をオープンファイル情報通知手段１８に伝える。オープンファイル情報通知手段１８は、これらの情報をデバイスドライバ１６、インタフェース制御手段２１、２２を介して二次記憶装置２へ通知する（ステップ１０６）。
【００５５】
二次記憶装置２のオープンファイル情報受信登録手段３９は、これらの情報を受信し、もし、新規なファイルについてのものである場合にはロ−カルファイル管理テーブル２７に新たなファイル管理情報の領域を確保し、受信した情報を登録する。
【００５６】
以上の処理により、オープンしたファイルの管理情報は上位計算機１のファイル管理テーブル１５と二次記憶装置２のロ−カルファイル管理テーブル２７両方に登録されていることになる。
【００５７】
次に、ファイルのオープン処理が終了すると、ファイルのリードもしくはライト処理を実行する。
【００５８】
図６にＯＳ２０におけるファイルのリード処理の手順を、図８にＯＳ２０におけるファイルのライト処理の手順を、図９に二次記憶装置におけるファイルのリ−ド処理とライト処理の手順を示す。
【００５９】
まず、ファイルのリード処理について説明する。
【００６０】
図６に示すように、上位計算機１において、ＡＰ（プロセス１２）からファイルリードシステムコール（ｒｅａｄ（））が発行されると（ステップ２０１）、ＯＳ２０のファイル管理・バッファ管理手段１３は、ディレクトリ管理テーブル１４を参照し当該ファイルのファイル識別番号（ファイル管理テーブル１５内のファイル管理情報の位置を示す）を獲得する（ステップ２０２）。次に、ファイル管理・バッファ管理手段１３は獲得したファイル識別番号により指定されるファイル管理テーブル１５内のファイル管理情報の情報を得る。
【００６１】
さて、ここで、ＡＰは、ファイルリ−ドシステムコ−ルもしくはファイルライトシステムコ−ルによってオフセットと呼ぶバイト単位でファイルのリ−ドやライトを要求する。図７は、ＡＰが、ファイルｆｄについて設けられているファイルポインタｆｐからｎバイトのオフセットをユーザバッファｂｕｆｆｅｒにリードすることを要求している場合を示している。図示するように、このオフセットは論理ブロックアドレス１、２にまたがっているデータであり、すなわち論理ブロック１、２、に対応する２つのロ−カルブロック（ロ−カルブロックアドレス＃１１０２０と、＃１１０２８）とからリードする必要がある。ロ−カルブロックは、論理ブロックに対応する二次記憶装置２上のブロックである。
【００６２】
そこで、次に、ファイル管理・バッファ管理手段１３は、得たファイル管理情報より要求されたオフセットのデータが存在する論理ブロックアドレス１、２を求める（ステップ２０３）。そして、これら２つの当該論理ブロックをリードするために必要な一時作業領域としてシステムバッファを確保する（ステップ２０４）。次に、はじめの論理ブロックアドレス１を選択し（ステップ２０５）、これをロ−カルブロックアドレス＃１１０２０に変換し（ステップ２０６）、デバイスドライバ１６に、このロ−カルブロックアドレスのデータブロックの転送依頼を発行する。デバイスドライバ１６はこの要求を受け、二次記憶装置固有のリードコマンドを生成し、インタフェース制御手段２１を介し二次記憶装置２に送出する（ステップ２０７）。
【００６３】
リ−ドコマンドは、二次記憶装置２のコマンド管理手段２３は上記リードコマンドをインタフェース制御手段２２を介して受信される。コマンドを受信した二次記憶装置２は、図９に示すように、まず、このコマンドを解析する（ステップ４０２）。ここでリードコマンドであることが分かるので（ステップ４０３）二次記憶装置２のロ−カルファイル管理テーブル２７の、後述するアクセス回数等の管理情報を必要に応じて更新し（ステップ４１１）、ディスク装置２９から求めるデータをリードし、上位計算機１にインタフェース制御手段２２を介し転送する（ステップ４１２）。そして、コマンド管理手段２３は、要求されたデータをすべて正しく転送できたならばインタフェース制御手段２２を介し上位計算機に終了報告を行う（ステップ４０８）。
【００６４】
この終了報告は、上位装置１のデバイスドライバ１６によって受信される。
【００６５】
図６に戻り、二次記憶装置２からのコマンド終了通知を受信すると（ステップ２０８）、デバイスドライバ１６は、これをファイル管理・バッファ管理手段１３に通知する。ファイル管理・バッファ管理手段１３は、転送すべきすべての論理ブロックのリードを完了したかどうかを確認し（ステップ２０９）、もしまだ未転送の論理ブロックが、あるならば続く論理ブロックを選択し（ステップ２１２）以上の処理を繰り返す。もしすべての論理ブロックのデータのシステムバッファへの転送が完了したならば、ＡＰが要求したオフセットデータをユーザバッファに複写し（ステップ２１０）、ＡＰにシステムコールの完了通知を返し、ファイルのリード処理を完了する。
【００６６】
次に、ファイルのライト処理を、前述したリード処理との相違する点を中心に説明する。
【００６７】
ファイルのライト処理は大きく次の２つの処理に分けられる。１つは新規ブロックの登録処理であり、もう１つは既存のブロックの更新処理である。前者は新規なファイルをライトする際や、既存ファイルの末尾へデータ追加を行う場合に発生し、後者は、既登録済み論理ブロックの途中からのデータをライトする場合や、既存ファイルをレコード（ひとまとまりのデータ単位）単位で更新する場合等に発生する。
【００６８】
さて、図８に示すように、ＡＰからライトシステムコールを発行されると、（ステップ３０１）、ＯＳ２０のファイル管理・バッファ管理手段１３はディレクトリ管理テーブル１４からファイル識別番号を獲得し（ステップ３０２）、前述したようにオフセットから転送すべき論理ブロックアドレスを求め（ステップ３０３）、必要なシステムバッファを確保する（ステップ３０４）。また、ここで、ファイル管理テーブル１５を参照し、もし、論理ブロックアドレスに対応するロ−カルブロックアドレスが登録されていなかったならば、この論理ブロックは新規の論理ブロックであると判定する（ステップ３０５）。
【００６９】
新規の論理ブロックであると判定した場合には、ファイル管理・バッファ管理手段１３は、ユーザバッファからライトデータをシステムバッファへ複写し（ステップ３０７）、最初の論理ブロックを選択する。一方、新規ファイルライト通知手段１９は、選択した論理ブロックのライトを要求する新規ブロックライト要求を生成する。デバイスドライバ１６は、これより、二次記憶装置２固有の新規ブロックライトコマンドを生成し、発行する（ステップ３１２）。
【００７０】
この新規ブロックライトコマンドにはファイル識別番号と論理ブロックアドレスが記載してある。
【００７１】
さて、発行された新規ブロックライトコマンドは、図９に示すように、二次記憶装置２のコマンド管理手段２３で受領（ステップ４０１）され、解析される（ステップ４０２）。そして、解析の結果、新規ブロックライトコマンドであることを認識する（ステップ４０３、４０４）と、コマンド管理手段２３はファイル固有識別番号および論理ブロックアドレスを新規ファイルアドレス決定手段２６１に渡す。新規ファイルアドレス決定手段２６はファイル固有識別番号によりロ−カルファイル管理テーブル２７およびディスク管理テーブル２５ｂを参照し、このブロックを記憶するロ−カルブロックアドレスを、二次記憶装置２のディスク装置２９の構成パラメータ、物理パラメータ等を考慮して決定する（ステップ４０５）。
【００７２】
このような最適なロ−カルブロックアドレスの決定手順については後述する。
【００７３】
次に、ロ−カルファイル管理テーブル２７に、この決定したロ−カルブロックアドレスを論理ブロックアドレスに対応付けて登録し、また、ディスク管理テーブル２５ｂに、当該ロ−カルブロックが使用中である旨設定する。
【００７４】
次に、データ転送を開始し、上位計算機１からデータの転送を受け、これを決定したロ−カルブロックアドレスに従いディスク装置２９へライトする（ステップ４０６）。次に新規ファイルアドレス通知手段２８は決定したロ−カルアドレスを上位計算機２に送信する（ステップ４０７）。そして、このブロックのロ−カルブロックアドレスの決定とデータ転送が終了したら終了通知を上位計算機１に行う（ステップ４０８）。
【００７５】
さて、送信されたロ−カルブロックアドレスは、上位装置において、インタフェース制御手段２１及びデバイスドライバ１６を介して、新規ファイルアドレス登録手段１５に受信される。
【００７６】
図８に戻り、上位計算機１の新規ファイルアドレス登録手段１５は、インタフェース制御手段２１及びデバイスドライバ１６を介して二次記憶装置２からロ−カルブロックアドレスを受信すると、ファイル管理・バッファ管理手段１３にこのロ−カルブロックアドレスの登録を依頼する。ファイル管理・バッファ管理手段１３は、ファイル管理テーブル１５の、対応するファイルのファイル管理情報の対応する論理アドレスに対応付けて、このロ−カルブロックアドレスを登録する（ステップ３１４）。また、ファイル管理・バッファ管理手段１３は、二次記憶装置２からのブロック転送終了通知を受信すると（ステップ３１５）、当該ブロックのライト処理を終了する。そして、すべての論理ブロックのライトが完了していないならば、次の該当論理ブロックを選択し、以上の処理をすべての論理ブロックのライト処理が終了するまで繰り返す（ステップ３１８）。
【００７７】
一方、ステップ３０５でライトするブロックが、新規論理ブロックでないと判定された場合、すなわち既存論理ブロックへのライト処理は、次のようになる。
【００７８】
この処理と、新規論理ブロックのライト処理との基本的な相違点は、既存論理ブロックへのライト処理では、ブロックの途中から更新するような場合がある点と、ライトする論理ブロックにはすでにロ−カルブロックアドレスがマッピングされている点である。
【００７９】
まず論理ブロックの途中から更新するような場合は、一旦、この論理ブロックをリードする必要がある。すなわち、システムバッファへ二次記憶装置から、ブロックをリードして、新データをユーザバッファからシステムバッファに転送して、システムバッファのブロックを更新し、その後、このブロックを二次記憶装置にライトするがある。
【００８０】
そこで、すなわち既存ブロックへのライトを行う場合には、まず、リード処理を行う（ステップ３０６）。このステップ３０６の処理は、図６中に示した符号ａからｂへの処理と等しい。
【００８１】
次に、既存のブロックへはすでにロ−カルブロックアドレスのマッピングが終了しているので二次記憶装置２へのライトコマンド発行時には、上位計算機１側でロ−カルブロックアドレスを指定する。このため、リード処理と同様の論理ブロックからロ−カルブロックアドレスへの変換処理を行い（ステップ３１０）、その後二次記憶装置への更新ライトコマンドを生成し発行する（ステップ３１１）。
【００８２】
一方、二次記憶装置２内は、受信した更新ライトコマンドに従い、指定されたロ−カルブロックアドレスに転送されたブロックのデータをライトする（図９ステップ４１０）。また、この際、二次記憶装置２のロ−カルファイル管理テーブル２７の、後述するアクセス回数等の管理情報を必要に応じて更新する（ステップ４０９）。
【００８３】
以上の説明のように、本方式によれば、ファイルの二次記憶装置への格納に際しては、その格納するロ−カルアドレスを、二次記憶装置が決定するので、二次記憶装置特有の構成パラメータや、物理パラメータや、上位計算機１のＡＰの特性により決定されるファイルアクセス特性に合致した最適位置にファイルを格納を実現することができ、ファイルの高速化に効果が大きい。
【実施例２】
【００８４】
ところで、上位計算機１には、本第１実施例で説明してきたような二次記憶装置２の他、新規ファイルのロ−カルブロックアドレスを決定する能力がない従来の二次記憶装置２（図２４参照）をも接続できることが望ましい。すなわち、上位計算機１を、先に示した従来の二次記憶装置をも互換的に使用できるよう構成することが望ましい。
【００８５】
そこで、本発明の第２実施例として、このような従来の二次記憶装置をも互換的に使用できる計算機システムについて説明する。図１０に、本第２実施例に係る計算機システムの構成を示す。
【００８６】
本第２実施例に係る計算機システムは、本第１実施例に係る上位計算機１に、ディスク管理テーブル２５ａと、ファイルアドレス決定手段３０、ファイルアドレス決定手段３０と新規ファイルアドレス決定手段２６のどちらを使用するかを選択するアドレス決定手段選択手段３１を付加したものである。
【００８７】
ディスク管理テーブル２５ａは、ディスクの使用状況を管理する。ファイルアドレス決定手段３０は、論理ブロックを新規にライトする際に書き込みに最適なディスク装置のロ−カルブロックアドレスを決定する。
【００８８】
次に、本第２実施例に係る計算機システムの動作を説明する。
【００８９】
まず、システムのイニシャル時等に、上位計算機１のファイル管理バッファ管理手段１３はデバイスドライバ１６を介して、二次記憶装置２のコマンド管理手段２３と、ネゴシエ−ションを行い、二次記憶装置２に新規ファイルのロ−カルブロックアドレスを決定する能力があるか否かを判定し、判定結果をアドレス決定手段選択手段３１に通知する。
【００９０】
そして、アドレス決定手段選択手段３１は、もし、二次記憶装置２に新規ファイルのロ−カルブロックアドレスを決定する能力があれば、上位計算機１のファイルアドレス決定手段３０とディスク管理テーブル２５ａを無効化とする。そして、以降は、前記第１実施例と同様の動作を行う。
【００９１】
一方、アドレス決定手段選択手段３１は、もし、二次記憶装置２に新規ファイルのロ−カルブロックアドレスを決定する能力がなければ、オ−プンファイル情報通知手段１８、新規ファイルライト通知手段１９を無効化し、先に説明した従来の計算機システムと同様の動作を行う。
【００９２】
さらに、複数二次記憶装置を同時に接続して使用するような場合は、ＡＰよりの二次記憶装置へのアクセスの要求毎に、要求された二次記憶装置が新規ファイルのロ−カルブロックアドレスを決定する能力があるか否かに応じて、オ−プンファイル情報通知手段１８と新規ファイルライト通知手段１９の組とファイルアドレス決定手段３０とディスク管理テーブル２５ａの組の一方の組を無効化し、前記第１実施例の動作もしくは従来の動作と同様の動作を行う。
【００９３】
なお、二次記憶装置２に新規ファイルのロ−カルブロックアドレスを決定する能力がある場合でも、オ−プンファイル情報通知手段１８、新規ファイルライト通知手段１９を無効化すると共に、二次記憶装置２の新規ファイルアドレス決定手段２６、新規ファイルアドレス通知手段２８等を無効化することにより、従来と同様の動作を行うことができる。
【００９４】
以上のように、本第２実施例によれば、前記第１実施例の計算機システムにおいて、従来の二次記憶装置をも利用することができる。また、複数台の二次記憶装置の接続や、従来使用していた二次記憶装置に新規の二次記憶装置を付設等を行うことができ、計算機システムの構成の自由度、拡張性を増すことができる。
【実施例３】
【００９５】
以下、本発明の第３の実施例を説明する。
【００９６】
本第３実施例では、前記第１実施例と異なり、上位計算機１では、ファイルのロ−カルブロックアドレスを一切管理しない。
【００９７】
図１１に、本第３実施例に係る計算機システムの構成を示す。
【００９８】
図示するように、上位計算機１は、ディレクトリおよびファイル名とファイル識別番号を管理するディレクトリ管理テーブル１４と、データ転送に使用するバッファの管理を行うバッファ管理手段１３ａと、デバイスドライバ１６と、インタフェ−ス制御手段２１とを備えている。
【００９９】
また、二次記憶装置２は、インタフェ−ス制御手段２２と、ファイル管理とコマンド管理を行うファイル管理・コマンド管理手段２３ａと、新規のファイルの論理ブロックへロ−カルブロックアドレスのマッピングを行う新規アドレス決定手段２６と、ファイルの管理情報を登録するローカルファイル管理テーブル２７と、ディスクの使用状況を管理し、またディスク装置２９の構成パラメータや、物理パラメータを記述しておくディスク管理テーブル２５ｂと、ディスク制御手段２４と、複数のディスク装置とを備えている。
【０１００】
上位計算機１と二次記憶装置２とは、ファイルのオープンを上位計算機１から二次記憶装置２へ通知するコマンドや、ファイル識別番号とともにファイル中の指定のデータの転送を要求するコマンドをサポ−トしている。また、上位計算機１と二次記憶装置２とは、相互に、要求に見合った形態（ブロック単位転送またはバイト単位転送）でデータを転送することができる。このようなデータの転送や、コマンドの送受信は、インタフェース制御手段２１、２２が制御する。
【０１０１】
以下、本第３実施例に係る計算機システムの動作を説明する。
【０１０２】
プロセス１２は、ＯＳ２０に対しファイルのオープンや、ファイルのリード・ライトなどのシステムコールを発行する。ＯＳ２０はこれを受信し、バッファ管理手段１３ａはデータ転送に必要なバッファを確保し、デバイスドライバ経由で二次記憶装置２へのオープン、またはリード・ライトコマンドを生成し発行する。コマンドには、システムコ−ルに含まれているオフセットを含める。また、このコマンドの発行に当たってはディレクトリ管理テーブル１４を参照し、このファイルのファイル識別番号を獲得し、コマンドとともに二次記憶装置２へ送信する。また、未登録ファイルのオープン時には、ファイル識別番号を新規に割り当て、割り当てたファイル識別番号を、コマンドとともに二次記憶装置２へ送信する。
【０１０３】
二次記憶装置２において、ファイル管理・コマンド管理手段２３ａは、コマンドを受信、解析し、このコマンドが、新規の論理ブロックの登録を要求するコマンドであれば、新規ファイルアドレス決定手段２６に記憶アドレスの決定を依頼する。新規ファイルアドレス決定手段２６は、ディスク管理テーブル２５ｂ、ローカルファイル管理テーブル２７を参照し、ディスク装置２９の構成パラメータ、物理パラメータや、ＡＰのアクセス特性等を考慮し、この新規な論理ブロックを記憶するロ−カルブロックアドレスを決定し、ローカルファイル管理テーブル２７に登録する。ロ−カルブロックアドレスを決定の詳細については後述する。
【０１０４】
また、ファイル管理・コマンド管理手段２３ａは、解析したコマンドが、既存の論理ブロックのリードもしくはライトを要求するコマンドであれば、ローカルファイル管理テーブル２７を参照し、アクセスする論理ブロックのロ−カルブロックアドレスを求め、このロ−カルブロックアドレスとコマンド中のオフセットで指定されるデータにアクセスする。そして、リ−ドコマンドに対しては読みだしたデータを上位計算機に転送し、ライトコマンドに対しては転送されたデータをライトする。上位計算機１と二次記憶装置２との間のデータの転送は、ＡＰが要求した単位で行う。
【０１０５】
以上のように、本第３実施例によれば、上位計算機は二次記憶装置の構成、物理的特性等をまったく考慮する必要がなく、ただファイル名とファイル識別番号のみを管理すればよい。したがい、様々な二次記憶装置や、その他の外部機器を上位計算機に接続して利用することができる。
【実施例４】
【０１０６】
以下、本発明の第４の実施例について説明する。
【０１０７】
図１２に、本第４実施例に係る計算機システムの構成を示す。
【０１０８】
本第４実施例に係る計算機システムは、前記第３実施例に係る上位計算機と二次記憶装置２を複数台接続したものである。
【０１０９】
各上位計算機１と各二次記憶装置２は共通のインタフェースで接続されている。このインタフェースは、たとえばＳＣＳＩバスとして知られているバス型のインタフェ−スである。
【０１１０】
本第４実施例に係る計算機システムの動作は、前記第３実施例とほぼ同様である。ただし、各ファイルの管理情報は各二次記憶装置毎に分散して配置されているため、各上位計算機１は、各ファイルを記憶している二次記憶装置を管理する。これは、各上位計算機が適当な契機で、各二次記憶装置から記憶しているファイルの情報を得ることにより実現できる。また、同じ二次記憶装置の異なるファイルに、異なる上位計算機によって同じファイル識別番号が割り当てられないように、二次記憶装置側で、新規ファイルへのファイル識別番号の二重割り当てを監視、調停する。これは、たとえば、上位装置よりの新規ファイルのオ−プン要求時に、ファイル識別番号の二重割り当てが発生した場合に、二次記憶装置が上位計算機にファイル識別番号の再割り当てを要求すること等により実現できる。
【０１１１】
さて、前記バスを介した、コマンド、データの転送のシ−ケンスは、たとえば、図１３に示すように実行される。すなわち、まず、ア−ビトレ−ションを実行して、特定の上位計算機１と特定の二次記憶装置２を論理的に接続し、コマンドを上位計算機１より二次記憶装置に転送する。そして、次に、上位計算機は、二次記憶装置２のコマンドに対する前処理期間（ディスク装置のシ−ク期間等）中バスを他の装置に解放するため、メッセ−ジ１を送信し一旦バスを解放する。前処理が終了すると、二次記憶装置２はメッセ−ジ２を送信し、上位計算機とバスを再接続する。そして、次に、リ−ド／ライトするデータを上位計算機１と二次記憶装置２間で転送し、最後に、メッセ−ジ３によってコマンドの正常終了もしくは異常終了を二次記憶装置より上位計算機に通知し、バスを解放する。
【０１１２】
なお、このような、バスは前記第１、第２実施例にも用いることができる。前記第１、第２実施例にも用いる場合には、メッセ−ジ３によって新規な論理ブロックを記憶したロ−カルブロックアドレスも二次記憶装置２から上位計算機１に転送するようにする。
【０１１３】
以上のように、本第４実施例によれば、各上位計算機１はファイル名と、そのファイル識別番号、ファイルを記憶している二次記憶装置の識別以外の情報を保有する必要がないので、複数の上位計算機と複数の二次記憶装置を容易に接続できる。また、ファイル管理情報は、そのファイルを記憶している二次記憶装置のみが保有するので、二次記憶装置側で容易に、複数の上位装置に対するファイルのコヒレンシ−を保つための制御を行うことができる。
【０１１４】
さて、ここで、前述した二次記憶装置におけるファイルの各論理ブロックのロ−カルブロックアドレスの決定手順の詳細について説明する。
【０１１５】
なお、以下に説明する手順は、前記第１実施例から第４実施例にいずれにも適用することができる。
【０１１６】
さて、図１４において、２４はディスク装置制御手段、２９は複数台で構成したディスク装置群である。ディスク装置制御手段２４はディスク装置群２９をＲＡＩＤ５型ディスクアレイとして管理している。ＲＡＩＤ５型ディスクアレイは高速ディスクアクセスと高信頼性を目的としたディスクアレイアーキテクチャであり、このア−キテクチャでは、図示するようにデータをストライプと呼ぶ単位に分割し各ディスク装置に分散配置する。これによりストライプ単位のアクセスでは各ディスク装置を完全に独立に動作させることができ、ディスク台数倍のトランザクション性能を得られる。
【０１１７】
さらに、横ならびのデータストライプ群（たとえば、Ｄ００、Ｄ０１、Ｄ０２）でパリティグループを構成し、これらデータの排他的論理和を計算しパリティ（たとえば、Ｐ０）として一台のディスク装置上に格納する。このパリティは各パリティグループ毎に異なるディスク装置に分散配置する。これにより、万一、１台のディスク装置が故障してもパリティを利用し故障ディスクのデータを復元できる。
【０１１８】
このようなＲＡＩＤ５型ディスクアレイにおいて、各論理ブロックを最適に配置するためには、ストライプサイズや、ディスク台数や、パリティ配置方式等の構成パラメータが必要となる。しかし、これらのパラメ−タは、二次記憶装置の種別毎に異なるため、上位計算機において管理することは困難である。
【０１１９】
一方、これらのパラメータを考慮しないと、例えばストライプサイズと論理ブロックサイズを同一サイズとしたとき、論理ブロックが１つのストライプの先頭、すなわちストライプバウンダリできちんと配置されず２つのストライプにまたがって配置されてしまう事態が発生する。そして、この場合、１つの論理ブロックをアクセスする際にも２つのストライプ、すなわち２台のディスク装置を同時にアクセスする必要が発生するので性能が著しく低下する。
【０１２０】
そこで、本実施例では、二次記憶装置２側が自分の構成パラメ−タに基づいて論理ブロックの配置を決定する。以下、構成パラメ−タを考慮せずに行った論理ブロックの配置によって生じる問題と、これを回避するために二次記憶装置２が自分の構成パラメ−タに基づいて行う論理ブロックの配置の例を示す。
【０１２１】
まず、第１の例を図１５を用いて明する。
【０１２２】
図１５ａは、ストライプ境界を意識せず論理ブロックの配置を決定した結果、データがディスク０のＤ00ストライプとディスク１のＤ01ストライプの２つのストライプを使用して記憶されることとなった場合を示している。この場合、１回の上位計算機からの要求に２台のディスク装置が使用されているので、これと並行して他の要求の処理に使用することができるディスクはディスク２，３の２台となる。
【０１２３】
そこで、本実施例の二次記憶装置は、自分の構成パラメ−タに基づいて、上位計算機から転送された論理ブロックの先頭をストライプバウンダリに合わせるよう配置を決定することにより、図１５ｂに示すようにディスク１のＤ01ストライプのみにデータ格納する。この場合、上位計算機が８ＫＢ固定で新規論理ブロックのライト要求を発行する場合には、最大４つの要求を同時に処理でき、処理スループットを向上することができる。
【０１２４】
次に、第２の例を図１６を用いて説明する。
【０１２５】
図１６ａは４８ＫＢの新規な論理ブロックを、ストライプバウンダリのみを考慮して配置したところを示している。ここで、ＲＡＩＤ５型ディスクアレイではパリティを生成する必要がある。必要となるパリティはＰ0，Ｐ1，Ｐ2であり、これらは、「＊」を排他的論理和を表すものとして以下の生成式に従い生成できる。
【０１２６】
Ｐ0Ｎｅｗ＝（Ｄ01Ｏｌｄ＊Ｄ02Ｏｌｄ）＊（Ｄ01Ｎｅｗ＊Ｄ02Ｎｅｗ）＊Ｐ0Ｏｌｄ
Ｐ1Ｎｅｗ＝Ｄ10Ｎｅｗ＊Ｄ11Ｎｅｗ＊Ｄ31Ｎｅｗ
Ｐ2Ｎｅｗ＝Ｄ20Ｏｌｄ＊Ｄ20Ｎｅｗ＊Ｐ2Ｏｌｄ
ここで、添字Ｏｌｄのついたデータ（たとえば、Ｄ01Ｏｌｄ，Ｄ02Ｏｌｄ，Ｐ0Ｏｌｄ，…等）はディスクにすでに書き込まれているデータであり、添字Ｎｅｗのついたデータ（Ｄ01Ｎｅｗ，Ｄ02Ｎｅｗ，…等）は今まさに書き込もうとするデータである。したがい、Ｐ0の生成にはＤ01Ｎｅｗ、Ｄ02Ｎｅｗの書き込みに先立ち、ディスク１，２，３よりＤ01Ｏｌｄ、Ｄ02Ｏｌｄ、Ｐ0Ｏｌｄをリードする必要があり、Ｐ2の生成にはＤ20Ｎｅｗの書き込みに先立ちディスク０，１よりＤ20Ｏｌｄ、Ｐ2Ｏｌｄをリードする必要がある。このライトに先立つリード（リードモディファイライト処理、以下、「ＲＭＷ処理」と記す）は、多大な処理時間が必要となる。
【０１２７】
そこで、本実施例の二次記憶装置は、自分の構成パラメ−タに基づいて、次のような手順で配置を決定する。
【０１２８】
すなわち、新規ファイルアドレス決定手段２６はローカルファイル管理テーブル２７を参照し、概略アドレスを決定する。概略アドレスとは、ファイルへの論理ブロックの追加を行う場合においては、このファイルが現在格納されているアドレスであり、新規ファイルの論理ブロックの記憶ならば、現在ちょうど使用しているディスクの領域のアドレスである。新規な論理ブロックの概略アドレスをこのように選ぶのは、現在ちょうど使用しているディスク領域のデータと関係あると推測されるデータは、現在ちょうど使用しているディスク領域のデータの近くに配置した方が、確率的にディスクのヘッド移動に要する時間が少なくなるからである。
【０１２９】
次に、概略アドレスが決定したならば、新規ファイルアドレス決定手段２６はディスク管理テーブル２５を参照し詳細アドレスを決定する。
【０１３０】
すなわち、概略アドレスの近傍で丁度４８ＫＢ分すなわち６ストライプを、ディスク０のストライプから開始し、順番に新規論理ブロックを配置可能な領域を、新規ファイルを格納するアドレスとして決定する。この例の場合、ディスク０のストライプ＃ｎからディスク３のストライプ＃ｎ＋１のパリティストライプを除く計６つの連続したデータストライプが未使用であることをストライプ管理テーブルを参照し知ることができる。
【０１３１】
ディスク管理テーブルは、図１７に示すようにさらにストライプ管理テーブルとセクタ管理テーブルにより構成されている。
【０１３２】
ここで、ストライプ管理テーブル１７００は、ストライプ毎に、そのストライプがデータストライプがパリティストライプか、使用中か未使用か一部使用かを登録するエントリを有しており、これより、各ストライプがデータストライプがパリティストライプか、又、ストライプ全域を使用中か未使用か、一部使用かをディスク毎に知ることができる。また各ディスクのストライプ毎に、セクタの使用状況を管理するセクタ管理テーブル１７１０が設けられている。図１７に示したセクタ管理テーブル１７１０は、ストライプサイズ８ＫＢのときのもので、この場合、１ストライプは５１２Ｂのセクタ１６コにより構成されている。このような構成により、各セクタが使用中か未使用かを判断できる。
【０１３３】
たとえば、ディスク＃０のストライプ＃ｎ＋２（図中丸印付加）は属性“０１０”であり一部使用中のデータストライプであることがわかる。そこで同ストライプのセクタ管理テーブルを参照すると、同ストライプ内のセクタ番号０〜７は使用中であり、８〜１５は未使用であることがわかる。そして、これより、上位計算機より転送された新規論理ブロックを図１６ｂのようにＤ00からＤ13までの連続した領域に格納することが決定される。
【０１３４】
さらに、この場合、生成する必要のあるパリティストライプはＰ0，Ｐ1の２つであり、各々以下の生成式により生成される。
【０１３５】
Ｐ0Ｎｅｗ＝Ｄ00Ｎｅｗ＊Ｄ01Ｎｅｗ＊Ｄ02Ｎｅｗ
Ｐ1Ｎｅｗ＝Ｄ10Ｎｅｗ＊Ｄ11Ｎｅｗ＊Ｄ13Ｎｅｗ
この生成式より、ライトに先立つデータのリードを行わなくともパリティを求めることができることが判る。
【０１３６】
さて、ここでＲＭＷ処理はＷ処理の平均１．７倍処理時間がかかると仮定すると、図１６ａのように記憶する場合に比べ、ＲＭＷ処理が不必要になった分、２．２倍の高速に、新規論理ブロックを記憶が行われることになる。
【０１３７】
以上のように、本実施例によれば二次記憶装置において、ＲＡＩＤ型ディスクアレイのパリティ配置の方式や、ストライプサイズや、ディスク数等のパラメータに対し、データ転送長や関連する他のファイルとの位置関係を考慮した最適ファイル格納が実現できる。
【０１３８】
なお、以上ではＲＡＩＤ５型ディスクアレイにおける最適論理ブロック配置の一例を示したが、いかなる構成のディスク装置（群）を用いたとしても、その構成パラメータや、物理特性、さらに論理ブロックサイズや、ＡＰのアクセス特性に合致した最適論理ブロック配置を実現できる。また、同様にして、ディスクアレイ以外の形態のディスク装置や、又は光ディスクやテープデバイスや半導体形記憶装置等についても最適配置を実現することができる。
【実施例５】
【０１３９】
以下、本発明の第５の実施例について説明する。
【０１４０】
本第５実施例は、前記各実施例に係る計算機システムに用いることのできる二次記憶装置２に関するものである。
【０１４１】
本第５実施例に係る二次記憶装置２と、前記第１実施例で示した二次記憶装置（図３参照）との主要な相違は、本第５実施例に係る二次記憶装置２が複数のディスク装置群を備えている点である。
【０１４２】
図１８に、本第５実施例に係る二次記憶装置の構成を示す。
【０１４３】
図中、３６ａ１、３６ａ２、３６ａ３はディスク装置群、２４ａ１、２４ａ２、２４ａ３は各ディスク装置群を制御するディスク装置制御手段、３４はどのディスク装置群を使用するかを選択するディスク装置群選択手段、３５はディスク装置群を切り替えるディスク装置群切り換え手段、２５ｂ１、２５ｂ２、２５ｂ３は各ディスク群の構成パラメータや、物理特性や、使用状況を管理するディスク管理テーブル、１８００はディスク群更新制御手段である。他部は、図３において同符号を付して示した部位と同じ部位であるので説明を省略する。
【０１４４】
以下、本第５実施例に係る二次記憶装置の動作の概要を説明する。
【０１４５】
二次記憶装置２のコマンド管理手段２３は、上位計算機１からアクセス要求を受信し、その要求が新規論理ブロックをライトする要求である場合には、新規ファイルアドレス決定手段２６にこれを通知し、新規ファイルアドレス決定手段２６は、ロ−カルファイル管理テーブル２７、および、各ディスク管理テーブル２５ｂ１、２５ｂ２、２５ｂ３を参照し、最適なディスク装置群を選択しロ−カルブロックアドレスをマッピングする。そして、これをディスク装置群選択手段３４に通知し、ディスク装置群選択手段３４はこれを受けディスク装置群切り換え手段３５を操作し、選ばれたディスク装置群を選択する。その後の処理は、第１実施例と同様である。
【０１４６】
新規ファイルアドレス決定手段２６が行う、ディスク装置群の選択は、転送長や、ファイル自体のアクセス頻度の特性や、ディスク装置群の特性等を考慮して行う。より詳細な例は後述する。
【０１４７】
さて、本第５実施例に係るディスク装置群は、具体的には、たとえば、図１９に示すように構成することができる。
【０１４８】
図１９に示した例では、ディスク装置群１はＲＡＩＤ１型ディスクアレイ装置（またはミラーディスク装置）、ディスク装置群２はＲＡＩＤ３型ディスクアレイ装置、ディスク装置群３はＲＡＩＤ５型ディスクアレイ装置としている。
【０１４９】
この場合、アクセス頻度の高いファイルや高性能を要求するファイルはＲＡＩＤ１型のディスク装置群１に保管するのがふさわしく、画像データのような大容量シーケンシャルファイルはＲＡＩＤ３型のディスク装置群２に保管するのがふさわしく、データベースアクセスなどのトランザクション用ランダムファイルはＲＡＩＤ５型のディスク装置群３に格納するのがふさわしい。
【０１５０】
そこで、新規ファイルアドレス決定手段２６は、ディスク装置群の選択を次のように行う。
【０１５１】
まず、新規ファイルアドレス決定手段２６は、上位計算機よりのコマンドが既存のファイルの既存の論理ブロックを更新を要求するものである場合には、既存の論理ブロックを格納しているディスク装置群を選択する。
【０１５２】
一方、上位計算機よりのコマンドが新規な論理ブロックの登録を要求するものである場合には、新規ファイルアドレス決定手段２６は、まずどのディスク装置群に、この論理ブロックを登録するかを、図２０に示す手順に従い決定する。
【０１５３】
すなわち、まず、書き込む論理ブロックの属するファイルが新規か既存かの判断を行い（ステップ２００１）、新規のファイルであれば、ファイルの特性が未知であるので、ひとまずＲＡＩＤ１型ディスクアレイ（ディスク群１）を選択する（ステップ２００６）。
【０１５４】
一方、書き込む論理ブロックの属するファイルが既存のファイルであれば、そのファイルのランダムアクセス性についての判断を行う（ステップ２００２）。この判断には、ロ−カルファイル管理テーブル２７を用いて行う。
【０１５５】
すなわち、図２１に示すように、ロ−カルファイル管理テーブルの各ファイル管理情報の、参照カウントフィールド１５６に、アクセス特性判定用の５つのサブフィールドを設ける。ここで、第１のサブフィールドは前回参照した上位計算機からの要求のアドレス（ファイル先頭からのバイト数）を格納するフィールド１５６１、第２のサブフィールドは前回参照したときの転送長（バイト数）を格納するフィールド１５６２、第３のサブフィールドはランダムアクセス回数の頻度を示すフィールド１５６３、第４のサブフィールドはシーケンシャルアクセス回数の頻度を示すフィールド１５６４、第５のサブフィールドはこのファイルの全参照回数を格納するフィールド１５６５である。また、ランダムアクセス回数フィールド１５６３、シーケンシャルアクセス回数フィールド１５６４の更新は、ファイルのアクセスの度に、次の処理により行われる。すなわち、式  今回参照アドレス≦前回参照アドレス＋前回転送長＋αを判定し、式が成立すれば、このアクセスはシーケンシャルと判断し、シーケンシャルアクセス回数サブフィールド１５６４に１を加算する。もし不成立ならばランダムアクセスと判断し、ランダムアクセス回数サブフィールド１５６３に１を加算する。ただし、「今回参照アドレス」は上位計算機のライト要求のファイル先頭からの位置（バイト数）、αはシーケンシャル性の判断基準用定数である。なお、もし、完全に連続したアクセスのみをシーケンシャルとしたいときは、α＝０に設定すればよく、もし、ある程度幅をもたせてシーケンシャル性を判断したいときはαをある値に設定すればよい。このようにしてファイル参照のたびにランダム／シーケンシャル性を判定していく。
【０１５６】
さて、ステップ２００２に戻り、既存のファイルのランダムアクセス性についての判断、すなわち、ランダムアクセス性が大きいか、小さいかの判断は、次のように行う。
【０１５７】
すなわち、Ａ、Ｂを適当な設定値として、もし、対応するファイル管理情報の、参照回数フィ−ルド１５６５の値がＡより大きく、ランダムアクセス回数フィ−ルド１５６３の値／参照回数フィ−ルド１５６５の値がＢ以上であれば、ランダムアクセス性が大と判定し、参照回数フィ−ルド１５６５の値がＡより大きく、ランダムアクセス回数フィ−ルド１５６３の値／参照回数フィ−ルド１５６５の値がＢ未満であればランダムアクセス性が小と判定する。また、参照回数フィ−ルド１５６５の値がＡより小さければ、判定不能と判断する。これは、参照回数がある一定値Ａより小さい場合には、ファイルは作成されたばかりであって、まだシーケンシャル／ランダム性の判断できないからである。
【０１５８】
次に、この判断の結果、ランダム性大ならばＲＡＩＤ５型ディスクアレイ（ディスク群３）を選択し（ステップ２００４）、判定不能ならばＲＡＩＤ１型ディスクアレイ（ディスク群１）を選択する（ステップ２００６）。ここで、判定不能の場合に、ＲＡＩＤ１型ディスクアレイ（ディスク群１）を選択するのは、作成したばかりの、ファイルはＲＡＩＤ１型ディスクアレイ（ディスク群１）に格納されているはずであるからである。
【０１５９】
なお、ステップ２００２では、ランダムアクセス比率＝ランダムアクセス回数／参照回数が定数Ｂ（Ｏ＜Ｂ＜１）より大きいかどうかを判定したが、シーケンシャルアクセス比率をシ−ケンシャルアクセス回数フィ−ルド１５６４の値／参照回数フィ−ルド１５６５の値を基準にして判定を行うようにしてもよく、また、両者を加味した判定を行ってもよい。
【０１６０】
さて、ステップ２００２で、ランダム性が小と判断されたならば転送長の判定を行う。すなわち、コマンドで書き込みを要求されているデータ長（転送長）がある一定値Ｃ以上ならば、転送長大と判断し、ＲＡＩＤ３型ディスクアレイ（ディスク群２）を選択する。また転送長がある一定値Ｃ未満のときは、ＲＡＩＤ３型は効率が悪いのでＲＡＩＤ１型を選択する。
【０１６１】
以上のように、新規ファイルが既存ファイルか、ランダム性が大か小か、転送長が大か小かの判定を行うことにより、適切なディスク群を選択する。そして、選択したディスク群に、新規な論理ブロックを書き込むと共に、選択したディスク群が、新規な論理ブロックの属する既存のファイルの既存の論理ブロックが記憶されているディスク群と異なる場合には、選択したディスク群に既存の論理ブロックを移動し、これに合わせファイル管理テ−ブルを更新する。なお、この際、ロ−カルファイル管理テーブル２７の各ファイル管理情報に設けたファイルの再配置の有無を示す更新フラグ１８８を”更新済み”に設定する。
【０１６２】
なお、以上では、新規ファイルはすべて、ＲＡＩＤ１型ディスクアレイ（ディスク群１）に書き込むこととした。これはアクセス特性が不明であるためである。しかしながらＲＡＩＤ１型ディスクアレイは信頼性が高い点を除いては１台のディスクと同等の性能であり、ランダム性の強いファイルや、シーケンシール性の強いファイルのアクセスには適さない。また、ディスク容量も限られているので、適当なタイミングでそのアクセス特性に適したディスク群を選択し直し、ファイルを移動させることが望ましい。
【０１６３】
そこで、ディスク群更新制御手段１８００が、定期的に、コマンド管理手段２３にファイル毎に格納するディスク群を選択しなおすよう要求を発行するようにする。
【０１６４】
コマンド管理手段２３はこの要求をうけ、ロ−カルファイル管理テーブル２７の各ファイル管理情報の更新フラグ１８８を参照し、もし、更新フラグが“未更新”に設定されていたならば最近新規に作成されたファイルなので、ディスク装置群選択手段を起動し、図２０に示した手順に従いディスク群の再選択を試みる。
【０１６５】
そして、ランダム性又はシーケンシャル性が強いファイルであることが判定されたなら上述のようなディスク群を選択して、ＲＡＩＤ１型ディスクアレイ（ディスク群１）以外のディスク群が選択されたら、そのディスク群にファイルを移動し、更新フラグ１８８を“更新済”に設定する。
【０１６６】
もし、判定不能であれば、そのままディスク群１に当該ファイルを置く。このとき、更新フラグは“未更新”のままにする。なお、ファイル移動中にこのファイルへのアクセス要求が上位計算機から発行されることがあるため、このとき更新フラグは“更新中”に設定しておく。また、ファイルの移動に伴いファイル管理テーブルを新規に作成し直し、ファイルの移動が完全に終了したら、ファイル管理テーブルを新規のものに切りかえ古いものは削除してしまう。なお、ディスク群の選択後の論理ブロックの論理ブロックアドレスへの登録は先に示したように行えばよい。
【０１６７】
以上の処理により、アクセス特性に適したディスク群を選択できる。
【０１６８】
なお、以上ではディスク群としてＲＡＩＤ１型、ＲＡＩＤ３型、ＲＡＩＤ５型のディスクアレイを使用した例を使用したが、これ以外の装置を導入しても、同様な手順によりアクセス特性に適したディスク群を選択できる。
【０１６９】
さて、本第５実施例に係るディスク装置群（図１９参照）は、図２２に示すように構成することもできる。
【０１７０】
図２２に示した例では、構成パラメータの１つであるストライプサイズがそれぞれ異なる３つのディスクアレイ装置をディスク装置群１、２、３としている。
【０１７１】
この場合、比較的小さなファイルを格納するにはストライプサイズを小さく設定したディスク装置群１に、また逆に十分大きなファイルを格納するにはストライプサイズを大きく設定したディスク装置群３に登録するのがふさわしい。したがい、ファイル長に応じて、ディスク装置群を選択すれば、ファイルの特性に適したディスク群を選択できる。
【０１７２】
または、データの転送長に応じて、ストライプサイズ×ディスク台数×ｎが転送長となるようなディスク群を選択するようにすれば、効率よく、ディスク台数分の転送性能を得ることができる。
【０１７３】
また、本第５実施例に係るディスク装置群（図１９参照）は、図２３に示すように構成することもできる。
【０１７４】
図２３に示した例では、ディスク装置群１に磁気ディスク装置を、ディスク装置群２に光ディスク装置を、ディスク装置群３にテープライブラリ装置を用いている。この場合、アクセス頻度の高いファイルは磁気ディスク装置に、アクセス頻度の余り高くないファイルは光ディスク装置に、ほとんどアクセスしないファイル（バックアップ等）はテープライブラリ装置に登録することが望ましい。
【０１７５】
そこで、ある一定時間毎に、ディスク群更新制御手段１８００が、コマンド管理手段２３にファイル毎に格納するディスク群を選択しなおすよう要求を発行するようにする。そして、コマンド管理手段２３が、この要求をうけ、ロ−カルファイル管理テーブル２７の各ファイル管理情報のタイムスタンプ１５３の前回参照時間と、参照回数フィ−ルド１５６５を参照し、このファイルが最近アクセスされているのかどうか、又は参照回数が多いかどうかを判定する。そして、もし一定期間アクセスされていないならば古いファイルであり、高速なディスク上のスペースを占拠していることは非効率であるので、たとえば光ディスク等にファイルを移動するようにする。
【０１７６】
なお、たとえば夜間に、テープライブラリ装置に、他のディスク装置に記憶されているファイルを複写し、バックアップを取るようにしてもよい。
【０１７７】
以上のように本実施例によれば複数のディスク装置群を二次記憶装置内に設けることができ、その構成を変えることで多種多様なアクセス要求やファイル特性に適した論理ブロックの論理ブロックアドレスへのマッピングを実現でき、様々な形態の記憶システムおよび計算機システムを構築できるという効果がある。
【０１７８】
以上説明してきたように、本実施例によれば、二次記憶装置固有の構成パラメータや、物理パラメータを配慮し、かつ上位計算機のＡＰのアクセス特性に合致した最適ファイル配置を実現でき、高速なファイルアクセスを実現できる。またこれにより高性能な計算機システムを実現できる。また、上位計算機に本発明の二次記憶装置のみならず従来の二次記憶装置をも接続でき、柔軟な計算機システムを構築できる。また、上位計算機は二次記憶装置の構成、物理特性を考慮する必要がないので、簡単に様々な二次記憶装置を上位装置に接続できる。また、複数台の上位計算機と複数台の二次記憶装置を接続した分散ファイル管理型計算機システムを容易に構築できる。
【０１７９】
本発明に係る計算機システムによれば、計算機は、新たな論理ブロックの二次記憶装置への記憶を行う場合には、二次記憶装置のロ−カルアドレスを指定せずに、前記二次記憶装置に論理ブロックの記憶を要求する。一方、二次記憶装置は、新たな論理ブロックの前記記憶手段への記憶を前記計算機より要求されると、記憶を要求された論理ブロックを記憶するロ−カルアドレスを所定の手順により決定し、決定したロ−カルアドレスに記憶を要求された論理ブロックを記憶すると共に、決定したロ−カルアドレスを前記計算機に通知する。計算機は、通知されたロ−カルアドレスを、記憶を要求した新たな論理ブロックに対応付けて前記ファイル管理テ−ブルに登録し、以降、この論理ブロックにアクセスする場合には、ファイル管理テ−ブルを参照し、アクセスする論理ブロックのロ−カルアドレスを指定して二次記憶装置にアクセスを要求する。
【０１８０】
このように、本発明によれば、ファイルを構成する論理ブロックを記憶するロ−カルアドレスを、二次記憶装置が決定する。ここで、個別の二次記憶装置に、自身の構成や状態を把握させるのは容易であるので、二次記憶装置は、論理ブロックの最適な記憶位置を決定することができる。よって上位計算機に二次記憶装置のパラメータを設定すること無しに、ファイルの二次記憶装置への最適配置を実現することができる。
【図面の簡単な説明】
【０１８１】
【図１】本発明の実施例に係る計算機システムのハ−ドウェア構成を示すブロック図である。
【図２】本発明の実施例におけるファイル管理の概念を示した説明図である。
【図３】本発明の第１実施例に係る計算機システムの構成を示したブロック図である。
【図４】本発明の第１実施例に係るファイル管理テーブルの構成を示す説明図である。
【図５】本発明の第１実施例に係るＯＳが行うファイルオ−プン処理の手順を示すフロ−チャ−トである。
【図６】本発明の第１実施例に係るＯＳが行うファイルリ−ド処理の手順を示すフロ−チャ−トである。
【図７】アクセスするデータと論理ブロックの関係を示した説明図である。
【図８】本発明の第１実施例に係るＯＳが行うファイルライト処理の手順を示すフロ−チャ−トである。
【図９】本発明の第１実施例に係る二次記憶装置が行うファイルリ−ド／ライト処理の手順を示すフロ−チャ−トである。
【図１０】本発明の第２実施例に係る計算機システムの構成を示したブロック図である。
【図１１】本発明の第３実施例に係る計算機システムの構成を示したブロック図である。
【図１２】本発明の第４実施例に係る計算機システムの構成を示したブロック図である。
【図１３】本発明の第４実施例に係る上位計算機と二次記憶装置間の転送シ−ケンスを示すタイムチャ−トである。
【図１４】ディスクアレイ装置のストライプを示す説明図である。
【図１５】論理ブロックへのロ−カルアドレスの割り当てのようすを示す説明図である。
【図１６】論理ブロックへのロ−カルアドレスの割り当てのようすを示す説明図である。
【図１７】本発明の実施例に係るストライプ管理テ−ブルとセクタ管理テ−ブルの構成を示すブロック図である。
【図１８】本発明の第５実施例に係る二次記憶装置の構成を示すブロック図である。
【図１９】本発明の第５実施例に係る二次記憶装置の第１の具体的構成例を示すブロック図である。
【図２０】本発明の第５実施例に係るディスク群選択処理の手順を示すフロ−チャ−トである。
【図２１】本発明の第５実施例に係るロ−カルファイル管理テ−ブルの構成を示す説明図である。
【図２２】本発明の第５実施例に係る二次記憶装置の第２の具体的構成例を示すブロック図である。
【図２３】本発明の第５実施例に係る二次記憶装置の第３の具体的構成例を示すブロック図である。
【図２４】従来の計算機システムの構成を示すブロック図である。
【符号の説明】
【０１８２】
１・・・上位計算機
２・・・二次記憶装置
１２・・・プロセス
１３・・・ファイル管理・バッファ管理手段
１４・・・ディレクトリ管理テーブル
１５・・・ファイル管理テーブル
１６・・・デバイスドライバ
１７・・・新規ファイルアドレス決定手段
１８・・・オープンファイル情報通知手段
１９・・・新規ファイルライト通知手段
２０・・・オペレーティングシステム
２１・・・インタフェース制御手段
２２・・・インタフェース制御手段
２３・・・コマンド管理手段
２４・・・ディスク装置制御手段
２５ｂ・・・ディスク管理テーブル
２６・・・新規ファイルアドレス決定手段
２７・・・ロ−カルファイル管理テーブル
２８・・・新規ファイルアドレス通知手段
２９・・・ディスク装置
【図１】
2006294052.tif 000003
【図２】
2006294052.tif 000004
【図３】
2006294052.tif 000005
【図４】
2006294052.tif 000006
【図５】
2006294052.tif 000007
【図６】
2006294052.tif 000008
【図７】
2006294052.tif 000009
【図８】
2006294052.tif 000010
【図９】
2006294052.tif 000011
【図１０】
2006294052.tif 000012
【図１１】
2006294052.tif 000013
【図１２】
2006294052.tif 000014
【図１３】
2006294052.tif 000015
【図１４】
2006294052.tif 000016
【図１５】
2006294052.tif 000017
【図１６】
2006294052.tif 000018
【図１７】
2006294052.tif 000019
【図１８】
2006294052.tif 000020
【図１９】
2006294052.tif 000021
【図２０】
2006294052.tif 000022
【図２１】
2006294052.tif 000023
【図２２】
2006294052.tif 000024
【図２３】
2006294052.tif 000025
【図２４】
2006294052.tif 000026