JP2003157194A - ファイルサーバプログラム - Google Patents

ファイルサーバプログラム

Info

Publication number
JP2003157194A
JP2003157194A JP2001356071A JP2001356071A JP2003157194A JP 2003157194 A JP2003157194 A JP 2003157194A JP 2001356071 A JP2001356071 A JP 2001356071A JP 2001356071 A JP2001356071 A JP 2001356071A JP 2003157194 A JP2003157194 A JP 2003157194A
Authority
JP
Japan
Prior art keywords
file
server
directory
file server
data
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.)
Granted
Application number
JP2001356071A
Other languages
English (en)
Other versions
JP3983036B2 (ja
Inventor
Yuji Kato
裕二 加藤
Kenji Tonami
健二 利波
Tomoaki Sato
友昭 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Prime Software Technologies Ltd
Original Assignee
Fujitsu Prime Software Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Prime Software Technologies Ltd filed Critical Fujitsu Prime Software Technologies Ltd
Priority to JP2001356071A priority Critical patent/JP3983036B2/ja
Priority to US10/295,920 priority patent/US7415518B2/en
Publication of JP2003157194A publication Critical patent/JP2003157194A/ja
Application granted granted Critical
Publication of JP3983036B2 publication Critical patent/JP3983036B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【課題】 複数のファイルサーバにおいて適切な負荷分
散を行うことができるようにする。 【解決手段】 クラスタ2において実行する処理のうち
自身の担当する処理を判断するための判断条件が予め定
義されており、クラスタ2を構成する複数のファイルサ
ーバ3,4,5に対して送信されたファイル操作要求1
a,1b,1cを受け取ると、判断条件に基づいてファ
イル操作要求1a,1b,1cに応じた処理の実行の要
否を判断する(ステップS1,S3,S5)。そして、
ファイル操作要求1a,1b,1cに応じた処理の実行
が必要と判断された場合、自己の管理するストレージデ
バイス3a,4a,5aに対してファイル操作要求1
a,1b,1cに応じた処理を行う(ステップS2,S
4,S6)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は他の装置からの要求
に応じてファイル操作を行うためのファイルサーバプロ
グラムに関し、特にクラスタの一部を構成するコンピュ
ータで使用されるファイルサーバプログラムに関する。
【0002】
【従来の技術】従来、複数のコンピュータでファイルを
共有するために、ファイルサーバが用いられる。ファイ
ルサーバを利用するクライアントコンピュータ(以下、
単にクライアントという)は、ネットワークを介してフ
ァイルサーバにアクセスし、必要なファイルを取得する
ことができる。
【0003】ところで、大規模なネットワークでは、フ
ァイルサーバで管理されるファイルの量が膨大になる。
さらには、ファイルを利用するクライアントの数も大量
となる。そのため、複数のファイルサーバによってクラ
スタを構成し、ファイル操作(ファイルの書き込みや読
み取りなど)に関する処理を、複数のファイルサーバに
分散させることが行われている。これにより、ファイル
サーバ1台当たりの負荷が軽減される。
【0004】このように、大量のファイルの管理を複数
のファイルサーバで分散して処理させた場合、各クライ
アントは、各ファイルがどのファイルサーバで管理され
ているのかを、常に把握しておく必要がある。
【0005】任意のファイルが管理されているファイル
サーバをクライアントに認識させる方法として、たとえ
ば、複数のファイルサーバの1つに、システム全体のフ
ァイル管理情報を持たせる方法がある。この方法によれ
ば、各クライアントは、ファイル管理情報を有している
ファイルサーバに問い合わせることで、任意のファイル
が管理されているファイルサーバを認識することができ
る。
【0006】また、任意のファイルが管理されているフ
ァイルサーバをクライアントに認識させる別の方法とし
て、ファイルを格納するディレクトリを作成するファイ
ルサーバの決定に関して、一定のルールを定義しておく
方法がある。この方法では、ディレクトリを管理してい
るファイルサーバにおいて、そのディレクトリ配下のフ
ァイルが管理される。このような方法の一例として、た
とえば、特開平5−233417号公報に記載された発
明がある。この発明では、ディレクトリの識別名を用い
たルールによって、そのディレクトリを作成するファイ
ルサーバを決定する。そして、クライアントは、そのル
ールに従って、そのディレクトリを作成したファイルサ
ーバを特定する。
【0007】
【発明が解決しようとする課題】しかし、従来の方法で
は、適切に負荷を分散させるのが困難だった。すなわ
ち、1つのファイルサーバにシステム全体のファイル管
理情報を持たせる方法では、ファイルアクセスが増える
につれて、ファイル管理情報を有するファイルサーバへ
の処理負荷が増大してしまう。
【0008】また、ディレクトリの識別名によって管理
するファイルサーバを決定する方法では、ディレクトリ
の識別名の偏りに伴って、ディレクトリを作成するファ
イルサーバにも偏りが生じてしまう。たとえば、識別名
の先頭の文字に応じてファイルサーバを決定すると、使
用頻度の多い文字に対応するファイルサーバの処理負荷
が、他のサーバよりも高くなる。
【0009】このように、負荷分散が適切に行われなけ
れば、ファイル操作処理の遅延が発生し、クラスタ全体
の処理能力の低下を招く。しかも、近年のネットワーク
の通信速度の高速化に伴い、ネットワーク上のデータ転
送速度に、ファイルサーバでのファイル書き込みや読み
出しが追いつかない事態が発生している。そのため、フ
ァイルサーバにおけるファイル書き込み速度やファイル
読み取り速度の高速化が強く望まれている。
【0010】本発明はこのような点に鑑みてなされたも
のであり、複数のファイルサーバにおいて適切な負荷分
散を行うことができるファイルサーバプログラムを提供
することを目的とする。
【0011】
【課題を解決するための手段】本発明では上記課題を解
決するために、図1に示すような処理をコンピュータに
実行させるファイルサーバプログラムが提供される。本
発明に係るファイルサーバプログラムは、クラスタ2を
構成する複数のファイルサーバ3,4,5の一つとして
コンピュータを機能させるためのプログラムである。本
発明に係るファイルサーバプログラムを実行するコンピ
ュータは、クラスタ2において実行する処理のうち自身
の担当する処理を判断するための判断条件が予め定義さ
れており、クラスタ2を構成する複数のファイルサーバ
3,4,5に対して送信されたファイル操作要求1a,
1b,1cを受け取ると、判断条件に基づいてファイル
操作要求1a,1b,1cに応じた処理の実行の要否を
判断する(ステップS1,S3,S5)。そして、ファ
イル操作要求1a,1b,1cに応じた処理の実行が必
要と判断された場合、自己の管理するストレージデバイ
ス3a,4a,5aに対してファイル操作要求1a,1
b,1cに応じた処理を行う(ステップS2,S4,S
6)。
【0012】このようなファイルサーバプログラムによ
れば、クライアント1が全てのファイルサーバ3,4,
5に対してファイル操作要求1a,1b,1cを出力す
ると、処理の実行が必要と判断したファイルサーバにお
いて、ファイル操作要求1a,1b,1cに応じた処理
が実行される。
【0013】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。まず、本発明の実施の形態に適用
される発明の概要について説明し、その後、本発明の実
施の形態の具体的な内容を説明する。
【0014】図1は、本発明の実施の形態に適用される
発明の概念図である。本発明に係るファイルサーバプロ
グラムは、クラスタ2を構成する複数のファイルサーバ
3,4,5の一つとしてコンピュータを機能させること
ができる。クラスタ2は、クライアント1からのファイ
ル操作要求1a,1b,1cに応じて、ファイル操作
(ディレクトリの作成、ファイルの書き込み、ファイル
の読み取りなど)を行う。
【0015】本発明に係るファイルサーバプログラムを
実行するコンピュータ(ファイルサーバ3,4,5)に
は、クラスタ2において実行する処理のうち自身の担当
する処理を判断するための判断条件が予め定義されてい
る。ファイルサーバ3,4,5は、クラスタ2を構成す
る複数のファイルサーバ3,4,5に対して送信された
ファイル操作要求1a,1b,1cを受け取ると、判断
条件に基づいてファイル操作要求1a,1b,1cに応
じた処理の実行の要否を判断する(ステップS1,S
3,S5)。そして、ファイル操作要求1a,1b,1
cに応じた処理の実行が必要と判断された場合、自己の
管理するストレージデバイス3a,4a,5aに対して
ファイル操作要求1a,1b,1cに応じた処理を行う
(ステップS2,S4,S6)。
【0016】このようなファイルサーバプログラムによ
れば、クライアント1が全てのファイルサーバ3,4,
5に対してファイル操作要求1a,1b,1cを出力す
ると、処理の実行が必要と判断したファイルサーバにお
いて、ファイル操作要求1a,1b,1cに応じた処理
が実行される。
【0017】これにより、クライアント1がクラスタ2
に対してファイル操作を依頼する際には、全てのファイ
ルサーバ3,4,5に対してファイル操作要求1a,1
b,1cを出力すればよくなる。すなわち、どのファイ
ルサーバ3,4,5で処理が実行されるかを、クライア
ント1において認識する必要がない。その結果、ファイ
ル操作を実行するファイルサーバをクライアント1に認
識させるための処理が不要となり、処理の効率化を図る
ことができる。
【0018】しかも、本発明では、従来、ファイルサー
バ間での処理の偏りの原因となっていた処理(ファイル
操作処理の依頼先をクライアント1に認識させる処理)
が不要となり、処理負荷の偏りの発生を抑制することが
できる。適切な負荷分散が行われることで、クラスタ2
全体としての処理の高速化が図られる。
【0019】以下、本発明をファイルサーバシステムに
適用した場合の例を用いて、実施の形態を詳しく説明す
る。 [第1の実施の形態]図2は、第1の実施の形態のシス
テム構成例を示す図である。第1の実施の形態では、ネ
ットワーク10を介して、複数のWebクライアント2
1,22,23、Webサーバ30、アプリケーション
サーバ41,42,43、および複数のファイルサーバ
100,200,300が接続されている。
【0020】Webクライアント21,22,23は、
WWW(World Wide Web)の閲覧機能(ブラウザ)を有し
ている。Webクライアント21,22,23は、We
bサーバ30にアクセスして、様々なコンテンツを閲覧
することができる。
【0021】Webサーバ30は、Webクライアント
21,22,23からの要求に応じて、コンテンツを提
供する。また、Webサーバ30は、Webクライアン
ト21,22,23から、ファイルサーバ100,20
0,300が保持するファイルへのアクセス要求(書き
込み要求や読込要求)を受けると、その処理をアプリケ
ーションサーバ41,42,43に依頼する。
【0022】アプリケーションサーバ41,42,43
は、Webサーバ30において高度な処理が必要となっ
たときに、その処理をWebサーバ30に代わって実行
する。たとえば、アプリケーションサーバ41,42,
43は、Webサーバ30から、ファイルサーバ10
0,200,300に対するファイル操作要求の処理を
引き継ぐ。処理を引き継いだアプリケーションサーバ4
1,42,43は、ファイルサーバ100,200,3
00に対してファイル操作要求を出力する。そして、ア
プリケーションサーバ41,42,43は、ファイルサ
ーバ100,200,300に対するファイル操作要求
の結果を、Webサーバ30に通知する。
【0023】なお、アプリケーションサーバ41、4
2,43は、図1に示すクライアント1として機能す
る。複数のファイルサーバ100,200,300は、
それぞれが大規模のストレージデバイスを有しており、
ファイルサーバ100,200,300全体でクラスタ
が構成されている。そして、クラスタを構成する各ファ
イルサーバ100,200,300が有しているストレ
ージデバイスの利用環境が、アプリケーションサーバ4
1,42,43に提供される。たとえば、ファイルサー
バ100,200,300は、アプリケーションサーバ
41,42,43からのファイル操作要求に応じて、デ
ィレクトリの作成、ファイルの書き込み、ファイルの読
み取りなどの処理を行う。
【0024】なお、各ファイルサーバ100,200,
300には、それぞれを一意に識別するためのノードI
Dが割り振られている。図2の例では、ファイルサーバ
100のノードIDは[1]であり、ファイルサーバ2
00のノードIDは[2]であり、ファイルサーバ30
0のノードIDは[3]である。
【0025】図3は、本発明の実施の形態に用いるファ
イルサーバのハードウェア構成例を示す図である。ファ
イルサーバ100は、CPU(Central Processing Uni
t)101によって装置全体が制御されている。CPU1
01には、バス107を介してRAM(Random Access M
emory)102、ストレージデバイスインタフェース10
3、グラフィック処理装置104、入力インタフェース
105、および通信インタフェース106が接続されて
いる。
【0026】RAM102には、CPU101に実行さ
せるOS(Operating System)のプログラムやアプリケー
ションプログラムの少なくとも一部が一時的に格納され
る。また、RAM102には、CPU101による処理
に必要な各種データが格納される。ストレージデバイス
インタフェース103には、ストレージデバイス110
が接続されている。ストレージデバイスインタフェース
103は、ストレージデバイス110の動作を制御し、
CPU101からの要求に従って、ストレージデバイス
110へのデータの書き込みやデータの読み出しを行
う。ストレージデバイス110は、たとえば、ハードデ
ィスク装置(HDD:Hard Disk Drive)である。スト
レージデバイス110には、OSやアプリケーションプ
ログラム、各種データが格納される。格納されるデータ
には、分割されたファイルデータも含まれる。
【0027】グラフィック処理装置104には、モニタ
11が接続されている。グラフィック処理装置104
は、CPU101からの命令に従って、画像をモニタ1
1の画面に表示させる。入力インタフェース105に
は、キーボード12とマウス13とが接続されている。
入力インタフェース105は、キーボード12やマウス
13から送られてくる信号を、バス107を介してCP
U101に送信する。
【0028】通信インタフェース106は、ネットワー
ク10に接続されている。通信インタフェース106
は、ネットワーク10を介して、他のコンピュータとの
間でデータの送受信を行う。
【0029】以上のようなハードウェア構成によって、
第1の実施の形態の処理機能を実現することができる。
なお、図3には、ファイルサーバ100の構成を示した
が、他のファイルサーバ200,300、Webクライ
アント21,22,23、Webサーバ30、およびア
プリケーションサーバ41,42,43も同様のハード
ウェア構成で実現できる。
【0030】以下、図2,3で示した構成のシステムに
おけるファイルサーバ100、200,300およびア
プリケーションサーバ41,42,43が有する処理機
能について説明する。なお、各ファイルサーバ100,
200,300は、それぞれ同様の処理機能を有してい
るため、ファイルサーバ100の機能を代表的に説明す
るものとする。同様に、アプリケーションサーバ41,
42,43は、それぞれ同様の処理機能を有しているた
め、アプリケーションサーバ41の機能を代表的に説明
するものとする。
【0031】図4は、第1の実施の形態におけるアプリ
ケーションサーバとファイルサーバとの機能ブロック図
である。アプリケーションサーバ41は、ユーザバッフ
ァ41aとファイル操作要求部41bとを有している。
ユーザバッファ41aは、Webサーバ30から依頼さ
れた処理を実行するためのプロセスが利用する記憶領域
である。ファイル操作要求部41bは、ファイルサーバ
100,200,300に対してファイル操作要求を送
信する。ファイル操作要求には、ディレクトリ作成要
求、ファイル書き込み要求、ファイル読み取り要求など
がある。
【0032】ファイルサーバ100に接続されたストレ
ージデバイス110には、ディレクトリ111,111
a,111b,・・・、オブジェクト112,112
a,112b,・・・、ディレクトリ管理情報113、
およびファイルテーブル114が格納されている。ディ
レクトリ111,111a,111b,・・・は、ファ
イルサーバ100によって作成されたディレクトリであ
り、そのディレクトリ配下のファイルに関する情報が登
録されている。オブジェクト112,112a,112
b,・・・は、クラスタ全体で管理される各ファイルの
一部である。ディレクトリ管理情報113は、ディレク
トリ111,111a,111b,・・・に関する管理
情報である。
【0033】ファイルテーブル114は、一つのファイ
ルがクラスタ全体においてどのように分散されているか
を含むファイル情報のリストである。ファイル情報に
は、ファイルの属性(更新時間、作成者など)も含まれ
ている。なお、1つのファイルに対するファイル情報
は、クラスタを構成するファイルサーバ100,20
0,300のうちの一台が管理している。すなわち、フ
ァイルサーバ100のファイルテーブル114は、ファ
イルサーバ100自身が作成したファイルに関するファ
イル情報が登録されている。同様に、各ファイルサーバ
100,200,300は、それぞれオリジナルのファ
イルテーブル(ファイルサーバのノードIDがファイル
テーブル内のファイル情報中のファイルIDに含まれて
いる)を有している。
【0034】ファイルサーバ100が自身オリジナルの
ファイルテーブル114に変更を加えた場合、データ入
出力部160が、ファイルテーブルに、内容を変更した
ことを示すフラグを立てる。ファイルサーバ100が、
自身がオリジナルのファイルテーブルを持たないファイ
ルに対して処理を行う場合、そのファイルテーブルのコ
ピーが生成される。そのとき、ファイルサーバ100
は、今回コピーしたファイルテーブルが前回から変更が
ない場合は、前回コピーしたファイルテーブルを使用す
る。
【0035】ファイルサーバ100は、管理エージェン
ト120、ディレクトリ作成部130、RDMA(Remot
e Direct Memory Access)転送部140、キャッシュ領
域150、およびデータ入出力部160を有している。
【0036】管理エージェント120は、他のファイル
サーバ200,300の管理エージェントと連携して、
ノードリスト121とファイルテーブル114との内容
の統一化や、ディレクトリ111の送受信などを行う。
【0037】たとえば、ネットワーク10上に新たなフ
ァイルサーバが追加された場合には、追加されたファイ
ルサーバの管理エージェントが、他のファイルサーバを
検出し、接続する。追加されたファイルサーバは、接続
したファイルサーバのノードIDをノードリストに書き
込む。追加されたファイルサーバの接続相手の既存のフ
ァイルサーバは、接続要求を受けたことにより新規のフ
ァイルサーバを認識し、自身のノードリストに、追加さ
れたファイルサーバのノードIDを加える。
【0038】また、ファイルサーバ100において他の
ファイルサーバ200,300が有するファイルテーブ
ルを参照する場合、管理エージェント120が他のファ
イルサーバ200,300で管理されているオリジナル
のファイルテーブルを参照する。そして、管理エージェ
ント120は、前回参照したときに作成したときから変
更されていれば、参照したファイルテーブルのコピーを
生成し、生成したコピーを自分自身で管理する。
【0039】さらに、管理エージェント120は、ディ
レクトリ作成部130からディレクトリ情報の取得依頼
を受け取ると、その取得依頼に応じて、他のファイルサ
ーバ200,300にディレクトリ情報の取得要求を送
信する。そして、他のファイルサーバ200,300か
ら送られたディレクトリ情報を、ディレクトリ作成部1
30に渡す。逆に、管理エージェント120は、他のフ
ァイルサーバ200,300からのディレクトリ情報の
取得要求を受信すると、その取得要求で指定されたディ
レクトリ情報をストレージデバイス110内のディレク
トリ111,111a,111b,・・・やディレクト
リ管理情報113から読み出す。そして、管理エージェ
ント120は、ディレクトリ情報の取得要求を出力した
ファイルサーバに対して、ストレージデバイス110か
ら読み出したディレクトリ情報を送信する。
【0040】なお、管理エージェント120が他のファ
イルサーバ200,300との間で受け渡しするディレ
クトリ情報には、様々な情報がある。たとえば、あるデ
ィレクトリの親ディレクトリや、その親ディレクトリ配
下にディレクトリを前回作成したファイルサーバのノー
ドIDである。また、ディレクトリ情報には、ディレク
トリ111,111a,111b,・・・のコピーも含
まれる。
【0041】ディレクトリ作成部130は、アプリケー
ションサーバ41〜43からのディレクトリ作成要求に
応じて、ストレージデバイス110にディレクトリを作
成する。具体的には、ディレクトリ作成部130には、
ファイルサーバ100自身がディレクトリ作成処理を担
当するか否かを判断するための判断条件が、予め定義さ
れている。ディレクトリ作成部130は、アプリケーシ
ョンサーバ41,42,43からのディレクトリ作成要
求を受け取ると、予め定義されている判断条件に従っ
て、ファイルサーバ100で管理すべきディレクトリか
否かを判断する。そして、ディレクトリ作成部130
は、ディレクトリを作成すべきであると判断された場合
のみ、ファイルサーバ100で管理すべきディレクトリ
111のみを、ストレージデバイス110に作成する。
【0042】第1の実施の形態では、ディレクトリ作成
の判断条件として、共通の親ディレクトリの配下へディ
レクトリを作成するファイルサーバの処理担当順が、フ
ァイルサーバ100自身の順番であることという条件が
定義されている。ディレクトリ作成処理担当順は、ノー
ドリスト121の登録順に従う。
【0043】すなわち、ディレクトリ作成部130は、
アプリケーションサーバ41,42,43からディレク
トリ作成要求を受け取ると、まず、作成すべきディレク
トリの親ディレクトリ配下に、前回ディレクトリを作成
したファイルサーバを調べる。そのために、ディレクト
リ作成部130は、該当するファイルサーバのノードI
Dの取得依頼を、管理エージェント120に通知する。
すると、管理エージェント120で該当するファイルサ
ーバのノードIDの取得処理が行われ、取得したノード
IDがディレクトリ作成部130に渡される。
【0044】ディレクトリ作成部130は、管理エージ
ェント120から渡されたノードIDが、ノードリスト
121の順番において、ファイルサーバ100自身の直
前であるかどうかを判断する。管理エージェント120
から渡されたノードIDの次の順番がファイルサーバ1
00自身であれば、ディレクトリ作成部130は、ディ
レクトリ作成要求に応じてディレクトリを作成する。
【0045】ディレクトリ作成部130は、ディレクト
リを作成した際には、作成したディレクトリに対応する
情報を、ディレクトリ管理情報113に登録する。RD
MA転送部140は、RDMAと呼ばれるデータ転送方
式により、アプリケーションサーバ41,42,43と
の間でファイルデータの送受信を行う。RDMA転送
は、転送元と転送先とのアドレスを指定したデータ転送
である。RDMA転送を行うことで、たとえば、アプリ
ケーションサーバ41のユーザバッファ41a内のアド
レスを指定して、そのアドレス内のデータをキャッシュ
領域150に転送することができる。また、RDMA転
送によれば、アプリケーションサーバ41のユーザバッ
ファ41a内のアドレスを指定して、そのアドレス内へ
キャッシュ領域150のデータを転送することができ
る。
【0046】キャッシュ領域150は、アプリケーショ
ンサーバ41,42,43との間で送受信するデータを
一時的に格納する記憶領域である。キャッシュ領域15
0は、図3に示すRAM102の記憶領域の一部であ
る。
【0047】データ入出力部160は、アプリケーショ
ンサーバ41,42,43からの要求に応じて、ストレ
ージデバイス110に対するデータの入出力を行う。具
体的には、データ入出力部160には、予めファイル書
き込み要求を実行する際の判断条件として、ファイルの
分割規則と、分割により生成されたファイルデータのう
ち、ファイルサーバ100自身が管理すべきファイルデ
ータの選択規則が定義されている。
【0048】データ入出力部160は、ファイル書き込
み要求を受け取ると、ファイルサーバ100自身が管理
すべきファイルデータの有無を判断する。管理すべきフ
ァイルデータがあれば、該当するファイルデータのデー
タ転送をRDMA転送部140に依頼する。次に、デー
タ入出力部160は、転送されたファイルデータをキャ
ッシュ領域150から読み出し、1つのオブジェクトと
してストレージデバイス110に書き込む。このとき、
データ入出力部160は、格納したオブジェクト112
の元となったファイルの情報をファイルテーブル114
に登録する。
【0049】また、データ入出力部160は、ファイル
読み取り要求を実行するための判断条件として、ファイ
ル読み取り要求で示されるファイル、またのそのファイ
ルの一部(ファイルデータ)を自己の管理するストレー
ジデバイス110内に格納していることという条件が定
義されている。データ入出力部160は、ファイル読み
取り要求を受け取ると、読み取り対象のファイルの少な
くとも一部がストレージデバイス110に格納されてい
るか否かを判断する。
【0050】たとえば、読み取り対象のファイルを構成
するオブジェクト112がストレージデバイス110に
格納されていれば、データ入出力部160は、そのオブ
ジェクト112をストレージデバイス110から読み出
し、キャッシュ領域150に格納する。キャッシュ領域
150に格納されたオブジェクト112は、RDMA転
送部140によって、ファイル読み取り要求を出力した
アプリケーションサーバに転送される。
【0051】次に、ファイルサーバ100が管理するデ
ータの構造について説明する。図5は、ノードリストの
データ構造例を示す図である。ノードリスト121に
は、ディレクトリ作成処理を行うファイルサーバ10
0,200,300の処理担当順が定義されている。図
5の例では、ノードIDが上位に記載されている程、対
応するファイルサーバの順番が先となる。ノードリスト
121に登録されているノードIDの順番に基づいて、
ディレクトリの作成順が決定される。なお、ノードリス
ト121の最後尾のノードIDの次の順番は、先頭のノ
ードIDとなる。
【0052】図6は、ディレクトリのデータ構造例を示
す図である。ディレクトリ111には、配下のディレク
トリのディレクトリ名とファイルID(識別情報とし
て、ディレクトリとファイルとは区別されない)との
組、および配下のファイルのファイル名とファイルID
との組が格納されている。いずれかのファイルサーバ1
00,200,300でディレクトリやファイルが作成
または削除されると、各ファイルサーバ100,20
0,300の管理エージェントの働きにより、操作対象
のディレクトリまたはファイルの親ディレクトリを有し
ているファイルサーバに対し、処理の内容が通知され
る。これにより、ディレクトリ111の内容が最新の状
態に保たれる。
【0053】次に、オブジェクト112,112a,1
12bについて説明する。オブジェクト112,112
a,112bは、ファイルを分散格納させることで生成
されている。
【0054】図7は、ファイルの分散格納状況を示す図
である。アプリケーションサーバ41に格納されている
ファイル50をファイルサーバ100,200,300
に分散格納する場合、ファイル50が、所定長の複数の
ファイルデータ51〜59,・・・に分割される。分割
されたファイルデータ51〜59,・・・は、各ファイ
ルサーバ100,200,300に分散して送信され
る。なお、ファイル50を分割した際の各ファイルデー
タ51〜59,・・・に対し、先頭から順番に0から始
まる識別番号を付与するものとする。
【0055】ファイルサーバ100では、アプリケーシ
ョンサーバ41から送られた識別番号「0」,「3」,
「6」,・・・のファイルデータ51,54,57,・
・・によってオブジェクト112を構成し、ストレージ
デバイス110に格納する。オブジェクト112には、
オブジェクトID[X]が付与されている。
【0056】ファイルサーバ200では、アプリケーシ
ョンサーバ41から送られた識別番号「1」,「4」,
「7」,・・・のファイルデータ52,55,58,・
・・によってオブジェクト212を構成し、ストレージ
デバイス210に格納する。オブジェクト212には、
オブジェクトID[Y]が付与されている。
【0057】ファイルサーバ300では、アプリケーシ
ョンサーバ41から送られた識別番号「2」,「5」,
「8」,・・・のファイルデータ53,56,59,・
・・によってオブジェクト312を構成し、ストレージ
デバイス310に格納する。オブジェクト312には、
オブジェクトID[Z]が付与されている。
【0058】このように、各ファイルデータ51〜5
9,・・・は、先頭から順番に、1つずつ各ファイルサ
ーバ100,200,300に割り振られている。そし
て、ファイルデータ51〜59,・・・は、割り振られ
たファイルサーバ100,200,300で管理され
る。
【0059】図8は、ファイルテーブルのデータ構造例
を示す図である。ファイルテーブル114には、クラス
タで管理されている各ファイルに関するファイル情報1
14aが格納されている。ファイル情報114aは、フ
ァイルID61と、マップ情報(map[0],map
[1],map[2])62〜64とで構成されてい
る。
【0060】ファイルID61は、分散格納されたファ
イルの識別情報である。各マップ情報62〜64は、そ
れぞれファイルサーバ100,200,300に対応し
ている。図8において、マップ情報62〜64を表して
いる文字(map[0],map[1],map
[2])の括弧内の数字は、対応するファイルサーバの
ノードIDを示している。各マップ情報62〜64は、
対応するファイルサーバ100,200,300で管理
されているオブジェクトに関する情報である。
【0061】マップ情報62には、ファイルサーバ10
0で管理されているオブジェクト112に関する情報が
登録されている。オフセット62a、データ長62b、
及びオブジェクトID62cで構成されている。オフセ
ット62aは、ファイル50を構成する各オブジェクト
112,212,312を結合した場合における、マッ
プ情報62に対応するオブジェクト112の先頭までの
オフセットアドレスである。データ長62bは、マップ
情報62に対応するオブジェクト112のデータ長(デ
ータ容量)である。オブジェクトID62cは、マップ
情報62に対応するオブジェクト112のオブジェクト
ID[X]である。
【0062】マップ情報63は、マップ情報62と同様
のデータ構造により、オブジェクト212に関する情報
が登録されている。したがって、マップ情報63のファ
イルIDの欄には、オブジェクト212のオブジェクト
ID[Y]が登録される。
【0063】マップ情報64は、マップ情報62と同様
のデータ構造により、オブジェクト312に関する情報
が登録されている。したがって、マップ情報64のファ
イルIDの欄には、オブジェクト312のオブジェクト
ID[Z]が登録される。
【0064】ここで、マップ情報62〜64に登録され
るオフセット値について詳しく説明する。図9は、マッ
プ情報に登録されるオフセットを説明する図である。各
オブジェクト112,212,312に対応するマップ
情報62〜64に設定されるオフセットは、オブジェク
ト112、オブジェクト212、オブジェクト312の
順で結合したときの先頭からのオフセットである。従っ
て、オブジェクト112に対応するマップ情報62に登
録されるオフセットは、0である。オブジェクト212
に対応するマップ情報63に登録されるオフセットは、
オブジェクト112のデータ長に相当する値である。オ
ブジェクト312に対応するマップ情報64に登録され
るオフセットは、オブジェクト112とオブジェクト2
12とを合わせたデータ長に相当する値である。
【0065】図10は、ディレクトリ管理情報のデータ
構造例を示す図である。ディレクトリ管理情報113に
は、ファイルサーバ100で管理している各ディレクト
リの管理情報113aが登録されている。管理情報の1
つとして、前回ディレクトリ作成ノードIDが登録され
ている。前回ディレクトリ作成ノードIDは、管理情報
113aに対応するディレクトリ配下に、ディレクトリ
(子ディレクトリ)を前回作成したファイルサーバのノ
ードIDである。図10の例では、ノードID「2」が
登録されている。
【0066】次に、以上のような構成のシステムにおい
て実行される処理を以下に説明する。まず、ノードリス
ト121の同一性確保処理について説明する。
【0067】図11は、ノードリストの同一性確保処理
の概念図である。各ファイルサーバ100,200,3
00の管理エージェント120,220,320は、互
いにノードリスト121の内容を通知し合っている。そ
して、1つのファイルサーバでノードリスト121の内
容が更新された場合、更新後のノードリスト121が他
のファイルサーバに通知される。更新後のノードリスト
121を受け取ったファイルサーバは、受け取ったノー
ドリスト121の内容に従って、自己の管理するノード
リストの内容を更新する。これにより、複数のファイル
サーバ100,200,300におてい、ノードリスト
121の内容の同一性が保たれる。
【0068】次に、ディレクトリ作成処理について説明
する。図12は、ディレクトリ作成処理の手順を示すフ
ローチャートである。図12では、アプリケーションサ
ーバ41とファイルサーバ100との処理手順が示され
ている。アプリケーションサーバ41の処理は図中左側
に示されており、ファイルサーバ100の処理は図中右
側に示されている。以下、図12に示す処理をステップ
番号に沿って説明する。
【0069】[ステップS11]アプリケーションサー
バ41のファイル操作要求部41bは、ディレクトリ作
成要求を生成する。作成されたディレクトリ作成要求に
は、作成するディレクトリの親ディレクトリに関する情
報(親ディレクトリを生成したファイルサーバのノード
IDを含む)が含まれている。
【0070】[ステップS12]ファイル操作要求部4
1bは、全てのファイルサーバ100,200,300
に対して、ディレクトリ作成要求を送信する。その後、
アプリケーションサーバ41の処理はステップS13に
進むと共に、ファイルサーバ100において、ステップ
S14の処理が開始される。
【0071】[ステップS13]ファイル操作要求部4
1bは、ファイルサーバ100,200,300からの
返信を待つ。 [ステップS14]ファイルサーバ100のディレクト
リ作成部130は、アプリケーションサーバ41からの
ディレクトリ作成要求を受信する。
【0072】[ステップS15]ディレクトリ作成部1
30は、親ディレクトリを持つファイルサーバから、親
ディレクトリ配下に前回ディレクトリを作成したファイ
ルサーバのノードIDを取得する。
【0073】具体的には、ディレクトリ作成部130
は、ディレクトリ作成要求に含まれる親ディレクトリに
関する情報を抽出する。そして、抽出した情報を管理エ
ージェント120に渡すと共に、管理エージェント12
0に対して、親ディレクトリ配下に前回ディレクトリを
作成したノードのノードIDの取得を依頼する。
【0074】すると、管理エージェント120は、親デ
ィレクトリに関する情報から、親ディレクトリを作成し
たファイルサーバのノードIDを認識する。そして、管
理エージェント120は、親ディレクトリを作成したフ
ァイルサーバに対して、親ディレクトリ配下に前回ディ
レクトリを作成したファイルサーバのノードIDの取得
要求を出力する。この取得要求を受け取ったファイルサ
ーバの管理エージェントは、親ディレクトリのディレク
トリ管理情報を参照し、そのディレクトリ配下に前回デ
ィレクトリを作成したファイルサーバのノードIDを取
得する。そして、親ディレクトリを作成したファイルサ
ーバの管理エージェントは、取得したノードIDを、取
得要求を出力したファイルサーバ100に対して送信す
る。送信されたノードIDは、ファイルサーバ100の
管理エージェント120で受け取られ、ディレクトリ作
成部130に渡される。
【0075】[ステップS16]ディレクトリ作成部1
30は、管理エージェント120が保持しているノード
リスト121と、取得したノードIDとを比較する。 [ステップS17]ディレクトリ作成部130は、ノー
ドリスト121の配列において、取得したノードIDの
ファイルサーバの次に、自己(ファイルサーバ100)
のノードIDがあるか否かを判断する。次に自己のノー
ドIDが設定されている場合には、処理がステップS1
8に進められる。次に自己のノードIDが設定されてい
ない場合には、処理がステップS22に進められる。
【0076】[ステップS18]ディレクトリ作成部1
30は、ディレクトリ作成要求に従って、新規のディレ
クトリを作成する。 [ステップS19]ディレクトリ作成部130は、親デ
ィレクトリを有するファイルサーバからディレクトリの
内容を取得する。
【0077】具体的には、ディレクトリ作成部130
は、管理エージェント120に対して、親ディレクトリ
を指定したディレクトリの取得を依頼する。管理エージ
ェント120は、依頼に応じて、親ディレクトリを有す
るファイルサーバに対して、ディレクトリ取得要求を出
力する。すると、親ディレクトリを有するファイルサー
バの管理エージェントが、親ディレクトリの内容をコピ
ーし、ファイルサーバ100に送信する。送信された親
ディレクトリのコピーは、管理エージェント120から
ディレクトリ作成部130に渡される。
【0078】[ステップS20]ディレクトリ作成部1
30は、親ディレクトリのコピーに、作成したディレク
トリの情報を追加する。そして、ディレクトリ作成部1
30は、更新後の親ディレクトリのコピーを、元のファ
イルサーバに送信する。なお、親ディレクトリのコピー
を送信する場合、実際には、まず、親ディレクトリのコ
ピーが管理エージェント120に渡される。そして、管
理エージェント120が、親ディレクトリを有するファ
イルサーバに対して、ディレクトリ作成部130によっ
て更新された親ディレクトリのコピーを送信する。更新
後の親ディレクトリのコピーを受信したファイルサーバ
では、管理エージェントが、受信した内容に従って、親
ディレクトリのディレクトリ管理情報を更新する。
【0079】[ステップS21]ディレクトリ作成部1
30は、ディレクトリを作成した旨の応答内容を作成す
る。その後、処理がステップS23に進められる。 [ステップS22]ディレクトリ作成部130は、ディ
レクトリを作成しない旨の応答内容を作成する。
【0080】[ステップS23]ディレクトリ作成部1
30は、ディレクトリ作成要求に対する応答として、デ
ィレクトリ作成結果を送信する。その後、ファイルサー
バ100の処理は終了すると共に、アプリケーションサ
ーバ41においてステップS24の処理が開始される。
【0081】[ステップS24]アプリケーションサー
バ41のファイル操作要求部41bは、全てのファイル
サーバ100,200,300からディレクトリ作成結
果を受信し、処理を終了する。
【0082】図13は、ディレクトリ作成処理の概念図
の前半である。図13の例は、アプリケーションサーバ
41からの要求によって、ファイルサーバ100が有す
るディレクトリの配下に新規のディレクトリを作成する
場合の例である。なお、ファイルサーバ100が有する
ディレクトリ配下に前回ディレクトリを作成したファイ
ルサーバは、ノードID「2」のファイルサーバ200
であるものとする。
【0083】[ステップS101]アプリケーションサ
ーバ41からファイルサーバ100に対して、ディレク
トリ作成要求71が送信される。同様に、アプリケーシ
ョンサーバ41から、ファイルサーバ200に対してデ
ィレクトリ作成要求72が送信され、ファイルサーバ3
00に対してディレクトリ作成要求73が送信される。
各ディレクトリ作成要求71〜73は、宛先が異なる以
外は、同じ内容である。
【0084】[ステップS102]新規に作成するディ
レクトリの親ディレクトリを有しているファイルサーバ
100から他のファイルサーバ200,300に対し
て、親ディレクトリ配下に前回ディレクトリを作成した
ファイルサーバ200のノードID74(図13の例で
は、ノードID=2)が通知される。
【0085】[ステップS103]ノードリスト121
の配列においてノードID「2」の次のノードID
「3」に対応するファイルサーバ300では、ディレク
トリ作成部330が、ストレージデバイス310に新規
ディレクトリ311を作成する。
【0086】図14は、ディレクトリ作成処理の概念図
の後半である。 [ステップS104]新規ディレクトリ311を作成し
たファイルサーバ300の管理エージェント320は、
ファイルサーバ100から親ディレクトリ情報(親ディ
レクトリの内容をコピーしたもの)81を受け取る。
【0087】[ステップS105]ファイルサーバ30
0の管理エージェント320は、親ディレクトリのコピ
ーを更新し、更新後の親ディレクトリ情報82をファイ
ルサーバ100に送信する。
【0088】[ステップS106]各ファイルサーバ1
00、200,300は、アプリケーションサーバ41
に対して、ディレクトリ作成要求71〜73に対する応
答91〜93を返す。ファイルサーバ100からアプリ
ケーションサーバ41へは、ディレクトリを作成しない
旨(非作成)の応答91が返される。ファイルサーバ2
00からアプリケーションサーバ41へは、ディレクト
リを作成しない旨(非作成)の応答92が返される。フ
ァイルサーバ300からアプリケーションサーバ41へ
は、ディレクトリの作成が完了した旨(作成完了)の応
答93が返される。
【0089】以上のような処理により、クラスタを構成
するファイルサーバ100,200,300のいずれか
1つにおいて、新規のディレクトリが作成される。次
に、ファイルの書き込み処理について説明する。
【0090】図15は、ファイル書き込み処理の手順を
示すフローチャートの前半である。図15には、アプリ
ケーションサーバ41がファイルの書き込み要求を出力
した場合の処理の例を示している。図15では、アプリ
ケーションサーバ41とファイルサーバ100との処理
手順が示されている。アプリケーションサーバ41の処
理は図中左側に示されており、ファイルサーバ100の
処理は図中右側に示されている。以下、図15に示す処
理をステップ番号に沿って説明する。
【0091】[ステップS31]アプリケーションサー
バ41のファイル操作要求部41bは、ファイルサーバ
100,200,300へ転送する書き込み要求を作成
する。
【0092】[ステップS32]ファイル操作要求部4
1bは、全てのファイルサーバ100,200,300
に書き込み要求を送信する。その後、アプリケーション
サーバ41の処理がステップS33に進められると共
に、ファイルサーバ100においてステップS34の処
理が開始される。
【0093】[ステップS33]ファイル操作要求部4
1bは、全てのファイルサーバ100,200,300
からの返信を待つ。その後、アプリケーションサーバ4
1の処理は、図16に示すステップS48に進められ
る。
【0094】[ステップS34]ファイルサーバ100
のデータ入出力部160は、アプリケーションサーバ4
1からの書き込み要求を取得する。 [ステップS35]データ入出力部160は、書き込み
要求で指定されたファイルのデータを書き込むべきか否
かを判断する。たとえば、ファイルを複数のファイルデ
ータに分割した際に、ファイルサーバ100自身に割り
当てられたデータが存在する場合には、ファイルのデー
タを書き込むべきであると判断する。ファイルサーバ1
00自身に割り当てられたデータが存在しない場合に
は、ファイルのデータを書き込む必要なないと判断す
る。データを書き込むべきであれば、処理がステップS
36に進められる。データを書き込むべきでなければ、
処理が図16に示すステップS41に進められる。
【0095】[ステップS36]データ入出力部160
は、管理エージェント120へ書き込みを行うストレー
ジデバイス110内のブロックの情報を通知する。 [ステップS37]RDMA転送部140は、アプリケ
ーションサーバ41内のユーザバッファ41aから、フ
ァイルサーバ100自身に割り当てられたファイルデー
タをRDMA転送で、メモリのキャッシュ領域150に
転送する。
【0096】[ステップS38]データ入出力部160
は、キャッシュ領域150に格納された複数のファイル
データを1つのオブジェクトとして、ストレージデバイ
ス110に書き込む。
【0097】[ステップS39]データ入出力部160
は、管理エージェント120へ書き込み完了を通知す
る。その後、処理が図16のステップS43に進められ
る。図16は、ファイル書き込み処理の手順を示すフロ
ーチャートの後半である。以下、図16に示す処理をス
テップ番号に沿って説明する。
【0098】[ステップS41]データ入出力部160
は、処理対象のファイルがファイルサーバ100自身の
管理するファイルか否かを判断する。具体的には、処理
対象のファイルのファイルIDには、そのファイルのフ
ァイル情報を管理しているファイルサーバのノードID
が含まれている。
【0099】従って、データ入出力部160は、ファイ
ルIDに含まれるノードIDと、ファイルサーバ100
自身のノードIDとを比較する。データ入出力部160
は、比較の結果、ノードIDが一致すれば、自己の管理
するファイルであると判断し、ノードIDが一致しなけ
れば、自己の管理するファイルではないと判断する。処
理対象のファイルがファイルサーバ100自身の管理す
るファイルであれば、処理がステップS42に進められ
る。処理対象のファイルがファイルサーバ100自身の
管理するファイルでなければ、処理がステップS46に
進められる。
【0100】[ステップS42]データ入出力部160
は、管理エージェント120に対して、データの書き込
みを行わないことを通知する。 [ステップS43]管理エージェント120は、他のフ
ァイルサーバ200,300の管理エージェント22
0,320と連携して、書き込みデータの総量を計算す
る。計算結果は、データ入出力部160に通知される。
【0101】[ステップS44]処理対象のファイルが
ファイルサーバ100自身の管理するファイルか否かを
判断する。処理対象のファイルがファイルサーバ100
自身の管理するファイルであれば、処理がステップS4
5に進められる。処理対象のファイルがファイルサーバ
100自身の管理するファイルでなければ、処理がステ
ップS46に進められる。
【0102】[ステップS45]データ入出力部160
は、書き込み結果を作成する。書き込み結果には、書き
込んだオブジェクトのデータ量を示す情報が含まれる。
その後、処理がステップS47に進められる。
【0103】[ステップS46]データ入出力部160
は、処理をしないことを示す書き込み結果を作成する。 [ステップS47]データ入出力部160は、作成した
書き込み結果を、アプリケーションサーバ41に送信す
る。その後、ファイルサーバ100における処理が終了
し、アプリケーションサーバ41においてステップS4
8の処理が実行される。
【0104】[ステップS48]アプリケーションサー
バ41のファイル操作要求部41bでは、全てのファイ
ルサーバ100,200,300からの書き込み結果を
受信し、処理を終了する。
【0105】このように、ファイルサーバ100におい
て、書き込み処理が行われる。なお、データ量を含む書
き込み結果(正常に書き込みを完了したことを示す情
報)は、処理対象のファイルのファイル情報を管理する
ファイルサーバが、アプリケーションサーバに対して通
知する。他のファイルサーバは、データの書き込みを行
った場合でも、アプリケーションサーバに対して、処理
を行わないことを示す処理結果を通知する。これによ
り、アプリケーションサーバにおいて、1台のファイル
サーバが書き込み処理を実行したものと認識させること
ができる。その結果、ファイルサーバにおいて、ファイ
ルが分散格納されたことによる特別な処理が不要とな
る。このことは、後述するファイルの読み取り処理にお
いても同様である。
【0106】図17は、書き込み処理の概念図である。 [ステップS111]アプリケーションサーバ41から
全てのファイルサーバ100,200,300に対し
て、書き込み要求411〜413が送信される。書き込
み要求411〜413は、宛先が異なるのみで、それ以
外は同じ内容である。
【0107】[ステップS112]アプリケーションサ
ーバ41のユーザバッファ41aに格納されているファ
イル50がファイルデータ単位に分割され、複数のファ
イルサーバ100,200,300に分散して転送され
る。各ファイルサーバ100,200,300では、転
送されファイルデータがキャッシュ領域150,25
0,350に格納される。
【0108】[ステップS113]各ファイルサーバ1
00,200,300のキャッシュ領域150,25
0,350に格納されたファイルデータは、オブジェク
ト112,212,312としてストレージデバイス1
10,210,310に格納される。
【0109】このようにして、ファイルを分散格納する
ことができる。次に、ファイルの読み取り処理について
説明する。図18は、ファイルの読み取り処理の手順を
示すフローチャートの前半である。図18では、アプリ
ケーションサーバ41とファイルサーバ100との処理
手順が示されている。アプリケーションサーバ41の処
理は図中左側に示されており、ファイルサーバ100の
処理は図中右側に示されている。以下、図18に示す処
理をステップ番号に沿って説明する。
【0110】[ステップS51]アプリケーションサー
バ41のファイル操作要求部41bは、ファイルサーバ
100,200,300に転送する読み取り要求を作成
する。読み取り要求では、ファイルの一部のデータに対
する読み取り要求を出すことができる。その場合、デー
タ開始位置のオフセット(ファイルの先頭からの差分)
や、データ長により、読み取り対象のデータが特定され
る。
【0111】[ステップS52]ファイル操作要求部4
1bは、全てのファイルサーバ100,200,300
に対して、読み取り要求を送信する。その後、アプリケ
ーションサーバ41の処理がステップS53に進むと共
に、ファイルサーバ100においてステップS54の処
理が実行される。
【0112】[ステップS53]ファイル操作要求部4
1bは、全てのファイルサーバからの返信を待つ。その
後、アプリケーションサーバ41の処理は、図19に示
すステップS68に進められる。
【0113】[ステップS54]ファイルサーバ100
のデータ入出力部160は、アプリケーションサーバ4
1からの読み取り要求を取得する。[ステップS55]
データ入出力部160は、読み取り対象として要求され
ているデータを有しているか否かを判断する。読み取り
対象のデータを有していれば、処理がステップS56に
進められる。読み取り対象のデータを有していなけれ
ば、処理が図19に示すステップS61に進められる。
【0114】[ステップS56]データ入出力部160
は、管理エージェント120へ、読み取りを行うストレ
ージデバイス110内のブロックを通知する。 [ステップS57]データ入出力部160は、ストレー
ジデバイス110に格納されているオブジェクトから、
要求されているファイルデータを読み取り、キャッシュ
領域150に書き込む。
【0115】[ステップS58]RDMA転送部140
は、キャッシュ領域150に書き込まれたデータを、ア
プリケーションサーバ41のユーザバッファにRDMA
転送する。転送先のアドレスは、読み取り要求で指定さ
れている。
【0116】[ステップS59]データ入出力部160
は、管理エージェント120へ、読み取り完了を通知す
る。その後、処理が図19に示すステップS63に進め
られる。
【0117】図19は、ファイルの読み取り処理の手順
を示すフローチャートの後半である。以下、図19に示
す処理をステップ番号に沿って説明する。 [ステップS61]データ入出力部160は、処理対象
のファイルがファイルサーバ100自身の管理するファ
イルか否かを判断する。ファイルサーバ100自身の管
理するファイルか否かは、処理対象のファイルのファイ
ルIDに含まれるファイルIDが、ファイルサーバ10
0自身のノードIDと一致するか否かによって判断でき
る。処理対象のファイルがファイルサーバ100自身の
管理するファイルであれば、処理がステップS62に進
められる。処理対象のファイルがファイルサーバ100
自身の管理するファイルでなければ、処理がステップS
66に進められる。
【0118】[ステップS62]データ入出力部160
は、管理エージェント120に対して、データの読み取
りを行わないことを通知する。 [ステップS63]管理エージェント120は、他のフ
ァイルサーバ200,300の管理エージェント22
0,320と連携して、読み取りデータの総量を計算す
る。計算結果は、データ入出力部160に通知される。
【0119】[ステップS64]処理対象のファイルが
ファイルサーバ100自身の管理するファイルか否かを
判断する。処理対象のファイルがファイルサーバ100
自身の管理するファイルであれば、処理がステップS6
5に進められる。処理対象のファイルがファイルサーバ
100自身の管理するファイルでなければ、処理がステ
ップS66に進められる。
【0120】[ステップS65]データ入出力部160
は、読み取り結果を作成する。この読み取り結果には、
転送したデータのデータ量が示されている。その後、処
理がステップS67に進められる。
【0121】[ステップS66]データ入出力部160
は、処理を行わないことを示す読み取り結果を作成す
る。 [ステップS67]データ入出力部160は、読み取り
結果をアプリケーションサーバ41に送信する。その
後、ファイルサーバ100における処理が終了すると共
に、アプリケーションサーバ41においてステップS6
8の処理が実行される。
【0122】[ステップS68]アプリケーションサー
バ41のファイル操作要求部41bは、全てのファイル
サーバ100,200,300から読み取り結果を受信
し、処理を終了する。
【0123】図20は、読み取り処理の概念図である。 [ステップS121]アプリケーションサーバ41から
各ファイルサーバ100,200,300へ、読み取り
要求421〜423が送信される。読み取り要求421
〜423は、宛先が異なるのみで、それ以外は同じ内容
である。
【0124】[ステップS122]各ファイルサーバ1
00,200,300は、読み取り要求で指定されたフ
ァイルデータのうち、自身が所有しているファイルデー
タをストレージデバイス110,210,310から読
み出し、キャッシュ領域150,250,350に格納
する。
【0125】[ステップS123]各ファイルサーバ1
00,200,300は、キャッシュ領域150,25
0,350に格納したファイルデータを含む読み取り結
果431〜433を、アプリケーションサーバ41のユ
ーザバッファ41aにRDMAにより転送する。なお、
RDMA転送の際に、各ファイルデータの格納領域が指
定されることで、ユーザバッファ41aに格納された時
点で、複数のファイルデータが連結され、元のファイル
50が生成される。
【0126】このようにして、分散格納されているファ
イルを読み取ることができる。以上説明したように、本
発明の実施の形態によれば、アプリケーションサーバ4
1〜43がファイルサーバ100,200,300に対
してファイル操作(ディレクトリ作成、データ書き込
み、データ読み取りなど)を要求する場合、全てのファ
イルサーバ100,200,300に同じ内容の要求を
送信することで、ファイルサーバ100,200,30
0にファイル操作を実行させることができる。これによ
り、アプリケーションサーバ41〜43において、ファ
イル操作要求を送信すべきファイルサーバを認識する必
要が無くなる。すなわち、ファイルサーバ100,20
0,300のクライアントとして動作するコンピュータ
(たとえばアプリケーションサーバ41〜43)に、フ
ァイルサーバ100,200,300の負荷分散のため
の処理機能を実装せずにすむ。その結果、ファイルサー
バ100,200,300のクライアントとして動作す
るコンピュータの処理負荷が軽減される。
【0127】また、1つのファイルを分散格納するよう
にしたため、大容量のファイルの入出力が発生しても、
1つのファイルサーバへの負荷の集中が無くなる。しか
も、ファイルを分散格納したことで、1つのファイルの
書き込みや読み取りの処理が、高速化される。その結
果、ネットワークの通信速度の高速化によるメリット
を、十分に生かすことができる。
【0128】[第2の実施の形態]第1の実施の形態で
は、RDMA転送を行うことができるシステムについて
説明したが、RDMA転送ができない場合であっても、
同様のファイルの分散格納を行うことできる。そこで、
RDMA転送を用いない場合の例を、第2の実施の形態
として説明する。
【0129】なお、第2の実施の形態におけるシステム
構成は、図2に示した第1の実施の形態の構成と同様で
ある。ただし、アプリケーションサーバとファイルサー
バとの機能の一部が、第1の実施の形態と異なる。ま
た、第2の実施の形態におけるアプリケーションサーバ
とファイルサーバとは、図3と同様のハードウェア構成
で実現することができる。
【0130】図21は、第2の実施の形態における機能
ブロック図である。第2の実施の形態は、複数のアプリ
ケーションサーバ45〜47と、複数のファイルサーバ
100,200a,300aとで構成される。ファイル
サーバ100,200a,300aによって、クラスタ
が構成されている。ここで、アプリケーションサーバ4
5とファイルサーバ100aとの機能を、代表的に説明
する。なお、ストレージデバイス110の内容は第1の
実施の形態と同じであるため、図4と同一の符号を付し
て説明を省略する。
【0131】アプリケーションサーバ45は、ユーザバ
ッファ45a、ファイル操作要求部45b、および通信
バッファ45cを有している。ユーザバッファ45a
は、Webサーバ30からの要求に応じた処理を実行す
るためのプロセスが利用する記憶領域である。
【0132】ファイル操作要求部45bは、ファイルサ
ーバ100a,200a,300aに対してファイル操
作要求を送信する。ファイル操作要求には、ディレクト
リ作成要求、ファイル書き込み要求、ファイル読み取り
要求などがある。ファイル操作要求部45bは、ファイ
ルの読み取り要求を各ファイルサーバ100a,200
a,300aに送信した際には、その応答として、各フ
ァイルサーバ100a,200a,300aからオブジ
ェクトを受け取る。すると、ファイル操作要求部45b
は、受け取った複数のオブジェクトを組み合わせて1つ
のファイルを生成し、ユーザバッファ45aに格納す
る。
【0133】通信バッファ45cは、ファイル操作要求
部45bがネットワークを介した通信を行うためのデー
タを記憶するための記憶領域である。ファイルサーバ1
00aは、管理エージェント120a、ディレクトリ作
成部130a、キャッシュ領域150a、およびデータ
入出力部160aを有している。管理エージェント12
0aは、ノードリスト121aを保持している。管理エ
ージェント120a、ディレクトリ作成部130aの機
能は、図4に示した第1の実施の形態の同名も構成要素
と同じである。
【0134】キャッシュ領域150aは、データ入出力
部160aが、ストレージデバイス110に入出力する
データを一時的に格納する記憶領域である。データ入出
力部160aは、アプリケーションサーバ45からのフ
ァイルの書き込み要求や読み取り要求に応じて、ストレ
ージデバイス110内のファイルを操作する。
【0135】データ入出力部160aは、アプリケーシ
ョンサーバ45からファイルの書き込み要求を受け取れ
ば、管理エージェント120aが保持しているノードリ
スト121aを参照して、書き込みを行うべきファイル
データを特定する。次に、データ入出力部160aは、
書き込みを行うべきファイルデータをアプリケーション
サーバ45のファイル操作要求部45bから受け取り、
一端キャッシュ領域150aに格納する。そして、デー
タ入出力部160aは、キャッシュ領域150aに格納
したファイルデータを纏めて1つのオブジェクト112
として、ストレージデバイス110に格納する。
【0136】データ入出力部160aは、アプリケーシ
ョンサーバ45からファイルの読み取り要求を受け取る
と、指定されたファイルの一部を構成するオブジェクト
112をストレージデバイス110から読み取り、キャ
ッシュ領域150aに格納する。次に、キャッシュ領域
150aに格納されたオブジェクト112を、アプリケ
ーションサーバ45のファイル操作要求部45bに渡
す。
【0137】次に、第2の実施の形態におけるファイル
の読み取り処理について詳しく説明する。図22は、第
2の実施の形態におけるファイルの読み取り処理の手順
を示すフローチャートである。図22では、アプリケー
ションサーバ45とファイルサーバ100aとの処理手
順が示されている。アプリケーションサーバ45の処理
は図中左側に示されており、ファイルサーバ100aの
処理は図中右側に示されている。以下、図22に示す処
理をステップ番号に沿って説明する。
【0138】[ステップS201]アプリケーションサ
ーバ45のファイル操作要求部45bは、読み取り要求
を作成する。読み取り要求では、ファイルの一部のデー
タに対する読み取り要求を出すことができる。その場
合、データ開始位置のオフセット(ファイルの先頭から
の差分)や、データ長により、読み取り対象のデータが
特定される。
【0139】[ステップS202]ファイル操作要求部
45bは、全てのファイルサーバ100a,200a,
300aに対して、ファイルの読み取り要求を送信す
る。その後、アプリケーションサーバ45の処理がステ
ップS203に進むと共に、ファイルサーバ100aに
おいてステップS204の処理が実行される。
【0140】[ステップS203]ファイル操作要求部
45bは、全てのファイルサーバ100a,200a,
300aからの返信を待つ。その後、アプリケーション
サーバ45の処理は、ステップS210に進められる。
【0141】[ステップS204]ファイルサーバ10
0aのデータ入出力部160aは、アプリケーションサ
ーバ45からの読み取り要求を取得する。 [ステップS205]データ入出力部160aは、読み
取り対象として要求されているデータを有しているか否
かを判断する。読み取り対象のデータを有していれば、
処理がステップS206に進められる。読み取り対象の
データを有していなければ、処理がステップS208に
進められる。
【0142】[ステップS206]データ入出力部16
0aは、ストレージデバイス110に格納されているオ
ブジェクトから、要求されているファイルデータを読み
取り、キャッシュ領域150aに書き込む。
【0143】[ステップS207]データ入出力部16
0aは、読み取り結果を作成する。読み取り結果には、
要求されたデータや、そのデータのデータ量などが含ま
れる。その後、処理がステップS209に進められる。
【0144】[ステップS208]データ入出力部16
0aは、処理を行わないことを示す読み取り結果を作成
する。 [ステップS209]データ入出力部160aは、読み
取り結果をアプリケーションサーバ45に送信する。そ
の後、ファイルサーバ100aにおける処理が終了する
と共に、アプリケーションサーバ45においてステップ
S210の処理が実行される。
【0145】[ステップS210]アプリケーションサ
ーバ45のファイル操作要求部45bは、全てのファイ
ルサーバ100a,200a,300aから読み取り結
果を受信する。受信した読み取り結果は、一端、通信バ
ッファ45cに格納される。
【0146】[ステップS211]ファイル操作要求部
45bは、全ファイルサーバからの読み取り結果に含ま
れるファイルデータを通信バッファ45cから読み出
し、繋ぎ合わせ、連続データとする。これにより、読み
取り対象のファイルが生成される。ファイル操作要求部
45bは、生成したファイルをユーザバッファ45aに
格納する。
【0147】図23は、第2の実施の形態におけるファ
イル読み取り処理の前半を示す概念図である。 [ステップS221]アプリケーションサーバ45から
各ファイルサーバ100a,200a,300aへ、読
み取り要求441〜443が送信される。読み取り要求
441〜443は、宛先が異なるのみで、それ以外は同
じ内容である。
【0148】[ステップS222]各ファイルサーバ1
00a,200a,300aは、読み取り要求441〜
443で指定されたファイルデータのうち、自身が所有
しているファイルデータをストレージデバイス110,
210,310から読み出し、キャッシュ領域150
a,250a,350aに格納する。
【0149】図24は、第2の実施の形態におけるファ
イル読み取り処理の後半を示す概念図である。 [ステップS223]各ファイルサーバ100a,20
0a,300aは、キャッシュ領域150a,250
a,350aに格納したファイルデータを含む読み取り
結果451〜453を、アプリケーションサーバ45に
転送する。その読み取り結果451〜453は、通信バ
ッファ45cに格納される。
【0150】[ステップS224]アプリケーションサ
ーバ45は、通信バッファ45cに格納された読み取り
結果内のファイルデータを、元の順番に繋ぎ合わせ、フ
ァイルを生成する。そして、アプリケーションサーバ4
5は、そのファイルをユーザバッファ45aに格納す
る。
【0151】以上のようにして、RDMA機能を用いず
に、分散格納されたファイルの読み取りを行うことがで
きる。 [変形例]以下、上記第1、第2の実施の形態に対する
変形例について説明する。
【0152】上記の実施の形態では、ファイルを分散格
納しているが、常にファイルの分散格納を行う必要はな
い。たとえば、ファイルのデータ量が小さければ、分散
させずに、1つのファイルサーバで管理させてもよい。
この場合、ファイルの書き込み要求が出されたときに、
各ファイルサーバは、自己の格納すべきファイルか否か
を判断する。たとえば、ファイルサーバに対して、格納
対象のファイルを決定するための規則を予め定義してお
く。そして、各ファイルサーバは、定義された規則に従
って、それぞれの格納すべきファイルを特定し、特定し
たファイルの書き込みを実行する。
【0153】格納対象のファイルを決定するための規則
としては、たとえば、ディレクトリ作成要求に応じてデ
ィレクトリを作成するファイルサーバの決定規則と同様
の規則を適用することができる。すなわち、ファイルが
作成される場所のディレクトリ(親ディレクトリ)配下
に、前回ファイルを作成したファイルサーバを調べる。
そして、ノードリストにおいて、前回ファイルを作成し
たファイルサーバの次のファイルサーバがファイルの書
き込みを行う。
【0154】なお、上記第1、第2の実施の形態の説明
では、ファイルのファイル情報を管理するファイルサー
バの決定方法について説明していないが、上記の変形例
に示した格納対象のファイルを決定するための規則と同
様の方法によって、あるファイルのファイル情報を管理
すべきファイルサーバを決定することができる。
【0155】上記の処理機能は、サーバコンピュータと
クライアントコンピュータとによって実現することがで
きる。その場合、ファイルサーバが有すべき機能の処理
内容を記述したサーバプログラム、およびアプリケーシ
ョンサーバが有すべき機能の処理内容を記述したクライ
アントプログラムが提供される。サーバプログラムをサ
ーバコンピュータで実行することにより、ファイルサー
バの処理機能がサーバコンピュータ上で実現される。ま
た、クライアントプログラムをクライアントコンピュー
タで実行することにより、アプリケーションサーバの処
理機能がクライアントコンピュータ上で実現される。
【0156】処理内容を記述したサーバプログラムやク
ライアントプログラムは、コンピュータで読み取り可能
な記録媒体に記録しておくことができる。コンピュータ
で読み取り可能な記録媒体としては、磁気記録装置、光
ディスク、光磁気記録媒体、半導体メモリなどがある。
磁気記録装置には、ハードディスク装置(HDD)、フ
レキシブルディスク(FD)、磁気テープなどがある。
光ディスクには、DVD(Digital Versatile Disc)、D
VD−RAM(Random Access Memory)、CD−ROM(C
ompact Disc Read Only Memory)、CD−R(Recordabl
e)/RW(ReWritable)などがある。光磁気記録媒体に
は、MO(Magneto-Optical disc)などがある。
【0157】サーバプログラムやクライアントプログラ
ムを流通させる場合には、たとえば、各プログラムが記
録されたDVD、CD−ROMなどの可搬型記録媒体が
販売される。また、クライアントプログラムをサーバコ
ンピュータの記憶装置に格納しておき、ネットワークを
介して、サーバコンピュータからクライアントコンピュ
ータにクライアントプログラムを転送することもでき
る。
【0158】サーバプログラムを実行するサーバコンピ
ュータは、たとえば、可搬型記録媒体に記録されたサー
バプログラムを、自己の記憶装置に格納する。そして、
サーバコンピュータは、自己の記憶装置からサーバプロ
グラムを読み取り、サーバプログラムに従った処理を実
行する。なお、サーバコンピュータは、可搬型記録媒体
から直接サーバプログラムを読み取り、そのサーバプロ
グラムに従った処理を実行することもできる。
【0159】クライアントプログラムを実行するクライ
アントコンピュータは、たとえば、可搬型記録媒体に記
録されたクライアントプログラムもしくはサーバコンピ
ュータから転送されたクライアントプログラムを、自己
の記憶装置に格納する。そして、クライアントコンピュ
ータは、自己の記憶装置からクライアントプログラムを
読み取り、クライアントプログラムに従った処理を実行
する。なお、クライアントコンピュータは、可搬型記録
媒体から直接クライアントプログラムを読み取り、その
クライアントプログラムに従った処理を実行することも
できる。また、クライアントコンピュータは、サーバコ
ンピュータからクライアントプログラムが転送される毎
に、逐次、受け取ったクライアントプログラムに従った
処理を実行することもできる。
【0160】(付記1) クラスタを構成する複数のフ
ァイルサーバの一つとしてコンピュータを機能させるた
めのファイルサーバプログラムにおいて、前記コンピュ
ータに、前記クラスタにおいて実行する処理のうち自身
の担当する処理を判断するための判断条件が予め定義さ
れており、前記クラスタを構成する前記複数のファイル
サーバに対して送信されたファイル操作要求を受け取る
と、前記判断条件に基づいて前記ファイル操作要求に応
じた処理の実行の要否を判断し、前記ファイル操作要求
に応じた処理の実行が必要と判断された場合、自己の管
理するストレージデバイスに対して前記ファイル操作要
求に応じた処理を行う、処理を実行させることを特徴と
するファイルサーバプログラム。
【0161】(付記2) 前記クラスタを構成する前記
複数のファイルサーバの処理担当順が予め定義されてお
り、前記処理担当順において自己の順番であることが、
前記判断条件として定義されていることを特徴とする付
記1記載のファイルサーバプログラム。
【0162】(付記3) 前記ファイル操作要求がディ
レクトリ作成要求である場合、前記処理担当順によっ
て、共通の親ディレクトリの配下へディレクトリを作成
するファイルサーバの順番が定義されていることを特徴
とする付記1記載のファイルサーバプログラム。
【0163】(付記4) ディレクトリを作成した後
は、前記ディレクトリの配下に最後に子ディレクトリを
作成したファイルサーバの識別情報を記憶し、前記ディ
レクトリ作成要求において、前記ディレクトリ配下への
ディレクトリ作成が要求された場合、前記ディレクトリ
配下に前回子ディレクトリを作成したファイルサーバの
識別情報を、他のファイルサーバに通知することを特徴
とする付記3記載のファイルサーバプログラム。
【0164】(付記5) 前記ファイル操作要求に応じ
た処理のうち担当部分として割り当てられた処理を含む
ことが前記判断条件として定義されており、前記ファイ
ル操作要求に応じた処理を実行する際には、前記担当部
分として割り当てられた処理のみを実行することを特徴
とする付記1記載のファイルサーバプログラム。
【0165】(付記6) 前記ファイル操作要求がファ
イルの書き込み要求であるときの前記判断条件として、
前記ファイルを分割したファイルデータのうち、書き込
み処理を担当すべき処理担当データの選択規則が定義さ
れており、前記ファイル操作要求に応じた処理を実行す
る際には、前記処理担当データを、自己の管理するスト
レージデバイスに格納することを特徴とする付記1記載
のファイルサーバプログラム。
【0166】(付記7) 前記ファイル操作要求がファ
イルの読み取り要求であるときの前記判断条件として、
前記ファイルを自己の管理するストレージデバイス内に
格納していることが定義されており、前記ファイル操作
要求に応じた処理を実行する際には、前記ストレージデ
バイスから前記ファイルを読み出し、読み出した前記フ
ァイルを、前記ファイル操作要求を出力した装置へ送信
することを特徴とする付記1記載のファイルサーバプロ
グラム。
【0167】(付記8) 前記ファイル操作要求がファ
イルを構成する一部のファイルデータの読み取り要求で
ある場合、前記ファイルデータを自己の管理するストレ
ージデバイス内に格納していることが、前記判断条件と
して定義されており、前記ファイル操作要求に応じた処
理を実行する際には、前記ストレージデバイスから前記
ファイルデータを読み出し、読み出した前記ファイルデ
ータを、前記ファイル操作要求を出力した装置へ送信す
ることを特徴とする付記1記載のファイルサーバプログ
ラム。
【0168】(付記9) クラスタを構成する複数のフ
ァイルサーバの一つとして機能するコンピュータのファ
イル操作方法において、前記クラスタにおいて実行する
処理のうち自身の担当する処理を判断するための判断条
件が予め定義されており、前記クラスタを構成する前記
複数のファイルサーバに対して送信されたファイル操作
要求を受け取ると、前記判断条件に基づいて前記ファイ
ル操作要求に応じた処理の実行の要否を判断し、前記フ
ァイル操作要求に応じた処理の実行が必要と判断された
場合、自己の管理下にあるストレージデバイスに対して
前記ファイル操作要求に応じた処理を行う、ことを特徴
とするファイル操作方法。
【0169】(付記10) クラスタを構成する複数の
装置の一つとして機能するファイルサーバにおいて、ス
トレージデバイスと、前記クラスタにおいて実行する処
理のうち自身の担当する処理を判断するための判断条件
が予め定義されており、前記クラスタを構成する前記複
数のファイルサーバに対して送信されたファイル操作要
求を受け取ると、前記判断条件に基づいて前記ファイル
操作要求に応じた処理の実行の要否を判断する判断手段
と、前記判断手段において前記ファイル操作要求に応じ
た処理の実行が必要と判断された場合、前記ストレージ
デバイスに対して前記ファイル操作要求に応じた処理を
行う処理実行手段と、を有することを特徴とするファイ
ルサーバ。
【0170】(付記11) クラスタを構成する複数の
ファイルサーバの一つとしてコンピュータを機能させる
ためのファイルサーバプログラムを記録した前記コンピ
ュータ読み取り可能な記録媒体において、前記コンピュ
ータに、前記クラスタにおいて実行する処理のうち自身
の担当する処理を判断するための判断条件が予め定義さ
れており、前記クラスタを構成する前記複数のファイル
サーバに対して送信されたファイル操作要求を受け取る
と、前記判断条件に基づいて前記ファイル操作要求に応
じた処理の実行の要否を判断し、前記ファイル操作要求
に応じた処理の実行が必要と判断された場合、自己の管
理するストレージデバイスに対して前記ファイル操作要
求に応じた処理を行う、処理を実行させることを特徴と
する記録媒体。
【0171】
【発明の効果】以上説明したように本発明では、全ての
ファイルサーバに対してファイル操作要求が出力される
と、処理の実行が必要と判断したファイルサーバにおい
て、ファイル操作要求に応じた処理が実行されるように
した。そのため、ファイル操作要求の送信先をクライア
ントに認識させる必要が無くなり、処理の効率化を図る
ことができるとともに、ファイル操作要求の送信先の認
識処理に起因する処理負荷の偏りを防ぐことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図
である。
【図2】第1の実施の形態のシステム構成例を示す図で
ある。
【図3】本発明の実施の形態に用いるファイルサーバの
ハードウェア構成例を示す図である。
【図4】第1の実施の形態におけるアプリケーションサ
ーバとファイルサーバとの機能ブロック図である。
【図5】ノードリストのデータ構造例を示す図である。
【図6】ディレクトリのデータ構造例を示す図である。
【図7】ファイルの分散格納状況を示す図である。
【図8】ファイルテーブルのデータ構造例を示す図であ
る。
【図9】マップ情報に登録されるオフセットを説明する
図である。
【図10】ディレクトリ管理情報のデータ構造例を示す
図である。
【図11】ノードリストの同一性確保処理の概念図であ
る。
【図12】ディレクトリ作成処理の手順を示すフローチ
ャートである。
【図13】ディレクトリ作成処理の概念図の前半であ
る。
【図14】ディレクトリ作成処理の概念図の後半であ
る。
【図15】ファイル書き込み処理の手順を示すフローチ
ャートの前半である。
【図16】ファイル書き込み処理の手順を示すフローチ
ャートの後半である。
【図17】書き込み処理の概念図である。
【図18】ファイルの読み取り処理の手順を示すフロー
チャートの前半である。
【図19】ファイルの読み取り処理の手順を示すフロー
チャートの後半である。
【図20】読み取り処理の概念図である。
【図21】第2の実施の形態における機能ブロック図で
ある。
【図22】第2の実施の形態におけるファイルの読み取
り処理の手順を示すフローチャートである。
【図23】第2の実施の形態におけるファイル読み取り
処理の前半を示す概念図である。
【図24】第2の実施の形態におけるファイル読み取り
処理の後半を示す概念図である。
【符号の説明】
1 クライアント 1a,1b、1c ファイル操作要求 2 クラスタ 3,4,5 ファイルサーバ 3a,4a,5a ストレージデバイス 10 ネットワーク 21,22,23 Webクライアント 30 Webサーバ 41,42,43 アプリケーションサーバ 100,200,300 ファイルサーバ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成14年11月14日(2002.11.
14)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項3
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正内容】
【0033】ファイルテーブル114は、一つのファイ
ルがクラスタ全体においてどのように分散されているか
を含むファイル情報のリストである。ファイル情報に
は、ファイルの属性(更新時間、作成者など)も含まれ
ている。なお、1つのファイルに対するファイル情報
は、クラスタを構成するファイルサーバ200,300
のうちの一台が管理している。すなわち、ファイルサー
バ100のファイルテーブル114は、ファイルサーバ
100自身が作成したファイルに関するファイル情報が
登録されている。同様に、各ファイルサーバ100,2
00,300は、それぞれオリジナルのファイルテーブ
ル(ファイルサーバのノードIDがファイルテーブル内
のファイル情報中のファイルIDに含まれている)を有
している。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】変更
【補正内容】
【0059】図8は、ファイルテーブルのデータ構造例
を示す図である。ファイルテーブル114には、クラス
タで管理されている各ファイルに関するファイル情報1
14aが格納されている。ファイル情報114aは、フ
ァイルID61と、マップ情報(map[],map
],map[])62〜64とで構成されてい
る。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】変更
【補正内容】
【0060】ファイルID61は、分散格納されたファ
イルの識別情報である。各マップ情報62〜64は、そ
れぞれファイルサーバ100,200,300に対応し
ている。図8において、マップ情報62〜64を表して
いる文字(map[],map[],map
])の括弧内の数字は、対応するファイルサーバの
ノードIDを示している。各マップ情報62〜64は、
対応するファイルサーバ100,200,300で管理
されているオブジェクトに関する情報である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】図11は、ノードリストの同一性確保処理
の概念図である。各ファイルサーバ100,200,3
00の管理エージェント120,220,320は、互
いにノードリスト121の内容を通知し合っている。そ
して、1つのファイルサーバでノードリスト121の内
容が更新された場合、更新後のノードリスト121が他
のファイルサーバに通知される。更新後のノードリスト
121を受け取ったファイルサーバは、受け取ったノー
ドリスト121の内容に従って、自己の管理するノード
リストの内容を更新する。これにより、複数のファイル
サーバ100,200,300において、ノードリスト
121の内容の同一性が保たれる。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0115
【補正方法】変更
【補正内容】
【0115】[ステップS58]RDMA転送部140
は、キャッシュ領域150に書き込まれたデータを、ア
プリケーションサーバ41のユーザバッファ41aにR
DMA転送する。転送先のアドレスは、読み取り要求で
指定されている。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0117
【補正方法】変更
【補正内容】
【0117】図19は、ファイルの読み取り処理の手順
を示すフローチャートの後半である。以下、図19に示
す処理をステップ番号に沿って説明する。[ステップS
61]データ入出力部160は、処理対象のファイルが
ファイルサーバ100自身の管理するファイルか否かを
判断する。ファイルサーバ100自身の管理するファイ
ルか否かは、処理対象のファイルのファイルIDに含ま
れるノードIDが、ファイルサーバ100自身のノード
IDと一致するか否かによって判断できる。処理対象の
ファイルがファイルサーバ100自身の管理するファイ
ルであれば、処理がステップS62に進められる。処理
対象のファイルがファイルサーバ100自身の管理する
ファイルでなければ、処理がステップS66に進められ
る。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0130
【補正方法】変更
【補正内容】
【0130】図21は、第2の実施の形態における機能
ブロック図である。第2の実施の形態は、複数のアプリ
ケーションサーバ45〜47と、複数のファイルサーバ
100,200a,300aとで構成される。ファイ
ルサーバ100,200a,300aによって、クラ
スタが構成されている。ここで、アプリケーションサー
バ45とファイルサーバ100aとの機能を、代表的に
説明する。なお、ストレージデバイス110の内容は第
1の実施の形態と同じであるため、図4と同一の符号を
付して説明を省略する。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0135
【補正方法】変更
【補正内容】
【0135】データ入出力部160aは、アプリケーシ
ョンサーバ45からファイルの書き込み要求を受け取れ
ば、管理エージェント120aが保持しているノードリ
スト121aを参照して、書き込みを行うべきファイル
データを特定する。次に、データ入出力部160aは、
書き込みを行うべきファイルデータをアプリケーション
サーバ45のファイル操作要求部45bから受け取り、
キャッシュ領域150aに格納する。そして、デー
タ入出力部160aは、キャッシュ領域150aに格納
したファイルデータを纏めて1つのオブジェクト112
として、ストレージデバイス110に格納する。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0145
【補正方法】変更
【補正内容】
【0145】[ステップS210]アプリケーションサ
ーバ45のファイル操作要求部45bは、全てのファイ
ルサーバ100a,200a,300aから読み取り結
果を受信する。受信した読み取り結果は、一、通信バ
ッファ45cに格納される。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0162
【補正方法】変更
【補正内容】
【0162】(付記3) 前記ファイル操作要求がディ
レクトリ作成要求である場合、前記処理担当順によっ
て、共通の親ディレクトリの配下へディレクトリを作成
するファイルサーバの順番が定義されていることを特徴
とする付記記載のファイルサーバプログラム。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0169
【補正方法】変更
【補正内容】
【0169】(付記10) クラスタを構成する複数の
装置の一つとして機能するファイルサーバにおいて、ス
トレージデバイスと、前記クラスタにおいて実行する処
理のうち自身の担当する処理を判断するための判断条件
が予め定義されており、前記クラスタを構成する前記複
数の装置に対して送信されたファイル操作要求を受け取
ると、前記判断条件に基づいて前記ファイル操作要求に
応じた処理の実行の要否を判断する判断手段と、前記判
断手段において前記ファイル操作要求に応じた処理の実
行が必要と判断された場合、前記ストレージデバイスに
対して前記ファイル操作要求に応じた処理を行う処理実
行手段と、を有することを特徴とするファイルサーバ。
【手続補正13】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正14】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】
【手続補正15】
【補正対象書類名】図面
【補正対象項目名】図24
【補正方法】変更
【補正内容】
【図24】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 友昭 愛知県名古屋市東区葵一丁目16番38号 株 式会社富士通プライムソフトテクノロジ内 Fターム(参考) 5B082 EA01 FA16 HA08

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 クラスタを構成する複数のファイルサー
    バの一つとしてコンピュータを機能させるためのファイ
    ルサーバプログラムにおいて、 前記コンピュータに、 前記クラスタにおいて実行する処理のうち自身の担当す
    る処理を判断するための判断条件が予め定義されてお
    り、前記クラスタを構成する前記複数のファイルサーバ
    に対して送信されたファイル操作要求を受け取ると、前
    記判断条件に基づいて前記ファイル操作要求に応じた処
    理の実行の要否を判断し、 前記ファイル操作要求に応じた処理の実行が必要と判断
    された場合、自己の管理するストレージデバイスに対し
    て前記ファイル操作要求に応じた処理を行う、処理を実
    行させることを特徴とするファイルサーバプログラム。
  2. 【請求項2】 前記クラスタを構成する前記複数のファ
    イルサーバの処理担当順が予め定義されており、前記処
    理担当順において自己の順番であることが、前記判断条
    件として定義されていることを特徴とする請求項1記載
    のファイルサーバプログラム。
  3. 【請求項3】 前記ファイル操作要求がディレクトリ作
    成要求である場合、前記処理担当順によって、共通の親
    ディレクトリの配下へディレクトリを作成するファイル
    サーバの順番が定義されていることを特徴とする請求項
    1記載のファイルサーバプログラム。
  4. 【請求項4】 前記ファイル操作要求がファイルの書き
    込み要求であるときの前記判断条件として、前記ファイ
    ルを分割したファイルデータのうち、書き込み処理を担
    当すべき処理担当データの選択規則が定義されており、 前記ファイル操作要求に応じた処理を実行する際には、
    前記処理担当データを、自己の管理するストレージデバ
    イスに格納することを特徴とする請求項1記載のファイ
    ルサーバプログラム。
  5. 【請求項5】 前記ファイル操作要求がファイルの読み
    取り要求であるときの前記判断条件として、前記ファイ
    ルを自己の管理するストレージデバイス内に格納してい
    ることが定義されており、 前記ファイル操作要求に応じた処理を実行する際には、
    前記ストレージデバイスから前記ファイルを読み出し、
    読み出した前記ファイルを、前記ファイル操作要求を出
    力した装置へ送信することを特徴とする請求項1記載の
    ファイルサーバプログラム。
