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

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

Info

Publication number
JP2009059201A
JP2009059201A JP2007226466A JP2007226466A JP2009059201A JP 2009059201 A JP2009059201 A JP 2009059201A JP 2007226466 A JP2007226466 A JP 2007226466A JP 2007226466 A JP2007226466 A JP 2007226466A JP 2009059201 A JP2009059201 A JP 2009059201A
Authority
JP
Japan
Prior art keywords
file
migration
data
information
intermediate 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.)
Pending
Application number
JP2007226466A
Other languages
English (en)
Inventor
Jun Nemoto
潤 根本
Takayoshi Nakamura
隆喜 中村
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 JP2007226466A priority Critical patent/JP2009059201A/ja
Priority to US12/020,770 priority patent/US20090063556A1/en
Publication of JP2009059201A publication Critical patent/JP2009059201A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of 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)

Abstract

【課題】要求の転送処理の性能低下を抑えたファイルレベルでのデータ移行技術を提供する。
【解決手段】オブジェクトIDが、論理的な公開の単位であり一つ以上のオブジェクトを包含する共有単位を示す共有情報を含む。共有単位毎に移行済みか否かを表す移行判定情報が用意される。中間装置は、移行したファイルの移行先でのオブジェクトIDを保持し、移行判定情報を、そのファイルを含んだ共有単位が移行済み共有単位であることを表す情報に更新する。中間装置は、オブジェクトIDを有した要求データを受信した場合、そのオブジェクトID内の共有情報が表す共有単位が移行済み共有単位か否かを上記移行判定情報を参照することにより判定し、移行済み共有単位である場合、そのオブジェクトIDから同定されるファイルが移行されたファイルであるならば、そのファイルに対応する移行先オブジェクトIDを有した要求データを移行先の装置に転送する。
【選択図】図7

Description

