(57)【特許請求の範囲】
【請求項１】
複数の計算機と、複数のファイルアクセスプロトコルに対応可能な第１のファイルサーバと、第２のファイルサーバと、で構成される計算機システムのファイルサーバにおいて、
前記第１のファイルサーバは、前記複数のファイルアクセスプロトコル毎に前記第２のファイルサーバが有するファイルの実データに応じた属性情報と、前記実データを読み出す手段と、
前記読み出されたファイルの実データと、前記ファイルの実データに対応する前記複数のファイルアクセスプロトコル毎に読み出された複数の属性情報の内容と、を前記第１のファイルサーバに格納する手段と、
前記計算機から前記複数のファイルアクセスプロトコルのうち、何れかのファイルアクセスプロトコルによって、前記格納されたファイルあるいはファイル属性のリード要求があった場合、前記第１のファイルサーバが前記何れかのファイルアクセスプロトコルに応じた属性情報を用いて前記計算機に応答する手段とを有することを特徴とするファイルサーバ。
【請求項２】
請求項１におけるファイルサーバであって、
前記ファイルの属性情報はファイルの作成日付、参照日付、及び更新日付を含むことを特徴とするファイルサーバ。
【請求項３】
少なくとも１つの計算機と、それぞれが記憶装置を有する複数のファイルサーバとでなる計算機システムにおける記憶装置間のファイル移行方法において、
第１のファイルサーバの記憶装置に、複数のファイルアクセスプロトコル毎に、第２のファイルサーバの記憶装置から読み出した複数のファイルの属性情報を格納し、
前記何れかのファイルの属性情報に基づいて、前記第１のファイルサーバの記憶装置に、前記第２のファイルサーバの記憶装置から読み出したファイルの実データを格納し、
前記計算機から前記複数のファイルアクセスプロトコルのうち、何れかのファイルアクセスプロトコルによって、前記格納されたファイルあるいはファイル属性のリード要求があった場合、前記第１のファイルサーバが前記何れかのファイルアクセスプロトコルに応じた属性情報を用いて前記計算機に応答することを特徴とする記憶装置間のファイル移行方法。
【請求項４】
前記ファイルの属性情報は、前記第２のファイルサーバの記憶装置に保持されていたファイルの作成日付、参照日付、及び更新日付の少なくとも１つを含むことを特徴とする請求項３記載の記憶装置間のファイル移行方法。
【請求項５】
前記何れかのファイルの属性情報、及び前記ファイルの実データの少なくとも一方の移行中に前記計算機から移行中のファイルに対するアクセス要求があった場合、前記第１のファイルサーバのログ領域に前記アクセス要求の内容を記憶し、前記ファイルの移行が終了した後に、前記ログ領域の内容に基づいた処理を行なうことを特徴とする請求項３記載の記憶装置間のファイル移行方法。
【請求項６】
前記第１のファイルサーバは、前記記憶装置のメタデータ領域に、それぞれのファイルアクセスプロトコルに応じた、ファイルの属性情報を格納することを特徴とする請求項３記載の記憶装置間のファイル移行方法。
【請求項７】
前記計算機が第１のファイルアクセスプロトコルによって、前記第１のファイルサーバにアクセスした場合、前記第１のファイルサーバは、前記第１のファイルアクセスプロトコルに応じた属性情報を用いて前記計算機に応答し、
前記計算機が第２のファイルアクセスプロトコルによって、前記第１のファイルサーバにアクセスした場合、前記第１のファイルサーバは、前記第２のファイルアクセスプロトコルに応じた属性情報を用いて前記計算機に応答することを特徴とする請求項３乃至６記載の記憶装置間のファイル移行方法。
【請求項８】
前記第１のファイルアクセスプロトコルは、CIFSであり、また、前記第２のファイルアクセスプロトコルは、NFSであることを特徴とする請求項７記載の記憶装置間のファイル移行方法。
【請求項９】
前記計算機が前記第１のファイルアクセスプロトコルによって、前記第１のファイルサーバにリード要求した場合、
前記第１のファイルサーバは、前記リード要求の対象となるファイルの前記第１のファイルアクセスプロトコルの属性情報が、前記第２のファイルサーバから前記第１のファイルサーバに移行されているか否か確認し、
該属性情報が移行されている場合、前記第１のファイルサーバは、前記ファイルのデータが前記第２のファイルサーバから前記第１のファイルサーバに移行されているか否か確認し、
該データが前記第１のファイルサーバに移行されていない場合、前記第１のファイルサーバは、前記第２のファイルサーバからデータを読み出し、前記第１のファイルサーバの前記記憶装置に書き込み、さらに、前記ログ領域に前記ファイルの更新情報が存在する場合、前記更新情報を前記第１のファイルサーバの前記記憶装置に書き込み、
前記第１のファイルサーバは、前記リード要求の対象となる前記属性情報と、前記データを第１のファイルサーバの前記記憶装置から読み出し、前記計算機に送ることを特徴とする請求項７記載の記憶装置間のファイル移行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理システムなどにおける記憶装置システムのデータアクセス方法に係り、特に、記憶装置間のデータ移行方法に関する。
【０００２】
【従来の技術】
銀行や企業などで使用される計算機システムでは、極めて大量のデータが取り扱われるため、大規模な記憶装置を必要とする。さらに、それらデータは日々増加していくため、記憶装置を増設する、またはより大容量な記憶装置へ置き換えていく必要が生じる。記憶装置を置き換える場合、通常の手段としては、記憶装置(以下、旧記憶装置) のバックアップを磁気テープなどにとり、それを新しい記憶装置(以下、新記憶装置) にリストアすることで実現する。
ただし、バックアップをとるためには一旦ホストのＩ／Ｏを停止する必要があり、その停止時間は一般に長い。そしてこの停止時間は、記憶装置の容量が大きくなればなるほど増大していく。さらに、上記のような大規模システムでは２４時間無停止運転が前提であり、これは記憶装置の置き換えの場合も同様であるので、一旦ホスト側のＩ／Ｏを停止してバックアップをとる方法では問題がある。
【０００３】
記憶装置の置き換えに関して、旧記憶装置から新記憶装置へとデータを移行する際にオンラインで実行する方法が特開2000-187608で開示されている。特開2000-187608では、最初ホスト計算機とある記憶装置(旧記憶装置)とで運用しているシステムに、新規記憶装置を導入する際、旧記憶装置内のデータを新規記憶装置に移動しつつ、新規記憶装置では同時にホスト計算機からのリード・ライトアクセスを受け付ける。具体的には、旧記憶装置から新規記憶装置にデータ移行を行う際に、一旦ホスト計算機と旧記憶装置間の接続を遮断し、ホスト計算機を新規記憶装置に接続しなおす。また新規記憶装置は旧記憶装置とも直接接続される。新規記憶装置は旧記憶装置のデータを新規記憶装置にコピーする機能と、ホスト計算機に対して、自らが旧記憶装置であるかのように見せかける機能を持つことで、ユーザに透過的にディスク装置間のデータ移行を可能にしている。
【０００４】
また、近年では、複数のホスト計算機間を相互接続するローカルエリアネットワーク(ＬＡＮ)に直接接続されるＮＡＳ(Network Attached Storage)と呼ばれる記憶装置が普及してきている。ＮＡＳと各ホスト計算機とは、ＮＦＳ(Network File System)などのネットワークファイルアクセス用プロトコルでデータのやり取りを行う。ＮＦＳでは、ファイルのリード/ライト、あるいはファイル作成/削除などファイルアクセスに必要な命令が規定されている。そのため、これら命令を組み合わせて、ＮＡＳにおいても特開2000-187608に開示されているような、これまで運用してきたＮＡＳ(旧ＮＡＳ)から新規のＮＡＳへとデータをコピーすることは可能である。
【０００５】
【発明が解決しようとする課題】
特開2000-187608に開示されている方法を応用することで、ＮＡＳにおいても単純なデータのコピーは充分可能である。ただし、ＮＡＳにおいてデータを移行した場合、そのデータに付随する属性情報が問題となる。ファイルには、ファイル名、そのファイルの所有者とともに、ファイルの作成された日付、アクセスされた時刻などが記される。旧ＮＡＳから新規ＮＡＳへとファイルをコピーする際、単純に旧ＮＡＳからあるファイルを読み出し、新規ＮＡＳにファイル書き込みを行っただけでは、ファイルの作成された日付、アクセスされた時刻が変わってしまい、旧ＮＡＳの状態を保ったデータ移行が行えない。またさらに、ＮＡＳでは一般にホスト計算機との間のアクセスにおいて、複数種類のアクセスプロトコルでデータアクセスすることが可能である。例えば多くのＮＡＳでは、ＮＦＳとＣＩＦＳ(Common Internet File System)とをサポートする。それぞれのプロトコルにおけるファイル属性は、共通している項目もあればそうでない項目もある。そのため、もしＮＦＳプロトコルで旧ＮＡＳからファイルを読み出すと、ＮＦＳにおけるファイル属性しか取り出せず、ＣＩＦＳプロトコルにおけるファイル属性が移行できない。
【０００６】
本発明の目的は、ＮＡＳにおいて、ホスト、ユーザに対して透過的で、かつ完全なデータ移行が可能なシステムを提供することにある。
【０００７】
【課題を解決するための手段】
本発明における計算機システムは、ホスト計算機、第１のファイルサーバ装置と、第２のファイルサーバ装置とで構成される。ホスト計算機は最初は第１のファイルサーバ装置に接続されてＩ／Ｏを行っているが、第１のファイルサーバ装置から第２のファイルサーバ装置にデータ移行を行う際に、一旦ホスト計算機と第１のファイルサーバ装置との接続は遮断される。引き続きホスト計算機は、第２のファイルサーバ装置に接続され、また第１のファイルサーバ装置と第２のファイルサーバ装置も接続される。
【０００８】
第１のファイルサーバ装置から第２のファイルサーバ装置へのデータ移行は、まず第２のファイルサーバ装置が第１のファイルサーバ装置のディレクトリツリー構造を読み出し、第２のファイルサーバ装置はそれをもとにして第１のファイルサーバ装置のファイルを全て読み出していく。読み出されたファイルは順次第２のファイルサーバ装置へと書き込まれる。
【０００９】
具体的な移行は、第２のファイルサーバ装置が第１のファイルサーバに対してファイルの読み出しとファイル属性の読み出しとを行い、その結果を第２のファイルサーバ装置へと書き込むことで実現する。第２のファイルサーバ装置がファイル属性を書き込む際、第１のファイルサーバ装置に書き込まれていた日付情報のまま第２のファイルサーバ装置へと格納する。
【００１０】
また、第１のファイルサーバ装置、第２のファイルサーバ装置が、複数のファイルアクセスプロトコルをサポートしている場合、第２のファイルサーバ装置は、１ファイルに対し、ファイル属性の読み出し、書き込みを複数回ずつ行う。例えば、２種類のアクセスプロトコルがサポートされている場合には、ファイル属性の読み書きが２回行われる。
【００１１】
また、データの移行中にホスト計算機からのファイルアクセスがあった場合には、第２のファイルサーバ装置が処理する。例えばリードアクセスの場合、当該ファイルが第２のファイルサーバ装置に移行されていない場合には、一旦第１のファイルサーバ装置から第２のファイルサーバ装置へと当該ファイルを移行し、引き続いてホスト計算機からのリードアクセスを受け付ける。移行が済んでいる場合には、第２のファイルサーバ装置はそのままホスト計算機からのリード要求を処理する。
【００１２】
【発明の実施の形態】
図１は、本発明を適用した計算機システムの一実施形態における構成例を示すブロック図である。計算機システムは、ホスト１、ホスト２、旧ファイルサーバ装置３、新ファイルサーバ装置４、イーサネットスイッチ５とで構成される。
【００１３】
ホスト１にはＮＦＳ(Network File System)クライアントプログラム１１、アプリケーションプログラム１２が存在し、アプリケーションプログラム１２はＮＦＳクライアントプログラム１１を介して旧ファイルサーバ装置３ないし新ファイルサーバ装置４にアクセスする。またホスト２にはＣＩＦＳ(Common Internet File System)クライアントプログラム２１、アプリケーションプログラム２２が存在し、アプリケーションプログラム２２はＣＩＦＳクライアントプログラム２１を介して旧ファイルサーバ装置３ないし新ファイルサーバ装置４にアクセスする。
【００１４】
旧ファイルサーバ装置３はインタフェース３１、３２とディスク３３、制御装置３４とで構成される。また新ファイルサーバ装置４は、インタフェース４１、４２とディスク４３、制御装置４４で構成される。旧ファイルサーバ装置３はインタフェース３１からイーサネットスイッチ５を介して、また新ファイルサーバ装置４はインタフェース４１からイーサネットスイッチ５を介してホスト１、２と接続される。また、旧ファイルサーバ装置３と新ファイルサーバ装置４はインタフェース３２、４２がイーサネットケーブル６で接続される。
【００１５】
制御装置３４にはＮＦＳ処理手段３４１、ＣＩＦＳ処理手段３４２、及びファイルシステム部３４３が存在する。ＮＦＳ処理手段３４１はホスト１からのファイルアクセス要求を処理し、ＣＩＦＳ処理手段３４２はホスト２からのファイルアクセス要求を処理する。ファイルシステム部３４３は、ディスク３３内のファイルのリード・ライト処理を行う。ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２がファイルリード要求を受け付けると、ファイルシステム部３４３がそれを受けてディスク３３からリード対象ファイルやファイル属性情報を取り出して、ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２へと渡す。ライト要求の場合には、ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２が受け付けたファイルがディスク３３に書き込まれる。
【００１６】
制御装置４４にも同様にＮＦＳ処理手段４４１、ＣＩＦＳ処理手段４４２、ファイルシステム部４４３が存在し、これらはそれぞれＮＦＳ処理手段３４１、ＣＩＦＳ処理手段３４２、ファイルシステム部３４３とほぼ同様の動作を行う。また、制御装置４４には移行手段４４４が存在し、旧ファイルサーバ装置３から新ファイルサーバ装置４へのデータ移行を実施する。
【００１７】
図２以降で、本発明の実施形態における新ファイルサーバ装置４で取り扱うファイルシステムや用語について概説する。一般のファイルサーバでファイルを管理する場合、階層化ディレクトリと呼ばれる構造をとり、図２にあるように、ルートディレクトリを先頭にして、複数のファイル・ディレクトリがルートディレクトリ下に存在する。以下、図２のような、１つのルートディレクトリを先頭に階層化されたファイル・ディレクトリ構造に属するファイル・ディレクトリとその構造を形成する属性情報の集まりをファイルシステムと呼ぶ。
【００１８】
旧ファイルサーバ装置３、新ファイルサーバ装置４では、このファイルシステムを少なくとも１つ管理できる。１つのファイルシステムは必ずしも１つのディスクに存在するわけではなく、複数のディスクにまたがることもある。あるいは逆に、１つのディスクに複数のファイルシステムが格納されることもある。ただし、本発明の実施形態の説明においては簡単のために、１つのファイルシステムが１つのディスクに格納されているものとして説明する。
【００１９】
図３は新ファイルサーバ装置４のディスク４３上に置かれるファイルシステムの構造を示している。ファイルシステムは、各ファイルサイズなどを示す属性情報であるメタデータ、ディレクトリにあるファイル・ディレクトリ名の集合であるディレクトリエントリ、そしてファイルの実体である実データで構成される。本発明の実施形態においては、メタデータを格納するメタデータ領域４３１、ディレクトリエントリを格納するディレクトリエントリ領域４３２、実データを格納する実データ領域４３３がディスク４３上に存在する。また、それ以外にディスク４３上にはログ領域４３４が存在し、これは移行手段４４４が利用する。本発明の実施形態においては、メタデータ領域４３１、ログ領域４３４などがディスク４３上にあるとしているが、これは必ずしもディスク４３上にある必要性はなく、新ファイルサーバ装置４のメモリ上にあってもよい。
【００２０】
メタデータ領域４３１には、メタデータ７０がファイル・ディレクトリの数だけ格納されている。メタデータ７０はそれぞれが、メタデータ番号７１、ファイルタイプ７２、移行中フラグ７３、サイズ７４、最終アクセス時刻７５、最終更新時刻７６、ＮＦＳ用アクセス権情報７７、ＣＩＦＳアクセス権情報７８、及びポインタ７９で構成される。特に、ＮＦＳ用アクセス権情報７７はＮＦＳプロトコルでファイルをアクセスするためのファイル属性情報であり、ＣＩＦＳアクセス権情報７８はＣＩＦＳプロトコルでファイルをアクセスするためのファイル属性情報である。また、ディレクトリエントリ４３２領域には、ディレクトリエントリ８０がディレクトリの数だけ存在する。ディレクトリエントリ８０は、あるディレクトリ内のファイル名又はディレクトリ名のリストを少なくとも１つ管理している。
【００２１】
メタデータ番号７１はファイルシステム内で一意な番号で、メタデータ番号７１で示されるファイル又はディレクトリが、ファイルシステム内で一意に定まる。このメタデータ番号７１で示されるファイル又はディレクトリの下位に属するファイル又はディレクトリは、メタデータ番号７１に対応する他のディレクトリエントリ８０に格納され、これらの情報を辿ることによってファイル又はディレクトリの階層構造を把握できる。
ファイルタイプ７２は当該メタデータ番号７１で示される対象が、ファイルであるかディレクトリであるか、などを示すフラグが入る。移行中フラグ７３は移行手段４４４が使用するもので、ファイル移行中の場合にはここがオンになり、ファイル移行が終了しているものはこのフラグをオフにする。移行手段４４４による、このフラグの具体的な使い方は後述する。サイズ７４は当該ファイルのサイズを示す。最終アクセス時刻７５は、ホスト１、２が当該ファイルをリードないしライトした時の最新時刻を示す。最終更新時刻７６は当該ファイルの書き込み、更新をした最新時刻を表す。ポインタ７９はファイル、ディレクトリの実体が置かれているディスク４３上の物理アドレス情報が入る。当該メタデータ７０で示される対象がファイルであれば、ポインタ７９は実データ領域４３３のある領域を指し、ディレクトリの場合には、ディレクトリエントリ領域４３２上のあるブロックを示す。ポインタ７９は、ファイルサイズが大きい場合、ファイルが複数の領域に断片化されて配置されている場合などには複数個存在する。
【００２２】
ＮＦＳ用アクセス権情報７７は、ホスト１がＮＦＳ処理手段４４１を介してファイルを参照する場合に必要な情報であり、またＣＩＦＳ用アクセス権情報７８は、ホスト２がＣＩＦＳ処理手段４４２を介してファイルを参照する場合に必要となる情報である。ＮＦＳとＣＩＦＳとでは、規定されているそれぞれ異なった情報を提供できるように管理している。例えば属性情報には、当該ファイルにアクセスするユーザを制限するためのパーミッション情報が含まれているが、ＮＦＳ処理手段３４１、４４１が提供するパーミッション情報は、当該ファイルを所有するオーナーがファイルにアクセス(読み込み、書き込み、実行)できるか、当該ファイルの所属するグループからファイルがアクセスできるか、その他のユーザがファイルにアクセスできるか、を示す３種類のパーミッション情報を持つ。
【００２３】
一方、ＣＩＦＳ処理手段３４２、４４２が提供する情報はＡＣＬ(Access Control List)と呼ばれ、１つのファイルに対し、複数のユーザに対応したパーミッション情報を設定できる。例えばユーザＡはあるファイルに対して、読み出しのみが可能だが、ユーザＢはファイル書き込みも可能であるというような、ユーザごとのパーミッション情報が設定可能である。このようにＮＦＳ処理手段４４１、ＣＩＦＳ処理手段４４２とでは取り扱う属性情報が異なっており、新ファイルサーバ装置４のファイルシステムでは、これら２つの処理手段のどちらからアクセスされても良いように２種類の情報を保持する。
【００２４】
ディレクトリエントリ８０は１つのディレクトリ直下にあるファイル・ディレクトリの名前のリストを保持する。エントリ中にはメタデータ番号７１とファイル/ディレクトリ名８１の組が、当該ディレクトリ下のファイル、ディレクトリ全てについて存在している。
【００２５】
図３で説明したファイルシステムを構成するメタデータ７０などの情報は新ファイルサーバ装置４についてであるが、旧ファイルサーバ装置３もこれらと同様の情報をもつ。ただし、新ファイルサーバ装置４と旧ファイルサーバ装置３とで、メタデータ７０などの情報の種類、データ構造は同一である必要はない。また、本発明の実施形態においては、旧ファイルサーバ装置３、新ファイルサーバ装置４はＮＦＳ，ＣＩＦＳによってホスト１ないしホスト２からアクセスされることを前提としているが、それ以外にNovell NetWareのファイルアクセスプロトコルなどでアクセスされる装置である場合には、メタデータ内にそのファイルアクセスプロトコル独自の属性情報を別途有することになる。
【００２６】
つづいて旧ファイルサーバ装置３から新ファイルサーバ装置４へのデータ移行処理について概説する。ホスト１、２、あるいは新ファイルサーバ装置４などが旧ファイルサーバ装置３の保持するファイルにアクセスする場合、ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２を介するしかない。また逆に新ファイルサーバ装置４に対してホスト１又はホスト２などがアクセスする場合にも、ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２を介するしかない。
【００２７】
そのため、ホスト１又はホスト２が単純に旧ファイルサーバ装置３のファイルを読み出し、新ファイルサーバ装置４に書き込む場合、ＮＦＳ処理手段３４１又はＣＩＦＳ処理手段３４２を介してファイルを読み出し、またＮＦＳ処理手段４４１又はＣＩＦＳ処理手段４４２を介してファイルを書き込むことになる。
【００２８】
その場合、ＮＦＳ処理手段３４１あるいはＣＩＦＳ処理手段３４２を介してファイルを読み出すため、たとえばＮＦＳ処理手段３４１を介するとＣＩＦＳに固有のファイル属性・アクセス権情報などが欠落するという問題が生ずる。逆に、ＣＩＦＳ処理手段３４２を介するとＮＦＳに固有のファイル属性などが欠落する。
【００２９】
また、ホスト１又はホスト２がＮＦＳ処理手段４４１又はＣＩＦＳ処理手段４４２を介して新ファイルサーバ装置４にファイルを書き込むと、本来旧ファイルサーバ装置３のファイル属性情報に残っている最終更新時刻７６あるいは最終アクセス時刻７５が、ホスト１、２が新ファイルサーバ装置４にファイルを書き込んだ時刻に変更されてしまうという問題も生ずる。本発明の実施形態における移行手段４４４はこれら問題を解決する。
【００３０】
データ移行前には、ホスト１、２はイーサネットスイッチ５を介して、旧ファイルサーバ装置３とのみ接続されて、Ｉ／Ｏ処理を行っている。データ移行を行う際には、まずホスト１、２と旧ファイルサーバ装置３との接続を遮断する。具体的にはホスト１、２が旧ファイルサーバ装置３のファイルシステムを使用している場合、それをアンマウントする。その後旧ファイルサーバ装置３のインタフェース３１とイーサネットスイッチ５の接続を外し、インタフェース３２と新ファイルサーバ装置４のインタフェース４２とを接続することで、旧ファイルサーバ装置３をネットワークから切り離し、新ファイルサーバ装置４からのみアクセスできるようにする。
【００３１】
新たにネットワークに接続された新ファイルサーバ装置４は、ファイルサーバ装置のＩＰアドレス、共有ディレクトリ名(ファイルシステムをホスト１、２に見せる際のディレクトリ名)などの設定を旧ファイルサーバ装置３と同じにする。なお、本発明の実施形態のように、必ずしもデータ移行時に上記のように物理的にネットワークから切り離す必要はなく、ホスト１、２が旧ファイルサーバ装置３にアクセスしないように出来ればよい。たとえば、旧ファイルサーバ装置３のＩＰアドレスを変更するなどで対応可能である。
【００３２】
その後、ホスト１、２は新ファイルサーバ装置４のファイルシステムをマウントし、Ｉ／Ｏ処理を再開する。移行手段４４４では、旧ファイルサーバ装置３のファイルを新ファイルサーバ装置４のディスク３２に順次書き込むと同時に、ホスト１、２からのリード・ライト処理を受け付ける。データ移行中にホスト１、２が新ファイルサーバ装置４に対してＩ／Ｏ処理を行った場合にも、移行手段４４４はホスト１、２に対し、新ファイルサーバ装置４内にあたかも旧ファイルサーバ装置３にあるファイルが存在しているかのように見せ、ホスト１、２は自由にリード・ライトが出来る。
【００３３】
次に、図４で、移行手段４４４の行う旧ファイルサーバ装置３から新ファイルサーバ装置４へのファイル移行処理の流れを概説する。移行手段４４４では、旧ファイルサーバ装置３のルートディレクトリから順にファイル・ディレクトリの属性情報を全て新ファイルサーバ装置４へとコピーし(ステップ１００１)、続いて各ファイルについて、実データをコピーする(ステップ１００２)。ファイルやその属性情報を移行している間にホスト１、２からファイル更新などが行われた場合に、ログ領域４３４にその操作が記録され、移行処理の最後にログ領域に記録された内容を反映して移行処理は終了する(ステップ１００３)。
【００３４】
ファイル・ディレクトリ属性情報だけを先に全部移行するのは、一般にホスト１、２からのファイル・ディレクトリアクセスの際、実データに対するアクセスよりもファイル・ディレクトリ属性情報へのアクセスが多いからである。ホスト１、２からファイル・ディレクトリアクセスがあった場合、まだ当該ファイルが旧ファイルサーバ装置３から移行できていない場合には、移行手段４４４は旧ファイルサーバ装置３に対して当該ファイルなどを読み出しに行く。そうするとホスト１、２からみて応答時間が悪化するため、本発明の実施形態においては、ファイル・ディレクトリ属性情報を最初にすべて移行する方法をとっている。ただし、性能面を考慮しなければ、ファイル・ディレクトリ属性情報と、実データとを同時に移行しても問題はない。
【００３５】
図５以降では、図４のステップ１００１に相当するファイル・ディレクトリ属性の移行処理、ステップ１００２に相当する実データの移行処理を順次説明していく。まず、図５では移行手段４４４が行う、ファイル・ディレクトリの属性情報の移行処理の流れを説明する。移行手段４４４は図５の処理を旧ファイルサーバ装置３のルートディレクトリから順に実施する。
【００３６】
まず、ＮＦＳコマンドにより、ディレクトリの属性情報を取得する(ステップ２００１)。例えばＮＦＳの場合には、GETATTRコマンドにより属性情報が取得できる。続いてＣＩＦＳコマンドによって、当該ディレクトリの属性情報を取得する(ステップ２００２)。例えばSMBgetattrコマンドなどである。メタデータ７０中のサイズ７４、最終アクセス時刻７５、最終更新時刻７６などは、本発明の実施形態においてはステップ２００１のＮＦＳ用アクセス権情報７７を取得する時に同時に取得しているものとする。なお、ステップ２００１、２００２の順序は逆であっても構わない。
【００３７】
ステップ２００３で、取得した属性情報をディスクのメタデータ領域４３１に書き込む。この際、メタデータ４３１中の移行中フラグ７３をオンにする。続いて、当該ディレクトリ下にファイルが存在するか検索する(ステップ２００４)。これは例えば旧ファイルサーバ装置３に対してＮＦＳコマンドREADDIRなどを実施することで確認が可能である。ファイルが存在する場合にはステップ２００５以降へと進む。
【００３８】
ステップ２００５では、ステップ２００４で検索した結果を受けて、当該ディレクトリ配下にあるファイル全てについて、ＮＦＳ属性情報を取得する。続いてステップ２００６ではＣＩＦＳコマンドによって、当該ディレクトリ配下にあるファイル全てについてＣＩＦＳ属性情報を取得する。ステップ２００７ではステップ２００５、２００６で取得した属性情報をメタデータ領域４３１へ書き込む。この際も、ステップ２００３と同様、メタデータ４３１中の移行中フラグ７３をオンにする。
【００３９】
ステップ２００８では、当該ディレクトリ下にさらにディレクトリ(サブディレクトリ)が存在するか検索する。存在する場合には、全サブディレクトリについて、図５のファイル・ディレクトリ属性情報の移行処理を実施する(ステップ２００９)。すなわち、図５の処理を再帰的に実行することになるため、ファイル・ディレクトリ属性情報の移行処理をルートディレクトリから実施することで、１つのファイルシステムにおけるファイル・ディレクトリの属性情報が全て移行されることになる。最後に、ステップ２００４、２００８で得られた、当該ディレクトリ下にあるファイル・ディレクトリ名の情報をディレクトリエントリ８０として作成・書き込みして処理は終了する(ステップ２０１０)。
【００４０】
次に、図６でファイルの実データを移行する処理を説明する。この処理は図５のファイル属性情報の移行処理と同様、ルートディレクトリから移行処理を開始し、サブディレクトリについても再帰的に処理を実施することで、ファイルシステム全体について、ファイル実データの移行を実現している。まず最初に、移行対象のディレクトリ下にファイルがあるかを確認する(ステップ２１０１)。この処理は、移行手段４４４がファイルシステムのディレクトリエントリを検索することで実現できる。
【００４１】
次に、ディレクトリ下のファイルについて、移行中フラグがオンであるか確認し(ステップ２１０２)、移行中フラグがオンのファイルについては、旧ファイルサーバ装置３からファイルの実データを読み出し(ステップ２１０３)、そのデータを新ファイルサーバ装置４へ書き込む(ステップ２１０４)。ステップ２１０５では、データの書き込みが終わったファイルについては、当該ファイルの移行中フラグ７３をオフにする。ステップ２１０６で、移行対象のディレクトリ直下にある全てのファイルについて移行が完了しているか確認し、完了している場合にはステップ２１０７へ進み、移行されていないファイルがある場合にはステップ２１０２からステップ２１０５までの処理を繰り返す。
【００４２】
ステップ２１０７では当該ディレクトリ下に、サブディレクトリがあるか確認し、存在する場合にはサブディレクトリについて、図６のファイル実データ移行処理を実施する(ステップ２１０８)。すなわち、図５のステップ２００９と同様、ルートディレクトリから図６のファイル実データ移行処理を実施し、サブディレクトリに付いても再帰的に実データ移行処理を実施する。その後、当該ディレクトリの移行中フラグ７３をオフにし(ステップ２１０９)、処理を終了する。ステップ２１０７でサブディレクトリがない場合には直接ステップ２１０９に移り、移行中フラグ７３をオフにして処理を終了する。
【００４３】
次に、図５、図６の移行処理中にホスト１又はホスト２からファイルアクセスがあった時、移行手段４４４が実施する処理の流れを説明する。まず、図７では移行処理中にホスト１又はホスト２から、ファイルあるいはファイル属性のリード要求があった場合の処理の流れを説明する。ホスト１、２からファイルアクセスがあると、通常は新ファイルサーバ装置４のＮＦＳ処理手段４４１又はＣＩＦＳ処理手段４４２はファイルシステム部４４３を用いてファイルアクセス処理を行うが、移行処理中には、移行手段４４４を介してファイルアクセス処理を実施する。
【００４４】
移行手段はＮＦＳ処理手段４４１又はＣＩＦＳ処理手段４４２からファイルアクセス要求を受け付けると、まず新ファイルサーバ装置４のディスク４３内のメタデータ領域４３１、ディレクトリエントリ領域４３２のサーチ(ステップ２５０１)と、ログ領域４３４のサーチ(ステップ２５０２)を実施し、アクセス対象のファイル属性情報が新ファイルサーバ装置４に移行されているか検索する。ログ領域４３４は、移行処理中に、ホスト１、２からファイル作成・更新が発生したときに、移行手段４４４がその内容を記録するために用いるが、これについては後述する。
【００４５】
ステップ２５０１、２５０２の結果から、アクセス対象ファイルの属性情報が新ファイルサーバ装置４に移行されているか判定し(ステップ２５０３)、移行されていない場合にはステップ２５１０に進み、移行手段４４４は旧ファイルサーバ装置３からファイル属性とデータを読み出し(ステップ２５１０)、その結果をホスト１あるいはホスト２に返し(ステップ２５１１)、処理を終了する。
【００４６】
属性情報が新ファイルサーバ装置４に移行されている場合にはステップ２５０４に進み、当該ファイルのメタデータ７０の移行中フラグ７３がオンになっているかチェックする。フラグがオンの場合には、実データが新ファイルサーバ装置４に移行されていないため、旧ファイルサーバ装置３からデータを読み出し(ステップ２５０５)、そのデータを新ファイルサーバ装置４へ書き込む(ステップ２５０６)。さらに、ログ領域４３４に当該ファイルの更新などの情報が存在する場合には、その情報を新ファイルサーバ装置４のディスク４３に反映し(ステップ２５０７)、移行中フラグ７３をオフにする(ステップ２５０８)ことで、当該ファイルの実データの移行を実施する。
【００４７】
引き続いて、新ファイルサーバ装置４のディスク４３から直接ファイル属性やデータを読み出し(ステップ２５０９)、ホスト１又はホスト２に結果を返す(ステップ２５１１)ことで、リード処理が終了する。また、ステップ２５０４でフラグがオフだった場合には、ファイル属性・実データともに、すでに新ファイルサーバ装置４に移行されていることを示しているので、ステップ２５０９を実行し、ホスト１又はホスト２に結果を返し(ステップ２５１１)、移行処理中のリード処理は完了する。
【００４８】
続いて、移行処理中にホスト１ないしホスト２から、ファイルの更新や削除要求があった場合の移行手段４４４の行う処理の流れを図８で説明する。
【００４９】
ＮＦＳ処理手段４４１又はＣＩＦＳ処理手段４４２からファイルアクセス要求を受け付けると、メタデータ領域４３１、ディレクトリエントリ領域４３２のサーチ(ステップ２６０１)と、ログ領域４３４のサーチ(ステップ２６０２)を実施し、アクセス対象のファイル属性情報が新ファイルサーバ装置４に移行されているか検索する。ステップ２６０１、２６０２の結果から、アクセス対象ファイルの属性情報が新ファイルサーバ装置４に移行されているか判定し(ステップ２６０３)、移行されていない場合にはステップ２６１０に進み、移行手段４４４は旧ファイルサーバ装置３からファイル属性とデータを読み出す。
【００５０】
続いてステップ２６１１で、旧ファイルサーバ装置３から読み出したファイル属性、実データとＮＦＳ処理手段４４１ないしＣＩＦＳ処理手段４４２から受け付けた更新の内容とをログ領域４３４に書き込む。ファイルとその更新内容を即座にメタデータ領域４３１などに反映せずにログ領域に書き込むのは、更新内容をすぐに反映できないことがあるからである。
【００５１】
例えば、旧ファイルサーバ装置３に図２にあるようなディレクトリ構造の記録されていて、このファイルシステムを新ファイルサーバ装置４に移行中、dir_b1以下のファイル、ディレクトリの属性情報の移行は完了したが、dir_b2以下のファイル、ディレクトリの属性情報(図２の点線で示された部分。楕円部分がファイル、長方形がディレクトリを示す)が移行できていないという状態が存在しうる。この場合にたとえばfile4のファイル更新要求があったとすると、新ファイルサーバ装置４にはfile4の所属すべきディレクトリであるdir_b2の属性情報がメタデータ領域４３１、ディレクトリエントリ領域４３２に存在しないため、file4のメタデータを格納することができない。このような場合にも、ホスト１、２からの更新要求は受け付け、かつそれ以降その更新内容を新ファイルサーバ装置４に反映する必要があるため、一旦ログ領域４３４に更新内容を記録し、後でログ領域４３４の内容を新ファイルサーバ装置４のメタデータ領域４３１などに反映していく。
【００５２】
ステップ２６０３でアクセス対象ファイルの属性情報が新ファイルサーバ装置４に移行されていた場合にはステップ２６０４に進み、当該ファイルのメタデータ７０の移行中フラグ７３がオンになっているかチェックする。フラグがオンの場合には、実データが新ファイルサーバ装置４に移行されていないため、旧ファイルサーバ装置３からデータを読み出し(ステップ２６０５)、そのデータを新ファイルサーバ装置４へ書き込む(ステップ２６０６)。
【００５３】
さらに、ログ領域４３４に当該ファイルの更新などの情報が存在する場合には、その情報を新ファイルサーバ装置４のディスク４３に反映し(ステップ２６０７)、その後に更新要求に従って、当該ファイルの実データあるいはメタデータの更新を行う(ステップ２６０８)。移行中フラグ７３がオフの場合には、ファイル属性・実データともに、すでに新ファイルサーバ装置４に移行されていることを示しているので、ステップ２６０８に進んでＮＦＳ処理手段４４１ないしＣＩＦＳ処理手段４４２から受け付けた更新の内容を新ファイルサーバ装置４のディスク４３に書き込む。ステップ２６０８のデータ更新が終わった後、移行中フラグ７３をオフにし（ステップ２６０９）、最後に更新処理の終わったことをホスト１ないしホスト２に通知し(ステップ２６１２)、処理は終了する。
【００５４】
次に、移行手段４４４の用いるログ領域４３４のデータ構造と、ログ領域４３４に記録された内容をファイルシステムに反映する処理(図８のステップ２６０７)について説明する。移行手段４４４はファイル移行中にホスト１、２からのファイル・ディレクトリなどの更新要求があり、かつ当該ファイル・ディレクトリが新ファイルサーバ装置４に未反映の場合、その内容をログ領域４３４にログデータ９０としてログ領域４３４の先頭から順に記録していく(これは図８のステップ２６１１に相当する部分である)。
【００５５】
図９にログデータ９０の内容を示す。移行済みフラグ９１は当該ログデータ９０が移行手段４４４によって、すでに新ファイルサーバ装置４のファイルシステムに反映されたことを示すフラグである。ファイル/ディレクトリ名９２はファイル移行中にホスト１、２からの更新要求などがあった時の対象ファイル名ないしディレクトリ名を示す。オペレーション名９３は、その時の処理の種類を表す。例えばファイルの書き込み、移動、削除などである。時刻９４は当該要求のあった時刻を示す。オペレーションデータ９５はその時の処理に付随するデータであり、オペレーションによってそのデータは異なる。例えば書き込み要求の場合には、ファイルの実データなどが該当する。
【００５６】
図１０以降で、ログデータ９０の反映処理の流れを説明する。まず図１０では、図７のステップ２５０７、あるいは図８のステップ２６０７における処理、すなわち、移行中にファイル・ディレクトリのリード・ライトなどの要求を受け付けた際、当該ファイル・ディレクトリに対する更新情報がログデータ９０に記録されていた時の処理を説明する。
【００５７】
まず、ログ領域の先頭から順に検索し、アクセス対象となっているファイル/ディレクトリ名に対応するログデータ９０を検索する(ステップ３００１)。続いてステップ３００２で当該ログデータ９０の移行済みフラグ９１がオフかどうかを判定し、オフの場合にはステップ３００３に進んで、ログデータ９０に記録されているオペレーションに従って処理を実行する。例えばデータ更新であれば、ログデータ９０にかかれているデータをファイルに対して上書きするなどである。
【００５８】
次に、ステップ３００４で移行済みフラグ９１をオンにして、ステップ３００５に移る。ステップ３００２で移行済みフラグがオンであった場合にはステップ３００３、３００４は飛ばしてステップ３００５に移る。ステップ３００５ではログ領域４３４の全ログデータを検索したか判定し、全ログデータの検索が未だの場合にはステップ３００１に戻る。全ログデータを検索し終わったら、処理は終了する。
【００５９】
図１１では、図４のステップ１００３の処理、すなわち移行処理の最後で行うログデータ９０の反映処理を説明する。ここではログ領域４３４に書かれている全ログデータ９０の内容をファイル・ディレクトリに反映する。
【００６０】
まず、ログ領域の先頭からログデータ９０を検索する(ステップ３１０１)。続いて、ログデータ９０の移行済みフラグ９１がオフかどうか判定し(ステップ３１０２)、オフの場合には、ログデータ９０に記録されたオペレーションを実行し(ステップ３１０３)、移行済みフラグをオンにする(ステップ３１０４)。移行済みフラグ９１がすでにオンの場合には、これら処理は行わない。全ログデータ９０について処理が完了している場合には(ステップ３１０５)、ステップ３１０７でログ領域４３４内のログデータ９０を全て消去し、処理を終了する。全ログデータ９０について処理が完了していない場合には、次のログデータを検索し、ステップ３１０２移行の処理を繰り返す。
【００６１】
図１１の場合、ログ領域４３４のデータを先頭から最後まで順に処理していくのは１回だけであるため、ステップ３１０４で移行済みフラグ９１を必ずしもオンにする必要はないが、図１１の処理中に何らかの障害が発生して処理が中断した場合には有効である。例えば障害が発生した場合には、移行処理ではこのログデータ９０の反映処理を、ログ領域の４３４の先頭からログデータ９０をチェックし直して、反映処理を再実行するが、移行済みフラグ９１をオンにしていないと、再実行前にすでに反映済みのログデータ９０についてもまた処理を行うことになってしまう。移行済みフラグ９１をオンにすることでこれを避けることが出来る。
【００６２】
本実施形態では、ホストコンピュータからのアクセスを受け付けながら、旧ファイルサーバ装置から新ファイルサーバ装置へファイルシステムの移行が実現できる例を示したが、図４から図１１で説明した移行処理からも分かるように本実施形態ではファイルシステム全体ではなく、特定のディレクトリのデータ移行など、より細かい単位でのデータ移行も可能である。
【００６３】
また、移行元のディスクと移行先のディスクのサイズは同一である必要はまったくなく、移行元のファイルシステムのディスク使用量よりも移行先のディスクが大きければ移行は可能である。さらに、本実施形態では２つのファイルサーバ装置間でのデータ移行方法を示したが、同一ファイルサーバ内で、あるファイルシステムのディスク使用量が多くなってきたときに、より大容量のディスクにファイルシステムを移し変える、あるいは特定のディレクトリを別のディスクに移動するなどの用途にも利用できる。
【００６４】
【発明の効果】
本発明によれば、ファイルサーバ装置間のファイル移行の際に、ファイル属性情報を変化させることなく、ファイルを移行できる。その結果、ファイルアクセス時刻などの日付情報が変化しないように新ファイルサーバ装置へデータを格納できる。また、複数のファイルアクセスプロトコルをサポートするファイルサーバ装置のファイル属性も移行できる。
【図面の簡単な説明】
【図１】本発明の実施形態における計算機システムの構成例を示すブロック図である。
【図２】本発明の旧ファイルサーバ装置、新ファイルサーバ装置に格納されるファイル・ディレクトリ構造を示す。
【図３】本発明の新ファイルサーバ装置内ディスクに格納されるファイルシステムのメタデータ構造を示す。
【図４】本発明の実施形態における、移行手段のデータ移行処理を示すフローチャートである。
【図５】移行手段の行う、ファイル・ディレクトリ属性情報の移行処理を示すフローチャートである。
【図６】移行手段の行う、ファイル実データの移行処理を示すフローチャートである。
【図７】移行手段の処理中に、ホストからのファイルリード要求があったときの、移行手段の処理の流れを示すフローチャートである。
【図８】移行手段の処理中に、ホストからのファイルライト要求があったときの、移行手段の処理の流れを示すフローチャートである。
【図９】本発明の新ファイルサーバ装置で用いられるログデータのデータ構造を示す図である。
【図１０】移行処理の行う、ログデータの反映処理の流れを示すフローチャートである。
【図１１】移行処理の行う、ログデータの反映処理の流れを示すフローチャートである。
【符号の説明】
１…ホスト、２…ホスト、３…旧ファイルサーバ装置、
４…新ファイルサーバ装置、５…イーサネットスイッチ、
１１…ＮＦＳクライアントプログラム、１２…アプリケーションプログラム、
１３…インタフェース、２１…ＣＩＦＳクライアントプログラム、
２２…アプリケーションプログラム、２３…インタフェース、
３１…インタフェース、３２…インタフェース、３３…ディスク、
３４…制御装置、４１…インタフェース、４２…インタフェース、
４３…ディスク、４４…制御装置
【図１】
0004168626.tif 000002
【図２】
0004168626.tif 000003
【図３】
0004168626.tif 000004
【図４】
0004168626.tif 000005
【図５】
0004168626.tif 000006
【図６】
0004168626.tif 000007
【図７】
0004168626.tif 000008
【図８】
0004168626.tif 000009
【図９】
0004168626.tif 000010
【図１０】
0004168626.tif 000011
【図１１】
0004168626.tif 000012