(57)【特許請求の範囲】
【請求項１】
移行元ファイルシステムを提供する移行元ファイルサーバに接続され、移行先ファイルシステムを提供する移行先ファイルサーバであって、
記憶デバイスと、
コントローラとを有し、
前記コントローラは、
前記移行元ファイルシステムにおいて同一のファイル管理情報を参照する複数のハードリンクファイルに含まれる第１のハードリンクファイルを前記移行先ファイルシステムに移行する際に、前記第１のハードリンクファイルに関するデータを前記記憶デバイスに格納し、前記第１のハードリンクファイルを前記移行先ファイルシステムに生成し、前記移行先ファイルサーバにおける前記第１のハードリンクファイルと同一のファイル管理情報を参照するダミーハードリンクファイルを生成し、
前記複数のハードリンクファイルに含まれる第２のハードリンクファイルを移行する際に、前記ダミーハードリンクファイルを、前記第２のハードリンクファイルの前記移行先ファイルシステムにおけるパス名にリネームする、
ことを特徴とする移行先ファイルサーバ。
【請求項２】
前記コントローラは、
前記移行元ファイルサーバから、移行対象のファイルに関するデータへのリンク数を取得し、リンク数が複数である場合に、前記移行対象のファイルがハードリンクファイルであると特定する、
ことを特徴とする請求項１に記載の移行先ファイルサーバ。
【請求項３】
前記コントローラは、
前記特定したハードリンクファイルが前記第１のハードリンクファイルである場合に、前記第１のハードリンクファイルの前記移行元ファイルシステムにおける前記ファイル管理情報を示すファイル管理情報識別子に対応する名称のディレクトリを生成し、
前記第１のハードリンクファイルと同一の前記ファイル管理情報を参照する前記ダミーハードリンクファイルを、前記生成したディレクトリの直下に生成する、
ことを特徴とする請求項２に記載の移行先ファイルサーバ。
【請求項４】
前記コントローラは、
前記特定したハードリンクファイルの前記移行元ファイルシステムにおける前記ファイル管理情報を示すファイル管理情報識別子に対応する名称のディレクトリが、前記移行先ファイルシステムにて生成されているか否かに基づいて、前記ハードリンクファイルが第１のハードリンクファイルであるか、又は第２のハードリンクファイルであるかを決定する
請求項３に記載の移行先ファイルサーバ。
【請求項５】
前記コントローラは、
前記第１のハードリンクファイルと同一のファイル管理情報を参照する前記ダミーハードリンクファイルを、前記第１のハードリンクファイルに関連するデータへのリンク数から１を減算した数分生成する、
ことを特徴とする請求項２に記載の移行先ファイルサーバ。
【請求項６】
前記移行元ファイルシステムから前記移行先ファイルシステムへのファイルの移行中において、前記移行元ファイルシステムは、ファイルに対する読み込み専用に設定される、
ことを特徴とする請求項２に記載の移行先ファイルサーバ。
【請求項７】
前記コントローラは、
前記移行元ファイルシステムから前記移行先ファイルシステムへのファイルの移行中において、入出力要求、リネーム要求、又は削除要求の対象となる要求対象ファイルの指定を受け付け、
前記要求対象ファイルが前記移行先ファイルシステムに移行済みでない場合に、前記要求対象ファイルを、前記移行元ファイルシステムから前記移行先ファイルシステムへ移行させる、
ことを特徴とする請求項１に記載の移行先ファイルサーバ。
【請求項８】
移行元ファイルシステムを提供する移行元ファイルサーバに接続され、移行先ファイルシステムを提供する移行先ファイルサーバによるファイルシステム移行方法であって、
前記移行元ファイルシステムにおいて同一のファイル管理情報を参照する複数のハードリンクファイルに含まれる第１のハードリンクファイルを前記移行先ファイルシステムに移行する際に、前記第１のハードリンクファイルに関するデータを前記移行先ファイルサーバの記憶デバイスに格納し、前記第１のハードリンクファイルを前記移行先ファイルシステムに生成し、前記移行先ファイルサーバにおける前記第１のハードリンクファイルと同一のファイル管理情報を参照するダミーハードリンクファイルを生成し、
前記複数のハードリンクファイルに含まれる第２のハードリンクファイルを移行する際に、前記ダミーハードリンクファイルを、前記第２のハードリンクファイルの前記移行先ファイルシステムにおけるパス名にリネームする、
ことを特徴とするファイルシステム移行方法。
【請求項９】
前記移行元ファイルサーバから、移行対象のファイルに関するデータへのリンク数を取得し、リンク数が複数である場合に、前記移行対象のファイルがハードリンクファイルであると特定する、
ことを特徴とする請求項８に記載のファイルシステム移行方法。
【請求項１０】
前記特定したハードリンクファイルが前記第１のハードリンクファイルである場合に、前記第１のハードリンクファイルの前記移行元ファイルシステムにおける前記ファイル管理情報を示すファイル管理情報識別子に対応する名称のディレクトリを生成し、
前記第１のハードリンクファイルと同一の前記ファイル管理情報を参照する前記ダミーハードリンクファイルを、前記生成したディレクトリの直下に生成する、
ことを特徴とする請求項９に記載のファイルシステム移行方法。
【請求項１１】
前記特定したハードリンクファイルの前記移行元ファイルシステムにおける前記ファイル管理情報を示すファイル管理情報識別子に対応する名称のディレクトリが、前記移行先ファイルシステムにて生成されているか否かに基づいて、前記ハードリンクファイルが第１のハードリンクファイルであるか、又は第２のハードリンクファイルであるかを決定する、
ことを特徴とする請求項１０に記載のファイルシステム移行方法。
【請求項１２】
前記第１のハードリンクファイルと同一のファイル管理情報を参照する前記ダミーハードリンクファイルを、前記第１のハードリンクファイルに関連するデータへのリンク数から１を減算した数分生成する、
ことを特徴とする請求項９に記載のファイルシステム移行方法。
【請求項１３】
前記移行元ファイルシステムから前記移行先ファイルシステムへのファイルの移行中において、前記移行元ファイルシステムは、ファイルに対する読み込み専用に設定される、
ことを特徴とする請求項９に記載のファイルシステム移行方法。
【請求項１４】
前記移行元ファイルシステムから前記移行先ファイルシステムへのファイルの移行中において、入出力要求、リネーム要求、又は削除要求の対象となる要求対象ファイルの指定を受け付け、
前記要求対象ファイルが前記移行先ファイルシステムに移行済みでない場合に、前記要求対象ファイルを、前記移行元ファイルシステムから前記移行先ファイルシステムへ移行させる、
ことを特徴とする請求項８に記載のファイルシステム移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移行元ファイルサーバにより提供されるファイルシステムを移行先ファイルサーバに移行する技術に関する。
【背景技術】
【０００２】
従来、各種データをファイルとして管理するファイルシステムを提供するファイルサーバが知られている。ファイルシステムにおいては、他のファイルと同一の物理記憶領域（ファイル実体）を参照するファイルであるハードリンクファイルが管理されることもある。また、ファイルサーバに構築されたファイルシステムを、他のファイルサーバに移行させる必要が生じる場合がある。
【０００３】
例えば、特許文献１には、ファイルシステムを他のファイルシステムに移行させる際におけるハードリンクファイルの移行に関する技術が開示されている。具体的には、特許文献１には、ハードリンクファイルを移行元ファイルシステムから移行先ファイルシステムに移行する際に、ハードリンク情報リストに移行対象のハードリンクファイルと同一のｉｎｏｄｅ番号のハードリンク情報が登録されている場合には、移行先ファイルシステムのディレクトリツリーにハードリンク情報に含まれるファイル名に対応するハードリンクファイルを作成することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００７／０９９６３６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ファイルシステムを移行している際において、ファイルシステムで管理されているファイルを利用できるようにすることが要請されている。
【０００６】
例えば、特許文献１に開示された技術では、移行先ファイルシステムにおいて、ハードリンク情報リストに登録されているファイルを削除したり、リネームしたりしてしまうと、そのファイルと同じ物理記憶領域を参照しており、移行先のファイルシステムにまだ移行されていないハードリンクファイルについて、ハードリンク情報リストを用いて移行先のファイルシステムに適切に移行することができない。したがって、ハードリンクファイルの移行中において、移行先ファイルシステムがハードリンク情報リストに登録されているファイルの削除や、リネームをすることができないという課題がある。
【課題を解決するための手段】
【０００７】
本発明の一観点に係る移行先ファイルサーバは、移行元ファイルシステムを提供する移行元ファイルサーバに接続され、移行先ファイルシステムを提供する。移行先ファイルサーバは、記憶デバイスと、コントローラとを有する。コントローラは、移行元ファイルシステムにおいて同一のファイル管理情報を参照する複数のハードリンクファイルに含まれる第１のハードリンクファイルを移行先ファイルシステムに移行する際に、前記第１のハードリンクファイルに関するデータを前記記憶デバイスに格納し、第１のハードリンクファイルを移行先ファイルシステムに生成し、移行先ファイルサーバにおける第１のハードリンクファイルと同一のファイル管理情報を参照するダミーハードリンクファイルを生成し、複数のハードリンクファイルに含まれる第２のハードリンクファイルを移行する際に、ダミーハードリンクファイルを、第２のハードリンクファイルの移行先ファイルシステムにおけるパス名にリネームする。
【発明の効果】
【０００８】
本発明によると、移行先ファイルサーバのファイルシステムに移行されたハードリンクファイルに対する削除処理や、リネーム処理の少なくとも一方の処理を、ファイルシステムの移行途中であっても適切に実行することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るファイルシステムの移行処理の概要を示す第１の図である。
【図２】図２は、実施例１に係るファイルシステムの移行処理の概要を示す第２の図である。
【図３】図３は、実施例１に係る計算機システムの構成図である。
【図４】図４は、実施例１に係るｉｎｏｄｅの構成図である。
【図５】図５は、実施例１に係るｉｎｏｄｅリスト及びデータブロックを説明する図である。
【図６】図６は、実施例１に係るファイルシステム移行全体処理の一例を示すフローチャートである。
【図７】図７は、実施例１に係る移行処理の一例を示すフローチャートである。
【図８】図８は、実施例１に係るｉｎｏｄｅ番号データベース問合せ処理の一例を示すフローチャートである。
【図９】図９は、実施例１に係るハードリンク移行（通常ファイル扱い）処理の一例を示すフローチャートである。
【図１０】図１０は、実施例１に係るハードリンク移行（ハードリンク扱い）処理の一例を示すフローチャートである。
【図１１】図１１は、実施例１に係るリネーム処理を説明する図である。
【図１２】図１２は、実施例１に係る移行中のＩ／Ｏ、リネーム、及び削除処理の一例を示すフローチャートである。
【図１３】図１３は、実施例２に係るファイルシステムの移行処理の概要を示す第１の図である。
【図１４】図１４は、実施例２に係るファイルシステムの移行処理の概要を示す第２の図である。
【図１５】図１５は、実施例２に係る移行処理の一例を示すフローチャートである。
【図１６】図１６は、実施例２に係るｉｎｏｄｅ番号データベース問合せ処理の一例を示すフローチャートである。
【図１７】図１７は、実施例２に係るハードリンク移行（通常ファイル扱い）処理の一例を示すフローチャートである。
【図１８】図１８は、実施例２に係るハードリンク移行（ハードリンク扱い）処理の一例を示すフローチャートである。
【図１９】図１９は、実施例２に係る移行中のリネーム処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
本発明のいくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
なお、以後の説明では「ａａａリスト」等の表現にて本発明の情報を説明するが、これら情報は、リスト等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａリスト」等について「ａａａ情報」と呼ぶことがある。
【００１２】
また、各情報の内容を説明する際に、「番号」という表現を用いるが、識別情報、識別子、名、名前等と置換可能である。
【００１３】
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ（典型的にはＣＰＵ（Central  Processing  Unit））によって実行されることで定められた処理をメモリ及びＩ／Ｆ（インタフェース）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、ファイルサーバ等の計算機が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。記憶メディアとしては、例えば、ＩＣカード、ＳＤカード、ＤＶＤ等であってもよい。
【００１４】
また、以降の説明において、「ハードリンク」とは、他のハードリンクと同じファイル管理情報識別子を持ち、同じ物理記憶領域（例えば、その領域のファイル実体）を参照するファイルを意味し、ハードリンクファイル（Hard linked file）、ハードリンクの属性を持ったファイル等と言い換えることができる。また、「ｉｎｏｄｅ」は、ファイル管理情報の一例であり、「ｉｎｏｄｅ番号」は、ファイル管理情報識別子の一例である。また、「リンク」は、リファレンス（Reference）、ポインタ（Pointer）等と言い換えることができる。
【００１５】
本発明に係る実施例１について説明する。
【００１６】
まず、実施例１に係る計算機システムの概要を説明する。
【００１７】
図１は、実施例１に係るファイルシステムの移行処理の概要を示す第１の図である。図２は、実施例１に係るファイルシステムの移行処理の概要を示す第２の図である。ここで、図１及び図２は、移行元ファイルサーバ２０のファイルシステム（移行元ファイルシステムという）１２２を、移行先ファイルサーバ１０のファイルシステム（移行先ファイルシステムという。）１２２に移行させる場合の例を示している。
【００１８】
移行元ファイルシステム１２２においては、同一の物理記憶領域（すなわち、同一のファイル実体）を参照するハードリンクＡと、ハードリンクＢとが管理されている。ここで、ハードリンクＡと、ハードリンクＢとは、同じｉｎｏｄｅ番号（ここでは、「１００」）を持つ（参照する）ように管理されている。
【００１９】
まず、ハードリンクＡを移行先ファイルシステム１２２に移行させる場合には、移行先ファイルサーバ１０は、図１（１）に示すように、通常のファイルの移行と同様に、移行先ファイルシステム１２２にハードリンクＡを移行する。具体的には、移行先ファイルサーバ１０は、ハードリンクＡが参照するファイル実体を移行先ファイルサーバ１０のユーザデータ記憶装置１５０に格納し、ハードリンクＡに対応するｉｎｏｄｅを作成して格納する。そして、移行先ファイルシステム１２２における移行先のディレクトリに対応するディレクトリファイルにハードリンクＡのファイル名と、当該ハードリンクＡに割り当てた移行先ファイルシステム１２２におけるｉｎｏｄｅ番号とを対応付けて登録する。そして、ｉｎｏｄｅリスト１７０に、割り当てたｉｎｏｄｅ番号と、ファイル実体を格納したデータブロックのアドレスを示すデータブロック情報と、を対応付けて格納する。
【００２０】
次に、移行先ファイルサーバ１０は、図１（２）に示すように、移行対象のハードリンクＡに対応付けられていた移行元ファイルシステム１２２におけるｉｎｏｄｅ番号（ここでは、「１００」）をディレクトリ名としたディレクトリ１２２２をハードリンク移行専用ディレクトリ１２２１の配下に作成する。さらに、ディレクトリ１２２２の配下に、移行先ファイルシステム１２２におけるハードリンクＡのｉｎｏｄｅ番号と対応付けられたハードリンク（ダミーハードリンク、又は、リンク元ファイルという）１２２３を作成する。ここで、ハードリンク１２２３のファイル名は、任意の名称であってよい。本実施例では、移行対象のハードリンクＡのｉｎｏｄｅ１６０に含まれているリンク数から１を減算した数のハードリンク１２２３を作成する。つまり、移行元ファイルシステムから移行先ファイルシステムに移行されていないハードリンクの数のダミーハードリンクを作成する。
【００２１】
その後、ハードリンクＡと同じファイル実体を参照するハードリンクＢを移行先ファイルシステム１２２に移行させる場合には、図２（３）に示すように、移行先ファイルサーバ１０は、移行元ファイルシステム１２２におけるハードリンクＢのｉｎｏｄｅ番号と、ハードリンクＢのファイル名とを取得する。そして、移行先ファイルシステム１２２のハードリンク移行専用ディレクト１２２１の配下であって、取得したｉｎｏｄｅ番号をディレクトリ名とするディレクトリ１２２２の配下のハードリンク１２２３を特定する。
【００２２】
次いで、移行先ファイルサーバ１０は、図２（４）に示すように、特定したハードリンクのパス名を、取得したパス名にリネームする。具体的には、移行先ファイルサーバ１０は、ハードリンクを、取得したハードリンクＢのパス名に対応する移行先ファイルシステム１２２の移行先のディレクトリに対応するディレクトリファイル１８１に格納する。ここで、ハードリンクは、移行先ファイルシステムにおけるハードリンクＡと同じｉｎｏｄｅ番号が対応付けられているので、リネーム後のハードリンクＢには、移行先ファイルシステムにおけるハードリンクＡと同じｉｎｏｄｅ番号が対応付けられていることとなる。そして、このハードリンクＢを介して、ハードリンクＡと同じファイル実体を参照することができる。
【００２３】
図３は、実施例１に係る計算機システムの構成図である。
【００２４】
実施例１に係る計算機システムは、移行元ファイルサーバ２０と、移行先ファイルサーバ１０と、クライアント４０とを含む。移行元ファイルサーバ２０と、移行先ファイルサーバ１０とは、例えば、ＩＰネットワーク等の通信ネットワーク３０を介して接続されている。クライアント４０は、移行元ファイルサーバ２０と、移行先ファイルサーバ１０と通信ネットワークを介して接続されている。クライアント４０は、移行元ファイルサーバ２０及び移行先ファイルサーバ１０に構築されているファイルシステム１２２で管理されているファイルに対する各種処理の要求を送信する。
【００２５】
移行先ファイルサーバ１０は、ファイルストレージ装置１００と、ユーザデータ記憶装置１５０とを含む。
【００２６】
ファイルストレージ装置１００は、例えば、汎用的な計算機であり、ＣＰＵ（Central Processing Unit）１１０と、メモリ１２０と、拡張カード１３０と、ＨＤＤ（Hard Disk Drive）１４０とを含む。ここで、ファイルサーバは、ファイルコントローラ、コントローラと呼んでもよい。
【００２７】
ＣＰＵ１１０は、メモリ１２０に格納された各種プログラムを実行する。拡張カード１３０は、例えば、通信Ｉ／Ｆ（インターフェース）を含み、通信ネットワーク３０を介して、他の装置との通信を行う。ＨＤＤ１４０は、各種プログラムや、各種情報を記憶する。
【００２８】
メモリ１２０は、各種プログラムや、各種処理に利用するデータを記憶する。メモリ１２０は、ファイル共有プログラム１２１と、ファイルシステム１２２と、移行管理プログラム１２３とを記憶する。
【００２９】
ファイル共有プログラム１２１は、ファイルシステム１２２が管理するファイルの共有機能（ファイルを複数のクライアント間で共有する機能）を実現するプログラムである。ファイル共有プログラム１２１としては、例えば、ＮＦＳ（Network File System）やＣＩＦＳ（Common Internet File System）等がある。ファイルシステム１２２は、ファイルを管理するためのプログラムである。ファイルシステム１２２は、ファイル及びディレクトリを管理するためのファイル管理情報であるｉｎｏｄｅ、ｉｎｏｄｅリスト１７０、及びデータブロック１８０等を用いて、ファイルを管理する。
【００３０】
移行管理プログラム１２３は、移行処理プログラム１２４を含む。移行処理プログラム１２４は、一のファイルシステムを他のファイルシステムに移行する処理を実行するためのプログラムであり、ｉｎｏｄｅ番号データベース問合せプログラム１２５と、ハードリンク移行（通常ファイル扱い）プログラム１２６と、ハードリンク移行（ハードリンク扱い）プログラム１２７とを含む。
【００３１】
ｉｎｏｄｅ番号データベース問合せプログラム１２５は、移行元ファイルシステム１２２の所定のｉｎｏｄｅ番号に対応するファイルが、移行先ファイルシステム１２２に移行されているか否かを判断するｉｎｏｄｅ番号データベース問合せ処理（図８参照）を実行するためのプログラムである。
【００３２】
ハードリンク移行（通常ファイル扱い）プログラム１２６は、移行元ファイルシステム１２２において同一のｉｎｏｄｅ番号に対応付けられている複数のハードリンクの中で、移行先ファイルシステムに最先に移行するハードリンクに対する移行処理（ハードリンク移行（通常ファイル扱い）処理：図９参照）を実行するためのプログラムである。
【００３３】
ハードリンク移行（ハードリンク扱い）プログラム１２７は、移行元ファイルシステム１２２において同一のｉｎｏｄｅ番号に対応付けられている複数のハードリンクの中で、移行先ファイルシステムに２番目以降に移行するハードリンクに対する移行処理（ハードリンク移行（ハードリンク扱い）処理：図１０参照）を実行するためのプログラムである。
【００３４】
ユーザデータ記憶装置１５０は、コントローラ（ＣＴＬ）１５１と、１以上の論理ユニット（ＬＵ）１５２とを含む。ＬＵ１５２は、１以上の記憶デバイスの記憶領域により構成され、各種データを格納する。記憶デバイスは、例えば、ＨＤＤや、ＳＳＤ（Solid State Drive）等であってもよい。ＣＴＬ１５１は、ファイルストレージ装置１００からのＩＯ要求に基づいて、ＬＵ１５２に対するデータアクセス等を行う。なお、ユーザデータ記憶装置１５０が記憶する各種データをファイルストレージ装置１００のＨＤＤ１４０に格納するようにしてもよく、このようにした場合には、ユーザデータ記憶装置１５０は備えずともよい。
【００３５】
移行元ファイルサーバ２０は、移行先ファイルサーバ１０とほぼ同様な構成となっている。なお、図３においては、移行元ファイルサーバ２０の一部の構成が省略されている。なお、移行元ファイルサーバ２０のドライバ１２８は、ハードウェアを制御するプログラムである。。
【００３６】
図４は、実施例１に係るｉｎｏｄｅの構成図である。
【００３７】
ｉｎｏｄｅ１６０は、ファイル又はディレクトリに対応して設けられ、ファイル又はディレクトリを管理するための管理情報（ファイル管理情報）である。ｉｎｏｄｅ１６０は、例えば、ユーザデータ記憶装置１５０に格納される。なお、ｉｎｏｄｅ１６０の少なくとも一部のデータを、ＨＤＤ１４０、メモリ１２０のいずれかに格納するようにしてもよい。ｉｎｏｄｅ１６０は、項目１６１と、その項目に対応する値１６２とを格納する。例えば、ｉｎｏｄｅ１６０は、ｉｎｏｄｅを識別するｉｎｏｄｅ番号の値と、当該ｉｎｏｄｅに対応付けられているファイルの数（リンク数）の値（リンク情報）とを格納する。ここで、ｉｎｏｄｅ１６０におけるリンク数が２以上であることは、複数のファイルが当該ｉｎｏｄｅ１６０に対応付けられていること、すなわち、ハードリンクが存在することを意味している。
【００３８】
図５は、実施例１に係るｉｎｏｄｅリスト及びデータブロックを説明する図である。
【００３９】
ｉｎｏｄｅリスト１７０は、例えば、ユーザデータ記憶装置１５０に格納される。ｉｎｏｄｅリスト１７０は、ｉｎｏｄｅ番号１７１と、データブロック情報１７２とを対応付けて記憶する。
【００４０】
ｉｎｏｄｅ番号１７１は、ｉｎｏｄｅを示すｉｎｏｄｅ番号である。データブロック情報１７２は、ｉｎｏｄｅ番号に対応する実体（ディレクトリファイル１８１、又はファイル実体１８２）が格納されているデータブロック１８０における位置を示す情報である。
【００４１】
データブロック１８０は、ファイルシステム１２２で管理されるファイル及びディレクトリの実体を格納する。データブロック１８０は、例えば、ユーザデータ記憶装置１５０に格納される。データブロック１８０は、１以上のディレクトリファイル１８１と、１以上のファイル実体１８２とを格納する。ディレクトリファイル１８１は、１つのディレクトリに対応し、そのディレクトリの配下のディレクトリ又はファイルの名称と、それに対応するｉｎｏｄｅ１６０のｉｎｏｄｅ番号との組を格納する。例えば、図５によると、名称が「ＦｉｌｅＡ」のファイル又はディレクトリのｉｎｏｄｅ１６０のｉｎｏｄｅ番号は、「２００」であり、名称が「ＦｉｌｅＢ」のファイル又はディレクトリのｉｎｏｄｅ１６０のｉｎｏｄｅ番号は、「２０１」であることがわかる。ファイル実体１８２は、ファイルとして管理するデータの実体である。
【００４２】
次に、実施例１に係る計算機システムを用いた処理を説明する。
【００４３】
図６は、実施例１に係るファイルシステム移行全体処理の一例を示すフローチャートである。
【００４４】
まず、計算機システムの管理者は、クライアント４０に、移行元ファイルサーバ２０の移行元ファイルシステム１２２を読み込み専用としてマウントする（ステップＳ１０）。これにより、移行元ファイルシステム１２２のファイルが変更されることがないので、同一のファイルについての移行元ファイルシステム１２２と移行先ファイルシステム１２２との整合性を確保することができる。次に、計算機システムの管理者は、クライアント４０に、移行先ファイルサーバ１０の移行先ファイルシステムを読み書き可能としてマウントする（ステップＳ１１）。
【００４５】
次いで、管理者は、移行先ファイルサーバ１０の移行管理プログラム１２３に対して、移行元ファイルシステムと、移行先ファイルシステムとを設定する（ステップＳ１２）。なお、ステップＳ１０乃至Ｓ１２を計算機システムが自動的に実行してもよい。
【００４６】
この後、管理者（または、計算機システム）は、移行先ファイルサーバ１０の移行管理プログラム１２３の実行を開始させて、移行先ファイルサーバ１０のファイル移行処理プログラム１２４によりファイルシステムの移行処理の実行を開始させる。なお、この際には、管理者（または、計算機システム）は、クライアント４０において、移行元ファイルサーバ２０の移行元ファイルシステム１２２のファイルに関する各種処理要求（例えば、ファイルの入出力要求等）の送信先を、移行先ファイルサーバ１０の移行先ファイルシステムに切り替える設定を行うこととなる。
【００４７】
移行先ファイルサーバ１０の移行処理プログラム１２４は、移行元ファイルシステムを移行先ファイルシステムに移行する処理（移行処理）を実行する（ステップＳ１３）。移行処理は、移行元ファイルシステムのファイルを移行先ファイルシステムに移行する処理である。ここで、この移行処理においては、バックグラウンドで（ファイルのアクセスと関連なく）移行元ファイルシステムの各ファイルを移行対象のファイルとして逐次選択し、移行させるようにしてもよい。また、クライアント４０によるファイルをアクセスされる度に、アクセス対象のファイルを移行させるようにしてもよい。
【００４８】
次いで、移行先ファイルサーバ１０の移行処理プログラム１２４は、移行元ファイルシステム内の全ファイルの移行が終了したか否かを判定し（ステップＳ１４）、移行が終了した場合（ステップＳ１４でＹｅｓ）には、その旨を管理者（または、計算機システム）に通知する。その後、管理者（または、計算機システム）は、クライアント４０から移行元ファイルシステムをアンマウントすることとなる（ステップＳ１５）。
【００４９】
図７は、実施例１に係る移行処理の一例を示すフローチャートである。
【００５０】
この移行処理は、図６のステップＳ１３に対応する処理であり、移行先ファイルサーバ１０の移行処理プログラム１２４により実行される。
【００５１】
移行先ファイルサーバ１０の移行処理プログラム１２４は、移行元ファイルサーバ２０から移行対象のファイル（移行元ファイル）のｉｎｏｄｅ１６０におけるリンク情報（リンク数）を取得する（ステップＳ２０）。
【００５２】
次いで、移行処理プログラム１２４は、リンク数に基づいて、移行元ファイルがハードリンクであるか否かを判断する（ステップＳ２１）。具体的には、移行処理プログラム１２４は、リンク数が２以上である場合に、移行元ファイルがハードリンクであると判断する。これにより、適切に移行元ファイルがハードリンクであるか否かを判断することができる。
【００５３】
この結果、移行元ファイルがハードリンクでない場合（ステップＳ２１でＮｏ）には、移行処理プログラム１２４は、通常ファイルに対する移行処理（通常ファイル移行処理）を実行する（ステップＳ２７）。
【００５４】
一方、移行元ファイルがハードリンクである場合（ステップＳ２１でＹｅｓ）には、移行処理プログラム１２４は、移行元ファイルのｉｎｏｄｅ１６０のｉｎｏｄｅ番号を取得し（ステップＳ２２）、ｉｎｏｄｅ番号データベース問合せプログラム１２５により、取得したｉｎｏｄｅ番号を用いてｉｎｏｄｅ番号データベース問合せ処理（図８参照）を実行させる（ステップＳ２３）。
【００５５】
このｉｎｏｄｅ番号データベース問合せ処理によると、この取得したｉｎｏｄｅ番号により参照していたファイル実体に対応する、移行先ファイルシステムに移行されたファイル実体を参照するハードリンク（リンク元ファイル）が、移行先ファイルシステムに存在しているか否かの判断結果が得られる。つまり、取得したｉｎｏｄｅ番号に関連するファイル実体が既に移行先ファイルシステムに送られているかの判断結果が得られる。
【００５６】
次いで、移行処理プログラム１２４は、ｉｎｏｄｅ番号データベース問合せ処理の結果に基づいて、移行先ファイルサーバ１０にリンク元ファイルが存在しているか否かを判断し（ステップＳ２４）、移行先ファイルサーバ１０にリンク元ファイルが存在していない場合（ステップＳ２４でＮｏ）には、ハードリンク移行（通常ファイル扱い）プログラム１２６に、ハードリンク移行（通常ファイル扱い）処理（図９参照）を実行させる（ステップＳ２５）一方、移行先ファイルサーバ１０にリンク元ファイルが存在する場合（ステップＳ２４でＹｅｓ）には、ハードリンク移行（ハードリンク扱い）プログラム１２７に、ハードリンク移行（ハードリンク扱い）処理（図１０参照）を実行させる（ステップＳ２６）。
【００５７】
そして、ステップＳ２５、ステップＳ２６、又はステップＳ２７の処理を終えた後に、移行処理プログラム１２４は、移行処理を終了する。
【００５８】
図８は、実施例１に係るｉｎｏｄｅ番号データベース問合せ処理の一例を示すフローチャートである。
【００５９】
このｉｎｏｄｅ番号データベース問合せ処理は、図７のステップＳ２３に対応する処理であり、移行先ファイルサーバ１０のｉｎｏｄｅ番号データベース問合せプログラム１２５により実行される。
【００６０】
ｉｎｏｄｅ番号データベース問合せプログラム１２５は、移行元ファイルのｉｎｏｄｅ番号をその名称とするディレクトリがインデックスツリー１２２０のハードリンク移行専用ディレクトリ１２２１の配下に存在するか否かを検索する（ステップＳ３０）。次いで、ｉｎｏｄｅ番号データベース問合せプログラム１２５は、移行元ファイルのｉｎｏｄｅ番号のディレクトリが検索されたか否かを判断する（ステップＳ３１）。移行元ファイルのｉｎｏｄｅ番号のディレクトリが存在する場合（ステップＳ３１でＹｅｓ）には、このｉｎｏｄｅ番号により参照するファイル実体に対応する、移行先ファイルシステムのファイル実体を参照するハードリンク（リンク元ファイルまたはダミーファイルという）がハードリンク移行専用ディレクトリ１２２１に存在していると判断する（ステップＳ３２）一方、移行元ファイルのｉｎｏｄｅ番号のディレクトリが存在しない場合（ステップＳ３１でＮｏ）には、リンク元ファイルが存在していないと判断する（ステップＳ３３）。これにより、リンク元ファイルが存在しているか否かを適切に判定することができる。その後、ｉｎｏｄｅ番号データベース問合せプログラム１２５は、このｉｎｏｄｅ番号データベース問合せ処理を終了する。
【００６１】
図９は、実施例１に係るハードリンク移行（通常ファイル扱い）処理の一例を示すフローチャートである。
【００６２】
このハードリンク移行（通常ファイル扱い）処理は、図７のステップＳ２５に対応する処理であり、移行先ファイルサーバ１０のハードリンク移行（通常ファイル扱い）処理プログラム１２６により実行される。
【００６３】
ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルを移行先ファイルシステムに移行する（ステップＳ４０）。具体的には、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルシステムから、移行元ファイルのファイル実体を取得し、当該実体ファイルを移行先ファイルサーバ１０のユーザデータ記憶装置１５０に格納する。そして、移行先ファイルシステムにおける移行元ファイルに対応するファイルのｉｎｏｄｅ１６０を作成してユーザデータ記憶装置１５０等に格納する。そして、移行先ファイルシステム１２２における移行先のディレクトリに対応するディレクトリファイル１８１に移行元ファイルのファイル名と、当該移行元ファイルに対応するファイルの移行先ファイルシステム１２２におけるｉｎｏｄｅ番号とを対応付けて格納する。更に、移行先ファイルシステムのｉｎｏｄｅリスト１７０に、このｉｎｏｄｅ番号と、ファイル実体を格納したユーザデータ記憶装置１５０のデータブロックのアドレスを示すデータブロック情報と、を対応付けて格納する。なお、移行されたファイルの移行先ファイルシステムにおけるｉｎｏｄｅ番号は、移行元ファイルシステムにおけるｉｎｏｄｅ番号と異なっていてもよい。
【００６４】
次いで、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルに対応付けられていた移行元ファイルシステムにおけるｉｎｏｄｅ番号をディレクトリ名としたディレクトリ１２２２を、移行先ファイルシステム１２２におけるハードリンク移行専用ディレクトリ１２２１の配下に作成する（ステップＳ４１）。なお、作成するディレクトリ１２２２のディレクトリ名は、ｉｎｏｄｅ番号に限られず、ｉｎｏｄｅ番号と対応することがわかる名称であればよい。
【００６５】
次いで、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、ステップＳ４１で作成したディレクトリ１２２２の配下に、移行元ファイルの移行先ファイルシステムにおけるｉｎｏｄｅ番号と対応付けたハードリンク（リンク元ファイル(又はダミーファイル)）１２２３を作成する（ステップＳ４２）。具体的には、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行先ファイルシステム１２２のインデックスツリー１２２０のディレクトリ１２２２に対応するディレクトリファイル１８１に、リンク元ファイル（又はダミーファイル）に割り当てる所定の名称と、移行元ファイルの移行先ファイルシステムにおけるｉｎｏｄｅ番号とを対応付けて格納する。本実施例では、ステップＳ４２では、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルシステム１２２における移行元ファイルのｉｎｏｄｅ１６０に含まれているリンク数から１を減算した数のリンク元ファイル１２２３を作成する。これにより、移行元ファイルシステムにおける同一のファイル実体を参照する未移行のハードリンクの数と同数のリンク元リスト１２２３を適切に作成することができる。この後、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、ハードリンク移行（通常ファイル扱い）処理を終了する。
【００６６】
図１０は、実施例１に係るハードリンク移行（ハードリンク扱い）処理の一例を示すフローチャートである。
【００６７】
このハードリンク移行（ハードリンク扱い）処理は、図７のステップＳ２６に対応する処理であり、移行先ファイルサーバ１０のハードリンク移行（ハードリンク扱い）処理プログラム１２７により実行される。
【００６８】
ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、インデックスツリー１２２０内の移行元ファイルのｉｎｏｄｅ番号の名前を持つディレクトリのディレクトリファイル１８１を読込む（ステップＳ５０）。
【００６９】
次いで、ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、読込んだディレクトリファイル１８１に格納されているディレクトリ配下のファイルのファイル名、すなわち、リンク元ファイルのファイル名を１つ取得する（ステップＳ５１）。
【００７０】
次いで、ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、リンク元ファイルのパスを、移行元ファイルの移行先のパスヘリネームする（ステップＳ５２）。この後、ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、ハードリンク移行（ハードリンク扱い）処理を終了する。本実施例によると、予め作成されているリンク元ファイル１２２３のパスをリネームすることにより、移行先ファイルとするので、同一のファイル実体を参照する移行先ファイルシステムにおける他のハードリンクのファイルを削除、リネーム等した場合であっても、移行元ファイルであるハードリンクを移行先ファイルシステムに支障なく移行することができる。また、移行元ファイルのｉｎｏｄｅ番号の名前を持つディレクトリにリンク元ファイル１２２３を格納するようにしているので、移行元ファイルのｉｎｏｄｅ番号に基づいて検索できるので、リンク元ファイル１２２３の探索時間を短縮できる。また、移行元ファイルシステムにおけるｉｎｏｄｅに、ディレクトリの名称を示す情報を更に管理しておく必要がないので、ｉｎｏｄｅ１６０のサイズを抑えることができる。
【００７１】
図１１は、実施例１に係るリネーム処理を説明する図である。図１１は、ファイルシステムにおいて、フルパス名が「/home/FileA」のファイルを、「/etc/FileA」にリネームする場合におけるリネーム処理の例を示している。
【００７２】
まず、ファイルシステム１２２は、リネーム先の「etc」ディレクトリのディレクトリファイル１８１に、ｉｎｏｄｅ番号（本例では、「２００」）と、リネーム対象のファイルのファイル名（本例では、「FileA」）との組を追加する（図１１（１））。次いで、ファイルシステム１２２は、リネーム元の「home」ディレクトリのディレクトリファイル１８１から、リネーム対象のファイルのファイル名（本例では、「FileA」）と、そのｉｎｏｄｅ番号（本例では、「２００」）との組を削除する（図１１（２））。
【００７３】
このリネーム処理により、リネーム前に「/home/FileA」のパス名により、ｉｎｏｄｅ番号「２００」を特定して、ファイル実体にアクセスすることができたものを、「/etc/FileA」のパス名により、ｉｎｏｄｅ番号「２００」を特定して同一のファイル実体にアクセスすることができるようになる。
説明したリネーム処理と同様に、リンク元ファイルのパスを、移行元ファイルの移行先のパスヘリネームする。
【００７４】
図１２は、実施例１に係る移行中のＩ／Ｏ、リネーム、及び削除処理の一例を示すフローチャートである。
【００７５】
Ｉ／Ｏ、リネーム、及び削除処理は、移行元ファイルシステムから移行先ファイルシステムへの移行中に、ファイルに対するＩ／Ｏ、リネーム、又は削除要求が発生した場合に実行される処理である。
【００７６】
移行管理プログラム１２３は、Ｉ／Ｏ、リネーム、又は削除要求を受け付けると、要求対象のファイルが移行済みであるか否かを確認する（ステップＳ６１）。ここで、要求対象のファイルが移行済みであるか否かは、ファイルシステム１２２におけるｉｎｏｄｅリスト１７０と、データブロック１８０のディレクトリファイル１８１とを参照し、対応するファイルが存在するか否かを確認することにより確認できる。
【００７７】
次いで、移行管理プログラム１２３は、要求対象のファイルが移行済みであるか否かを判定し（ステップＳ６２）、要求対象のファイルが移行済みでない場合（ステップＳ６２でＮｏ）には、移行処理プログラム１２４に、図７に示す移行処理を要求対象のファイルを移行対象のファイルとして実行させ（ステップＳ６３）、処理をステップＳ６４に進める一方、要求対象のファイルが移行済みの場合（ステップＳ６２でＹｅｓ）には、処理をステップＳ６４に進める。このように、要求対象となるファイルについて移行処理を行うようにすると、必要のないファイルについての移行処理をしなくて済み、無駄な処理量を低減することができる。ステップＳ６４では、移行管理プログラム１２３は、要求対象のファイルに対して要求された処理（Ｉ／Ｏ、リネーム、又は削除処理）を実施し（ステップＳ６４）、Ｉ／Ｏ、リネーム、及び削除処理を終了する。
【００７８】
Ｉ／Ｏ、リネーム、及び削除処理によると、要求対象のファイルが移行済みでないファイルであれば、移行先ファイルシステム１２２に移行した後に、また、要求対象のファイルが移行済みであるファイルであれば、直ちに、Ｉ／Ｏ、リネーム、又は削除処理を適切に実行することができる。また、要求対象のファイルがハードリンクであった場合であって、他の同一のファイル実体を参照する別のハードリンクが移行済みでなかった場合であっても、図９に示すハードリンク移行（通常ファイル扱い）処理によりリンク元ファイル１２２３を用意しているので、要求対象のファイルが削除、リネーム等された後であっても、そのリンク元ファイルを利用して、移行済みでないハードリンクを適切に移行先ファイルシステムに移行することができる。
【００７９】
次に、実施例２について説明する。
【００８０】
まず、実施例２に係る計算機システムの概要を説明する。
【００８１】
実施例２に係る計算機システムは、実施例１に係る計算機システムでは、インデックスツリー１２２０を用いてファイルシステムの移行をするようにしていたものを、リンク元リストを用いてファイルシステムの移行をするようにしたものである。
【００８２】
図１３は、実施例２に係るファイルシステムの移行処理の概要を示す第１の図である。図１４は、実施例２に係るファイルシステムの移行処理の概要を示す第２の図である。ここで、図１３及び図１４は、移行元ファイルサーバ２０の移行元ファイルシステム１２２を、移行先ファイルサーバ１０の移行先ファイルシステム１２２に移行させる場合の例を示している。
【００８３】
移行元ファイルシステム１２２においては、同一の物理記憶領域（すなわち、同一のファイル実体）を参照するハードリンクＡと、ハードリンクＢとが管理されている。ここで、ハードリンクＡと、ハードリンクＢとは、同じｉｎｏｄｅ番号（ここでは、「１００」）を持つ（参照する）ように管理されている。
【００８４】
まず、ハードリンクＡを移行先ファイルシステムに移行させる場合には、移行先ファイルサーバ１０は、図１３（１）に示すように、通常のファイルの移行と同様に、移行先ファイルシステム１２２にハードリンクＡを移行する。具体的には、移行先ファイルサーバ１０は、ハードリンクＡが参照するファイル実体を移行先ファイルサーバ１０のユーザデータ記憶装置１５０に格納し、ハードリンクＡに対応するｉｎｏｄｅを作成して格納し、移行先ファイルシステム１２２における移行先のディレクトリに対応するディレクトリファイルにハードリンクＡのファイル名と、当該ハードリンクＡに割り当てた移行先ファイルシステム１２２におけるｉｎｏｄｅ番号とを対応付けて登録し、ｉｎｏｄｅリスト１７０に、割り当てたｉｎｏｄｅ番号と、ファイル実体を格納したデータブロックのアドレスを示すデータブロック情報と、を対応付けて格納する。
【００８５】
次に、移行先ファイルサーバ１０は、図１３（２）に示すように、移行対象のハードリンクＡに対応付けられていた移行元ファイルシステムにおけるｉｎｏｄｅ番号（移行元ｉｎｏｄｅ番号、ここでは、「１００」）１２２６と、当該ハードリンクＡの移行先ファイルシステムにおける移行先のパス（移行先パス）１２２７とをリンク元リスト１２２５に登録する。移行先ファイルサーバ１０は、リンク元リスト１２２５に登録されている移行先パスのファイルがリネームされた場合には、リンク元リスト１２２５の移行先パス１２２７をリネーム後のパス名に変更するように管理している。したがって、移行されたハードリンクＡのパスが変更された場合であっても適切にハードリンクＡを特定することができる。
【００８６】
その後、ハードリンクＡと同じファイル実体を参照するハードリンクＢを移行先ファイルシステムに移行させる場合には、図１４（３）に示すように、移行先ファイルサーバ１０は、ハードリンクＢの移行元のｉｎｏｄｅ番号を用いて、リンク元リスト１２２５を検索することにより、同一の移行元ｉｎｏｄｅ番号のハードリンクＡが移行された移行先パスを特定する。
【００８７】
次いで、移行先ファイルサーバ１０は、図１４（４）に示すように、移行先ファイルシステム１２２において、特定した移行先パスのファイルに対応付けられているｉｎｏｄｅ番号を特定し、当該特定したｉｎｏｄｅ番号とハードリンクＢのファイル名とを対応付けた情報をハードリンクＢの移行先のディレクトリのディレクトリファイル１８１に登録することにより、移行先ファイルシステムにおけるハードリンクＢを作成する。これにより、ハードリンクＢには、ハードリンクＡと同じ移行先ファイルシステムにおけるｉｎｏｄｅ番号が対応付けられるので、ハードリンクＡと同一のファイル実体を参照することができる。
【００８８】
次に、実施例２に係る計算機システムの構成について説明する。なお、実施例２に係る計算機システムは、基本的には、実施例１に係る計算機システムと同様な構成となっており、同様な部分については、同一の符号を用いることとし、ここでは、異なる部分について説明することとする。
【００８９】
移行先ファイルサーバ１０は、図１３に示すように、インデックスツリー１２２０を管理せずに、リンク元リスト１２２５を管理するようにしている。リンク元リスト１２２５は、例えば、移行先ファイルサーバ１０のユーザデータ記憶装置１５０に格納される。
【００９０】
リンク元リスト１２２５は、同一のファイル実体を参照する複数のハードリンクの中の最先のハードリンクの移行元ファイルシステムにおけるｉｎｏｄｅ番号（移行元ｉｎｏｄｅ番号）１２２６と、そのハードリンクについての移行先ファイルシステムにおける移行先のパス（移行先パス）１２２７とを対応付けたエントリを記憶する。
【００９１】
次に、実施例２に係る計算機システムを用いた処理を説明する。
【００９２】
実施例２に係る計算機システムにおいては、図６に示す実施例１に係るファイルシステム移行全体処理と同様な処理を行う。
【００９３】
図１５は、実施例２に係る移行処理の一例を示すフローチャートである。なお、図７に示す実施例１に係る移行処理と同様な処理ステップについては、同一符号を付し、重複する説明を省略する。
【００９４】
この移行処理は、図６のステップＳ１３に対応する処理であり、移行先ファイルサーバ１０の移行処理プログラム１２４により実行される。
【００９５】
ステップＳ２２で、移行元ファイルのｉｎｏｄｅ１６０のｉｎｏｄｅ番号を取得すると、移行処理プログラム１２４は、ｉｎｏｄｅ番号データベース問合せプログラム１２５により、取得したｉｎｏｄｅ番号を用いてｉｎｏｄｅ番号データベース問合せ処理（図１６参照）を実行させる（ステップＳ７３）。
【００９６】
このｉｎｏｄｅ番号データベース問合せ処理によると、このｉｎｏｄｅ番号により参照していたファイル実体に対応する、移行先ファイルシステムに移行されたファイル実体を参照するハードリンク（リンク元ファイル）が、移行先ファイルシステムに存在しているか否かの判断結果が得られる。
【００９７】
次いで、移行処理プログラム１２４は、ｉｎｏｄｅ番号データベース問合せ処理の結果に基づいて、移行先ファイルサーバ１０にリンク元ファイルが存在しているか否かを判断し（ステップＳ７４）、移行先ファイルサーバ１０にリンク元ファイルが存在していない場合（ステップＳ７４でＮｏ）には、ハードリンク移行（通常ファイル扱い）プログラム１２６に、ハードリンク移行（通常ファイル扱い）処理（図１７参照）を実行させる（ステップＳ７５）一方、移行先ファイルサーバ１０にリンク元ファイルが存在する場合（ステップＳ７４でＹｅｓ）には、ハードリンク移行（ハードリンク扱い）プログラム１２７に、ハードリンク移行（ハードリンク扱い）処理（図１８参照）を実行させる（ステップＳ７６）。
【００９８】
そして、ステップＳ７５、ステップＳ７６、又はステップＳ２７の処理を終えた後に、移行処理プログラム１２４は、移行処理を終了する。
【００９９】
図１６は、実施例２に係るｉｎｏｄｅ番号データベース問合せ処理の一例を示すフローチャートである。
【０１００】
このｉｎｏｄｅ番号データベース問合せ処理は、図１５のステップＳ７３に対応する処理であり、移行先ファイルサーバ１０のｉｎｏｄｅ番号データベース問合せプログラム１２５により実行される。
【０１０１】
ｉｎｏｄｅ番号データベース問合せプログラム１２５は、移行元ファイルのｉｎｏｄｅ番号に対応するエントリがリンク元リスト１２２５に存在するか否かを検索する（ステップＳ８０）。
【０１０２】
次いで、ｉｎｏｄｅ番号データベース問合せプログラム１２５は、移行元ファイルのｉｎｏｄｅ番号に対応するエントリが検索されたか否かを判断し（ステップＳ８１）、移行元ファイルのｉｎｏｄｅ番号のエントリが存在する場合（ステップＳ８１でＹｅｓ）には、移行先ファイルシステムに、このｉｎｏｄｅ番号により参照するファイル実体に対応する、移行先ファイルシステムのファイル実体を参照するハードリンク（リンク元ファイルという）が存在していると判断する（ステップＳ８２）一方、移行元ファイルのｉｎｏｄｅ番号のエントリが存在しない場合（ステップＳ８１でＮｏ）には、リンク元ファイルが存在していないと判断する（ステップＳ８３）。その後、ｉｎｏｄｅ番号データベース問合せプログラム１２５は、このｉｎｏｄｅ番号データベース問合せ処理を終了する。
【０１０３】
図１７は、実施例２に係るハードリンク移行（通常ファイル扱い）処理の一例を示すフローチャートである。
【０１０４】
このハードリンク移行（通常ファイル扱い）処理は、図１５のステップＳ７５に対応する処理であり、移行先ファイルサーバ１０のハードリンク移行（通常ファイル扱い）処理プログラム１２６により実行される。
【０１０５】
ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルを移行先ファイルシステムに移行する（ステップＳ９０）。具体的には、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルシステムから、移行元ファイルのファイル実体を取得し、当該実体ファイルを移行先ファイルサーバ１０のユーザデータ記憶装置１５０に格納し、移行先ファイルシステムにおける移行元ファイルに対応するファイルのｉｎｏｄｅ１６０を作成して格納し、移行先ファイルシステム１２２における移行先のディレクトリに対応するディレクトリファイル１８１に移行元ファイルのファイル名と、当該移行元ファイルに対応するファイルの移行先ファイルシステム１２２におけるｉｎｏｄｅ番号と、を対応付けて登録し、移行先ファイルシステムのｉｎｏｄｅリスト１７０に、このｉｎｏｄｅ番号と、ファイル実体を格納したユーザデータ記憶装置１５０のデータブロックのアドレスを示すデータブロック情報と、を対応付けて格納する。
【０１０６】
次いで、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、移行元ファイルに対応付けられていた移行元ファイルシステムにおけるｉｎｏｄｅ番号と、当該移行元ファイルについての移行先ファイルシステムにおけるフルパス名とを対応付けたエントリをリンク元リスト１２２５に書き込む（ステップＳ９１）。この後、ハードリンク移行（通常ファイル扱い）処理プログラム１２６は、ハードリンク移行（通常ファイル扱い）処理を終了する。
【０１０７】
図１８は、実施例２に係るハードリンク移行（ハードリンク扱い）処理の一例を示すフローチャートである。
【０１０８】
このハードリンク移行（ハードリンク扱い）処理は、図１５のステップＳ７６に対応する処理であり、移行先ファイルサーバ１０のハードリンク移行（ハードリンク扱い）処理プログラム１２７により実行される。
【０１０９】
ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、リンク元リスト１２２５から、移行元ファイルのｉｎｏｄｅ番号に対応するフルパス名を取得する（ステップＳ１００）。
【０１１０】
次いで、ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、取得したフルパス名に対応するファイルのｉｎｏｄｅ番号を取得し、移行元ファイルの移行先のフルパス名に対応するディレクトリのディレクトリファイル１８１に、取得したｉｎｏｄｅ番号と、当該移行元ファイルのファイル名とを対応付けて登録することにより、ハードリンクを作成する（ステップＳ１０１）。この後、ハードリンク移行（ハードリンク扱い）処理プログラム１２７は、ハードリンク移行（ハードリンク扱い）処理を終了する。
【０１１１】
図１９は、実施例２に係る移行中リネーム処理の一例を示すフローチャートである。なお、図１２に示す実施例１に係るＩ／Ｏ、リネーム、及び削除処理と同様な処理ステップについては、同一符号を付し、重複する説明を省略する。
【０１１２】
リネーム処理は、移行元ファイルシステムから移行先ファイルシステムへの移行中に、ファイルに対するリネーム要求が発生した場合に実行される処理である。
【０１１３】
ステップＳ６２の判定の結果、要求対象のファイルが移行済みでない場合（ステップＳ６２でＮｏ）には、移行管理プログラム１２３は、移行処理プログラム１２４に、図１５に示す移行処理を要求対象のファイルを移行対象のファイルとして実行させ（ステップＳ１１３）、処理をステップＳ１１４に進める一方、要求対象のファイルが移行済みである場合（ステップＳ６２でＹｅｓ）には、処理をステップＳ１１４に進める。
【０１１４】
ステップＳ１１４では、移行管理プログラム１２３は、要求対象のファイルのフルパス名を取得する。次いで、移行管理プログラム１２３は、リンク元リスト１２２５に、要求対象のファイルのフルパス名のエントリがあるか否かを検索し（ステップＳ１１５）、要求対象のファイルのフルパス名のエントリがあるか否かを判定する（ステップＳ１１６）。
【０１１５】
この結果、要求対象のファイルのフルパス名のエントリがある場合（ステップＳ１１６でＹｅｓ）には、要求対象のファイルがハードリンクであることを意味しているので、移行管理プログラム１２３は、要求対象のファイルに対してリネーム処理を実施し（ステップＳ１１７）、リンク元リスト１２２５の要求対象のファイルのパス名をリネーム後のパス名に変更し（ステップＳ１１８）、移行中リネーム処理を終了する。一方、要求対象のファイルのフルパス名のエントリがない場合（ステップＳ１１６でＮｏ）には、要求対象のファイルは、ハードリンクではないことを意味しているので、移行管理プログラム１２３は、要求対象のファイルに対してリネーム処理を実施し（ステップＳ１１９）、移行中リネーム処理を終了する。
【０１１６】
上記移行中リネーム処理によると、移行先ファイルシステム１２２に移行されたハードリンクのリネーム処理が行われた場合には、リンク元リスト１２２５には、当該ハードリンクのリネーム後のパス名が格納されることとなる。したがって、同一のファイル実体を参照する他のハードリンクを移行先ファイルシステムに移行する場合には、図１８に示すハードリンク移行（ハードリンク扱い）処理により、リンク元リスト１２２５から、移行元ファイルのｉｎｏｄｅ番号に対応する移行済みのハードリンクの最新のフルパス名を取得でき、取得したフルパス名に対応するファイルのｉｎｏｄｅ番号を取得して、移行元ファイルに対応するハードリンクを作成することができる。
【０１１７】
以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１１８】
１０  移行先ファイルサーバ、２０  移行元ファイルサーバ、４０  クライアント、１００  ファイルストレージ装置、１５０  ユーザデータ記憶装置。
【図１】
0005895099.tif 000002
【図２】
0005895099.tif 000003
【図３】
0005895099.tif 000004
【図４】
0005895099.tif 000005
【図５】
0005895099.tif 000006
【図６】
0005895099.tif 000007
【図７】
0005895099.tif 000008
【図８】
0005895099.tif 000009
【図９】
0005895099.tif 000010
【図１０】
0005895099.tif 000011
【図１１】
0005895099.tif 000012
【図１２】
0005895099.tif 000013
【図１３】
0005895099.tif 000014
【図１４】
0005895099.tif 000015
【図１５】
0005895099.tif 000016
【図１６】
0005895099.tif 000017
【図１７】
0005895099.tif 000018
【図１８】
0005895099.tif 000019
【図１９】
0005895099.tif 000020