JP3817339B2 - ファイル入出力制御方法 - Google Patents
ファイル入出力制御方法 Download PDFInfo
- Publication number
- JP3817339B2 JP3817339B2 JP16993597A JP16993597A JP3817339B2 JP 3817339 B2 JP3817339 B2 JP 3817339B2 JP 16993597 A JP16993597 A JP 16993597A JP 16993597 A JP16993597 A JP 16993597A JP 3817339 B2 JP3817339 B2 JP 3817339B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- data
- request
- input
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
Description
【発明の属する技術分野】
本発明は、ファイル入出力制御方法に係わり、特に1つのファイルを関連する複数のプロセスによって並列にアクセスするよう制御する高速ファイル入出力制御方法に関する。
【0002】
【従来の技術】
ファイルに何らかの属性を付加してファイルアクセスの高速化を図り、ファイル入出力のリアルタイム性の保証を行うファイルシステムが知られている。例えば特開平8−292905号公報は、ファイルを複数の装置に分割して格納し、ファイルシステムが入出力速度情報を保持し、ファイル入出力速度情報に従って各装置に入出力するデータ量を決めるファイルシステムを開示する。しかしこの技術は、ユーザがファイルの構造を定義するものではなく、ファイルシステムが構造を決定し、速度情報という属性を与えるものである。また指定可能な属性は、ディスク装置の速度に限られている。
【0003】
ファイルの並列アクセスを目的とする他のファイルシステムとして、NilsNieuwejaar,David Kotz著、「Galley並列ファイルシステム」(article entitled ”The Galley Parallel File System”,in the Conference Proceedings of the 1996 International Conference on Supercomputing,pp.374−381)がある。このファイルシステムによってファイルの構造を設定することができるが、ユーザの所望するファイルのアクセスパターンに従ってファイル構造や属性を変更することができない。
【0004】
【発明が解決しようとする課題】
複数のプロセスが協調して計算を行うようなアプリケーションプログラムにおいて、各プロセスは、高速化のためにしばしばファイルの一部分を並列にアクセスする必要が生じる。この場合、アプリケーションプログラムがファイルに対するアクセスのパターンを決定するので、ファイルシステムが勝手にファイルの分割を行い分割された領域をディスク装置へ割り付けると、ユーザの所望するアクセスパターンと合わなくなりファイルを並列アクセスすることによる高性能を引き出すことができない。例えば図18に示すように、700は並列動作する各アプリケーションプログラムP1〜P4がアクセスする論理ファイル内の範囲を示すアクセスパターンである。各プログラムは、それぞれ論理ファイル上の位置とアクセスバイト数を指定してファイルの一部領域をアクセスする。P1からP4までの4つのアプリケーションプログラム又はプロセスは、各々の領域について並列にファイルをアクセスする。従来のファイルシステムの構造定義機能は、701に示すようにファイルを均等に分割し、それぞれの領域に対してディスクD1〜D4を割り付ける。従ってプログラムP1はディスクD1とD2をアクセスし、プログラムP2はディスクD2とD3をアクセスする。他のプログラムについても同様である。この場合、ディスクD2はプログラムP1とP2の両方からアクセスされるので、並列動作するP1とP2はディスクD2についてどちらかの処理の完了を待たなくてはならず、並列アクセスによる効果を期待できない。ディスクD1の範囲をプログラムP1の範囲に合わせたとしても各アプリケーションプログラムのアクセス範囲が均等でないので、上記問題が生じる。
【0005】
また従来のファイルシステムにおいては、ユーザはファイル入出力の性能を決定する属性(ファイルの論理構造と物理装置との対応、データの転送経路、ストライピングなど)をファイルシステム単位に指定するか、又はシステム起動時にしか指定できず、ファイル単位にこの属性を変えたい場合やパラメータを動的に変えたい場合は問題である。例えば図18に示す702のような均一でない割り当て指定が可能であったとしても、ファイルごとにその指定ができなければ意味がない。何故ならば、複数のファイルの集まりであるファイルシステムに対して特定のアプリケーションのアクセスパターンを指定することになるからである。
また従来のファイルシステムは、ファイルの並列アクセスをする複数のプロセスからのアクセス要求をまとめて発行する機能をもっていないので、各プロセスが各々独立にアクセス要求を発行する必要があり、性能上の問題が生じる。
【0006】
さらにファイルデータの転送に際して、従来のファイルシステムは、ネットワークを経由するデータ転送の場合、ディスク装置とネットワーク間のデータ転送にファイル管理プログラムが介入するので、転送性能上問題である。ディスク装置とネットワークを直接連結するようなデータ転送方式が望まれる。
【0007】
本発明の目的は、ユーザの所望するアクセスパターンに合うようなファイル構造の設定をファイルごとに可能とし、ファイルの並列アクセス効果を発揮するようなファイル入出力制御方法を提供することにある。
【0008】
本発明の他の目的は、ファイル内の各領域に対応して種々の属性を設定可能とすることにある。
【0009】
本発明の他の目的は、複数のプロセスからのアクセス要求をまとめて発行し、ファイルの並列アクセスを総合的にスケジューリングするファイル入出力制御方法を提供することにある。
【0010】
本発明のさらに他の目的は、ディスク装置とネットワーク間のデータ転送の性能を向上させることにある。
【0011】
【課題を解決するための手段】
本発明は、ファイルを複数の領域に分割し、複数の領域を複数の物理装置に分散して割り付けるように要求するアプリケーションプログラムによるファイル構造設定要求に応答して指定されたファイル構造を設定するテーブルを作成して、ファイル内領域を指定された物理装置に割り付け、ファイル内の複数の領域を並列にアクセスするように要求する入出力要求に応答して設定されたファイル構造テーブルを参照して入出力要求を各物理装置ごとのアクセス要求に展開し、アプリケーションプログラムを実行する複数のプロセスと物理装置との間で並列にデータ転送を行うよう制御する高速ファイル入出力制御方法を特徴とする。なおファイル内の各領域に対応してデータの転送経路、データのストライピング、データのキャッシングなど種々の属性を設定可能とする。
【0012】
また本発明は、アプリケーションプログラムを実行する複数のプロセスのうちの1つのプロセスがファイル内の複数の領域を並列にアクセスするように要求する入出力要求の全体をまとめて発行する高速ファイル入出力制御方法を特徴とする。
【0013】
さらに本発明は、ネットワークを介してアプリケーションプログラムを実行するプロセスと物理装置との間のデータ転送を行う場合に、該ファイル管理プログラムによって物理装置のディバイスドライバが起動された後、物理装置のディバイスドライバとネットワークのディバイスドライバを介してデータを直接ネットワークと物理装置との間に転送する高速ファイル入出力制御方法を特徴とする。
【0014】
【発明の実施の形態】
以下に本発明の一実施形態について図面を用いて詳細に説明する。
【0015】
図1は、実施形態の高速ファイルシステムの構成を示す図である。ネットワーク9を介して計算機1〜6、8が接続され、各計算機上にはファイルサーバ(FS)11〜13、15、16、18及び19が搭載され動作する。計算機1〜4及び8は、入出力装置としてネットワーク9又は25のみを接続する。計算機1及び5は、ネットワーク9以外にネットワーク10を接続する。計算機5及び6は、入出力装置としてネットワーク9,10以外にディスク装置20〜23を接続する。ディスク装置20〜23は、各々装置番号によって参照され、その装置番号はそれぞれ1、3、2、4である。計算機8は、別のネットワーク25へのゲートウェイとして機能する。ネットワーク25の他方には計算機7が接続されており、計算機7はディスク装置24を接続する。計算機1に搭載されるユーザのアプリケーションプログラム(AP)17は、ディスク装置20〜24上のファイルにアクセスするために、同計算機上のファイルサーバ18にファイル構造の定義を指示し、ファイル入出力要求を発行する。アプリケーションプログラムが計算機1以外の計算機2〜4上で並列動作する場合、各計算機2〜4上のファイルサーバ11〜13も計算機1のファイルサーバ18と同様の動作を行う。またディスク装置20〜23を接続する計算機5,6や外部のネットワーク25を接続する計算機8上のファイルサーバ15,16,19は、他の計算機1〜4上のファイルサーバからの要求を受け取って実際のディスク入出力処理を行い、結果を要求元の計算機1〜4へ送信する。以下の説明では、特に計算機1上のAP17について詳細に説明するが、他の計算機2〜4上で並列動作するアプリケーションプログラムも各計算機2〜4上で同様に動作する。次にファイル入出力処理の手順について述べる。
【0016】
ユーザから見たファイル入出力処理は、図2に示す様に、一般にファイルの作成、ファイル構造の定義、ファイル入出力システムコールの発行及びファイル入出力処理の終了の各ステップからなる。各ステップに対応するファイルサーバの処理の概略を以下に述べる。ファイルの作成に関しては、要求のあったファイルに関する情報の管理領域の割り付け、ファイルディスクリプタの割り付けなどを行う。ファイルディスクリプタは、ファイル名に対応する内部的なファイルIDである。ファイル構造の定義では、ユーザから渡されたファイル構造定義用のスクリプトを解釈し、その結果を記憶装置に格納する。ファイル入出力システムコールが発行された場合は、ファイル構造定義に基づいてファイル入出力を行う。ファイル入出力終了処理のステップでは、キャッシュデータのディスク上への書き込み、主記憶上の不要な管理データの解放などを行う。本実施形態のファイルサーバは、上記の処理を行うファイル管理プログラムである。
【0017】
次に上記ステップ中のファイル構造定義(100)について詳しく述べる。ファイル構造定義では、ユーザはファイル構造を定義し、定義したファイル構造中の各領域に関して、属性(ファイル領域を割り付けるディスク装置、使用するアクセス経路、ストライピング、アクセス時に使用するプロトコルなど)を与えることにより、ファイルサーバに対して性能と信頼性を向上するようなファイルアクセスを指示することができる。アプリケーションプログラムが複数のプロセスによって動作する場合には、そのアプリケーションプログラムに対して1つの構造定義を設定する。図3にファイル構造定義スクリプトの例を示す。斜体の単語がキーワードであり、文の区切りはセミコロンである。最初の文は、ファイルの論理構造を定義しており、定義するファイルがA,B,C,Dの4つの領域から構成されていることを示している。type_Aなどは、データの型と領域の大きさを示す型指定子であり、その内容は図示しない文によって定義される。例えば固定長のバイトの配列、固定長の文字列などである。struct文は、ファイルがA〜Dまでの4つの領域から成ることを示す。struct文の下は、上記の各領域に対して属性を指定している部分である。distribute文は、属性として物理的な装置を指定する。図3では、領域A,B,Cについて各々複数の入出力装置が設定されていることを示す。例えば最初のdistribute文では、領域Aはディスク装置20、22(図1参照、ファイル構造記録テーブル上のディスク装置番号はそれぞれ1と2である)に均等に分配されることを意味する。set path文は、属性として該当領域へアクセスするための経路を指定する。この例では領域Cが存在するディスク装置20、21は計算機5に接続されており、アプリケーションプログラムが動作する計算機1とこの計算機の間には、図1に示すようにネットワーク9を用いる経路P1と、ネットワーク10を用いる経路P2の2つが存在する。最初のset path文は、領域Cに対するアクセスに上記の経路P1とP2を使用することを意味する。これによりこれら2経路を使用した大きな通信バンド幅のデータ転送が可能となり、領域Cへの高性能アクセスが達成できる。ただしこれは計算機1上のアプリケーションプログラムに対してのみ適用する。最後のset path文は、領域Dへのアクセス経路を指定すると同時に、アクセス手段がNFSプロトコルであることを示している。従って領域Dへのアクセスは、ゲートウェイ計算機8を介して行われる。ディスク装置24は、NFS指定によって計算機1〜4上で動作するアプリケーションプログラムからは、ゲートウェイ計算機8に接続しているディスク装置のように見える。
【0018】
このファイル構造定義スクリプトを受け取ったファイルサーバは、これを解釈し、ファイル構造記録テーブル60を作成する。図4に上記ステップで定義されたファイル構造を示す。上段(600)はスクリプトで定義した領域の名前を示す。下段(601)は、各領域がどの装置上に分散されているかを示す。ファイルサーバは、各領域の物理装置への割り当てを決定する。例えば領域Aについては、領域Aの前半分がディスク装置20に、後半分がディスク装置22に割り付けられる。従って領域Aの前半分へのアクセスは全てディスク装置20へのアクセスとなる。図5にファイル構造記録テーブル60のデータ構成を示す。このテーブルは、始めの列から順番に領域の名前、領域の各分割部分の開始オフセット61、分割部分の長さ(バイト数)62、割り付けられるディスク装置の番号63及びその他の属性64から構成される。開始オフセット61は、当該ファイルの先頭を0とする相対バイトアドレス(RBA)によって表現される。領域Aについては、ディスク装置20と22に分散して格納されるという指定になっている。しかし分散する量は明記されていないので、ファイルサーバは領域Aを等分して格納することにする。これにより領域Aの2つの部分のファイル全体に対するオフセットと長さが決まる。領域Aについてはファイルの先頭から長さL1バイト分のデータがディスク装置20に、OFT1(=L1)から長さL2バイト分のデータがディスク装置22に格納される。領域Cに関しては、アクセスする経路としてP1、P2が指定されているので、その他の属性の欄にアクセス経路が記録される。また領域Dに関しては、別なネットワークN1を介してNFSプロトコルでアクセスするので、その他の属性の欄にはプロトコルが記録される。ファイルサーバ18は、ファイル構造定義ステップの最後で作成したファイル構造記録テーブル60の情報をディスク装置20,21などいずれかのディスク装置に格納する。
【0019】
本発明のファイル構造定義機能によれば、ユーザは並列効果を発揮するような最適のアクセスパターンを想定し、そのアクセスパターンに合うようにファイル構造を設定できる。例えば図18に示す700のようなAPのアクセスパターンに対して702のようにファイル構造を定義すれば、各APは完全に独立してディスク装置D1〜D4にアクセスすることができ、ファイルの並列アクセスによる並列効果を得ることができる。
【0020】
次にこの例における実際の入出力動作の詳細を説明する。ファイル入出力処理は、図1に示すとおり、検索ステップ200、スケジュールステップ300、入出力実行ステップ400及びフィルタステップ500から成る。AP17は、ファイル中の図4に示す部分602、603、604にアクセスするものとする。部分602は領域Aのみのアクセス領域であり、範囲はオフセットo1からo2である。部分603は領域BとCにまたがったアクセス領域であり、604は領域Dのみのアクセス領域である。APがアクセス要求を発行するとき、図6に示すようなアクセス要求のリストをファイルサーバ18に渡す。要求リストの各要素620、621、622は、それぞれ部分602、603、604へのアクセス要求に対応する。各要素にはアクセスする領域のオフセット、長さ、アクセスするAPプロセスのプロセスID、データを受け渡しするバッファ領域及びアクセスの種類を格納する。この例ではアクセスする3つの領域は、各領域にアクセスするプロセスによって並行してアクセスされることを示している。要素620では、オフセットo1から長さl1バイト分のデータをバッファb1へ読み込む要求を示す。AP17とファイルサーバ18の間には、このような要求のリストを渡すことによって複数のアクセス要求を一度に発行できるアプリケーションプログラム・インタフェース(API)が用意されている。
【0021】
図7に示すようにAP17が入出力要求を発行すると、ファイルサーバ18はその要求を受け取り、処理は検索ステップ(図7の200)に入る。検索ステップ200では、要求リストの各要素のオフセットと長さを取得し、ファイル構造記録テーブル60を検索して、要求がどの領域に対応するかを特定する。これが領域の特定(201)である。部分602への要求に対しては、テーブル60(図5)を検索して、要求の開始オフセットo1が0からp2(=0+L1+L2)の間にあることを確認し、要求の終了オフセットo2(=o1+l1)が0からp2にあることを確認することにより、部分602への要求が領域Aに対してのみの要求であることを特定する(図8参照)。部分603への要求の場合は、オフセットo3がp2とp4の間にあることを確認し、要求の最後のo4(=o3+l2)がp4とp6の間にあることを確認することにより、この要求が2つの領域BとCに対する要求であることを特定する。このような2つ以上の領域に対する要求の場合は、要求を部分606と607の様に、領域毎に分割する。部分604への要求は、部分602への要求と同様に、領域Dに対してのみの要求であることを特定する。
【0022】
次に領域中の部分の特定処理202を行う。これはここまでのステップで各領域対応となった要求を更にディスク装置ごとの要求へと分割する(図8参照)。部分602への要求については、ファイル構造記録テーブル60(図5)と要求範囲を比べて要求がディスク装置20と22に渡っていることを認識し、部分602への要求をディスク装置ごとの要求として、ディスク装置20への要求608とディスク装置22への要求609に分割する。要求606の場合は、ディスク装置23のみを対象とするアクセス要求なので、このステップではそのままである。要求607に関しては、ファイル構造記録テーブル60を調べて要求がディスク装置20と21に渡っていることを認識し、要求をディスク装置20への要求611とディスク装置21への要求612に分割する。要求604に関しては、要求先の物理装置は要求範囲に亘って同じなのでこのステップではそのままである。
【0023】
次にファイルサーバ18は、スケジュールステップ300を実行する。図9にスケジュールステップを示す。スケジュールステップは、ファイル入出力要求を発行したAP17が存在する計算機1上のファイルサーバ(18)上で動作する部分と、検索ステップによつてディスク装置ごとに分割されたアクセス要求に対応する計算機上のファイルサーバ上で動作する部分とに分かれる。前者のファイルサーバをローカルファイルサーバ、後者のファイルサーバをリモートファイルサーバと呼ぶ。スケジュールステップは、検索ステップで分割された要求608、609、606、611、612及び604を受け取る。まずステップ301で、受け取った要求を要求先となるファイルサーバごとに集める。ファイルサーバ15が動作する計算機5には、ディスク装置20、21が接続されているので、ディスク装置20、21に対する要求608、611、612を集める。ファイルサーバ16が動作する計算機6に対しては、ディスク装置22、23が接続されているので、ディスク装置22、23に対する要求609、606を集める。要求604に関しては、ゲートウェイを介して別のネットワークへアクセスする必要があるので、ゲートウェイ8上のファイルサーバ19に対する要求とする。次にステップ302で要求先の各ファイルサーバ(リモートファイルサーバ)に対して、集めた要求を同時に発行する。要求はファイル名、ディスク装置番号、アクセス種別、アクセス領域の先頭と最終オフセツト、アクセス経路が2つ以上ある場合の各ネットワーク識別子を含む。以降のステップは、各リモートファイルサーバ上で実行される。ただし領域Dに対する要求は、以下に説明するリモートファイルサーバとは若干異なった方法で処理される。
【0024】
リモートファイルサーバは、ステップ303で受け取った要求をステップ304で、ディスク装置ごとのグループに分割してから、論理ブロック番号の順に並べ換える。論理ブロック番号は、ファイルの先頭の論理ブロック番号を0とする相対ブロック番号であり、上記のオフセツトから変換される。物理ブロック番号は、CCHHRのようにディスク装置の物理アドレスであり、論理ブロック番号から変換される。論理ブロックの長さは物理ブロックの長さに等しく、論理ブロック番号の順序は、物理ブロック番号の順序に一致する。ファイルサーバ15は、ディスク装置20に対する要求608、611のグループと、ディスク装置21に対する要求612のグループとに分割する。ファイルサーバ16は、ディスク装置22に対する要求609のグループと、ディスク装置23に対する要求606のグループとに分割する。ファイルサーバはディバイスドライバへディスクの論理ブロック番号によってアクセス要求を発行する。ファイルサーバは、ディバイスドライバへ要求を出す前に要求されたデータの論理ブロックをその番号によって整列する。ディスクのフォーマットを作成するときに論理ブロック番号によるファイルの順アクセスによってヘッドの移動が一方向にだけ発生するように論理ブロックに対応する物理ブロックを初期化する。すなわち論理ブロック番号の列をLB(1)、LB(2)・・・LB(N)とし、LB(1)≦LB(2)≦・・・≦LB(N)であるとき、論理ブロック番号順にディスクをアクセスするときのヘッドのシーク方向が一方向のみとなるように論理ブロックを物理ブロックに対応させる。これにより、論理ブロック番号順のアクセスは、一定方向のヘッドのシークしか引き起こさないようになり、ヘッドシークによる性能低下を防ぐことができる。
【0025】
ステップ305ではフィルタリングを行うかどうかの判断を行う。フィルタリングするかどうかは、要求されたファイル上の領域に不要な部分(穴)が含まれているかどうかによる。穴が含まれていない場合はフィルタリングを行わない。元々の部分602、603はともに連続領域のアクセス要求であるので穴が含まれず、従ってフィルタリングする必要がないと判断する。フィルタリングする例については後述する。
【0026】
領域D上の部分604に関しては、図9の下段のボックスに示されるように、ステップ306で要求を受け取ったファイルサーバ19は、アクセスがNFSプロトコルを介したディスク装置24へのアクセスであるので、アクセス手段であるNFSプロトコル実行プログラムにアクセスを依頼する(ステップ307)。次に処理は入出力実行ステップに入る。
【0027】
図10は、計算機5のファイルサーバ15が行う読み取り処理動作を示す図である。ファイルサーバ15は、ディスクのディバイスドライバを起動して、論理ブロック番号順に整列したアクセス要求70をディスクディバイスドライバへ渡す。ディスクディバイスドライバは空きバッファ72を管理しており、要求されたディスクブロックのデータをディスク装置20から空きバッファに読み込む。ディスクディバイスドライバとネットワークディバイスドライバは結合されており、バッファに読み込まれたデータはファイルサーバに返らずに、そのまま制御情報とともにネットワークディバイスドライバに渡される。ディスクディバイスドライバからネットワークディバイスドライバへのデータの転送はディスクのブロック単位に行われる。この転送動作はパイプライン方式によって並列に行われる。この方式によつて従来のようにディスクディバイスドライバからファイルサーバに一旦制御が戻る方式に比べてオーバヘッドを削減でき、高性能のデータ転送が可能である。制御情報には読み取りデータを要求したファイルサーバの識別子とそのアドレスが記録されている。ネットワークドライバは、制御情報を参照して読み取りデータをファイルサーバごとのキュー71に登録する。本事例によれば要求元が1つの場合を扱っているので、計算機1用のサーバに関するキューに登録する。要求元が複数の場合は、それぞれ対応する計算機用のサーバに対するキューに登録する。ネットワークディバイスドライバとディスクディバイスドライバには共通の制御情報格納エリア73があり、ディスクディバイスドライバは、データ読み取り要求を発行するたびに予想割り込み完了時刻をエリア73に書き込む。ネットワークディスクドライバは、実際にネットワークディバイスを起動するときに、エリア73の予想割り込み完了時刻を参照し、ネットワーク処理の割り込みがディスクの割り込みと重ならないようなタイミングでネットワーク9,10を介して要求元のファイルサーバへ向けてデータ転送する。ディスクの予想割り込み完了時刻の元であるディスクデータ転送終了割り込みは、1要求分のディスクデータ転送の終端で発生する。またネットワークによる割り込みは、転送する1パケツト又は複数パケツトの終端で発生する。
【0028】
計算機5には他にディスク装置21も接続されており、ディスク装置21からのデータ読み取り要求は、上記と同様の手段によってディスク装置20からのデータ読み取り要求と並列に実行される。さらに領域Cへのアクセスに関してはアクセス経路が2つ指定されているので、ネットワークドライバはネットワーク9とネットワーク10を経由するアクセス経路の両方を用いて高速な転送を行う。なお部分602と部分603は同一のディスク装置20についてのアクセス要求を含むが、ディスク装置20をアクセスする要求608と要求611はマージされて1つの要求となり、ディスク上では連続にアクセスされるため、並列効果を低下させるようなディスク装置20に対するアクセス競合は生じない。
【0029】
要求元であるファイルサーバ18側の読み取りデータの流れを図11に示す。要求先の計算機で読み取られ、計算機1に転送されたデータは、計算機1のネットワークハードウェア75によつて受信される。ネットワークハードウェア75は、変換テーブル76を参照してアドレス変換を行う機構を有する。変換テーブル76は、仮想空間上のアドレスを示す仮想アドレスと実記憶上のアドレスを示す物理アドレスとの変換対を格納する。予めファイルサーバによって設定された変換テーブル76を参照してネットワークハードウェアは、要求したAP17の仮想空間上のバッファ領域に対応する主記憶上の領域へ受信データをコピー無しに転送する。計算機5から読み取ったデータは、ディスク装置20と21に対する要求608、611、612に対応するバッファ領域に格納される。
【0030】
領域Dのデータは、ゲートウェイ8を介して他のネットワーク25上の計算機7に接続されたディスク装置24から計算機7のアクセス手段78、ゲートウェイ8のアクセス手段77を経て、ネットワーク9を介し計算機1のファイルサーバ18に転送される。領域Dに関するアクセス手段としてNFSがファイル構造定義に指定されているので、ゲートウェイ8と計算機7との間のデータ転送は、NFSプロトコルによって処理される。ファイルサーバ18の処理は、他の領域A,B,Cの場合と同じである。上記のリモートファイルサーバ15、16及び19の各読み取りステップは、それぞれ並列に実行される。
【0031】
次にデータ書き込みの場合について述べる。図12は、書き込みのステップとデータの流れを示す図である。ファイルサーバ18は、ファイル名、ディスク装置番号、アクセス種別、アクセス領域の先頭と最終オフセツトを含むデータ書き込み要求を例えばファイルサーバ15へ送信する。ファイルサーバ15は、この要求に応答しステップ401でバッファ領域を割り付ける。一般に資源の制約があり全書き込みデータ分のバッファを割り付けることは不可能なので、全データのうちの一部分のデータを格納するバッファを割り付ける。次にステップ402で書き込みデータ転送要求を書き込み要求元計算機1上のファイルサーバ18に送る。書き込みデータ要求410は、ファイルサーバ15上の転送先アドレス、バッファ長及び転送速度から成る。転送速度はパケットの実効転送速度である。ネットワークの伝送速度と指定された転送速度からパケットの送出時間間隔を計算できる。ファイルサーバ15が指示する転送速度は、書き込みデータ転送要求発行時のディスクの実効転送速度にほぼ等しい。ファイルサーバ18は書き込みデータ要求を受信すると、ステップ403でこの要求に従って書き込みデータを格納するバッファをネットワークドライバに渡し、計算機5へ書き込みデータを転送する。ファイルサーバ18は、書き込みデータ要求中のブロックごとにネットワークディバイスドライバへデータ転送要求を発行する。ネットワークディバイスドライバは、要求された書き込みデータをパケットとして転送する(ステップ404)。この書き込みデータは、ファイルサーバ15のバッファに直接転送される。ファイルサーバ15のネットワークドライバは、受け取った書き込みデータをファイルサーバ15を介さずに直接ディスクディバイスドライバに渡す(ステップ405)。ディスクディバイスドライバは、受け取ったデータを順次ディスクに書き込む(ステップ406)。
【0032】
上述したようにリモートファイルサーバは、一般に書き込みデータ全体を格納するような書き込み用バッファを用意できないので、書き込みデータ要求を必要回数発行する。ネットワークディバイスドライバは、ステップ404の書き込みデータを送信するとき、各書き込みデータ要求ごとに指示される転送速度に従ってパケット送出の時間間隔を調節する。これによつてファイルサーバ15側のバッファオーバーフローによるデータ喪失を防ぐ。
【0033】
領域Dに書き込むデータは、ステップ404でゲートウェイ8へ転送され、一旦ファイルサーバ19に渡される。ファイルサーバ19は、指定されたアクセス手段であるNFSプロトコルを用いてデータが格納されるべきディスク装置24が接続されている計算機7へデータを転送する。
【0034】
上記の例ではデータのフィルタリングをしないので、フィルタステップ500が実行されなかった。以下にデータのストライピングを例にとってフィルタステップについて説明する。図13は、ストライピング時のファイル構造定義スクリプト84、APのデータ参照方向に沿った論理的なデータの配置80及びファイル上のデータの配置81を示す図である。データは100×100の要素から構成される2次元の配列である。計算機1〜4上で動作するAPは、このデータ構造をもつたファイルに並列にアクセスする。ファイル構造定義スクリプト84の始めのstruct文で、100×100の要素から構成される配列を定義している。次のdistribute文で配列の各行を4ブロックに分け、4ブロックごとに4つのディスクのうちの各ディスク上にストライプのパターンを形成するように分散して格納することを示している。ブロック長はtype_Aのデータ25個分とみなす。従って各行は4ブロックとなる。80はユーザから見た配列の分割状況を示している。この分割は、row−majorで(行の方向に)配列を分割するようなデータの配置を仮定する。ファイル上のデータの配置81は、データが配列の始めの行から行の順番に並んでいる。82はファイル上のデータの配置81に対応する物理的なディスク上のデータの配置を示している。最初の行A[1,*]については、全てのブロックがディスク装置20上に割り当てられていることを示す。ディスク装置20には、A[5,*]、A[9,*]なども割り当てられる。83は対応する配列の行を用いて計算を行う計算機の番号が示されている。例えば行A[1,*]は計算機1上のAP17によって参照される。この構成定義の場合、各計算機上のAPは、各々独立にディスク装置にアクセスする。APが配列の行方向にアクセスする場合には、上記のような手順によってファイルにアクセスを行い、フィルタリング動作は発生しない。ただし全体のスケジュールを行うために、図19のように要求の発行者を4つのプログラム(またはプロセス)の中のどれか一つに決め(例えば、計算機1上のAP17)、これが他のプログラム(プロセス)の要求もリストとして繋いでファイルサーバ18にアクセス要求を発行する。ファイルサーバ18は、他のプログラムの要求もリストとして繋いだ要求をまとめて受け付ける。計算機1上のAP17は、このようなAPIを用いて各計算機2〜4のAPの要求も一緒に発行する。ファイルサーバ18は、すべての要求に対して検索ステップ200、スケジュールステップ300を、上述した手順に従って行う。入出力実行ステップ400では、要求発行元が指示するデータアクセスする計算機に従って入出力動作を実行する。データ読み取りの場合には、計算機1ではなくデータを参照する計算機へ読み取りデータを転送する。このようにファイルサーバに他のAPの要求も渡すことによって並列動作するAP全体に亘るグローバルなスケジューリングが可能となる。このスケジューリング方式は、次に示す配列の列方向にアクセスする例で効果を発揮する。
【0035】
次に上記のデータ構造をもつ行列に対して各プログラムが列方向にアクセスする場合について説明する。85はこの場合のAPの参照方向に沿った論理的なデータの配置を示す。A[*,1]は行列Aの1列目を表す。ファイルは行方向のアクセスに対して最適化されているため、列方向のアクセスの場合には83に示す計算機のアクセスパターンの代わりに84に示すように各APは行列の各要素ごとに順にかつ交互にアクセスする。例えば計算機1上で動作するAP17は図の白抜きの部分の要素をアクセスする。各計算機がこのようなアクセスをそれぞれ独立して行うとすれば、入出力性能が極端に低下する。このような場合、すなわちあるプログラムからアクセスするデータが不要部分を含んでいる場合は、フィルタステップ500でデータのフィルタリングを行うように判断する。AP17は他のプログラムの要求もリストとして繋いでファイルサーバ18にこのようなアクセスパターンによるアクセス要求を発行する。ファイルサーバは、フィルタステップ500で転送されるデータのフィルタリングを行う。フィルタリングは、図14に示すようにディスク装置の接続された計算機上(フィルタ510)か、ファイルを要求したプログラムが存在する計算機上(フィルタ511,512)で実行される。図14は、ディスク装置20にあるデータを各プログラムが読み込む場合のデータの流れを示す。ディスク装置20から読み出されたデータ84は、各プログラムから見ると図13に示すように不要部分のあるデータなので、スケジュールステップ305(図9)でフィルタリングを行うと判断される。ネットワーク9を制御する通信制御ハードウェアがスキャタ/ギャザの機能を備えている場合は、フィルタ510がスキャタ/ギャザの準備をして該当する計算機上へ転送する。例えば計算機1の必要とするデータとして84の白抜きの部分のみが集められて計算機1へ転送される。この場合にはグローバルなスケジュール機能によって、計算機1が要求した領域(白抜きの領域)以外の領域も必要であると計算機5のファイルサーバは判断するので、他の計算機2〜4が必要とする部分を集めて各計算機へ転送する。ハードウェアにスキャタ/ギャザの機能がない場合は、ディスク装置20から取得されたデータ84はアクセスする計算機1〜4全てにブロードキャストで転送される。次に各計算機はフィルタ511,512によるフィルタ処理を行い、APには必要な部分のデータのみが渡される。例えば計算機1は、フィルタリング処理によって受信したデータ84から513の白抜きの部分のみを抜き出し、計算機4は514の網が一番濃い部分のみを抜き出す。このフィルタ処理によってディスクアクセスの単位を大きくし、ディスクアクセスの回数を減らすことができ、性能を劣化させることなく上記のようなアクセスパターンによるデータアクセスが可能となる。
【0036】
上述したように、ユーザは最適のアクセスパターンを想定してファイル構造を設定するが、別のアクセスパターンによってファイルをアクセスする場合にはファイル構造を変更しなくとも別のアクセス要求リストを指定し、ファイルシステムによるフィルタリングとグローバルなスケジュール機能によってファイルの並列アクセスによる並列効果を得ることができる。
【0037】
なお図1に示すシステム構成は一例であり、種々の変形したシステムを構成し得る。本発明は、計算機の台数、ネットワークの存在、ディスク装置を接続する計算機、APを搭載する計算機、ファイルサーバを搭載する計算機などのハードウェア構成が限定されるものではない。本発明の主旨とするところは、アプリケーションプログラムを実行する複数のプロセスとファイルの領域が割り付けられる物理装置との間で並列にデータ転送するような構成であり、この主旨に沿ったシステム構成は本発明の範囲である。特に並列データ転送を効果的に行うために、計算機の処理能力、ネットワークのデータ転送速度、ディスク装置−主記憶装置間のデータ転送速度上のネックを解消しているシステム構成が望ましい。
【0038】
次にその他の属性64の定義と動作について説明する。図15は、属性としてキャッシュの有無、信頼性の指定、他のファイルとの関連を指定するときのファイル構造定義スクリプトである。ファイルのデータ構造は、上記の例と同じであるので、最後の6つのset文について説明する。最初のset文は、領域Aへのアクセスをキャッシュすることを意味する。次のset文は、領域Bに対するアクセスが読み出し専用であることを示す。3行目のset文は、領域Bへのアクセスをキャッシュすることを意味する。次の2つのset文は、領域Cをファイル”K”と”L”に関連付けることを意味する。最後のset文は、領域Dのデータをミラーリングすることを意味する。
【0039】
この例では、領域の一部ではなく領域全部に対してアクセスするものとする。ファイルサーバは、全ファイルの一部分である領域についてファイル構造定義時に指定した領域の名前を指定してオープンすることを許すインタフェースを有する。以降は、この部分を通常のファイルと同じプリミティブを用いてアクセスすることが可能となる。図16は、領域Cに対してopen_subというプリミティブで領域名”C”を指定してオープンすることを示している。
【0040】
次に実際に各領域にアクセスする場合の動作について述べる。領域Aに関しては、属性としてキャッシュ属性が指定されている。計算機上のキャッシュ制御部は、データ読み取り要求を受けた時、計算機のキャッシュ上にデータがある場合、ディスクアクセスを行わずにキャッシュ上のデータを取り込む。書き込みの場合は、書き込みデータをキャッシュ上に残しておき非同期に書き込みを行う。複数のプログラムから領域Aがアクセスされる場合、図17に示すキャッシュ制御部650は、一貫性制御ステップ651によってキャッシュ間の一貫性及びキャッシュとファイルデータとの一貫性を保証する。図17の場合は、領域Aについての読み取りアクセス要求と書き込みアクセス要求が同時に発生しているので、キャッシュ制御部650は、一貫性制御ステップによって各操作の順番を決定し、キャッシュおよびファイルデータの一貫性を保つ。一方領域Bへのアクセスもキャッシュ属性が指定されているが、同時にアクセスパターンとして読み込み専用属性も指定されているので、キャッシュ制御部650は、一貫性制御ステップ651を実行しない。このように属性によって本ファイルシステムは、キャッシュの制御処理を自動的に変える。
【0041】
領域Cは、例えばハイパーテキストデータであるとする。このハイパーテキストは、リンク先として、ファイル”K”と”L”を含んでいる。この場合、ファイルCの読み取り要求と同時に、ファイル”K”および”L”へも読み取り要求を発行し、バッファに保存する。これにより、後のファイル”K”や”L”へのアクセスに対してキャッシュが効くので、高速にファイルにアクセスできる。
【0042】
領域Dはディスク装置20と22へのミラーリングが指定されているので、この領域に対する書き込み要求があった場合は、入出力実行ステップ400で、ディスク装置20と22が接続されている計算機5と6へ書き込みデータを同時に転送し、各計算機は図12に示すように並列に書き込み動作を実行する。上記の例では各計算機ごとに書き込みデータは異なっていたが、ミラーリングの場合は計算機5と6に書き込むデータは同じである。領域Dへのアクセス時、ディスク装置20と22のうちのどちらかの故障を検出したとき、ファイルサーバは故障していない方のディスクを用いて入出力動作を実行する。
【0043】
【発明の効果】
本発明によれば、アプリケーションプログラムがファイル構造とファイル内各領域に対応する属性を指定することによって、ファイルアクセス時にユーザの所望するアクセスパターンに沿ったアクセスが可能となり、ファイルの並列アクセス効果を発揮することができる。またファイルのアクセスパターンが変化したとき、統合的なスケジューリング機構によりその状況での最適なファイルアクセスを実現できる。また同一ファイルをアクセスする複数のプロセスのアクセス要求をまとめて発行できるため、ファイルの並列アクセスを統合的にスケジューリングでき、効率的な入出力制御を行うことができる。さらに物理装置のディバイスドライバとネットワークディバイスドライバを介してデータを直接ネットワークと物理装置との間に転送することができ、ファイルサーバが介在することによるオーバヘッドを削減することができる。また両ディバイスドライバ間で情報を共有することにより、ディバイスドライバ間でパイプライン的にデータを転送することができ、高速なファイルデータの転送が実現できる。
【図面の簡単な説明】
【図1】実施形態の高速ファイルシステムの構成図である。
【図2】実施形態のファイル入出力処理手順を示す図である。
【図3】ファイル構造定義スクリプトの例を示す図である。
【図4】ファイル構造とファイルアクセス範囲の例を示す図である。
【図5】実施形態のファイル構造記録テーブル60のデータ構成を示す図である。
【図6】ファイルアクセス要求のリストの例を示す図である。
【図7】実施形態の検索ステップの処理の流れを示す図である。
【図8】実施形態の入出力要求の分割を説明する図である。
【図9】実施形態のスケジュールステップの処理の流れを示す図である。
【図10】実施形態のファイル読み取り処理動作を示す図である。
【図11】実施形態のファイル読み取り時のデータの流れを示す図である。
【図12】実施形態のファイル書き込み時のデータの流れを示す図である。
【図13】ストライピング時のファイル構造定義スクリプトの例を示す図である。
【図14】実施形態のフィルタリングを説明する図である。
【図15】属性としてキャッシュの有無、信頼性を指定するときのファイル構造定義スクリプトの例を示す図である。
【図16】ファイル構造定義時の名前をファイル入出力の操作に使用したプログラムの例を示す図である。
【図17】実施形態のキャッシュ制御を説明する図である。
【図18】ユーザプログラムのアクセスパターンと物理装置上の領域割り付けとの対応を例示する図である。
【図19】1つのプロセスが他のプロセスの要求を集めることを説明する図である。
【符号の説明】
1〜8:計算機、11〜13、15、16、18、19:ファイルサーバ、17:アプリケーションプログラム、9、10:ネットワーク、20〜24:ディスク装置、60:ファイル構造記録テーブル、100:構造定義ステップ、200:検索ステップ、300:スケジュールステップ、400:入出力実行ステップ、500:フィルタリングステップ
Claims (8)
- アプリケーションプログラムを実行するプロセスからのファイルアクセス要求に応答してファイル入出力を制御する方法において、
ファイルを複数の領域に分割し、該複数の領域を複数の物理装置に分散して割り付けるように要求するアプリケーションプログラムによるファイル構造設定要求に応答して指定されたファイル構造を設定するファイル構造テーブルを作成してファイル内領域を指定された物理装置に割り付け、該ファイル内の複数の領域を並列にアクセスするように要求する入出力要求に応答して設定されたファイル構造テーブルを参照して該入出力要求を各物理装置ごとのアクセス要求に展開し、該アプリケーションプログラムを実行するプロセスと該物理装置との間で並列にデータ転送を行うよう制御することを特徴とするファイル入出力制御方法。 - 該アプリケーションプログラムを実行する複数のプロセスからの複数の入出力要求を収集し、収集した複数の入出力要求を各物理装置ごとのアクセス要求に展開することを特徴とする請求項1記載のファイル入出力制御方法。
- ネットワークを介して該アプリケーションプログラムを実行するプロセスと該物理装置との間のデータ転送を行う場合に、該ファイル管理プログラムによって物理装置のディバイスドライバが起動された後、該ファイル管理プログラムを介さずに物理装置のディバイスドライバとネットワークのディバイスドライバを介してデータを直接ネットワークと該物理装置との間に転送することを特徴とする請求項1記載のファイル入出力制御方法。
- 該領域の1つに対応して複数の通信経路を設定し、複数の通信経路に対応する領域に関する該入出力要求に応答して該複数の通信経路を介する並列データ転送を行うよう制御することを特徴とする請求項1記載のファイル入出力制御方法。
- 該入出力要求によってデータのフィルタリングを指定することによって該アプリケーションプログラムが必要とする以上のデータを該物理装置から該アプリケーションプログラムに向けて転送し、該ファイル管理プログラムのフィルタリングの該ファイル構造設定によって指定された必要部分のみのデータを該アプリケーションプログラムに渡すことを特徴とする請求項1記載のファイル入出力制御方法。
- 該領域の1つに対応してデータをキャッシュするよう指定し、該入出力要求に応答して該物理装置への書き込みデータ及び読み取りデータをキャッシュ上に残し、読み取りデータについてキャッシュ上にデータがあればキャッシュからデータを取得するよう制御することを特徴とする請求項1記載のファイル入出力制御方法。
- アプリケーションプログラムを実行するプロセスからのファイルアクセス要求に応答してファイル入出力を制御するために、ファイルを複数の領域に分割し、該複数の領域を複数の物理装置に分散して割り付けるように要求するファイル構造設定要求に応答して指定されたファイル構造を設定するファイル構造テーブルを作成してファイル内領域を指定された物理装置に割り付ける手段、および
該ファイル内の複数の領域を並列にアクセスするように要求する入出力要求に応答して設定されたファイル構造テーブルを参照して該入出力要求を各物理装置ごとのアクセス要求に展開し、該アプリケーションプログラムを実行する複数のプロセスと該物理装置との間で並列にデータ転送を行うよう制御する手段としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。 - 該アプリケーションプログラムを実行する複数のプロセスからの複数の入出力要求を収集し、収集した複数の入出力要求を各物理装置ごとのアクセス要求に展開することを特徴とする請求項7記載のプログラムを格納する記憶媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16993597A JP3817339B2 (ja) | 1997-06-26 | 1997-06-26 | ファイル入出力制御方法 |
US09/104,168 US6101558A (en) | 1997-06-26 | 1998-06-25 | High speed file I/O control method and system with user set file structure to effect parallel access pattern over a network |
US09/613,817 US6347343B1 (en) | 1997-06-26 | 2000-07-10 | High speed file I/O control system with user set file structure to effect parallel access pattern over a network |
US10/056,082 US6691177B2 (en) | 1997-06-26 | 2002-01-28 | High speed file I/O control system with user set file structure to effect parallel access pattern over a network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16993597A JP3817339B2 (ja) | 1997-06-26 | 1997-06-26 | ファイル入出力制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1115720A JPH1115720A (ja) | 1999-01-22 |
JP3817339B2 true JP3817339B2 (ja) | 2006-09-06 |
Family
ID=15895654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16993597A Expired - Fee Related JP3817339B2 (ja) | 1997-06-26 | 1997-06-26 | ファイル入出力制御方法 |
Country Status (2)
Country | Link |
---|---|
US (3) | US6101558A (ja) |
JP (1) | JP3817339B2 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327608B1 (en) | 1998-09-25 | 2001-12-04 | Microsoft Corporation | Server administration tool using remote file browser |
US6549934B1 (en) * | 1999-03-01 | 2003-04-15 | Microsoft Corporation | Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client |
US6961749B1 (en) | 1999-08-25 | 2005-11-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
US7167867B1 (en) * | 1999-10-05 | 2007-01-23 | Emc Corporation | Self-describing file system |
US7433951B1 (en) * | 2000-09-22 | 2008-10-07 | Vmware, Inc. | System and method for controlling resource revocation in a multi-guest computer system |
US7346928B1 (en) * | 2000-12-01 | 2008-03-18 | Network Appliance, Inc. | Decentralized appliance virus scanning |
US7778981B2 (en) * | 2000-12-01 | 2010-08-17 | Netapp, Inc. | Policy engine to control the servicing of requests received by a storage server |
JP2002196960A (ja) | 2000-12-25 | 2002-07-12 | Hitachi Ltd | ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム |
AU2002249939A1 (en) * | 2001-01-11 | 2002-07-24 | Z-Force Communications, Inc. | File switch and switched file system |
US7209973B2 (en) | 2001-04-09 | 2007-04-24 | Swsoft Holdings, Ltd. | Distributed network data storage system and method |
US20020199017A1 (en) * | 2001-06-25 | 2002-12-26 | Russell Lance W. | Routing meta data for network file access |
US20030041097A1 (en) * | 2001-07-11 | 2003-02-27 | Alexander Tormasov | Distributed transactional network storage system |
US6877045B2 (en) * | 2001-12-18 | 2005-04-05 | International Business Machines Corporation | Systems, methods, and computer program products to schedule I/O access to take advantage of disk parallel access volumes |
JP4250933B2 (ja) * | 2002-09-04 | 2009-04-08 | コニカミノルタビジネステクノロジーズ株式会社 | データ管理システムおよびデータ管理プログラム |
JP2004164072A (ja) * | 2002-11-11 | 2004-06-10 | Hitachi Ltd | ディスク制御装置およびディスク制御装置の制御方法 |
WO2004077211A2 (en) * | 2003-02-28 | 2004-09-10 | Tilmon Systems Ltd. | Method and apparatus for increasing file server performance by offloading data path processing |
US7151544B2 (en) * | 2003-05-16 | 2006-12-19 | Sun Microsystems, Inc. | Method for improving texture cache access by removing redundant requests |
JP4418286B2 (ja) | 2003-07-14 | 2010-02-17 | 富士通株式会社 | 分散型ストレージシステム |
US7519574B2 (en) * | 2003-08-25 | 2009-04-14 | International Business Machines Corporation | Associating information related to components in structured documents stored in their native format in a database |
US8150818B2 (en) * | 2003-08-25 | 2012-04-03 | International Business Machines Corporation | Method and system for storing structured documents in their native format in a database |
US7792866B2 (en) * | 2003-08-25 | 2010-09-07 | International Business Machines Corporation | Method and system for querying structured documents stored in their native format in a database |
US8250093B2 (en) * | 2003-08-25 | 2012-08-21 | International Business Machines Corporation | Method and system for utilizing a cache for path-level access control to structured documents stored in a database |
US8775468B2 (en) | 2003-08-29 | 2014-07-08 | International Business Machines Corporation | Method and system for providing path-level access control for structured documents stored in a database |
JP4491273B2 (ja) * | 2004-05-10 | 2010-06-30 | 株式会社日立製作所 | ストレージシステム、ファイルアクセス制御プログラム及びファイルアクセス制御方法 |
JP4666577B2 (ja) * | 2004-11-16 | 2011-04-06 | 大日本印刷株式会社 | データ保管制御システム |
US20060173901A1 (en) * | 2005-01-31 | 2006-08-03 | Mediatek Incorporation | Methods for merging files and related systems |
US7779411B2 (en) * | 2005-02-17 | 2010-08-17 | Red Hat, Inc. | System, method and medium for providing asynchronous input and output with less system calls to and from an operating system |
US8161362B2 (en) * | 2005-06-10 | 2012-04-17 | Hitachi, Ltd. | Task management control apparatus and method, having redundant processing comparison |
US7783666B1 (en) | 2007-09-26 | 2010-08-24 | Netapp, Inc. | Controlling access to storage resources by using access pattern based quotas |
WO2011121746A1 (ja) * | 2010-03-31 | 2011-10-06 | 株式会社日立ソリューションズ | ファイルサーバ装置、及びストレージシステムの管理方法、並びにプログラム |
JP5822452B2 (ja) * | 2010-10-22 | 2015-11-24 | 株式会社インテック | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
JP5248669B2 (ja) * | 2011-11-15 | 2013-07-31 | 株式会社東芝 | ファイル処理装置及びファイル処理方法 |
KR20130081526A (ko) | 2012-01-09 | 2013-07-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들 |
JP5236129B2 (ja) * | 2013-02-04 | 2013-07-17 | 株式会社インテック | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
TWI502372B (zh) * | 2013-09-27 | 2015-10-01 | Acer Inc | 網路儲存系統及檔案快取方法 |
JP6605786B2 (ja) * | 2014-03-18 | 2019-11-13 | 日本電気株式会社 | 冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム |
JP6033370B2 (ja) * | 2015-06-29 | 2016-11-30 | 株式会社インテック | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901232A (en) * | 1983-05-19 | 1990-02-13 | Data General Corporation | I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor |
JPH07120250B2 (ja) * | 1989-05-19 | 1995-12-20 | 日本電気株式会社 | 並列ディスク制御バッファの割当て方式 |
US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5224214A (en) * | 1990-04-12 | 1993-06-29 | Digital Equipment Corp. | BuIffet for gathering write requests and resolving read conflicts by matching read and write requests |
US5548724A (en) * | 1993-03-22 | 1996-08-20 | Hitachi, Ltd. | File server system and file access control method of the same |
JPH07191899A (ja) * | 1993-12-27 | 1995-07-28 | Hitachi Ltd | ファイル転送方法、データアクセス方法およびデータ書き込み方法 |
JPH07244564A (ja) * | 1994-03-02 | 1995-09-19 | Oki Electric Ind Co Ltd | ディスクアレイ装置 |
US5787465A (en) * | 1994-07-01 | 1998-07-28 | Digital Equipment Corporation | Destination indexed miss status holding registers |
JP3366143B2 (ja) * | 1995-01-10 | 2003-01-14 | 富士通株式会社 | ソフトウェア流通システムにおける識別子管理装置および方法ならびにソフトウェア流通管理装置および方法 |
US5745915A (en) * | 1995-03-17 | 1998-04-28 | Unisys Corporation | System for parallel reading and processing of a file |
JPH08292905A (ja) | 1995-04-21 | 1996-11-05 | Matsushita Electric Ind Co Ltd | ファイルデータ管理装置 |
US5893138A (en) * | 1995-10-02 | 1999-04-06 | International Business Machines Corporation | System and method for improving channel hardware performance for an array controller |
US5754888A (en) * | 1996-01-18 | 1998-05-19 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment |
US6003045A (en) * | 1997-09-17 | 1999-12-14 | International Business Machines Corporation | Accessing stored files from multiple storage devices |
-
1997
- 1997-06-26 JP JP16993597A patent/JP3817339B2/ja not_active Expired - Fee Related
-
1998
- 1998-06-25 US US09/104,168 patent/US6101558A/en not_active Expired - Fee Related
-
2000
- 2000-07-10 US US09/613,817 patent/US6347343B1/en not_active Expired - Fee Related
-
2002
- 2002-01-28 US US10/056,082 patent/US6691177B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20020073248A1 (en) | 2002-06-13 |
US6101558A (en) | 2000-08-08 |
JPH1115720A (ja) | 1999-01-22 |
US6347343B1 (en) | 2002-02-12 |
US6691177B2 (en) | 2004-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3817339B2 (ja) | ファイル入出力制御方法 | |
US5603003A (en) | High speed file access control method and computer system including a plurality of storage subsystems connected on a bus | |
US7222150B1 (en) | Network server card and method for handling requests received via a network interface | |
US6047356A (en) | Method of dynamically allocating network node memory's partitions for caching distributed files | |
US20190075163A1 (en) | Apparatus including an i/o interface and a network interface and related method of use | |
US7346754B2 (en) | Control method for storage device controller system, and storage device controller system | |
JP4278445B2 (ja) | ネットワークシステム及びスイッチ | |
US8589550B1 (en) | Asymmetric data storage system for high performance and grid computing | |
JP5208446B2 (ja) | ネットワークデータストレージシステム | |
CN101567001B (zh) | 并行文件系统的元数据文件布局管理方法 | |
JP4105398B2 (ja) | 情報処理システム | |
US8037478B2 (en) | Object state transfer method, object state transfer device, object state transfer program, and recording medium for the program | |
JPH1011372A (ja) | Cpu及びi/oデバイス間のリファレンスによるコンピュータシステムデータi/o | |
US20080155051A1 (en) | Direct file transfer system and method for a computer network | |
JP2004178289A (ja) | スナップショット取得方法、ディスク装置及びストレージシステム | |
JP2007079774A (ja) | ファイルシステムの構築方法 | |
JP2005056077A (ja) | データベース制御方法 | |
FI116167B (fi) | Arkistoiva tiedostopalvelin | |
JPH103441A (ja) | Cpu及び多重メモリ装置間のリファレンスによるコンピュータシステムデータi/o | |
JPH09288654A (ja) | 多重データソース及びシンク間のリファレンスによるコンピュータシステムデータi/o | |
KR20200109547A (ko) | 네트워크 부착 디스크를 통한 파일 처리 방법 및 그 시스템 | |
JPH07191930A (ja) | ディスク装置のインタフェース及びその制御方法 | |
Bosch | Mixed-media file systems | |
JPH1063436A (ja) | データ格納方法及び装置 | |
JP2002157092A (ja) | 記憶システムおよび記憶システム間のデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060421 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060421 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060523 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060612 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090616 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |