JP2010287036A - ストレージサーバー装置及びコンピュータプログラム - Google Patents
ストレージサーバー装置及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2010287036A JP2010287036A JP2009140214A JP2009140214A JP2010287036A JP 2010287036 A JP2010287036 A JP 2010287036A JP 2009140214 A JP2009140214 A JP 2009140214A JP 2009140214 A JP2009140214 A JP 2009140214A JP 2010287036 A JP2010287036 A JP 2010287036A
- Authority
- JP
- Japan
- Prior art keywords
- file
- directory
- name
- storage server
- server device
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】分散ファイル管理システムを構成するストレージサーバー装置は、当該分散ファイル管理システム内で一意なファイル名を付けられたiノードファイル、ディレクトリファイル、データファイルを分散してファイル蓄積部32に記憶している。高レベルインタフェース部24が、ディレクトリ名及びユーザ利用ファイル名によるファイル操作要求を受信した場合、パス検索部5は、iノードファイル、及び、ディレクトリファイルを参照して、ユーザ利用ファイル名に対応したデータファイル名を取得する。低レベルインタフェース部23は、高レベルインタフェース部24からの指示を受け、取得したデータファイル名のファイルに対して要求されたファイル操作を行なう。
【選択図】図1
Description
図33は、iノードによるファイル管理を説明する図である。UFS、FFS、ext2/3などのファイルシステムでは、ファイルのデータおよびディレクトリのデータはiノードと呼ばれる情報により管理され、1つのファイルのデータまたは1つのディレクトのデータ毎に1つのiノードが割り当てられる。iノードにはファイルのデータまたはディレクトリのデータが格納されているディスク上の位置、ファイルの作成時刻、ファイルサイズ等のファイルに関する情報が保存されている。iノードには一意な番号が割り振られ、このiノード番号によりファイルシステム内で一意に特定できる。
このように、UNIX(登録商標)/Windows(登録商標)系OSでは1ファイル1レコード、Macintosh(登録商標)系OSでは1ファイル2レコード、BTRON系OSでは1ファイル複数レコードのファイル構造に対応してファイルシステムが作られている。
P2P型のファイル管理方法は、非構造型と構造型に分類されるが、ここでは、DHT(Distributed Hash Table)を使った構造型P2Pによるファイル管理技術を説明する。
上記のDHTの代表的な例であるChordは、非特許文献3に記述されている。
この発明によれば、データファイルとディレクトリファイルを複数のストレージサーバー装置からなる分散ファイル管理システム内で分散して記憶し、ストレージサーバー装置の高レベルインタフェース部が、ディレクトリ名及びユーザ利用ファイル名によるファイル操作指示を受信した場合、パス検索部が、ディレクトリファイルを参照してユーザ利用ファイル名に対応したデータファイル名を取得する。高レベルインタフェース部は、取得されたデータファイル名を用いたファイル操作指示を低レベルインタフェース部へ出力し、低レベルインタフェース部は、ファイル蓄積部に記憶されている当該データファイル名のデータファイルに対するファイル操作を行なう。データファイルの所在は、予め分散ファイル管理システム内に登録しておいた、ファイル名と、ストレージサーバー装置との対応を示すテーブルから取得する。
これにより、分散ファイル管理システムを構成する複数のストレージサーバー装置によって、ファイルおよびディレクトリの分散管理が可能となり、多数のファイルおよびディレクトリを一元的に管理するサーバーが不要である。従って、多数のユーザから同時にファイルへのアクセスがあった場合でも特定のストレージサーバー装置に負荷が集中することがなく、また、多くのファイルやディレクトリが作成された場合でも、各ストレージサーバー装置が管理するファイルは少なくてよいため、ファイルの検索に要する時間が長くならないようにすることができる。
この発明によれば、ディレクトリファイルまたはデータファイルのファイル名を含むiノードファイル、配下のディレクトリのディレクトリ名または配下のデータファイルのユーザ利用ファイル名と、対応するiノードファイルのファイル名との対応関係を含むディレクトリファイル、及び、データファイルを、複数のストレージサーバー装置からなる分散ファイル管理システム内で分散して記憶し、ストレージサーバー装置の高レベルインタフェース部が、ディレクトリ名及びユーザ利用ファイル名によるファイル操作指示を受信した場合、パス検索部が、iノードファイル、及び、ディレクトリファイルを参照して、ユーザ利用ファイル名に対応したデータファイル名を取得する。
これにより、分散ファイル管理システムを構成する複数のストレージサーバー装置において、iノードファイル及びディレクトリファイルを用いて、ファイルおよびディレクトリを分散管理することが可能となる。
この発明によれば、一旦ダウンロードしたiノードファイルやディレクトリファイルをキャッシュ蓄積部に記憶しておき、パス検索時に読み出しが必要となったiノードファイルやディレクトリファイルがキャッシュ蓄積部に記憶されている場合は、その記憶されているファイルを使用する。
これにより、キャッシュ蓄積部に記憶したダウンロード済みファイルを利用し、パス検索部によるパス検索処理を高速にすることができる。
この発明によれば、ユーザ利用ファイルを複数のデータファイルに分割して複数のストレージサーバー装置において分散して記憶しておき、この分割されたデータファイルのうちファイル操作の対象となるデータファイルのファイル名を特定する。
これにより、マルチレコード構造のファイルに対応した分散ファイル管理システムを提供することができる。
この発明によれば、iノードファイルにディレクトリやユーザ利用ファイルに関する付加的な情報を示すメタデータ書き込んだり、iノードファイルに記述されたメタデータを読み出したりする。
これにより、ディレクトリ及びユーザ利用ファイルに任意のメタデータを追加して利用することができる。
この発明によれば、データファイルとディレクトリファイルを複数のストレージサーバー装置からなる分散ファイル管理システム内で分散して記憶し、ストレージサーバー装置の高レベルインタフェース部が、ディレクトリ名及びユーザ利用ファイル名によるファイル操作指示を受信した場合、パス検索部が、ディレクトリファイルを参照してユーザ利用ファイル名に対応したデータファイル名を取得する。高レベルインタフェース部は、取得されたデータファイル名を用いたファイル操作指示を低レベルインタフェース部へ出力し、低レベルインタフェース部は、ファイル蓄積部に記憶されている当該データファイル名のデータファイルに対するファイル操作を行なう。データファイルの所在は、予め分散ファイル管理システム内に登録しておいた、ファイル名と、ストレージサーバー装置との対応を示すテーブルから取得する。
これにより、分散ファイル管理システムを構成する複数のストレージサーバー装置によって、ファイルおよびディレクトリの分散管理が可能となるり、多数のファイルおよびディレクトリを一元的に管理するサーバーが不要である。従って、多数のユーザから同時にファイルへのアクセスがあった場合でも特定のストレージサーバー装置に負荷が集中することがなく、また、多くのファイルやディレクトリが作成された場合でも、各ストレージサーバー装置が管理するファイルは少なくてよいため、ファイルの検索に要する時間が長くならないようにすることができる。
[1.1 構成]
図1は、本発明の第1の実施形態による分散ファイル管理システムのブロック図であり、本発明と関係する機能ブロックのみ抽出して示している。同図に示すように、第1の実施形態による分散ファイル管理システムは、複数のストレージサーバー装置1を、ネットワーク装置100に接続することにより構成されている。ネットワーク装置100は、例えば、ルータなどの通信装置やケーブルなどの通信線からなり、IP(Internet Protocol)による通信ネットワークを構成する。ネットワーク装置100にはさらに、ユーザ端末装置50が接続されており、分散ファイル管理システムは、複数のサーバー装置1に記憶されているファイルの共有利用をユーザ端末装置50へ提供する。
なお、DHTを用いたP2P型のオーバーレイネットワークの構成方法として複数の方法が考案されているが、ここではOneHop方式を用いるものとして説明を行う。OneHop方式では、従来技術における図35で示したように、ストレージサーバー装置1により円形のオーバーレイネットワークを構成する。これは、例えば、(文献)A.Gupta, B.Liskov and R.Rodrigues, “One Hop Lookups for Peer−to−Peer Overlays,” 9th Workshop on Hot Topics in Operating Systems(HotOS−IX), 2003に記載されている。
ホストテーブル蓄積部31は、ストレージサーバー装置1を特定するノードIDと、当該ストレージサーバー装置1のアドレスとの対応付けを示すホストテーブルを記憶する。
記憶部34は、作成あるいは修正途中のファイルなどを一時的に記憶する。
次に、ストレージサーバー装置1に記憶されている各データについて説明する。
図2は、ストレージサーバー装置1のホストテーブル蓄積部31に記憶されているホストテーブルの例を示す図である。ホストテーブルには、ストレージサーバー装置1のノードIDと、当該ストレージサーバー装置1のアドレスであるサーバーアドレスとを対応付けたレコードが、ノードIDの小さい順に並んだリストとして保管されている。このノードIDは、ネットワーク装置100に接続されているストレージサーバー装置1のIP(Internet Protocol)アドレス及びポート番号を元にハッシュ関数を用いて生成したハッシュ値である。同図においては、4台のストレージサーバー装置1であるサーバーA、B、C,Dがネットワーク装置100を介して接続されており、そのノードIDをnodeID:A, nodeID:B, nodeID:C, nodeID:Dとした場合の例を示しており、ノードIDの値はnodeID:A<nodeID:C<nodeID:D<nodeID:Bである。同図に示すホストテーブルは、図35に示す円形のオーバーレイネットワークに対応している。以下、ストレージサーバー装置1を単に「サーバー」と記述する場合がある。
以下、参加しているすべてのストレージサーバー装置1のホストテーブル蓄積部31には、正しく同じホストテーブルが記憶されているものとして説明を続ける。
同図に示すように、iノードファイルの<inode>タグは、iノードファイルのXMLの開始を表している。
<type>タグは、要素内容に、iノードファイルが示すファイルのタイプ、すなわち、ディレクトリファイルか、データファイルかが記述されることを表す。ディレクトリファイルの場合は「directory」が、データファイルの場合は「normal」が<type>タグの要素内容として記述される。
<body>タグは、要素内容に、iノードファイルが紐付けするディレクトリファイルまたはデータファイルのファイル名が記述されることを表す。ここでのファイル名はファイル蓄積部32で記憶されているファイル名である。
同図に示すように、ディレクトリファイルの<dir_entry>タグは、ディレクトリファイルのXMLの開始を表している。
<entry>タグは、属性値noにより特定される番号のディレクトリエントリの開始を表す。
<body>タグは、要素内容に、当該<body>タグが含まれるディレクトリエントリに対応したファイル名が記述されることを表す。ここでのファイル名は、当該ディレクトリファイルが対応するディレクトリを親ディレクトリとする配下のファイルまたはディレクトリのiノードファイルのファイル名である。
<name>タグは、要素内容に、当該<name>タグが含まれるディレクトリエントリに対応した、配下のファイルのユーザ利用ファイル名、または、配下のディレクトリのディレクトリ名が記述されることを示す。
また、4番目のディレクトリエントリ(no=”3”)の<body>タグの要素内容から、ユーザが付与した名前「work」のiノードファイル名は「C.ino」であり、そのiノードファイル「C.ino」の<type>タグの要素内容が「directory」であることから、<body>タグにはディレクトリファイル名が記述されており、その要素内容からファイル名は「C.dir」であることがわかる。
同様に、4番目のディレクトリエントリ(no=”3”)の<body>タグの要素内容から、ユーザが付与した名前「cat.mxf」のiノードファイル名は「G.ino」であり、そのiノードファイル「G.ino」の<type>タグの要素内容が「normal」であることから、<body>タグにはデータ本体を記述したデータファイルのファイル名が記述されており、その要素内容からファイル名は「G.dat」であることがわかる。
次に、ストレージサーバー装置1の処理について説明する。
まず、登録インタフェース部21において実行される登録(put)インタフェースについて説明する。登録インタフェースは、オーバーレイネットワークに、指定されたファイルの所在を登録するためのインタフェースである。
つまり、登録インタフェース部21は、自ストレージサーバー装置1の他の処理部から、または、他のストレージサーバー装置1から実行要求を受け、put(key, value)関数を実行する。関数とは、他のプログラムモジュールから呼び出され、当該他のプログラムモジュールから引数と呼ばれるデータを受信して一連の命令群からなる処理を実行し、その実行結果のデータを引数として当該関数の呼び出し元へ返すプログラムモジュールである。なお、関数には、呼び出し元が設定する引数や、呼び出し元へ返す引数がないものもある。
登録インタフェース部21がput(key, value)関数を実行することにより、パラメータとして指定されたkeyとvalueの組(以下、keyとvalueの組を(key, value)とも記載)をオーバーレイネットワークに登録することができる。オーバーレイネットワークに(key, value)を登録するとは、keyを管理すべき適切なストレージサーバー装置1のキーテーブルに、(key, value)を登録するということである。
なお、キーテーブルに登録されている(key, value)値が一定時間後になっても再登録されない場合、キーテーブルから削除する。つまり、登録インタフェース部21は、一定時間毎に、所定の時間を経過した登録日時が設定されているキーテーブルのレコードを検出し、検出したレコードを削除する。
次に、ファイル登録部3において実行されるファイル登録手順の動作について説明する。
ファイル登録部3は、自ストレージサーバー装置1のファイル蓄積部32に記憶されているファイルに使用されているファイル名のハッシュ値をkeyとし、自ストレージサーバー装置1のアドレスをvalueとして、登録インタフェース部21に登録インタフェースを実行させ、オーバーレイネットワークへ自ストレージサーバー装置1が保持するファイルの所在を登録する。
まず、ファイル登録部3はファイル蓄積部32に記憶されているファイル数Nを取得する(ステップS8−1)。次に、ファイル登録部3は、カウンタ値nを0にセットし(ステップS8−2)、以下のステップS8−4〜S8−6の操作をnがNに達するまで、N回繰り返す(ステップS8−3:YES)。
次に、オーバーレイネットワークに登録されている(key, value)を取得する検索(get)インタフェースについて説明する。検索インタフェース部22は、自ストレージサーバー装置1の他の処理部から、または、他のストレージサーバー装置1からの実行要求を受け、get(key)関数を実行する。get(key)関数は、指定されたkeyに対応するvalue値を検索するインタフェースである。
検索インタフェース部22は、get(key)関数の実行要求を受け付けると、ホストテーブル蓄積部31に記憶されているホストテーブルを参照して、受信したkeyの値に時計周りで近いノードIDのうち、当該keyの値に最も近いノードIDを特定し、この特定したノードIDに対応したサーバーアドレスを読み出す(ステップS9−1)。
オーバーレイネットワークで使用されるファイル名、つまり、ファイル蓄積部32に記憶されているファイルのファイル名によるファイル操作は、低レベルインタフェース部23により実行される。
以下に、低レベルインタフェース23における各関数の動作について順に説明する。
low_read関数は、ファイル蓄積部32に記憶されているファイルからデータを読み出す関数である。引数fnameは、データ読み出し対象ファイルのファイル名を示す。引数offsetは、データの読み出しを行なう先頭位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、読み出すデータのバイトサイズを示す。また、引数dataは、読み出されたデータを示す。
low_write関数は、ファイル蓄積部32に記憶されているファイルにデータを書き込む関数である。引数fnameは、データ書き込み対象ファイルのファイル名を示す。引数offsetは、データの書き込みを行なう先頭位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、書き込むデータのバイトサイズを示す。また、引数dataは、ファイルに書き込むデータを示す。
low_delete関数は、ファイル蓄積装置32に記憶されているファイルを削除する関数であり、引数fnameは、削除対象のファイル名を示す。低レベルインタフェース部23は、自ストレージサーバー装置1の各部または他のストレージサーバー装置1からlow_delete関数の実行要求を受信すると、ファイル入出力部4へ受信した引数を出力し、ファイルの削除を指示する。ファイル入出力部4は、引数fnameで示されるファイル蓄積部32内のファイルを特定すると、当該ファイルをファイル蓄積部32から削除する。
low_create_id関数は、第1の実施形態における分散ファイル管理システム、つまり、オーバーレイネットワークにおいて、唯一であることを保証したIDを生成する関数である。
低レベルインタフェース部23は、自ストレージサーバー装置1の各部または他のストレージサーバー装置1からlow_create_id関数の実行要求を受信すると、ID生成部8の生成を指示する。低レベルインタフェース部23は、ID生成部8が生成したIDを引数idに設定してlow_create_id関数の実行要求元へ返送する。
なお、本実施形態におけるIDの生成方法は特に制限されるものではないが、例えば、SMPTE(Society of Motion Picture and Television Engineers)-330MのUMID(Unique Material Identifier)や、RFC(Request for Comments)4122のUUID(Universally Unique Identifier)などの既存の技術による生成方法を用いることができる。
ユーザ利用ファイル名、ディレクトリ名による操作は、高レベルインタフェース部24により実行される。
図11は、高レベルインタフェース部24において実行されるインタフェース関数を示す。高レベルインタフェース部24で実行されるインタフェース関数は、ユーザ利用ファイル、あるいは、オーバーレイネットワークで管理されるディレクトリに対する操作を行なうものである。これらのインタフェース関数の実行要求は、ユーザ端末装置50、あるいは、ストレージサーバー装置1から出力される。
hi_write関数の引数pathは、データ書き込み対象ファイルのパス付きユーザ利用ファイル名を示す。引数offsetは、書き込みを行なうデータの位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、データの書き込み位置から書き込みを行なうデータのバイトサイズを示す。引数dataは、書き込むデータを示す。
hi_delete関数の引数pathは、削除対象ファイルのパス付きユーザ利用ファイル名を示す。
hi_make_dir関数の引数pathは、ルートディレクトリからのパスで示された、作成対象ディレクトリのパス付きディレクトリ名を示す。
hi_delete_dir関数の引数pathは、ルートディレクトリからのパスで示された、削除対象ディレクトリのパス付きディレクトリ名を示す。
以下に、高レベルインタフェース部24における各関数の動作について順に説明する。
[1.3.5.1.1 hi_read関数の動作]
図12は、高レベルインタフェース部24によるhi_read関数実行処理の流れ図を示す。
同図において、まず、高レベルインタフェース部24は、引数pathにより指定された読み出し対象ユーザ利用ファイルがどのようなファイル名のデータファイルによってファイル蓄積部32に記憶されているかを取得するため、パス検索の実行をパス検索部5に指示する(ステップS12−1)。
ここでは、パス検索部5におけるパス検索の動作について説明する。パス検索は、図4において説明した、第1の実施形態によるiノードファイル、ディレクトリファイル、データファイルの関係に基づいて、パス付きユーザ利用ファイル名により指定されたユーザ利用ファイルのデータ本体が設定されているデータファイルのファイル名、つまり、ファイル蓄積部32内のデータファイルに使用されている、オーバーレイネットワーク内でのファイル名を取得するものである。また、パス検索部5は、パス付きディレクトリ名により指定されたディレクトリのディレクトリファイルを取得する。
なお、<name>タグの記述内容に示されるファイル名に、パス付きユーザ利用ファイル名で示されるディレクトリ名またはファイル名に一致するものがない場合(ステップS13−6:NO)、処理を終了する。
図14は、パス検索部5によるファイルのダウンロード処理の流れ図である。同図において、まず、パス検索部5は、ダウンロード対象ファイルのファイル名のハッシュ値をkeyとし、検索インタフェース部22へget(key)関数の実行要求を出力する。get(key)関数の実行要求を受信した検索インタフェース部22は、図9に示す処理を行い、その実行結果として、value値として得、パス検索部5へ出力する。これにより、パス検索部5は、ダウンロード対象ファイルを記憶しているストレージサーバー装置1のアドレスを取得する(ステップS14−1)。
分散ファイル管理システムに図4のファイルが分散して記憶されている場合の、hi_read関数実行処理の動作例を説明する。例えば、図12において、高レベルインタフェース部24が、引数pathにパス付きユーザ利用ファイル名「/work/fish.mxf」が設定されたhi_read関数の実行指示を受信したとする。高レベルインタフェース部24は、パス検索部5へ引数pathとパス検索の実行指示とを出力する(ステップS12−1)。
[1.3.5.2.1 hi_write関数の動作]
hi_write関数はパス付きユーザ利用ファイル名で示されたユーザ利用ファイルへデータを書き込むインタフェースである。書き込み対象ユーザ利用ファイルがどのようなファイル名のデータファイルによってファイル蓄積部32に記憶されているかを取得する手順はhi_read関数と基本的に同じであるが、ファイルが存在しない場合には、新規にファイルを作成する点が異なる。
同図において、まず、高レベルインタフェース部24は、引数pathにより指定された書き込み対象ユーザ利用ファイルがどのようなファイル名のデータファイルによってファイル蓄積部32に記憶されているかを取得するため、パス検索部5へ引数pathとパス検索の実行指示とを出力する(ステップS15−1)。これにより、パス検索部5は、図13に示すパス検索処理を行う。パス検索の結果、データファイルのファイル名が取得できた場合、つまり、パス付きユーザ利用ファイル名で指定されたデータファイルが存在する場合(ステップS15−2:NO)、高レベルインタフェース部24は、検索インタフェース部22にget(key)関数の実行要求を出力する(ステップS15−3)。keyには、ステップS15−1において取得したデータファイルのファイル名のハッシュ値を指定する。検索インタフェース部22は、図9に示す処理を行い、その実行結果として、ステップS15−1で取得したファイル名のデータファイルが記憶されているストレージサーバー装置1のアドレスをvalue値として得、高レベルインタフェース部22へ出力する。
ここでは、図15のステップS15−4において実行されるファイル新規作成処理の動作を説明する。ファイルの新規作成処理は、ファイル作成削除部3が実行する。
図16は、ファイル作成削除部3によるファイル作成の処理フローを示す。
図17は、ファイルのアップロードの処理手順を示す。ファイル生成削除部6は、アップロード対象ファイルのファイル名のハッシュ値をkeyとし、検索インタフェース部22へget(key)関数の実行要求を出力する。get(key)関数の実行要求を受信した検索インタフェース部22は、図9に示す処理を行い、その実行結果として、アップロード対象ファイルが記憶されているストレージサーバー装置1のアドレスを示すvalue値を得、パス検索部5へ出力する。これにより、パス検索部5は、アップロード対象ファイルを記憶しているストレージサーバー装置1のアドレスを取得する(ステップS17−1)。
分散ファイル管理システムに図4のファイルが分散して記憶されている場合の、hi_write関数実行処理の動作例を説明する。例えば、図15において、高レベルインタフェース部24が、引数pathにパス付きユーザ利用ファイル名「/work/dog.mxf」が設定されたhi_write関数の実行指示を受信したとする。高レベルインタフェース部24は、パス検索部5へ引数pathとパス検索の実行指示とを出力する(ステップS15−1)。
ここで、図15において、ファイル生成削除部6は、ファイルが存在しないと判断し(ステップS15−2)、ファイル作成を行なう(ステップS15−3)。
[1.3.5.3.1 hi_delete関数の動作]
次に高レベルインタフェース部24におけるhi_delete関数の動作を説明する。hi_delete関数は、パス付きユーザ利用ファイル名で示されたユーザ利用ファイルを削除するインタフェースである。高レベルインタフェース部24は、hi_delete関数の実行要求を受信すると、ファイル生成削除部6へファイル削除を指示する。
同図において、始めに、ファイル生成削除部6は、引数pathにより指定されたパス付きユーザ利用ファイル名から、削除対象ユーザ利用ファイルが属する親ディレクトリのパスを取得し、この取得したパスのパス検索をパス検索部5に指示する(ステップS18−1)。これにより、パス検索部5は、図13に示すパス検索処理を行う。このパス検索において、パス検索部5は、ユーザ利用ファイルが属するディレクトリのディレクトリファイルをダウンロードする(ステップS18−2)。
ファイル生成削除部6は、ステップS18−3において読み出したiノードファイルの削除を実行する(ステップS18−4)。このときのiノードファイルの削除は、後述するように、iノードファイルの削除だけでなく、当該iノードファイルに紐付けされるデータファイルの削除も行う。
以上の動作により、指定されたパスのファイルが削除される。
次に、図18のステップS18−4において実行されるiノードファイルの削除動作を説明する。図19は、ファイル生成削除部6によるiノードファイル削除処理の流れ図である。
分散ファイル管理システムに図4のファイルが分散して記憶されている場合の、hi_delete関数実行処理の動作例を説明する。例えば、図18において、高レベルインタフェース部24が、引数pathにパス付きディレクトリ名「/work/cat.mxf」が設定されたhi_delete関数の実行指示を受信したとする。ファイル生成削除部6は、パス検索部5へ、ユーザ利用ファイル「cat.mxf」が属する親ディレクトリ「/work」のパス検索の実行指示を出力する(ステップS18−1)。
パス検索部5は、ディレクトリファイル「C.dir」から、パス付きユーザ利用ファイル名「/work/cat.mxf」で示される「work」配下のファイル名「cat.mxf」が<name>タグの要素内容に記述されている「no="3"」のディレクトリエントリを検出すると、このディレクトリエントリの<body>タグの要素内容からiノードファイル名「G.ino」を取得する(図18:ステップS18−3)。
具体的には、図19に示すように、ファイル生成削除部6は、keyにiノードファイルのファイル名「G.ino」のハッシュ値を設定し、検索インタフェース部22にget(key)関数の実行要求を出力する(ステップS19−1)。これにより、iノードファイル「G.ino」を記憶するストレージサーバー装置1のサーバーアドレスを示すvalue値が得られる。ファイル生成削除部6は、value値が示すサーバーアドレスを宛先としてストレージサーバー装置1へアクセスし、図14の処理によりiノードファイル「G.ino」をダウンロードする(ステップS19−2)。ファイル生成削除部6は、取得したiノードファイル「G.ino」からファイル名「G.dat」、および、ファイルタイプ「normal」を取得する(ステップS19−3)。ファイルタイプが「normal」であるため(ステップS19−4:normal)、ファイル生成削除部6は、データファイル名「G.dat」のハッシュ値をkeyに設定し、検索インタフェース部22にget(key)関数の実行要求を出力する(ステップS19−7)。これにより、ファイル生成削除部6は、データファイル「G.dat」を記憶しているストレージサーバー装置1のアドレスを示すvalue値を取得する。
[1.3.5.4.1 hi_make_dir関数の動作]
次に高レベルインタフェース部24におけるhi_make_dir関数の動作を説明する。hi_make_dir関数は、パス付きディレクトリ名で示されたディレクトリを新規に作成するインタフェースである。高レベルインタフェース部24は、hi_make_dir関数の実行要求を受信すると、ファイル生成削除部6へディレクトリ作成を指示する。
同図において、始めに、ファイル生成削除部6は、新規ディレクトリが配下に作成されるディレクトリ、つまり、新規ディレクトリの親となるディレクトリのパス検索の実行指示をパス検索部5に出力する(ステップS20−1)。パス検索部5は、図13に示すパス検索処理を行い、新規に作成するディレクトリの親となるディレクトリのディレクトリファイルをダウンロードし、ファイル生成削除部6へ返送する(ステップS20−2)。
新規のiノードファイルの<type>タグの要素内容には「directory」を、<body>タグの要素内容にはS20−5で作成したディレクトリファイルのファイル名を設定する。新規のディレクトリファイルには、<name>タグの要素内容にカレントディレクトリ「.」を、<body>タグの要素内容にS20−5で作成したiノードファイルのファイル名を設定したディレクトリエントリ、及び、<name>タグの要素内容に親ディレクトリ「..」、<body>タグの要素内容にS20−2でダウンロードした親ディレクトリのiノードファイル名を設定したディレクトリエントリを記述する。
分散ファイル管理システムに図4ファイルが分散して記憶されている場合の、hi_read関数実行処理の動作例を説明する。例えば、図20において、高レベルインタフェース部24が、引数pathにパス付きディレクトリ名「/work/tmp」が設定されたhi_make_dir関数の実行指示を受信したとする。ファイル生成削除部6は、新たなディレクトリの親ディレクトリのパスと、パス検索の実行指示とをパス検索部5へ出力する(ステップS20−1)。
パス検索部5は、ディレクトリファイル「C.dir」に、パス付きユーザ利用ファイル名「/work/tmp」で示される「/work」配下のディレクトリ名「tmp」がいずれの<name>タグの要素内容にも記述されていないため(ステップS13−6:NO)、処理を終了する(ステップS13−8)。
[1.3.5.5.1 hi_delete_dir関数処理の動作]
次に高レベルインタフェース部24のhi_delete_dir関数の動作の説明をする。hi_delete_dir関数は、指定されたパスのディレクトリを削除するインタフェースである。高レベルインタフェース部24は、hi_delete_dir関数の実行要求を受信すると、ファイル生成削除部6へディレクトリ削除を指示する。ここでは、ディレクトリの削除が実行されると、そのディレクトリに含まれるファイルおよびディレクトリもすべて削除されるものとして説明する。
同図において、始めに、ファイル生成削除部6は、引数pathにより指定される削除対象ディレクトリの親のディレクトリのパス検索をパス検索部5に指示する(ステップS21−1)。パス検索部5は、図13に示すパス検索処理を行い、削除対象ディレクトリの親ディレクトリのディレクトリファイルをダウンロードし、ファイル生成削除部6へ返送する(ステップS21−2)。
分散ファイル管理システムに図4のファイルが分散して記憶されている場合の、hi_read関数実行処理の動作例を説明する。例えば、図21において、高レベルインタフェース部24が、引数pathにパス付きディレクトリ名「/work」が設定されたhi_delete_dir関数の実行指示を受信したとする。ファイル生成削除部6は、「/work」が属する親ディレクトリ「/」(ルートディレクトリ)のパス検索の実行をパス検索部5へ指示する(ステップS21−1)。
具体的には、ファイル生成削除部6は、図19に示す処理により、keyにiノードファイルのファイル名「C.ino」のハッシュ値を設定し、検索インタフェース部22にget(key)関数の実行要求を出力する(ステップS19−1)。ファイル生成削除部6は、図14の処理により、value値が示すサーバーアドレスを宛先としてストレージサーバー装置1へlow_write関数の実行要求を出力し、iノードファイル「C.ino」をダウンロードする(ステップS19−2)。
iノードファイル「G.ino」についてもiノードファイル「F.ino」と同様の処理を行い、iノードファイル「G.ino」とデータファイル「G.dat」を削除する。
以上、説明した第1の実施形態による分散ファイル管理システムにより、当該分散ファイル管理システムを構成する複数のストレージサーバー装置1によって、ファイルおよびディレクトリの分散管理が可能となり、多数のファイルおよびディレクトリを一元的に管理するサーバーが不要である。従って、多数のユーザから同時にファイルへのアクセスがあった場合でも特定のサーバーに負荷が集中することがなく、また、多くのファイルやディレクトリが作成された場合でも、各ストレージサーバー装置1が管理するファイルは少なくてよいため、ファイルの検索に要する時間が長くならないようにすることができる。また、分散ファイル管理システムで保持するファイルは、各ストレージサーバー装置1の外部インタフェース部2を介して操作することが可能となり、ユーザ利用ファイル名によって指定されたファイルや、ディレクトリ名によって指定されたディレクトリに対する操作を行なうことができる。
上述した第1の実施形態の図13に示すパス検索では、iノードファイルやディレクトリファイル等のファイルが必要となる度に、当該ファイルを記憶しているストレージサーバー装置1からダウンロードを行なっていた。一方、第2の実施形態は、ストレージサーバー装置1は、パス検索において、ダウンロードしたiノードファイルやディレクトリファイルを記憶しておき、更新を検出するまで、記憶しているダウンロードファイルを用いて処理を実行するキャッシュを行い、パス検索動作を高速化するものである。以下、第1の実施形態との差分を説明する。
図22は、第2の実施形態による分散ファイル管理システムのブロック図であり、図1に示す第1の実施形態による分散ファイル管理システムと同一の部分には同一の符号を付し、その説明を省略する。この図に示す分散ファイル管理システムが第1の実施形態と異なる点は、ストレージサーバー装置1がキャッシュ蓄積部35を備える点である。キャッシュ蓄積部35は、ハードディスク装置や半導体メモリなどで実現され、ダウンロードしたiノードファイル及びディレクトリファイルを記憶する。
図23は、第2の実施形態によるキーテーブルの構成を示す図である。同図に示すように、キーテーブルには、ファイル名のハッシュ値を示すkeyと、当該ファイル名のファイルを蓄積しているストレージサーバー装置1のアドレス及び当該ファイルのバージョン番号とを示すvalueと、登録日時とを対応づけた複数のレコードからなる。
[2.3.1 low_write関数の動作]
キャッシュされたファイルを使うためには、すでにダウンロードしたファイルが最新のファイルと同じものかどうかを判断する必要がある。そのため、第2の実施形態では、ファイルの登録におけるvalue値にファイルのバージョン番号を追加する。第2の実施形態では、低レベルインタフェース部23のlow_write関数が実行されるたびに、ファイルのバージョン番号に1を加算する。
第2の実施形態では、パス検索部5におけるパス検索動作は、図13で説明した第1の実施形態の動作と全く同じである。但し、パス検索で実行されるダウンロードの動作において、キャッシュ蓄積部35内のファイルを使うかどうかのチェックが必要であるため、第1の実施形態の図14に示すダウンロードの動作を、図26で示す動作に変更する。
始めに、パス検索部5は、ダウンロード対象ファイルのファイル名のハッシュ値をkeyとし、検索インタフェース部22へget(key) 関数の実行要求を出力する。get(key)関数の実行要求を受信した検索インタフェース部22は、図9に示す処理を行い、その実行結果として取得したvalue、つまり、ダウンロード対象のファイルを記憶しているストレージサーバー装置1のサーバーアドレス、および、ファイルのバージョン番号を取得する(ステップS26−1)。
以上説明したように、第2の実施形態では、キャッシュ蓄積部35に記憶したダウンロード済みファイルを利用することによって、パス検索部5のパス検索処理を高速にした分散ファイル管理システムを実現することができる。
第1の実施形態では、ユーザ利用ファイルは、1ファイル1レコードとしていた。第3の実施形態では、分散ファイル管理システムにおいて、ユーザ利用ファイルをマルチレコードとして複数のストレージサーバー装置1に分散して記憶し、アクセスを可能としたものである。以下、第1の実施形態との差分について説明する。
図27は、第3の実施形態によるiノードファイルのXMLデータ記述例を示す図である。同図に示すように、第3の実施形態では、マルチレコードに対応するため、データファイルに紐付けされるiノードファイルのXMLデータのタグに、<record>タグを追加する。そして、ユーザ利用ファイルを分割した各レコード1ずつを1つのデータファイルとし、1つのiノードファイルにこれら分割した各レコードのデータファイルを記述することによって、レコードに分割されたユーザ利用ファイルのデータ本体を管理する。
図27においては、no=0〜2の<record>タグが記述されており、3つのレコードに分割されたユーザ利用ファイルの例を図示している。iノードファイル内の<body>タグは、各レコードを記憶したデータファイルのファイル名、つまり、ファイル管理部32で記憶されているファイル名を示している。
図28は、第3の実施形態による高レベルインタフェース部24が実行するhi_read関数及びhi_write関数を示す図である。
同図に示すように、本実施形態では、マルチレコードでのファイル操作を行うため、高レベルインタフェース部24のhi_read関数およびhi_write関数の引数として、レコード番号recnoを追加する。これにより、hi_read関数およびhi_write関数のデータの操作は、pathで示されるファイルの中のrecno番目のレコードを操作の対象とする。
また、hi_read関数およびhi_write関数の内部的な動作は、図13に示す第1の実施形態におけるパス検索部5のパス検索動作のステップS13−3において、iノードファイルのXMLデータの解析を行ない、<body>タグを取得するときに、引数recnoで示されるレコード番号xの<record no="x">タグを検索する動作を追加するだけでよい。これにより、<body>タグ内における<record no="x">タグの要素内容で示されるファイル名を取得する。
以上説明したように、第3の実施形態によれば、マルチレコードに対応した分散ファイル管理システムを実現することができる。マルチレコード構造のファイルを利用する利用方法は、本発明を制限するものではないが、例えば、主データ(1つのレコードのデータ)に対して、データの変更を判断するための、チェックサムデータを他のレコードに記録する、主データのメタデータ(例えば、Macintosh(登録商標)系のOSにおけるリソースフォークのようなアイコンやウインドウの形状などのデータ)を記録する、BTRON系OSで用いられているように、機能によってレコード番号を決めて利用するなどがある。また、GFSやGframのようにファイルのデータを複数のチャンクに分割して記憶することと同様な動作もマルチレコードのファイル構造により実現できる。
第4の実施形態は、分散ファイル管理システムにおいて、ファイルに対して任意のメタデータを付加できるようにしたものである。そこで本実施形態では、ファイルおよびディレクトリに任意のメタデータを付加するため、iノードファイルのXMLデータに任意のタグを追加する機能を分散ファイル管理システムに備える。以下、第1の実施形態との差分について説明する。
図29に、メタデータを追加したiノードファイルの例を示す。同図に示すように、iノードファイルに、作成者を記述する<access>タグが追加され、要素内容にメタデータ「userA」が記述されている。ここでは、タグを<access>としているが、下記の手順により、予め決められた予約されているタグ(inode、type、body等)以外の任意のタグを追加することができる。
第4の実施形態では、高レベルインタフェース部24の関数として、図30に示すhi_read_param関数及びhi_write_param関数を追加する。
hi_read_param関数およびhi_write_param関数の引数であるmeta_keyは、iノードファイルのXMLデータに対応するものである。第4の実施形態におけるmeta_keyのフォーマットについて説明する。例えば、図27で示したiノードファイル「R.ino」の場合、レコード番号1の<body>タグのデータを取得したい場合には、XMLデータを「/」で階層的に表現した、「/inode/record[1]/body」を引数meta_keyに設定し、hi_read_param関数を実行することで、引数meta_valueとして「B.dat」を得ることができる。
なお、XMLデータへのアクセスは他にもW3C(World Wide Web Consortium)で定められているXPath(XML Path Language)などを使うことも可能であるが、本発明は特定のXMLデータのハンドリング方法に依存するものではないので、これ以上の説明は行わない。
[4.3.1 hi_read_param関数の動作]
次に、hi_read_paramの動作について説明する。図31は、hi_read_param関数実行処理の流れ図である。
まず、高レベルインタフェース部24は、引数pathにより指定された対象ユーザ利用ファイル名またはパス付きディレクトリ名と、パス検索の実行指示とをパス検索部5に出力する(ステップS31−1)。これにより、指定した対象ユーザ利用ファイル名またはパス付きディレクトリ名のiノードファイルがダウンロードされる。高レベルインタフェース部24は、ダウンロードしたiノードファイルから、引数meta_keyで指定されたタグのメタデータを検索し、その値を引数meta_valueに設定し、read_param関数の実行要求元へ返送する(ステップS31−2)。
次に、hi_write_param関数の動作について説明する。図32は、hi_read_param関数の処理フローを示す。
まず、高レベルインタフェース部24は、引数pathにより指定された対象ユーザ利用ファイル名またはパス付きディレクトリ名と、パス検索の実行指示とをパス検索部5に指示し、iノードファイルを取得し、記憶部34に書き込む(ステップS30−1)。高レベルインタフェース部24は、取得したiノードファイルのXMLデータを解析して引数met_keyで指定されたタグを検索し、当該タグの要素内容を引数meta_valueに設定されている値に変更する(ステップS30−2)。引数meta_keyで指定されたタグのメタデータが存在しない場合、高レベルインタフェース部24は、iノードファイルに引数meta_keyにより指定されたメタデータを追加し、引数meta_valueに設定されている値を要素内容として書き込む。最後に、高レベルインタフェース部24は、修正したiノードファイルを、当該iノードファイルを記憶しているストレージサーバー装置1へアップロードする(ステップS30−3)。
以上説明したように、第4の実施形態により、ディレクトリ及びユーザ利用ファイルに任意のメタデータを追加し、利用することができる。このメタデータの利用方法は、自由であり、その内容で本発明が制限されるものではないが、利用方法の例として、ディレクトリやファイルのアクセス制御を行うためのメタデータを書き込むなどの利用方法が考えられる。
また、従来のローカルファイルシステムでは、iノード情報はディスクのフォーマット時に決められた固定したディスク領域に保存されるため、書き込めるデータ量に制限があり、任意のメタデータを追加することが困難であったが、第4の実施形態ではiノードファイルを、データ書き込み可能なストレージサーバー装置1を選択して記憶させることができ、保存するデータ量に制限がないため、任意のメタデータの追加が可能となる。
以上説明した本発明の実施形態によれば、P2P型の分散ストレージ装置において以下の特徴をもつ分散ファイル管理システムおよび分散ファイルシステムを提供できる。
すなわち、一元的に集中管理するサーバーを必要としないP2P型の分散ファイルシステムにおいて、ファイルの管理およびディレクトリの管理を提供することができる。
また、マルチレコード構造のファイルに対応した分散ファイル管理システムを提供することができる。
加えて、ノードデータには、XMLなどの拡張可能なマーク付け言語を利用して記述することにより、ファイルおよびディレクトリに関係する情報(メタデータ)を任意に拡張可能な分散ファイル管理システムを提供することができる。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
2…外部インタフェース部
3…ファイル登録部
4…ファイル入出力部
5…パス検索部
6…ファイル生成削除部
7…サーバー選択部
8…ID生成部
9…所在検索部
21…登録インタフェース部
22…検索インタフェース部
23…低レベルインタフェース部
24…高レベルインタフェース部
31…ホストテーブル蓄積部
32…ファイル蓄積部
33…所在管理テーブル蓄積部
34…記憶部
35…キャッシュ蓄積部
50…ユーザ端末装置
100…ネットワーク装置
Claims (6)
- 他のストレージサーバー装置と協同して、データファイルおよびディレクトリファイルを含むファイルを分散管理するストレージサーバー装置であって、
配下のディレクトリ名とディレクトリファイルのファイル名との対応関係、および、配下のユーザ利用ファイル名とデータファイルのファイル名との対応関係に関する管理情報を含む前記ディレクトリファイルと、前記データファイルと、を記憶するファイル蓄積部と、
ファイル名とファイルを記憶するストレージサーバー装置とを対応付けるテーブルを記憶する所在管理テーブル蓄積部と、
当該ストレージサーバー装置が所在を管理する前記ファイルについて、指定されるファイル名に基づいて前記テーブルを参照することにより、前記ファイルを記憶するストレージサーバー装置を特定する所在検索部と、
指定されたファイル名に基づいて前記ファイルの所在を管理するストレージサーバー装置を選択し、選択されたストレージサーバー装置の前記所在検索部に対して前記ファイルを記憶するストレージサーバー装置の特定を指示する検索インタフェース部と、
ファイル名の指定に基づき前記ファイル蓄積部が記憶する前記ファイルに対する操作を行なう低レベルインタフェース部と、
ファイル名を指定して前記ファイルを記憶するストレージサーバー装置を特定するよう前記検索インタフェース部に指示し、特定されたストレージサーバー装置の前記低レベルインタフェース部に対してファイル名を指定した読出指示を行うことによって前記ディレクトリファイルを読み出し、読み出した前記ディレクトリファイル内の前記管理情報に基づいて、指定されたディレクトリ名またはユーザ利用ファイル名に対応するファイル名を取得するとともに、取得したファイル名が配下のディレクトリファイルのファイル名である場合には取得した前記ファイル名を指定して他のストレージサーバー装置または当該ストレージサーバー装置から再帰的にディレクトリファイルの読み出しを行い、取得したファイル名が配下のデータファイルのファイル名である場合には取得した前記ファイル名を出力するパス検索部と、
指定されたディレクトリ名およびユーザ利用ファイル名を用いて前記パス検索部から前記データファイルのファイル名を取得し、取得した前記ファイル名を指定して他のストレージサーバー装置または当該ストレージサーバー装置の前記低レベルインタフェース部に操作指示を行う高レベルインタフェース部と、
を備えることを特徴とするストレージサーバー装置。 - 前記ファイル蓄積部は、ディレクトリファイルまたはデータファイルのファイル名を含むiノードファイルを更に記憶し、
前記ディレクトリファイル内の前記管理情報は、配下のディレクトリの前記ディレクトリ名または配下のデータファイルの前記ユーザ利用ファイル名と、対応する前記iノードファイルのファイル名との対応関係を含むものであり、
前記パス検索部は、読み出した前記ディレクトリファイルから、指定された前記ディレクトリ名または前記ユーザ利用ファイル名に基づいて前記iノードファイルのファイル名を取得し、取得した前記ファイル名を指定して前記iノードファイルを記憶するストレージサーバー装置を特定するよう前記検索インタフェース部に指示するとともに、特定されたストレージサーバー装置の前記低レベルインタフェース部に対して前記ファイル名を指定した読出指示を行うことにより前記iノードファイルを読み出し、読み出した前記iノードファイルから前記ディレクトリファイルまたは前記データファイルの前記ファイル名を取得する、
ことを特徴とする請求項1に記載のストレージサーバー装置。 - 読み出したファイルを記憶するキャッシュ蓄積部をさらに有し、
前記パス検索部は、読み出した前記iノードファイルまたは前記ディレクトリファイルを前記キャッシュ蓄積部に書き込み、取得した前記ファイル名のiノードファイルまたはディレクトリファイルが前記キャッシュ蓄積部に記憶されている場合は、当該iノードファイルまたはディレクトリファイルを当該キャッシュ蓄積部から読み出す、
ことを特徴とする請求項2に記載のストレージサーバー装置。 - 前記iノードファイルは、複数に分割されたデータファイルのファイル名と、当該分割されたデータファイルの番号とを含み、
前記ユーザ利用ファイル名には、前記分割されたデータファイルの番号が付加され、
前記パス検索部は、指定された前記ユーザ利用ファイル名に基づいて読み出した前記ファイル名の前記iノードファイルから、前記データファイルの番号に対応したデータファイルのファイル名を出力する、
ことを特徴とする請求項2または請求項3に記載のストレージサーバー装置。 - 前記iノードファイルは、メタデータを含み、
前記ファイル入出力部は、前記操作がメタデータの読み出しである場合、読み出した前記iノードファイルから前記メタデータを読み出し、前記操作がメタデータの書き込みである場合、読み出した前記iノードファイルへメタデータの書き込みを行なう、
ことを特徴とする請求項2から請求項4のいずれかの項に記載のストレージサーバー装置。 - 他のストレージサーバー装置と協同して、データファイルおよびディレクトリファイルを含むファイルを分散管理するストレージサーバー装置として用いられるコンピュータを、
配下のディレクトリ名とディレクトリファイルのファイル名との対応関係、および、配下のユーザ利用ファイル名とデータファイルのファイル名との対応関係に関する管理情報を含む前記ディレクトリファイルと、前記データファイルと、を記憶するファイル蓄積部、
ファイル名とファイルを記憶するストレージサーバー装置とを対応付けるテーブルを記憶する所在管理テーブル蓄積部、
当該ストレージサーバー装置が所在を管理する前記ファイルについて、指定されるファイル名に基づいて前記テーブルを参照することにより、前記ファイルを記憶するストレージサーバー装置を特定する所在検索部、
指定されたファイル名に基づいて前記ファイルの所在を管理するストレージサーバー装置を選択し、選択されたストレージサーバー装置の前記所在検索部に対して前記ファイルを記憶するストレージサーバー装置の特定を指示する検索インタフェース部、
ファイル名の指定に基づき前記ファイル蓄積部が記憶する前記ファイルに対する操作を行なう低レベルインタフェース部、
ファイル名を指定して前記ファイルを記憶するストレージサーバー装置を特定するよう前記検索インタフェース部に指示し、特定されたストレージサーバー装置の前記低レベルインタフェース部に対してファイル名を指定した読出指示を行うことによって前記ディレクトリファイルを読み出し、読み出した前記ディレクトリファイル内の前記管理情報に基づいて、指定されたディレクトリ名またはユーザ利用ファイル名に対応するファイル名を取得するとともに、取得したファイル名が配下のディレクトリファイルのファイル名である場合には取得した前記ファイル名を指定して他のストレージサーバー装置または当該ストレージサーバー装置から再帰的にディレクトリファイルの読み出しを行い、取得したファイル名が配下のデータファイルのファイル名である場合には取得した前記ファイル名を出力するパス検索部、
指定されたディレクトリ名およびユーザ利用ファイル名を用いて前記パス検索部から前記データファイルのファイル名を取得し、取得した前記ファイル名を指定して他のストレージサーバー装置または当該ストレージサーバー装置の前記低レベルインタフェース部に操作指示を行う高レベルインタフェース部、
として機能させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009140214A JP5367470B2 (ja) | 2009-06-11 | 2009-06-11 | ストレージサーバー装置及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009140214A JP5367470B2 (ja) | 2009-06-11 | 2009-06-11 | ストレージサーバー装置及びコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010287036A true JP2010287036A (ja) | 2010-12-24 |
JP5367470B2 JP5367470B2 (ja) | 2013-12-11 |
Family
ID=43542687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009140214A Expired - Fee Related JP5367470B2 (ja) | 2009-06-11 | 2009-06-11 | ストレージサーバー装置及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5367470B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140099892A (ko) * | 2011-12-09 | 2014-08-13 | 마이크로소프트 코포레이션 | 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 |
JP2014522518A (ja) * | 2011-07-22 | 2014-09-04 | ▲ホア▼▲ウェイ▼技術有限公司 | コンテンツ処理方法、コンテンツ処理デバイス、およびコンテンツ処理システム |
JPWO2013145222A1 (ja) * | 2012-03-29 | 2015-08-03 | 富士通株式会社 | 情報処理装置およびデータ保存処理プログラム |
JP2016021264A (ja) * | 2015-10-23 | 2016-02-04 | 株式会社東芝 | メモリシステムのデータ管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290096A (ja) * | 1993-03-31 | 1994-10-18 | Matsushita Electric Ind Co Ltd | パス名解決装置 |
JP2003216474A (ja) * | 2002-01-23 | 2003-07-31 | Hitachi Ltd | ネットワークストレージ仮想化方法 |
JP2007073004A (ja) * | 2005-09-09 | 2007-03-22 | Canon Inc | データ保全情報装置、分散ストレージシステム及びその方法 |
-
2009
- 2009-06-11 JP JP2009140214A patent/JP5367470B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290096A (ja) * | 1993-03-31 | 1994-10-18 | Matsushita Electric Ind Co Ltd | パス名解決装置 |
JP2003216474A (ja) * | 2002-01-23 | 2003-07-31 | Hitachi Ltd | ネットワークストレージ仮想化方法 |
JP2007073004A (ja) * | 2005-09-09 | 2007-03-22 | Canon Inc | データ保全情報装置、分散ストレージシステム及びその方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014522518A (ja) * | 2011-07-22 | 2014-09-04 | ▲ホア▼▲ウェイ▼技術有限公司 | コンテンツ処理方法、コンテンツ処理デバイス、およびコンテンツ処理システム |
US9503308B2 (en) | 2011-07-22 | 2016-11-22 | Huawei Technologies Co., Ltd. | Method, device and system for processing content |
KR20140099892A (ko) * | 2011-12-09 | 2014-08-13 | 마이크로소프트 코포레이션 | 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 |
JP2015501050A (ja) * | 2011-12-09 | 2015-01-08 | マイクロソフト コーポレーション | 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス |
JP2017162506A (ja) * | 2011-12-09 | 2017-09-14 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス |
KR102032583B1 (ko) | 2011-12-09 | 2019-11-08 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 |
JPWO2013145222A1 (ja) * | 2012-03-29 | 2015-08-03 | 富士通株式会社 | 情報処理装置およびデータ保存処理プログラム |
JP2016021264A (ja) * | 2015-10-23 | 2016-02-04 | 株式会社東芝 | メモリシステムのデータ管理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5367470B2 (ja) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183213B2 (en) | Indirection objects in a cloud storage system | |
US8255430B2 (en) | Shared namespace for storage clusters | |
US20170249330A1 (en) | Identification of moved or renamed files in file synchronization | |
US8990257B2 (en) | Method for handling large object files in an object storage system | |
JP2019517043A (ja) | ハイブリッドアプリケーションの自動更新 | |
US11726967B2 (en) | Systems and methods for restoring an interface to a global file system | |
JP2015530629A (ja) | 移行先ファイルサーバ及びファイルシステム移行方法 | |
WO2015049747A1 (ja) | データ管理システム、及び、データ管理方法 | |
JP5638608B2 (ja) | メタデータに従ってファイルシステムのファイルにアクセスする方法、およびその方法を実装する装置 | |
JP5375972B2 (ja) | 分散ファイルシステム、そのデータ選択方法およびプログラム | |
JP4713257B2 (ja) | データ記憶装置及びバージョン管理プログラム | |
US20180107404A1 (en) | Garbage collection system and process | |
Rupprecht et al. | SwiftAnalytics: Optimizing object storage for big data analytics | |
JP5367470B2 (ja) | ストレージサーバー装置及びコンピュータプログラム | |
WO2011088757A1 (zh) | 建立目录组织结构的方法、装置及数字电视前端服务器 | |
KR20070038665A (ko) | 분산 파일 시스템 및 그 운용 방법 | |
JP4343669B2 (ja) | ファイル管理装置,動的名前空間生成方法および動的名前空間生成プログラム | |
WO2018102392A1 (en) | Garbage collection system and process | |
Hwang et al. | Analysis of NDN repository architecture and its improvement for I/O intensive applications | |
CN116820347A (zh) | 一种分布式对象的处理方法和装置 | |
TW201527997A (zh) | 文件版本控制系統及方法 | |
JP2015103130A (ja) | マニュアル情報管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120113 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130618 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130725 |
|
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: 20130813 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130911 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5367470 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |