JP4919851B2 - ファイルレベルの仮想化を行う中間装置 - Google Patents

ファイルレベルの仮想化を行う中間装置 Download PDF

Info

Publication number
JP4919851B2
JP4919851B2 JP2007076867A JP2007076867A JP4919851B2 JP 4919851 B2 JP4919851 B2 JP 4919851B2 JP 2007076867 A JP2007076867 A JP 2007076867A JP 2007076867 A JP2007076867 A JP 2007076867A JP 4919851 B2 JP4919851 B2 JP 4919851B2
Authority
JP
Japan
Prior art keywords
information
unit
request data
shared
file
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
Application number
JP2007076867A
Other languages
English (en)
Other versions
JP2008234568A (ja
Inventor
隆喜 中村
浩二 薗田
潤 根本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007076867A priority Critical patent/JP4919851B2/ja
Priority to CN2007101849608A priority patent/CN101272313B/zh
Priority to US11/972,653 priority patent/US8380815B2/en
Priority to EP20080250166 priority patent/EP1973049A3/en
Publication of JP2008234568A publication Critical patent/JP2008234568A/ja
Application granted granted Critical
Publication of JP4919851B2 publication Critical patent/JP4919851B2/ja
Priority to US13/752,530 priority patent/US8909753B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer 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)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ファイルレベルの仮想化に関する。
ファイルサーバとは、一般に、通信ネットワークを通じてファイルサービスを提供する情報処理装置である。ファイルサーバは、利用者が円滑にファイルサービスを利用できるよう、運用管理される必要がある。格納するファイルの増大に伴い、複数のファイルサーバが導入されると、ファイルサーバの運用管理と各ファイルサーバを利用するクライアントの運用管理コストとが増大する。
クライアントの運用管理コストとは、例えばファイルサーバが提供する共有単位(論理的な公開単位)のマウント処理である。新たなファイルサーバが導入されて、共有単位の数が増えれば、それに伴いクライアントで行うマウント作業の回数も増える。このコストを低減するため、複数のファイルサーバが提供する複数の共有単位を一つの名前空間として仮想化する技術、つまり、ファイルレベルの仮想化技術がある。その一つの名前空間は、グローバルネームスペース(GNS)とも呼ばれる。
ファイルレベルの仮想化技術の一つとして、クライアントとファイルサーバとの間に論理的に配置する情報処理装置(以下、「中間装置」)を用いる方法が知られている(例えば特許文献1)。中間装置は、複数のファイルサーバが提供する複数の共有ディレクトリを統合し、擬似的なファイルシステムを構築し、クライアントから所定のファイル等のオブジェクトに対して要求があった場合に、当該オブジェクトが存在するファイルサーバへ要求を転送する処理を行う。
特開2003−203029号公報
クライアントがファイルサーバへ所望のオブジェクトに対するオペレーションを要求する際、一般に、その所望のオブジェクトを同定するため、オブジェクトIDと呼ばれる識別子が使用される。例えば、ファイル共有プロトコルがNFS(Network File System)の場合は、ファイルハンドルと呼ばれるオブジェクトIDが使用される。
オブジェクトIDは、ファイルサーバの内部ルールにより生成されるため、複数のファイルサーバの共有ディレクトリを統合した場合は、このオブジェクトIDが競合する可能性がある。特許文献1では、ファイルサーバの識別情報とアルゴリズムの識別情報とをオブジェクトIDに挿入する事によって、この競合を回避している。
しかし、特許文献1に開示の技術では、中間装置で必ずオブジェクトIDの変換を行う必要があるため、中間装置に処理負荷が集中し、中間装置の処理性能がネックとなって、システム全体の性能(クライアントに対する応答性能)が低下してしまうという問題がある。
また、特許文献1に開示の技術では、データをファイルサーバ間で移動するファイルシステムマイグレーションを実行する際、中間装置がオブジェクトIDの変換テーブル(移動元と移動先とを対応付けたテーブル)をファイル単位で保持しておく必要がある。従って、中間装置がクライアントからの要求の振り分け先を決定する際に、ファイル数に比例した膨大な数のエントリが登録されたテーブルを参照する必要がある。このため、中間装置の処理負荷が高くなってしまう。
従って、本発明の目的は、ファイルレベルの仮想化を行う中間装置の処理負荷を軽減することにある。
本発明の更なる目的は、後の説明から明らかになるであろう。
クライアントと中間装置との間でやり取りされるオブジェクトID中に、共有情報が挿入されるようにする。全ての中間装置と一部の末端装置が、オブジェクトIDを生成する際、共有情報を含んだオブジェクトIDを生成して発行する。少なくとも末端装置はファイルサーバである。中間装置がファイルサーバとしての機能を有している場合、他の中間装置は末端装置となり得る。
共有情報は、論理的な公開の単位である共有単位を示す情報であり、例えば、その共有単位を同定するための識別子(共有ID)である。共有単位には、一以上のオブジェクト、一般的には二以上のオブジェクトが含まれる。
中間装置の記憶資源に、共有単位毎に転送先装置を表した転送制御情報を記憶させる。転送制御情報は、例えばテーブルであり、共有情報と、転送先装置(中間装置或いは末端装置)に対応した装置情報との対応関係を示す。共有情報と装置情報は、1対1である必要は無く、1対多であっても良い。
中間装置は、オブジェクトIDを有する要求データをクライアントから受信し、上記の転送制御情報を参照することで転送先装置を特定し、特定した転送先装置に要求データを転送する。具体的には、中間装置は、そのオブジェクトID中の共有情報を用いて転送制御情報を参照し、その共有情報に対応した一以上の装置情報から一の装置情報を選択し、選択した一の装置情報から特定される末端装置又は他の中間装置に、要求データを転送する。
一つの実施形態では、中間装置に、要求データ受信部と、要求転送処理部とを備える。要求データ受信部は、共有単位を示す共有情報(例えばID)を含んだオブジェクトIDを有する要求データをクライアント又は他の中間装置から受信する。要求転送処理部は、要求データが有するオブジェクトID中の共有情報を用いて、転送制御情報を参照する。転送制御情報には、各共有単位について、共有情報と、その共有単位を管理するファイルサーバである一以上の末端装置又は中間装置をそれぞれ表す一以上の装置情報(例えば装置ID)とが対応付けられている。要求転送処理部は、受信した要求データが有するオブジェクトID中の共有情報に対応した一以上の装置情報から一の装置情報を選択し、その選択した装置情報に対応した末端装置又は他の中間装置へ、要求データを転送する。
一つの実施形態では、要求転送処理部は、選択した一の装置情報に対応する装置が、他の中間装置、又は、共有情報を含んだフォーマットのオブジェクトIDの解釈が可能な末端装置であれば、受信した要求データをそのまま該他の中間装置又は該末端装置へ転送することができる。
一つの実施形態では、転送制御情報には、共有情報を含んだフォーマットのオブジェクトIDの解釈が不可能な特定の末端装置に対応した装置情報に、その特定の末端装置とのやり取りにおいてどのような方法でオブジェクトIDを変換するかを特定するためのアルゴリズム情報が対応付けられる。要求転送処理部は、選択した一の装置情報に対応したアルゴリズム情報を転送制御情報から特定し、特定したアルゴリズム情報に対応した変換アルゴリズムで、要求データに含まれるオブジェクトIDを変換し、その変換後のオブジェクトIDを有した要求データを、選択した一の装置情報に対応した特定の末端装置に転送することができる。
一つの実施形態では、要求データ中のオブジェクトIDに、そのオブジェクトID中の共有情報に対応した共有単位を管理する末端装置又は中間装置においてオブジェクトを同定するためのオブジェクト固有値が含まれる。中間装置は、更に、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトIDを含んだ応答データを受信する応答データ受信部と、受信した応答データをクライアント又は他の中間装置に送信する応答処理部とを備えることができる。要求転送処理部は、選択した一の装置情報に対応したアルゴリズム情報に対応する変換アルゴリズムに従って、要求データが有するオブジェクトID中の共有情報を除去して、特定の末端装置に、変換後のオブジェクトIDを有する要求データを転送することができる。応答処理部は、特定の末端装置から受信した応答データ中のオブジェクトIDに、上記除去した共有情報を含め、その共有情報を含んだそのオブジェクトIDを有する応答データをクライアント又は他の中間装置に送信することができる。この実施形態では、例えば、オブジェクトIDのサイズが固定長であっても可変長であっても良い。
一つの実施形態では、要求転送処理部は、要求データが有するオブジェクトID中の共有情報を除去することに加えて、そのオブジェクトID中のオブジェクト固有値のサイズを第一のサイズから第二のサイズに拡大する第一の変換処理を行い、サイズ拡大後のオブジェクト固有値をオブジェクトIDとして含んだ前記要求データを前記特定の末端装置に送信することができる。応答処理部は、応答データに含まれるオブジェクト固有値のサイズを第二のサイズから第一のサイズに縮小する第二の変換処理を行い、サイズ縮小後のオブジェクト固有値と前記除去された共有情報とを含んだ情報群を前記オブジェクトIDとして含んだ応答データを、クライアント又は他の中間装置に送信することができる。この実施形態では、例えば、オブジェクトIDのサイズが固定長である。
一つの実施形態では、中間装置が、更に、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトIDを含んだ応答データを受信する応答データ受信部と、受信した応答データをクライアント又は他の中間装置に送信する応答処理部とを備える。応答処理部は、第一の共有単位に含まれる第一のオブジェクトの第一のオブジェクトIDと第二の共有単位に含まれ前記第一のオブジェクトと仮想的に同一である第二のオブジェクトの第二のオブジェクトIDとの対応関係を示す接続管理情報を参照し、受信した応答データ中のオブジェクトIDがその接続管理情報に含まれているか否かを判定し、そのオブジェクトIDがその接続管理情報に含まれている場合、そのオブジェクトIDに対応する他のオブジェクトIDを取得し、応答データに含まれるオブジェクトIDをその取得した他のオブジェクトIDへ変更することができる。
一つの実施形態では、中間装置は、オブジェクトを管理しそのオブジェクトを利用するためのファイルサービスを提供するオブジェクト管理部を更に備えることができる。要求転送処理部が、要求データが有するオブジェクトIDに含まれている共有情報を用いて転送制御情報を参照した場合に、そのオブジェクトIDに対応したオブジェクトがオブジェクト管理部により管理されていると判断したならば、オブジェクト管理部に要求データに従うオペレーションを実行させることができる。ここで、そのオブジェクトIDに対応したオブジェクトがオブジェクト管理部により管理されているとの判断は、例えば、転送制御情報に、その共有情報と対応する装置情報が含まれていない場合や、装置情報が自分を表している場合に、行われて良い。要求データに従うオペレーションとしては、例えば、自分が管理するオブジェクトに対する更新(ライト)又は参照(リード)とすることができる。
一つの実施形態では、中間装置は、更に、アクセスの保留の対象となる共有単位に対応した共有情報を記憶領域に登録する共有情報登録部と、受信した要求データが有するオブジェクトID中の共有情報に一致する共有情報が記憶領域に登録されているか否かの判定を行う保留判定部と、判定の結果が肯定的であれば(つまり登録されていると判定されたならば)、オブジェクトIDに対応したオブジェクトへのアクセスができない旨を示す応答データを生成してクライアント又は他の中間装置に送信する応答処理部とを備えることができる。要求転送処理部は、上記判定の結果が否定的であれば、転送制御情報を基に、要求データの転送を行うことができる。
一つの実施形態では、共有情報登録部は、マイグレーションの対象として指定された共有単位に対応する共有情報を記憶領域に登録することができる。
一つの実施形態では、中間装置は、更に、名前空間定義情報の更新の要求に従い名前空間定義情報を更新する第一の更新部と、名前空間定義情報の更新を基に、転送制御情報を、決定された共有情報を含んだ転送制御情報に更新する第二の更新部と備えることができる。中間装置は、更に、仮想的な名前空間の構成の定義に関する名前空間定義情報の更新の要求を受け付ける更新受付部と、名前空間定義情報の更新に関わる共有単位のための共有情報を決定する共有情報決定部と、名前空間定義情報の更新に関わる情報と、決定された共有情報と、他の中間装置での名前空間定義情報を更新することの要求とを、該他の中間装置に送信する定義情報同期部とを備えることもできる。
一つの実施形態では、中間装置は、マイグレーション対象として指定された共有情報に対応する共有単位をアンマウントするアンマウント部を更に備えることができる。また、中間装置は、マイグレーション先として指定された末端装置又は中間装置が自分である場合には、アンマウントされている状態の前記マイグレーション対象の共有単位をマウントするマウント部、を更に備えることができる。第一の更新部は、マイグレーション対象の共有単位のアンマウントとマウントとに関わる、名前空間定義情報の更新を実行することができる。第二の更新部は、名前空間定義情報の更新を基に、転送制御情報を、マイグレーション対象として指定された共有情報とマイグレーション先として指定された末端装置又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新することができる。
一つの実施形態では、第一の更新部は、リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定された末端装置又は中間装置に関する情報とを前記名前空間定義情報で対応付けることができる。第二の更新部は、名前空間定義情報の更新を基に、前記転送制御情報を、リプリケーション対象として指定された共有情報にリプリケーション先として指定された末端装置又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新することができる。中間装置は、更に、リプリケーション対象の共有単位の複製をリプリケーション先として指定された末端装置又は中間装置にマウントさせる要求をその末端装置又は中間装置に送信する複製マウント要求部を更に備えることができる。中間装置は、リプリケーション対象の共有単位の複製を作成させる複製作成部と、その共有単位の複製を、リプリケーション先として指定された自分にマウントするマウント部とをさらに備えることができる。
一つの実施形態では、中間装置は、応答データ受信部と、応答処理部とをさらに備えることができる。応答データ受信部は、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトIDを含んだ応答データを受信することができる。応答処理部は、その受信した応答データが有するオブジェクトIDに共有情報が含まれていない場合、末端装置又は他の中間装置を表す装置情報に対応した共有情報を転送制御情報から取得し、取得した共有情報を、受信した応答データが有するオブジェクトIDに含め、共有情報を含んだオブジェクトIDを有する応答データを、要求データの送信元に送信することができる。
一つの実施形態では、中間装置は、オブジェクトID通知部を更に備えることができる。オブジェクトID通知部は、クライアントからオブジェクト問合せを受信し、そのオブジェクト問合せで指定されているオブジェクトに固有の値であるオブジェクト固有値と、そのオブジェクトを有する共有単位を示す共有情報とを含んだオブジェクトIDを生成し、そのオブジェクトIDを前記クライアントに通知することができる。要求データ受信部は、その通知されたオブジェクトIDを含んだ要求データを受信することができる。
上述した各部(要求データ受信部、要求転送処理部、応答データ受信部、応答処理部など)は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
以下、本発明の幾つかの実施形態について、図面を参照して詳細に説明する。
<第一の実施形態>。
図1は、本発明の第一の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
少なくとも1つのクライアント100と、少なくとも1つの中間装置200と、少なくとも1つの末端装置300とが、通信ネットワーク(例えばLAN(Local Area Network))100に接続される。末端装置300が一つも無くても良い。
末端装置300は、クライアント100に、ファイルの作成や削除、ファイルの読出しや書込み、ファイルの移動等のファイルサービスを提供するファイルサーバである。
クライアント100は、末端装置300又は中間装置200が提供するファイルサービスを利用する装置である。
中間装置200は、クライアント100と末端装置300との中間に位置し、クライアント100から末端装置300への要求と、末端装置300からクライアント100への応答とを中継する。クライアント100から中間装置200および末端装置300への要求は、何らかの処理(例えば、ファイルやディレクトリ等のオブジェクトの取得等)を要求するメッセージ信号であり、中間装置200および末端装置300からクライアント100への応答は、要求に対して応答するメッセージ信号である。なお、中間装置200は、クライアント100と末端装置300との通信を中継するように、それらの間に論理的に位置すればよい。クライアント100、中間装置200および末端装置300が同一の通信ネットワーク101に接続されているが、論理的には、中間装置200は、各クライアント100と各末端装置300との間に配置されており、クライアント100と末端装置300との通信を中継する。
中間装置200は、要求や応答の中継機能のみならず、クライアント100にファイルサービスを提供するファイルサーバ機能も具備する。中間装置200は、ファイルサービスを提供する際、仮想化された名前空間を構築して、その仮想的な名前空間をクライアント100に提供する。仮想的な名前空間は、複数の中間装置200や末端装置300のファイルシステムのうち、共有可能な全部又は一部を統合して、単一の擬似的なファイルシステムとしたものである。具体的には、例えば、或る装置200又は300が管理するファイルシステム(ディレクトリツリー)の一部(X)と他の装置200又は300が管理するファイルシステム(ディレクトリツリー)の一部(Y)とが共有可能であった場合に、中間装置200は、XとYとを含んだ単一の擬似的なファイルシステム(ディレクトリツリー)を構築して、クライアント100に提供することができる。この場合のXとYとを含んだ単一の擬似的なファイルシステム(ディレクトリツリー)が、仮想化された名前空間である。仮想化された名前空間は、一般的に、GNS(グローバルネームスペース)と呼ばれる。そのため、以下の説明において、仮想化された名前空間を「GNS」と呼ぶこともある。一方、中間装置200や末端装置300の各々が管理しているファイルシステムを、「ローカルファイルシステム」と呼ぶことがある。特に、例えば、中間装置200にとって、その中間装置200で管理されているローカルファイルシステムのことを、「自ローカルファイルシステム」と呼び、他の中間装置200又は末端装置300で管理されているローカルファイルシステムは、「他ローカルファイルシステム」と呼ぶことがある。
また、以下の説明において、ローカルファイルシステムの全部又は一部であり共有可能な部分(上記の例では、XとY)を、すなわち、ローカルファイルシステムの論理的な公開単位を、「共有単位」と呼ぶことがある。この実施形態では、各共有単位に、共有単位を同定するための識別子である共有IDが割当てられ、中間装置200は、共有IDを利用することにより、クライアント100からのファイルアクセス要求の転送を行うことができる。共有単位には、一以上のオブジェクト(例えばディレクトリやファイル)が含まれる。
また、この実施形態では、複数の中間装置200の中の一つが他の中間装置200を制御することができる。以下、その一つの中間装置200を「親中間装置200p」と呼び、親中間装置によって制御される中間装置200を「子中間装置200c」と呼ぶ。この親子関係は、様々な方法により決定される。例えば、最初に起動された中間装置200を親中間装置と決定し、その後に起動された中間装置200を子中間装置200cと決定することができる。親中間装置200pは、例えば、マスタ中間装置或いはサーバ中間装置と呼ばれてもよいし、子中間装置200cは、例えば、スレイブ中間装置或いはクライアント中間装置と呼ばれても良い。
図2は、中間装置200の構成例を示すブロック図である。
中間装置200は、少なくとも1つのプロセッサ(例えばCPU)201と、メモリ202と、メモリ202に対する入出力のバスであるメモリ-入出力バス204と、メモリ202、記憶装置206及び通信ネットワーク101に対する入出力を制御する入出力コントローラ205と、記憶装置206とを備える。メモリ202は、プロセッサ201に実行されるコンピュータプログラムとして、例えば、構成情報管理プログラム400、スイッチプログラム600及びファイルシステムプログラム203を記憶する。記憶装置206は、一以上の物理的な記憶装置(例えばハードディスク或いはフラッシュメモリ等)の記憶空間を基に形成された論理的な記憶装置(論理ボリューム)であっても良いし、物理的な記憶装置であっても良い。記憶装置206は、ファイル等のデータを管理する少なくとも1つのファイルシステム207を備える。ファイルシステムプログラム203がプロセッサ201で実行されることにより、ファイルシステム207に対するファイルの格納や、ファイルシステム207からのファイルの読出しを行うことができる。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサによって処理が行われるものとする。
構成情報管理プログラム400は、中間装置200が親中間装置200pとしても子中間装置200cとしても振舞うことができるよう構成されている。以下、中間装置200を親中間装置200pとして振舞わせる場合の構成情報管理プログラム400を「親構成情報管理プログラム400p」と表記し、子中間装置200cとして振舞わせる場合の構成情報管理プログラム400を「子構成情報管理プログラム400c」と表記する。構成情報管理プログラム400は、親中間装置200p及び子中間装置200cとしてのいずれかのみに振舞うよう構成されていても良い。構成情報管理プログラム400及びスイッチプログラム600の詳細については、後述する。
図3は、末端装置300の構成例を示すブロック図である。
末端装置300は、少なくとも1つのプロセッサ301と、メモリ302と、メモリ−入出力バス304と、入出力コントローラ305と、記憶装置306とを備える。メモリ302は、ファイルシステムプログラム303を備える。同図には記載されていないが、メモリ302は、さらに構成情報管理プログラム400を備えていてもよい。記憶装置306は、ファイルシステム307を記憶する。
これらの構成要素は、中間装置200における同一名の構成要素とそれぞれ基本的に同一であるので、説明を省略する。なお、記憶装置306は、末端装置300の外に存在してもよい。すなわち、プロセッサ301を有する末端装置300と、記憶装置306とが、分かれていても良い。
図4は、親構成情報管理プログラム400pの構成例を示すブロック図である。
親構成情報管理プログラム400pは、GNS構成情報管理サーバ部401pと、中間装置情報管理サーバ部403と、構成情報通信部404とを備え、共有ID空き管理リスト402と、中間装置構成情報リスト405と、GNS構成情報テーブル1200pとを参照する機能を有する。リスト402及び405や、GNS構成情報テーブル1200pは、メモリ202に記憶されていて良い。
GNS構成情報テーブル1200pは、クライアント200に提供するGNSの構成の定義が記録されたテーブルである。GNS構成情報テーブル1200pの詳細については、後述する。
共有ID空き管理リスト402は、現在割当てることができる共有IDを管理するための電子的なリストである。共有ID空き管理リスト402には、例えば、現在利用されていない共有IDが登録されてもよいし、反対に、現在利用されている共有IDが登録されてもよい。
中間装置構成情報リスト405は、一以上の中間装置200の各々に関する情報(例えば、中間装置200を同定するためのID)が登録される電子的なリストである。
図5は、子構成情報管理プログラム400cの構成例を示すブロック図である。
子構成情報管理プログラム400cは、GNS構成情報管理クライアント部401cと、構成情報通信部404とを備え、GNS構成情報テーブルキャッシュ1200cに情報を登録する機能を有する。
GNS構成情報テーブルキャッシュ1200cは、例えば、メモリ202(或いはプロセッサ201のレジスタ)に用意される。このキャッシュ1200cには、GNS構成情報テーブル1200pと、基本的に同じ内容の情報が登録される。具体的には、親構成情報管理プログラム400pは、GNS構成情報テーブル1200pの内容を子中間装置200cへ通知し、子中間装置200cの子構成情報管理プログラム400cは、その通知された内容を、GNS構成情報テーブルキャッシュに登録する。
図6は、スイッチプログラム600の構成例を示すブロック図である。
スイッチプログラム600は、クライアント通信部606と、中間・末端装置通信部605と、ファイルアクセス管理部700と、オブジェクトID変換処理部604と、擬似ファイルシステム601とを備える。
クライアント通信部606は、クライアント100からの要求(以下、「要求データ」と呼ぶこともある)を受信し、受信した要求データをファイルアクセス管理部700に通知する。また、クライアント通信部606は、ファイルアクセス管理部700から通知された、クライアント100からの要求データに対する応答(以下、「応答データ」と呼ぶこともある)を、クライアント100へ送信する。
中間・末端装置通信部605は、ファイルアクセス管理部700から出力されたデータ(クライアント100からの要求データ)を、中間装置200または末端装置300へ送信する。また、中間・末端装置通信部405は、中間装置200または末端装置300からの応答データを受信し、受信した応答データをファイルアクセス管理部700へ通知する。
ファイルアクセス管理部700は、クライアント通信部606から通知された要求データを解析し、その要求データの処理方法を決定する。そして、決定された処理方法に基づいて、ファイルアクセス管理部700は、中間・末端装置通信部605へその要求データを通知する。また、ファイルアクセス管理部700は、クライアント100からの要求が自分自身の有するファイルシステム207(自ローカルファイルシステム)に対する要求である場合、応答データを生成し、その応答データをクライアント通信部606へ通知する。ファイルアクセス管理部700の詳細については、後述する。
オブジェクトID変換処理部604は、クライアント100から受信した要求データに含まれるオブジェクトIDを、末端装置300が認識できる形式に変換し、また、末端装置300から受信した応答データに含まれるオブジェクトIDを、クライアント100が認識できる形式に変換する。この変換は、後述するアルゴリズム情報に基づいて行われる。
擬似ファイルシステム601は、中間装置200や末端装置300のファイルシステムデータ207の全部又は一部を統合して、単一の擬似的なファイルシステムとしたものである。例えば、擬似ファイルシステム601には、ルートディレクトリ及び所定のディレクトリが構成され、擬似ファイルシステム601は、その所定のディレクトリに、中間装置200や末端装置300が管理するディレクトリをマッピングすることにより、作成される。
図7は、ファイルアクセス管理部700の構成例を示すブロック図である。
ファイルアクセス管理部700は、要求データ解析部702と、要求データ処理部701と、応答データ出力部703とを備え、スイッチ情報管理テーブル800と、サーバ情報管理テーブル900と、アルゴリズム情報管理テーブル1000と、接続ポイント管理テーブル1100と、アクセス保留共有IDリスト704とを参照する機能を有する。
スイッチ情報管理テーブル800、サーバ情報管理テーブル900、アルゴリズム情報管理テーブル1000及び接続ポイント管理テーブル1100については、後述する。
アクセス保留共有IDリスト704は、アクセスが保留されている共有IDが登録される電子的なリストである。例えば、マイグレーションの準備中又は実施中に、マイグレーションの対象となっている共有単位の共有IDが、アクセス保留共有IDリスト704に登録され、その登録された共有単位にあるオブジェクトへのアクセスが保留される。
要求データ解析部702は、クライアント通信部606から通知された要求データを解析する。そして、要求データ解析部702は、通知された要求データからオブジェクトIDを取得し、そのオブジェクトIDから、共有IDを取得する。
要求データ処理部701は、要求データ解析部702が取得した共有IDに基づいて、スイッチ情報管理テーブル800と、サーバ情報管理テーブル900と、アルゴリズム情報管理テーブル1000と、接続ポイント管理テーブル1100と、アクセス保留共有IDリスト704とのうちの任意の情報を参照し、要求データを処理する。
応答データ出力部703は、要求データ処理部701から通知された応答データをクライアント100が応答可能な形式にして、クライアント通信部606へ出力する。
図8は、スイッチ情報管理テーブル800の構成例を示す図である。
スイッチ情報管理テーブル800は、共有ID801と、サーバ情報ID802と、アルゴリズム情報ID803との組によって構成されたエントリを有するテーブルである。共有ID801は、共有単位を同定するためのIDである。サーバ情報ID802は、サーバ情報を同定するためのIDである。アルゴリズム情報ID803は、アルゴリズム情報を同定するためのIDである。中間装置200は、オブジェクトIDから取得された共有IDに一致する共有ID801に対応したサーバ情報ID802及びアルゴリズム情報ID803を取得することができる。本テーブル800には、一つの共有ID801に対して複数のサーバ情報ID802及びアルゴリズム情報ID803の組が登録されても良い。
図9は、サーバ情報管理テーブル900の構成例を示す図である。
サーバ情報管理テーブル900は、サーバ情報ID901とサーバ情報902との組によって構成されたエントリを有するテーブルである。サーバ情報902は、例えば、中間装置200又は末端装置300のIPアドレスや、ソケット構造体などである。中間装置200は、取得されたサーバ情報ID702に一致するサーバ情報ID901に対応したサーバ情報902を取得し、そのサーバ情報902から、クライアント100からの要求の処理先(例えば転送先)を特定することできる。
図10は、アルゴリズム情報管理テーブル1000の構成例を示す図である。
アルゴリズム情報管理テーブル1000は、アルゴリズム情報ID1001と、アルゴリズム情報1002との組によって構成されたエントリを有するテーブルである。アルゴリズム情報1002は、オブジェクトIDの変換方式を示す情報である。中間装置200は、取得されたアルゴリズム情報ID1001に一致するアルゴリズム情報ID1001に対応したアルゴリズム情報1002を取得し、そのアルゴリズム情報1002から、オブジェクトIDをどのように変換するかを特定することができる。
なお、本実施形態では、スイッチ情報管理テーブル800とサーバ情報管理テーブル900とアルゴリズム情報管理テーブル1000は、別々のテーブルとして構成されたが、スイッチ情報管理テーブル800に、サーバ情報902とアルゴリズム情報1002とを含めることで、これらが一つのテーブルとして構成されてもよい。
図11は、接続ポイント管理テーブル1100の構成例を示す図である。
接続ポイント管理テーブル1100は、接続元オブジェクトID1101と、接続先共有ID1102と、接続先オブジェクトID1103との組で構成されたエントリを有するテーブルである。このテーブルが参照されることによって、中間装置200は、或る共有単位から別の共有単位へ跨るアクセスの場合も、クライアント100に対して単一の共有単位へのアクセス手順のみでのアクセスが可能となる。なお、ここでの接続元オブジェクトID1101や接続先オブジェクトID1103は、オブジェクトを同定する識別子(例えばファイルハンドル等)であり、クライアント100と中間装置200でやり取りされるものでもよいし、両者間でやり取りされるものでなくともオブジェクトを同定できるものであればよい。
図12は、GNS構成情報テーブル1200の構成例を示す図である。
GNS構成情報テーブル1200は、共有ID1201と、GNSパス名1202と、サーバ名1203と、共有パス名1204と、共有設定情報1205と、アルゴリズム情報ID1206との組で構成されたエントリを有するテーブルである。このテーブル1200でも、スイッチ情報管理テーブル800の場合と同様に、同一の共有ID1201を含んだ複数のエントリを持つことができる。共有ID1201は、共有単位を同定するためのIDである。GNSパス名1202は、共有ID1201に対応する共有単位をGNSに統合するパスである。サーバ名1203は、共有ID1201に対応する共有単位を保有するサーバ名である。共有パス名1204は、共有ID1201に対応する共有単位のサーバ上でのパス名である。共有設定情報1205は、共有ID1201に対応する共有単位に関する情報(例えば、共有単位のトップディレクトリ(ルートディレクトリ)に設定する情報、具体的には、例えば、読み込み専用を示す情報や、アクセス可能なホストの制限に関する情報など)である。アルゴリズム情報ID1206は、共有ID1201に対応する共有単位のオブジェクトIDの変換をどのように行うかを示すアルゴリズム情報の識別子である。
図13Aは、拡張形式OKケースでやり取りされるオブジェクトIDの一例を示す図である。図13Bは、拡張形式NGケースでやり取りされるオブジェクトIDを示す図である。
拡張形式OKケースとは、共有ID形式フォーマットのオブジェクトIDを末端装置300が解釈できる場合であり、拡張形式NGケースとは、共有ID形式フォーマットのオブジェクトIDを末端装置300が解釈できない場合であり、それぞれの場合で、装置間でやり取りされるオブジェクトIDが異なる。
共有ID形式のフォーマットとは、オリジナルオブジェクトIDが拡張されたオブジェクトIDのフォーマットであり、3つのフィールドが用意されている。第一のフィールドには、オブジェクトID形式を示す情報であるオブジェクトID形式1301が書かれる。第二のフィールドには、共有単位を同定するための共有ID1302が書かれる。第三のフィールドには、拡張形式OKケースでは、図13Aに示すように、オリジナルオブジェクトID1303が書かれ、拡張形式NGケースでは、図13Bの(a)に示すように、変換後のオリジナルオブジェクトID1304が書かれる。
共有ID形式フォーマットのオブジェクトIDを生成できる装置は、中間装置200と一部の末端装置300である。拡張形式OKケースでは、クライアント100と中間装置200との間、中間装置200と中間装置200との間及び中間装置200と末端装置間300との間の全てにおいて、共有ID形式フォーマットが利用され、やり取りされるオブジェクトIDのフォーマットは不変である。前述したように、拡張形式OKケースでは、第三のフィールドに、オリジナルオブジェクトID1303が書かれるが、それは、オブジェクトを保有する装置200又は300がそのオブジェクトをその装置200又は300内で同定するための識別子(例えばファイルのID)である。
一方、拡張形式NGケースでは、クライアント100と中間装置200との間、及び中間装置200と中間装置200との間では、図13Bの(a)に示すように、共有ID形式フォーマットのオブジェクトIDがやり取りされるが、第三のフィールドには、前述したように、変換後のオリジナルオブジェクトID1304が書かれる。そして、中間装置200と末端装置300との間では、図13Bの(b)に示すように、末端装置300が解釈できるオリジナルオブジェクトID1305でやり取りされる。即ち、拡張形式NGケースでは、中間装置200が、末端装置300からオリジナルオブジェクトID1305を受けた場合、そのオリジナルオブジェクトID1305を、共有形式フォーマットの第三のフィールドに記録する情報(変換後のオブジェクトID1304)に変換する正変換を行う。また、中間装置200は、共有形式フォーマットのオブジェクトIDを受けた場合、第三のフィールドに書かれている情報をオリジナルオブジェクトID1305に変換する逆変換を行う。正変換及び逆変換のいずれも、上述したアルゴリズム情報1002に基づいて行われる。
具体的には、例えば、変換後のオリジナルオブジェクトID1304は、オリジナルオブジェクトID1305それ自体、又は、オリジナルオブジェクトID1305の全部又は一部についてアルゴリズム情報1002に基づく変換処理が行われたものである。例えば、オブジェクトIDが可変長であり、オリジナルオブジェクトID1305の長さに第一及び第二フィールドの長さを加えた長さが、オブジェクトIDの最大長以下であれば、第三のフィールドに、オリジナルオブジェクトID1305が変換後のオリジナルオブジェクトID1304として書込まれても良い。一方、例えば、オブジェクトIDのデータ長が固定長とされており、オブジェクトID形式1301及び共有ID1302を追加することによってその固定長をオーバーしてしまう場合は、オリジナルオブジェクトID1305の全部又は一部についてアルゴリズム情報1002に基づく変換処理が行われる。この場合は、例えば、不必要なデータを削除する等して、変換後のオリジナルオブジェクトID1304がオリジナルオブジェクトID1305のデータ長よりも短くなるように変換される。
次に、中間装置200の動作について説明する。中間装置200は、上述したように、複数の共有単位を統合して単一の擬似的なファイルシステムとしたもの、つまりGNSをクライアント100に提供する。
図14は、中間装置200がGNSを提供する処理のフローチャートである。
まず、クライアント通信部606は、クライアント100からオブジェクトへのアクセス要求を含んだ要求データを受信する。要求データには、アクセス対象のオブジェクトを同定するためのオブジェクトIDが含まれている。クライアント通信部606は、受信した要求データをファイルアクセス管理部700へ通知する。オブジェクトへのアクセス要求は、例えば、NFSプロトコルのリモートプロシージャーコール(RPC)を利用して行われる。要求データの通知を受けたファイルアクセス管理部700は、要求データからオブジェクトIDを抽出する。そして、ファイルアクセス管理部700は、オブジェクトIDのオブジェクトID形式1301を参照して、このオブジェクトIDのフォーマットが、共有ID形式フォーマットであるかどうかを判定する(S101)。
共有ID形式フォーマットでなかった場合は(S101:NO)、従来のファイルサービス処理が行われ(S102)、その後、処理が終了する。
共有ID形式フォーマットであった場合は(S101:YES)、ファイルアクセス管理部700は、抽出したオブジェクトIDに含まれる共有ID1302を取得する。そして、ファイルアクセス管理部700は、アクセス保留共有IDリスト704に登録された共有IDの中に、取得した共有ID1302と一致するものがあるかどうかを判定する(S103)。
アクセス保留共有IDリスト704に登録されているものと一致する場合は(S103:YES)、ファイルアクセス管理部700は、クライアント通信部606を介して、要求データに含まれるオブジェクトIDに対応したオブジェクトへのアクセスが保留されている旨を示す応答データをクライアント100へ送信し(S104)、その後、処理が終了する。
アクセス保留共有IDリスト704に登録されているものと一致しない場合は(S103:NO)、ファイルアクセス管理部700は、取得した共有ID1302と一致する共有ID801を含んだエントリがスイッチ情報管理テーブル800にあるかどうかを判定する(S105)。ここで、前述したように、共有ID801が、取得した共有ID1302と一致するエントリは、複数存在する場合もある。
一致するエントリがない場合は(S105:NO)、受信した要求データは、この中間装置200が処理を行うべきものと判断され、ファイルシステムプログラム203が実行されて、GNSローカル処理が行われる(S300)。GNSローカル処理の詳細については、後述する。
一致するエントリがある場合は(S105:YES)、受信した要求データは、この中間装置200以外の装置が処理を行うべきものと判断され、共有ID801が一致するエントリから、一組のサーバ情報ID802とアルゴリズム情報ID803との組が取得される(S106)。一致するエントリが複数ある場合には、例えば、その複数のエントリの中から、ラウンドロビンによって又はあらかじめ計測しておいた応答時間に基づいて、一のエントリが選択され、その選択されたエントリから、サーバ情報ID802とアルゴリズム情報ID803とが取得される。
次に、ファイルアクセス管理部700は、サーバ情報管理テーブル900を参照し、取得したサーバ情報ID802と一致するサーバ情報ID901に対応するサーバ情報902を取得する。同様に、ファイルアクセス管理部700は、アルゴリズム情報管理テーブル1000を参照し、取得したアルゴリズム情報ID803と一致するアルゴリズム情報ID1001に対応するアルゴリズム情報1002を取得する(S111)。
その後、ファイルアクセス管理部700は、アルゴリズム情報1002が所定値(例えば0という値)でなければ、オブジェクトID変換処理部604に指示して、取得したアルゴリズム情報1002に基づく逆変換を行わせ(S107)、一方、アルゴリズム情報1002が所定値であれば、このS107をスキップする。アルゴリズム情報1002が所定値であるということは、本実施形態では、他の中間装置200に要求データが転送されることを意味する。つまり、中間装置200間での転送では、要求データは単に転送されるだけであって、変換処理は何ら行われない。すなわち、アルゴリズム情報1002には、何も変換しないアルゴリズムを意味する情報(つまり上記所定値)や、オブジェクトID形式1301及び共有ID1302を追加又は削除するのみのアルゴリズムを示す情報や、オブジェクトID形式1301及び共有IDフィールド1302を追加又は削除し、更に変換後のオリジナルオブジェクトID1304からオリジナルオブジェクトID1303を復元するアルゴリズムを示す情報等がある。
次に、ファイルアクセス要求レベルでトランザクション管理を行っているプロトコルであって、要求データ中にトランザクションIDが含まれる場合は、ファイルアクセス管理部700は、そのトランザクションIDを保存し、要求データの転送先装置200又は300に対するトランザクションIDを付与する(S108)。転送先装置200又は300は、サーバ情報管理テーブル900を参照し、取得した組のサーバ情報ID901に対応するサーバ情報902から同定することができる。なお、上記の条件に満たない場合(例えば、要求データ中にトランザクションIDが含まれない場合)は、このS108はスキップされて良い。
次に、ファイルアクセス管理部700は、中間・末端装置通信部605を介して、S111において取得したサーバ情報902に基づいて特定された装置200又は300へ、受信した要求データそれ自体、或いは、変換後のオリジナルオブジェクトID1304を含む要求データを、送信する(S109)。その後、中間・末端装置通信部605は、送信先の装置からの応答データの受信を待つ(S110)。
中間・末端装置通信部605が応答データを受信すると、応答処理が行われる(S200)。応答処理の詳細については、図15を用いて説明する。
図15は、中間装置200が応答データを受信した際の処理(応答処理)のフローチャートである。
中間・末端装置通信部605は、末端装置300もしくは他の中間装置200より応答データを受信する(S201)。中間・末端通信部605は、受信した応答データをファイルアクセス管理部700へ通知する。
ファイルアクセス管理部700は、応答データ中にオブジェクトIDがある場合は、オブジェクトID変換処理部604に対して、応答データに含まれるオブジェクトIDの変換を指示する。指示を受けたオブジェクトID変換処理部604は、S107において参照されたアルゴリズム情報1002に基づいて、オブジェクトIDを正変換する(S202)。もし、そのアルゴリズム情報1002が所定値であれば、このS2002はスキップされる。
ファイルアクセス要求レベルでトランザクション管理が行われるプロトコルで、応答データ中にトランザクションIDが含まれる場合は、ファイルアクセス管理部700は、S108にて保存しておいたトランザクションIDを応答メッセージに上書きする(S203)。なお、上記の条件に満たない場合(例えば、応答データ中にトランザクションIDが含まれない場合)、このS203はスキップされて良い。
その後、ファイルアクセス管理部700は、共有単位を跨るアクセスに対する処理である接続ポイント処理を行う(S400)。接続ポイント処理の詳細は、後述する。
その後、ファイルアクセス管理部700は、クライアント通信部606を介して、応答データをクライアント100へ送信し、応答処理を終了する。
図16は、中間装置200が行うGNSローカル処理のフローチャートである。
まず、要求データから抽出されたオブジェクトID中の共有ID1302とオリジナルオブジェクトID1303とから、アクセス対象のオブジェクトが同定される(S301)。
次に、要求データ中に含まれている、オブジェクトに対するオペレーション(例えば、ファイルの書込み或いは読出し)を示す情報に基づいて、応答データが作成される(S302)。応答データ中にオブジェクトIDを含める必要がある場合には、そのオブジェクトIDのフォーマットには、受信したフォーマットと同じフォーマットが用いられる。
その後、スイッチプログラム600のファイルアクセス管理部700により、接続ポイント処理が行われる(S400)。
その後、応答データがクライアント100へ送信される。
図17は、中間装置200が行う接続ポイント処理のフローチャートである。
まず、ファイルアクセス管理部700は、応答データ中に、オブジェクトへのアクセス要求(要求データ)で指定されたアクセス対象のオブジェクトから見て、そのオブジェクトの子オブジェクト(ディレクトリツリーにおいて、アクセス対象のオブジェクトの下位のオブジェクト)又は親オブジェクト(ディレクトリツリーにおいて、アクセス対象のオブジェクトの上位のオブジェクト)のオブジェクトIDが、一以上含まれるかどうかを確認する(S401)。このような子オブジェクトや親オブジェクトのオブジェクトIDを含む応答データとしては、例えば、NFSプロトコルでいえば、LOOKUPプロシージャや、READDIRプロシージャや、READDIRPLUSプロシージャの応答データが該当する。応答データ中に、子オブジェクト又は親オブジェクトのオブジェクトIDが全く含まれない場合は(S401:NO)、処理を終了する。
応答データ中に、子オブジェクト又は親オブジェクトのオブジェクトIDが一以上含まれる場合は(S401:YES)、ファイルアクセス管理部700は、応答データ中の一の子オブジェクト又は親オブジェクトのオブジェクトIDを選択する(S402)。
そして、ファイルアクセス管理部700は、接続ポイント管理テーブル1100を参照して、選択されたオブジェクトIDのオブジェクトが接続ポイントであるかどうかを判定する(S403)。具体的には、ファイルアクセス管理部700は、接続ポイント管理テーブル1100に登録されたエントリの中に、そのエントリの接続元オブジェクトID1101が、選択されたオブジェクトIDと一致するものがあるかどうかを判定する。
一致するエントリがない場合は(S403:NO)、応答データ中に、未だ選択されていない他の子オブジェクト又は親オブジェクトのオブジェクトIDが含まれているかどうかが確認される(S407)。他の子オブジェクト又は親オブジェクトのオブジェクトIDが含まれていない場合は(S407:NO)、接続ポイント処理が終了する。他の子オブジェクト又は親オブジェクトのオブジェクトIDが含まれている場合は(S407:YES)、未だ選択されていない一の子オブジェクト又は親オブジェクトのオブジェクトIDが選択される(S408)。そして、S403からの処理が再び行われる。
一致するエントリがある場合は(S403:YES)、その応答データ中のオブジェクトIDが、それと一致する接続元オブジェクトID1101に対応する接続先オブジェクトID1103へ置換される(S404)。
次に、ファイルアクセス管理部700は、選択されたオブジェクトIDのオブジェクトに関連する付随情報があるか否かを判定する(S405)。付随情報とは、例えば、そのオブジェクトに関する属性を示す情報である。付随情報がない場合は(S405:NO)、S407へ処理が移行する。付随情報がある場合は(S405:YES)、接続元オブジェクトの付随情報が接続先オブジェクトの付随情報に置換され(S406)、S407へ処理を移す。
以上、上述した第一の実施形態によれば、クライアント100と中間装置200でやり取りされるオブジェクトID中に共有IDというファイルサービスの公開単位を同定する識別子が挿入される。全ての中間装置200と一部の末端装置300は、オブジェクトIDを生成する際、あらかじめ共有IDを含む形で生成する。クライアント100は、共有ID形式フォーマットのオブジェクトIDを利用して、中間装置200又は末端装置300に対するオブジェクトの操作指示を行う。クライアント100からオブジェクトIDを含んだ要求データを受信した中間装置200は、共有IDとサーバ情報ID(転送先となる中間装置200又は末端装置300に関する情報の識別子)とが対応付けられたスイッチ情報管理テーブル800を参照し、そのオブジェクトID中の共有IDを用いて特定された転送先が中間装置200であれば、その要求データにたいてい格別の処理を施すことなく、その要求データをそのまま転送する。
すなわち、要求データを受けた中間装置200は、その要求データの転送先が他の中間装置200である場合には、オブジェクトIDの変換は不要である。このため、要求データを受けた中間装置200の処理負荷が軽減される。
また、中間装置200が転送先を決定する際に参照されるテーブルには、共有単位の個数に応じた数のエントリがあるに過ぎない。共有単位は、一般に、複数のオブジェクトの纏まりであるので、ファイル単位にエントリがあるテーブルに比して、テーブルのサイズは小さくなる。故に、要求データを受けた中間装置200の処理負荷を軽減することができる。
<第二の実施形態>。
以下、本発明の第二の実施形態について説明する。その際、第一の実施形態との共通点については説明を省略或いは簡略し、第一の実施形態との相違点を主に説明する。
第二の実施形態の中間装置200は、第一の実施形態で示した複数の共有単位を単一の共有単位に統合し仮想化したファイル共有サービス(つまり、GNSを提供するサービス)を行うための中間装置の設定機能を有する。
以下、管理者ユーザインターフェース(以下、管理UI)を有する設定元装置(例えば管理計算機)に対して所定の指示が管理者から入力されたことを契機(他の契機でも良い)に開始される、共有単位の統合の処理手順について、詳細に説明する。
図18は、GNSの設定処理のフローチャートである。
まず、設定元装置が有する管理者ユーザインターフェース(例えばグラフィカルユーザインタフェース(GUI))において、管理者により、統合対象の共有単位を持つサーバ名、アルゴリズム情報ID、その共有単位への共有パス名(例えば、その共有単位のトップディレクトリへのパス名)、その共有単位に対応した共有設定情報、GNSパス名が入力される(S501)。ここでGNSパス名とは、GNSにおけるルートディレクトリからオブジェクト名までのパス名である。これら入力された情報は、設定元装置から、親中間装置200pで動作する親構成情報管理プログラム400pへ転送される(S502)。
上記の情報の転送を受けた親構成情報管理プログラム400pは、共有ID空き管理リスト402を参照して、上記統合対象の共有単位を同定するための、このコンピュータシステムにおいてユニークとなる共有IDを決定する(S503)。
そして、親構成情報管理プログラム400pは、設定元装置から受信した情報と取得した共有IDと含んだ、GNS構成情報テーブル1200pのエントリを生成し、そのエントリをGNS構成情報テーブル1200pに登録する(S504)。
次に、親構成情報管理プログラム400pは、全ての子中間装置200で動作する子構成情報管理プログラム400cに対して、登録したエントリを通知するとともに、GNSの構築を行う共有統合ローカル処理の開始を指示する(S505)。
その後、全ての中間装置200(親・子中間装置)の構成情報管理プログラム400は、共有統合ローカル処理を実施し(S600)、処理を終了する。
図19は、共有統合ローカル処理のフローチャートである。
まず、本処理を実施する中間装置200が子中間装置200cである場合、子構成情報管理プログラム400cは、通知されたエントリをGNS構成情報テーブルキャッシュ1200cに登録する(S601)。本処理を実施する中間装置200が親中間装置200pである場合、S601はスキップされる。
構成情報管理プログラム400は、登録されたエントリのサーバ名1203が、自装置の名前(その構成情報管理プログラム400を実行する中間装置200の名前)かどうかを判断する(S602)。
サーバ名1203が自装置の名前の場合は(S602:YES)、構成情報管理プログラム400は、バインドマウントを実行し(S605)、S606に進む。バインドマウントとは、登録されたエントリ中の共有パス名1204から特定される、自ローカルファイルシステムの全部又は一部である共有単位におけるトップディレクトリを、GNSパス名1202から特定されるディレクトリに、マウントすることである。
サーバ名1203が自装置でない場合は(S602:NO)、構成情報管理プログラム400は、ネットワークマウントを実行する(S603)。ネットワークマウントとは、登録されたエントリ中の共有パス名1204から特定される、他ローカルファイルシステムの全部又は一部である共有単位におけるトップディレクトリを、GNSパス名1202から特定されるディレクトリに、マウントすることである。
S603の後、構成情報管理プログラム400は、登録されたエントリに基づいて、スイッチ情報管理テーブル800と接続ポイント管理テーブル1100とが、更新される(S604)。例えば、登録されたエントリ中の共有ID1201と一致する共有ID801と、サーバ名1203に対応するサーバ情報ID802と、アルゴリズム情報ID1206と一致するアルゴリズム情報ID803とが、スイッチ情報管理テーブル800に追記される。また、例えば、登録されたエントリ中の共有ID1201と一致する接続先共有ID1102が接続ポイント管理テーブル1100に登録される。
その後、構成情報管理プログラム400は、共有情報設定1205をマウントディレクトリに設定する(S606)。例えば、構成情報管理プログラム400は、“leaf1:/share”という共有が“root1:/gnsroot/leaf1_share”にマウントされた場合、マウントディレクトリである“/gnsroot/leaf1_share”に共有設定情報1205を設定する。
次に、構成情報管理プログラム400は、通知されたエントリの共有ID1201に一致する共有IDが、アクセス保留共有IDリスト704に登録されているかどうかを判断する(S607)。一致する共有IDが登録されていない場合は(S607:NO)、処理を終了する。一致する共有IDが登録されている場合は(S607:YES)、構成情報管理プログラム400は、アクセス保留共有IDリスト704から一致した共有IDを削除して(S608)、終了する。
以上、上述した第二の実施形態によれば、本システムに備えられる複数の中間装置200は、GNSに関する構成情報を共有できる。つまり、クライアント100に対して同一のGNSを提供することができるようになる。従って、複数の中間装置200が備えられることで、各々の中間装置200の負荷を分散させることができ、中間装置200の処理負荷を軽減することができる。
なお、この第二の実施形態において、S503を契機に、親中間装置200pは、クライアント100からのアクセス要求を保留(処理しない)ようにしても良い。また、例えば、設定元装置又は親中間装置200pが、クライアント100で実行される、アクセス要求を発行するコンピュータプログラムを静止化(アクセス要求を発行しない状態)し、その後で、S501が行われ、S608の終了に応答して、設定元装置又は親中間装置200pが、その静止化を解除してもよい。また、S503で決定された共有IDや、S601で通知されたエントリ中の共有IDは、アクセス保留共有IDリスト704に登録され、S608で、削除されても良い。
<第三の実施形態>。
以下、本発明の第三の実施形態について説明する。その際、第一及び第二の実施形態との共通点については説明を省略或いは簡略し、第一及び第二の実施形態との相違点を主に説明する。
第三の実施形態の中間装置1900は、ファイル共有サービスを行っている最中に、GNSの構成を変えずに、ファイルシステムのマイグレーションやリプリケーションを実施することができる。
図20は、本発明の第三の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
ストレージネットワーク(例えばSAN(Storage Area Network))1801に、複数の中間装置1900と複数のストレージシステム1802a、1802bが接続されている(中間装置1900に代えて、末端装置300に、ストレージシステムが接続されても良い)。
ストレージシステム1802a、1802bは、同様の構成を採用することができるので、ストレージシステム1802aを代表的に例に採り説明する。ストレージシステム1802aは、例えば、複数の物理的な記憶装置を備える。それら複数の物理的な記憶装置におり、RAID(Redundant Array of Independent (or Inexpensive) Disks)が構成され、その複数の物理的な記憶装置を基に、複数の論理的な記憶装置1803a、1803bが形成される。
中間装置1900は、ストレージネットワーク1801を介して、ストレージシステム1802aの記憶装置1803a及び1803bにアクセスすることができるし、別のストレージシステム1802bの記憶装置1803c及び1803bにアクセスすることもできる。
図21は、第三の実施形態における中間装置1900の構成例を示すブロック図である。
中間装置1900の構成は、基本的には第一の実施形態と同様であるが、入出力コントローラ205からストレージネットワーク1801に接続している点が異なる。即ち、本実施形態における中間装置1900は、ストレージネットワーク1801a、1801bが備える記憶装置1803a、1803b、1803c、1803dにアクセスすることができる。また、中間装置1900は、第一の実施形態と同様に、その装置内部に記憶装置206やファイルシステム207を備えてもよい。
図22は、中間装置1900が行うファイルシステムマイグレーション処理のフローチャートである。なお、以下の説明では、マイグレーションの対象となるファイルシステムを、「ファイルシステム1804a」とする。マイグレーション前は、第一の子中間装置1900cにファイルシステム1804aがマウントされていて、そのファイルシステム1804aは、第二の子中間装置1900cにマイグレーションされるものとする。
まず、管理者UIにおいて、マイグレーションの対象となるファイルシステム1804aに関する情報とマイグレーション先の第二の中間装置1900cに関する情報とが入力される(S701)。以下、ファイルシステム1804aに関する情報として、ファイルシステム1804aを同定するための識別子であるファイルシステムIDが入力されるものとし、第二の中間装置1900cに関する情報として、サーバ名が入力されるものとする。
これら入力されたファイルシステムID及びサーバ名は、設定元装置から親構成情報管理プログラム400pへ転送される(S702)。
ファイルシステムID及びサーバ名を受けた親構成情報管理プログラム400pは、そのファイルシステムIDに関連付けられている全ての共有IDを取得する(S703)。例えば、GNS構成情報テーブル1200pにおける共有設定情報1205に、対応する共有ID1201から同定される共有単位を含んだファイルシステムのIDが含まれていて、それ故、そのGNS構成情報テーブル1200pを参照すれば、受けたファイルシステムIDに対応する全ての共有IDを取得することができる。以下、ファイルシステムIDに対応する共有IDの取得は、GNS構成情報テーブル1200p(又は、GNS構成情報テーブルキャッシュ1200c)を参照することにより、行うことができるとする。
そして、親構成情報管理プログラム400pは、GNS構成情報テーブル1200pにおける、取得された共有ID1201に対応するサーバ名1203を、転送されて来たサーバ名に変更する(S704)。
次に、親構成情報管理プログラム400pは、全ての子中間装置1900cで動作する子構成情報管理プログラム400cに対して、転送されて来たファイルシステムID及びサーバ名と上記取得した共有ID1201とを通知するとともに、マイグレーションの準備処理の開始を指示する(S705)。
その後、全ての中間装置1900(親中間装置、子中間装置の両者を含む)の構成情報管理プログラム400は、マイグレーションの準備処理を行う(S800)。マイグレーションの準備処理の詳細については、後述する。
全ての中間装置1900においてマイグレーションの準備処理が完了したことを確認した後、親中間装置1900の親構成情報管理プログラム400pは、全ての子中間装置1900の子構成情報管理プログラム400cに対して、変更したエントリを通知するとともに、前述した共有統合ローカル処理の開始を指示する(S706)。
その後、全ての中間装置1900(親中間装置、子中間装置の両者を含む)の構成情報管理プログラム400は、共有統合ローカル処理(図19参照)を実施し(S600)、ファイルシステムマイグレーション処理を終了する。
図23は、マイグレーションの準備処理のフローチャートである。
まず、構成情報管理プログラム400は、通知された共有ID1201をアクセス保留共有IDリスト704に登録する(S801)。
次に、構成情報管理プログラム400は、通知された共有ID1201に対応する共有設定情報1205を全て削除する(S802)。
そして、構成情報管理プログラム400は、通知されたファイルシステムIDによって特定されるファイルシステムをアンマウントする(S803)。ここでは、第一の子中間装置1900cの子構成情報管理プログラム400cが、特定されたファイルシステム1804aをアンマウントする。これらは、ネットワークマウントやバインドマウントやローカルマウントについてのアンマウントも含んでよい。なお、ローカルマウントとは、自ローカルファイルシステムの、GNSに統合されていないファイルシステム単位のマウントのことである。
次に、構成情報管理プログラム400は、通知されたサーバ名が自装置を示しているかどうかを判断する(S804)。マイグレーション先が自装置の場合は(S804:YES)、S803においてアンマウントされたファイルシステム1804aがローカルマウントされ(S805)、マイグレーションの準備処理が終了する。すなわち、第二の子中間装置1900cの子構成情報管理プログラム400cが、ファイルシステム1804aをマウントする。一方、マイグレーション先が自装置でない場合は(S804:NO)、何もせずにマイグレーションの準備処理を終了する。
以上の例によれば、第一の子中間装置1900cにストレージネットワーク1801を介してマウントされていたファイルシステム1804aが、第一の子中間装置1900cから切り離されて、第二の子中間装置1900cに、ストレージネットワーク1801を介して、ファイルシステム1804aがマウントされることにより、ファイルシステムマイグレーションが完了する。そうすると、そのファイルシステム1804aに含まれている各共有ID1201に対応するサーバ名が、第一の子中間装置1900cのサーバ名から第二の子中間装置1900cのサーバ名に変更されるので、その変更を契機に、親構成情報管理プログラム400pが、その変更後のサーバ名を含んだエントリの情報を全中間装置1900に送信しGNS統合要求を行うことで、クライアント100には、マイグレーションによる構成の変更を隠蔽することができる。なお、マイグレーション中も、各中間装置1900は、要求データを受け付けることができる。もし、マイグレーション対象のファイルシステムに関わる共有単位の共有IDが指定されている場合、マイグレーション中は、その共有IDがアクセス保留共有IDリストに登録されているので、要求データの処理が保留されることになる。
図24は、中間装置1900が行うファイルシステムリプリケーション処理のフローチャートである。なお、以下の説明では、第一の子中間装置1900cにマウントされているファイルシステム1804aが第二の子中間装置1900cにリプリケーションされるものとする。
まず、管理者UIにおいて、リプリケーションの対象となるファイルシステム1804aに関する情報とリプリケーション先の第二の中間装置1900cに関する情報とが入力される(S901)。以下、ファイルシステム1804aに関する情報として、ファイルシステム1804aを同定するための識別子であるファイルシステムIDが入力されるものとし、第二の中間装置1900cに関する情報として、サーバ名が入力されるものとする。
これら入力されたファイルシステムID及びサーバ名は、設定元装置から、親構成情報管理プログラム400pへ転送される(S902)。
ファイルシステムID及びサーバ名を受けた親構成情報管理プログラム400pは、そのファイルシステムIDに関連付けられている全ての共有IDを特定する(S903)。
そして、親構成情報管理プログラム400pは、GNS構成情報テーブル1200pにおいて、特定された共有ID1201を含むエントリの複製を作成し、エントリの複製におけるサーバ名1203を、転送されて来たサーバ名(つまり、リプリケーション先の装置のサーバ名)に変更する(S904)。
次に、親構成情報管理プログラム400pは、リプリケーション先の第二の子中間装置1900cで動作する子構成情報管理プログラム400cに対して、上記のファイルシステムID及びサーバ名と取得した共有IDとを通知するとともに、リプリケーションの準備処理の開始を指示する(S905)。尚、リプリケーション先の装置が自装置、即ち、親中間装置1900pであった場合は、S905における指示は行われない。
その後、リプリケーション先の第二の子中間装置1900cの子構成情報管理プログラム400cは、リプリケーションの準備処理を行う(S1000)。リプリケーションの準備処理の詳細については、後述する。
リプリケーションの準備処理が完了したことを確認した後、親中間装置1900pの親構成情報管理プログラム400pは、全ての子中間装置1900cの子構成情報管理プログラム400cに対して、複製されたエントリを通知するとともに、前述した共有統合ローカル処理の開始を指示する(S906)。
その後、全ての中間装置1900(親中間装置、子中間装置の両者を含む)の構成情報管理プログラム400は、共有統合ローカル処理(図19参照)を実施し(S600)、ファイルシステムリプリケーション処理を終了する。
図25は、リプリケーションの準備処理のフローチャートである。
まず、構成情報管理プログラム400(上記例では子構成情報管理プログラム400c)は、通知されて来たファイルシステムIDから同定されるファイルシステム1804aの複製の作成を、ストレージシステム1802に対して指示する(S1101)。具体的には、例えば、構成情報管理プログラム400は、ファイルシステム1804aを記憶する記憶装置1803aから別の記憶装置へのコピーを、その記憶装置1803aを有するストレージシステム1802aに指示する。別の記憶装置が記憶装置1803bであれば、ストレージシステム1802a内で記憶装置間のコピー(いわゆるローカルコピー)が行われ、別の記憶装置が記憶装置1803c又は1803dであれば、ストレージシステム1802aからストレージネットワーク1801を経由してストレージシステム1802bへリモートコピーが行われる。これにより、別の記憶装置に、ファイルシステム1804aの複製が記憶される。
次に、構成情報管理プログラム400は、ファイルシステム1804aの複製をローカルマウントし(S1002)、リプリケーションの準備処理を終了する。
この第三の実施形態において、マイグレーション先及びリプリケーション先の装置を第二の子中間装置1900cとしたが、末端装置300としても良いし、親中間装置1900pとしてもよい。この場合は、末端装置300にも、構成情報管理プログラム400が備えられることになる。
以上の例によれば、第一の子中間装置1900cにストレージネットワーク1801を介してマウントされていたファイルシステム1804aの複製が生成され、そのファイルシステム1804aの複製が、第二の子中間装置1900cに、ストレージネットワーク1801を介してマウントされることにより、ファイルシステムリプリケーションが完了する。そうすると、GNS構成情報テーブル1200pに含まれるエントリが増えるので、そのエントリ追加を契機に、親構成情報管理プログラム400pが、その追加されたエントリの情報を全中間装置1900に送信しGNS統合要求を行うことで、クライアント100には、リプリケーションよる構成の変更を隠蔽することができる。
また、ファイルシステム1204aに対応した共有IDと、ファイルシステム1204aの複製に対応した共有IDとは同じであり、リプリケーションにおける共有統合ローカル処理によって、スイッチ情報管理テーブル800に、その同一の共有ID(以下、対象共有ID)に対して、第一の子中間装置1900cと第二の子中間装置1900cの両方のサーバ名が対応付けられる。このため、要求データを受けた中間装置200は、その要求データでのオブジェクトID中に対象共有IDが含まれている場合、転送先として、第一の子中間装置1900cと第二の子中間装置1900cとのいずれかを選択する(この選択は、ラウンドロビン形式など所定のルールによって行われて良い)。つまり、論理的に同一の共有単位については、アクセス先が振り分けられる。これにより、負荷分散となる。なお、論理的に同一の共有単位とは、共有単位は別々の位置に存在するが内容が同じであることを意味する。
以上が、第三の実施形態についての説明である。なお、上記の説明では、マイグレーションもリプリケーションもファイルシステム単位であるが、ファイルシステム単位ではなく共有単位であっても良い。その場合、ファイルシステムIDに代えて、共有IDが管理UIに入力されても良い。
上述した第三の実施形態によれば、マイグレーションやリプリケーションの処理を行っても、マイグレーション元とマイグレーション先との対応関係やリプリケーション元とリプリケーション先との対応関係は、ファイル単位ではなく共有単位で管理される。このため、マイグレーションやリプリケーションを行った後の、中間装置の処理負荷の増大を抑制することができる。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、中間装置及び末端装置のうちの少なくとも一つを、NAS(Network Attached Storage)装置とすることができる。
図1は、本発明の第一の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。 図2は、中間装置の構成例を示すブロック図である。 図3は、末端装置の構成例を示すブロック図である。 図4は、親構成情報管理プログラムを示すブロック図である。 図5は、子構成情報管理プログラムの構成例を示すブロック図である。 図6は、スイッチプログラムの構成例を示すブロック図である。 図7は、ファイルアクセス管理部の構成例を示すブロック図である。 図8は、スイッチ情報管理テーブルの構成例を示す図である。 図9は、サーバ情報管理テーブルの構成例を示す図である。 図10は、アルゴリズム情報管理テーブルの構成例を示す図である。 図11は、接続ポイント管理テーブルの構成例を示す図である。 図12は、GNS構成情報テーブルの構成例を示す図である。 図13Aは、拡張形式OKケースでやり取りされるオブジェクトIDの一例を示す図である。図13B(a)は、拡張形式NGケースにおいてクライアントと中間装置との間、及び中間装置と中間装置との間でやり取りされるオブジェクトIDの一例を示す図である。図13B(b)は、拡張形式NGケースにおいて中間装置と末端装置との間でやり取りされるオブジェクトIDの一例を示す図である。 図14は、中間装置がGNSを提供する処理のフローチャートである。 図15は、中間装置が応答データを受信した際の処理(応答処理)のフローチャートである。 図16は、中間装置が行うGNSローカル処理のフローチャートである。 図17は、中間装置が行う接続ポイント処理のフローチャートである。 図18は、本発明の第二の実施形態における中間装置が行うGNSの設定処理のフローチャートである。 図19は、共有統合ローカル処理のフローチャートである。 図20は、本発明の第三の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。 図21は、第三の実施形態での中間装置の構成例を示すブロック図である。 図22は、ファイルシステムマイグレーション処理のフローチャートである。 図23は、マイグレーションの準備処理のフローチャートである。 図24は、ファイルシステムリプリケーション処理のフローチャートである。 図25は、リプリケーションの準備処理のフローチャートである。
符号の説明
100…クライアント、200…中間装置、300…末端装置、600…スイッチプログラム、700…ファイルアクセス管理部、800…スイッチ情報管理テーブル、900…サーバ情報管理テーブル、1000…アルゴリズム情報管理テーブル、1100…接続ポイント管理テーブル、1200…GNS構成情報テーブル

Claims (18)

  1. クライアントと、各々が一以上のオブジェクトを含むファイルシステムを備えた複数のファイルサーバとの間に論理的に配置される中間装置であって、各ファイルサーバが備える各ファイルシステム、または、自中間装置または他の中間装置が備えるファイルシステムのうちの共有可能な部分である複数の共有単位を前記クライアントに論理的に提供するファイルレベルの仮想化を行う中間装置において、
    各々の共有単位を示す共有情報と、前記共有情報が示す共有単位を管理する前記複数のファイルサーバまたは前記他の中間装置の何れかを示す一以上の装置情報と、前記装置情報が示す何れかのファイルサーバに対応してオブジェクトIDをどのように変換するかを示す一以上のアルゴリズム情報とが対応付けられた転送制御情報を格納するメモリと、
    前記共有情報を含み、前記共有情報が示す共有単位が有する何れかのオブジェクトを示すオブジェクトIDを有する要求データを受信する要求データ受信部と、
    前記要求データを受信すると前記転送制御情報を参照して前記要求データが有する前記オブジェクトID中の前記共有情報に対応した装置情報及びアルゴリズム情報から、前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定するための要求データ処理部と、
    特定した前記アルゴリズムに基づき、前記要求データが有する前記オブジェクトIDを変換する変換部と、
    特定した前記複数のファイルサーバまたは前記他の中間装置の何れかに対して前記要求データを送信する要求データ送信部とを有し、
    前記要求データ処理部は、前記転送制御情報中に前記共有情報に対応した前記装置情報及び前記アルゴリズム情報がある場合は、所定の方法より複数の前記装置情報及び前記アルゴリズム情報から1つの前記装置情報及び前記アルゴリズム情報を選択して前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定し、
    前記要求データ送信部は、特定した前記アルゴリズムが所定の値の場合には、受信した前記要求データを特定した前記複数のファイルサーバまたは前記他の中間装置の何れかに送信し、特定した前記アルゴリズムが所定の値でない場合には、前記変換部により前記オブジェクトIDが変換された要求データを特定した前記複数のファイルサーバの何れかに送信する、
    中間装置。
  2. 前記要求データ中のオブジェクトIDに、そのオブジェクトID中の共有情報が示す共有単位を管理する前記複数のファイルサーバ又は前記他の中間装置の何れかにおいてオブジェクトを同定するためのオブジェクト固有値が含まれ、
    前記要求データの送信に応答して前記複数のファイルサーバ又は前記他の中間装置の何れかからオブジェクトIDを含んだ応答データを受信する応答データ受信部と、
    前記受信した応答データを前記クライアント又は前記他の中間装置に送信する応答処理部を更に備え、
    特定した前記アルゴリズムが所定の値ではない場合、前記変換部は、特定した前記アルゴリズムに従って、前記オブジェクトID中の共有情報を除去して、前記オブジェクトIDを変換し、
    前記要求データ送信部は、前記変換後のオブジェクトIDを有する前記要求データを特定した前記複数のファイルサーバの何れかに送信し、
    前記変換部は、前記要求データを送信したファイルサーバから受信した応答データ中のオブジェクトIDに、前記除去した共有情報を含めてオブジェクトIDを変換し
    前記応答処理部は、前記変換後のオブジェクトIDを有する応答データを前記クライアント又は前記他の中間装置に送信する、
    請求項記載の中間装置。
  3. 前記変換部は、前記要求データが有する前記オブジェクトID中の共有情報を除去することに加えて、前記オブジェクトID中のオブジェクト固有値のサイズを第一のサイズから第二のサイズに拡大する第一の変換処理を行い、
    前記要求データ送信部は、サイズ拡大後のオブジェクト固有値をオブジェクトIDとして含んだ前記要求データを特定した前記複数のファイルサーバの何れかに送信し、
    前記変換部は、前記応答データに含まれるオブジェクト固有値のサイズを前記第二のサイズから前記第一のサイズに縮小する第二の変換処理を行い、
    前記応答処理部は、サイズ縮小後のオブジェクト固有値と前記除去された共有情報とを含むオブジェクトIDを有する前記応答データを、前記クライアント又は前記他の中間装置に送信する、
    請求項記載の中間装置。
  4. 前記要求データの送信に応答して前記複数のファイルサーバ又は前記他の中間装置の何れかからオブジェクトIDを含んだ応答データを受信する応答データ受信部と、
    前記受信した応答データを前記クライアント又は前記他の中間装置に送信する応答処理部を更に備え、
    前記応答処理部は、第一の共有単位に含まれる第一のオブジェクトの第一のオブジェクトIDと第二の共有単位に含まれ前記第一のオブジェクトと仮想的に同一である第二のオブジェクトの第二のオブジェクトIDとの対応関係を示す接続管理情報を参照し、前記受信した応答データ中のオブジェクトIDが前記接続管理情報に含まれているか否かを判定し、そのオブジェクトIDが前記接続管理情報に含まれている場合、そのオブジェクトIDに対応する他のオブジェクトIDを取得し、前記応答データに含まれる前記オブジェクトIDを前記取得した他のオブジェクトIDへ変更する、
    請求項1記載の中間装置。
  5. オブジェクトを管理しそのオブジェクトを利用するためのファイルサービスを提供するオブジェクト管理部を更に備え、
    前記要求データ処理部が、前記要求データが有する前記オブジェクトIDに含まれている共有情報を用いて前記転送制御情報を参照した場合に、そのオブジェクトIDに対応したオブジェクトが前記オブジェクト管理部により管理されていると判断したならば、前記オブジェクト管理部に前記要求データに従うオペレーションを実行させる、
    請求項1記載の中間装置。
  6. アクセスの保留の対象となる共有単位に対応した共有情報を記憶領域に登録する共有情報登録部と、
    前記受信した要求データが有するオブジェクトID中の共有情報に一致する共有情報が前記記憶領域に登録されているか否かの判定を行う保留判定部と、
    前記判定の結果が肯定的であれば、前記オブジェクトIDに対応したオブジェクトへのアクセスができない旨を示す応答データを生成して前記クライアント又は他の中間装置に送信する応答処理部と
    を更に備える、
    請求項1記載の中間装置。
  7. 前記共有情報登録部は、マイグレーションの対象として指定された共有単位に対応する共有情報を前記記憶領域に登録する、
    請求項記載の中間装置。
  8. 仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
    前記名前空間定義情報の更新の要求を受け付ける更新受付部と、
    その要求に従い前記名前空間定義情報を更新する第一の更新部と、
    前記名前空間定義情報の更新に関わる共有単位のための共有情報を決定する共有情報決定部と、
    前記名前空間定義情報の更新に関わる情報と、前記決定された共有情報と、前記他の中間装置での名前空間定義情報を更新することの要求とを、前記他の中間装置に送信する定義情報同期部と、
    前記名前空間定義情報の更新を基に前記転送制御情報を前記決定された共有情報を含んだ転送制御情報に更新する第二の更新部と、を更に備える、
    請求項1記載の中間装置。
  9. 前記複数の共有単位を統合した仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
    前記名前空間定義情報の更新に関わる情報と、前記名前空間定義情報の更新に関わる共有単位の共有情報と、名前空間定義情報を更新することの要求とを受け付ける更新要求受付部と、
    受けた要求に応答して、前記名前空間定義情報の更新の要求に従い前記名前空間定義情報を更新する第一の更新部と、
    前記名前空間定義情報の更新を基に前記転送制御情報を前記受け付けた共有情報を含んだ転送制御情報に更新する第二の更新部と、を更に備える、
    請求項1記載の中間装置。
  10. マイグレーション対象として指定された共有情報に対応する共有単位をアンマウントするアンマウント部、を更に備える、
    請求項1記載の中間装置。
  11. マイグレーション先として指定されたファイルサーバ又は中間装置が自分である場合には、アンマウントされている状態の前記マイグレーション対象の共有単位をマウントするマウント部、を更に備える、
    請求項10記載の中間装置。
  12. 前記複数の共有単位を統合した仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
    前記マイグレーション対象の共有単位のアンマウントとマウントとに関わる、前記名前空間定義情報の更新を実行する第一の更新部と、
    前記名前空間定義情報の更新を基に、前記転送制御情報を、前記マイグレーション対象として指定された共有情報と前記マイグレーション先として指定されたファイルサーバ又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新する第二の更新部と、を更に備える、
    請求項10記載の中間装置。
  13. 前記複数の共有単位を統合した仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
    リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定されたファイルサーバ又は中間装置に関する情報とを前記名前空間定義情報で対応付ける第一の更新部と、
    前記名前空間定義情報の更新を基に、前記転送制御情報において、前記リプリケーション対象として指定された共有情報に対応付けた、前記リプリケーション先として指定されたファイルサーバ又は中間装置に対応した装置情報を追加する第二の更新部と、
    前記リプリケーション対象の共有単位の複製を前記リプリケーション先として指定されたファイルサーバ又は中間装置にマウントさせる要求をそのファイルサーバ又は中間装置に送信する複製マウント要求部と、を更に備える、
    請求項1記載の中間装置。
  14. 前記複数の共有単位を統合した仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
    リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定されたファイルサーバ又は中間装置に関する情報とを前記名前空間定義情報で対応付ける第一の更新部と、
    前記名前空間定義情報の更新を基に、前記転送制御情報において、前記リプリケーション対象として指定された共有情報に対応付けた、前記リプリケーション先として指定されたファイルサーバ又は中間装置に対応した装置情報を追加する第二の更新部と、
    前記リプリケーション対象の共有単位の複製を作成させる複製作成部と、
    その共有単位の複製を、前記リプリケーション先として指定された自分にマウントするマウント部と、を更に備える、
    請求項1記載の中間装置。
  15. クライアントにファイルサービスを提供するファイルサーバシステムであって、
    前記クライアントと、各々が一以上のオブジェクトを含むファイルシステムを備えた複数のファイルサーバとの間に論理的に配置され、少なくとも各ファイルサーバが備える各ファイルシステムのうちの共有可能な部分である複数の共有単位を前記クライアントに論理的に提供するファイルレベルの仮想化を行う中間装置を複数台備え、
    各中間装置が、
    各々の共有単位を示す共有情報と、前記共有情報が示す共有単位を管理する前記複数のファイルサーバまたは前記他の中間装置の何れかを示す一以上の装置情報と、前記装置情報が示す何れかのファイルサーバに対応してオブジェクトIDをどのように変換するかを示す一以上のアルゴリズム情報とが対応付けられた転送制御情報を格納するメモリと、
    前記共有情報を含み、前記複数のファイルサーバまたは前記他の中間装置が備えるファイルシステムに含まれる何れかのオブジェクトを示すオブジェクトIDを有する要求データを受信する要求データ受信部と、
    前記要求データを受信すると前記転送制御情報を参照して前記要求データが有する前記オブジェクトID中の前記共有情報に対応した装置情報及びアルゴリズム情報から、前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定するための要求データ処理部と、
    特定した前記アルゴリズムに基づき前記要求データが有する前記オブジェクトIDを変換する変換部と、
    特定した前記複数のファイルサーバまたは前記他の中間装置の何れかに対して前記要求データを送信する要求データ送信部とを有し、
    前記要求データ処理部は、前記転送制御情報中に前記共有情報に対応した前記装置情報及び前記アルゴリズム情報がある場合は、所定の方法より複数の前記装置情報及び前記アルゴリズム情報から1つの前記装置情報及び前記アルゴリズム情報を選択して前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定し、
    前記要求データ送信部は、特定した前記アルゴリズムが所定の値の場合には、受信した前記要求データを特定した前記複数のファイルサーバまたは前記他の中間装置の何れかに送信し、特定した前記アルゴリズムが所定の値でない場合には、前記変換部により前記オブジェクトIDが変換された要求データを特定した前記複数のファイルサーバの何れかに送信する、ファイルサーバシステム。
  16. クライアントと、各々が一以上のオブジェクトを含むファイルシステムを備えた複数のファイルサーバとの間に論理的に配置され、少なくとも各ファイルサーバが備える各ファイルシステムのうちの共有可能な部分である複数の共有単位を前記クライアントに論理的に提供するファイルレベルの仮想化を行う中間装置において、前記クライアントからの要求データを前記複数のファイルサーバまたは他の中間装置の何れかに中継する中継方法であって、
    各々の共有単位を示す共有情報と、前記共有情報が示す共有単位を管理する前記複数のファイルサーバまたは前記他の中間装置の何れかを示す一以上の装置情報と、前記装置情報が示す何れかのファイルサーバに対応してオブジェクトIDをどのように変換するかを示す一以上のアルゴリズム情報とが対応付けられた転送制御情報を保持し、
    前記共有情報を含み、前記複数のファイルサーバまたは前記他の中間装置が備えるファイルシステムに含まれる何れかのオブジェクトを示すオブジェクトIDを有する要求データを受信し、
    前記転送制御情報を参照して前記要求データが有する前記オブジェクトID中の前記共有情報に対応した装置情報及びアルゴリズム情報から、前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定し、
    前記転送制御情報中に前記共有情報に対応した前記装置情報及び前記アルゴリズム情報がある複数ある場合には、所定の方法より複数の前記装置情報及び前記アルゴリズム情報から1つの前記装置情報及び前記アルゴリズム情報を選択して前記複数のファイルサーバまたは前記他の中間装置の何れか、及び、前記オブジェクトIDを変換するためのアルゴリズムを特定し、
    特定した前記アルゴリズムが所定の値の場合には、受信した前記要求データを特定した前記複数のファイルサーバまたは前記他の中間装置の何れかに送信し、
    特定した前記アルゴリズムが所定の値でない場合には、前記アルゴリズムに基づき前記要求データが有する前記オブジェクトIDを変換し、
    前記変換オブジェクトIDを有する要求データを特定した前記複数のファイルサーバの何れかに送信する、中継方法。
  17. 前記要求データの送信に応答して前記複数のファイルサーバ又は前記他の中間装置の何れかからオブジェクトIDを含んだ応答データを受信する応答データ受信部と、
    その受信した応答データが有するオブジェクトIDに共有情報が含まれていない場合、前記複数のファイルサーバ又は前記他の中間装置の何れかを表す装置情報に対応した共有情報を転送制御情報から取得し、前記取得した共有情報を、前記受信した応答データが有するオブジェクトIDに含め、前記取得した共有情報を含んだオブジェクトIDを有する応答データを、前記要求データの送信元に送信する応答処理部と
    を備える請求項1記載の中間装置。
  18. 前記クライアントからオブジェクト問合せを受信し、そのオブジェクト問合せで指定されているオブジェクトに固有の値であるオブジェクト固有値と、
    そのオブジェクトを有する共有単位を示す共有情報とを含んだオブジェクトIDを生成し、そのオブジェクトIDを前記クライアントに通知するオブジェクトID通知部、を更に備え、
    前記要求データ受信部は、その通知されたオブジェクトIDを含んだ要求データを受信する、
    請求項1記載の中間装置。
JP2007076867A 2007-03-23 2007-03-23 ファイルレベルの仮想化を行う中間装置 Expired - Fee Related JP4919851B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007076867A JP4919851B2 (ja) 2007-03-23 2007-03-23 ファイルレベルの仮想化を行う中間装置
CN2007101849608A CN101272313B (zh) 2007-03-23 2007-10-30 进行文件级的虚拟化的中间装置、文件服务器系统和中继方法
US11/972,653 US8380815B2 (en) 2007-03-23 2008-01-11 Root node for file level virtualization
EP20080250166 EP1973049A3 (en) 2007-03-23 2008-01-14 Root node for file level virtualization
US13/752,530 US8909753B2 (en) 2007-03-23 2013-01-29 Root node for file level virtualization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007076867A JP4919851B2 (ja) 2007-03-23 2007-03-23 ファイルレベルの仮想化を行う中間装置

Publications (2)

Publication Number Publication Date
JP2008234568A JP2008234568A (ja) 2008-10-02
JP4919851B2 true JP4919851B2 (ja) 2012-04-18

Family

ID=39560913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007076867A Expired - Fee Related JP4919851B2 (ja) 2007-03-23 2007-03-23 ファイルレベルの仮想化を行う中間装置

Country Status (4)

Country Link
US (2) US8380815B2 (ja)
EP (1) EP1973049A3 (ja)
JP (1) JP4919851B2 (ja)
CN (1) CN101272313B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361311B2 (en) * 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
JP4919851B2 (ja) * 2007-03-23 2012-04-18 株式会社日立製作所 ファイルレベルの仮想化を行う中間装置
JP5024329B2 (ja) * 2009-05-08 2012-09-12 富士通株式会社 中継プログラム、中継装置、中継方法、システム
JP2010267156A (ja) 2009-05-15 2010-11-25 Hitachi Ltd 計算機システム及び管理方法
JP2011034157A (ja) 2009-07-30 2011-02-17 Hitachi Ltd 計算機システム及び単一ネームスペースの管理方法
US9165015B2 (en) 2010-07-29 2015-10-20 International Business Machines Corporation Scalable and user friendly file virtualization for hierarchical storage
US8549519B2 (en) * 2011-08-19 2013-10-01 Hitachi, Ltd. Method and apparatus to improve efficiency in the use of resources in data center
US9396205B1 (en) * 2011-09-20 2016-07-19 Netapp, Inc. Detection and handling of namespace changes in a data replication system
US9237195B2 (en) * 2012-04-27 2016-01-12 Netapp, Inc. Virtual storage appliance gateway
CN103780642B (zh) * 2012-10-19 2017-08-01 宇瞻科技股份有限公司 网络存储系统的文件分享方法
US9122688B1 (en) * 2012-11-20 2015-09-01 Emc Corporation Naming scheme for different computer systems
US9836476B2 (en) 2014-09-25 2017-12-05 Netapp, Inc. Synchronizing configuration of partner objects across distributed storage systems using transformations
JP6733300B2 (ja) * 2016-05-16 2020-07-29 株式会社リコー 情報処理装置、及び情報処理システム
US10649666B1 (en) * 2017-05-10 2020-05-12 Ambarella International Lp Link-list shortening logic
US11503011B2 (en) * 2021-01-08 2022-11-15 Intuit Inc. Making local data available in a cloud computing environment
US12072770B2 (en) 2021-08-19 2024-08-27 Nutanix, Inc. Share-based file server replication for disaster recovery
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0687569B2 (ja) * 1989-09-28 1994-11-02 アメリカン テレフォン アンド テレグラフ カムパニー 端末アダプタおよびデータ伝送方法
US5557747A (en) * 1993-06-22 1996-09-17 Rogers; Lawrence D. Network policy implementation system for performing network control operations in response to changes in network state
US7222155B1 (en) * 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
US7634787B1 (en) * 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US7006526B1 (en) * 2001-07-31 2006-02-28 Cisco Technology, Inc. Mechanisms for avoiding problems associated with network address protocol translation
JP2007042115A (ja) * 2001-11-02 2007-02-15 Nec Corp スイッチ方法、装置およびプログラム
JP3879594B2 (ja) * 2001-11-02 2007-02-14 日本電気株式会社 スイッチ方法、装置およびプログラム
US7024427B2 (en) * 2001-12-19 2006-04-04 Emc Corporation Virtual file system
US7590667B2 (en) * 2003-01-30 2009-09-15 Hitachi, Ltd. File replication method for distributed file systems
JP4448005B2 (ja) * 2004-10-22 2010-04-07 株式会社日立製作所 記憶システム
US20060114931A1 (en) * 2004-11-30 2006-06-01 Yokogawa Electric Corporation IPv6/IPv4 packet conversion system
JP4341072B2 (ja) * 2004-12-16 2009-10-07 日本電気株式会社 データ配置管理方法及びシステムと装置およびプログラム
JP4729987B2 (ja) * 2005-06-02 2011-07-20 富士ゼロックス株式会社 データ管理システム及びデータサーバ
JP2007076867A (ja) 2005-09-15 2007-03-29 Canon Finetech Inc シート積載装置および画像形成装置
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
US7827188B2 (en) * 2006-06-09 2010-11-02 Copyright Clearance Center, Inc. Method and apparatus for converting a document universal resource locator to a standard document identifier
JP4919851B2 (ja) * 2007-03-23 2012-04-18 株式会社日立製作所 ファイルレベルの仮想化を行う中間装置
JP4958641B2 (ja) * 2007-05-29 2012-06-20 株式会社日立製作所 記憶制御装置及びその制御方法
JP4912996B2 (ja) * 2007-09-18 2012-04-11 株式会社日立製作所 情報処理装置及び計算機システム