本発明は、ファイルサーバ間のデータ移行の技術に関する。
ファイルサーバとは、一般に、通信ネットワークを通じてファイルサービスをクライアントに提供する情報処理装置である。ファイルサーバは、ユーザが円滑にファイルサービスを利用できるよう、運用管理する必要がある。ファイルサーバの運用管理で重要なものの1つに、階層ストレージ管理(HSM(Hierarchy Storage Management)が挙げられる。HSMでは、アクセス頻度の高いデータを高速、高価、低容量のストレージに保管し、アクセス頻度の低いデータを低速、安価、大容量のストレージに保管する。HSMと関連して、ファイルサーバの運用管理で重要なのがデータの移行である。データの利用頻度は時間とともに変化するため、アクセス頻度の高いデータとアクセス頻度の低いデータをファイル単位やディレクトリ単位で適切に配置換えすることで、効率的なHSMを実現することが可能である。
ファイルサーバ間のファイル単位やディレクトリ単位でデータ移行を行う方法としては、クライアントとファイルサーバとの間の通信を中継する装置(以下、中間装置)を用いる方法がある(例えば特許文献1や特許文献2)。以下、特許文献1および特許文献2に開示の中間装置を「従来の中間装置」と言う。
従来の中間装置は、複数のファイルサーバの公開ディレクトリを統合して擬似的なファイルシステムを構築する機能を有し、複数のクライアントからファイルアクセス要求を受け付ける。従来の中間装置は、或るクライアントから或るオブジェクト(ファイル)に対するファイルアクセス要求を受けた場合、当該オブジェクトが存在するファイルサーバに、そのファイルアクセス要求を、そのファイルサーバが理解できる形式に変換して転送する処理を行う。
また、従来の中間装置は、ファイルサーバ間でのデータ移行を行う際、クライアントに対して、データの移行を隠蔽したまま、移行前と同一の名前空間で移行後のファイルアクセスを可能にする。
米国公開特許2004/0267830号明細書 特開2003−203029号公報
クライアントがファイルサーバに所望のオブジェクトに対するファイルアクセスを要求する際、そのオブジェクトを同定するためには、オブジェクトIDと呼ばれる識別子を使用するのが一般的である。例えば、ファイル共有プロトコルがNFS(Network File System)の場合、ファイルハンドルと呼ばれるオブジェクトIDが使用される。
オブジェクトIDは、ファイルサーバに定義されたルールにより生成されるため、ファイルサーバ間でデータの移行が行われると、オブジェクトIDそれ自体が変わってしまう(つまり、移行元のファイルサーバと移行先のファイルサーバとで、同一のオブジェクトに付与されるオブジェクトIDが異なってしまう)。そのため、クライアントは、移行前のオブジェクトID(以下、移行元オブジェクトID)を用いて所望のオブジェクトのファイルアクセスを要求してもそのオブジェクトにアクセスすることができない。
したがって、移行前と移行後のオブジェクトIDの変更が管理され、クライアントにおいてオブジェクトIDの変更による不具合が生じないようにし、データの移行をクライアントから隠蔽する必要がある。
特許文献1に開示の中間装置は、移行元ファイルサーバでの移行元オブジェクトIDと移行先ファイルサーバでの移行後のオブジェクトID(以下、移行先オブジェクトID)との対応関係を登録したテーブルを保持する。そして、特許文献1に開示の中間装置は、クライアントから移行元オブジェクトIDでファイルアクセス要求を受けた場合、上記テーブルを参照することで、移行元オブジェクトIDを移行先オブジェクトIDに書き換えた後、ファイルアクセス要求を適切なファイルサーバへ転送する。
特許文献1の中間装置を複数台使用して負荷分散を行う場合、移行元オブジェクトIDと移行先オブジェクトIDの対応関係を中間装置の間で同期させなければならない。そのため、移行したオブジェクトの数が膨大になった場合、同期処理の負荷が大きくなって、クライアントからの要求の転送処理の性能が低下してしまうという問題が生じる。
特許文献2の中間装置は、移行元のファイルをスタブファイルとして残し、クライアントからスタブファイルに対して要求があった場合には、スタブファイル内の移行先情報を使用して、移行先ファイルサーバに要求を転送する。
特許文献2の中間装置は、移行に関係のないオブジェクトに対する要求であっても、基本的に全ての要求に対してスタブファイルであるかどうかの確認をしなければならないため、通常の要求転送処理の性能が低下してしまうという問題がある。
従って、本発明の目的は、要求の転送処理の性能低下を抑えたファイルレベルでのデータ移行技術を提供することにある。
本発明の他の目的は、後の説明から明らかになるであろう。
一つのオブジェクトであるファイルを同定するためのオブジェクトIDが、論理的な公開の単位であり一つ以上のオブジェクトを包含する共有単位を示す共有情報を含む。また、共有単位毎に移行済みか否かを表す移行判定情報が用意される。中間装置は、ファイルを別の装置に移行した際に、そのファイルの移行先でのオブジェクトIDを保持し、移行判定情報を、そのファイルを含んだ共有単位が移行済み共有単位であることを表す情報に更新する。中間装置は、オブジェクトIDを有した要求データを受信した場合、そのオブジェクトID内の共有情報が表す共有単位が移行済み共有単位か否かを上記移行判定情報を参照することにより判定し、移行済み共有単位である場合、そのオブジェクトIDから同定されるファイルが移行されたファイルであるならば、そのファイルに対応する移行先オブジェクトIDを有した要求データを移行先の装置に転送する。
実施形態1では、中間装置は、論理的な公開の単位であり一つ以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行う装置であり、クライアントとファイルサーバとの間に論理的に配置される。この中間装置は、移行処理部(例えば移行処理手段)と、要求転送処理部(例えば要求転送処理手段)とを備える。移行処理部は、オブジェクトであるファイル(例えば、ユーザから指定された移行対象に含まれるファイル、或いは任意に選択されたファイル)を、共有単位を管理するファイルサーバである末端装置又は他の中間装置に移行し、共有単位を示す共有情報を含んだオブジェクトIDとして移行先のオブジェクトIDを書き込み、移行済みのファイルを含む又は含まない共有単位を表す移行判定情報を、上記ファイルを含んだ共有単位に移行済みのファイルが含まれていることを表す情報に更新する。要求転送処理部は、オブジェクトIDを有する要求データをクライアント又は他の中間装置から受信し、その要求データが有するオブジェクトID内の共有情報が表す共有単位が移行済みのファイルを含んだ移行済み共有単位であるか否かの判定を、上記移行判定情報を参照することにより行う。その判定の結果が肯定的な結果であれば、要求転送処理部は、そのオブジェクトIDに対応した上記移行先オブジェクトIDを特定し、特定された移行先オブジェクトIDを有した要求データを、移行先の末端装置又は他の中間装置に転送する。
実施形態2では、実施形態1において、要求転送処理部が、上記の判定の結果が否定的な結果の場合に、要求データを転送することなくその要求データに従うオペレーションを実行する。オペレーションとしては、例えば、要求データがリード要求である場合、その要求データが有するオブジェクトIDから同定されるファイルを読み出して、そのファイルを、要求データの送信元に送信する処理であり、要求データがライト要求である場合、その要求データが有するオブジェクトIDから同定されるファイルを更新する処理である。
実施形態3では、実施形態1又は2において、要求転送処理部が、共有情報とその共有情報が示す共有単位を管理する末端装置又は中間装置を表す装置情報とが対応付けられた転送制御情報を参照して、上記受信した要求データが有するオブジェクトID内の共有情報に対応した装置情報を特定する。特定された装置情報が前記中間装置を表していれば、要求転送処理部は、上記判定を行い、特定された装置情報が末端装置又は他の中間装置を表していれば、上記受信した要求データをその末端装置又は他の中間装置に転送する。
実施形態4では、実施形態1乃至3のうちのいずれかにおいて、移行先オブジェクトIDの書き込み先は、移行元のファイルである。
実施形態5では、実施形態4において、ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含む。移行先オブジェクトIDの書き込み先は、移行元のファイル内の属性情報である。
実施形態6では、実施形態1乃至5のうちのいずれかにおいて、ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含む。移行処理部は、ファイル中の属性情報を移行せず、そのファイル中の実データを末端装置又は他の中間装置に移行する。
実施形態7では、実施形態6において、移行処理部は、移行の済んだ実データを移行元のファイルから削除する。
実施形態8では、実施形態6又は7において、要求転送処理部は、上記判定の結果が肯定的である場合、上記受信した要求データが、その要求データが有するオブジェクトIDから同定される移行元のファイル内の属性情報を参照又は更新し実データを参照又は更新することなく応答可能な要求データであるならば、その要求データを移行先の末端装置又は他の中間装置に転送することなく、その移行元のファイル内の属性情報を参照又は更新して、その要求データに対応する応答データを、その要求データの送信元に送信する。
実施形態9では、実施形態8において、要求転送処理部は、上記受信した要求データが、移行元のファイル内の実データを参照又は更新する必要があり、且つ、その要求データの処理の際にその移行元のファイル内の属性情報を更新する必要がある要求データであるならば、その移行元のファイル内の属性情報を変更してから、その要求データに対する応答データを、その要求データの送信元である前記クライアント又は他の中間装置に送信する。
実施形態10では、実施形態1乃至9のうちのいずれかにおいて、移行処理部は、上記中間装置が管理する共有単位から移行されたファイルをそれの移行先の末端装置又は他の中間装置から取得し、その共有単位から移行されたファイルが全て取得されたならば、上記移行判定情報を、その共有単位に移行済みファイルが含まれていないことを表す情報に更新する。
実施形態11では、実施形態10において、ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含み、移行処理部は、ファイル中の属性情報を移行せず、そのファイル中の実データを末端装置又は他の中間装置に移行し、この中間装置が管理する共有単位から移行された実データをそれの移行先の末端装置又は他の中間装置から取得して、移行元のファイルに戻し、その共有単位から移行された実データが全て取得されて全ての移行元のファイルにそれぞれ戻されたならば、上記移行判定情報を、その共有単位に移行済みファイルが含まれていないことを表す情報に更新する。
実施形態12では、実施形態1乃至11のうちのいずれかにおいて、クライアント、中間装置、及び、末端装置又は他の中間装置が第一の通信ネットワーク(例えばLAN(Local Area Network)に接続されている。共有単位に含まれているオブジェクトを記憶した記憶装置、前記中間装置、及び、末端装置又は他の中間装置が、第一の通信ネットワークとは別の通信ネットワークである第二の通信ネットワーク(例えばSAN(Storage Area Network))に接続されている。
実施形態13では、実施形態12において、移行処理部が、移行元のファイルのレイアウトに関する情報を表すレイアウト情報を、第一の通信ネットワークを介して移行先の末端装置又は他の中間装置に送信し、そのレイアウト情報に基づいて作成された移行先のファイルのオブジェクトIDを、第一の通信ネットワークを介して移行先の末端装置又は他の中間装置から受信し、上記受信したオブジェクトIDを移行先オブジェクトIDとして書き込む。
上述した各部(移行処理部、要求転送処理部)は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
以下、本発明の幾つかの実施形態を詳細に説明する。まず、それらの実施形態の概要を説明する。
移行対象のオブジェクトは、ファイルである。移行元ファイルサーバにディレクトリ構造はそのまま残して移行が行われる。ファイルは、属性情報(例えば、後述の基本属性情報と拡張属性情報を含んだ情報)と、実データとを含んでいる。ファイル内の属性情報はそのまま残され、ファイル内の実データのみが、移行先の装置(末端装置又は他の中間装置)にコピーされ、その後、移行元のファイルからその実データが削除される。さらに、移行元ファイルの属性情報(例えば拡張属性情報)に、移行先のファイルのオブジェクトID(移行先オブジェクトID)が含められる。
ファイルを移行した中間装置が、クライアント(又は他の中間装置)から、移行元オブジェクトIDを含む要求データを受信した場合、まず、その要求データがリモートの共有単位内のオブジェクトに対する要求データであるかローカルの共有単位内のオブジェクトに対する要求データであるかの判定(以下、リモート/ローカル判定)を行う。リモート/ローカル判定の結果、リモートの共有単位内のオブジェクトに対する要求データであると判定された場合、中間装置は、その要求データを、そのリモートの中間装置又は末端装置に転送する第一の転送処理(共有レベル転送処理)を行う。一方、リモート/ローカル判定の結果、ローカルの共有単位内のオブジェクトに対する要求データであると判定された場合、中間装置は、そのローカルの共有単位内に実データが移行されたファイル(移行済みファイル)があるかどうかの判定(以下、移行判定)を行う。移行判定の結果、当該共有単位内に移行済みファイルが含まれている場合、上記受信した要求データがリード要求又はライト要求のどちらかであり、かつ、移行元オブジェクトIDから同定されるファイルが移行元ファイルであるならば、中間装置は、移行元ファイル内の属性情報に含まれている移行先オブジェクトIDを取得し、その移行先オブジェクトIDを含んだ要求データを移行先の末端装置又は他の中間装置に転送する第二の転送処理(ファイルレベル転送処理)を行う。
つまり、クライアントが移行元のオブジェクトIDで移行先のファイルにアクセス可能にするための仮想化処理を、移行元の中間装置が行う。また、そのために必要な移行元ファイルのオブジェクトIDと移行先ファイルのオブジェクトIDの対応関係は、移行元ファイル内の属性情報に含めることで、移行元の中間装置のファイルシステムが保持する。そのため、移行元ファイルのオブジェクトIDと移行先ファイルのオブジェクトIDの対応関係を、移行元と移行先の装置間で同期する必要がない。更に、クライアント(又は他の中間装置)からの要求データが移行済みのファイルに対するファイルであるかどうかが、共有単位で判定される。これらのことから、高いスケーラビリティと要求転送処理の性能低下を抑えることを実現することが可能である。
<実施例1>。
図1は、本発明の実施例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、データ移行プログラム4203及びファイルシステムプログラム203を記憶する。記憶装置206は、一以上の物理的な記憶装置(例えばハードディスク或いはフラッシュメモリ等)の記憶空間を基に形成された論理的な記憶装置(論理ボリューム)であっても良いし、物理的な記憶装置であっても良い。記憶装置206は、ファイル等のデータを管理する少なくとも1つのファイルシステム207を備える。ファイルシステムプログラム203がプロセッサ201で実行されることにより、ファイルシステム207に対するファイルの格納や、ファイルシステム207からのファイルの読出しを行うことができる。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサによって処理が行われるものとする。
データ移行処理プログラム4203は、中間装置200から別の中間装置200へのデータ移行や、中間装置200から末端装置300へのデータの移行を行う。データ移行処理プログラム4203の動作の詳細については、後述する。
構成情報管理プログラム400は、中間装置200が親中間装置200pとしても子中間装置200cとしても振舞うことができるよう構成されている。以下、中間装置200を親中間装置200pとして振舞わせる場合の構成情報管理プログラム400を「親構成情報管理プログラム400p」と表記し、子中間装置200cとして振舞わせる場合の構成情報管理プログラム400を「子構成情報管理プログラム400c」と表記する。構成情報管理プログラム400は、親中間装置200p及び子中間装置200cとしてのいずれかのみに振舞うよう構成されていても良い。構成情報管理プログラム400、ファイルシステムプログラム203及びスイッチプログラム600の詳細については、後述する。
図3は、末端装置300の構成例を示すブロック図である。
末端装置300は、少なくとも1つのプロセッサ301と、メモリ302と、メモリ−入出力バス304と、入出力コントローラ305と、記憶装置306とを備える。メモリ302は、ファイルサービスプログラム308と、ファイルシステムプログラム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へ送信する。また、中間・末端装置通信部605は、中間装置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は、ファイルシステムプログラム203の構成例を示すブロック図である。
ファイルシステムプログラム203は、ファイルレベル移行処理部2031と、ローカルデータアクセス部2032と、リモートデータアクセス部2033と、ファイルレベル移行済共有リスト2034とを備える。
ファイルレベル移行処理部2031は、クライアント100からの要求データが自分自身の有するファイルシステム207(自ローカルファイルシステム)内のオブジェクトに対する要求データであるとファイルアクセス管理部700によって判定された場合に、当該要求データをファイルアクセス管理部700から受け取る。ファイルレベル移行処理部2031は、ファイルアクセス管理部700から受け取った要求データを解析し、当該要求データが未移行のファイルに対する要求データである場合には、ローカルデータアクセス部2032を経由し、ファイルシステム207内のファイルに対して、その要求データに従う操作を実行する。一方、当該要求データが移行済みのファイルに対する要求データである場合には、ファイルレベル移行処理部2031は、リモートデータアクセス部2033を経由し、移行先の中間装置200または末端装置300へ、要求データを転送する。
ファイルレベル移行済共有リスト2034は、それまでにファイルレベルのデータ移行を行った共有の共有IDを保持した電子的なリストである。ファイルレベル移行済共有リスト2034の構成例を図31Aに示す。ファイルレベル移行済み共有リスト2034には、移行済み共有単位(少なくとも一つの移行済みファイルを含んだ共有単位)毎にエントリがあり、各エントリに、移行済み共有単位に対応する共有IDと、その移行済み共有単位内に含まれる移行済みファイル(データが移行されたファイル)の数とが含まれる。ファイルレベル移行済共有リスト2034は、ファイルレベル移行処理部2031が、クライアント100からの要求が移行済みのファイルに対するものであるかどうかを効率よく判定するために使用される。
図8は、ファイルアクセス管理部700の構成例を示すブロック図である。
ファイルアクセス管理部700は、要求データ解析部702と、要求データ処理部701と、応答データ出力部703とを備え、スイッチ情報管理テーブル800と、サーバ情報管理テーブル900と、アルゴリズム情報管理テーブル1000と、接続ポイント管理テーブル1100とを参照する機能を有する。
スイッチ情報管理テーブル800、サーバ情報管理テーブル900、アルゴリズム情報管理テーブル1000及び接続ポイント管理テーブル1100については、後述する。
要求データ解析部702は、クライアント通信部606から通知された要求データを解析する。そして、要求データ解析部702は、通知された要求データからオブジェクトIDを取得し、そのオブジェクトIDから、共有IDを取得する。
要求データ処理部701は、要求データ解析部702が取得した共有IDに基づいて、スイッチ情報管理テーブル800と、サーバ情報管理テーブル900と、アルゴリズム情報管理テーブル1000と、接続ポイント管理テーブル1100とのうちの任意の情報を参照し、要求データを処理する。
応答データ出力部703は、要求データ処理部701から通知された応答データをクライアント100が応答可能な形式にして、クライアント通信部606へ出力する。
図9は、スイッチ情報管理テーブル800の構成例を示す図である。
スイッチ情報管理テーブル800は、共有ID801と、サーバ情報ID802と、アルゴリズム情報ID803との組によって構成されたエントリを有するテーブルである。共有ID801は、共有単位を同定するためのIDである。サーバ情報ID802は、サーバ情報を同定するためのIDである。アルゴリズム情報ID803は、アルゴリズム情報を同定するためのIDである。中間装置200は、オブジェクトIDから取得された共有IDに一致する共有ID801に対応したサーバ情報ID802及びアルゴリズム情報ID803を取得することができる。本テーブル800には、一つの共有ID801に対して複数のサーバ情報ID802及びアルゴリズム情報ID803の組が登録されても良い。
図10は、サーバ情報管理テーブル900の構成例を示す図である。
サーバ情報管理テーブル900は、サーバ情報ID901とサーバ情報902との組によって構成されたエントリを有するテーブルである。サーバ情報902は、例えば、中間装置200又は末端装置300のIPアドレスや、ソケット構造体などである。中間装置200は、取得されたサーバ情報ID702に一致するサーバ情報ID901に対応したサーバ情報902を取得し、そのサーバ情報902から、クライアント100からの要求の処理先(例えば転送先)を特定することできる。
図11は、アルゴリズム情報管理テーブル1000の構成例を示す図である。
アルゴリズム情報管理テーブル1000は、アルゴリズム情報ID1001と、アルゴリズム情報1002との組によって構成されたエントリを有するテーブルである。アルゴリズム情報1002は、オブジェクトIDの変換方式を示す情報である。中間装置200は、取得されたアルゴリズム情報ID1001に一致するアルゴリズム情報ID1001に対応したアルゴリズム情報1002を取得し、そのアルゴリズム情報1002から、オブジェクトIDをどのように変換するかを特定することができる。
なお、本実施形態では、スイッチ情報管理テーブル800とサーバ情報管理テーブル900とアルゴリズム情報管理テーブル1000は、別々のテーブルとして構成されたが、スイッチ情報管理テーブル800に、サーバ情報902とアルゴリズム情報1002とを含めることで、これらが一つのテーブルとして構成されてもよい。
図12は、接続ポイント管理テーブル1100の構成例を示す図である。
接続ポイント管理テーブル1100は、接続元オブジェクトID1101と、接続先共有ID1102と、接続先オブジェクトID1103との組で構成されたエントリを有するテーブルである。このテーブルが参照されることによって、中間装置200は、或る共有単位から別の共有単位へ跨るアクセスの場合も、クライアント100に対して単一の共有単位へのアクセス手順のみでのアクセスが可能となる。なお、ここでの接続元オブジェクトID1101や接続先オブジェクトID1103は、オブジェクトを同定する識別子(例えばファイルハンドル等)であり、クライアント100と中間装置200でやり取りされるものでもよいし、両者間でやり取りされるものでなくともオブジェクトを同定できるものであればよい。
図13は、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の変換をどのように行うかを示すアルゴリズム情報の識別子である。
図14Aは、拡張形式OKケースでやり取りされるオブジェクトIDの一例を示す図である。図14Bは、拡張形式NGケースでやり取りされるオブジェクトIDを示す図である。
拡張形式OKケースとは、共有ID形式フォーマットのオブジェクトIDを末端装置300が解釈できる場合であり、拡張形式NGケースとは、共有ID形式フォーマットのオブジェクトIDを末端装置300が解釈できない場合であり、それぞれの場合で、装置間でやり取りされるオブジェクトIDが異なる。
共有ID形式のフォーマットとは、オリジナルオブジェクトIDが拡張されたオブジェクトIDのフォーマットであり、3つのフィールドが用意されている。第一のフィールドには、オブジェクトID形式を示す情報であるオブジェクトID形式1301が書かれる。第二のフィールドには、共有単位を同定するための共有ID1302が書かれる。第三のフィールドには、拡張形式OKケースでは、図14Aに示すように、オリジナルオブジェクトID1303が書かれ、拡張形式NGケースでは、図14Bの(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との間では、図14Bの(a)に示すように、共有ID形式フォーマットのオブジェクトIDがやり取りされるが、第三のフィールドには、前述したように、変換後のオリジナルオブジェクトID1304が書かれる。そして、中間装置200と末端装置300との間では、図14Bの(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のデータ長よりも短くなるように変換される。
図15Aは、データ移行処理が行われていないファイルの一例を示したものである。
データ移行処理が行われていないファイルは、基本属性情報1501と、拡張属性情報1502と、データ1503から構成される。基本属性情報1501は、ファイルの所有権や最終アクセス日時など、ファイルシステム固有の属性情報である。拡張属性情報1502は、ファイルシステム固有の属性情報とは別に、独自に定義された属性情報である。データ1503は、ファイルの中身としての実際のデータである。
図15Bは、データ移行処理が行われたファイルの一例を示したものである。
データ移行処理が行われたファイル(移行元のファイル)は、基本属性情報1501と、拡張属性情報1502から構成され、データ1503が無い構成となる(つまり、いわゆるスタブファイルとなる)。なぜなら、後述するように、移行された後にファイルからデータ1503が削除されるためである。基本属性情報1501は、データ移行処理後もデータ移行処理前と同様に使用される。拡張属性情報1502には、データ移行処理の際に、移行先オブジェクトID1504が格納される。なお、図15Bは一例であり、例えば拡張属性情報1502が無くても良い。その場合には、例えば、記憶装置206などの記憶資源に、当該ファイルと移行先オブジェクトID1504との対応関係が記録されればよい。
図15Cは、データ移行先のファイルの一例を示したものである。
データ移行先のファイルは、基本属性情報1501と、拡張属性情報1502と、データ1503から構成されるが、実際にはデータ1503のみが使用される。
次に、中間装置200の動作について説明する。中間装置200は、上述したように、複数の共有単位を統合して単一の擬似的なファイルシステムとしたもの、つまりGNSをクライアント100に提供する。
図16は、中間装置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)。ここで、前述したように、共有ID901が、取得した共有ID1402と一致するエントリは、複数存在する場合もある。
一致するエントリがない場合は(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)。応答処理の詳細については、図17を用いて説明する。
図17は、中間装置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へ送信し、応答処理を終了する。
図18は、中間装置200が行うGNSローカル処理のフローチャートである。
まず、要求データから抽出されたオブジェクトID中の共有ID1302とオリジナルオブジェクトID1303とから、アクセス対象のオブジェクトが同定される(S301)。
次に、要求データ中に含まれている、オブジェクトに対するオペレーション(例えば、ファイルの書込み或いは読出し)を示す情報に基づいて、応答データが作成される(S302)。応答データ中にオブジェクトIDを含める必要がある場合には、そのオブジェクトIDのフォーマットには、受信したフォーマットと同じフォーマットが用いられる。
その後、スイッチプログラム600のファイルアクセス管理部700により、接続ポイント処理が行われる(S400)。
その後、応答データがクライアント100へ送信される。
図19は、中間装置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へ処理を移す。
以下、この実施形態においてデータ移行に関する部分について特に詳細に説明する。
図20は、中間装置200で実行されるデータ移行プログラム4203が行うデータ移行処理のフローチャートである。
データ移行処理は、例えば、管理者が任意のディレクトリツリーまたはファイルを指定し、中間装置200に指示を出すことによって開始される。なお、データ移行処理の開始は、ファイルやファイルシステムが特定の状態になったことが契機となって自動的に開始されても良い。ファイルやファイルシステムの特定の状態とは、例えば、ファイルの最終アクセス時刻が現在時刻よりも一定時間経過した場合や、ファイルシステムの容量が一定の容量を超過した場合などである。
データ移行処理が開始されると、データ移行プログラム4203は、移行対象のディレクトリツリーまたはファイルが存在する共有単位の共有IDを取得し、取得した共有IDがファイルレベル移行済共有リスト2034に存在するかを判定する(S501)。
取得した共有IDがファイルレベル移行済共有リスト2034に存在しない場合(S501:NO)、データ移行プログラム4203は、取得した共有IDをファイルレベル移行済共有リスト2034に追加し(S502)、ファイルコピー処理(S600)に移る。
取得した共有IDがファイルレベル移行済共有リストに存在する場合は(S501:YES)、データ移行プログラム4203は、そのままファイルコピー処理(S600)を行う。ファイルコピー処理の詳細については、後述する。
ファイルコピー処理後は、データ移行プログラム4203は、削除ファイルリスト(図示せず)に登録されている各ファイル識別情報(例えば、移行元オブジェクトID又はファイルパス名)から同定される各ファイルからデータ1503を削除する(S503)。削除ファイルリストは、ファイルコピー処理中に作成される電子的なリストである。なお、ファイルからデータ1503が削除されても、ファイル内の基本属性情報1501においてファイルサイズは更新しなくてもよい。
図21は、中間装置200で実行されるデータ移行プログラム4203が行うファイルコピー処理のフローチャートである。
まず、データ移行プログラム4203は、移行対象のディレクトリツリーからオブジェクトを1つ選択する(S601)。
次に、データ移行プログラム4203は、S601で選択したオブジェクトがファイルかどうかを判定する(S602)。
オブジェクトがファイルであった場合(S602:YES)、データ移行プログラム4203は、そのファイル(S601で選択されたファイル、以下、図21の説明において「選択ファイル」と呼ぶ)をロックする((S603)。具体的には、例えば、データ移行プログラム4203は、選択ファイルに対応したアクセス排他制御のためのフラグを表す論理値を“0”から“1”に変更する。これにより、選択ファイルが更新されることが防止される。
そして、データ移行プログラム4203は、移行先ファイルシステム(移行先の中間装置200又は末端装置300内のファイルシステム207又は307)に選択ファイルをコピーし、移行先オブジェクトIDを取得する(S604)。具体的には、例えば、データ移行プログラム4203は、選択ファイルからデータ1503を読出し、読み出したデータ1503を、移行先の中間装置200又は末端装置300に送信し、それに対する応答として、移行先の中間装置200又は末端装置300から、移行先ファイルシステムにおける移行先ファイル(送信されたデータ1503を含んだファイル)を同定するためのオブジェクトIDである移行先オブジェクトIDを受信する。移行先オブジェクトIDは、移行先の中間装置200又は末端装置300で実行されるファイルシステムプログラム203又は303によって作成される。ここで、例えば、移行先が中間装置200である場合には、共有IDを含んだ移行先オブジェクトIDが作成される。一方、移行先の中間装置200又は末端装置300が共有ID形式フォーマットのオブジェクトIDを解釈しない場合には、共有IDを含んでいない移行先オブジェクトIDが作成され、その場合には、後述するように、オブジェクトID変換処理部602が、その移行先オブジェクトIDに、アルゴリズム情報1102に基づいて変換処理を施すことで、共有IDを含んだオブジェクトIDを生成して保存する。
データ移行プログラム4203は、取得した移行先オブジェクトIDを、選択ファイル(移行元ファイル)の拡張属性情報1502に含めることで、移行先オブジェクトIDを保存する(S605)。ここで、保存する移行先オブジェクトIDは、共有ID形式フォーマットのオブジェクトIDである。すなわち、移行先の中間装置200又は末端装置300が共有ID形式フォーマットのオブジェクトIDを解釈しない場合には、オブジェクトID変換処理部602がアルゴリズム情報1102に基づいて変換処理を行った後のオブジェクトIDを保存する。
そして、データ移行プログラム4203は、選択ファイル(移行元ファイル)の識別子を削除ファイルリストに登録し、ファイルレベル移行済共有リスト2034の移行済ファイル数を1インクリメントした上で(S606)、選択ファイルをアンロックする(S607)。なお、この削除ファイルリストは、前述したように、削除対象のファイルを識別するための情報(例えば、オブジェクトIDやファイルパス名)を保持した電子的なリストである。
次に、データ移行プログラム4203は、当該選択ファイル以外に移行対象がないかどうかを判定する(S608)。S601で選択したオブジェクトがファイルでない場合も(S602:NO)、このS608が行われる。移行対象がない場合(S608:YES)、データ移行プログラム4203は、ファイルコピー処理を終了する。他に移行対象がある場合(S608:NO)、S601に戻り、再び次のオブジェクトを選択する。
図31Bは、移行先ファイル内のデータを移行元ファイル内に戻すために行われる処理の流れを示す。
移行元ファイルを含んだ共有単位を管理する中間装置(移行元の中間装置)200において、データ移行プログラム4203が、移行先オブジェクトIDを含んだ要求データ(移行元ファイルにデータを戻すことを表す要求データ)を、移行先の中間装置200又は末端装置300に送信する(S3001)。移行先の中間装置200又は末端装置300は、以下の流れで特定される。すなわち、移行先オブジェクトID内の共有IDに対応したサーバIDが、スイッチ情報管理テーブル800を参照することで特定され、そのサーバIDに対応したサーバ情報が、サーバ情報管理テーブル900を参照することで特定され、そのサーバ情報を基に、移行先の中間装置200又は末端装置300が特定される。
移行先の中間装置200におけるスイッチプログラム600又は末端装置300におけるファイルサービスプログラム308が、要求データを受信し(S3002)、中間装置200又は末端装置300におけるファイルシステムプログラム203又は303が、その要求データが有する移行先オブジェクトIDから同定される移行先ファイルからデータ1503を読出し、読み出したデータ1503を、移行先の中間装置200におけるスイッチプログラム600又は末端装置300におけるファイルサービスプログラム308が、移行元の中間装置200に送信する(S3003)。
移行元の中間装置200において、データ移行プログラム4203が、移行先の中間装置200又は末端装置300からデータ1503を受信し、受信したデータ1503を、移行元ファイルに収納し、その移行元ファイルを含んだ共有単位に対応する移行済みファイル数(ファイルレベル移行済み共有リスト2034に登録されている移行済みファイル数)を1デクリメントする(S3004)。その結果、移行済みファイル数が0になれば(S3005:YES)、その共有単位には移行済みファイルが含まれていないということになるので、データ移行プログラム4203は、その共有単位に対応するエントリをファイルレベル移行済み共有リスト2034及び削除ファイルリストから削除する(S3006)。
以上の流れによれば、要するに、データ移行プログラム4203は、移行元ファイル内のデータ1503を移行先ファイルから回収することができる。中間装置200が管理する共有単位内の全ての移行済みファイル(移行元ファイル)にデータ1503が戻った場合、その共有単位は、移行済み共有単位ではなくなり、故に、ファイルレベル移行済み共有リスト2034や削除ファイルリストから、その共有単位を同定するための共有IDを含んだエントリは削除される。
図22は、クライアント100から要求データを受信した中間装置200が行う処理のフローチャートである。
まず、クライアント通信部606が、クライアント100からオブジェクトへのアクセス要求を表す要求データを受信する(S701)。要求データには、アクセス対象のオブジェクトを同定するためのオブジェクトIDが含まれている。クライアント通信部606は、このオブジェクトID中の共有ID(以下、図22の説明において「指定共有ID」と言う)から、要求データがローカルに対するものか、リモートに対するものかを判定する(S702)。なお、ここまでの動作は、図16のGNS提供処理のフローチャートにおけるS103までの動作と同様である。
要求データがリモートに対するものであった場合(S702:NO)、GNSスイッチ処理が行われる(S703)。GNSスイッチ処理は、S104からS200の処理と同様である。
要求データがローカルに対するものであった場合(S702:YES)、ファイルレベル移行処理部2031は、指定共有IDがファイルレベル移行済共有リスト2034に存在するかどうかを判定する(S704)。
指定共有IDがファイルレベル移行済共有リスト2034に存在する場合(S704:YES)、ファイルレベル移行処理部2031は、要求データがリード要求またはライト要求であるかを判定する(S705)。
要求データがリード要求またはライト要求であった場合(S705:YES)、ファイルレベル移行処理部2031は、その要求データが有するオブジェクトIDからファイルを同定し、そのファイルの拡張属性情報1502に移行先オブジェクトIDが存在するかどうかを判定する(S706)。
ファイルの拡張属性情報1502に移行先オブジェクトIDが存在する場合(S706:YES)、ファイルレベル移行処理部2031は、その移行先オブジェクトIDを取得する(S707)。ファイルレベル移行処理部2031の指示を受け、リモートデータアクセス部2033は、当該要求データ中のオブジェクトIDを、取得した移行先オブジェクトIDに書き換えた要求データを、移行先の中間装置200又は末端装置300に対して発行し、結果を取得する(S708)。移行先の中間装置200または末端装置300に対して要求データを発行する処理は、図16のGNS提供処理のフローチャートと同様の処理である。
S705及びS708に示したように、クライアント100からの要求データのうち、リード要求およびライト要求だけが、移行先の中間装置200または末端装置300に転送される。すなわち、ファイル内の属性情報(基本属性情報1501又は拡張属性情報1502)のみにアクセスするような要求データ(例えば、ファイル共有プロトコルがNFSの場合、GETATTR要求など)の場合、ファイルシステムプログラム203は、移行元ファイルの属性情報を使用して応答を行い、移行先の中間装置200又は末端装置300にはアクセスしない(要求データを転送しない)。また、ファイルシステムプログラム203は、移行先の中間装置200または末端装置300に転送したリード要求およびライト要求によって、移行元ファイル内の属性情報(最終アクセス時刻やファイルサイズなどの属性情報)が変化する場合には、移行元ファイル内の属性情報を変更し、その後に、クライアント100に応答データを送信する。
指定共有IDがファイルレベル移行済共有リストに存在しない場合(S704:NO)、要求データがリード要求またはライト要求でない場合(S705:NO)、及び、ファイル内の拡張属性情報1502に移行先オブジェクトIDが存在しない場合(S706:NO)は、GNSローカル処理が行われる(S300)。
S703、S300、S708のいずれかが終了した後は、スイッチプログラム600は、結果をクライアント100に応答して、処理を終了する(S709)。
本実施形態によれば、クライアント100が移行元のオブジェクトIDで移行先のファイルにアクセス可能にするための仮想化処理を、移行元のスイッチプログラム600およびファイルシステムプログラム203が行う。また、そのために必要な移行元ファイルのオブジェクトIDと移行先ファイルのオブジェクトIDの対応関係は、移行先オブジェクトIDが移行元ファイル内の属性情報に含まれるため、移行元のファイルシステム207がもつことになる。そのため、移行元ファイルのオブジェクトIDと移行先ファイルのオブジェクトIDの対応関係を装置間で同期する必要がない。加えて、本実施形態では、クライアント100からの要求データが移行済みのファイルに対するものであるかどうかが共有単位レベルで判定される。これらのことから、高いスケーラビリティと要求転送処理の性能低下を抑えたファイルレベルのデータ移行(ファイル単位およびディレクトリ単位でのデータ移行)を実現することが可能である。
<実施例2>。
次に、本発明の実施例2を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略または簡略する。
図23は、本発明の実施例2に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
実施例2に係るコンピュータシステムは、図1のコンピュータシステムに加えて、ネットワーク2301と記憶装置2302とをさらに備える。
ネットワーク2301は、中間装置200および末端装置300と、記憶装置2302とを接続するための専用通信ネットワークであり、ネットワーク101とは異なる。このネットワーク2301は、例えば、SAN(Storage Area Network)である。
記憶装置2302は、中間装置200や末端装置300がネットワーク2301を介して使用するもので、例えば、複数のメディアドライブ(例えば、ハードディスクドライブ或いはフラッシュメモリドライブ)を備えたストレージシステムなどが該当する。
実施例2の中間装置200および末端装置300は、図24および図25にそれぞれ示すように、データ転送プログラム2600をさらに備える。
データ転送プログラム2600は、親データ転送プログラム2600pと子データ転送プログラム2600cとがあり、中間装置200が、そのいずれかまたは両方を備え、末端装置300が、子データ転送プログラム2600cを備える。
図26は、親データ転送プログラム2600pの構成例を示すブロック図である。
親データ転送プログラム2600pは、データ転送管理部2601pと、制御情報通信部2602pとを備える。
データ転送管理部2601pは、データ移行プログラム4203から指示を受け、データ転送の制御を行う。制御情報通信部2602pは、子データ転送プログラム2600cと通信を行い、データ転送の開始や終了などの制御情報を送受信する。
図27は、子データ転送プログラム2600cの構成例を示すブロック図である。
子データ転送プログラム2600cは、データ転送管理部2601cと、制御情報通信部2602cと、データ転送読出し部2603cとを備える。データ転送管理部2601cは、制御情報通信部2602cで受信した親データ転送プログラム2600pの指示に従い、データ転送を制御する。データ転送読出し部2603cは、データ転送管理部2601cの指示に従い、移行対象のファイルのデータを読み出す。
次に、実施例2におけるデータ移行処理について詳細に説明する。
図28は、実施例2における中間装置200で実行されるデータ移行プログラム4203が行うファイルコピー処理のフローチャートである。
実施例1での処理の手順と異なるのは、ファイルのコピーを行う際に、ネットワーク2301を使用してデータを転送する点である。すなわち、図21におけるS604の処理のかわりに、親データ転送プログラム2600pによって、親データ転送処理(S800)が行われる。
図29は、親データ転送プログラム2600pが行う親データ転送処理のフローチャートである。また、図30は、子データ転送プログラム2600cが行う子データ転送処理のフローチャートである。親データ転送プログラム2600pと子データ転送プログラム2600cは相互に通信して処理を行うため、以下、図29と図30の両方を適宜に参照して説明する。
まず、親データ転送プログラム2600pのデータ転送管理部2601pは、データ転送開始通知を制御情報通信部2602pから送信する(S801)。送信先は、子データ転送プログラム2600cを備えた中間装置200または末端装置300である。
子データ転送プログラム2600cは、制御情報通信部2602cでデータ転送開始通知を受信すると(S901)、データ転送が可能であることを、制御情報通信部2602c経由で親データ転送プログラム2600pに通知する(S902)。
親データ転送プログラム2600pは、データ転送可能通知を受信すると(S802)、ファイルシステムプログラム203から移行対象のファイルのレイアウト情報(例えば、ブロック番号などが記録されたiノード情報)を取得し、これを制御情報通信部2602pから子データ転送プログラム2600cに送信する(S803)。
子データ転送プログラム2600cは、レイアウト情報を受信すると(S903)、ファイルを作成する(S904)。ここで作成されたファイルは、データ1503の存在しない空の移行先ファイルである。そして、そのレイアウト情報に基づき、データ読出し部2603cが、ネットワーク2301を介して移行元中間装置200のファイルシステム207からデータ1503(移行元ファイル内のデータ1503)を読み出し、S904で作成したファイルに、そのデータ1503を書き込む(S905)。データ読込みおよび書込みが終了したら、制御情報通信部2602c経由で、親データ転送プログラム2600pに対し、作成したファイルのオブジェクトID(移行先オブジェクトID)とデータ転送終了通知が送信される(S906、S907)。
親データ転送プログラム2600pは、移行先オブジェクトIDとデータ転送終了通知を受信して、データ転送処理を終了する(S804、S805)。
なお、本実施形態では、親データ転送プログラム2600pがレイアウト情報を送信し、子データ転送プログラム2600cのデータ読出し部2603cがデータを読む方式をとっているが、子データ転送プログラム2600cがレイアウト情報を送信し、データ書込み部を備えた親データ転送プログラム2600pが、受信したレイアウト情報をもとにデータを書き込むことによって、データ転送を実現してもよい。
本実施形態によれば、移行元中間装置200のファイルシステム207から移行先中間装置200または末端装置300のファイルシステム207にデータをコピーする際に、専用のネットワーク2301を経由するため、実施例1と比べて、クライアント100と中間装置200および末端装置300とのネットワーク101に負荷をかけることなく、かつ、高速にコピー処理を行うことが可能である。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
図1は、本発明の実施例1に係る中間装置を備えたコンピュータシステムの構成例を示す図である。 図2は、実施例1における中間装置の構成例を示すブロック図である。 図3は、実施例1における末端装置の構成例を示すブロック図である。 図4は、親構成情報管理プログラムを示すブロック図である。 図5は、子構成情報管理プログラムの構成例を示すブロック図である。 図6は、スイッチプログラムの構成例を示すブロック図である。 図7は、ファイルシステムプログラムの構成例を示すブロック図である。 図8は、ファイルアクセス管理部の構成例を示すブロック図である。 図9は、スイッチ情報管理テーブルの構成例を示す図である。 図10は、サーバ情報管理テーブルの構成例を示す図である。 図11は、アルゴリズム情報管理テーブルの構成例を示す図である。 図12は、接続ポイント管理テーブルの構成例を示す図である。 図13は、GNS構成情報テーブルの構成例を示す図である。 図14Aは、拡張形式OKケースでやり取りされるオブジェクトIDの一例を示す図である。図14B(a)は、拡張形式NGケースにおいてクライアントと中間装置との間、及び中間装置と中間装置との間でやり取りされるオブジェクトIDの一例を示す図である。図14B(b)は、拡張形式NGケースにおいて中間装置と末端装置との間でやり取りされるオブジェクトIDの一例を示す図である。 図15Aは、データ移行処理が行われていないファイルの一例を示したものである。図15Bは、データ移行処理が行われたファイルの一例を示したものである。図15Cは、データ移行先のファイルの一例を示したものである。 図16は、中間装置がGNSを提供する処理のフローチャートである。 図17は、中間装置が応答データを受信した際の処理(応答処理)のフローチャートである。 図18は、中間装置が行うGNSローカル処理のフローチャートである。 図19は、中間装置が行う接続ポイント処理のフローチャートである。 図20は、実施例1でのデータ移行処理のフローチャートである。 図21は、実施例1でのデータ移行処理中に行われるファイルコピー処理のフローチャートである。 図22は、クライアントから要求データを受信した中間装置が行う処理のフローチャートである。 図23は、本発明の実施例2に係る中間装置を備えたコンピュータシステムの構成例を示す図である。 図24は、実施例2における中間装置の構成例を示すブロック図である。 図25は、実施例2における末端装置の構成例を示すブロック図である。 図26は、親データ転送プログラムの構成例を示すブロック図である。 図27は、子データ転送プログラムの構成例を示すブロック図である。 図28は、実施例2でのデータ移行処理中に行われるファイルコピー処理のフローチャートである。 図29は、親データ転送処理のフローチャートである。 図30は、子データ転送処理のフローチャートである。 図31Aは、ファイルレベル移行共有リストの構成例を示す。図31Bは、移行先ファイル内のデータを移行元ファイル内に戻すために行われる処理の流れを示す。
符号の説明
100…クライアント 200…中間装置 300…末端装置 600…スイッチプログラム 700…ファイルアクセス管理部 800…スイッチ情報管理テーブル 900…サーバ情報管理テーブル 1000…アルゴリズム情報管理テーブル

Claims (15)

  1. 論理的な公開の単位であり一つ以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行い、クライアントとファイルサーバとの間に論理的に配置される中間装置であって、
    共有単位を管理するファイルサーバである末端装置又は他の中間装置にオブジェクトであるファイルを移行し、そのファイルに対応した、共有単位を示す共有情報を含んだ移行先のオブジェクトIDを書き込み、移行済みのファイルを含む又は含まない共有単位を表す移行判定情報を、前記ファイルを含んだ共有単位に移行済みのファイルが含まれていることを表す情報に更新する移行処理部と、
    オブジェクトIDを有する要求データをクライアント又は他の中間装置から受信し、その要求データが有するオブジェクトID内の共有情報が表す共有単位が移行済みのファイルを含んだ移行済み共有単位であるか否かの判定を、前記移行判定情報を参照することにより行い、前記判定の結果が肯定的な結果の場合、そのオブジェクトIDに対応するファイルが移行されたファイルならば、そのファイルに対応した前記書き込まれた移行先オブジェクトIDを特定し、特定された移行先オブジェクトIDを有した要求データを、移行先の末端装置又は他の中間装置に転送する要求転送処理部と
    を備える中間装置。
  2. 前記要求転送処理部が、前記判定の結果が否定的な結果の場合、前記要求データを転送することなくその要求データに従うオペレーションを実行する、
    請求項1記載の中間装置。
  3. 前記要求転送処理部が、共有情報とその共有情報が示す共有単位を管理する末端装置又は中間装置を表す装置情報とが対応付けられた転送制御情報を参照して、前記受信した要求データが有するオブジェクトID内の共有情報に対応した装置情報を特定し、特定された装置情報が前記中間装置を表していれば、前記判定を行い、特定された装置情報が末端装置又は他の中間装置を表していれば、前記受信した要求データをその末端装置又は他の中間装置に転送する、
    請求項1又は2記載の中間装置。
  4. 前記移行先オブジェクトIDの書き込み先は、移行元のファイルである、
    請求項1乃至3のうちのいずれか一項に記載の中間装置。
  5. 前記ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含み、
    前記移行先オブジェクトIDの書き込み先は、移行元のファイル内の属性情報である、
    請求項4記載の中間装置。
  6. 前記ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含み、
    前記移行処理部は、ファイル中の属性情報を移行せず、そのファイル中の前記実データを末端装置又は他の中間装置に移行する、
    請求項1乃至5のうちのいずれか一項に記載の中間装置。
  7. 前記移行処理部は、移行された前記実データを移行元の前記ファイルから削除する、
    請求項6記載の中間装置。
  8. 前記要求転送処理部は、前記判定の結果が肯定的である場合、前記受信した要求データが、その要求データが有するオブジェクトIDから同定される移行元のファイル内の前記属性情報を参照又は更新し実データを参照又は更新することなく応答可能な要求データであるならば、その要求データを前記移行先の末端装置又は他の中間装置に転送することなく、その移行元のファイル内の前記属性情報を参照又は更新して、その要求データに対応する応答データを、その要求データの送信元である前記クライアント又は他の中間装置に送信する、
    請求項6又は7記載の中間装置。
  9. 前記要求転送処理部は、前記受信した要求データが、移行元のファイル内の実データを参照又は更新する必要があり、且つ、その要求データの処理の際にその移行元のファイル内の前記属性情報を更新する必要がある要求データであるならば、その移行元のファイル内の前記属性情報を変更してから、その要求データに対する応答データを、その要求データの送信元である前記クライアント又は他の中間装置に送信する、
    請求項8記載の中間装置。
  10. 前記移行処理部は、前記中間装置が管理する共有単位から移行されたファイルをそれの移行先の末端装置又は他の中間装置から取得し、その共有単位から移行されたファイルが全て取得されたならば、前記移行判定情報を、その共有単位に移行済みファイルが含まれていないことを表す情報に更新する、
    請求項1乃至9のうちのいずれか一項に記載の中間装置。
  11. 前記ファイルは、ファイルに関する属性情報と、ファイルの中身としてのデータである実データとを含み、
    前記移行処理部は、ファイル中の属性情報を移行せず、そのファイル中の前記実データを末端装置又は他の中間装置に移行し、前記中間装置が管理する共有単位から移行された実データをそれの移行先の末端装置又は他の中間装置から取得して、移行元のファイルに戻し、その共有単位から移行された実データが全て取得されて全ての移行元のファイルにそれぞれ戻されたならば、前記移行判定情報を、その共有単位に移行済みファイルが含まれていないことを表す情報に更新する、
    請求項10に記載の中間装置。
  12. 前記クライアント、前記中間装置、及び、末端装置又は他の中間装置が第一の通信ネットワークに接続されており、
    共有単位に含まれているオブジェクトを記憶した記憶装置、前記中間装置、及び、末端装置又は他の中間装置が、前記第一の通信ネットワークとは別の通信ネットワークである第二の通信ネットワークに接続されている、
    請求項1乃至11のうちのいずれか一項に記載の中間装置。
  13. 前記移行処理部が、移行元のファイルのレイアウトに関する情報を表すレイアウト情報を、前記第一の通信ネットワークを介して前記移行先の末端装置又は他の中間装置に送信し、そのレイアウト情報に基づいて作成された移行先のファイルのオブジェクトIDを、前記第一の通信ネットワークを介して前記移行先の末端装置又は他の中間装置から受信し、前記受信したオブジェクトIDを前記移行先オブジェクトIDとして書き込む、
    請求項12記載の中間装置。
  14. クライアントにファイルサービスを提供するファイルサーバシステムであって、
    論理的な公開の単位であり一以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行い、クライアントとファイルサーバとの間に論理的に配置される中間装置を複数台備え、
    各中間装置が、
    共有単位を管理するファイルサーバである末端装置又は他の中間装置にオブジェクトであるファイルを移行し、そのファイルに対応した、共有単位を示す共有情報を含んだ移行先のオブジェクトIDを書き込み、移行済みのファイルを含む又は含まない共有単位を表す移行判定情報を、前記ファイルを含んだ共有単位に移行済みのファイルが含まれていることを表す情報に更新する移行処理部と、
    オブジェクトIDを有する要求データをクライアント又は他の中間装置から受信し、その要求データが有するオブジェクトID内の共有情報が表す共有単位が移行済みのファイルを含んだ移行済み共有単位であるか否かの判定を、前記移行判定情報を参照することにより行い、前記判定の結果が肯定的な結果の場合、そのオブジェクトIDに対応するファイルが移行されたファイルならば、そのファイルに対応した前記書き込まれた移行先オブジェクトIDを特定し、特定された移行先オブジェクトIDを有した要求データを、移行先の末端装置又は他の中間装置に転送する要求転送処理部と
    を備える、
    ファイルサーバシステム。
  15. 論理的な公開の単位であり一つ以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行うコンピュータシステムで実現される方法であって、
    第一のファイル仮想化装置が、オブジェクトであるファイルを、ファイルサーバである末端装置又は第二のファイル仮想化装置に移行し、
    前記第一のファイル仮想化装置が、そのファイルに対応した、共有単位を示す共有情報を含んだ移行先のオブジェクトIDを書き込み、
    前記第一のファイル仮想化装置が、移行済みのファイルを含む又は含まない共有単位を表す移行判定情報を、前記ファイルを含んだ共有単位に移行済みのファイルが含まれていることを表す情報に更新し、
    前記第一のファイル仮想化装置が、オブジェクトIDを有する要求データを受信し、
    前記第一のファイル仮想化装置が、その要求データが有するオブジェクトID内の共有情報が表す共有単位が移行済みのファイルを含んだ移行済み共有単位であるか否かの判定を、前記移行判定情報を参照することにより行い、
    前記第一のファイル仮想化装置が、前記判定の結果が肯定的な結果の場合に、そのオブジェクトIDに対応するファイルが移行されたファイルならば、そのファイルに対応した前記書き込まれた移行先オブジェクトIDを特定し、特定された移行先オブジェクトIDを有した要求データを、前記末端装置又は第二のファイル仮想化装置に転送する、
    データ移行処理方法。
JP2007226466A 2007-08-31 2007-08-31 ファイルレベルの仮想化と移行を行う中間装置 Pending JP2009059201A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007226466A JP2009059201A (ja) 2007-08-31 2007-08-31 ファイルレベルの仮想化と移行を行う中間装置
US12/020,770 US20090063556A1 (en) 2007-08-31 2008-01-28 Root node for carrying out file level virtualization and migration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007226466A JP2009059201A (ja) 2007-08-31 2007-08-31 ファイルレベルの仮想化と移行を行う中間装置

Publications (1)

Publication Number Publication Date
JP2009059201A true JP2009059201A (ja) 2009-03-19

Family

ID=40409144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007226466A Pending JP2009059201A (ja) 2007-08-31 2007-08-31 ファイルレベルの仮想化と移行を行う中間装置

Country Status (2)

Country Link
US (1) US20090063556A1 (ja)
JP (1) JP2009059201A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114382A1 (en) 2010-03-19 2011-09-22 Hitachi, Ltd. Virtual file system and hierarchical storage management for cloud computing containing different underlying file systems
WO2012032569A1 (en) 2010-09-06 2012-03-15 Hitachi, Ltd. Cluster type storage system and method of controlling the same
JP2016146101A (ja) * 2015-02-09 2016-08-12 富士通株式会社 情報処理装置、情報処理システム及び制御プログラム
JP2019133556A (ja) * 2018-02-02 2019-08-08 フューチャー株式会社 移行単位分析装置、移行単位分析方法及び移行単位分析プログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150461A1 (en) * 2007-12-07 2009-06-11 Brocade Communications Systems, Inc. Simplified snapshots in a distributed file system
US8392370B1 (en) * 2008-03-28 2013-03-05 Emc Corporation Managing data on data storage systems
US8321482B2 (en) * 2008-04-28 2012-11-27 Microsoft Corporation Selectively modifying files of a container file
US8112464B2 (en) * 2008-04-28 2012-02-07 Microsoft Corporation On-demand access to container file directories
US8862600B2 (en) * 2008-04-29 2014-10-14 Accenture Global Services Limited Content migration tool and method associated therewith
US20100017486A1 (en) * 2008-07-16 2010-01-21 Fujitsu Limited System analyzing program, system analyzing apparatus, and system analyzing method
US8326977B2 (en) * 2008-07-16 2012-12-04 Fujitsu Limited Recording medium storing system analyzing program, system analyzing apparatus, and system analyzing method
WO2014162550A1 (ja) * 2013-04-04 2014-10-09 株式会社 日立製作所 ストレージシステム
US9112790B2 (en) * 2013-06-25 2015-08-18 Google Inc. Fabric network
JP6326913B2 (ja) * 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法
GB2527296A (en) * 2014-06-16 2015-12-23 Ibm A method for restoring data in a HSM system
US10114559B2 (en) 2016-08-12 2018-10-30 International Business Machines Corporation Generating node access information for a transaction accessing nodes of a data set index
US9948384B1 (en) * 2016-11-23 2018-04-17 Google Llc Identifying network faults
US10824746B1 (en) 2017-01-25 2020-11-03 State Farm Mutual Automobile Insurance Company Systems and methods for controlled access to blockchain data
US10649666B1 (en) * 2017-05-10 2020-05-12 Ambarella International Lp Link-list shortening logic
US10936558B2 (en) * 2019-03-07 2021-03-02 Vmware, Inc. Content-based data migration
JP7102455B2 (ja) * 2020-03-26 2022-07-19 株式会社日立製作所 ファイルストレージシステム及びファイルストレージシステムの管理方法
DE112021001955T5 (de) * 2021-03-01 2023-01-26 Boe Technology Group Co., Ltd. Schnittstellenanzeigeverfahren und -vorrichtung, computerlesbares speichermedium und elektronisches gerät

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
JP4491269B2 (ja) * 2004-04-22 2010-06-30 株式会社日立製作所 ストレージシステム及びファイル管理装置
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
US8990270B2 (en) * 2006-08-03 2015-03-24 Hewlett-Packard Development Company, L. P. Protocol virtualization for a network file system
US7933921B2 (en) * 2006-11-29 2011-04-26 Netapp, Inc. Referent-controlled location resolution of resources in a federated distributed system
US20080155214A1 (en) * 2006-12-21 2008-06-26 Hidehisa Shitomi Method and apparatus for file system virtualization

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114382A1 (en) 2010-03-19 2011-09-22 Hitachi, Ltd. Virtual file system and hierarchical storage management for cloud computing containing different underlying file systems
US8266192B2 (en) 2010-03-19 2012-09-11 Hitachi, Ltd. File-sharing system and method for processing files, and program
US8533241B2 (en) 2010-03-19 2013-09-10 Hitachi, Ltd. File-sharing system and method for processing files, and program
WO2012032569A1 (en) 2010-09-06 2012-03-15 Hitachi, Ltd. Cluster type storage system and method of controlling the same
US8423713B2 (en) 2010-09-06 2013-04-16 Hitachi, Ltd. Cluster type storage system and method of controlling the same
JP2016146101A (ja) * 2015-02-09 2016-08-12 富士通株式会社 情報処理装置、情報処理システム及び制御プログラム
US10270852B2 (en) 2015-02-09 2019-04-23 Fujitsu Limited Data migration apparatus and system
JP2019133556A (ja) * 2018-02-02 2019-08-08 フューチャー株式会社 移行単位分析装置、移行単位分析方法及び移行単位分析プログラム

Also Published As

Publication number Publication date
US20090063556A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP2009059201A (ja) ファイルレベルの仮想化と移行を行う中間装置
JP4919851B2 (ja) ファイルレベルの仮想化を行う中間装置
JP4931660B2 (ja) データ移行処理装置
JP5066415B2 (ja) ファイルシステム仮想化のための方法および装置
US7313579B2 (en) Network storage system and handover method between plurality of network storage devices
JP5205132B2 (ja) Nas/cas統一ストレージシステムのための方法および装置
JP4349301B2 (ja) ストレージ管理システムと方法並びにプログラム
JP5427533B2 (ja) 階層ストレージ管理システムにおける重複ファイルの転送方法及びシステム
JP5608811B2 (ja) 情報処理システムの管理方法、及びデータ管理計算機システム
JP5876592B2 (ja) ファイルストレージシステムとファイルクローニング方法
US20030236850A1 (en) Storage system for content distribution
US20060129513A1 (en) Network storage system with a clustered configuration sharing a namespace, and control method therefor
JP2014503086A (ja) ファイルシステム及びデータ処理方法
JP2006092322A (ja) ファイルアクセスサービスシステムとスイッチ装置及びクオータ管理方法並びにプログラム
JP5722467B2 (ja) ストレージシステムコントローラ、ストレージシステム及びアクセス制御方法
US8756338B1 (en) Storage server with embedded communication agent
WO2012164617A1 (en) Data management method for nas
US20070192375A1 (en) Method and computer system for updating data when reference load is balanced by mirroring
JP2004334481A (ja) 仮想化情報管理装置
WO2014174578A1 (ja) エッジサーバ及び記憶制御方法
JP2009237979A (ja) 情報処理装置及び方法、並びにプログラム
JP2004206231A (ja) 記憶装置システムの制御方法、コンピュータ、記憶制御装置
CN115878584A (zh) 一种数据访问方法、存储系统及存储节点
JPH10320261A (ja) ファイル蓄積管理システム
WO2025001213A1 (zh) 数据访问方法、装置及系统