(58)【調査した分野】(Int.Cl.,DB名)
各々がデータ格納部を有する第1のノード及び第2のノードを含むノード、前記第1及び前記第2のノードを含む前記ノードとネットワークを介して接続し、前記ノードの前記データ格納部に格納されるデータおよび前記データの属性情報を格納するメタデータ格納部を有し、前記ノードの前記データ格納部に格納されるデータを管理する分散ファイルシステム管理部を含む分散ファイルシステム管理装置、および前記データの属性情報の操作や送信を前記分散ファイルシステム管理部に指示するためのコマンドを発行する分散ファイルシステムクライアント部を有する分散ファイルシステムにおいて、
前記第1のノードの前記ネットワークからの離脱および前記第1のノードへの操作の検知に応答して、警報を通知する監視処理部を、前記第1のノードに含み、
前記分散ファイルシステムクライアント部を含み、少なくとも、前記第1及び前記第2のノードを含む前記ノードの各々を一意に識別するための識別子、前記第1及び前記第2のノードを含む前記ノードの各々の前記データ格納部のデータ格納可能容量、並びに、前記第1及び前記第2のノードを含む前記ノードの各々の保守期限を格納するノード管理テーブル、および、前記第1のノードの前記データ格納部に格納されている複製すべきデータのデータ名とそのサイズを格納する複製データ管理テーブルを有し、さらに、当該分散ファイルシステムから離脱させる前記第1のノードの指定入力に応答して、ノード選択条件として前記保守期限までの期間が長いことを入力し、前記ノード管理テーブルに格納されている前記保守期限までの期間が長い前記第2のノードを、前記第2のノードを含む前記ノードから選択し、前記分散ファイルシステムクライアント部及び前記分散ファイルシステム管理部を介して、前記メタデータ格納部に格納される、前記第1のノードの前記データ格納部に格納されている前記データの前記属性情報を取得し、取得した前記属性情報に基づいて、前記第1のノードの前記データ格納部に格納され、前記第2のノードを含む前記ノードの前記データ格納部に格納されていないデータを抽出し、抽出した前記データを前記複製すべきデータとしてそのデータ名とサイズを前記複製データ管理テーブルに格納し、前記監視処理部に監視処理の開始を指示し、前記ノード管理テーブルを参照して、前記複製すべきデータの前記サイズが、前記第2のノードの前記データ格納部の前記データ格納可能容量以下の場合、前記分散ファイルシステムクライアント部及び前記分散ファイルシステム管理部を介して、前記第1のノードの前記データ格納部に格納されている前記複製すべきデータを、前記第2のノードの前記データ格納部に複製し、前記複製すべきデータの、前記第2のノードの前記データ格納部への複製の完了に応答して、前記監視処理部に監視処理の解除を指示するデータ複製管理制御部を有するデータ複製管理制御装置を設けたことを特徴とする分散ファイルシステム。
前記第1のノードと前記第2のノードとの前記ネットワークを介した通信性能を計測する計測処理部を前記第1のノードにさらに含み、前記ノード管理テーブルは、さらに前記第1及び前記第2のノードを含む前記ノードの各々の間の通信性能を格納し、前記データ複製管理制御部は、前記第1のノードの指定入力と共にノード選択条件として通信性能を入力し、前記ノード管理テーブルに格納されている前記通信性能が良好な前記第2のノードを、前記第2のノードを含む前記ノードから選択することを特徴とする請求項1又は請求項2記載の分散ファイルシステム。
前記監視処理部は、前記監視処理の開始の前記指示を受けてから、前記監視処理の解除の指示を受けるまでの間に、前記第1のノードの前記ネットワークからの離脱および前記第1のノードへの操作のいずれか一つの検知に応答して、前記データ複製管理制御部に警報を通知することを特徴とする請求項1又は請求項2記載の分散ファイルシステム。
各々がデータ格納部を有する第1のノード及び第2のノードを含むノード、前記第1及び前記第2のノードを含む前記ノードとネットワークを介して接続し、前記ノードの前記データ格納部に格納されるデータおよび前記データの属性情報を格納するメタデータ格納部を有し、前記ノードの前記データ格納部に格納されるデータを管理する分散ファイルシステム管理部を含む分散ファイルシステム管理装置、および前記データの属性情報の操作や送信を前記分散ファイルシステム管理部に指示するためのコマンドを発行する分散ファイルシステムクライアント部を含むデータ複製管理制御装置を有する分散ファイルシステムにおけるデータ複製管理制御方法であって、
前記第1のノードは、前記第1のノードの前記ネットワークからの離脱および前記第1のノードへの操作の検知に応答して、警報を通知する監視処理部を有し、
前記データ複製管理制御装置は、
少なくとも、前記第1及び前記第2のノードを含む前記ノードの各々を一意に識別するための識別子、前記第1及び前記第2のノードを含む前記ノードの各々の前記データ格納部のデータ格納可能容量、並びに、前記第1及び前記第2のノードを含む前記ノードの各々の保守期限を格納するノード管理テーブル、および、前記第1のノードの前記データ格納部に格納されている複製すべきデータのデータ名とそのサイズを格納する複製データ管理テーブルを有し、
当該分散ファイルシステムから離脱させる前記第1のノードの指定入力に応答して、ノード選択条件として前記保守期限までの期間が長いことを入力し、前記ノード管理テーブルに格納されている前記保守期限までの期間が長い前記第2のノードを、前記第2のノードを含む前記ノードから選択し、前記分散ファイルシステムクライアント部及び前記分散ファイルシステム管理部を介して、前記メタデータ格納部に格納される、前記第1のノードの前記データ格納部に格納されている前記データの前記属性情報を取得し、
取得した前記属性情報に基づいて、前記第1のノードの前記データ格納部に格納され、前
記第2のノードを含む前記ノードの前記データ格納部に格納されていないデータを抽出し、
抽出した前記データを前記複製すべきデータとしてそのデータ名とサイズを前記複製データ管理テーブルに格納し、
前記監視処理部に監視処理の開始を指示し、
前記ノード管理テーブルを参照して、前記複製すべきデータの前記サイズが、前記第2のノードの前記データ格納部の前記データ格納可能容量以下の場合、前記分散ファイルシステムクライアント部及び前記分散ファイルシステム管理部を介して、前記第1のノードの前記データ格納部に格納されている前記複製すべきデータを、前記第2のノードの前記データ格納部に複製し、
前記複製すべきデータの、前記第2のノードの前記データ格納部への複製の完了に応答して、前記監視処理部に監視処理の解除を指示することを特徴とするデータ複製管理制御方法。
前記第1のノードと前記第2のノードとの前記ネットワークを介した通信性能を計測する計測処理部を前記第1のノードにさらに含み、前記ノード管理テーブルは、さらに前記第1及び前記第2のノードを含む前記ノードの各々の間の通信性能を格納し、前記データ複製管理制御装置は、前記第1のノードの指定入力と共にノード選択条件として通信性能を入力し、前記ノード管理テーブルに格納されている前記通信性能が良好な前記第2のノードを、前記第2のノードを含む前記ノードから選択することを特徴とする請求項5又は請求項6記載のデータ複製管理制御方法。
前記監視処理部は、前記監視処理の開始の前記指示を受けてから、前記監視処理の解除の指示を受けるまでの間に、前記第1のノードの前記ネットワークからの離脱および前記第1のノードへの操作のいずれか一つの検知に応答して、前記データ複製管理制御装置に警報を通知することを特徴とする請求項5又は請求項6記載のデータ複製管理制御方法。
【発明を実施するための形態】
【0011】
図1は、分散ファイルシステムを示す図である。分散ファイルシステムは、分散ファイルシステム(以下、分散FSと記す)管理装置19、複数のノード22(22a、22b、22c、22d)、データ複製管理制御装置11とを含み、これらはネットワーク10を介して接続される。
【0012】
分散FS管理装置19は、分散FS管理部20、メタデータ格納部(以下、MDB)21を有する。ノード22は、分散FSデータ処理部(図中は分散FS処理部)23、データ格納部24、監視処理部25、計測処理部26を有する。
【0013】
データ複製管理制御装置11は、データ複製管理制御部12、管理テーブル格納部13、図示を省略している入出力装置の入出力画面を操作する画面処理部17、分散FSクライアント部18を有する。管理テーブル格納部13は、ノード管理テーブル(以下、NTBL)14と、複製データ管理テーブル(以下、RTBL)15と、優先順位管理テーブル(図中は優先順位テーブル、以下、PTBLと記す)15とを格納する。
【0014】
分散FS管理部20と、MDB21と、分散FSデータ処理部23と、データ格納部24と、分散FSクライアント部18によっていわゆる分散FS(既存の分散ファイルシステム)が実現される。したがって本実施形態の分散ファイルシステムは、既存の分散ファイルシステムの構成に加えて、分散FSクライアント部18にデータ複製管理制御部12、管理テーブル格納部13および画面処理部17を加えたデータ複製管理制御装置11、並びに、ノード22に監視処理部25、計測処理部26を備える。
【0015】
分散FS管理部20は、複数ノードの分散FSデータ処理部23の稼動状況やデータ格納容量といったノード情報の管理と、各ノードに保管するデータ(ファイル)の所在やデータサイズ(ファイルサイズ)といったデータ属性情報の管理と、管理するノードに対するデータ操作と、分散FSクライアント部18からの処理要求に応じたデータ属性情報の操作や応答やデータ送受信を行う。
【0016】
MDB21は、分散FS管理部20により管理されるデータベースで、各ノード22に格納されるファイルデータ等のデータの格納場所を示すパス情報やデータサイズ等のデータ属性情報を格納する。
【0017】
分散FSデータ処理部23は、自ノードのデータ格納部24の情報(格納しているデータやその属性情報など)の分散FS管理部20への送信、分散FS管理部20や分散FSクライアント部18からのデータの複製などのデータ操作要求に対するデータ操作処理やデータ処理結果の応答を行う。
【0018】
分散FSクライアント部18は、分散FS管理部20に対する、ノード22に格納されているデータの属性情報の操作や分散FSクライアント部18への送信の要求、ノード管理情報の要求、さらに分散FS管理部20からの応答に応じた分散FSデータ処理部23に対するデータ操作要求やデータ送受信を行うためのコマンド群やアプリケーションインタフェース(以下APIと記す)群を有し、データ複製管理制御部12からの指示に基づき所定のコマンドを発行する。
【0019】
データ複製管理制御装置11が果たす機能と分散FS管理装置19が果たす機能が、同一の装置により実現されてもよい。また、データ複製管理制御装置11が果たす機能がノード22により実現されてもよい。
【0020】
データ複製管理制御装置11、分散FS管理装置19、ノード22で実現する機能は、サーバ装置、パソコン、等の電子計算機で動作するプログラム処理によって実現してもよいし、専用のハードウェアによって実現してもよい。
【0021】
電子計算機の場合は、CPU、主メモリ、記憶装置、通信装置、入出力装置(キーボード、マウス等)、及び、表示装置を有し、これらは、バス等の通信線により接続される。CPUは、記憶装置に格納されるプログラムを主記憶装置に読み込み、所定の処理を実行する。本実施形態で説明するプログラム処理やデータは、予め記憶装置に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。
【0022】
以下、プログラムが行為主体であるかのように記載する場合があるが、実際には、電子計算機が具備するオペレーティングシステム(以下OSと記す)やドライバソフトウェアの制御管理処理と連携しながら、電子計算機のCPUが、当該プログラムを実行して処理を行う主体であることはいうまでもない。
【0023】
図2は、NTBL14を示す図である。NTBL14は、分散ファイルシステムの各ノードについて、ノード22を一意に識別するための識別子、ノード22に格納できるデータの容量(格納可能容量)、ノード22のノード名、ノード22が属するドメイン、ノード22のIPアドレス、ノード22が接続するネットワークのネットワークアドレス(
図1では、一つのネットワーク10を図示しているが、複数のネットワークがある場合、各ネットワークを識別するアドレス)、ノード22が設置されている場所(物理的な位置)、及びノード22の保守期限を表す日時や時刻を組とした項目の内容を格納する。NTBL14の、データの格納可能容量以外の項目は、予め運用管理者等によって格納されてもよいし、データ複製管理制御部12が分散FS管理部20を介して得た情報でもよい。データの格納可能容量については、分散FS管理部20が各ノード22のデータ格納部24の空き容量を把握し、定期的にデータ複製管理制御部12へ送信するか、データ複製管理制御部12が分散FSクライアント部18を介して分散FS管理部20から取得して、NTBL14へ格納する。尚、本実施形態では図示していないが、ノード情報として得ることができる情報であれば、例えばノードが具備するCPUの利用率、メモリ量、通信インタフェースが備える最大通信レート性能、ノード故障率、内蔵記憶装置の故障予測情報、等を格納してもよい。
【0024】
図3は、RTBL15を示す図である。RTBL15は、データ名(ファイル名)とそのデータのサイズ(ファイルサイズ)を組とした項目を持つ。ある一つノード22のデータ格納領域24に格納されるデータが他のノード22のデータ格納領域24に格納されていない(複製されていない)場合に、当該データの情報がRTBL15に格納される。すなわち、RTBL15は、ノード22に格納され、他のノード22に複製されるべきデータ名とそのサイズを格納する。
【0025】
図4は、PTBL16を示す図である。PTBL16は、あるノード22のデータを他のノード22に複製するとき、複製先である他のノード22に関して、他のノード22を一意に識別するための識別子(ノード識別子)、他のノード22に格納できるデータの容量(格納可能容量)、複製元のノード22と他のノード22が同一ネットワークに接続しているか否かの判定値、複製元のノード22から他のノード22へのレイテンシおよびスループット、他のノード22の保守期限までの日数や時間、複製元のノード22から他のノード22までの物理的な距離、優先順位を格納する。
【0026】
同一ネットワークであるか否かの判定値は、複製元のノード22のネットワークアドレスと、複製先の他のノード22のネットワークアドレスが同一である場合に「TRUE」、同一ではない場合に「FALSE」を、後述する処理の判定値として格納する。
【0027】
レイテンシは、ノード22から他のノード22までのネットワーク上のデータ伝送時間である。スループットは、ノード22から他のノード22まで単位時間当たりのネットワークを介したデータ転送量である。
【0028】
保守期限までの日数や時間は、後述するシミュレーション処理を実行する日にちや時刻を基準日としたときの他のノード22の保守期限までの日数や時間である。
図4では、2013年1月10日を基準日としたときの他のノード22の保守期限までの日数を格納している。
【0029】
優先順位は、データをノード22から他のノード22へ複製するときの、データ送信先(複製先)の順序を表し、後述する優先順位決定処理によって決定した順序である。
【0030】
図5は、データ複製管理制御部12の動作処理フローの一例を示す図である。処理フローの全体(S100〜S122)は、ノード情報取得・ノード選択処理ステップ群(S100〜S105)、シミュレーション処理ステップ群(S106〜S108)、及びデータ複製処理ステップ群(S109〜S122)の3つの処理に分けられる。
【0031】
図6は、画面処理部17の動作処理フローの一例を示す図である。画面処理部17は、
図5に示すデータ複製管理制御部12の処理フローの実行に対応して、画面への出力処理や画面からの入力処理を実行する。処理フローの全体(S200〜S222)は、ノード情報取得・ノード選択処理ステップ群(S200〜S206)、シミュレーション処理ステップ群(S207〜S210)、データ複製処理ステップ群(S21〜S222)の3つの処理に分けられる。
図5および
図6の処理ステップ群はそれぞれ対応して実行される。
【0032】
データ複製管理制御部12は、ノード情報取得処理サブルーチンを実行し、NTBL14へノード情報が格納された時刻を取得する(S101)。ノード情報が格納された時刻は、ノード情報取得処理サブルーチンの返値として得られる。ノード情報取得処理サブルーチンの詳細は後述する。取得したノード情報を入出力装置に画面表示する(S102、S201)。管理者から分散ファイルシステムから離脱させるノード22の指定を待つ(S103)。画面処理部17でノード22(例えば「0001」)の指定を入力する(S202)。指定されたノード22に関して処理を進めるかを確認する(S203、S204)。指定内容を変更する場合は「訂正」(S205)、変更しない場合が「了解」を選択入力する(S206)。選択入力がない場合はノード情報を表示し、入力を待ち受ける(S104)。ノード22の指定入力後、NTBL14のノード情報の鮮度を確認するために、ノード情報が格納された時刻と現在時刻の差分を計算し、差分が所定の時間を超えている場合は、ノード情報を再取得するためにS101へ移る。超えていない場合、ステップ106へ進む(S105)。シミュレーション処理実行確認画面を表示する(S108、S207)。シミュレーション条件を入力し、シミュレーション実行の指示を入力する(S208)。
【0033】
シミュレーション条件とは、指定入力されたノード22のデータの複製先ノード(複製したデータを格納する他のノード22)のノード選択条件である。例えば、保守期限までの時間が長いノードである、地理的に近い場所に設置されるノードである、ネットワークアドレスが同一であるノードである、複製先ノードまでのデータ送信のレイテンシが小さいノードである、複製先ノードまでのデータ送信のスループットが大きいノードである、データの複製数が所定の数である、ノードの障害発生数である、ノードが具備するCPUの利用率、ノードが具備するメモリ量などのような条件である。シミュレーション条件は、地理的に遠い場所に設置される他のノード22のように、前述の逆であってもよいし、いくつかの条件の組み合わせであってもよい。本実施形態では保守期限までの時間が長い他のノード22をシミュレーション条件として説明する。
【0034】
シミュレーション条件が指定され、シミュレーション処理実行の指示に応答して、シミュレーション処理のステップへ進む(S107)。管理者が指定したノード22の識別子を引数として、シミュレーション処理サブルーチンを実行(S108)し、画面にはシミュレーション処理を実行していることを示す表示を行う(S209)。シミュレーション処理サブルーチンは、指定入力されたノード22のデータの他のノード22への複製可否、通知事項およびシミュレーション完了時刻を返値とする。シミュレーション処理の詳細は後述する。シミュレーション処理が完了するとシミュレーション処理完了時刻とデータの複製可否を画面に表示する(S109、S210)。データの複製可否に基づいて処理を分岐する(S110)。複製処理が可能な場合は(S111、S221)へ移り、複製処理が不可能な場合は(S120、S220)へ移る。
【0035】
複製処理が不可能な場合は、通知事項として取得した複製処理を実行できない理由や複製処理を実行でるようにするための対処策を画面に表示(S120、S220)。管理者からの確認入力を受けて(S121、S221)、処理を終了する(S222)。複製処理を実行できない理由としては、シミュレーション条件を満足できる結果が得られない、データ複製のための複製先の他のノード22のデータ格納領域24の容量が不足している、複製するデータが存在しないなどがある。対処策としては、例えば、ノード22を増設する、シミュレーション条件を変更するなどがあるが、本実施形態では複製するデータの総容量とデータ格納領域22の総容量の比較により判定する。
【0036】
複製処理が可能な場合は、複製処理を実行できることを画面に表示(S111、S211)。管理者からの確認入力を受ける(S112、S212)。ステップS101によるノード情報取得時刻やステップS108によるシミュレーション処理完了時刻から所定の時間を経過しているか否かをチェックする(S113)。所定の時間を経過しているならば、ノード情報の鮮度やシミュレーション結果の鮮度が悪いことを知らせる画面表示(S114)を行い、管理者の確認入力(S213)の後に、ノード情報取得処理(S101、S201)へ戻る。所定の時間を経過していないならば、複製処理実行確認画面を表示し、管理者からの確認入力を受け(S215)、複製処理を実行する(S116、S216)。複製処理の詳細は後述する。複製処理が完了すると結果を画面に表示する(S117、S217)。管理者の確認入力(S218)を受け、選択したノード22を分散ファイルシステムから離脱してもデータが滅失しないことなどを画面表示し(S119、S219)、処理を終了する(S222)。
【0037】
図7は、データ複製管理制御部12のS101のノード情報取得処理フローの一例を示す図である。
【0038】
ノード情報取得処理は、分散FSクライアント部18に用意されたノード情報取得処理コンマンドを実行し、実行結果として得られるノード情報をNTBL14へ格納する(S301)。分散FSクライアント部18には、前述のように、分散FS管理部20に対する操作要求や送受信のコマンド群やAPI群が用意されている。実行結果のノード情報は、NTBL14に格納できる情報の組であってもよいし、データ格納容量であってもよい。後者の場合は、予め運用管理者がデータ格納容量以外の項目の内容を格納しておく必要がある。ノード情報を格納し終えた時刻を取得し(S302)、取得した時刻をサブルーチンの返値とする(S303)。
【0039】
図8は、データ複製管理制御部12のS108のシミュレーション処理フローの一例を示す図である。
【0040】
シミュレーション処理は、データの複製元のノード22を特定するノード識別子及びシミュレーション条件を引数としたサブルーチンとして実行される。シミュレーション処理は、ノード識別子で指定されたノード22のデータ格納部24に格納されているデータが、他のノード22のデータ格納部24に格納されていない場合に、指定されたシミュレーション条件を満足して、このデータを他のノード22に複製可能か否かを判定する処理である。指定されたノード識別子を検索キーとして、NTBL14からノード情報を取得し、取得したノード情報のノード名を抽出し、分散FSクライアント部18のコマンドやAPIを利用して、分散FS管理部20が管理するMDB21から、当該ノード名のノード22のデータ格納部24に格納されるデータのデータ属性情報を取得する(S401)。取得したデータ属性情報を元に、指定したノード22のデータ格納部24に格納され、他のノード22に複製されていないデータを抽出し、そのデータ名とデータ量をRTBL15へ格納する(S402)。
【0041】
RTBL15にエントリがない場合(ノード識別子で指定されたノード22のデータ格納部24に格納され、他のノード22に複製されていないデータがない場合)はS404へ移り、エントリがある場合(ノード識別子で指定されたノード22のデータ格納部24に格納され、他のノード22に複製されていないデータがある場合)はS406へ移る。RTBL15にエントリがない場合は、複製処理を実行する必要がないため、処理結果を複製不可能(S404)とし、通知事項を「複製すべきファイルはありません」とし(S405)、処理時刻として現在時刻をサブルーチンの返値とする(S416,S417)。
【0042】
エントリがある場合は、監視設定処理を実行する(S406)。監視設定処理の詳細は後述する。RTBL15に格納されている複製すべき全エントリのデータのサイズを加算し、複製対象データ量の総容量(size)を算出する(S407)。NTBL14を参照して、管理者が指定した複製元のノード22を除く他のノード22のデータ格納可能容量を取得して(S408)、加算しデータ格納可能容量の総容量(vol)を算出する(S409)。複製対象データ量の総容量(size)とデータ格納可能容量の総容量(vol)を比較し、複製対象データ量の総容量(size)がデータ格納可能容量の総容量(vol)以下の場合は、S413)へ移り、複製対象データ量の総容量(size)がデータ格納可能容量の総容量(vol)を超える場合は、S411へ移る。
【0043】
比較結果がデータ格納可能容量の総容量(vol)を超える場合は、データ格納可能容量の総容量(vol)がデータの複製に不足するため、処理結果を複製不可能(S411)とし、通知事項は例えば、「ノードを増設してください」等とし(S412)、処理時刻として現在時刻をサブルーチンの返値とする(S416,S417)。
【0044】
比較結果がデータ格納可能容量の総容量(vol)以下の場合は、データ格納可能容量の総容量(vol)が足りるため、処理結果を複製可能(S413)とし、複製先ノード22の優先順位を決定する処理(S414)へ移る。優先順位決定処理の詳細は後述する。優先順位を決定した後、通知事項は例えば「対処すべき事項はありません」等とし(S415)、処理時刻として現在時刻をサブルーチンの返値とする(S416,S417)。
【0045】
図9は、優先順位決定処理のS414の優先順位決定処理フローの一例を示す図である。優先順位決定処理は、複製元のノード22を特定するノード識別子及びシミュレーション条件を引数としたサブルーチンとして実行される。優先順位決定処理は、ノード識別子で指定されたノード22の複製すべきデータを他のノード22へ複製する際の複製先ノードの複製順位(複製データの送信順序)をシミュレーション条件に従って決定する処理である。具体的には、PTBL16を生成し、PTBL16に含まれる複製先ノードの複製順位を決定する。本実施形態では、ノード22の保守期限までの時間が長さで決定する。
【0046】
ノード識別子で指定された複製元のノード22以外の他のノード22のノード識別子、データ格納可能容量をNTBL14からコピーし、PTBL16を生成する。複製元のノード22のノード識別子を「0001」として説明する。ノード識別子「0001」のノード22のIPアドレスをNTBL14から取得する(S501)。取得したIPドレスを持つ複製元のノード22の計測処理部26に接続し(S502)、PTBL16を参照してノード識別子「0001」以外の他のノード22のIPアドレスリストを送付する(S503)。ノード22の計測処理部26の詳細処理は後述する。IPアドレスリストを送付した後は、計測処理部26から計測結果が送付されるのを待ち受ける(S504、S505、S506)。
【0047】
計測結果を受信すると、計測結果に含まれる、各IPアドレスに対応するレンテンシやスループットをPTBL16へ格納する(S507)。次に、「0001」で指定したノード22と、他のノード22のネットワークアドレスが同一であるかを判定し、同一であれば「TRUE」、同一でなければ「FALSE」をPTBL16へ格納する(S508)。「0001」で指定した複製元のノード22と他のノード22との間の距離を、NTBL14の設置場所に基づいて計算し、それぞれの計算結果をRTBL16の距離へ格納する(S509)。「0001」で指定したノード22以外の他のノード22の保守期限までの日数や時間をNTBL14の保守期限に基づいて計算し、計算結果をPTBL16へ格納する(S510)。本実施形態では、シミュレーション条件が保守期限までの期間の長さが長いほど優先順位を高くする(複製データの送信順序を早くする)ことであるため、PTBL16においては、ノード識別子が「0002」→「0004」→「0003」の順序で優先順位を1→2→3としてPTBL16に格納する(S511)。レンテンシやスループットなどの通信性能を複製先の他のノード22の選択条件として用いる場合は、良好な通信性能の他のノード22を選択する。なぜならば、データの複製処理を短時間に確実に完了させるためである。
【0048】
図10は、ノード22が具備する計測処理部26の処理フローを示す図である。計測処理部26は、データ複製制御管理処理部12のシミュレーション処理(
図8)の優先順位決定処理(
図9)から送付されるIPアドレスリストの受信を待ち受けて(S601,S602)、実行開始する。計測処理部26は、他のノード22との通信性能を計測する。計測処理部26は、IPアドレスリストを受信する(S603)と、自ノード22から、IPアドレスリストに含まれる各ノード22に対するレイテンシやスループットを計測(S604)し、計測結果リストに格納(S605)する。計測結果リストを優先順位決定処理(
図9)へ返す(S606)。
【0049】
レイテンシやスループットは、性能計測用のテストデータを送付することで得られるアクティブ計測や、性能計測用のテストデータを送付せずに、ネットワークに伝送されているデータの振る舞いを計測して性能を予測するパッシブ計測などがあり、組み合わせて計測してもよい。より具体的には例えばレイテンシに関しては、Pingコマンドを発行して得られる往復転送遅延時間から予測する方法がある。スループットに関しては、特定サイズのテストデータの送信にかかる時間から予測する方法がある。
【0050】
図11は、データ複製管理制御部12のS116複製処理フローの一例を示す図である。複製処理は、複製元のノード22に格納される複製対象データをPTBL16に記される優先度の高い順序で他のノード22へ複製する処理である。複製元のノード22を特定するノード識別子を「0001」として説明する。優先度が高いノード22への複製処理が失敗の場合は、所定の回数だけ処理を試み、それでも失敗する場合は次の優先度のノード22への複製処理を行う。
【0051】
PTBL16の優先度を参照するための優先順位参照カウンタ(p)を1に初期化する(S701)。PTBL16から優先度1の他のノード22のIPアドレスを取得する(S702)。RTBL15から複製対象データのデータ名を取得し(S703)、複製コマンドを生成する(S704)。例えば、データ名「file001」をノード名「Node0001」からノード名「Node0002」へ複製する場合には、例えば「Copy file001 ―s Node0001 −d Node0002」のようなコマンドを生成する(S705)。このコマンドは分散FSの実装形態に合わせて実装する。コマンド発行の失敗回数を把握するための失敗回数カウンタ(ng)を初期化し(S706)、生成した複製コマンドを、分散FSクライアント部S18を通じて発行する(S707)。複製コマンド発行が成功すればS709へ進み、失敗すればS712進む。
【0052】
複製コマンド発行が成功した場合は、RTBL15から複製が完了したデータのエントリを削除し(S709)、次の複製対象データの処理へ進める(S703)。複製コマンド発行が失敗した場合は、コマンド発行失敗回数カウンタ(ng)をインクリメントし(S712)、失敗回数カウンタ(ng)の値が所定の回数を超過しているか否かを判定し(S713)、超過していれば、優先順位参照カウンタ(p)をインクリメントし(S714)、次の優先度(優先順位参照カウンタ(p)が示す優先度)の他のノード22の情報をPTBL16から取得する(S715)。
【0053】
失敗回数カウンタ(ng)の値が所定の回数を超過していなければ、複製先ノード22までの疎通(通信可能)を確認する(S716)。もし疎通がなければS714へ移り、疎通あれば、複製先ノード22のデータ格納部24の空き容量をチェックし(S717)、空き容量が不足していればS714へ移り、不足していなければ、優先順位参照カウンタ(p)を維持し、複製コマンドの発行を試みるためにS707へ移る。最終的にRTBL15のエントリがなくなるまで処理を実行し、エントリがなくなれば、監視の解除を指示する監視設定処理を実行し(S710)、処理を終了する(S711)。
【0054】
図12は、ノード22が具備する監視処理部25の処理フローを示す図である。監視処理25は、ノード22に複製すべきデータが残っている場合に、当該ノード22をネットワーク10から離脱したり、管理者等が当該ノード22を操作しようとした場合に画面表示や音声によって警報通知し、ネットワーク10からの離脱やノード22を操作することによってデータが滅失したり、データの複製数が減ることを知らせるための監視処理である。
【0055】
プログラムを実行開始すると、監視設定情報の待ち受け状態となる(S801)。データ複製管理制御部12からの監視設定情報は2種類あり、監視処理の開始を指示する情報と、監視処理を停止・解除を指示する情報である。データ複製管理制御部12から送信された情報を受信すると(S802)、受信したデータ複製管理制御部12からの情報に応じて(S803)、監視プロセス開始処理(S804)または監視プロセス停止処理(S805)へ移る。本実施形態では監視プロセスとして、2種の監視のプロセスを具備する。1つはデータの複製元であるノード22のネットワークからの離脱を監視するネットワーク監視プロセス(S806〜S813)、他の1つは、管理者等がノード22を操作すること監視する操作監視プロセス(S814〜S821)である。
【0056】
操作監視プロセスは、監視プロセスの監視停止指示を待ち受け(S816)、監視プロセスの停止指示ならば(S817)、ノードを離脱してもデータの滅失の可能性がないことを知らせる情報をノード22が具備する入出力装置に画面表示し、操作監視プロセスを終了する(S821)。監視プロセスの停止指示でないならば(S817)、データの複製元であるノード22の操作を監視し(S818)、操作入力があるならば(S819)、操作内容とアラームをノード22が具備する入出力装置に画面表示し、さらに、データ複製管理制御部12へ通知する(S820)。以上のS816〜S820を繰り返す(S815)。
【0057】
ネットワーク監視プロセスは、監視プロセスの監視停止指示を待ち受け(S808)、監視プロセスの停止指示ならば(S809)、操作監視プロセスを終了する(S813)。監視プロセスの停止指示でないならば(S809)、分散FS管理装置19や他のノード22との疎通を確認することにより、ネットワークからのノード22の離脱を監視し(S818)、疎通がない(通信できない)ならば(S811)、データの複製元であるノード22の離脱とアラームをノード22が具備する入出力装置に画面表示する(S820)。以上のS808〜S812を繰り返す(S807)。
【0058】
図13は、データ複製管理制御部12の監視設定処理(
図11のS710)の処理フローを示す図である。監視設定処理は、ノード22に対して、監視設定情報を通知する処理である。監視設定情報は、
図12で説明したノード22の監視処理部25によって待ち受けられる。監視設定情報の送信先となるノード22のIPアドレスをNTBL14から取得し(S901)、取得したIPアドレスに接続し(S902)、接続したノード22に監視設定情報を送付する(S903)。監視設定情報は前述の通り、監視処理の開始を指示する情報と、監視処理を停止・解除を指示する情報である。開始を指示する情報である場合は(S904)、情報を送付したノード22までの疎通を監視する処理を開始し、ノード22における操作監視でのアラートを待ち受ける(S905)。停止・解除を指示する情報である場合は、情報を送付したノード22までの疎通を監視する処理を停止し、(S906)。処理を終了する。
【0059】
以下に、本実施形態の分散ファイルシステムから離脱させるノード22を、NTBL14に格納されるノードの保守期限によって選択し、データの複製処理を実行する例について説明する。
【0060】
図14は、データ複製管理制御部12に含まれる離脱候補ノードの複製すべきデータの複製処理の動作処理フローの一例を示す図である。
【0061】
本複製処理は、
図11に示した複製処理とは異なり、NTBL14から定期的(例えば1日に1回)にノード22の保守期限取得する(S1001)。取得した保守期限までの期間が所定の期間(例えば1ヶ月)未満の場合に、そのノード22を離脱候補ノードとして選択し(S1002)、シミュレーション処理(S1003)と
図11に示す複製処理(S1004)を実行し、保守期限を迎える前に離脱候補ノードの複製すべきデータの複製を完了させる。
【0062】
本実施形態によれば、ネットワークに接続した複数のノードで構成する分散ファイルシステムにおいて、人為的な要因によるデータの保全性の低下を回避できる。具体的には、人為的にノードを分散ファイルシステムから離脱させてしまうことによって、分散ファイルシステムからのデータへのアクセスが不可能の状態へ陥ることやデータ滅失やデータ保全レベルの低下の可能性を軽減できる。