JP2001356071A 2001-11-21 2001-11-21 ファイルサーバプログラム Expired - Fee Related JP3983036B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001356071A JP3983036B2 (ja) 2001-11-21 2001-11-21 ファイルサーバプログラム
US10/295,920 US7415518B2 (en) 2001-11-21 2002-11-18 File server program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001356071A JP3983036B2 (ja) 2001-11-21 2001-11-21 ファイルサーバプログラム

Publications (2)

Publication Number Publication Date
JP2003157194A true JP2003157194A (ja) 2003-05-30
JP3983036B2 JP3983036B2 (ja) 2007-09-26

Family

ID=19167660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001356071A Expired - Fee Related JP3983036B2 (ja) 2001-11-21 2001-11-21 ファイルサーバプログラム

Country Status (2)

Country Link
US (1) US7415518B2 (ja)
JP (1) JP3983036B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338624A (ja) * 2005-06-06 2006-12-14 Nec Corp サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム
JP2008191915A (ja) * 2007-02-05 2008-08-21 Hitachi Ltd ファイル格納方法及び計算機システム
JP2008234264A (ja) * 2007-03-20 2008-10-02 Nec Software Chubu Ltd ファイルサーバの負荷分散装置、負荷分散装置用プログラム、及び負荷分散方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060125465A (ko) * 2005-06-02 2006-12-06 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 저장방법및 저장장치
US20190320008A1 (en) * 2018-04-16 2019-10-17 Qbic Technology Co., Ltd. Data transfer system and method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207370A (ja) 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
JP2001051890A (ja) 1999-08-10 2001-02-23 Toshiba Corp 仮想分散ファイルサーバシステム
US7506034B2 (en) * 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
WO2002056181A2 (en) * 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338624A (ja) * 2005-06-06 2006-12-14 Nec Corp サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム
JP2008191915A (ja) * 2007-02-05 2008-08-21 Hitachi Ltd ファイル格納方法及び計算機システム
JP2008234264A (ja) * 2007-03-20 2008-10-02 Nec Software Chubu Ltd ファイルサーバの負荷分散装置、負荷分散装置用プログラム、及び負荷分散方法

