(57)【特許請求の範囲】
【請求項１】
複数のオブジェクトサーバと、
メタサーバと、
複数のクライアントと
を含み、
前記複数のオブジェクトサーバの各々は、
ファイルを構成するオブジェクトを格納する少なくとも１つのオブジェクト格納手段と、
前記少なくとも１つのオブジェクト格納手段に格納されたオブジェクトの管理を行うオブジェクト管理手段と
を具備し、
前記メタサーバは、
前記ファイルのメタデータを保持する少なくとも１つのメタデータ格納手段と、
前記少なくとも１つのメタデータ格納手段に格納されたメタデータの管理を行うメタデータ管理手段と
を具備し、
前記複数のクライアントの各々は、
前記ファイルに対するファイルアクセスを処理するファイルアクセス手段と、
前記ファイルアクセスに応じて、前記メタデータ管理手段に対して問い合わせを行い、前記メタデータ管理手段から前記メタデータを取得するメタデータアクセス手段と、
前記メタデータから配置アルゴリズムと配置パラメータとを取得し、前記オブジェクトの格納位置を計算するオブジェクト位置計算手段と、
前記オブジェクトの格納位置を基に、前記オブジェクトに対するオブジェクトアクセスを行い、前記オブジェクトアクセスの結果を前記ファイルアクセス手段に通知するオブジェクトアクセス手段と
を具備する
分散ファイル名前解決システム。
【請求項２】
請求項１に記載の分散ファイル名前解決システムであって、
前記オブジェクト位置計算手段は、前記メタデータに基づいて指定されたオブジェクト配置アルゴリズム、及び前記オブジェクト配置アルゴリズムに対する配置パラメータを取得し、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行し、前記オブジェクトを特定するためのオブジェクトＩＤ、及び前記オブジェクトが格納されているオブジェクトサーバを特定するためのオブジェクトサーバＩＤを計算し、
前記オブジェクトアクセス手段は、前記オブジェクトサーバＩＤを基に、前記オブジェクトが格納されているオブジェクトサーバにアクセスし、前記オブジェクトＩＤを基に、前記オブジェクトを取得する
分散ファイル名前解決システム。
【請求項３】
請求項２に記載の分散ファイル名前解決システムであって、
前記各クライアントは、
前記オブジェクト配置アルゴリズムを保持する配置アルゴリズム格納手段
を更に具備し、
前記オブジェクト位置計算手段は、前記メタデータから配置アルゴリズムＩＤ及び前記配置パラメータを取得し、前記配置アルゴリズムＩＤを基に、前記配置アルゴリズム格納手段から前記オブジェクト配置アルゴリズムを取得し、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行する
分散ファイル名前解決システム。
【請求項４】
請求項２に記載の分散ファイル名前解決システムであって、
前記メタサーバは、
前記オブジェクト配置アルゴリズムを保持する配置アルゴリズム格納手段
を更に具備し、
前記メタデータ管理手段は、前記メタデータアクセス手段からの問い合わせに応じて、前記少なくとも１つのメタデータ格納手段から前記メタデータを取得し、前記メタデータに含まれる配置アルゴリズムＩＤを基に、前記配置アルゴリズム格納手段から前記オブジェクト配置アルゴリズムを取得し、前記メタデータアクセス手段に対して、前記メタデータと共に、前記オブジェクト配置アルゴリズムを応答し、
前記オブジェクト位置計算手段は、前記メタデータから前記配置パラメータを取得し、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行する
分散ファイル名前解決システム。
【請求項５】
請求項２乃至４のいずれか一項に記載の分散ファイル名前解決システムであって、
前記ファイルアクセス手段は、前記メタデータを取得すると、前記メタデータからファイルＩＤ及びオブジェクトサイズを取得し、前記オブジェクトアクセス手段に対し、前記ファイルＩＤ及び前記オブジェクトサイズと共に、ファイル内のアクセス対象部分のオフセット及びレングスを指定してオブジェクトアクセス依頼のリクエストを送り、
前記オブジェクトアクセス手段は、前記オブジェクトアクセス依頼のリクエストに応じて、前記オブジェクト位置計算手段に対し、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスと共に、前記オブジェクトの位置の計算依頼のリクエストを送り、
前記オブジェクト位置計算手段は、前記オブジェクトの位置の計算依頼のリクエストに応じて、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスを取得し、前記オブジェクトサイズ、前記オフセット、及び前記レングスからアクセス対象のオブジェクトのファイル内での順番を計算し、前記ファイルＩＤ及び前記ファイル内での順番から前記オブジェクトＩＤを計算し、前記オブジェクトアクセス手段に応答する
分散ファイル名前解決システム。
【請求項６】
複数のオブジェクトサーバの各々において、少なくとも１つのオブジェクト格納領域に、ファイルを構成するオブジェクトを格納し、前記少なくとも１つのオブジェクト格納領域に格納されたオブジェクトの管理を行うことと、
メタサーバにおいて、少なくとも１つのメタデータ格納領域に、前記ファイルのメタデータを保持し、前記少なくとも１つのメタデータ格納領域に格納されたメタデータの管理を行うことと、
複数のクライアントの各々において、前記ファイルに対するファイルアクセスを処理し、前記ファイルアクセスに応じて、前記メタサーバに対して問い合わせを行い、前記メタサーバから前記メタデータを取得することと、
前記各クライアントにおいて、前記メタデータから配置アルゴリズムと配置パラメータとを取得し、前記オブジェクトの格納位置を計算することと、
前記各クライアントにおいて、前記オブジェクトの格納位置を基に、前記オブジェクトに対するオブジェクトアクセスを行い、前記オブジェクトアクセスの結果を取得することと
を含む
分散ファイル名前解決方法。
【請求項７】
請求項６に記載の分散ファイル名前解決方法であって、
前記各クライアントにおいて、前記メタデータに基づいて指定されたオブジェクト配置アルゴリズム、及び前記オブジェクト配置アルゴリズムに対する配置パラメータを取得することと、
前記各クライアントにおいて、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行し、前記オブジェクトを特定するためのオブジェクトＩＤ、及び前記オブジェクトが格納されているオブジェクトサーバを特定するためのオブジェクトサーバＩＤを計算することと、
前記各クライアントにおいて、前記オブジェクトサーバＩＤを基に、前記オブジェクトが格納されているオブジェクトサーバにアクセスし、前記オブジェクトＩＤを基に、前記オブジェクトを取得することと
を更に含む
分散ファイル名前解決方法。
【請求項８】
請求項７に記載の分散ファイル名前解決方法であって、
前記各クライアントにおいて、配置アルゴリズム格納領域に、前記オブジェクト配置アルゴリズムを保持することと、
前記各クライアントにおいて、前記メタデータから配置アルゴリズムＩＤ及び前記配置パラメータを取得することと、
前記各クライアントにおいて、前記配置アルゴリズムＩＤを基に、前記配置アルゴリズム格納領域から前記オブジェクト配置アルゴリズムを取得することと、
前記各クライアントにおいて、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行することと
を更に含む
分散ファイル名前解決方法。
【請求項９】
請求項７に記載の分散ファイル名前解決方法であって、
前記メタサーバにおいて、配置アルゴリズム格納領域に、前記オブジェクト配置アルゴリズムを保持することと、
前記メタサーバにおいて、前記各クライアントからの問い合わせに応じて、前記少なくとも１つのメタデータ格納領域から前記メタデータを取得することと、
前記メタサーバにおいて、前記メタデータに含まれる配置アルゴリズムＩＤを基に、前記配置アルゴリズム格納領域から前記オブジェクト配置アルゴリズムを取得することと、
前記メタサーバにおいて、前記各クライアントに対して、前記メタデータと共に、前記オブジェクト配置アルゴリズムを応答することと、
前記各クライアントにおいて、前記メタデータから前記配置パラメータを取得することと、
前記各クライアントにおいて、前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行することと
を更に含む
分散ファイル名前解決方法。
【請求項１０】
請求項７乃至９のいずれか一項に記載の分散ファイル名前解決方法であって、
前記各クライアントにおいて、前記メタデータを取得すると、前記メタデータからファイルＩＤ及びオブジェクトサイズを取得することと、
前記各クライアントにおいて、前記ファイルＩＤ及び前記オブジェクトサイズと共に、ファイル内のアクセス対象部分のオフセット及びレングスを指定してオブジェクトアクセス依頼のリクエストを出すことと、
前記各クライアントにおいて、前記オブジェクトアクセス依頼のリクエストに応じて、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスと共に、前記オブジェクトの位置の計算依頼のリクエストを出すことと、
前記各クライアントにおいて、前記オブジェクトの位置の計算依頼のリクエストに応じて、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスを取得することと、
前記各クライアントにおいて、前記オブジェクトサイズ、前記オフセット、及び前記レングスからアクセス対象のオブジェクトのファイル内での順番を計算することと、
前記各クライアントにおいて、前記ファイルＩＤ及び前記ファイル内での順番から前記オブジェクトＩＤを計算することと
を更に含む
分散ファイル名前解決方法。
【請求項１１】
ファイルに対するファイルアクセスを処理するステップと、
前記ファイルアクセスに応じて、少なくとも１つのメタデータ格納領域に格納されたメタデータの管理を行うメタサーバに対して問い合わせを行い、前記メタサーバから前記メタデータを取得するステップと、
前記メタデータから配置アルゴリズムと配置パラメータとを取得し、オブジェクトの格納位置を計算するステップと、
前記オブジェクトの格納位置を基に、前記オブジェクトに対するオブジェクトアクセスを行うステップと、
前記オブジェクトアクセスに応じて、少なくとも１つのオブジェクト格納領域に格納されたオブジェクトの管理を行うオブジェクトサーバから前記オブジェクトを取得するステップと
をコンピュータに実行させるための
分散ファイル名前解決用プログラム。
【請求項１２】
請求項１１に記載の分散ファイル名前解決用プログラムであって、
前記メタデータに基づいて指定されたオブジェクト配置アルゴリズム、及び前記オブジェクト配置アルゴリズムに対する配置パラメータを取得するステップと、
前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行し、前記オブジェクトを特定するためのオブジェクトＩＤ、及び前記オブジェクトが格納されているオブジェクトサーバを特定するためのオブジェクトサーバＩＤを計算するステップと、
前記オブジェクトサーバＩＤを基に、前記オブジェクトが格納されているオブジェクトサーバにアクセスするステップと、
前記オブジェクトＩＤを基に、前記オブジェクトを取得するステップとを更にコンピュータに実行させるための
分散ファイル名前解決用プログラム。
【請求項１３】
請求項１２に記載の分散ファイル名前解決用プログラムであって、
配置アルゴリズム格納領域に、前記オブジェクト配置アルゴリズムを保持するステップと、
前記メタデータから配置アルゴリズムＩＤ及び前記配置パラメータを取得するステップと、
前記配置アルゴリズムＩＤを基に、前記配置アルゴリズム格納領域から前記オブジェクト配置アルゴリズムを取得するステップと、
前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行するステップとを更にコンピュータに実行させるための
分散ファイル名前解決用プログラム。
【請求項１４】
請求項１２に記載の分散ファイル名前解決用プログラムであって、
前記メタサーバから、前記メタデータと共に、前記オブジェクト配置アルゴリズムを取得するステップと、
前記メタデータから前記配置パラメータを取得するステップと、
前記配置パラメータを設定して前記オブジェクト配置アルゴリズムを実行するステップと
を更にコンピュータに実行させるための
分散ファイル名前解決用プログラム。
【請求項１５】
請求項１２乃至１４のいずれか一項に記載の分散ファイル名前解決用プログラムであって、
前記メタデータを取得すると、前記メタデータからファイルＩＤ及びオブジェクトサイズを取得するステップと、
前記ファイルＩＤ及び前記オブジェクトサイズと共に、ファイル内のアクセス対象部分のオフセット及びレングスを指定してオブジェクトアクセス依頼のリクエストを出すステップと、
前記オブジェクトアクセス依頼のリクエストに応じて、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスと共に、前記オブジェクトの位置の計算依頼のリクエストを出すステップと、
前記オブジェクトの位置の計算依頼のリクエストに応じて、前記ファイルＩＤ、前記オブジェクトサイズ、前記オフセット、及び前記レングスを取得するステップと、
前記オブジェクトサイズ、前記オフセット、及び前記レングスからアクセス対象のオブジェクトのファイル内での順番を計算するステップと、
前記ファイルＩＤ及び前記ファイル内での順番から前記オブジェクトＩＤを計算するステップと
を更にコンピュータに実行させるための
分散ファイル名前解決用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラムに関し、特に分散ファイル名前解決システムにおける名前解決のための分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラムに関する。
【背景技術】
【０００２】
非特許文献１、及び非特許文献２に、従来のファイルを分散格納する分散ファイルシステムの一例が記載されている。【０００３】
図１に示すように、この従来の分散ファイルシステムは、クライアントと、メタサーバと、ストレージを含む。ここでは、クライアントは、問い合わせ手段である。メタサーバは、名前解決手段である。ストレージは、データ格納手段である。名前解決手段は、メタデータの一部として、ファイルと、ファイルを構成するオブジェクトと、オブジェクトとストレージとの対応関係を示すマッピング情報を保持している。なお、名前解決手段は、メタデータがファイル単位でストレージに格納されている場合には、ファイルと、ファイルとストレージとの対応関係を示すマッピング情報を保持している。【０００４】
このような構成を有する従来の分散ファイルシステムは、次のように動作する。【０００５】
まず、クライアントは、ファイルアクセスを行う際に、メタサーバに対して、ファイルを構成するオブジェクトと、そのオブジェクトが格納されているストレージの問い合わせを行う。すなわち、クライアントは、ファイルアクセスを行う際に、メタサーバにマッピング情報の問い合わせを行う。【０００６】
次に、クライアントは、メタサーバに問い合わせることで得られたマッピング情報からファイルを構成するオブジェクトの位置を取得し、オブジェクトを格納するストレージに対してアクセスする。【０００７】
ストレージは、クライアントからのアクセスに対し、リクエストされたオブジェクトデータを返答する。【０００８】
クライアントは、アクセスを行いたいファイル中の範囲に応じてストレージにアクセスすることで、必要なデータの取得を行う。【０００９】
しかしながら、このような方法では、メタサーバが［ファイル−オブジェクト］、［オブジェクト−ストレージ］のマッピング情報を保持することになるため、以下のような課題がある。
（１）メタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量が大きくなる。
（２）メタサーバを複数台用意する場合複数メタサーバ間のメタデータの一貫性の維持コストが高くなる。
（３）復旧すべきデータサイズが大きいため障害復旧の際のコストが大きくなる。
（４）分散ファイルシステムの規模が大きくなった際にメタサーバに負荷が集中する。【００１０】
また、非特許文献３に、メタサーバで保持するマッピング情報が大きいことに起因する問題を一部解決する分散ファイルシステムの一例が記載されている。【００１１】
この従来の分散ファイルシステムでは、ストレージの物理的な配置等を反映することが可能な形でのグルーピングと、データ格納手段の性能を反映した重み付けに基づくランダム配置を行うことで、メタサーバで保持するマッピング情報が大きいことに起因する問題の解決を図っている。【００１２】
すなわち、ストレージのグルーピング情報、及びストレージの性能を反映した重み付け情報は、予め静的に設定しておくことが可能である。或いは、動的に変更するとしても、ファイルアクセスの頻度より大幅に少ない頻度での更新となる。そのため、基本的に、ファイルを構成するオブジェクトの位置は、クライアントローカルで計算によって求めることができ、メタサーバでマッピング情報を保持しなくても済む。【００１３】
しかしながら、このような方法では、ストレージの配置状況や性能等の特性をオブジェクト配置に反映する事ができても、ファイルの特性をオブジェクト配置に反映する事ができないという課題が残る。【００１４】
このように、従来の分散ファイルシステムには、以下のような問題点が存在していた。【００１５】
第１の問題点は、分散ファイルシステムのメタサーバが保持するメタデータが大きいということである。これによって、「メタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量が大きくなる」、「メタサーバを複数台のメタサーバで構成する場合メタサーバ間のメタデータの一貫性の維持コストが高くなる」、「復旧すべきデータサイズが大きいため障害復旧の際のコストが大きくなる」等の副次的な問題を生じる。【００１６】
その理由は、メタデータの一部として、「ファイルとそのファイルを構成するオブジェクトのマッピング情報」、「オブジェクトとそのオブジェクトを格納するストレージのマッピング情報」を保持する必要があるためである。【００１７】
具体的に、マッピング情報のサイズがどの程度になるか概算を以下に示す。【００１８】
例えば、ファイルサイズを「１２ＧＢ（ＨＤサイズのビデオ２時間を想定）」、ファイル数を「１万」、オブジェクトサイズを「１ＭＢ」と仮定する。また、オブジェクトＩＤを「６４ｂｉｔ」、オブジェクトサーバＩＤを「３２ｂｉｔ（ＩＰｖ４アドレス）＋１６ｂｉｔ（ポート番号）」と仮定する。更に、冗長化のため「オブジェクトを３重に保持」するものと仮定する。【００１９】
１オブジェクト当りのデータサイズ（［オブジェクト−ストレージ］のマッピング情報）は「２６Ｂｙｔｅ」であり、１ファイルは「１２０００オブジェクト」で構成される。そのため、［オブジェクト−ストレージ］のマッピング情報のサイズは、「２６Ｂｙｔｅ  ＊  １２０００  ＝  ３１２ＫＢ」となる。また、［ファイル−オブジェクト］のマッピング情報のサイズは、「６４ｂｉｔ（８Ｂｙｔｅ）  ＊  １２０００  ＝  ９６ＫＢ」となる。従って、１ファイル当りのマッピング情報のサイズは、合わせて「およそ（約）４００ＫＢ」（「３１２ＫＢ  ＋  ９６ＫＢ  ＝  ４１８ＫＢ  ≒  ４００ＫＢ」）となる。ファイルシステム全体としては、「およそ（約）４ＧＢ程度」（４００ＫＢ  ×  １万  ＝  ４ＧＢ」）のマッピング情報のサイズとなる。なお、ここで挙げた保持すべき情報の項目は、実際のシステムのごく一部であり、一般的には、この数倍のサイズのメタデータが必要となる場合も考えられる。【００２０】
第２の問題点は、分散ファイルシステムの規模が大きくなった際にメタサーバに負荷が集中するという点である。【００２１】
その理由は、メタサーバにおけるマッピング情報のルックアップは比較的重い処理であり、加えてマッピング情報のサイズが大きいため、メタサーバを複数台で運用する際の一貫性維持のコストが高くなり、多くのメタサーバを利用することができず、メタサーバ側が性能的なボトルネックになる潜在的な可能性があるためである。【００２２】
第３の問題点は、第１の問題点の解決を狙った従来手法においてファイルの特性をオブジェクト配置に反映する事ができないということである。【００２３】
その理由は、当該手法においては、ストレージのグルーピング情報、及びストレージの性能を反映した重み付け等の特定のパラメータに基づいてランダムな配置を行う手法となっており、配置のアルゴリズム自体に自由度が無いためである。【００２４】
なお、関連する技術として、特許文献１（特開２００５−０６３３７４号公報）にデータ管理方法、データ管理装置、及びそのためのプログラム並びに記録媒体が開示されている。【００２５】
この関連技術では、ユーザ自身が運営するホームサーバ等の端末や、ユーザから委託されたプロバイダ一によって運営される信頼性の高い端末等にメタデータを配置することができる。また、データ管理部は、メタデータを作成し、端末上に配置する。このとき、オペレーティングシステムは、作成されたメタデータに一意な識別子を付与する。
【先行技術文献】
【特許文献】
【００２６】
【特許文献１】特開２００５−０６３３７４号公報
【非特許文献】
【００２７】
【非特許文献１】Ｐｅｔｅｒ  Ｊ．  Ｂｒａａｍ  ｅｔ  ａｌ．，  “Ｌｕｓｔｒｅ  Ｔｅｃｈｎｉｃａｌ  Ｐｒｏｊｅｃｔ  Ｓｕｍｍａｒｙ”，  Ｃｌｕｓｔｅｒ  Ｆｉｌｅ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．  Ｊｕｌｙ  ２００１．
【非特許文献２】Ｄ．  Ｎａｇｌｅ，  ｅｔ  ａｌ．  “Ｔｈｅ  Ｐａｎａｓａｓ  ＡｃｔｉｖｅＳｃａｌｅ  Ｓｔｏｒａｇｅ  Ｃｌｕｓｔｅｒ：  Ｄｅｌｉｖｅｒｉｎｇ  Ｓｃａｌａｂｌｅ  Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｓｔｏｒａｇｅ”，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＳＣ２００４，  Ｎｏｖｅｍｂｅｒ  ２００４，  Ｐｉｔｔｓｂｕｒｇｈ，  Ｐｅｎｎｓｙｌｖａｎｉａ．
【非特許文献３】Ｓａｇｅ  Ａ．  Ｗｅｉｌ  ｅｔ  ａｌ．  “ＣＲＵＳＨ：  Ｃｏｎｔｒｏｌｌｅｄ，  Ｓｃａｌａｂｌｅ，  Ｄｅｃｅｎｔｒａｌｉｚｅｄ  Ｐｌａｃｅｍｅｎｔ  ｏｆ  Ｒｅｐｌｉｃａｔｅｄ  Ｄａｔａ”，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＳＣ２００６，  Ｎｏｖｅｍｂｅｒ  ２００６，  Ｔａｍｐａ，  Ｆｌｏｒｉｄａ．
【発明の概要】
【００２８】
本発明の目的は、ファイルの名前解決をマッピング情報によらず計算によって求めることでメタサーバの保持するメタデータサイズを削減し、それによってメタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量を削減できる分散ファイルシステムを提供することにある。
【００２９】
本発明の分散ファイル名前解決システムは、複数のオブジェクトサーバと、メタサーバと、複数のクライアントとを含む。複数のオブジェクトサーバの各々は、ファイルを構成するオブジェクトを格納する少なくとも１つのオブジェクト格納手段と、少なくとも１つのオブジェクト格納手段に格納されたオブジェクトの管理を行うオブジェクト管理手段とを具備する。メタサーバは、ファイルのメタデータを保持する少なくとも１つのメタデータ格納手段と、少なくとも１つのメタデータ格納手段に格納されたメタデータの管理を行うメタデータ管理手段とを具備する。複数のクライアントの各々は、ファイルに対するファイルアクセスを処理するファイルアクセス手段と、ファイルアクセスに応じて、メタデータ管理手段に対して問い合わせを行い、メタデータ管理手段からメタデータを取得するメタデータアクセス手段と、メタデータを基に指定されたオブジェクト配置アルゴリズム、及びオブジェクト配置アルゴリズムに対する配置パラメータを取得し、配置パラメータを設定してオブジェクト配置アルゴリズムを実行し、オブジェクトの格納位置を計算するオブジェクト位置計算手段と、オブジェクトの格納位置を基に、オブジェクトに対するオブジェクトアクセスを行い、オブジェクトアクセスの結果をファイルアクセス手段に通知するオブジェクトアクセス手段とを具備する。
【００３０】
本発明の分散ファイル名前解決方法では、複数のオブジェクトサーバの各々において、少なくとも１つのオブジェクト格納手段に、ファイルを構成するオブジェクトを格納し、少なくとも１つのオブジェクト格納手段に格納されたオブジェクトの管理を行う。また、メタサーバにおいて、少なくとも１つのメタデータ格納手段に、ファイルのメタデータを保持し、少なくとも１つのメタデータ格納手段に格納されたメタデータの管理を行う。また、複数のクライアントの各々において、ファイルに対するファイルアクセスを処理し、ファイルアクセスに応じて、メタサーバに対して問い合わせを行い、メタサーバからメタデータを取得する。また、各クライアントにおいて、メタデータを基に指定されたオブジェクト配置アルゴリズム、及びオブジェクト配置アルゴリズムに対する配置パラメータを取得し、配置パラメータを設定してオブジェクト配置アルゴリズムを実行し、オブジェクトの格納位置を計算する。また、各クライアントにおいて、オブジェクトの格納位置を基に、オブジェクトに対するオブジェクトアクセスを行い、オブジェクトアクセスの結果を取得する。
【００３１】
本発明に係る分散ファイル名前解決用プログラムを実行することにより、コンピュータは以下の動作を行う。まず、当該コンピュータは、ファイルに対するファイルアクセスを処理する。また、当該コンピュータは、ファイルアクセスに応じて、少なくとも１つのメタデータ格納手段に格納されたメタデータの管理を行うメタサーバに対して問い合わせを行い、メタサーバからメタデータを取得する。また、当該コンピュータは、メタデータを基に指定されたオブジェクト配置アルゴリズム、及びオブジェクト配置アルゴリズムに対する配置パラメータを取得し、配置パラメータを設定してオブジェクト配置アルゴリズムを実行し、オブジェクトの格納位置を計算する。また、当該コンピュータは、オブジェクトの格納位置を基に、オブジェクトに対するオブジェクトアクセスを行い、オブジェクトアクセスに応じて、少なくとも１つのオブジェクト格納手段に格納されたオブジェクトの管理を行うオブジェクトサーバからオブジェクトを取得する。なお、本発明に係る分散ファイル名前解決用プログラムは、記憶媒体や記憶装置に格納可能である。
【００３２】
ファイルの名前解決をマッピング情報によらず計算によって求めるため、メタサーバの保持するメタデータサイズを削減し、それによってメタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量を削減できる。
【図面の簡単な説明】
【００３３】
【図１】Ｏｕｔ−ｏｆ−ｂａｎｄ型の仮想化を行う分散ファイルシステムの一般的な構成を示す概念図である。
【図２】本発明の第１実施形態の構成を示すブロック図である。
【図３】本発明の第１実施形態の動作を示すシーケンス図である。
【図４】本発明で使用するメタデータに含まれる情報の例である。
【図５】本発明の第２実施形態の構成を示すブロック図である。
【図６】本発明の第３実施形態の具体例で想定するファイルと、そのアクセス対象を示す図である。
【発明を実施するための形態】
【００３４】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００３５】
［第１実施形態における構成］
図２を参照すると、本発明の分散ファイル名前解決システムは、クライアント１０と、メタサーバ２０と、オブジェクトサーバ３０を含む。
【００３６】
クライアント１０は、ファイルアクセスを行う。クライアント１０の例として、ＰＣ（パソコン）、モバイルノートＰＣ、シンクライアント端末、ワークステーション、携帯電話機、カーナビ（カーナビゲーションシステム）、携帯ゲーム機、家庭用ゲーム機、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器等が考えられる。クライアント１０は、車両や船舶、航空機等の移動体に搭載されていても良い。但し、実際には、これらの例に限定されない。
【００３７】
メタサーバ２０は、ファイルのメタデータを保持する。メタサーバ２０の例として、ＰＣ、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータが考えられる。但し、実際には、これらの例に限定されない。
【００３８】
オブジェクトサーバ３０は、ファイルを構成するオブジェクトを格納する。オブジェクトサーバ３０の例として、ＰＣ、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータが考えられる。但し、実際には、これらの例に限定されない。
【００３９】
ここでは、「ファイル」とは、ユーザ又はアプリケーションソフトウェア（以下、アプリケーション）がＩ／Ｏ（入出力）を行うデータ保存の単位を示す。ファイルは、並列読み書きによるＩ／Ｏのスループット向上等を目的として、「オブジェクト」と呼ばれる部分データに分割されることがある。ファイルが１つのオブジェクトのみで構成されている場合には、オブジェクトとファイルは同じもの（「オブジェクト」＝「ファイル」）となる。
【００４０】
クライアント１０は、ファイルアクセス部１１と、メタデータアクセス部１２と、オブジェクトアクセス部１３と、オブジェクト位置計算部１４と、配置アルゴリズム格納部１５を含む。
【００４１】
ファイルアクセス部１１は、ユーザ又はアプリケーションからファイルアクセスのリクエストを受け取り、メタデータアクセス部１２を用いてファイルのメタデータを取得し、そのメタデータを基にオブジェクトアクセス部１３を通じてファイルを構成するオブジェクトを取得することでファイルアクセスを実現する。なお、ファイルアクセス部１１は、ユーザ操作のための入出力装置や、外部装置との通信のための通信用インタフェースを含んでいても良い。
【００４２】
メタデータアクセス部１２は、ファイルアクセス部１１からのリクエストを基に、メタサーバ２０からファイルのメタデータを取得する。
【００４３】
オブジェクトアクセス部１３は、ファイルアクセス部１１からのリクエストを基に、オブジェクト位置計算部１４を利用して、ファイルを構成するオブジェクトの位置を取得し、オブジェクトサーバ３０から該当オブジェクトを取得し、ファイルアクセス部１１に返す。
【００４４】
オブジェクト位置計算部１４は、オブジェクトアクセス部１３からのリクエストに含まれるファイルの配置アルゴリズムＩＤ、及び配置パラメータに基づき、配置アルゴリズム格納部１５に格納されている配置アルゴリズムを使用し、ファイルを構成するオブジェクト、及びそのオブジェクトを保持するオブジェクトサーバ３０を計算し、オブジェクトアクセス部１３に返す。ここでは、配置アルゴリズムＩＤは、ランダムアルゴリズムを示すＩＤである。また、配置パラメータは、ランダムアルゴリズムに与えるシード値（ｓｅｅｄ：種）である。すなわち、配置パラメータは、配置アルゴリズムのパラメータである。但し、実際には、これらの例に限定されない。
【００４５】
配置アルゴリズム格納部１５は、配置アルゴリズムを格納する。ここでは、配置アルゴリズム格納部１５は、配置アルゴリズムＩＤと配置アルゴリズムを関連付けて格納する。
【００４６】
メタサーバ２０は、メタデータ管理部２１と、メタデータ格納部２２を含む。
【００４７】
メタデータ管理部２１は、メタデータアクセス部１２からのリクエストを基に、メタデータ格納部２２から該当ファイルのメタデータを取得し、取得されたメタデータをメタデータアクセス部１２に返す。
【００４８】
メタデータ格納部２２は、ファイルのメタデータを格納する。メタデータ格納部２２は、少なくとも１つ存在する。
【００４９】
オブジェクトサーバ３０は、オブジェクト管理部３１と、オブジェクト格納部３２を含む。
【００５０】
オブジェクト管理部３１は、オブジェクトアクセス部１３からのリクエストを基に、オブジェクト格納部３２から該当オブジェクトを取得し、取得されたオブジェクトをオブジェクトアクセス部１３に返す。
【００５１】
オブジェクト格納部３２は、オブジェクトを格納する。オブジェクト格納部３２は、少なくとも１つ存在する。
【００５２】
ファイルアクセス部１１、オブジェクト位置計算部１４、メタデータ管理部２１、及びオブジェクト管理部３１の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）等の処理装置、又は同様の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））或いは、各々の機能をコンピュータに実行させるためのプログラム等が考えられる。但し、実際には、これらの例に限定されない。
【００５３】
メタデータアクセス部１２、及びオブジェクトアクセス部１３の例として、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。また、メタデータアクセス部１２、及びオブジェクトアクセス部１３が利用する通信回線の例として、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等が考えられる。また、ファイルやデータをやり取りする際、ＵＳＢメモリやＤＶＤ等の記憶媒体（メディア）にファイルやデータを記憶し、当該記憶媒体（メディア）を介して、ファイルやデータをやり取りすることも考えられる。この場合、メタデータアクセス部１２、及びオブジェクトアクセス部１３の例として、ＵＳＢポート等の接続口（コネクタ）やＤＶＤドライブ等の読取装置が考えられる。但し、実際には、これらの例に限定されない。
【００５４】
配置アルゴリズム格納部１５、メタデータ格納部２２、及びオブジェクト格納部３２の例として、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の外部記憶装置（ストレージ）を想定している。また、他にも、配置アルゴリズム格納部１５、メタデータ格納部２２、及びオブジェクト格納部３２の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、或いはフラッシュメモリ等の半導体記憶装置、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等のリムーバブルディスクや記憶媒体（メディア）等が考えられる。また、配置アルゴリズム格納部１５、メタデータ格納部２２、及びオブジェクト格納部３２は、コンピュータ本体に内蔵された記憶装置に限らず、周辺機器（外付けＨＤＤ等）や外部のサーバ（Ｗｅｂサーバ、ファイルサーバ等）に設置された記憶装置、或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でも良い。但し、実際には、これらの例に限定されない。
【００５５】
［第１実施形態における動作］
次に、図３のシーケンス図を参照して、本実施形態の全体の動作について詳細に説明する。
【００５６】
（１）ステップＳ１０１
まず、ファイルアクセス部１１は、ユーザからファイルアクセスのリクエストを受け取る。例えば、ファイルアクセス部１１は、ファイルシステムインタフェースを通してユーザーアプリ等からファイルアクセスのリクエストを受け取る。
【００５７】
（２）ステップＳ１０２
ファイルアクセス部１１は、ファイルアクセスのリクエストに応じて、メタデータアクセス部１２に対し、該当ファイルのメタデータの問い合わせを依頼する。
【００５８】
（３）ステップＳ１０３
次に、メタデータアクセス部１２は、メタデータ管理部２１にメタデータの問い合わせを行う。
【００５９】
（４）ステップＳ１０４
次に、メタデータ管理部２１は、該当メタデータをメタデータ格納部２２より検索する。すなわち、メタデータ管理部２１は、メタデータ格納部２２に格納されているメタデータ群の中から、該当メタデータを発見する。
【００６０】
なお、メタデータ管理部２１は、該当メタデータが見つからなかった場合には、ファイルが見つからなかった旨のエラーを返す。例えば、メタデータ管理部２１は、該当メタデータが見つからなかった場合、ＰＯＳＩＸではＥＮＯＥＮＴ等のエラーを返す。
【００６１】
ここで、ファイルのメタデータは、図４に示すように、配置アルゴリズムＩＤと、その配置アルゴリズムで使用する配置パラメータに加えて、サイズ、所有者、アクセス権限、作成時刻等の一般的なメタデータを持つものとする。
【００６２】
（５）ステップＳ１０５
メタデータ管理部２１は、該当メタデータが見つかった場合には、メタデータアクセス部１２に対し、メタデータを応答する。
【００６３】
（６）ステップＳ１０６
メタデータアクセス部１２は、メタデータ管理部２１からメタデータを受け取ると、そのメタデータをファイルアクセス部１１に返答する。
【００６４】
（７）ステップＳ１０７
ファイルアクセス部１１は、該当ファイルのメタデータを取得した場合、オブジェクトアクセス部１３にオブジェクトアクセス依頼を行う。この際、ファイルアクセス部１１は、先にメタサーバ２０から取得済みのメタデータに含まれる配置アルゴリズムＩＤ、及び配置パラメータを、オブジェクトアクセス依頼のリクエストと共に送る。
【００６５】
（８）ステップＳ１０８
オブジェクトアクセス部１３は、オブジェクトアクセス依頼に応じて、オブジェクト位置計算部１４に対して、配置アルゴリズムＩＤ、及び配置パラメータと共に、オブジェクトの格納位置（オブジェクトサーバＩＤ）の計算依頼を出す。
【００６６】
（９）ステップＳ１０９
オブジェクト位置計算部１４は、オブジェクトアクセス部１３からの配置アルゴリズムＩＤを基に、配置アルゴリズムを配置アルゴリズム格納部１５から取得し、配置パラメータをセット（設定）して該当アルゴリズムを実行し、アクセス対象のオブジェクトの識別情報（オブジェクトＩＤ）と、そのオブジェクトの格納位置（オブジェクトサーバＩＤ）を計算する。ここでは、オブジェクト位置計算部１４は、配置アルゴリズムに基づき、アクセス対象のオブジェクトＩＤと、該当オブジェクトを格納しているオブジェクトサーバ３０のＩＤを計算する。
【００６７】
（１０）ステップＳ１１０
オブジェクト位置計算部１４は、アクセス対象のオブジェクトの識別情報（オブジェクトＩＤ）と、そのオブジェクトの格納位置（オブジェクトサーバＩＤ）を、オブジェクトアクセス部１３に応答する。ここでは、オブジェクト位置計算部１４は、アクセス対象のオブジェクトＩＤと、該当オブジェクトを格納しているオブジェクトサーバ３０のＩＤを、オブジェクトアクセス部１３に応答する。
【００６８】
（１１）ステップＳ１１１
オブジェクトアクセス部１３は、アクセス対象のオブジェクトの識別情報（オブジェクトＩＤ）と、そのオブジェクトの格納位置（オブジェクトサーバＩＤ）を取得した場合、該当オブジェクトを格納しているオブジェクトサーバ３０のオブジェクト管理部３１に対して、アクセス対象のオブジェクトＩＤを指定して、該当オブジェクトに対するアクセス（オブジェクトアクセス）を行う。
【００６９】
（１２）ステップＳ１１２
オブジェクト管理部３１は、オブジェクト格納部３２に格納されている該当オブジェクトに対するアクセスを処理する。例えば、オブジェクト管理部３１は、オブジェクトアクセス部１３からのオブジェクトアクセスに応じて、オブジェクト格納部３２に格納されている該当オブジェクトに対して、データの参照・取得・更新・削除等の処理を行う。
【００７０】
（１３）ステップＳ１１３
オブジェクト管理部３１は、該当オブジェクトに対するアクセスの処理結果をオブジェクトアクセス部１３に応答する。
【００７１】
（１４）ステップＳ１１４
最後に、オブジェクトアクセス部１３は、オブジェクトに対するアクセス結果をファイルアクセス部１１に通知する。
【００７２】
（１５）ステップＳ１１５
ファイルアクセス部１１は、必要箇所（アクセス対象のオブジェクト）へのアクセス完了後、ファイルアクセス元のユーザに対して、ファイルアクセスの結果通知を行う。すなわち、ファイルアクセス部１１は、オブジェクトに対するアクセス結果に基づいて、ファイルアクセス元のユーザに対して、ファイルアクセスの結果通知を行う。
【００７３】
ステップＳ１１５の後、必要箇所へのアクセスが完了するまでは、ステップＳ１０７〜ステップＳ１１４を繰り返す。
【００７４】
ここでは、ステップＳ１０８におけるオブジェクトの格納位置の計算と、ステップＳ１１１におけるオブジェクトアクセスを、オブジェクト毎に繰り返すような形で説明をしているが、特にこれに限るような必要は無い。ファイルのサイズ、配置アルゴリズムの特性等によっては、先にファイルを構成する全オブジェクトの配置計算を行い、その後でまとめてオブジェクトアクセスを繰り返すようにしても良い。
【００７５】
［第１実施形態の特徴］
本実施形態では、ファイルを構成するオブジェクトの格納位置をマッピング情報としてメタサーバ２０のメタデータに保存するのではなく、メタデータにはファイルに結び付けられた配置アルゴリズムＩＤとそのパラメータのみを保存しておき、クライアント側のオブジェクト位置計算部１４で計算するように構成されている。そのため、メタサーバ２０の保持するメタデータサイズを削減し、メタサーバ２０のディスク使用量、メモリ使用量、クライアントへのデータ転送容量等を削減できる。
【００７６】
また、本実施形態では、ファイルを構成するオブジェクトとその格納位置のルックアップ（名前解決）を行う際、オブジェクトとその格納位置をマッピング情報によらず計算によって求めるように構成されている。そのため、分散ファイルシステムが大規模化し、クライアント数が増加した際にも、メタサーバ２０の負荷を抑えることができる。
【００７７】
また、本実施形態では、ファイル毎に配置アルゴリズムＩＤとそのパラメータを保持するように構成されている。そのため、ファイル毎にオブジェクトの配置方法を工夫する事ができる。すなわち、ファイルの特性をオブジェクト配置に反映する事ができる。
【００７８】
＜第２実施形態＞
以下に、本発明の第２実施形態について説明する。
【００７９】
［第２実施形態における構成］
図５を参照すると、本発明の分散ファイル名前解決システムは、クライアント１０と、メタサーバ２０と、オブジェクトサーバ３０を含む。
【００８０】
クライアント１０は、ファイルアクセス部１１と、メタデータアクセス部１２と、オブジェクトアクセス部１３と、オブジェクト位置計算部１４を含む。
【００８１】
ファイルアクセス部１１、メタデータアクセス部１２、オブジェクトアクセス部１３、及びオブジェクト位置計算部１４は、第１実施形態と同様である。
【００８２】
メタサーバ２０は、メタデータ管理部２１と、メタデータ格納部２２と、配置アルゴリズム格納部２３を含む。
【００８３】
メタデータ管理部２１、及びメタデータ格納部２２は、第１実施形態と同様である。
【００８４】
配置アルゴリズム格納部２３は、配置アルゴリズムを格納する。ここでは、配置アルゴリズム格納部２３は、配置アルゴリズムＩＤと配置アルゴリズムを関連付けて格納する。すなわち、配置アルゴリズム格納部２３は、第１実施形態における配置アルゴリズム格納部１５と同様である。
【００８５】
オブジェクトサーバ３０は、オブジェクト管理部３１と、オブジェクト格納部３２を含む。
【００８６】
オブジェクト管理部３１、及びオブジェクト格納部３２は、第１実施形態と同様である。
【００８７】
図５を参照すると、本実施形態と第１実施形態とは、配置アルゴリズム格納部をクライアントではなくメタサーバ側に持たせる点が異なる。なお、配置アルゴリズム格納部２３は、メタサーバ格納部２２に含まれていても良い。
【００８８】
本実施形態の全体の動作に関しても、第１実施形態では、メタサーバ２０から配置アルゴリズムＩＤ、及びパラメータを取得し、クライアント側に持つ配置アルゴリズムを用いて、オブジェクトの格納位置の計算を行うのに対し、本実施形態では、配置アルゴリズム自体もメタサーバ２０から取得してくるという点のみが異なり、シーケンス的には大きな違いは無い。
【００８９】
［第２実施形態における動作］
図３のシーケンス図を参照して、本実施形態の全体の動作について説明する。
【００９０】
ステップＳ１０１〜ステップＳ１０４については、第１実施形態と同様である。
【００９１】
ステップＳ１０５において、メタデータ管理部２１は、該当メタデータが見つかった場合には、メタデータアクセス部１２に対し、メタデータと、メタデータに含まれる配置アルゴリズムＩＤに対応する配置アルゴリズムを応答する。ここでは、メタデータ管理部２１は、メタデータに含まれる配置アルゴリズムＩＤを基に、配置アルゴリズム格納部２３から配置アルゴリズムを取得し、メタデータアクセス部１２に対して、メタデータと共に配置アルゴリズムを応答する。
【００９２】
ステップＳ１０６において、メタデータアクセス部１２は、メタデータ管理部２１からメタデータ及び配置アルゴリズムを受け取ると、メタデータ及び配置アルゴリズムをファイルアクセス部１１に返答する。
【００９３】
ステップＳ１０７において、ファイルアクセス部１１は、該当ファイルのメタデータを取得した場合、オブジェクトアクセス部１３にオブジェクトアクセス依頼を行う。この際、ファイルアクセス部１１は、先にメタサーバ２０から取得済みの配置アルゴリズム、及び配置パラメータを、オブジェクトアクセス依頼のリクエストと共に送る。
【００９４】
ステップＳ１０８において、オブジェクトアクセス部１３は、オブジェクトアクセス依頼に応じて、オブジェクト位置計算部１４に対して、配置アルゴリズム、及び配置パラメータと共に、オブジェクトの格納位置（オブジェクトサーバＩＤ）の計算依頼を出す。
【００９５】
ステップＳ１０９において、オブジェクト位置計算部１４は、オブジェクトアクセス部１３から配置アルゴリズム及び配置パラメータを取得すると、配置パラメータをセット（設定）して該当アルゴリズムを実行し、アクセス対象のオブジェクトの識別情報（オブジェクトＩＤ）と、そのオブジェクトの格納位置（オブジェクトサーバＩＤ）を計算する。
【００９６】
ステップＳ１１０〜ステップＳ１１５については、第１実施形態と同様である。
【００９７】
［第２実施形態の特徴］
本実施形態では、配置アルゴリズム自体がメタサーバ２０側に保存されるため、配置アルゴリズムクライアント側に保存されているのに比較して、配置アルゴリズムの追加、拡張が容易に行える。
【００９８】
＜第３実施形態＞
以下に、本発明の第３実施形態について説明する。
これまでは、オブジェクトサイズに関しては固定長であることを暗黙的に仮定していたが、本実施形態では、オブジェクトサイズに関しても、ファイルを構成するオブジェクトとその格納位置を計算によって求めるという手法と同様の考え方を適用して、オブジェクトサイズを計算によって求めるようにする。
【００９９】
［第３実施形態における動作］
次に、具体的な実施例を用いて、本実施形態の動作を説明する。
ここでは、第１実施形態で記述した動作において、特に、抽象的に記述した図３のシーケンス図のステップＳ１０７〜ステップＳ１１０に関して具体例を持って記述する。
【０１００】
ステップＳ１０１〜ステップＳ１０６については、他の実施形態と同様である。
【０１０１】
図６に示すように、「１ＧＢ」のサイズのファイルが、「１ＭＢ」のサイズのオブジェクトに分割されてオブジェクトサーバ群に格納されているときの、オフセット「１００ＭＢ」地点から長さ（レングス）「２．５ＭＢ」の部分へのリードアクセスを考える。ここでは、配置アルゴリズムは、ランダム、すなわち各オブジェクトがオブジェクトサーバ３０に対してランダムに格納されているとする。
【０１０２】
ステップＳ１０７において、ファイルアクセス部１１は、該当ファイルのメタデータを取得すると、オブジェクトアクセス部１３に、ファイル内のアクセス対象部分の「オフセット（１００ＭＢ）」と「レングス（２．５ＭＢ）」を指定してオブジェクトアクセス依頼を行う。すなわち、オブジェクトアクセス依頼には、オフセット及びレングスが含まれている。この際、ファイルアクセス部１１は、先にメタサーバ２０から取得済みのメタデータに含まれる配置アルゴリズムＩＤ、配置パラメータ、ファイルＩＤ、ファイルサイズ、オブジェクトサイズを、オブジェクトアクセス依頼のリクエストと共に送る。
【０１０３】
ステップＳ１０８において、オブジェクトアクセス部１３は、オブジェクトアクセス依頼のリクエストに応じて、オブジェクト位置計算部１４にオブジェクトの位置の計算依頼を出す。このとき、オブジェクトアクセス部１３は、オブジェクトの位置の計算依頼のリクエストと共に、配置アルゴリズムＩＤ、配置パラメータ、ファイルＩＤ、ファイルサイズ、オブジェクトサイズ、オフセット及びレングスを送る。なお、オブジェクトの位置の計算依頼のリクエストに、配置アルゴリズムＩＤ、配置パラメータ、ファイルＩＤ、ファイルサイズ、オブジェクトサイズ、オフセット及びレングスが含まれていても良い。
【０１０４】
ステップＳ１０９において、オブジェクト位置計算部１４は、オブジェクトの位置の計算依頼のリクエストに応じて、配置アルゴリズムとして指定されたランダムアルゴリズムを配置アルゴリズム格納部１５から取得し、ランダムアルゴリズムに対するパラメータをセット（設定）してランダムアルゴリズムを実行し、ファイルＩＤ、オブジェクトサイズ、ファイル内のアクセス対象部分のオフセット、レングスから、オブジェクトＩＤとオブジェクトサーバＩＤを計算する。
【０１０５】
具体的には、オブジェクト位置計算部１４は、ファイルサイズとオブジェクトサイズからファイルを構成するオブジェクト数が計算可能であり、加えて、例えば、オブジェクトＩＤを「ファイルＩＤ＋ファイル内での順番」のようにしておけば、オブジェクト位置計算部１４は、メタデータに含まれているファイルＩＤ、及びオブジェクトサイズを取得し、オブジェクトアクセス部１３からオブジェクトの位置の計算依頼と共にアクセス対象部分のオフセット及びレングスを取得し、ファイルＩＤ、オブジェクトサイズ、アクセス対象部分のオフセット、及びレングスからオブジェクトＩＤを計算することが可能である。或いは、オブジェクト位置計算部１４は、例えば、アクセス対象のオブジェクトのファイル内での順番をｎとしたとき、ランダムアルゴリズムで生成される擬似乱数列のｎ番目の値をオブジェクトサーバの数で割ったときの剰余等としておけば良い。
【０１０６】
ここでは、オブジェクト位置計算部１４は、「オブジェクトサイズ（１ＭＢ）」と「オフセット（１００ＭＢ）」と「レングス（２．５ＭＢ）」からファイル内での順番を計算する。すなわち、ファイル内の先頭のオブジェクトを０番目とした場合、アクセス対象のオブジェクトの各々のファイル内での順番は、それぞれ「１００番目」、「１０１番目」、「１０２番目」となる。また、それぞれのオブジェクトＩＤは、「ファイルＩＤ＋１００」、「ファイルＩＤ＋１０１」、「ファイルＩＤ＋１０２」となる。
【０１０７】
ステップＳ１１０において、オブジェクト位置計算部１４は、このような計算によって求められたオブジェクトＩＤと、該当オブジェクトを格納するオブジェクトサーバＩＤを、オブジェクトアクセス部１３に応答する。
【０１０８】
ステップＳ１１１〜ステップＳ１１５については、他の実施形態と同様である。
【０１０９】
［第３実施形態の特徴］
本実施形態では、オブジェクトサイズを計算によって求めるため、より柔軟にファイルの特性をオブジェクト配置に反映する事ができる。
【０１１０】
＜まとめ＞
以上のように、本発明は、メタサーバの負荷、及びクライアント−メタサーバ間の通信量を軽減できる分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラムに関する。
【０１１１】
従来、分散ファイルシステムのメタサーバが保持するメタデータには、「ファイルとそのファイルを構成するオブジェクトのマッピング情報」、「オブジェクトとそのオブジェクトを格納するストレージのマッピング情報」が含まれており、サイズが大きいという課題があった。また、このマッピング情報のルックアップは比較的重く、メタサーバが性能的なボトルネックになりやすいという課題があった。また、名前解決を計算によって行う場合にもファイルの特性をオブジェクト配置に反映できないという課題もあった。
【０１１２】
本発明の目的は、ファイルの名前解決をマッピング情報によらず計算によって求めることでメタサーバの保持するメタデータサイズを削減し、それによってメタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量を削減できる分散ファイルシステムにおける名前解決システムを提供することにある。
【０１１３】
本発明の他の目的は、ファイルの名前解決をマッピング情報によらず計算によって求めることによりメタサーバの負荷をクライアント側にオフロードし、従来手法に比べ相対的に大規模なファイルシステムを構築した際のメタサーバの負荷を低く抑えることができる分散ファイルシステムにおける名前解決システムを提供することにある。
【０１１４】
本発明の更に他の目的は、ファイルの配置アルゴリズムを選択可能とすることで、ファイルの特性をオブジェクト配置に反映する事ができる分散ファイルシステムにおける名前解決システムを提供することにある。
【０１１５】
本発明の分散ファイル名前解決システムでは、メタデータとしてマッピング情報を保持する代わりに、ファイル毎のオブジェクト配置アルゴリズムＩＤ、及びそのアルゴリズムに対するパラメータを保持し、クライアント側のオブジェクト位置計算部でファイルを構成するオブジェクトＩＤと該当オブジェクトを格納するオブジェクトサーバの位置を計算することにより課題を解決する。
【０１１６】
分散ファイル名前解決システムは、分散ファイルシステムにおける名前解決システムである。分散ファイル名前解決システムは、以下に示すような、複数台のオブジェクトサーバと、メタサーバと、複数台のクライアントとを備えたことを特徴とする。複数台のオブジェクトサーバは、オブジェクトを格納する１つ以上のオブジェクト格納部、及びそれらの管理を行うオブジェクト管理部を備えたことを特徴とする。メタサーバは、ファイルのメタデータを保持する１つ以上のメタデータ格納部、及びそれらの管理を行うメタデータ管理部を備えたことを特徴とする。複数台のクライアントは、ユーザからのファイルアクセスをハンドリングするファイルアクセス部と、メタサーバへのアクセスを管理するメタデータアクセス部と、オブジェクトアクセスを管理するオブジェクトアクセス部と、オブジェクトの位置計算を行うオブジェクト位置計算部を備えたことを特徴とする。
【０１１７】
このとき、オブジェクト位置計算部は、指定されたオブジェクト配置アルゴリズム、及びアルゴリズムに対するパラメータを使用して計算することによりファイルを構成するオブジェクトＩＤ、及び該当オブジェクトの格納位置（例えば、オブジェクトサーバＩＤ）を求めることを特徴とする。
【０１１８】
また、分散ファイル名前解決システムは、オブジェクト配置アルゴリズム、及びパラメータをクライアントの配置アルゴリズム格納部で保持することを特徴とする。
【０１１９】
また、分散ファイル名前解決システムは、オブジェクト配置アルゴリズム、及びパラメータをメタサーバの配置アルゴリズム格納部（又はメタデータ格納部）で保持することを特徴とする。
【０１２０】
また、分散ファイル名前解決システムは、オブジェクト配置アルゴリズムをファイル毎に設定可能であることを特徴とする。
【０１２１】
また、分散ファイル名前解決システムは、オブジェクト位置計算部と、配置アルゴリズム格納部とを備え、ファイルを構成するオブジェクト、及びその格納位置（例えば、オブジェクトサーバＩＤ）をメタデータに含まれるファイルに対応する配置アルゴリズムＩＤ、配置パラメータを使用しクライアント側で計算によって求めるよう動作する。このような構成を採用し、従来のメタサーバでの名前解決処理の一部をクライアント側にオフロードすることにより、本発明の目的を達成することができる。
【０１２２】
分散ファイル名前解決用プログラムは、本発明の分散ファイル名前解決システムにおける動作（分散ファイル名前解決方法）を、コンピュータに実行させるためのプログラムである。なお、分散ファイル名前解決用プログラムは、記憶媒体に格納することが可能である。この場合、分散ファイル名前解決用プログラムは、ＣＰＵ等の処理装置により記憶媒体から読み出されて実行される。
【０１２３】
本発明による第１の効果は、メタサーバの保持するメタデータサイズを削減し、それによってメタサーバのディスク使用量、メモリ使用量、クライアントへのデータ転送容量を削減できることにある。その理由は、ファイルの名前解決をマッピング情報によらず計算によって求めるためである。
【０１２４】
本発明による第２の効果は、分散ファイルファイルシステムが大規模化、すなわちクライアント数を増加させた際にもメタサーバの負荷を抑えることができることにある。その理由は、ファイルの名前解決をマッピング情報によらず計算によって求めることによりメタサーバの負荷をクライアント側にオフロードするためである。
【０１２５】
本発明による第３の効果は、ファイルの特性をオブジェクト配置に反映する事ができることにある。その理由は、ファイルの名前解決の計算に使用するアルゴリズムをファイル毎に設定可能としているためである。
【０１２６】
本発明によれば、複数のオブジェクトサーバ、複数のクライアントから構成される分散ファイルシステムにおける名前解決といった用途に適用できる。
【０１２７】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【０１２８】
なお、本出願は、日本出願番号２００９−００２３３３に基づく優先権を主張するものであり、日本出願番号２００９−００２３３３における開示内容は引用により本出願に組み込まれる。
【図１】
0005382546.tif 000002
【図２】
0005382546.tif 000003
【図３】
0005382546.tif 000004
【図４】
0005382546.tif 000005
【図５】
0005382546.tif 000006
【図６】
0005382546.tif 000007