JP3983036B2 - ファイルサーバプログラム - Google Patents
ファイルサーバプログラム Download PDFInfo
- Publication number
- JP3983036B2 JP3983036B2 JP2001356071A JP2001356071A JP3983036B2 JP 3983036 B2 JP3983036 B2 JP 3983036B2 JP 2001356071 A JP2001356071 A JP 2001356071A JP 2001356071 A JP2001356071 A JP 2001356071A JP 3983036 B2 JP3983036 B2 JP 3983036B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- file server
- directory
- server
- created
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File 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)
Description
【発明の属する技術分野】
本発明は他の装置からの要求に応じてファイル操作を行うためのファイルサーバプログラムに関し、特にクラスタの一部を構成するコンピュータで使用されるファイルサーバプログラムに関する。
【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,1b,1cに応じた処理を行う(ステップS2,S4,S6)。
【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,S3,S5)。そして、ファイル操作要求1a,1b,1cに応じた処理の実行が必要と判断された場合、自己の管理するストレージデバイス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,1b,1cを出力すればよくなる。すなわち、どのファイルサーバ3,4,5で処理が実行されるかを、クライアント1において認識する必要がない。その結果、ファイル操作を実行するファイルサーバをクライアント1に認識させるための処理が不要となり、処理の効率化を図ることができる。
【0018】
しかも、本発明では、従来、ファイルサーバ間での処理の偏りの原因となっていた処理(ファイル操作処理の依頼先をクライアント1に認識させる処理)が不要となり、処理負荷の偏りの発生を抑制することができる。適切な負荷分散が行われることで、クラスタ2全体としての処理の高速化が図られる。
【0019】
以下、本発明をファイルサーバシステムに適用した場合の例を用いて、実施の形態を詳しく説明する。
[第1の実施の形態]
図2は、第1の実施の形態のシステム構成例を示す図である。第1の実施の形態では、ネットワーク10を介して、複数のWebクライアント21,22,23、Webサーバ30、アプリケーションサーバ41,42,43、および複数のファイルサーバ100,200,300が接続されている。
【0020】
Webクライアント21,22,23は、WWW(World Wide Web)の閲覧機能(ブラウザ)を有している。Webクライアント21,22,23は、Webサーバ30にアクセスして、様々なコンテンツを閲覧することができる。
【0021】
Webサーバ30は、Webクライアント21,22,23からの要求に応じて、コンテンツを提供する。また、Webサーバ30は、Webクライアント21,22,23から、ファイルサーバ100,200,300が保持するファイルへのアクセス要求(書き込み要求や読込要求)を受けると、その処理をアプリケーションサーバ41,42,43に依頼する。
【0022】
アプリケーションサーバ41,42,43は、Webサーバ30において高度な処理が必要となったときに、その処理をWebサーバ30に代わって実行する。たとえば、アプリケーションサーバ41,42,43は、Webサーバ30から、ファイルサーバ100,200,300に対するファイル操作要求の処理を引き継ぐ。処理を引き継いだアプリケーションサーバ41,42,43は、ファイルサーバ100,200,300に対してファイル操作要求を出力する。そして、アプリケーションサーバ41,42,43は、ファイルサーバ100,200,300に対するファイル操作要求の結果を、Webサーバ30に通知する。
【0023】
なお、アプリケーションサーバ41、42,43は、図1に示すクライアント1として機能する。
複数のファイルサーバ100,200,300は、それぞれが大規模のストレージデバイスを有しており、ファイルサーバ100,200,300全体でクラスタが構成されている。そして、クラスタを構成する各ファイルサーバ100,200,300が有しているストレージデバイスの利用環境が、アプリケーションサーバ41,42,43に提供される。たとえば、ファイルサーバ100,200,300は、アプリケーションサーバ41,42,43からのファイル操作要求に応じて、ディレクトリの作成、ファイルの書き込み、ファイルの読み取りなどの処理を行う。
【0024】
なお、各ファイルサーバ100,200,300には、それぞれを一意に識別するためのノードIDが割り振られている。図2の例では、ファイルサーバ100のノードIDは[1]であり、ファイルサーバ200のノードIDは[2]であり、ファイルサーバ300のノードIDは[3]である。
【0025】
図3は、本発明の実施の形態に用いるファイルサーバのハードウェア構成例を示す図である。ファイルサーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ストレージデバイスインタフェース103、グラフィック処理装置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からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【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,111a,111b,・・・、オブジェクト112,112a,112b,・・・、ディレクトリ管理情報113、およびファイルテーブル114が格納されている。ディレクトリ111,111a,111b,・・・は、ファイルサーバ100によって作成されたディレクトリであり、そのディレクトリ配下のファイルに関する情報が登録されている。オブジェクト112,112a,112b,・・・は、クラスタ全体で管理される各ファイルの一部である。ディレクトリ管理情報113は、ディレクトリ111,111a,111b,・・・に関する管理情報である。
【0033】
ファイルテーブル114は、一つのファイルがクラスタ全体においてどのように分散されているかを含むファイル情報のリストである。ファイル情報には、ファイルの属性(更新時間、作成者など)も含まれている。なお、1つのファイルに対するファイル情報は、クラスタを構成するファイルサーバ200,300のうちの一台が管理している。すなわち、ファイルサーバ100のファイルテーブル114は、ファイルサーバ100自身が作成したファイルに関するファイル情報が登録されている。同様に、各ファイルサーバ100,200,300は、それぞれオリジナルのファイルテーブル(ファイルサーバのノードIDがファイルテーブル内のファイル情報中のファイルIDに含まれている)を有している。
【0034】
ファイルサーバ100が自身オリジナルのファイルテーブル114に変更を加えた場合、データ入出力部160が、ファイルテーブルに、内容を変更したことを示すフラグを立てる。ファイルサーバ100が、自身がオリジナルのファイルテーブルを持たないファイルに対して処理を行う場合、そのファイルテーブルのコピーが生成される。そのとき、ファイルサーバ100は、今回コピーしたファイルテーブルが前回から変更がない場合は、前回コピーしたファイルテーブルを使用する。
【0035】
ファイルサーバ100は、管理エージェント120、ディレクトリ作成部130、RDMA(Remote 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から送られたディレクトリ情報を、ディレクトリ作成部130に渡す。逆に、管理エージェント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は、該当するファイルサーバのノードIDの取得依頼を、管理エージェント120に通知する。すると、管理エージェント120で該当するファイルサーバのノードIDの取得処理が行われ、取得したノードIDがディレクトリ作成部130に渡される。
【0044】
ディレクトリ作成部130は、管理エージェント120から渡されたノードIDが、ノードリスト121の順番において、ファイルサーバ100自身の直前であるかどうかを判断する。管理エージェント120から渡されたノードIDの次の順番がファイルサーバ100自身であれば、ディレクトリ作成部130は、ディレクトリ作成要求に応じてディレクトリを作成する。
【0045】
ディレクトリ作成部130は、ディレクトリを作成した際には、作成したディレクトリに対応する情報を、ディレクトリ管理情報113に登録する。
RDMA転送部140は、RDMAと呼ばれるデータ転送方式により、アプリケーションサーバ41,42,43との間でファイルデータの送受信を行う。RDMA転送は、転送元と転送先とのアドレスを指定したデータ転送である。RDMA転送を行うことで、たとえば、アプリケーションサーバ41のユーザバッファ41a内のアドレスを指定して、そのアドレス内のデータをキャッシュ領域150に転送することができる。また、RDMA転送によれば、アプリケーションサーバ41のユーザバッファ41a内のアドレスを指定して、そのアドレス内へキャッシュ領域150のデータを転送することができる。
【0046】
キャッシュ領域150は、アプリケーションサーバ41,42,43との間で送受信するデータを一時的に格納する記憶領域である。キャッシュ領域150は、図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には、ディレクトリ作成処理を行うファイルサーバ100,200,300の処理担当順が定義されている。図5の例では、ノードIDが上位に記載されている程、対応するファイルサーバの順番が先となる。ノードリスト121に登録されているノードIDの順番に基づいて、ディレクトリの作成順が決定される。なお、ノードリスト121の最後尾のノードIDの次の順番は、先頭のノードIDとなる。
【0052】
図6は、ディレクトリのデータ構造例を示す図である。ディレクトリ111には、配下のディレクトリのディレクトリ名とファイルID(識別情報として、ディレクトリとファイルとは区別されない)との組、および配下のファイルのファイル名とファイルIDとの組が格納されている。いずれかのファイルサーバ100,200,300でディレクトリやファイルが作成または削除されると、各ファイルサーバ100,200,300の管理エージェントの働きにより、操作対象のディレクトリまたはファイルの親ディレクトリを有しているファイルサーバに対し、処理の内容が通知される。これにより、ディレクトリ111の内容が最新の状態に保たれる。
【0053】
次に、オブジェクト112,112a,112bについて説明する。オブジェクト112,112a,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〜59,・・・は、先頭から順番に、1つずつ各ファイルサーバ100,200,300に割り振られている。そして、ファイルデータ51〜59,・・・は、割り振られたファイルサーバ100,200,300で管理される。
【0059】
図8は、ファイルテーブルのデータ構造例を示す図である。ファイルテーブル114には、クラスタで管理されている各ファイルに関するファイル情報114aが格納されている。ファイル情報114aは、ファイルID61と、マップ情報(map[1],map[2],map[3])62〜64とで構成されている。
【0060】
ファイルID61は、分散格納されたファイルの識別情報である。
各マップ情報62〜64は、それぞれファイルサーバ100,200,300に対応している。図8において、マップ情報62〜64を表している文字(map[1],map[2],map[3])の括弧内の数字は、対応するファイルサーバのノードIDを示している。各マップ情報62〜64は、対応するファイルサーバ100,200,300で管理されているオブジェクトに関する情報である。
【0061】
マップ情報62には、ファイルサーバ100で管理されているオブジェクト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とオブジェクト212とを合わせたデータ長に相当する値である。
【0065】
図10は、ディレクトリ管理情報のデータ構造例を示す図である。ディレクトリ管理情報113には、ファイルサーバ100で管理している各ディレクトリの管理情報113aが登録されている。管理情報の1つとして、前回ディレクトリ作成ノードIDが登録されている。前回ディレクトリ作成ノードIDは、管理情報113aに対応するディレクトリ配下に、ディレクトリ(子ディレクトリ)を前回作成したファイルサーバのノードIDである。図10の例では、ノードID「2」が登録されている。
【0066】
次に、以上のような構成のシステムにおいて実行される処理を以下に説明する。
まず、ノードリスト121の同一性確保処理について説明する。
【0067】
図11は、ノードリストの同一性確保処理の概念図である。各ファイルサーバ100,200,300の管理エージェント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]ファイル操作要求部41bは、全てのファイルサーバ100,200,300に対して、ディレクトリ作成要求を送信する。その後、アプリケーションサーバ41の処理はステップS13に進むと共に、ファイルサーバ100において、ステップS14の処理が開始される。
【0071】
[ステップS13]ファイル操作要求部41bは、ファイルサーバ100,200,300からの返信を待つ。
[ステップS14]ファイルサーバ100のディレクトリ作成部130は、アプリケーションサーバ41からのディレクトリ作成要求を受信する。
【0072】
[ステップS15]ディレクトリ作成部130は、親ディレクトリを持つファイルサーバから、親ディレクトリ配下に前回ディレクトリを作成したファイルサーバのノードIDを取得する。
【0073】
具体的には、ディレクトリ作成部130は、ディレクトリ作成要求に含まれる親ディレクトリに関する情報を抽出する。そして、抽出した情報を管理エージェント120に渡すと共に、管理エージェント120に対して、親ディレクトリ配下に前回ディレクトリを作成したノードのノードIDの取得を依頼する。
【0074】
すると、管理エージェント120は、親ディレクトリに関する情報から、親ディレクトリを作成したファイルサーバのノードIDを認識する。そして、管理エージェント120は、親ディレクトリを作成したファイルサーバに対して、親ディレクトリ配下に前回ディレクトリを作成したファイルサーバのノードIDの取得要求を出力する。この取得要求を受け取ったファイルサーバの管理エージェントは、親ディレクトリのディレクトリ管理情報を参照し、そのディレクトリ配下に前回ディレクトリを作成したファイルサーバのノードIDを取得する。そして、親ディレクトリを作成したファイルサーバの管理エージェントは、取得したノードIDを、取得要求を出力したファイルサーバ100に対して送信する。送信されたノードIDは、ファイルサーバ100の管理エージェント120で受け取られ、ディレクトリ作成部130に渡される。
【0075】
[ステップS16]ディレクトリ作成部130は、管理エージェント120が保持しているノードリスト121と、取得したノードIDとを比較する。
[ステップS17]ディレクトリ作成部130は、ノードリスト121の配列において、取得したノードIDのファイルサーバの次に、自己(ファイルサーバ100)のノードIDがあるか否かを判断する。次に自己のノードIDが設定されている場合には、処理がステップS18に進められる。次に自己のノードIDが設定されていない場合には、処理がステップS22に進められる。
【0076】
[ステップS18]ディレクトリ作成部130は、ディレクトリ作成要求に従って、新規のディレクトリを作成する。
[ステップS19]ディレクトリ作成部130は、親ディレクトリを有するファイルサーバからディレクトリの内容を取得する。
【0077】
具体的には、ディレクトリ作成部130は、管理エージェント120に対して、親ディレクトリを指定したディレクトリの取得を依頼する。管理エージェント120は、依頼に応じて、親ディレクトリを有するファイルサーバに対して、ディレクトリ取得要求を出力する。すると、親ディレクトリを有するファイルサーバの管理エージェントが、親ディレクトリの内容をコピーし、ファイルサーバ100に送信する。送信された親ディレクトリのコピーは、管理エージェント120からディレクトリ作成部130に渡される。
【0078】
[ステップS20]ディレクトリ作成部130は、親ディレクトリのコピーに、作成したディレクトリの情報を追加する。そして、ディレクトリ作成部130は、更新後の親ディレクトリのコピーを、元のファイルサーバに送信する。なお、親ディレクトリのコピーを送信する場合、実際には、まず、親ディレクトリのコピーが管理エージェント120に渡される。そして、管理エージェント120が、親ディレクトリを有するファイルサーバに対して、ディレクトリ作成部130によって更新された親ディレクトリのコピーを送信する。更新後の親ディレクトリのコピーを受信したファイルサーバでは、管理エージェントが、受信した内容に従って、親ディレクトリのディレクトリ管理情報を更新する。
【0079】
[ステップS21]ディレクトリ作成部130は、ディレクトリを作成した旨の応答内容を作成する。その後、処理がステップS23に進められる。
[ステップS22]ディレクトリ作成部130は、ディレクトリを作成しない旨の応答内容を作成する。
【0080】
[ステップS23]ディレクトリ作成部130は、ディレクトリ作成要求に対する応答として、ディレクトリ作成結果を送信する。その後、ファイルサーバ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が送信され、ファイルサーバ300に対してディレクトリ作成要求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]ファイルサーバ300の管理エージェント320は、親ディレクトリのコピーを更新し、更新後の親ディレクトリ情報82をファイルサーバ100に送信する。
【0088】
[ステップS106]各ファイルサーバ100、200,300は、アプリケーションサーバ41に対して、ディレクトリ作成要求71〜73に対する応答91〜93を返す。ファイルサーバ100からアプリケーションサーバ41へは、ディレクトリを作成しない旨(非作成)の応答91が返される。ファイルサーバ200からアプリケーションサーバ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]ファイル操作要求部41bは、全てのファイルサーバ100,200,300に書き込み要求を送信する。その後、アプリケーションサーバ41の処理がステップS33に進められると共に、ファイルサーバ100においてステップS34の処理が開始される。
【0093】
[ステップS33]ファイル操作要求部41bは、全てのファイルサーバ100,200,300からの返信を待つ。その後、アプリケーションサーバ41の処理は、図16に示すステップS48に進められる。
【0094】
[ステップS34]ファイルサーバ100のデータ入出力部160は、アプリケーションサーバ41からの書き込み要求を取得する。
[ステップS35]データ入出力部160は、書き込み要求で指定されたファイルのデータを書き込むべきか否かを判断する。たとえば、ファイルを複数のファイルデータに分割した際に、ファイルサーバ100自身に割り当てられたデータが存在する場合には、ファイルのデータを書き込むべきであると判断する。ファイルサーバ100自身に割り当てられたデータが存在しない場合には、ファイルのデータを書き込む必要なないと判断する。データを書き込むべきであれば、処理がステップS36に進められる。データを書き込むべきでなければ、処理が図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の管理エージェント220,320と連携して、書き込みデータの総量を計算する。計算結果は、データ入出力部160に通知される。
【0101】
[ステップS44]処理対象のファイルがファイルサーバ100自身の管理するファイルか否かを判断する。処理対象のファイルがファイルサーバ100自身の管理するファイルであれば、処理がステップS45に進められる。処理対象のファイルがファイルサーバ100自身の管理するファイルでなければ、処理がステップS46に進められる。
【0102】
[ステップS45]データ入出力部160は、書き込み結果を作成する。書き込み結果には、書き込んだオブジェクトのデータ量を示す情報が含まれる。その後、処理がステップS47に進められる。
【0103】
[ステップS46]データ入出力部160は、処理をしないことを示す書き込み結果を作成する。
[ステップS47]データ入出力部160は、作成した書き込み結果を、アプリケーションサーバ41に送信する。その後、ファイルサーバ100における処理が終了し、アプリケーションサーバ41においてステップS48の処理が実行される。
【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,250,350に格納される。
【0108】
[ステップS113]各ファイルサーバ100,200,300のキャッシュ領域150,250,350に格納されたファイルデータは、オブジェクト112,212,312としてストレージデバイス110,210,310に格納される。
【0109】
このようにして、ファイルを分散格納することができる。
次に、ファイルの読み取り処理について説明する。
図18は、ファイルの読み取り処理の手順を示すフローチャートの前半である。図18では、アプリケーションサーバ41とファイルサーバ100との処理手順が示されている。アプリケーションサーバ41の処理は図中左側に示されており、ファイルサーバ100の処理は図中右側に示されている。以下、図18に示す処理をステップ番号に沿って説明する。
【0110】
[ステップS51]アプリケーションサーバ41のファイル操作要求部41bは、ファイルサーバ100,200,300に転送する読み取り要求を作成する。読み取り要求では、ファイルの一部のデータに対する読み取り要求を出すことができる。その場合、データ開始位置のオフセット(ファイルの先頭からの差分)や、データ長により、読み取り対象のデータが特定される。
【0111】
[ステップS52]ファイル操作要求部41bは、全てのファイルサーバ100,200,300に対して、読み取り要求を送信する。その後、アプリケーションサーバ41の処理がステップS53に進むと共に、ファイルサーバ100においてステップS54の処理が実行される。
【0112】
[ステップS53]ファイル操作要求部41bは、全てのファイルサーバからの返信を待つ。その後、アプリケーションサーバ41の処理は、図19に示すステップS68に進められる。
【0113】
[ステップS54]ファイルサーバ100のデータ入出力部160は、アプリケーションサーバ41からの読み取り要求を取得する。
[ステップS55]データ入出力部160は、読み取り対象として要求されているデータを有しているか否かを判断する。読み取り対象のデータを有していれば、処理がステップS56に進められる。読み取り対象のデータを有していなければ、処理が図19に示すステップS61に進められる。
【0114】
[ステップS56]データ入出力部160は、管理エージェント120へ、読み取りを行うストレージデバイス110内のブロックを通知する。
[ステップS57]データ入出力部160は、ストレージデバイス110に格納されているオブジェクトから、要求されているファイルデータを読み取り、キャッシュ領域150に書き込む。
【0115】
[ステップS58]RDMA転送部140は、キャッシュ領域150に書き込まれたデータを、アプリケーションサーバ41のユーザバッファ41aにRDMA転送する。転送先のアドレスは、読み取り要求で指定されている。
【0116】
[ステップS59]データ入出力部160は、管理エージェント120へ、読み取り完了を通知する。その後、処理が図19に示すステップS63に進められる。
【0117】
図19は、ファイルの読み取り処理の手順を示すフローチャートの後半である。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS61]データ入出力部160は、処理対象のファイルがファイルサーバ100自身の管理するファイルか否かを判断する。ファイルサーバ100自身の管理するファイルか否かは、処理対象のファイルのファイルIDに含まれるノードIDが、ファイルサーバ100自身のノードIDと一致するか否かによって判断できる。処理対象のファイルがファイルサーバ100自身の管理するファイルであれば、処理がステップS62に進められる。処理対象のファイルがファイルサーバ100自身の管理するファイルでなければ、処理がステップS66に進められる。
【0118】
[ステップS62]データ入出力部160は、管理エージェント120に対して、データの読み取りを行わないことを通知する。
[ステップS63]管理エージェント120は、他のファイルサーバ200,300の管理エージェント220,320と連携して、読み取りデータの総量を計算する。計算結果は、データ入出力部160に通知される。
【0119】
[ステップS64]処理対象のファイルがファイルサーバ100自身の管理するファイルか否かを判断する。処理対象のファイルがファイルサーバ100自身の管理するファイルであれば、処理がステップS65に進められる。処理対象のファイルがファイルサーバ100自身の管理するファイルでなければ、処理がステップS66に進められる。
【0120】
[ステップS65]データ入出力部160は、読み取り結果を作成する。この読み取り結果には、転送したデータのデータ量が示されている。その後、処理がステップS67に進められる。
【0121】
[ステップS66]データ入出力部160は、処理を行わないことを示す読み取り結果を作成する。
[ステップS67]データ入出力部160は、読み取り結果をアプリケーションサーバ41に送信する。その後、ファイルサーバ100における処理が終了すると共に、アプリケーションサーバ41においてステップS68の処理が実行される。
【0122】
[ステップS68]アプリケーションサーバ41のファイル操作要求部41bは、全てのファイルサーバ100,200,300から読み取り結果を受信し、処理を終了する。
【0123】
図20は、読み取り処理の概念図である。
[ステップS121]アプリケーションサーバ41から各ファイルサーバ100,200,300へ、読み取り要求421〜423が送信される。読み取り要求421〜423は、宛先が異なるのみで、それ以外は同じ内容である。
【0124】
[ステップS122]各ファイルサーバ100,200,300は、読み取り要求で指定されたファイルデータのうち、自身が所有しているファイルデータをストレージデバイス110,210,310から読み出し、キャッシュ領域150,250,350に格納する。
【0125】
[ステップS123]各ファイルサーバ100,200,300は、キャッシュ領域150,250,350に格納したファイルデータを含む読み取り結果431〜433を、アプリケーションサーバ41のユーザバッファ41aにRDMAにより転送する。なお、RDMA転送の際に、各ファイルデータの格納領域が指定されることで、ユーザバッファ41aに格納された時点で、複数のファイルデータが連結され、元のファイル50が生成される。
【0126】
このようにして、分散格納されているファイルを読み取ることができる。
以上説明したように、本発明の実施の形態によれば、アプリケーションサーバ41〜43がファイルサーバ100,200,300に対してファイル操作(ディレクトリ作成、データ書き込み、データ読み取りなど)を要求する場合、全てのファイルサーバ100,200,300に同じ内容の要求を送信することで、ファイルサーバ100,200,300にファイル操作を実行させることができる。これにより、アプリケーションサーバ41〜43において、ファイル操作要求を送信すべきファイルサーバを認識する必要が無くなる。すなわち、ファイルサーバ100,200,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と、複数のファイルサーバ100a,200a,300aとで構成される。ファイルサーバ100a,200a,300aによって、クラスタが構成されている。ここで、アプリケーションサーバ45とファイルサーバ100aとの機能を、代表的に説明する。なお、ストレージデバイス110の内容は第1の実施の形態と同じであるため、図4と同一の符号を付して説明を省略する。
【0131】
アプリケーションサーバ45は、ユーザバッファ45a、ファイル操作要求部45b、および通信バッファ45cを有している。
ユーザバッファ45aは、Webサーバ30からの要求に応じた処理を実行するためのプロセスが利用する記憶領域である。
【0132】
ファイル操作要求部45bは、ファイルサーバ100a,200a,300aに対してファイル操作要求を送信する。ファイル操作要求には、ディレクトリ作成要求、ファイル書き込み要求、ファイル読み取り要求などがある。ファイル操作要求部45bは、ファイルの読み取り要求を各ファイルサーバ100a,200a,300aに送信した際には、その応答として、各ファイルサーバ100a,200a,300aからオブジェクトを受け取る。すると、ファイル操作要求部45bは、受け取った複数のオブジェクトを組み合わせて1つのファイルを生成し、ユーザバッファ45aに格納する。
【0133】
通信バッファ45cは、ファイル操作要求部45bがネットワークを介した通信を行うためのデータを記憶するための記憶領域である。
ファイルサーバ100aは、管理エージェント120a、ディレクトリ作成部130a、キャッシュ領域150a、およびデータ入出力部160aを有している。管理エージェント120aは、ノードリスト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]ファイルサーバ100aのデータ入出力部160aは、アプリケーションサーバ45からの読み取り要求を取得する。
[ステップS205]データ入出力部160aは、読み取り対象として要求されているデータを有しているか否かを判断する。読み取り対象のデータを有していれば、処理がステップS206に進められる。読み取り対象のデータを有していなければ、処理がステップS208に進められる。
【0142】
[ステップS206]データ入出力部160aは、ストレージデバイス110に格納されているオブジェクトから、要求されているファイルデータを読み取り、キャッシュ領域150aに書き込む。
【0143】
[ステップS207]データ入出力部160aは、読み取り結果を作成する。読み取り結果には、要求されたデータや、そのデータのデータ量などが含まれる。その後、処理がステップS209に進められる。
【0144】
[ステップS208]データ入出力部160aは、処理を行わないことを示す読み取り結果を作成する。
[ステップ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]各ファイルサーバ100a,200a,300aは、読み取り要求441〜443で指定されたファイルデータのうち、自身が所有しているファイルデータをストレージデバイス110,210,310から読み出し、キャッシュ領域150a,250a,350aに格納する。
【0149】
図24は、第2の実施の形態におけるファイル読み取り処理の後半を示す概念図である。
[ステップS223]各ファイルサーバ100a,200a,300aは、キャッシュ領域150a,250a,350aに格納したファイルデータを含む読み取り結果451〜453を、アプリケーションサーバ45に転送する。その読み取り結果451〜453は、通信バッファ45cに格納される。
【0150】
[ステップS224]アプリケーションサーバ45は、通信バッファ45cに格納された読み取り結果内のファイルデータを、元の順番に繋ぎ合わせ、ファイルを生成する。そして、アプリケーションサーバ45は、そのファイルをユーザバッファ45aに格納する。
【0151】
以上のようにして、RDMA機能を用いずに、分散格納されたファイルの読み取りを行うことができる。
[変形例]
以下、上記第1、第2の実施の形態に対する変形例について説明する。
【0152】
上記の実施の形態では、ファイルを分散格納しているが、常にファイルの分散格納を行う必要はない。たとえば、ファイルのデータ量が小さければ、分散させずに、1つのファイルサーバで管理させてもよい。この場合、ファイルの書き込み要求が出されたときに、各ファイルサーバは、自己の格納すべきファイルか否かを判断する。たとえば、ファイルサーバに対して、格納対象のファイルを決定するための規則を予め定義しておく。そして、各ファイルサーバは、定義された規則に従って、それぞれの格納すべきファイルを特定し、特定したファイルの書き込みを実行する。
【0153】
格納対象のファイルを決定するための規則としては、たとえば、ディレクトリ作成要求に応じてディレクトリを作成するファイルサーバの決定規則と同様の規則を適用することができる。すなわち、ファイルが作成される場所のディレクトリ(親ディレクトリ)配下に、前回ファイルを作成したファイルサーバを調べる。そして、ノードリストにおいて、前回ファイルを作成したファイルサーバの次のファイルサーバがファイルの書き込みを行う。
【0154】
なお、上記第1、第2の実施の形態の説明では、ファイルのファイル情報を管理するファイルサーバの決定方法について説明していないが、上記の変形例に示した格納対象のファイルを決定するための規則と同様の方法によって、あるファイルのファイル情報を管理すべきファイルサーバを決定することができる。
【0155】
上記の処理機能は、サーバコンピュータとクライアントコンピュータとによって実現することができる。その場合、ファイルサーバが有すべき機能の処理内容を記述したサーバプログラム、およびアプリケーションサーバが有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをサーバコンピュータで実行することにより、ファイルサーバの処理機能がサーバコンピュータ上で実現される。また、クライアントプログラムをクライアントコンピュータで実行することにより、アプリケーションサーバの処理機能がクライアントコンピュータ上で実現される。
【0156】
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0157】
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
【0158】
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
【0159】
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
【0160】
(付記1) クラスタを構成する複数のファイルサーバの一つとしてコンピュータを機能させるためのファイルサーバプログラムにおいて、
前記コンピュータに、
前記クラスタにおいて実行する処理のうち自身の担当する処理を判断するための判断条件が予め定義されており、前記クラスタを構成する前記複数のファイルサーバに対して送信されたファイル操作要求を受け取ると、前記判断条件に基づいて前記ファイル操作要求に応じた処理の実行の要否を判断し、
前記ファイル操作要求に応じた処理の実行が必要と判断された場合、自己の管理するストレージデバイスに対して前記ファイル操作要求に応じた処理を行う、
処理を実行させることを特徴とするファイルサーバプログラム。
【0161】
(付記2) 前記クラスタを構成する前記複数のファイルサーバの処理担当順が予め定義されており、前記処理担当順において自己の順番であることが、前記判断条件として定義されていることを特徴とする付記1記載のファイルサーバプログラム。
【0162】
(付記3) 前記ファイル操作要求がディレクトリ作成要求である場合、前記処理担当順によって、共通の親ディレクトリの配下へディレクトリを作成するファイルサーバの順番が定義されていることを特徴とする付記2記載のファイルサーバプログラム。
【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 ファイルサーバ
Claims (3)
- クラスタを構成する複数のファイルサーバの一つとしてコンピュータを機能させるためのファイルサーバプログラムにおいて、
前記ファイルサーバプログラムには、前記クラスタにおいて実行する処理のうち自身の担当する処理を判断するための判断条件として、共通の親ディレクトリの配下へディレクトリを作成するファイルサーバの処理担当順が予め定義されており、
前記ファイルサーバプログラムによって作成されたディレクトリに関するディレクトリ情報がストレージデバイス内に記憶されており、当該ディレクトリ情報には、当該ディレクトリ配下に子ディレクトリを前回作成したファイルサーバの識別情報が含まれており、
前記ファイルサーバプログラムは、前記コンピュータに、
作成すべきディレクトリの親ディレクトリを作成したファイルサーバの識別情報を含むディレクトリ作成要求を受け取ると、前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報を比較し、
前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報が一致しない場合、前記親ディレクトリを作成したファイルサーバに、親ディレクトリ配下に前回ディレクトリを作成したファイルサーバの識別情報の取得要求を送信し、親ディレクトリ配下に前回ディレクトリを作成したファイルサーバから前回子ディレクトリを作成したファイルサーバの識別情報を取得し、
前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報が一致する場合、親ディレクトリ配下に前回ディレクトリを作成したファイルサーバの識別情報の取得要求を受け付け、前記ストレージデバイス内の親ディレクトリのディレクトリ管理情報を参照し、当該ディレクトリ配下に前回ディレクトリを作成したファイルサーバの識別情報を取得し、取得した識別情報を、当該取得要求を出力したファイルサーバに送信し、
前記ディレクトリを作成するファイルサーバの処理担当順において、前記ファイルサーバプログラムが有する自ファイルサーバの識別情報が、前回子ファイルを作成したファイルサーバの識別情報の次に該当するか否かを判断し、
前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報が一致せず、かつ前記ファイルサーバプログラムが有する自ファイルサーバの識別情報が前記取得した前回子ファイルを作成したファイルサーバの識別情報の次に該当する場合、新規のディレクトリを作成し、親ディレクトリを有するファイルサーバにディレクトリ作成結果を送信し、ディレクトリを作成した旨の応答内容を作成して、前記ディレクトリ作成要求に対する応答として当該応答内容を送信し、
前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報が一致し、かつ前記ファイルサーバプログラムが有する自ファイルサーバの識別情報が前記取得した前回子ファイルを作成したファイルサーバの識別情報の次に該当しない場合、ディレクトリの作成結果を受け取ると、親ディレクトリのディレクトリ管理情報を更新し、
前記ファイルサーバプログラムが有する自ファイルサーバの識別情報と前記親ディレクトリを作成したファイルサーバの識別情報が一致し、かつ前記ファイルサーバプログラムが有する自ファイルサーバの識別情報が前記取得した前回子ファイルを作成したファイルサーバの識別情報の次に該当する場合、新規のディレクトリを作成し、前記ディレクトリ作成要求に対する応答として当該応答内容を送信し、親ディレクトリのディレクトリ管理情報を更新する、
処理を実行させることを特徴とするファイルサーバプログラム。 - ファイル書き込み要求を受け取ったときの前記判断条件として、ファイルを分割したファイルデータのうち、書き込み処理を担当すべき処理担当データの選択規則が定義されており、
前記ファイル書き込み要求に応じた処理を実行する際には、前記処理担当データを、自己の管理するストレージデバイスに格納することを特徴とする請求項1記載のファイルサーバプログラム。 - ファイル読み取り要求を受け取ったときの前記判断条件として、ファイルを自己の管理するストレージデバイス内に格納している場合に処理を実行することが定義されており、
前記ファイル読み取り要求に応じた処理を実行する際には、前記ストレージデバイスから前記ファイルを読み出し、読み出した前記ファイルを、前記ファイル読み取り要求を出力した装置へ送信することを特徴とする請求項1記載のファイルサーバプログラム。
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 JP2003157194A (ja) | 2003-05-30 |
| JP3983036B2 true 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) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20060125465A (ko) * | 2005-06-02 | 2006-12-06 | 엘지전자 주식회사 | 기록매체, 데이터 재생방법 및 재생장치와 데이터 저장방법및 저장장치 |
| JP4774814B2 (ja) * | 2005-06-06 | 2011-09-14 | 日本電気株式会社 | サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム |
| JP5137409B2 (ja) * | 2007-02-05 | 2013-02-06 | 株式会社日立製作所 | ファイル格納方法及び計算機システム |
| JP2008234264A (ja) * | 2007-03-20 | 2008-10-02 | Nec Software Chubu Ltd | ファイルサーバの負荷分散装置、負荷分散装置用プログラム、及び負荷分散方法 |
| US20190320008A1 (en) * | 2018-04-16 | 2019-10-17 | Qbic Technology Co., Ltd. | Data transfer system and method thereof |
Family Cites Families (4)
| 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 |
| AU2002249939A1 (en) * | 2001-01-11 | 2002-07-24 | Z-Force Communications, Inc. | File switch and switched file system |
-
2001
- 2001-11-21 JP JP2001356071A patent/JP3983036B2/ja not_active Expired - Fee Related
-
2002
- 2002-11-18 US US10/295,920 patent/US7415518B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003157194A (ja) | 2003-05-30 |
| US20030097437A1 (en) | 2003-05-22 |
| US7415518B2 (en) | 2008-08-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7124133B2 (en) | Remote access program, remote access request-processing program, and client computer | |
| US8463867B2 (en) | Distributed storage network | |
| US7548959B2 (en) | Method for accessing distributed file system | |
| CN101454747B (zh) | 用于分布式系统中联合资源发现服务的方法和系统 | |
| EP0976065B1 (en) | Dynamic directory service | |
| US20080256090A1 (en) | Dynamic directory service | |
| WO2016192496A1 (zh) | 数据迁移处理方法及装置 | |
| US11341009B1 (en) | Directing placement of data in cloud storage nodes | |
| JP2009259007A (ja) | 分散格納方法、分散格納システム及び分散格納装置 | |
| US20070115844A1 (en) | Routing a service query in an overlay network | |
| JP5765441B2 (ja) | 情報処理装置、データ管理方法およびプログラム | |
| JP3983036B2 (ja) | ファイルサーバプログラム | |
| US8429129B2 (en) | Database restructuring apparatus, and computer-readable recording medium recording database restructuring program | |
| JP4327869B2 (ja) | 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法 | |
| JP2005063374A (ja) | データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。 | |
| JP4713257B2 (ja) | データ記憶装置及びバージョン管理プログラム | |
| JP2013182287A (ja) | データアクセス制御装置、データアクセス制御方法およびプログラム | |
| JP2004302564A (ja) | ネームサービス提供方法及びその実施装置並びにその処理プログラム | |
| WO2012164735A1 (ja) | 情報処理装置、データ管理方法およびデータ管理プログラム | |
| JP4779733B2 (ja) | 配信システム及び配信システム制御方法、蓄積装置及び蓄積装置用プログラム並びにノード装置及びノード装置用プログラム | |
| JP2001318905A (ja) | ディスク共有型分散サーバシステム | |
| CN116049320B (zh) | 一种基于本地化访问的分布式数据库设计方法及系统 | |
| JP2000250918A (ja) | 分散データベースシステムと検索方法およびその処理プログラムを記録した記録媒体 | |
| JP4606317B2 (ja) | セション情報管理方法、システム及びプログラム | |
| JPWO2008126838A1 (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 |