(57)【特許請求の範囲】
【請求項１】
第一のファイルシステムにアクセスする第一の計算機であって、
前記第一のファイルシステムにあるオブジェクトを指定したアクセス要求を送信するクライアント計算機と、第二のファイルシステムにアクセスする第二の計算機とが接続される１以上の通信インタフェース装置と、
前記１以上の通信インタフェース装置に接続されたコントローラと
を有し、
前記第二のファイルシステムは、共有ディレクトリを含み、
前記共有ディレクトリは、複数の特定オブジェクトを格納し、
前記複数の特定オブジェクトのそれぞれは、前記第二の計算機の種別に従って決定された名称を含んだパス名に従うオブジェクトであり、
前記複数の特定オブジェクトは、複数のスナップショット及びログファイルを含み、
前記コントローラは、
（ａ）前記共有ディレクトリを前記第一のファイルシステムにマウントし、
（ｂ）前記第二のファイルシステムの前記複数のスナップショットのリストを特定し、
（ｃ）前記複数のスナップショットのそれぞれのスナップショットに対して、前記スナップショットが作成された時刻の、年、月、日、時、分、及び、秒を割り当てることにより、“＠GMT-<yyyy.mm. dd-hh.mm.ss >”の形式に従って決定された名称を含む第一リンクを、前記第一のファイルシステムに作成し、
（ｄ）前記ログファイルのログローテーション回数に基づいて決定された名称を含み、前記ログファイルに対応する第二リンクを、前記第一のファイルシステムに作成し、
（ｅ）定期的に、または、前記ログファイルのサイズが所定サイズを超えた場合に、前記ログファイルの前記ログローテーション回数を１つ増やすことにより、前記ログファイルの前記ログローテーション回数を更新し、
（ｆ）更新された前記ログファイルの前記ログローテーション回数に基づき、前記第二リンクの名称を変更し、
（ｇ）前記第一のファイルシステム内に、新規のログファイルを作成し、前記更新された前記ログファイルの前記ログローテーション回数に基づき決定された名称を含み前記新規のログファイルに対応する第三リンクを、前記第一のファイルシステムに作成する、
ことを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記コントローラは、
（ｈ）前記第二の計算機のスナップショット作成時間間隔を特定し、前記（ｃ）の処理を、前記スナップショット作成時間間隔で行う、
ことを特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記コントローラは、
（ｉ）前記第二のファイルシステムにおける１以上のスナップショットに関する情報を取得し、
（ｊ）前記（ｉ）で取得した情報を基に、前記１以上のスナップショットに、前記第一リンクに対応するスナップショットが含まれていないか否かを判断し、
（ｋ）前記（ｊ）の判断の結果が肯定的であれば、存在しないスナップショットに対応する第一リンクを削除する、
ことを特徴とする計算機。
【請求項４】
請求項１に記載の計算機であって、
前記コントローラに接続された記憶資源を更に有し、
前記記憶資源は、下記の（Ａ）及び（Ｂ）の情報、
（Ａ）前記第一のファイルシステムにおけるポイントとそのポイントにマウントされた共有ディレクトを含んだ第二のファイルシステムにアクセスする第二の計算機の種別との対応関係を表す第一の管理情報、
（Ｂ）第二の計算機の種別と前記特定オブジェクトを特定する方法との対応関係を表す第二の管理情報、
を記憶し、
前記コントローラは、
（ｌ）前記第一及び第二の管理情報を基に、前記複数の特定オブジェクトのうちの１つを特定する、
ことを特徴する計算機。
【請求項５】
請求項４に記載の計算機であって、
前記第二の管理情報は、前記対応関係を表す情報を、前記特定オブジェクトの種別毎に含んでおり、
前記コントローラは、前記（ｃ）、（ｄ）及び（ｇ）のそれぞれにおいて、前記第一及び第二の管理情報を基に、前記特定オブジェクトの種別に従う方法で、前記複数の特定オブジェクトのうちの１つを特定する、
ことを特徴とする計算機。
【請求項６】
請求項５に記載の計算機であって、
前記記憶資源は、前記特定オブジェクトの種別毎に命名規則を表す情報を含んだ第三の管理情報を更に記憶し、
前記コントローラは、前記（ｃ）、（ｄ）及び（ｇ）のそれぞれにおいて、前記第三の管理情報を基に、リンクの名称を決定する、
ことを特徴とする計算機。
【請求項７】
第一のファイルシステムにあるオブジェクトを指定したアクセス要求を送信するクライアント計算機と第二のファイルシステムにアクセスする第二の計算機とが接続される前記第一のファイルシステムにアクセスする第一の計算機によるデータ管理方法であって、
（ａ）前記第二のファイルシステムに含まれ、複数の特定オブジェクトを格納する共有ディレクトリを前記第一のファイルシステムにマウントし、
前記複数の特定オブジェクトのそれぞれが、第二の計算機の種別に従って決定された名称を含んだパス名に従うオブジェクトであり、
前記複数の特定オブジェクトは、複数のスナップショット及びログファイルを含み、
（ｂ）前記第二のファイルシステムの前記複数のスナップショットのリストを特定し、
（ｃ））前記複数のスナップショットのそれぞれのスナップショットに対して、前記スナップショットが作成された時刻の、年、月、日、時、分、及び、秒を割り当てることにより、“＠GMT-<yyyy.mm. dd-hh.mm.ss >”の形式に従って決定された名称を含む第一リンクを、前記第一のファイルシステムに作成し、
（ｄ）前記ログファイルのログローテーション回数に基づいて決定された名称を含み、前記ログファイルに対応する第二リンクを、前記第一のファイルシステムに作成し、
（ｅ）定期的に、または、前記ログファイルのサイズが所定サイズを超えた場合に、前記ログファイルの前記ログローテーション回数を１つ増やすことにより、前記ログファイルの前記ログローテーション回数を更新し、
（ｆ）更新された前記ログファイルの前記ログローテーション回数に基づき、前記第二リンクの名称を変更し、
（ｇ）前記第一のファイルシステム内に、新規のログファイルを作成し、前記更新された前記ログファイルの前記ログローテーション回数に基づき決定された名称を含み前記新規のログファイルに対応する第三リンクを、前記第一のファイルシステムに作成する、
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機においてデータを管理する技術に関する。
【背景技術】
【０００２】
企業等において、業務文書等のデータを保存するためにＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）が広く利用されている。近年では複数のＮＡＳを保有する企業が多い。このため、複数のＮＡＳでデータを効率的に管理する方法が必要となる。
【０００３】
特許文献１には、複数のＮＡＳのデータを管理する方法として、あるＮＡＳに他のＮＡＳが有するすべてのデータをコピーする技術が記載されている。
【０００４】
特許文献２には、複数のファイルシステムを仮想的に統合し、第一のファイルシステムを介して第二のファイルシステムに格納されたファイルにアクセスする技術が記載されている。第一のファイルシステム上に、第二のファイルシステム上のファイルの位置が記憶されたスタブファイルを配置し、スタブファイルへアクセスすることでファイルへのアクセスが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００８／０１８３７７４号明細書
【特許文献２】米国特許出願公開第２０１０／００９５１６４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のＮＡＳがデータを管理するシステムでは、ＮＡＳ毎にデータへのアクセス方法が異なる場合がある。そこで、複数のＮＡＳが有するデータを効率的に管理するために、複数のＮＡＳを統合し、これらのＮＡＳの差異をユーザに対して隠蔽することができる仮想化機能を有するＮＡＳが求められる。
【０００７】
特許文献１の技術では、ＮＡＳ間ですべてのデータをコピーする必要があるため、運用開始までに非常に時間がかかるという課題がある。
【０００８】
また、特許文献２の技術を用いると、あるＮＡＳに接続された他のＮＡＳの種別ごとに、スタブファイルが格納される位置が異なるため、データの格納先をユーザが意識する必要があり、データへのアクセス方法を変更する必要があるという課題がある。
【０００９】
上記のような課題は、ＮＡＳ以外の計算機についても同様に生じ得る。
【００１０】
本発明は、上記の課題に鑑みてなされたものである。本発明の目的は、仮想化機能を有する第一の計算機を介して第二の計算機にアクセスすることを、第二の計算機から第一の計算機へのデータのコピーと、第二の計算機へのアクセス方法の変更とのいずれも行うことなく、行えるようにすることである。
【課題を解決するための手段】
【００１１】
第一のファイルシステムにアクセスする第一の計算機に、第一のファイルシステムにあるオブジェクトを指定したアクセス要求を送信するクライアント計算機と、第二のファイルシステムにアクセスする第二の計算機とが接続される。第二のファイルシステムは、共有ディレクトリを含む。第二の計算機の種別に従って決定された名称を含んだパス名に従うオブジェクトである特定オブジェクトが共有ディレクトリに格納される。コントローラは、共有ディレクトリを第一のファイルシステムにマウントする。コントローラは、第二の計算機の種別に依存しない一定の命名規則に従って決定した名称を有し特定オブジェクトに対応するリンクを第一のファイルシステム上に作成する。特定オブジェクトの具体例は、スナップショット、又は、ログファイルである。
【００１２】
種別の異なる複数の第二の計算機がそれぞれアクセスする複数の共有ディレクトリが第一のファイルシステムにマウントされても、第一のファイルシステムには、それら複数の共有ディレクトリ内の複数の特定オブジェクトに対応する複数のリンクが作成される。各リンクが有する名称は、計算機の種別に依存しない一定の命名規則に従って決定された名称である。このため、クライアント計算機のユーザは、第二の計算機の種別を意識することなく、クライアント計算機を用いて、所望の特定オブジェクトにアクセスすることができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１〜７に係る計算機システムの共通事項の概要を示す。
【図２】接続状態テーブル１３８の構成の一例を示す。
【図３】名称規則テーブル１３９の構成の一例を示す。
【図４】実施例１に係る主計算機１１０が有するメモリ１３０に記憶される情報及びプログラムの一例を示す。
【図５】実施例１に係る副計算機１７０が有するメモリ１９０が記憶する情報及びプログラムの一例を示す。
【図６】一覧参照方法テーブル１３７の構成の一例を示す。
【図７】副計算機１７０が有するスナップショットを仮想化する処理手順の一例を示したフローチャートである。
【図８】図７の処理によって仮想化されたスナップショットに対するアクセス手順の一例を示したフローチャートである。
【図９】実施例２に係る主計算機１１０を含んだ計算機システムの構成例を示す。
【図１０】実施例２においてファイルシステム１４１から新ファイルシステム１４２に切り替えて運用を開始する処理手順の一例を示したフローチャートである。
【図１１】実施例３において副計算機１７０のスナップショットについて作成したリンクと同じ命名規則のリンクを作成する手順の一例を示したフローチャートである。
【図１２】実施例４においてリンクを削除する処理手順の一例を示したフローチャートである。
【図１３】実施例６に係る主計算機１１０が有するメモリ１３０に記憶される情報及びプログラムの一例を示す。
【図１４】実施例６に係る副計算機１７０が有するメモリ１９０が記憶するプログラムの一例を示す。
【図１５】ログ名称テーブル１３１２の構成の一例を示す。
【図１６】実施例６において副計算機１７０を主計算機１１０に接続する際に副計算機１７０が有するログファイルを仮想化する処理手順の一例を示したフローチャートである。
【図１７】実施例７においてリンクの名称を変更しまた新規にリンクを作成する手順の一例を示したフローチャートである。
【図１８】本発明の実施例１〜７の共通事項の１つの概要を示す図である。
【図１９】実施例１を実施する前と実施した後の、ユーザから見たスナップショット名の一例である。
【図２０】実施例６を実施する前と実施した後の、ユーザから見たログ名の一例である。
【図２１】実施例５においてリンクを作成する処理手順の一例を示したフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の幾つかの実施例を説明する
【００１５】
なお、以下では「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００１６】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、コントローラに含まれるプロセッサ（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、コントローラが行う処理としても良い。また、コントローラは、プロセッサそれ自体であっても良いし、プロセッサに代えて又は加えて、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから記憶制御装置にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであっても良い。
【００１７】
ファイルシステムの基になる記憶装置は、計算機の中にあっても外にあっても良い。以下の実施例では、ファイルシステムの基になる記憶装置が、計算機の中にあるとする。
【００１８】
計算機は、ファイルサーバ、例えば、ＮＡＳのような記憶制御装置で良い。
【００１９】
また、以下の説明では、「時刻」という言葉を用いるが、時刻は、年、月、日、時、分、秒（小数点以下の秒を含んでも良い）のうちの少なくともいずれかを含む。
【００２０】
また、以下の説明では、同種の要素（例えば、副計算機）を区別しない場合、参照符号のうちの共通部分のみを使用することがある。例えば、図１８において、副計算機Ａ１７０ａと副計算機Ｂ１７０ｂを区別しない場合、「副計算機１７０」と言うことがある。
【００２１】
以下、図面を参照して、本発明の実施例１〜７を説明する。なお、以下の説明では、ファイルサーバの仮想化を行う機能を有する第一の計算機を「主計算機」と言い、主計算機に接続される第二の計算機を「副計算機」と言う。ファイルサーバの仮想化技術とは、複数の副計算機が提供する複数の共有単位（論理的な公開単位）を一つの名前空間として仮想化する技術である。その一つの名前空間は、グローバルネームスペース（GNS）と呼ばれることもある。主計算機は、複数の副計算機が提供する複数の共有ディレクトリを統合した擬似的なファイルシステムを構築することができる。主計算機は、クライアントからファイル等のオブジェクトに対して要求があった場合に、そのオブジェクトが存在する副計算機へ要求を転送することができる。
【００２２】
図１８は、本発明の実施例１〜７の共通事項の１つの概要を示す図である。ここでは、スナップショットをデータの例にとって説明する。
【００２３】
主計算機１１０は、データネットワーク２２０を介して副計算機１７０ａと副計算機１７０ｂとに接続されている。また、主計算機１１０は、運用ネットワーク２５０を介してクライアント２４０と接続されている。
【００２４】
副計算機１７０ａが管理するファイルシステム２０１ａには、２つのスナップショット（具体的には、２０１０年１月１日時点のスナップショットと、２０１０年１月２日時点のスナップショット）が作成されている。図１８は、これらのスナップショットにアクセスする方法の一例として、ファイルシステム２０１ａのルートディレクトリである「／ｅｘｐｏｒｔ／ａ／．ｓｎａｐ」以下に作成されたディレクトリにアクセスする方法を示している。「／ｅｘｐｏｒｔ／ａ／．ｓｎａｐ」以下に作成されたディレクトリには、スナップショットが格納される。ディレクトリの名称である「／ｅｘｐｏｒｔ／ａ／．ｓｎａｐ」は、副計算機１７０ａの種別に従って決定された名称である。副計算機１７０ａの種別に従って決定された名称を有するオブジェクト（ディレクトリ又はファイル）は、スナップショット及び／又はスナップショットが格納されるディレクトリに限らない。他種のオブジェクトとしては、例えば、ログファイルがある。
【００２５】
また、副計算機１７０ｂが管理するファイルシステム２０１ｂにも、２つのスナップショットが作成されている。図１８は、これらのスナップショットにアクセスする方法の一例として、ファイルシステム２０１ｂのルートディレクトリである「／ｅｘｐｏｒｔ／ａ／．ｃｋｐｔ」以下に作成されたディレクトリにアクセスする方法を示している。「／ｅｘｐｏｒｔ／ａ／．ｃｋｐｔ」以下に作成されたディレクトリには、スナップショットが格納される。ディレクトリの名称である「／ｅｘｐｏｒｔ／ａ／．ｃｋｐｔ」は、副計算機１７０ｂの種別に従って決定された名称である。副計算機１７０ｂの種別に従って決定された名称を有するオブジェクト（ディレクトリ又はファイル）は、スナップショット及び／又はスナップショットが格納されるディレクトリに限らない。
【００２６】
ファイルシステム２０１ａが、主計算機１１０が管理するディレクトリ３０４ａに関連付けられており、ファイルシステム２０１ｂが、主計算機１１０が管理するディレクトリ３０４ｂに関連付けられている。
【００２７】
クライアント計算機（以下、クライアント）２４０がディレクトリ３０４ａにアクセスすると、主計算機１１０上のプログラムが動作することで、主計算機１１０は、ディレクトリ３０４ａ内のデータとして、吹き出し３１１ａに示す通り、ファイルシステム２０１ａ内のスナップショットのスタブをクライアント２４０に提供することができる。スタブは、ディレクトリ又はファイルの格納先情報（リンク先を表す情報）に関連付けられたオブジェクト（例えばメタデータ）である。同様に、クライアント２４０がディレクトリ３０４ｂにアクセスすると、主計算機１１０は、ディレクトリ３０４ｂ内のデータとして、吹き出し３１１ｂに示す通り、ファイルシステム２０１ｂ内のスナップショットのスタブをクライアント２４０に提供することができる。すなわち、クライアント２４０は、主計算機１１０が管理するディレクトリ３０４ａまたは３０４ｂにアクセスすることで、副計算機１７０ａまたは１７０ｂが管理するスナップショットにアクセスできる。
【００２８】
しかし、前述のとおり、一般に、スナップショットへアクセスする方法は、副計算機１７０の種別によって異なる。このため、クライアント２４０は、主計算機１１０上の各ディレクトリに対応する副計算機１７０の種別にしたがってアクセス方法を変える必要がある。これは、クライアント２４０のユーザにとって負担であり煩雑である。図１８の例では、副計算機１７０毎に、スナップショットへのアクセスパスが異なる。つまり、クライアント２４０のユーザは、ディレクトリ３０４ａに対応する計算機が副計算機１７０ａであることを判断し、また、副計算機１７０ａのスナップショットを参照するために、「．ｓｎａｐ」以下のディレクトリを参照することが必要であることを知らなければ、副計算機１７０ａが管理するスナップショットを参照することができない。また、クライアント２４０のユーザは、ディレクトリ３０４ｂに対応する計算機が副計算機１７０ｂであることを判断し、また、副計算機１７０ｂのスナップショットを参照するために、「．ｃｋｐｔ」以下のディレクトリを参照することが必要であることを知らなければ、副計算機１７０ｂが管理するスナップショットを参照することができない。
【００２９】
そこで、実施例１〜７では、主計算機１１０は、副計算機１７０の種別に依存しない一定のルールに従ってリンク（オブジェクト）を作成する。これにより、副計算機１７０が管理するスナップショットが仮想化される。
【００３０】
作成されたリンクのリンク先は、副計算機１７０が管理するスナップショットであっても良いし、スナップショットのスタブであっても良い。
【００３１】
また、「一定のルール」とは、例えば、リンクの命名ルールである。図１８の例によれば、副計算機１７０ａ及び１７０ｂのいずれが管理しているスナップショットであるかに関わらず、一定のルールに従い、スナップショットの取得時刻を表す情報が、そのスナップショットに対応するリンクの名称（例えば、「＠ＧＭＴ−２０１０．０１．０１．００．００．００」）とされる。
【００３２】
実施例１〜７では、スタブではなく、リンクがクライアント２４０に提供される。すなわち、主計算機１１０は、ディレクトリ３０４ａ内のデータとして、吹き出し３１３ａに示す通り、ファイルシステム２０１ａ内のスナップショットに対応したリンクを、クライアント２４０に提供することができる。同様に、クライアント２４０がディレクトリ３０４ｂにアクセスすると、主計算機１１０は、ディレクトリ３０４ｂ内のデータとして、吹き出し３１３ｂに示す通り、ファイルシステム２０１ｂ内のスナップショットに対応したリンクを、クライアント２４０に提供することができる。
【００３３】
クライアント２４０からリンク（例えば「／ｍｎｔ／ｎａｓ＿ａ／＠ＧＭＴ−２０１０．０１．０１．００．００．００」というパス名のリンク）がアクセスされると、主計算機１１０は、そのリンクに対応したスナップショット（例えば「／ｅｘｐｏｒｔ／ａ／．ｓｎａｐ／２０１０−０１−０１」というパス名のスナップショット）を指定したアクセス要求を、そのスナップショットを管理する副計算機１７０（例えば１７０ａ）に送信する。
【００３４】
実施例１〜７によれば、クライアント２４０は、吹き出し３１３ａ及び３１３ｂに示した通り、副計算機１７０の種別に依存することなく、副計算機１７０が管理するスナップショットにアクセスすることができる。クライアント２４０に提供されるリンクの名称は、副計算機１７０の種別に依存しないルールに従って付与された名称であるため、クライアント２４０のユーザは、スナップショットがどの種別の副計算機１７０に存在するかを意識しないで良い。
【００３５】
以下、図１〜３を用いて、実施例１〜７に共通する構成を説明する。
【００３６】
図１は、実施例１〜７に係る計算機システムの共通事項の概要を示す。
【００３７】
主計算機１１０は、通信インタフェース装置と、記憶資源と、それらに接続されたコントローラとを有する。通信インタフェース装置として、例えば、データ用インタフェース１５０（データＩ／Ｆ１５０）と、運用ネットワークインタフェース１６０（以下、運用Ｉ／Ｆ１６０）とがある。記憶資源は、例えば、メモリ１３０及び記憶装置１４０を含む。コントローラは、例えば、ＣＰＵ１２０である。
【００３８】
メモリ１３０には、ファイルシステム管理プログラム１３１と、リンク管理プログラム１３２と、ファイルアクセスプログラム１３３と、接続状態テーブル１３８と、名称規則テーブル１３９とが記憶される。主計算機１１０は、ＣＰＵ１２０を使用して、各プログラムを実行する。
【００３９】
ファイルシステム管理プログラム１３１は、ファイルシステム１４１に対する処理を実行する機能を有する。処理の具体例は、記憶装置１４０が有する物理的な記憶領域を論理的に区分けしてファイルシステム１４１を作成する処理、及び、ファイルシステム１４１を削除する処理などである。
【００４０】
ファイルシステム１４１は、各ファイルと、各ファイルのメタデータ（例えば、ファイルの所有者や作成日時を示すデータ）とを格納する。ファイルシステム１４１内のデータ（ファイル及びそのメタデータ）は、そのファイルシステム１４１の基になっている記憶装置１４０に格納されている。実施例１〜７では、記憶装置１４０が有する１以上の記憶媒体は、ハードディスクドライブであるが、それに代えて又は加えて、フラッシュメディアなどの他の媒体でもよい。
【００４１】
リンク管理プログラム１３２は、ファイルシステム１４１上のリンクに対する処理を実行する機能を有する。処理の具体例は、ファイルシステム１４１上のあるファイルやディレクトリに対するリンクを作成する処理、当該リンクを削除する処理である。なお、リンクの具体例として、シンボリックリンクがある。リンク先が存在しない場合でもシンボリックリンクを作成することができる。しかし、リンクは、あるファイルやディレクトリを指し示すオブジェクトであれば、シンボリックリンクに限らない。
【００４２】
ファイルアクセスプログラム１３３は、データＩ／Ｆ１５０を介して、主計算機１１０以外の計算機が有するファイルやディレクトリにアクセスし、当該ファイルやディレクトリのデータを読み書きする機能を有する。具体的には、例えば、副計算機１７０が公開している共有ディレクトリをファイルシステム１４１のマウントポイントに接続し、当該マウントポイント以下のファイルやディレクトリを他のプログラムが読み書きした場合、ファイルアクセスプログラム１３３が、副計算機１７０にアクセスする。そして、ファイルアクセスプログラム１３３は、当該ファイルやディレクトリに対応する当該共有ディレクトリ以下のファイルやディレクトリを読み書きし、当該他のプログラムに結果を返却する。当該アクセスに使用するプロトコルは、例えば、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）プロトコル、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）プロトコル、あるいはＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）であるが、他のプロトコルでもよい。
【００４３】
ファイルアクセスプログラム１３３が副計算機１７０のファイルへアクセスするためには、副計算機１７０上のファイルの格納場所が何らかの方法で管理されていればよい。例えば、図１８の例において、スナップショットのスタブファイルを作成する方法がある。スタブファイルは、副計算機１７０が管理するファイルシステム２０１内のファイルごとに、そのファイルの格納場所を示す情報を含む。スタブファイルを用いると、副計算機１７０が有するファイルやディレクトリが、ファイルシステム１４１上に仮想的に作成される。クライアント２４０は、スタブファイルにアクセスすることで、副計算機１７０のファイルにアクセスすることが可能となる。そして、リンク管理プログラム１３２は、スタブファイルをリンク先としたリンクを作成することができる。これによれば、２つの仮想階層が実現される。第１の仮想階層に従うオブジェクトは、スタブ（すなわち、副計算機１７０のファイルシステム２０１に格納されているディレクトリ又はファイルの仮想的なオブジェクト）である。そして、第２の仮想階層（第１の仮想階層の上位の階層）に従うオブジェクトが、スタブをリンク先としたリンクである。
【００４４】
副計算機１７０（１７０ａ〜１７０ｎ）は、通信インタフェース装置と、記憶資源と、それらに接続されたコントローラとを有する。通信インタフェース装置として、例えば、
データ用インタフェース２１０（以下、データＩ／Ｆ２１０）がある。記憶資源は、例えば、メモリ１９０及び記憶装置２００を含む。コントローラは、例えば、ＣＰＵ１８０である。
【００４５】
メモリ１９０には、ファイル共有プログラム１９１が記憶される。副計算機１７０は、ＣＰＵ１８０を使用して当該プログラムを実行する。
【００４６】
ファイル共有プログラム１９１は、記憶装置２００に基づくファイルシステム２０１に格納されたファイルやディレクトリのデータを読み出して、データＩ／Ｆ２１０を介して他の計算機へ送信し、また他の計算機から受信したデータを当該ファイルやディレクトリに書き込む機能を有する。他の計算機との通信に使用するプロトコルは、例えば、ＣＩＦＳプロトコル、ＮＦＳプロトコル、あるいはＨＴＴＰであるが、他のプロトコルでもよい。
【００４７】
クライアント２４０は、運用ネットワーク２５０を介して、主計算機１１０に対してデータの読み書きを指示する。この読み書きの指示を受けた主計算機１１０は、ファイルシステム１４１にデータを書き込み、あるいはファイルシステム１４１からデータを読み込み、処理結果をクライアント計算機２４０に送信する。クライアント２４０と主計算機１１０の間の通信に使用するプロトコルは、例えば、ＣＩＦＳプロトコル、ＮＦＳプロトコル、あるいはＨＴＴＰであるが、他の形式のプロトコルでもよい。
【００４８】
管理計算機２３０は、データネットワーク２２０を介して、主計算機１１０および副計算機１７０の有する各種プログラムに対する命令を送受信することで、主計算機１１０および副計算機１７０を管理する。
【００４９】
運用ネットワーク２５０、およびデータネットワーク２２０としては、ＬＡＮ（Local   Area  Network）或いはＳＡＮ（Storage  Area  Network）を採用することができるが、他の通信ネットワークでもよい。
【００５０】
図２は、接続状態テーブル１３８の構成の一例を示す。
【００５１】
接続状態テーブル１３８は、副計算機１７０のファイル共有プログラム１９１が公開している共有ディレクトリとそのマウント先との関係に関する情報を有する。具体的には、例えば、接続状態テーブル１３８は、副計算機１７０の共有ディレクトリ毎に、マウントポイント１３８１と、接続先ＩＰアドレス１３８２と、接続先ボリューム１３８３と、計算機種別１３８４とを有する。
【００５２】
マウントポイント１３８１は、副計算機１７０上のファイル共有プログラム１９１が公開している共有ディレクトリのマウント先のオブジェクト（主計算機１１０上のファイルシステム１４１におけるオブジェクト（例えばディレクトリ））へのパス名を表している。主計算機１１０上のプログラムが、当該パス名に従ってアクセスすると、ファイルアクセスプログラム１３３が、副計算機１７０上の共有ディレクトリにアクセスすることができる。
【００５３】
接続先ＩＰアドレス１３８２は、マウントポイント１３８１が表すパス名に従うオブジェクトにマウントされた共有ディレクトリを有する副計算機１７０のＩＰアドレスを表す情報である。接続先ＩＰアドレス１３８２に代えて又は加えて、マウントポイント１３８１が表すパス名に従うオブジェクトにマウントされた共有ディレクトリを有する副計算機１７０の識別情報として、他種の情報（例えば、副計算機１７０の名称或いは識別子）が採用されても良い。
【００５４】
接続先ボリューム１３８３は、副計算機１７０の共有ディレクトリのパス名を表す情報である。図示のパス名に代えて又は加えて、ファイル共有プログラム１９１が公開しているパスが特定できる他種の識別子が採用されてもよい。
【００５５】
計算機種別１３８４は、共有ディレクトリを有する副計算機１７０の種別を表す情報である。
【００５６】
図３は、名称規則テーブル１３９の構成の一例を示す。
【００５７】
名称規則テーブル１３９は、リンクの名称を決定する規則を表す情報を有する。名称規則テーブル１３９は、例えば、仮想化対象の種別毎に、仮想化対象の種別を表す情報である仮想化対象１３９１と、仮想化対象を仮想化するときに使用する名称の規則を表す情報である名称規則１３９２と、を有する。仮想化対象の種別として、前述したスナップショットの他に、他種の種別、例えば、ログファイル（例えば、アクセスログ、エラーログ）がある。スナップショットに対応する名称規則１３９２を「＠ＧＭＴ−＜年4桁．月２桁．日２桁−時２桁．分２桁．秒２桁」の形式にすることで、ＣＩＦＳプロトコルを利用するクライアント２４０は、各スナップショットをファイルシステムのバージョンとして扱うことができる。
【００５８】
以上が、実施例１〜７の共通事項の説明である。以下、各実施例を説明する。
【実施例１】
【００５９】
本実施例は、仮想化機能を有するＮＡＳ（主計算機）に他のＮＡＳ（副計算機）を接続した際に、他のＮＡＳが有するスナップショットに対してリンクを作成する実施例である。
【００６０】
スナップショット機能とは、ある瞬間のファイルシステムの全体のイメージを保存する機能である。この機能を用いることで、ユーザは誤った操作を行った場合などに、過去に保存した時点のイメージを復元できることから、ＮＡＳを利用するユーザにとって必須の機能である。現在ほぼすべてのＮＡＳがスナップショット機能を有している。
【００６１】
スナップショットは、一般にＮＡＳごとに特定のディレクトリへ格納される。このため、スナップショットへのアクセス方法はＮＡＳごとに差異が生じる。例えば、ＮＡＳのベンダーが異なる場合は、このような差異がある。よって、仮想化機能はこの差異を吸収する必要がある。
【００６２】
そこで、ＮＡＳの種類によらず一定の規則に基づいてこのリンクの名称を生成することで、主計算機を使用するユーザはＮＡＳごとの差異を意識することなく、あたかも主計算機が有するスナップショットであるかのようにアクセスすることができる。
【００６３】
図４は、実施例１に係る主計算機１１０が有するメモリ１３０に記憶される情報及びプログラムの一例を示す。
【００６４】
メモリ１３０は、図１の情報及びプログラムに加えて、ファイル共有プログラム１３４と、スナップショット一覧取得プログラム１３５と、スナップショット管理プログラム１３６と、一覧参照方法テーブル１３７と、を記憶する。
【００６５】
ファイル共有プログラム１３４は、ファイルシステム１４１に格納されたファイルやディレクトリのデータを読み出して、データＩ／Ｆ１５０を介して他の計算機へ送信し、また他の計算機から受信したデータを当該ファイルやディレクトリに書き込む機能を有する。他の計算機との通信に使用するプロトコルは、例えば、ＣＩＦＳプロトコル、ＮＦＳプロトコル、あるいはＨＴＴＰであるが、他のプロトコルでもよい。
【００６６】
スナップショット一覧取得プログラム１３５は、後述の一覧参照方法テーブル１３７を利用して、副計算機１７０が有するスナップショットの一覧および各スナップショットが作成された時刻を取得する機能を有する。また、このプログラム１３５は、一覧参照方法テーブル１３７を編集する機能を有していてもよい。
【００６７】
スナップショット管理プログラム１３６は、ファイルシステム１４１のスナップショットに対する処理を実行する機能を有する。処理の具体例は、ある時刻におけるファイルシステム１４１のスナップショットを作成する処理、削除する処理、作成済みのスナップショット上のファイルやディレクトリに対して他のプログラムが読み出した場合に、当該ファイルやディレクトリのデータを読み出す処理がある。
【００６８】
図５は、実施例１に係る副計算機１７０が有するメモリ１９０が記憶する情報及びプログラムの一例を示す。
【００６９】
メモリ１９０は、ファイル共有プログラム１９１に加えて、スナップショット管理プログラム１９２を記憶する。
【００７０】
ファイル共有プログラム１９１は、前述のファイル共有プログラム１３４と同様の機能を有する。
【００７１】
スナップショット管理プログラム１９２は、ファイルシステム２０１のスナップショットに対する処理を実行する機能を有する。処理の具体例は、ある時刻におけるファイルシステム２０１のスナップショットを作成する処理、削除する処理、作成済みのスナップショット上のファイルやディレクトリに対して他のプログラムが読み出した場合に、当該ファイルやディレクトリのデータを読み出す処理がある。
【００７２】
図６は、一覧参照方法テーブル１３７の構成の一例を示す。
【００７３】
一覧参照方法テーブル１３７は、副計算機１７０の種別と副計算機１０７から仮想化対象を特定するための方法との関係を表す情報を有する。一覧参照方法テーブル１３７は、例えば、副計算機１７０の種別毎に、副計算機１７０の種別を表す情報である計算機種別１３７１と、取得する一覧の種別を表す情報である一覧種別１３７２と、仮想化対象の一覧を取得する方法を表す情報である一覧参照方法１３７３と、を有する。図６の第一行における一覧参照方法１３７３によれば、主計算機１１０が、副計算機種別「ＮＡＳ＿Ａ」の副計算機１０７のファイルシステム２０１のスナップショットを参照するためには、主計算機１１０が、「.snap」以下をルックアップすればよい。
【００７４】
図７は、副計算機１７０が有するスナップショットを仮想化する処理手順の一例を示したフローチャートである。
【００７５】
まず、管理者が、管理計算機２３０を使用して、マウントポイントと、副計算機１７０のＩＰアドレスと、ファイル共有プログラム１９１が提供しているボリュームと、その副計算機１７０の種別と、を指定する（Ｓ１０１）。
【００７６】
次に、ファイルアクセスプログラム１３３が、副計算機１７０の当該ボリューム（共有ディレクトリ）をマウントポイントに接続する（Ｓ１０２）。このボリュームは、スナップショットを含んだボリュームである。この処理によって、クライアント２４０は、主計算機１１０を介して副計算機１７０が有するスナップショットへアクセスすることが可能になる。スタブファイルを用いる場合であれば、この処理で各スナップショットに対応するスタブファイルが作成される。
【００７７】
次に、ファイルアクセスプログラム１３３が、管理者がＳ１０１で指定した値を接続状態テーブル１３８に追加する（Ｓ１０３）。
【００７８】
次に、スナップショット一覧取得プログラム１３５が、一覧参照方法テーブル１３７を参照して、Ｓ１０２で接続された副計算機１７０の種別に対応する一覧参照方法１３７３を特定する（Ｓ１０４）。
【００７９】
次に、スナップショット一覧取得プログラム１３５が、特定した一覧参照方法１３７３に基づいて、副計算機１７０が有するスナップショットの一覧を特定する（Ｓ１０５）。
【００８０】
次に、スナップショット一覧取得プログラム１３５が、特定した各スナップショットの作成時刻を特定する（Ｓ１０６）。スナップショットの作成時刻は、スナップショットの名称から特定されても良いし、スナップショットを管理するためのテーブル（図示せず）から特定されても良い。
【００８１】
次に、リンク管理プログラム１３２が、名称規則テーブル１３９を参照し、スナップショットに対応した名称規則１３９２を特定する（Ｓ１０７）。
【００８２】
最後に、リンク管理プログラム１３２が、Ｓ１０５で特定した各スナップショットについて、Ｓ１０１で管理者が指定したマウントポイント直下に、Ｓ１０７で特定した名称規則１３９２に従ってリンクを作成する（Ｓ１０８）。名称規則１３９２が「＠ＧＭＴ−＜ｙｙｙｙ．ｍｍ．ｄｄ−ｈｈ．ｍｍ．ｓｓ＞」である場合、リンク管理プログラム１３２は、Ｓ１０６で特定した日時（年、月、日、時、分、秒）を代入することにより、その日時に作成されたスナップショットに対応するリンクの名称を作成する。このＳ１０８では、例えば、Ｓ１０２において作成されたスタブ毎に、そのスタブをリンク先としたリンクが作成されてよい。リンク管理プログラム１３２は、例えば、スナップショットの一覧参照方法１３７３が「．ｓｎａｐ以下をルックアップ」であった場合、マウントポイント直下の「．ｓｎａｐ以下」の各スナップショットに対応したリンクを作成する。リンクの配置位置は、マウントポイント直下でなくてもよく、管理者が指定した位置でもよい。
【００８３】
以上の処理を実施することで、主計算機１１０のファイルシステム１４１上に、副計算機１７０が有するスナップショットに対するリンクが作成される。リンクは、副計算機１７０の種別に依存しない一定の規則に従う名称を有している。このため、主計算機１１０にアクセスするクライアント２４０を使用するユーザからみると、あたかも主計算機１１０がスナップショットを作成しているかのように見える。従って、副計算機１７０の有するスナップショットが主計算機１１０で仮想化されたことになる。
【００８４】
図８は、図７の処理によって仮想化されたスナップショットに対するアクセス手順の一例を示したフローチャートである。
【００８５】
まず、主計算機１１０上のプログラムがファイルシステム１４１上のリンクにアクセスする（Ｓ２０１）。アクセスが発生する契機の例として、ファイル共有プログラム１３４が、スナップショットに対応したリンクを指定したアクセス要求をクライアント２４０から受信した契機がある。この際、ファイルシステム１４１は、リンク先を解釈した結果を当該プログラムに返却し、当該プログラムは、マウントポイント直下のスナップショットにアクセスする。例えば、当該リンクが「／ｍｎｔ／ａ／＠ＧＭＴ−２０１１．０１．０１−００．００．００」であって、リンク先が「／ｍｎｔ／ａ／．ｓｎａｐ／２０１１０１０１００００００」であった場合、当該リンクにアクセスしたプログラムは、リンク先のディレクトリにアクセスする。
【００８６】
次に、ファイルアクセスプログラム１３３が、接続状態テーブル１３８を基に、副計算機１７０が有するスナップショットであって、当該解釈結果に対応するスナップショットにアクセスする（Ｓ２０２）。上記の例であれば、ファイル共有プログラム１９１が公開しているボリューム直下の「．ｓｎａｐ／２０１１０１０１００００００」にファイルアクセスプログラム１３３はアクセスする。
【００８７】
次に、ファイルアクセスプログラム１３３が、当該スナップショットに対応するディレクトリの情報を特定する（Ｓ２０３）。ディレクトリの情報とは、ディレクトリに含まれるファイルやディレクトリの名前の一覧などである。
【００８８】
次に、ファイルアクセスプログラム１３３は、特定したディレクトリの情報をファイルシステム１４１に書き込む（Ｓ２０４）。
【００８９】
次に、ファイルシステム１４１は、アクセス元のプログラムに、Ｓ２０４で書き込まれた情報を返却する（Ｓ２０５）。
【００９０】
次に、ファイルアクセスプログラム１３３は、特定したディレクトリの情報に基づいて、スナップショット内のファイルにアクセスする（Ｓ２０６）。
【００９１】
次に、ファイルアクセスプログラム１３３は、ファイルを副計算機１７０から取得する（Ｓ２０７）。
【００９２】
次に、ファイルアクセスプログラム１３３は、取得したファイルをファイルシステム１４１に書き込む（Ｓ２０８）。つまり、取得されたファイルが、ファイルシステム１４１にキャッシュされる。
【００９３】
最後に、ファイルシステム１４１は、アクセス元のプログラムに、Ｓ２０８で書き込まれたファイルを返却する（２０９）。
【００９４】
Ｓ２０４とＳ２０５の処理を実行することで、再び同じリンクへのアクセスが発生した場合、副計算機１７０にアクセスすることなくファイルシステム１４１上の情報を返却できるため、プログラムに対してアクセスの結果をすばやく返却することができる。また、アクセスがないディレクトリの情報はファイルシステム１４１に書き込まれないので、ファイルシステム１４１の容量の消費を抑えることができる。さらに副計算機１７０からのデータ転送量を削減できるため、データ転送時間を削減することができる。
【００９５】
また、Ｓ２０７とＳ２０８の処理を実行することで、再び同じファイルへのアクセスが発生した場合、副計算機１７０にアクセスすることなくファイルシステム１４１上のファイルを返却できるため、プログラムに対してアクセスの結果をすばやく返却することができる。
【００９６】
以上、図７および図８で説明した処理を実施することで、クライアント２４０は、いずれの副計算機１７０が有するいずれのスナップショットに対しても一定のルールでアクセスすることができる。例えば、図１９に示すように、いずれの副計算機１７０のスナップショットでも「＠ＧＭＴ−ＹＹＹＹ．ＭＭ．ＤＤ−ＨＨ．ＭＭ．ＳＳ」というルールでアクセスできる。つまり、副計算機（他のＮＡＳ）１７０のスナップショットが主計算機１１０上に仮想化される。
【００９７】
また、スナップショットはある瞬間のファイルシステム全体のイメージであり、副計算機にはスナップショットが多数格納されている。本実施例の技術により、副計算機１７０から、主計算機１１０にスナップショットをすべてコピーする必要がなく、副計算機１７０に主計算機１１０を接続した際に、ＮＡＳを停止することなく、運用を開始することが可能となる。また、すべてのスナップショットがコピーされるわけでは無いので、主計算機１１０のファイルシステム１４１の使用量を削減することができ、且つ、データ転送時間を削減できることから、ユーザは早くにスナップショット仮想化機能を利用することができる。
【実施例２】
【００９８】
以下、本発明の実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。
【００９９】
実施例１によれば、主計算機１１０で副計算機１７０（例えばＮＡＳ）のスナップショットを仮想化できる。
【０１００】
主計算機１１０から副計算機１７０へアクセスする際、ファイルアクセスプログラム１３３は、取得したディレクトリの情報及びファイルをファイルシステム１４１に書き込んでいる。前述の通り、主計算機１１０は、ファイルシステム１４１上にディレクトリの情報及びファイルをキャッシュすることで、次回から当該ディレクトリ又はファイルを指定したアクセス要求に対して、すばやく応答することができる。
【０１０１】
ここで、主計算機１１０がファイルシステム１４１のスナップショットを作成すると、ファイルシステム１４１にキャッシュされているデータ（以下、キャッシュデータ）がスナップショットに含まれることになる。キャッシュデータ（例えば前述のディレクトリの情報及びファイル）がスナップショットに含まれると、スナップショットの容量が大きくなる。また、スナップショット作成後にキャッシュデータが削除されると、次のスナップショットにはキャッシュデータが含まれないため、整合性を保つために削除したキャッシュデータもスナップショットとして保存する必要があり、スナップショットの容量が大きくなる。このため、主計算機１１０でスナップショットを作成するために、管理者が主計算機１１０上で新しいファイルシステムを用いて、運用を開始する方法が考えられる。しかし、新しいファイルシステムからは、副計算機１７０のスナップショットを参照することができない。そうすると、副計算機１７０のスナップショット上のデータにアクセスするためには、新しいファイルシステムではなく副計算機１７０が接続されたファイルシステムへアクセスする必要があるため、煩雑である。
【０１０２】
そこで、本実施例では、主計算機１１０で新たなファイルシステムで運用を開始する前に、副計算機１７０が有するスナップショットに対して作成されたリンクを新たなファイルシステムに移行する。本実施例によれば、主計算機１１０を利用するクライアント２４０は、副計算機１７０のスナップショットに対して、あたかも新しいファイルシステムのスナップショットであるかのようにアクセスすることができる。
【０１０３】
図９は、実施例２に係る主計算機１１０を含んだ計算機システムの構成例を示す。
【０１０４】
メモリ１３０には、実施例１の各プログラムおよび各テーブルに加えて、ファイルシステム移行プログラム１３１０が記憶される。
【０１０５】
記憶装置１４０を基に、ファイルシステム１４１に加えて新ファイルシステム１４２が生成される。ファイルシステム１４１上のマウントポイントには、実施例１で示したとおり副計算機１７０が接続されている。
【０１０６】
図１０は、実施例２においてファイルシステム１４１から新ファイルシステム１４２に切り替えて運用を開始する処理手順の一例を示したフローチャートである。
【０１０７】
まず、管理者が管理計算機２３０を操作して、管理計算機２３０が、ファイルシステム１４１の運用を停止するよう主計算機１１０に指示する（Ｓ３０１）。
【０１０８】
次に、ファイルシステム管理プログラム１３１０が、ファイルシステム１４１に存在するファイルとディレクトリの一覧を特定する（Ｓ３０２）。このステップで特定される一覧には、主計算機１１０に副計算機１７０を接続したあとにアクセスされたファイルとディレクトリのみが存在するため、Ｓ３０２を実施することで、必要なファイルとディレクトリのみを新ファイルシステム１４２にコピーすることができる。
【０１０９】
次に、ファイルシステム移行プログラム１３１０は、Ｓ３０２で特定したファイルとディレクトリを新ファイルシステム１４２にコピーする（Ｓ３０３）。
【０１１０】
次に、ファイルシステム移行プログラム１３１０は、リンク管理プログラム１３２がファイルシステム１４１直下に作成したリンクを新ファイルシステム１４２にコピーする（Ｓ３０４）。実施例１で説明したとおり、当該リンクは副計算機１７０のスナップショットに関連付けられたリンクである。
【０１１１】
最後に、ファイルシステム移行プログラム１３１０は、新ファイルシステム１４２の運用を開始する（Ｓ３０５）。
【０１１２】
これにより、ファイルシステム１４１上のキャッシュデータをファイルシステム１４１上に残したまま、新ファイルシステム１４２へ副計算機１７０のスナップショットへのリンクを移行することができる。キャッシュデータがファイルシステム１４１に残るため、キャッシュデータ（例えばファイル）を指定したアクセス要求に対しては、すばやく応答することが可能である。
【０１１３】
クライアント２４０が新ファイルシステム１４２上のリンクにアクセスした場合、ファイルシステム１４１を介して、そのリンクに対応する、副計算機１７０のスナップショットに、アクセスすることができる。
【０１１４】
以上の処理を実施することで、クライアント２４０は、副計算機１７０のスナップショットに対して、あたかも新ファイルシステムのスナップショットであるかのようにアクセスすることができる。
【実施例３】
【０１１５】
以下、本発明の実施例３を説明する。その際、実施例２との相違点を主に説明し、実施例２との共通点については説明を省略或いは簡略する。
【０１１６】
本実施例によれば、新ファイルシステム１４２の運用を開始した後に、副計算機１７０のスナップショットに対応するリンクと同じ命名規則でリンクが作成される。この際、副計算機１７０のスナップショット作成間隔が人手による作業無しに主計算機１１０に設定される。これにより、管理者が改めてスナップショット作成間隔を主計算機１１０に設定する手間を省くことができる。
【０１１７】
本実施例では、新ファイルシステム１４２にリンクが移行した後に、新ファイルシステム１４２のスナップショットが作成される。しかし、新ファイルシステム１４２が用意されることに代えて、ファイルシステム１４１に、ファイルシステム１４１のスナップショットが作成されても良い。この場合、実施例１のシステムを用いて、以下の説明における新ファイルシステム１４２を、ファイルシステム１４１と読み替えればよい。
【０１１８】
本実施例における計算機システムは、実施例２に係る計算機システムと同一で良い。
【０１１９】
図１１は、実施例３において副計算機１７０のスナップショットについて作成したリンクと同じ命名規則のリンクを作成する手順の一例を示したフローチャートである。
【０１２０】
まず、管理者が、管理計算機２３０を操作して、主計算機１１０が一定間隔で自動的にスナップショットを作成するか否かを表す情報を入力する（Ｓ４０１）。
【０１２１】
主計算機１１０がスナップショットを一定間隔で自動的に作成しない場合（Ｓ４０１：Ｎｏ）、管理者が、管理計算機２３０を操作して、スナップショットの作成を明示的に主計算機１１０に指示する（Ｓ４０３）。
【０１２２】
主計算機１１０がスナップショットを一定間隔で自動的に作成する場合（Ｓ４０１：Ｙｅｓ）、管理者が、管理計算機２３０を操作して、作成間隔を副計算機１７０と同じ作成間隔とするか否かを入力する（Ｓ４０２）。
【０１２３】
作成間隔が副計算機１７０の作成間隔と同じ場合、ファイルシステム移行プログラム１３１０が、副計算機１７０のスナップショット管理プログラム１９２から、スナップショット作成間隔を取得する（Ｓ４０５）。一方、作成間隔が副計算機１７０の作成間隔と同じでない場合、管理者が、管理計算機２３０を操作して、スナップショット作成間隔を表す情報を入力する（Ｓ４０４）。
【０１２４】
次に、スナップショット管理プログラム１３６が、Ｓ４０４で入力された情報（作成間隔を表す情報）、または、Ｓ４０５で取得した作成間隔を表す情報を、メモリ１３０に格納する（Ｓ４０６）。当該作成間隔を表す情報は、記憶装置１４０に不揮発な値として格納されてもよい。
【０１２５】
次に、スナップショット管理プログラム１３６が、管理者によるスナップショット作成の指示、またはＳ４０６で設定した作成間隔に基づいた作成時間の到来を契機として、新ファイルシステム１４２のスナップショットを作成する（Ｓ４０７）。
【０１２６】
次に、リンク管理プログラム１３２が、新ファイルシステム１４２で使用しているスナップショットの名称規則を、名称規則テーブル１３９から取得する（Ｓ４０８）。
【０１２７】
最後に、リンク管理プログラム１３２が、Ｓ４０７で作成したスナップショットに関連付けたリンクを、Ｓ４０８で取得した名称規則に従って作成する（Ｓ４０９）。
【０１２８】
以上の処理を実施することで、クライアント２４０は、副計算機１７０のスナップショットにアクセスするのと同様の方法で、新ファイルシステム１４２で新たに作成されたスナップショットにアクセスすることができる。よって、どの時点までのスナップショットが副計算機１７０にあり、どの時点からのスナップショットが主計算機１１０にあるかを意識する必要がなく、故に、スナップショットへのアクセスが容易になる。さらに、副計算機１７０のスナップショット作成間隔を自動的に取得することで、管理者が再度スナップショット間隔を設定する手間を省くことができる。
【実施例４】
【０１２９】
以下、本発明の実施例４を説明する。その際、実施例１〜３との相違点を主に説明し、実施例１〜３との共通点については説明を省略或いは簡略する。
【０１３０】
スナップショットを保持するためには記憶装置（２００及び１４０）の容量が必要になるため、一般に、計算機（１１０及び１７０）は、不要なスナップショットを削除する機能を有している。副計算機１７０のスナップショットが削除されると、実施例１〜３で作成したリンクのリンク先がなくなる。このため、アクセスエラーの原因となる。
【０１３１】
本実施例では、スナップショットが削除された場合、そのスナップショットに対応するリンクも削除される。
【０１３２】
本実施例に係る計算機システムの構成は、実施例１に係る計算機システムの構成と同じで良い。
【０１３３】
図１２は、実施例４においてリンクを削除する処理手順の一例を示したフローチャートである。
【０１３４】
はじめに、副計算機１７０が、スナップショットを削除する（Ｓ５０１）。
【０１３５】
次に、スナップショット一覧取得プログラム１３５が、実施例１で記載した方法を用いて、副計算機１７０のスナップショットの一覧を特定する（Ｓ５０２）。
【０１３６】
次に、リンク管理プログラム１３２が、ファイルシステム１４１または新ファイルシステム１４２に存在するリンクの一覧を特定する（Ｓ５０３）。
【０１３７】
次に、リンク管理プログラム１３２が、名称規則テーブル１３９を参照して、Ｓ５０３で特定したリンクの名称を、副計算機１７０のスナップショットの名称に変換する（Ｓ５０４）。つまり、本実施例では、スナップショットの名称を基に一義的にリンクの名称を作成することに加えて、逆に、リンクの名称を基に一義的にスナップショットの名称を作成することができる。
【０１３８】
次に、リンク管理プログラム１３２は、Ｓ５０４で変換した名称がＳ５０２で特定した一覧に含まれるか否かを検査する（Ｓ５０５）。
【０１３９】
変換した名称が一覧に含まれていない場合、つまり副計算機１７０においてそのスナップショットが削除されている場合（Ｓ５０５：Ｎｏ）、リンク管理プログラム１３２は、当該リンクを削除する（Ｓ５０６）。
【０１４０】
最後に、リンク管理プログラム１３２がＳ５０３で特定したすべてのリンクについてS５０５の検査をしたら（Ｓ５０７：Ｙｅｓ）、リンク管理プログラム１３２は処理を終了する。
【０１４１】
以上の処理を実施することで、削除されたスナップショットに対応するリンクを削除することができる。このため、リンクとスナップショットの整合性を保つことができる。これにより、削除されたスナップショットへのアクセスエラーを防ぐことができる。
【実施例５】
【０１４２】
以下、本発明の実施例５を説明する。その際、実施例１〜４との相違点を主に説明し、実施例１〜４との共通点については説明を省略或いは簡略する。
【０１４３】
本実施例では、主計算機１１０上でリンクを作成した後に、副計算機１７０が新たにスナップショットを作成した場合に、そのスナップショットに対応するリンクが主計算機１１０上で作成される。
【０１４４】
図２１は、実施例５においてリンクを作成する処理手順の一例を示したフローチャートである。
【０１４５】
はじめに、副計算機１７０がスナップショットを作成する（Ｓ８０１）。
【０１４６】
次に、スナップショット一覧取得プログラム１３５が、実施例１で記載した方法を用いて副計算機のスナップショットの一覧を特定し、各スナップショットの作成日時を特定する（Ｓ８０２）。
【０１４７】
次に、リンク管理プログラム１３２が、実施例１で記載した方法を用いて、リンクの名称を作成する（Ｓ８０３）。
【０１４８】
次に、リンク管理プログラム１３２が、ファイルシステム１４１または新ファイルシステム１４２に存在するリンクの一覧を特定する（Ｓ８０４）。
【０１４９】
次に、リンク管理プログラム１３２は、Ｓ８０３で変換した名称がＳ８０４で特定した一覧に存在するか否かを検査する（Ｓ８０５）。
【０１５０】
変換した名称が一覧に含まれていない場合、つまり副計算機１７０においてそのスナップショットが新たに作成されている場合（Ｓ８０５：Ｎｏ）、リンク管理プログラム１３２は、そのスナップショットに対応するリンクを作成する（Ｓ８０６）。リンクの作成方法は、実施例１での作成方法と同様である。
【０１５１】
最後に、リンク管理プログラム１３２がＳ８０３で変換したすべてのリンクについてＳ８０５の検査をしたら（Ｓ８０７：Ｙｅｓ）、リンク管理プログラム１３２は処理を終了する。
【０１５２】
以上の処理を実施することで、副計算機１７０で新たに作成されたスナップショットに対応するリンクを作成することができる。これにより、副計算機１７０で新たにスナップショットが作成された場合も、スナップショットへのアクセスが容易になる。
【実施例６】
【０１５３】
以下、本発明の実施例６を説明する。その際、実施例１〜５との相違点を主に説明し、実施例１〜５との共通点については説明を省略或いは簡略する。
【０１５４】
本実施例によれば、仮想化機能を有する主計算機１１０（例えばＮＡＳ）に副計算機１７０（例えば他のＮＡＳ）が接続された際に、副計算機１７０が有するログ（例えばログファイル）に対応するリンクが主計算機１１０によって作成される。実施例５では、副計算機１７０は、スナップショットに代えて又は加えて、ログファイルを有する。ログファイルの種類は何でも良い。例えば、ログファイルは、エラーログを表すファイルであっても良いし、アクセスログを表すファイルであっても良い。
【０１５５】
ログ機能は、障害等を発見するために必須の機能として広く利用されている。現在ほぼすべての計算機（例えばＮＡＳ）がログ機能を有している。ログファイル名やログファイルの格納位置は、計算機の種別ごとに差異があることがある。このため、ログファイルへのアクセス方法は計算機の種別ごとに差異が生じることがある。よって、仮想化機能はこの差異を吸収する必要がある。
【０１５６】
そこで、計算機（例えばＮＡＳ）の種別によらない一定の規則に基づいて、ログファイルに対応するリンクの名称が生成される。これにより、クライアント２４０のユーザは、計算機の種別ごとの差異を意識することなく、あたかも主計算機１１０が有するログファイルであるかのように、副計算機１７０のログファイルにアクセスすることができる。
【０１５７】
図１３は、実施例６に係る主計算機１１０が有するメモリ１３０に記憶される情報及びプログラムの一例を示す。
【０１５８】
メモリ１３０は、図１に示した情報及びプログラムに加えて、ログ管理プログラム１３１１と、ログ名称テーブル１３１２と、ログ一覧取得プログラム１３１３と、を記憶する。
【０１５９】
ログ管理プログラム１３１１は、主計算機１１０が有するプログラムが出力するログファイルに対する処理を実行する機能を有する。処理の具体例は、ログファイルを削除する処理や、ログローテーション処理である。ログローテーション処理とは、ログファイルのサイズが一定量を超えた場合に（または定期的に）、新規のログファイルを作成する処理である。新規のログファイルの名前は、サイズが一定量を超えたログファイルの名前に基づく別の名前である。以後、新規のログファイルに、ログが追記される。ログファイルの名前は、一般的に、ログの種類と、ローテーションした回数とを含んでいることが多い。例えば、計算機にアクセスしたユーザの情報を記録するログファイルであって、１回ローテーションしたログファイルの名前は、ａｃｃｅｓｓ＿１．ｌｏｇとなる。
【０１６０】
ログ一覧取得プログラム１３１３は、副計算機１７０が有するログの一覧を特定する処理を実行する機能を有する。処理の具体例は、副計算機１７０のボリュームに含まれるファイル名の一覧を特定する処理である。
【０１６１】
図１４は、実施例６に係る副計算機１７０が有するメモリ１９０が記憶するプログラムの一例を示す。
【０１６２】
メモリ１９０は、ファイル共有プログラム１９１に加えて、ログ管理プログラム１９３を記憶する。
【０１６３】
ログ管理プログラム１９３は、副計算機１７０が有するプログラムが出力するログファイルに対する処理を実行する機能を有する。処理の具体例はログ管理プログラム１３１１と同様で良い。
【０１６４】
図１５は、ログ名称テーブル１３１２の構成の一例を示す。
【０１６５】
ログ名称テーブル１３１２は、例えば、計算機種別毎に、少なくとも、計算機種別１３１２１と、ログ種別１３１２２と、正規表現１３１２３と、を有する。計算機種別１３１２１は、計算機の種別を表している。ログ種別１３１２２は、アクセスログやエラーログといったログの種別を表している。正規表現１３１２３は、ログの名称の正規表現を表している。
【０１６６】
図１６は、実施例６において副計算機１７０を主計算機１１０に接続する際に副計算機１７０が有するログファイルを仮想化する処理手順の一例を示したフローチャートである。
【０１６７】
まず、管理者が、管理計算機２３０を操作して、マウントポイントと、副計算機１７０のＩＰアドレスと、ファイル共有プログラム１９１が提供しているボリュームと、副計算機の種別と、を主計算機１１０に指定する（Ｓ６０１）。このステップにおいて、管理者は、副計算機１７０のログを仮想化するために、副計算機１７０のボリュームのうち、ログが出力されるボリューム（ログファイルが格納されるディレクトリ）を指定する。また、指定されるマウントポイントは、主計算機１１０のログが出力されるディレクトリで良い。
【０１６８】
次に、ファイルアクセスプログラム１３３が、副計算機１７０の当該ボリュームをマウントポイントに接続する（Ｓ６０２）。この処理によって、副計算機１７０のログファイルは、主計算機１１０のファイルシステム１４１上に仮想的に作成される。これにより、クライアント２４０は、主計算機１１０を介して副計算機１７０が有するログファイルにアクセスすることが可能になる。
【０１６９】
次に、ファイルアクセスプログラム１３３が、管理者がＳ６０１で指定した値を接続状態テーブル１３８に追加する（Ｓ６０３）。
【０１７０】
次に、管理者が、管理計算機２３０を操作して、ログの種別を主計算機１１０に指定する（Ｓ６０４）。
【０１７１】
次に、ログ一覧取得プログラム１３１３が、副計算機１７０が有するログファイルの一覧を特定する（Ｓ６０５）。
【０１７２】
次に、リンク管理プログラム１３２が、Ｓ６０１で指定された計算機種別と、Ｓ６０４で指定されたログ種別をもとに、ログ名称テーブル１３１２を参照して、ログ名称の正規表現を特定する（Ｓ６０６）。
【０１７３】
次に、リンク管理プログラム１３２が、名称規則テーブル１３９を参照し、リンクの名称規則を取得する（Ｓ６０７）。例えば名称規則がａｃｃｅｓｓ＿＜ｃｏｕｎｔｅｒ＞．ｌｏｇであった場合、リンク管理プログラム１３２は、Ｓ６０５で特定した各ログのローテーション回数を代入することにより、ログの名称を作成する。
【０１７４】
最後に、リンク管理プログラム１３２は、Ｓ６０５で特定した１以上のログファイルのうちのＳ６０６の正規表現に合致するログファイルに対応するリンクを、Ｓ６０１で管理者が指定したマウントポイント直下に、Ｓ６０７で特定した名称規則に従って作成する（Ｓ６０８）。
【０１７５】
以上の処理を実施することで、主計算機１１０のファイルシステム１４１上に、副計算機１７０が有するログファイルの種別ごとに、ログファイルに対応するリンクを作成することができる。さらに、リンクは、副計算機１７０の種別に依存しない一定の規則に従う名称を有している。例えば、図２０に示すように、計算機の種別によらず、クライアント２４０は、「ａｃｃｅｓｓ＿０．ｌｏｇ」を指定することで、副計算機１７０のログファイルにアクセスすることができる。つまり、クライアント２４０を使用するユーザからみると、あたかも主計算機１１０がログファイルを作成しているかのように見える。この結果、副計算機１７０の有するログファイルが主計算機１１０で仮想化されていることになる。これにより、複数の副計算機１７０を接続した環境においても、どの副計算機１７０にログファイルが存在するかを意識する必要がなくなり、ログの管理が容易になる。
【実施例７】
【０１７６】
以下、本発明の実施例７を説明する。その際、実施例６との相違点を主に説明し、実施例６との共通点については説明を省略或いは簡略する。
【０１７７】
本実施例によれば、実施例６の後に主計算機１１０でログファイルのローテーションが発生したときに、副計算機１７０のログファイルに対応するリンクの名称を、ローテーション回数を１つ増やした名称に変更すると同時に、そのローテーションされたログファイルに対して、当該リンクと同じ命名規則のリンクが新規に作成される。
【０１７８】
本実施例に係る計算機システムは、実施例６に係る計算機システムと同一でよい。
【０１７９】
図１７は、実施例７においてリンクの名称を変更しまた新規にリンクを作成する手順の一例を示したフローチャートである。
【０１８０】
まず、ログ管理プログラム１３１１が、或るログファイルの容量（サイズ）が一定量を超えたことを検知する（Ｓ７０１）。これは、既存の方法を採用することができる。以下、容量が一定量を超えたログファイルを「対象ログファイル」と言う。
【０１８１】
次に、ログ管理プログラム１３１１が、ログ名称テーブル１３１２におけるすべての正規表現１３１２３を参照する（Ｓ７０２）。
【０１８２】
次に、ログ管理プログラム１３１１が、対象ログファイルを有する副計算機１７０の計算機種別と対象ログファイルの名称とに合致する正規表現１３１２３を特定し、その正規表現１３１２３に対応するログ種別１３１２２（つまり対象ログファイルのログ種別１３１２２）を特定する（Ｓ７０３）。
【０１８３】
次に、リンク管理プログラム１３２が、名称規則テーブル１３９を参照し、Ｓ７０３で特定したログ種別１３１２２に適合する仮想化対象に対応する名称規則１３９２を特定する（Ｓ７０４）。
【０１８４】
次に、リンク管理プログラム１３２が、作成済みのリンクのうち、Ｓ７０３で特定したログ種別１３１２２に対応するリンクの一覧を特定する（Ｓ７０５）。
【０１８５】
次に、リンク管理プログラム１３２が、Ｓ７０４で特定した名称規則１３９２を基に、リンクの名称のうちの、ログローテーションの回数を表す部分を特定し、Ｓ７０５で特定したすべてのリンクの名称について、当該部分の値を変更する（当該部分の値を１つ増やす）（Ｓ７０６）。この結果、Ｓ７０５で特定したすべてのリンクの名称が変更されたことになる。
【０１８６】
次に、ログ管理プログラム１３１１が、対象ログファイルに関して、ログローテーション処理を行う（Ｓ７０７）。このログローテーション処理で、新規ログファイルが作成される。
【０１８７】
最後に、リンク管理プログラム１３２が、Ｓ７０７のローテーション処理で作成された新規ログファイルに対して、Ｓ７０４で特定した名称規則１３９２においてローテーション回数を１回とした名称をもつリンクを作成する（Ｓ７０８）。
【０１８８】
以上の処理を実施することで、主計算機１１０のファイルシステム１４１上に、副計算機１７０が有するログファイルと、ログローテーション処理において作成された新規ログファイルに対応するリンクとが作成される。ログファイルに対応するリンクは、主計算機１１０および副計算機１７０の種別に依存しない一定の規則の名称を有している。このため、クライアント２４０を使用するユーザからみると、あたかも主計算機１１０がすべてのログファイルを有しているかのように見え、ログファイルへのアクセスが容易になる。このようにして、主計算機１１０の有するログファイルと副計算機１７０の有するログファイルが主計算機１１０で仮想化される。
【０１８９】
以上、本発明の幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例のみに限定する趣旨ではない。例えば、実施例１〜７のうちの任意の二以上の実施例が組み合わされて良い。
【符号の説明】
【０１９０】
１１０…主計算機  １３８…接続状態テーブル  １３９…名称規則テーブル  １７０…副計算機
【図１】
0005640151.tif 000002
【図２】
0005640151.tif 000003
【図３】
0005640151.tif 000004
【図４】
0005640151.tif 000005
【図５】
0005640151.tif 000006
【図６】
0005640151.tif 000007
【図７】
0005640151.tif 000008
【図８】
0005640151.tif 000009
【図９】
0005640151.tif 000010
【図１０】
0005640151.tif 000011
【図１１】
0005640151.tif 000012
【図１２】
0005640151.tif 000013
【図１３】
0005640151.tif 000014
【図１４】
0005640151.tif 000015
【図１５】
0005640151.tif 000016
【図１６】
0005640151.tif 000017
【図１７】
0005640151.tif 000018
【図１８】
0005640151.tif 000019
【図１９】
0005640151.tif 000020
【図２０】
0005640151.tif 000021
【図２１】
0005640151.tif 000022