Also Published As

Publication number Publication date
JP3983036B2 (ja) 2007-09-26
US7415518B2 (en) 2008-08-19
US20030097437A1 (en) 2003-05-22

Similar Documents

Publication Publication Date Title
US10789217B2 (en) Hierarchical namespace with strong consistency and horizontal scalability
US8463867B2 (en) Distributed storage network
US8700573B2 (en) File storage service system, file management device, file management method, ID denotative NAS server and file reading method
US6775673B2 (en) Logical volume-level migration in a partition-based distributed file system
EP0976065B1 (en) Dynamic directory service
JP2948496B2 (ja) データ処理システム内で複写データ一貫性を維持するためのシステムおよび方法
JP2003131924A (ja) リモートアクセスプログラム、リモートアクセス要求処理プログラム、およびクライアントコンピュータ
JP4275683B2 (ja) オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体
US20080256090A1 (en) Dynamic directory service
US20080271130A1 (en) Minimizing client-side inconsistencies in a distributed virtual file system
US20060259611A1 (en) Method for accessing distributed file system
US20060123121A1 (en) System and method for service session management
JP2004511840A (ja) 他のノードのキャッシュに基づくあるノードのキャッシュ内のデータの置換管理
KR20120072907A (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US8429129B2 (en) Database restructuring apparatus, and computer-readable recording medium recording database restructuring program
JP2009181167A (ja) コンピュータシステム、リモートコピー方法及び第1コンピュータ
JP4713257B2 (ja) データ記憶装置及びバージョン管理プログラム
US11341009B1 (en) Directing placement of data in cloud storage nodes
US8332844B1 (en) Root image caching and indexing for block-level distributed application management
JP3290801B2 (ja) 資源所在位置検出方式
JP2003157194A (ja) ファイルサーバプログラム
JP2005063374A (ja) データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。
JP2004302564A (ja) ネームサービス提供方法及びその実施装置並びにその処理プログラム
CN113553314A (zh) 一种超融合系统的服务处理方法、装置、设备及介质
JP2004280847A (ja) 情報中継装置及び記憶媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050913

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070606

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: 20070703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

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: 20100713

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees