(57)【要約】【課題】マウント先として最も適切なサーバを動的に選択できるような分散ファイルシステムを提供する。【解決手段】分散ファイルシステム１０がサーバ１、２を備えている。サーバ１の動的マウント装置５は、サーバ２の補助記憶装置７のディレクトリの状態を示すサーバ情報５７をサーバ２から収集する機能と、サーバ１の補助記憶装置４のマウント元ディレクトリに対するデータ６の書き込みがあったとき、サーバ情報５７に基づいてサーバ２の補助記憶装置７のディレクトリのうちからマウント元ディレクトリのマウント先ディレクトリを特定し、マウント元ディレクトリをマウント先ディレクトリに対応付けるマウント処理を行う機能と、マウント先ディレクトリに対してデータ６の書き込みを行う書き込み機能とを備えている。【選択図】図１
2009251791.tif 000002
【特許請求の範囲】
【請求項１】
第１サーバと、
第２サーバ
とを備え、
前記第１サーバは、
前記第２サーバの補助記憶装置の状態を示すサーバ情報を前記第２サーバから収集するサーバ情報収集手段と、
前記第１サーバの補助記憶装置のマウント元ディレクトリに対するデータの書き込みがあったとき、前記サーバ情報に基づいて前記第２サーバの前記補助記憶装置のディレクトリのうちから前記マウント元ディレクトリのマウント先ディレクトリを特定し、前記マウント元ディレクトリを前記マウント先ディレクトリに対応付けるマウント処理を行うマウント処理手段と、
前記マウント先ディレクトリに対して前記データの書き込みを行う書き込み手段
とを備える
分散ファイルシステム。
【請求項２】
請求項１に記載の分散ファイルシステムであって、
前記サーバ情報は、前記第２サーバの前記補助記憶装置の前記ディレクトリの空き容量を示す空き容量情報を含み、
前記マウント処理手段は、前記空き容量情報に基づいて前記マウント先ディレクトリを特定する
分散ファイルシステム。
【請求項３】
請求項１又は２に記載の分散ファイルシステムであって、
前記サーバ情報収集手段は、前記サーバ情報を、前記第２サーバから一定周期毎に収集する
分散ファイルシステム。
【請求項４】
請求項１乃至３のいずれかに記載の分散ファイルシステムであって、
前記サーバ情報収集手段と前記マウント処理手段とは、前記第１サーバの主記憶装置に常駐するソフトウェアプロセスとして実装されている
分散ファイルシステム。
【請求項５】
第１サーバが、第２サーバの補助記憶装置の状態を示すサーバ情報を前記第２サーバから収集するステップと、
前記第１サーバの補助記憶装置のマウント元ディレクトリに対するデータの書き込みがあったとき、前記第１サーバが、前記サーバ情報に基づいて前記第２サーバの前記補助記憶装置の前記ディレクトリのうちから前記マウント元ディレクトリのマウント先ディレクトリを特定し、前記マウント元ディレクトリを前記マウント先ディレクトリに対応付けるマウント処理を行うステップと、
前記第１サーバが、前記マウント先ディレクトリに対して前記データの書き込みを行うステップ
とを備える
分散ファイルシステムにおけるデータ書き込み方法。
【請求項６】
サーバに、
他のサーバの補助記憶装置の状態を示すサーバ情報を前記他のサーバから収集するステップと、
当該サーバの補助記憶装置のマウント元ディレクトリに対するデータの書き込みがあったとき、前記サーバ情報に基づいて前記他のサーバの前記補助記憶装置の前記ディレクトリのうちから前記マウント元ディレクトリのマウント先ディレクトリを特定し、前記マウント元ディレクトリを前記マウント先ディレクトリに対応付けるマウント処理を行うステップと、
前記第１サーバが、前記マウント先ディレクトリに対して前記データの書き込みを行うステップ
とを実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ファイルシステム、データ書き込み方法、及びプログラムに関し、特に、分散ファイルシステムにおけるマウント処理に関する。
【背景技術】
【０００２】
バックアップシステムなど、大容量のデータを保存専用のサーバに退避させるような事例においては、一部のディレクトリ領域を自身の持つ補助記憶装置ではなくネットワークを通じて接続された他のサーバの補助記憶装置に割り当てて用いる「分散ファイルシステム」が用いられることがある。例えば、特開２００７−２４１４８６号公報は、データの更新履歴情報を監視し、データに要求されるサービスレベルに応じてある記憶装置システムから他の記憶装置システムへ、更新データの一部を移行する技術を開示している。また、特開２００５−４２４３号公報は、データベースのバックアップを行うに際して、予め設定された選択条件に基づいて選択したストレージサーバにデータベースのデータ内容を送信してバックアップすることを開示している。
【０００３】
分散ファイルシステムは、通常であれば、マウント元とマウント先は使用前に静的に対応が取られた状態に設定される。しかしバックアップ元が複数存在するなどの理由により、マウント先となるサーバの補助記憶装置の全体容量が刻々と変化するような状況の場合、予め静的に対応を決定しておくと、使用し始めたときには既にそのサーバの補助記憶装置全体の容量が少なく、ほとんど使用できないといったことが起こりうる。そのため予め静的に決めておくのではなく、使用直前にマウント先として最も適切なサーバを動的に選択し、マウントするような仕組みが分散ファイルシステムに提供されることが望ましい。
【特許文献１】特開２００７−２４１４８６号公報
【特許文献２】特開２００５−４２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、マウント先として最も適切なサーバを動的に選択できるような分散ファイルシステムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一の観点では、分散ファイルシステムが第１サーバと第２サーバとを備えている。前記第１サーバは、前記第２サーバの補助記憶装置の状態を示すサーバ情報を前記第２サーバから収集するサーバ情報収集手段と、前記第１サーバの補助記憶装置のマウント元ディレクトリに対するデータの書き込みがあったとき、前記サーバ情報に基づいて前記第２サーバの前記補助記憶装置のディレクトリのうちから前記マウント元ディレクトリのマウント先ディレクトリを特定し、前記マウント元ディレクトリを前記マウント先ディレクトリに対応付けるマウント処理を行うマウント処理手段と、前記マウント先ディレクトリに対して前記データの書き込みを行う書き込み手段とを備えている。
【発明の効果】
【０００６】
本発明によれば、マウント先として最も適切なサーバを動的に選択できるような分散ファイルシステムが提供される。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明の一実施形態の分散ファイルシステム１０の構成を示すブロック図である。分散ファイルシステム１０は、マウント元のコンピュータであるサーバ１と、サーバ１にネットワークを通じて接続されているサーバ２とを備えている。
【０００８】
サーバ１は、自己の補助記憶装置４への書き込みがあった場合、書き込みされるデータ６を他のサーバ２の補助記憶装置７に転送して保存する機能を有している。即ち、サーバ１のある補助記憶装置４のディレクトリ（マウント元ディレクトリ）に、あるデータ６の書き込み動作があった場合、他のサーバ２の補助記憶装置７のディレクトリ（マウント先ディレクトリ）に当該データ６を書き込む機能を有している。
【０００９】
このような動作を行うために、サーバ１の主記憶装置３には、動的マウント装置５が常駐している。ここで、動的マウント装置５とは、補助記憶装置４への書き込みを監視し、補助記憶装置４の各マウント元ディレクトリのマウント先ディレクトリを動的に決定する機能を有しているソフトウェアプロセスである。
【００１０】
詳細には、動的マウント装置５は、下記の５つの機能：マウント管理機能５１、書き込み検知機能５２、サーバ情報収集機能５３、サーバ情報管理機能５４、及びマウント先特定機能５５を有している。
【００１１】
マウント管理機能５１とは、主記憶装置３に用意されるマウント管理テーブル５６を管理する機能である。ここでマウント管理テーブル５６とは、マウント先ディレクトリの選択のために使用されるテーブルである。図３に示されているように、マウント管理テーブル５６は、マウント元ディレクトリを示すマウント元ディレクトリ情報５６ａと、そのマウント先ディレクトリの候補となる他のサーバ２のディレクトリを示すマウント先ディレクトリ情報５６ｂと、当該マウント元ディレクトリについてマウント処理が行われているか否かを示すマウント先決定フラグ５６ｃとを有している。
【００１２】
書き込み検知機能５２とは、マウント管理テーブル５６のマウント元ディレクトリ情報５６ａに記述された各マウント元ディレクトリに対して書き込みがあったかを検知する機能である。マウント処理が行われていないマウント元ディレクトリに対して書き込みがあると、動的マウント装置５の書き込み検知機能５２は、書き込み処理に割り込んで書き込み処理を停止させる。書き込み処理が停止している間に、マウント先のディレクトリが他のサーバ２のディレクトリから選択されて特定される。
【００１３】
サーバ情報収集機能５３とは、マウント先ディレクトリの候補となる他のサーバ２の補助記憶装置７の状態を、ネットワークを通じて一定周期毎に調査し、当該ディレクトリの状態の示す情報を収集する機能である。本実施形態では、サーバ情報収集機能５３は、マウント管理テーブル５６に記述された、マウント先ディレクトリの候補となる他のサーバ２のディレクトリの空き容量を示す情報を、他のサーバ２から収集する。
【００１４】
サーバ情報管理機能５４とは、サーバ情報収集機能５３によって収集された情報を、サーバ情報５７として主記憶装置３に蓄積する機能である。図４は、サーバ情報５７の内容を示す図である。サーバ情報５７は、調査された時刻を示す調査時刻情報５７ａと、調査されたサーバ２のサーバ名を示す対象サーバ名情報５７ｂと、調査されたサーバ２の各ディレクトリの空き容量を示す空き容量情報５７ｃとを有している。
【００１５】
マウント先特定機能５５は、マウント処理が行われていないマウント元ディレクトリに対して書き込みがあった場合、当該マウント元ディレクトリのマウント先ディレクトリを決定する機能である。後述されるようにマウント先ディレクトリの決定は、マウント管理テーブル５６とサーバ情報５７とを参照して行われる。
【００１６】
このような機能を有する動的マウント装置５が主記憶装置３に常駐していることは、継続的にサーバ情報５７を収集し、また、書き込み命令があったときにマウント処理を瞬時に行う上で有用である。
【００１７】
図２Ａは、本実施形態の分散ファイルシステム１０における、マウント管理テーブル５６への情報の登録と、サーバ情報５７の収集の手順を示すフローチャートである。ユーザは、マウント管理テーブル５６に、マウント処理を希望するマウント元ディレクトリと、各マウント元ディレクトリのマウント先ディレクトリの候補となる他のサーバ２のディレクトリとを登録する（ステップＳ０１）。マウント管理テーブル５６には、各マウント元ディレクトリに対してマウント処理が既に行われたかどうかを示すマウント先決定フラグ５６ｃが付け加えて登録される。
【００１８】
動的マウント装置５は、そのサーバ情報収集機能５３により、サーバ情報５７を他のサーバ２から収集する。詳細には、動的マウント装置５は、マウント先ディレクトリの候補となる他のサーバ２のディレクトリの現在の空き容量を返信するように他のサーバ２に対して通知する（ステップＳ０２）。他のサーバ２は、当該通知に応答して、通知されたディレクトリの現在の空き容量を調査し、返信する（ステップＳ０３）。サーバ１の動的マウント装置５は、そのサーバ情報管理機能５４により、返信された情報をサーバ情報５７として主記憶装置３に蓄積する（ステップＳ０４）。なおステップＳ０２〜ステップＳ０４は、ユーザのオペレーションとは無関係に、動的マウント装置５が一定時間毎に自動的に行う動作である。
【００１９】
図２Ｂは、本実施形態の分散ファイルシステム１０における、マウント処理及びデータの書き込みの手順を示すフローチャートである。ユーザがステップＳ０１で登録したサーバ１のマウント元ディレクトリに対してデータ６の書き込み命令を出すと、動的マウント装置５の書き込み検知機能５２が働き、データ６の補助記憶装置４への書き込み処理を一時遮断する（ステップＳ０５）。
【００２０】
動的マウント装置５は、そのマウント管理機能５１により、ステップＳ０５で書き込みが行われようとしたディレクトリ（マウント元ディレクトリ）がマウント管理テーブル５６に登録されているか確認する（ステップＳ０６）。登録されており、かつ、そのマウント先決定フラグ５６ｃがリセットされている場合、動的マウント装置５は、マウント先特定機能５５に対してマウント先ディレクトリの決定の依頼をする（ステップＳ０７）。マウント先決定フラグ５６ｃがリセットされているということは、書き込みが行われようとしたディレクトリの実際のマウント先が未決定でありマウント処理が行われていないということなので、マウント処理が行われなくてはならない。
【００２１】
動的マウント装置５は、そのマウント先特定機能５５により、マウント管理テーブル５６に列挙されているサーバ２のディレクトリ（即ち、マウント先ディレクトリの候補）の中からマウント先ディレクトリとして最も適切なディレクトリを特定する（ステップＳ０８）。マウント先ディレクトリの特定においては、現在蓄積されているサーバ情報５７が参照される。サーバ情報５７を基づきマウント先ディレクトリを特定する仕組みは様々なものが考えられる。例えば、最新のサーバ情報５７を参照し、マウント先ディレクトリの候補の中から最も空き容量の大きいディレクトリがマウント先ディレクトリとして選択されてもよい。また、過去に渡ってマウント先ディレクトリの候補毎に空き容量の平均が算出され、その結果が最も大きいディレクトリがマウント先ディレクトリとして選択されてもよい。
【００２２】
ステップＳ０８で特定されたサーバ２のディレクトリ（マウント先ディレクトリ）を対象に、マウント先特定機能５５は、マウント元ディレクトリとマウント先ディレクトリとを対応付けるマウント処理を実施する（ステップＳ０９）。
【００２３】
マウント処理が成功すると、動的マウント装置５は、そのマウント管理機能５１により、マウント処理が行われたマウント元ディレクトリに対応するマウント先決定フラグ５６ｃをセットする（ステップＳ１０）。これにより、同一マウント元ディレクトリに対する以後の書き込み処理の際には、ステップＳ０７〜ステップＳ１０は行われなくなる。
【００２４】
動的マウント装置５の書き込み検知機能５２は、ステップＳ０５で一時遮断したデータ６の書き込み処理を再開し、特定されたマウント先ディレクトリに対して書き込み処理を行う（ステップＳ１１）。
【００２５】
以上に説明されているように、本実施形態の分散ファイルシステム１０では、サーバ２のディレクトリへのマウント処理を、実際にデータ６が書き込まれる瞬間になって初めて行っている。それにより、予めマウント先ディレクトリを静的に決定しておく従来手法と比べ、データ書き込みの瞬間に最適なサーバ２に対してデータの書き込みが可能となる。加えて、本実施形態の分散ファイルシステム１０では、サーバ２のディレクトリの空き容量に基づいてマウント先ディレクトリが選択されるため、より空き容量の多いサーバ２に対してデータの書き込みができる。また、本実施形態の手法によれば、マウント処理が、実際にデータ６が書き込まれる瞬間になって初めて行われるので、分散ファイルシステム１０の手順が緩和されるという利点もある。
【００２６】
上述の本実施形態では、サーバ１が他のサーバ２のマウント先ディレクトリにデータを書き込む構成が記載されているが、各サーバ２が上記のサーバ１と同様の機能を有していることも可能であることに留意されたい。この場合、サーバ１は、上記のサーバ２と同様の動作を行う。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明の一実施形態の分散ファイルシステムの構成を示すブロック図である。
【図２Ａ】図２Ａは、本実施形態の分散ファイルシステムにおける、マウント管理テーブルへの情報の登録と、サーバ情報の収集の手順を示すフローチャートである。
【図２Ｂ】図２Ｂは、本実施形態の分散ファイルシステムにおける、マウント処理及びデータの書き込みの手順を示すフローチャートである。
【図３】図３は、マウント管理テーブルの内容を示す概念図である。
【図４】図４は、サーバ情報の内容を示す概念図である。
【符号の説明】
【００２８】
１０：分散ファイルシステム
１、２：サーバ
３：主記憶装置
４：補助記憶装置
５：動的マウント装置
６：データ
７：補助記憶装置
５１：マウント管理機能
５２：書き込み検知機能
５３：サーバ情報収集機能
５４：サーバ情報管理機能
５５：マウント先特定機能
５６：マウント管理テーブル
５６ａ：マウント元ディレクトリ情報
５６ｂ：マウント先ディレクトリ情報
５６ｃ：マウント先決定フラグ
５７：サーバ情報
５７ａ：調査時刻情報
５７ｂ：対象サーバ名情報
５７ｃ：空き容量情報
【図１】
2009251791.tif 000003
【図２Ａ】
2009251791.tif 000004
【図２Ｂ】
2009251791.tif 000005
【図３】
2009251791.tif 000006
【図４】
2009251791.tif 000007