Also Published As

Publication number Publication date
US8380815B2 (en) 2013-02-19
US8909753B2 (en) 2014-12-09
US20080235350A1 (en) 2008-09-25
US20130144921A1 (en) 2013-06-06
EP1973049A3 (en) 2014-01-22
EP1973049A2 (en) 2008-09-24
CN101272313B (zh) 2013-01-23
EP1973049A8 (en) 2008-12-10
CN101272313A (zh) 2008-09-24
JP2008234568A (ja) 2008-10-02

Similar Documents

Publication Publication Date Title
JP4919851B2 (ja) ファイルレベルの仮想化を行う中間装置
JP4931660B2 (ja) データ移行処理装置
JP2009059201A (ja) ファイルレベルの仮想化と移行を行う中間装置
EP3803618B1 (en) Distributed transactions in cloud storage with hierarchical namespace
JP5661188B2 (ja) ファイルシステム及びデータ処理方法
US7836018B2 (en) Simultaneously accessing file objects through web services and file services
CN112236758A (zh) 云存储分布式文件系统
JP5775177B2 (ja) クローンファイル作成方法と、それを用いたファイルシステム
US20030236850A1 (en) Storage system for content distribution
US8380673B2 (en) Storage system
JP4806572B2 (ja) データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御
EP3811229B1 (en) Hierarchical namespace service with distributed name resolution caching and synchronization
JP4451293B2 (ja) 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US9122397B2 (en) Exposing storage resources with differing capabilities
WO2013160942A2 (en) File storage system and file cloning method
US20110167045A1 (en) Storage system and its file management method
US7243207B1 (en) Technique for translating a pure virtual file system data stream into a hybrid virtual volume
JP2007183913A (ja) ファイルシステムのデータを複製する装置と方法
US8627446B1 (en) Federating data between groups of servers
US10805394B2 (en) File server apparatus having shared file system with file and directory operation processing
US10324652B2 (en) Methods for copy-free data migration across filesystems and devices thereof
WO2014174578A1 (ja) エッジサーバ及び記憶制御方法
JP2004252957A (ja) 分散ファイルシステムのファイルレプリケーション方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120131

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees