(57)【要約】【課題】分散ファイルシステムにおけるディスク使用率が高くなってきた場合等においてノードを追加する際に、少ない電力消費量によりノード起動を行う。【解決手段】管理サーバ１と複数のノード２とを有する分散ファイルシステムにおいて、各ノード２は、自らのディスク使用率を算出する情報収集部２１と、待機状態から自らの起動を行うノード起動実行部２３とを備え、管理サーバ１は、各ノード２からディスク使用率の情報を受信する情報受信部１１と、複数のノードで構成されるシステム全体のシステムディスク使用率を算出するノードディスク容量管理部１２と、システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部１５と、前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部１６とを備える。【選択図】図２
2011065469.tif 000002
【特許請求の範囲】
【請求項１】
管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態で待機し、
前記複数のノードに故障ノードが存在した場合に前記待機ノードを起動する一方、
前記複数のノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴とする分散ファイルシステムにおけるノード起動方法。
【請求項２】
管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態で待機し、
前記複数のノード及び複数の待機ノードは複数のネットワークに分割され、
前記複数のノードに故障ノードが存在した場合に故障ノードが存在するネットワーク内の前記待機ノードを起動する一方、
前記各ネットワークにおける複数ノードのディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記待機ノードを自動的に起動し、
前記複数のネットワークのノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴とする分散ファイルシステムにおけるノード起動方法。
【請求項３】
管理サーバと、前記管理サーバに接続された複数のノードとを有する分散ファイルシステムにおいて、
前記各ノードは、システム動作時に起動する起動ノードと、電源が供給されない待機状態とした待機ノードを含む一方、
自らのディスク使用率を算出する情報収集部と、
前記待機状態から自らの起動を行うノード起動実行部と、
を備え、
前記管理サーバは、
前記各ノードからディスク使用率の情報を受信する情報受信部と、
前記情報受信部で受信した各ノードのディスク使用率から複数のノードで構成されるシステム全体のシステムディスク使用率を算出するディスク容量管理部と、
前記システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部と、
前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部と
を備えたことを特徴とする分散ファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードをネットワーク上に配置してディスクを共有する分散ファイルシステムに関し、特に、システム全体のディスク使用率が高くなってきた場合や、ノードに故障が生じた場合にノードを追加するノード起動方法、及び、そのための分散ファイルシステムに関する。
【背景技術】
【０００２】
分散ファイルシステムは、ネットワークを介して散在する複数のコンピュータのディレクトリ、もしくはファイルを仮想的に統合して利用するための技術である。この種の技術としては、非特許文献１や非特許文献２で示されるように、複数のマシンのディスクを組み合わせて１つのファイルシステムとして機能する分散プラットフォームが提案されている。
非特許文献１に示されたGfarmは、広域ネットワーク上で、大容量、大規模データ処理の要求に応えるスケーラブルな分散ファイルシステムプラットフォームであり、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームである。
一方、非特許文献２に示されたHadoopは、１つのディスクで保存できない大量のデータを並列化することで高速かつ効率良く処理できるものであり、比較的大きなサイズかつ基本的に更新されることのないファイルのI/Oに適した分散プラットフォームである。
【０００３】
分散ファイルシステムにおけるネットワーク構成、ノードの配置や追加に関しては、運用者の判断で行われている。そのため、ディスク容量や運用状況の監視を日々行っている。特に、システム全体のディスク使用率が高くなってきた場合やノードに故障が発生した際にはノードの追加を行う必要がある。ノードの追加は、設定や設置までの作業に時間を要するので、直に起動させる場合は緊急対応できる体制づくりが必要となり、運用の負担が大きくなる。
一方で、急を要するノード追加による運用の負担を軽減するためにノードの過剰供給を行うと、必要以上の電力が消費するため運用コストの増加につながり、どちらの場合も運用側の負担が増えることが懸念される。 
【０００４】
そこで、運用側の負担の軽減を目的として、複数のサーバで構成されるシステムの動作状況に応じて不足している資源（サーバやストレージデバイス）の種別を自動的に判断し、その資源（ノード）の増設（起動）を行う技術が特許文献１に提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１８６０号公報
【非特許文献】
【０００６】
【非特許文献１】URL：http://datafarm.apgrid.org/index.ja.html
【非特許文献２】URL：http://hadoop.apache.org/
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の方法では、対象をＬＡＮとした場合でのストレージデバイスの追加や、電源供給を伴うホットスタンバイの待機ノードを配置し，システムの負荷状況によりシステムから使用可能にする仕組となっている。特許文献１の記載によれば、ノードの使用可否を判断するサーバとノードとがスイッチで接続され、ローカルネットワークを対象としているので、ＷＡＮや広域ネットワークを対象にしたシステムでの使用ができないという問題がある。
また、ホットスタンバイでは使用しないノードを起動することになるので、上述したノードの過剰供給の場合と同様に、電力消費による運用コストの増加が問題となる。
【０００８】
本発明は上記事情に鑑みて提案されたもので、分散ファイルシステムにおけるディスク使用率が高くなってきた場合等においてノードを追加する際に、少ない電力消費量によりノード起動を行うことができる分散ファイルシステム、及び、分散ファイルシステムにおけるノード起動方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため本発明は、分散ファイルシステムにおいて、電源供給を伴わないコールドスタンバイの待機ノードを用意し、ディスク使用率が所望の閾値以上になった時に、待機ノードを自動で起動できるようにすることで、使用状況に応じてシステムにおけるディスク容量の増加を図るものである。
【００１０】
すなわち、請求項１は、管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態（コールドスタンバイ）で待機し、
前記複数のノードに故障ノードが存在した場合に前記待機ノードを起動する一方、
前記複数のノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴としている。
【００１１】
請求項２は、管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態（コールドスタンバイ）で待機し、
前記複数のノード及び複数の待機ノードは複数のネットワークに分割され、
前記複数のノードに故障ノードが存在した場合に故障ノードが存在するネットワーク内の前記待機ノードを起動する一方、
前記各ネットワークにおける複数ノードのディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記待機ノードを自動的に起動し、
前記複数のネットワークのノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴としている。
【００１２】
請求項３の分散ファイルシステムは、管理サーバと、前記管理サーバに接続された複数のノードとを有している。
そして、前記各ノードは、システム動作時に起動する起動ノードと、電源が供給されない待機状態（コールドスタンバイ）とした待機ノードを含む。
また、前記各ノードは、自らのディスク使用率を算出する情報収集部と、前記待機状態から自らの起動を行うノード起動実行部とを備えている。
前記管理サーバは、前記各ノードからディスク使用率の情報を受信する情報受信部と、
前記情報受信部で受信した各ノードのディスク使用率から複数のノードで構成されるシステム全体のシステムディスク使用率を算出するディスク容量管理部と、前記システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部と、前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部とを備えている。
【発明の効果】
【００１３】
本発明によれば、待機ノードを用意しディスクの使用率が所望の閾値以上になった時に待機ノードを自動で起動できるようにしたので、ディスク使用率から判断しノードの追加が必要になった時でも、待機ノードを起動させることで急を要するノード追加に伴う作業を行う必要がなく運用負担の軽減を図ることができる。
【００１４】
また、待機ノードをコールドスタンバイとすることで、システム全体でノードの過剰供給による消費電力の増大を抑制することができる。
【００１５】
また、ノード起動判断を行う際に取得するデータを一時的に保持し、前回のデータと新たに取得したデータに存在するノードリストから故障したノードを探し、故障ノードが存在する場合は該当するノードが存在するネットワークの待機ノードを起動することにより、故障によるネットワークのディスク容量の減少を防ぐことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の分散ファイルシステムの全体構成を示すモデル図である。
【図２】本発明の分散ファイルシステムの機能を説明するためのブロック図である。
【図３】分散ファイルシステムにおいて、システム全体で待機ノードを起動する場合の動作を説明するための処理フローチャート図である。
【図４】分散ファイルシステムにおいて、ネットワーク毎に待機ノードを起動する場合の動作を説明するための処理フローチャート図である。
【発明を実施するための形態】
【００１７】
本発明の分散ファイルシステムの実施の形態の一例について、図面を参照しながら説明する。
分散ファイルシステムは、図１に示すように、管理サーバ１と、管理サーバ１に接続された複数のノード２から構成され、ノード２は管理サーバ１と同じネットワークに存在する場合と、数個単位に複数のネットワークを構成する場合がある。すなわち、システム内に複数のネットワークが存在し、各ネットワーク内にノードが数台存在する。ノード２には、システム使用時に動作する複数の起動ノードと、電源が供給されることなくコールドスタンバイされる複数の待機ノードとが存在している。
【００１８】
ここで言うネットワークとは、サブネットが別である必要はなく、管理サーバ１上で数台のノード２を一つの集合として認識するものである。
ｎ個（数量に規定はない）のノード（Ｎ1〜Ｎn）２は、管理サーバ１を介してユーザがアクセスすることで、どのネットワークに属するノードであるかを意識させることなく単一のストレージとしてユーザに提供される。
【００１９】
分散ファイルシステムを構成する管理サーバ１及び各ノード２が有する処理機能について、図２を参照しながら説明する。管理サーバ１には複数のノード２が接続され、ノード２には前記したように起動ノードと待機ノードが存在するが、構成自体は同じある。図２では簡略化して管理サーバ１に一つのノード２（起動ノード又は待機ノード）が接続されている状態が示されている。また、分散ファイルシステムは、複数のネットワークに分割され、各ネットワーク内に複数のノード２（複数の起動ノード、及び、複数の待機ノード）が存在している。
サーバ１及び各ノード２には、分散ファイルシステムにおけるノード起動を行うためのプログラムがインストールされ、プログラムにしたがって以下の動作が行われる。
【００２０】
管理サーバ１は、ノード２からのディスク使用率の情報を受信する情報受信部１１と、定期的にノード２のディスク使用率情報を管理するノードディスク容量管理部１２と、各ノードのネットワーク分割情報を管理するネットワーク管理部１３と、ネットワークにおけるディスク使用率を算出するネットワークディスク容量管理部１４と、故障ノードの探索及び起動ノードの選択を行うノード起動判断部１５と、ノード起動命令を発信するノード起動命令部１６を有して構成される。
【００２１】
管理サーバ１に接続される各ノード２は、ファイルを記録するための記録部を有し、自ノードのディスク使用率を管理する情報収集部２１と、自ノードのディスク使用率を管理サーバ１へ通知する情報通知部２２と、自ノードの起動を行うノード起動実行部２３を有して構成される。
また、各ノード２は、システム内で動作している「稼働中」、動作していたものが何らの理由により停止する「故障」、システム全体の動作状態に応じた起動を待機する「待機」のいずれかの状態となっており、各ノード２が３種類のどの状態のノード（「起動ノード」「故障ノード」「待機ノード」）であるかについては管理サーバ１で管理される。
【００２２】
次に、管理サーバ１を構成する各部の機能について説明する。
情報受信部１１は、各ノード２の情報通知部２２より通知された複数のノード２それぞれにおけるディスク使用率の情報を定期的に受信し、ノードディスク容量管理部１２へ通知する。
【００２３】
ノードディスク容量管理部１２はメモリを有し、今回通知された複数のノード２それぞれにおけるディスク使用率から算出したシステム全体のディスク使用率情報(NDn)と前回通知されたノード２（システム全体）のディスク使用率情報(NDL)をノード起動判断部１５へ通知する。また、ノード２（システム全体）のディスク使用率情報(NDn)は、ネットワーク管理部１３へも通知される。
【００２４】
ネットワーク管理部１３は、ノードディスク容量管理部１２より通知されたノード２のディスク使用率(NDn)と自身が保持する各ノード２のネットワーク分割情報をネットワークディスク容量管理部１４へ通知する。ネットワーク分割情報とは、各ノード２（起動ノード及び待機ノード）が属するネットワークの種別、各ネットワークが有するディスク容量等である。
【００２５】
ネットワークディスク容量管理部１４は、ネットワーク管理部１３より通知された各ノード２のディスク使用率(NDn)と各ノード２のネットワーク分割情報よりネットワークディスク使用率（ネットワーク毎のディスク使用率）を算出し、ノード起動判断部１５へ通知する。
【００２６】
ノード起動判断部１５は、ノードディスク容量管理部１２から通知された（今回）ディスク使用率情報(NDn)と、（前回）ディスク使用率情報(NDL)とから故障ノードの探索および起動ノードの選択を行う。故障ノードの探索は、ディスク使用率情報(NDn)から起動しているノードのノードリスト(NLn)を作成し、ディスク使用率情報(NDL)から起動しているノードのノードリスト(NLL)を作成し、NDnとNDLを比較することにより、NLL に存在しNLn に存在しないノードを故障ノードと判断する。
また、ネットワークディスク容量管理部１４より通知されたネットワークディスク使用率を元にネットワーク内での待機ノードの中から起動ノードの選択を行う。
更に、各ノード２のディスク使用率(NDn)からシステム全体のディスク使用率(Sd)を算出し待機ノードの中から起動ノードの選択を行う。
ノード起動判断部１５は、選択した起動ノードのリストをノード起動命令部１６へ通知する。
【００２７】
ノード起動命令部１６は、ノード起動判断部１５から受信した起動ノードのリストに基づき、該当する各ノード２（待機ノード）のノード起動実行部２３へ対して、ノード起動命令を通知する。ノード起動部命令部１６は、「稼働中」、「故障」、「待機」の３種類あるノードの状態を管理する。ノードの故障を検知した場合、「稼働中」から「故障」に自動的に変化する。待機ノードを起動ノードに自動的に追加した場合は、「待機」から「稼働中」に自動的に変化する。運用管理者が故障からの復旧を実施した場合は、「故障」から「待機」に手動で変化する。また、待機中のノードを手動で稼働中にさせることも可能である。
【００２８】
ノード２の情報収集部２１では自ノードのディスク使用率を定期的に取得する。情報通知部２２では、取得したディスク使用率を管理サーバ１の情報受信部１１へ通知する。
【００２９】
ノード起動実行部２３では、管理サーバ１のノード起動命令部１６より起動命令を受信し、自らのノードを起動する。ノードを自動起動する仕方については、公知のMagic Packet，IPMIで開示されている技術を使用すればよい。
【００３０】
分散ファイルシステムにおけるノードを自動起動する場合の手順について、図３を参照しながら説明する。この例では、システム内を複数のネットワークに分断することなく、システム内における待機ノードを自動起動するものである。
【００３１】
先ず、故障ノードの検索を行う（ステップ３１）。
各ノードから収集するディスク使用率のデータを一時保持し、再度データを収集した際に前回収集したデータに存在するノードリスト(NLL)と新たに収集したデータに存在するノードリスト(NLn)を突き合わせ、NLL に存在しNLn に存在しないノードを探す。
故障ノードが存在した場合は（ステップ３２）、待機ノードの中からディスク容量が多いノードから順に故障ノード数分起動する（ステップ３３）。
ディスク容量が同じノードが複数存在する場合には、分散ファイルシステムに登録された順に選択をする。
【００３２】
次に、各ノードのディスク使用率からシステム全体のディスク使用率を管理サーバから取得する（ステップ３４）。
ディスク使用率を予め設定された閾値と比較し（ステップ３４）、閾値以下である場合は何もせず終了する。
ディスク使用率が閾値を超えている場合は、最もディスク容量が多い待機ノードを１台起動する（ステップ３６）。
【００３３】
続いて、起動した待機ノードを含めたシステム全体のディスク使用率を再度管理サーバから取得し（ステップ３４）、閾値を超えているか比較し（ステップ３５）、閾値以下の場合は処理を終了する。
閾値を超える場合は、最もディスク容量が大きい待機ノードを１台起動し（ステップ３６）、システム全体の使用率の再取得を行い（ステップ３４）、閾値以下になるまで待機ノードの起動を繰り返す。
【００３４】
図３の例では、分散ファイルシステムのシステム内に存在する複数のノード２について平等に取り扱うようにしたが、複数のノードを関連づけした複数のネットワークに分割した場合において、各ネットワーク内のノードを自動起動する場合の手順について図４を参照しながら説明する。
【００３５】
先ず、故障ノードの検索を行う（ステップ４１）。
各ノードから収集するディスク使用率のデータを一時保持し、再度データを収集した際に前回収集したデータに存在するノードリスト(NLL)と新たに収集したデータに存在するノードリスト(NLn)を突き合わせ、NLL に存在しNLn に存在しないノードを探す。
【００３６】
故障ノードが存在するかどうかを判断し（ステップ４２）、故障ノードが存在した場合は、故障ノードが含まれるネットワークの待機ノードを故障ノード数だけ起動する（ステップ４３）。
次に、各ネットワークのディスク使用率(Nd1〜Ndn)を管理サーバから取得する（ステップ４４）。Nd1〜Ndn の中でネットワーク閾値(NL)を超えている場合（ステップ４５）には、閾値を超えた全てのネットワークのディスク使用率を全てネットワーク閾値(NL)以下になるまで待機ノードを起動する（ステップ４６）。
【００３７】
前述の処理を行った各ネットワークのディスク使用率(Nd1〜Ndn)とシステム全体のディスク使用率(Sd)を管理サーバから取得する（ステップ４７）。システム全体のディスク使用率(Sd)がシステム閾値(SL)を超えている場合は（ステップ４８）、Nd1〜Ndnの中から最もディスク使用率の高いネットワーク内の待機ノードを起動し（ステップ４９）、再度Nd1〜NdnとSdを取得する（ステップ４７）。
【００３８】
上述した処理について、システム全体のディスク使用率(Sd)がシステム閾値(SL)以下になるまで続け（ステップ４８）、処理を終了する。ネットワーク閾値(NL)とシステム閾値(SL)の値は、NL ≧ SLとなる値に設定されている。具体例としては、ネットワーク閾値を９０%、システム閾値を８０%とする。
【００３９】
上述した待機ノードの起動方法であると、故障ノードが存在するネットワークの待機ノードを起動するので、故障ノードの発生前後において、各ネットワークのディスク利用率の変更を最小限にすることができる。また、故障ノードのデータ復旧を同一ネットワークのノードに対して行うことが可能になる。
【００４０】
また、図４のようにシステム全体をネットワークに分割した場合、ネットワーク閾値(NL)をシステム閾値(SL)よりも高くすることにより、各ネットワークの待機ノード数を減らすことができる。
ディスク使用率が低いネットワークへデータの格納する分散ファイルシステムで用いた場合は、各ネットワークのディスク使用率を均一にし、負荷分散することができる。
【００４１】
従来一般には、分散ファイルシステムのようなストレージを提供するシステムでは、ディスクの容量が足りなくなってからノードを追加するのでは対応が遅いため、ディスクの使用容量を適宜確認し容量不足に近づいてきた際にノードやストレージを追加する処理が行われる。その場合、ノードを追加するまでの猶予が非常に短いため運用の負担が大きくなる。また、ディスクの容量が足りなくなる判断を早めに行うことで、ノード追加の緊急性を下げることは可能だが、ノード追加時には必ずしも必要でない場合が生じ、過剰供給となることで電力の無駄遣いとなる場合がある。
【００４２】
上述した分散ファイルシステムによれば、ノードの追加は必要だが急を要する時期に追加するのではなく、必要になるまでの間で設定された閾値の値で追加することができる（所望のタイミングで追加することができる）。したがって、電源の供給を伴わない待機ノードの設置は行うが、必要になるまでは起動させないため、容量の過剰供給になることがなく、電力の無駄遣いを防止することができる。
【符号の説明】
【００４３】
１…管理サーバ、  ２…ノード（起動ノード又は待機ノード）、  １１…情報受信部、  １２…ノードディスク容量管理部、  １３…ネットワーク管理部、  １４…ネットワークディスク容量管理部、  １５…ノード起動判断部、  １６…ノード起動命令部、  ２１…情報収集部、  ２２…情報通知部、  ２３…ノード起動実行部。
【図１】
2011065469.tif 000003
【図２】
2011065469.tif 000004
【図３】
2011065469.tif 000005
【図４】
2011065469.tif 000006