説明

分散ファイルシステム及び分散ファイルシステムにおけるノード起動方法

【課題】分散ファイルシステムにおけるディスク使用率が高くなってきた場合等においてノードを追加する際に、少ない電力消費量によりノード起動を行う。
【解決手段】管理サーバ1と複数のノード2とを有する分散ファイルシステムにおいて、各ノード2は、自らのディスク使用率を算出する情報収集部21と、待機状態から自らの起動を行うノード起動実行部23とを備え、管理サーバ1は、各ノード2からディスク使用率の情報を受信する情報受信部11と、複数のノードで構成されるシステム全体のシステムディスク使用率を算出するノードディスク容量管理部12と、システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部15と、前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部16とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードをネットワーク上に配置してディスクを共有する分散ファイルシステムに関し、特に、システム全体のディスク使用率が高くなってきた場合や、ノードに故障が生じた場合にノードを追加するノード起動方法、及び、そのための分散ファイルシステムに関する。
【背景技術】
【0002】
分散ファイルシステムは、ネットワークを介して散在する複数のコンピュータのディレクトリ、もしくはファイルを仮想的に統合して利用するための技術である。この種の技術としては、非特許文献1や非特許文献2で示されるように、複数のマシンのディスクを組み合わせて1つのファイルシステムとして機能する分散プラットフォームが提案されている。
非特許文献1に示されたGfarmは、広域ネットワーク上で、大容量、大規模データ処理の要求に応えるスケーラブルな分散ファイルシステムプラットフォームであり、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームである。
一方、非特許文献2に示されたHadoopは、1つのディスクで保存できない大量のデータを並列化することで高速かつ効率良く処理できるものであり、比較的大きなサイズかつ基本的に更新されることのないファイルのI/Oに適した分散プラットフォームである。
【0003】
分散ファイルシステムにおけるネットワーク構成、ノードの配置や追加に関しては、運用者の判断で行われている。そのため、ディスク容量や運用状況の監視を日々行っている。特に、システム全体のディスク使用率が高くなってきた場合やノードに故障が発生した際にはノードの追加を行う必要がある。ノードの追加は、設定や設置までの作業に時間を要するので、直に起動させる場合は緊急対応できる体制づくりが必要となり、運用の負担が大きくなる。
一方で、急を要するノード追加による運用の負担を軽減するためにノードの過剰供給を行うと、必要以上の電力が消費するため運用コストの増加につながり、どちらの場合も運用側の負担が増えることが懸念される。
【0004】
そこで、運用側の負担の軽減を目的として、複数のサーバで構成されるシステムの動作状況に応じて不足している資源(サーバやストレージデバイス)の種別を自動的に判断し、その資源(ノード)の増設(起動)を行う技術が特許文献1に提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−11860号公報
【非特許文献】
【0006】
【非特許文献1】URL:http://datafarm.apgrid.org/index.ja.html
【非特許文献2】URL:http://hadoop.apache.org/
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の方法では、対象をLANとした場合でのストレージデバイスの追加や、電源供給を伴うホットスタンバイの待機ノードを配置し,システムの負荷状況によりシステムから使用可能にする仕組となっている。特許文献1の記載によれば、ノードの使用可否を判断するサーバとノードとがスイッチで接続され、ローカルネットワークを対象としているので、WANや広域ネットワークを対象にしたシステムでの使用ができないという問題がある。
また、ホットスタンバイでは使用しないノードを起動することになるので、上述したノードの過剰供給の場合と同様に、電力消費による運用コストの増加が問題となる。
【0008】
本発明は上記事情に鑑みて提案されたもので、分散ファイルシステムにおけるディスク使用率が高くなってきた場合等においてノードを追加する際に、少ない電力消費量によりノード起動を行うことができる分散ファイルシステム、及び、分散ファイルシステムにおけるノード起動方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため本発明は、分散ファイルシステムにおいて、電源供給を伴わないコールドスタンバイの待機ノードを用意し、ディスク使用率が所望の閾値以上になった時に、待機ノードを自動で起動できるようにすることで、使用状況に応じてシステムにおけるディスク容量の増加を図るものである。
【0010】
すなわち、請求項1は、管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態(コールドスタンバイ)で待機し、
前記複数のノードに故障ノードが存在した場合に前記待機ノードを起動する一方、
前記複数のノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴としている。
【0011】
請求項2は、管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態(コールドスタンバイ)で待機し、
前記複数のノード及び複数の待機ノードは複数のネットワークに分割され、
前記複数のノードに故障ノードが存在した場合に故障ノードが存在するネットワーク内の前記待機ノードを起動する一方、
前記各ネットワークにおける複数ノードのディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記待機ノードを自動的に起動し、
前記複数のネットワークのノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴としている。
【0012】
請求項3の分散ファイルシステムは、管理サーバと、前記管理サーバに接続された複数のノードとを有している。
そして、前記各ノードは、システム動作時に起動する起動ノードと、電源が供給されない待機状態(コールドスタンバイ)とした待機ノードを含む。
また、前記各ノードは、自らのディスク使用率を算出する情報収集部と、前記待機状態から自らの起動を行うノード起動実行部とを備えている。
前記管理サーバは、前記各ノードからディスク使用率の情報を受信する情報受信部と、
前記情報受信部で受信した各ノードのディスク使用率から複数のノードで構成されるシステム全体のシステムディスク使用率を算出するディスク容量管理部と、前記システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部と、前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部とを備えている。
【発明の効果】
【0013】
本発明によれば、待機ノードを用意しディスクの使用率が所望の閾値以上になった時に待機ノードを自動で起動できるようにしたので、ディスク使用率から判断しノードの追加が必要になった時でも、待機ノードを起動させることで急を要するノード追加に伴う作業を行う必要がなく運用負担の軽減を図ることができる。
【0014】
また、待機ノードをコールドスタンバイとすることで、システム全体でノードの過剰供給による消費電力の増大を抑制することができる。
【0015】
また、ノード起動判断を行う際に取得するデータを一時的に保持し、前回のデータと新たに取得したデータに存在するノードリストから故障したノードを探し、故障ノードが存在する場合は該当するノードが存在するネットワークの待機ノードを起動することにより、故障によるネットワークのディスク容量の減少を防ぐことができる。
【図面の簡単な説明】
【0016】
【図1】本発明の分散ファイルシステムの全体構成を示すモデル図である。
【図2】本発明の分散ファイルシステムの機能を説明するためのブロック図である。
【図3】分散ファイルシステムにおいて、システム全体で待機ノードを起動する場合の動作を説明するための処理フローチャート図である。
【図4】分散ファイルシステムにおいて、ネットワーク毎に待機ノードを起動する場合の動作を説明するための処理フローチャート図である。
【発明を実施するための形態】
【0017】
本発明の分散ファイルシステムの実施の形態の一例について、図面を参照しながら説明する。
分散ファイルシステムは、図1に示すように、管理サーバ1と、管理サーバ1に接続された複数のノード2から構成され、ノード2は管理サーバ1と同じネットワークに存在する場合と、数個単位に複数のネットワークを構成する場合がある。すなわち、システム内に複数のネットワークが存在し、各ネットワーク内にノードが数台存在する。ノード2には、システム使用時に動作する複数の起動ノードと、電源が供給されることなくコールドスタンバイされる複数の待機ノードとが存在している。
【0018】
ここで言うネットワークとは、サブネットが別である必要はなく、管理サーバ1上で数台のノード2を一つの集合として認識するものである。
n個(数量に規定はない)のノード(N1〜Nn)2は、管理サーバ1を介してユーザがアクセスすることで、どのネットワークに属するノードであるかを意識させることなく単一のストレージとしてユーザに提供される。
【0019】
分散ファイルシステムを構成する管理サーバ1及び各ノード2が有する処理機能について、図2を参照しながら説明する。管理サーバ1には複数のノード2が接続され、ノード2には前記したように起動ノードと待機ノードが存在するが、構成自体は同じある。図2では簡略化して管理サーバ1に一つのノード2(起動ノード又は待機ノード)が接続されている状態が示されている。また、分散ファイルシステムは、複数のネットワークに分割され、各ネットワーク内に複数のノード2(複数の起動ノード、及び、複数の待機ノード)が存在している。
サーバ1及び各ノード2には、分散ファイルシステムにおけるノード起動を行うためのプログラムがインストールされ、プログラムにしたがって以下の動作が行われる。
【0020】
管理サーバ1は、ノード2からのディスク使用率の情報を受信する情報受信部11と、定期的にノード2のディスク使用率情報を管理するノードディスク容量管理部12と、各ノードのネットワーク分割情報を管理するネットワーク管理部13と、ネットワークにおけるディスク使用率を算出するネットワークディスク容量管理部14と、故障ノードの探索及び起動ノードの選択を行うノード起動判断部15と、ノード起動命令を発信するノード起動命令部16を有して構成される。
【0021】
管理サーバ1に接続される各ノード2は、ファイルを記録するための記録部を有し、自ノードのディスク使用率を管理する情報収集部21と、自ノードのディスク使用率を管理サーバ1へ通知する情報通知部22と、自ノードの起動を行うノード起動実行部23を有して構成される。
また、各ノード2は、システム内で動作している「稼働中」、動作していたものが何らの理由により停止する「故障」、システム全体の動作状態に応じた起動を待機する「待機」のいずれかの状態となっており、各ノード2が3種類のどの状態のノード(「起動ノード」「故障ノード」「待機ノード」)であるかについては管理サーバ1で管理される。
【0022】
次に、管理サーバ1を構成する各部の機能について説明する。
情報受信部11は、各ノード2の情報通知部22より通知された複数のノード2それぞれにおけるディスク使用率の情報を定期的に受信し、ノードディスク容量管理部12へ通知する。
【0023】
ノードディスク容量管理部12はメモリを有し、今回通知された複数のノード2それぞれにおけるディスク使用率から算出したシステム全体のディスク使用率情報(NDn)と前回通知されたノード2(システム全体)のディスク使用率情報(NDL)をノード起動判断部15へ通知する。また、ノード2(システム全体)のディスク使用率情報(NDn)は、ネットワーク管理部13へも通知される。
【0024】
ネットワーク管理部13は、ノードディスク容量管理部12より通知されたノード2のディスク使用率(NDn)と自身が保持する各ノード2のネットワーク分割情報をネットワークディスク容量管理部14へ通知する。ネットワーク分割情報とは、各ノード2(起動ノード及び待機ノード)が属するネットワークの種別、各ネットワークが有するディスク容量等である。
【0025】
ネットワークディスク容量管理部14は、ネットワーク管理部13より通知された各ノード2のディスク使用率(NDn)と各ノード2のネットワーク分割情報よりネットワークディスク使用率(ネットワーク毎のディスク使用率)を算出し、ノード起動判断部15へ通知する。
【0026】
ノード起動判断部15は、ノードディスク容量管理部12から通知された(今回)ディスク使用率情報(NDn)と、(前回)ディスク使用率情報(NDL)とから故障ノードの探索および起動ノードの選択を行う。故障ノードの探索は、ディスク使用率情報(NDn)から起動しているノードのノードリスト(NLn)を作成し、ディスク使用率情報(NDL)から起動しているノードのノードリスト(NLL)を作成し、NDnとNDLを比較することにより、NLL に存在しNLn に存在しないノードを故障ノードと判断する。
また、ネットワークディスク容量管理部14より通知されたネットワークディスク使用率を元にネットワーク内での待機ノードの中から起動ノードの選択を行う。
更に、各ノード2のディスク使用率(NDn)からシステム全体のディスク使用率(Sd)を算出し待機ノードの中から起動ノードの選択を行う。
ノード起動判断部15は、選択した起動ノードのリストをノード起動命令部16へ通知する。
【0027】
ノード起動命令部16は、ノード起動判断部15から受信した起動ノードのリストに基づき、該当する各ノード2(待機ノード)のノード起動実行部23へ対して、ノード起動命令を通知する。ノード起動部命令部16は、「稼働中」、「故障」、「待機」の3種類あるノードの状態を管理する。ノードの故障を検知した場合、「稼働中」から「故障」に自動的に変化する。待機ノードを起動ノードに自動的に追加した場合は、「待機」から「稼働中」に自動的に変化する。運用管理者が故障からの復旧を実施した場合は、「故障」から「待機」に手動で変化する。また、待機中のノードを手動で稼働中にさせることも可能である。
【0028】
ノード2の情報収集部21では自ノードのディスク使用率を定期的に取得する。情報通知部22では、取得したディスク使用率を管理サーバ1の情報受信部11へ通知する。
【0029】
ノード起動実行部23では、管理サーバ1のノード起動命令部16より起動命令を受信し、自らのノードを起動する。ノードを自動起動する仕方については、公知のMagic Packet,IPMIで開示されている技術を使用すればよい。
【0030】
分散ファイルシステムにおけるノードを自動起動する場合の手順について、図3を参照しながら説明する。この例では、システム内を複数のネットワークに分断することなく、システム内における待機ノードを自動起動するものである。
【0031】
先ず、故障ノードの検索を行う(ステップ31)。
各ノードから収集するディスク使用率のデータを一時保持し、再度データを収集した際に前回収集したデータに存在するノードリスト(NLL)と新たに収集したデータに存在するノードリスト(NLn)を突き合わせ、NLL に存在しNLn に存在しないノードを探す。
故障ノードが存在した場合は(ステップ32)、待機ノードの中からディスク容量が多いノードから順に故障ノード数分起動する(ステップ33)。
ディスク容量が同じノードが複数存在する場合には、分散ファイルシステムに登録された順に選択をする。
【0032】
次に、各ノードのディスク使用率からシステム全体のディスク使用率を管理サーバから取得する(ステップ34)。
ディスク使用率を予め設定された閾値と比較し(ステップ34)、閾値以下である場合は何もせず終了する。
ディスク使用率が閾値を超えている場合は、最もディスク容量が多い待機ノードを1台起動する(ステップ36)。
【0033】
続いて、起動した待機ノードを含めたシステム全体のディスク使用率を再度管理サーバから取得し(ステップ34)、閾値を超えているか比較し(ステップ35)、閾値以下の場合は処理を終了する。
閾値を超える場合は、最もディスク容量が大きい待機ノードを1台起動し(ステップ36)、システム全体の使用率の再取得を行い(ステップ34)、閾値以下になるまで待機ノードの起動を繰り返す。
【0034】
図3の例では、分散ファイルシステムのシステム内に存在する複数のノード2について平等に取り扱うようにしたが、複数のノードを関連づけした複数のネットワークに分割した場合において、各ネットワーク内のノードを自動起動する場合の手順について図4を参照しながら説明する。
【0035】
先ず、故障ノードの検索を行う(ステップ41)。
各ノードから収集するディスク使用率のデータを一時保持し、再度データを収集した際に前回収集したデータに存在するノードリスト(NLL)と新たに収集したデータに存在するノードリスト(NLn)を突き合わせ、NLL に存在しNLn に存在しないノードを探す。
【0036】
故障ノードが存在するかどうかを判断し(ステップ42)、故障ノードが存在した場合は、故障ノードが含まれるネットワークの待機ノードを故障ノード数だけ起動する(ステップ43)。
次に、各ネットワークのディスク使用率(Nd1〜Ndn)を管理サーバから取得する(ステップ44)。Nd1〜Ndn の中でネットワーク閾値(NL)を超えている場合(ステップ45)には、閾値を超えた全てのネットワークのディスク使用率を全てネットワーク閾値(NL)以下になるまで待機ノードを起動する(ステップ46)。
【0037】
前述の処理を行った各ネットワークのディスク使用率(Nd1〜Ndn)とシステム全体のディスク使用率(Sd)を管理サーバから取得する(ステップ47)。システム全体のディスク使用率(Sd)がシステム閾値(SL)を超えている場合は(ステップ48)、Nd1〜Ndnの中から最もディスク使用率の高いネットワーク内の待機ノードを起動し(ステップ49)、再度Nd1〜NdnとSdを取得する(ステップ47)。
【0038】
上述した処理について、システム全体のディスク使用率(Sd)がシステム閾値(SL)以下になるまで続け(ステップ48)、処理を終了する。ネットワーク閾値(NL)とシステム閾値(SL)の値は、NL ≧ SLとなる値に設定されている。具体例としては、ネットワーク閾値を90%、システム閾値を80%とする。
【0039】
上述した待機ノードの起動方法であると、故障ノードが存在するネットワークの待機ノードを起動するので、故障ノードの発生前後において、各ネットワークのディスク利用率の変更を最小限にすることができる。また、故障ノードのデータ復旧を同一ネットワークのノードに対して行うことが可能になる。
【0040】
また、図4のようにシステム全体をネットワークに分割した場合、ネットワーク閾値(NL)をシステム閾値(SL)よりも高くすることにより、各ネットワークの待機ノード数を減らすことができる。
ディスク使用率が低いネットワークへデータの格納する分散ファイルシステムで用いた場合は、各ネットワークのディスク使用率を均一にし、負荷分散することができる。
【0041】
従来一般には、分散ファイルシステムのようなストレージを提供するシステムでは、ディスクの容量が足りなくなってからノードを追加するのでは対応が遅いため、ディスクの使用容量を適宜確認し容量不足に近づいてきた際にノードやストレージを追加する処理が行われる。その場合、ノードを追加するまでの猶予が非常に短いため運用の負担が大きくなる。また、ディスクの容量が足りなくなる判断を早めに行うことで、ノード追加の緊急性を下げることは可能だが、ノード追加時には必ずしも必要でない場合が生じ、過剰供給となることで電力の無駄遣いとなる場合がある。
【0042】
上述した分散ファイルシステムによれば、ノードの追加は必要だが急を要する時期に追加するのではなく、必要になるまでの間で設定された閾値の値で追加することができる(所望のタイミングで追加することができる)。したがって、電源の供給を伴わない待機ノードの設置は行うが、必要になるまでは起動させないため、容量の過剰供給になることがなく、電力の無駄遣いを防止することができる。
【符号の説明】
【0043】
1…管理サーバ、 2…ノード(起動ノード又は待機ノード)、 11…情報受信部、 12…ノードディスク容量管理部、 13…ネットワーク管理部、 14…ネットワークディスク容量管理部、 15…ノード起動判断部、 16…ノード起動命令部、 21…情報収集部、 22…情報通知部、 23…ノード起動実行部。

【特許請求の範囲】
【請求項1】
管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態で待機し、
前記複数のノードに故障ノードが存在した場合に前記待機ノードを起動する一方、
前記複数のノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴とする分散ファイルシステムにおけるノード起動方法。
【請求項2】
管理サーバに接続された複数のノード及び複数の待機ノードを有する分散ファイルシステムにおけるノードの起動方法であって、
前記待機ノードは電源が供給されない状態で待機し、
前記複数のノード及び複数の待機ノードは複数のネットワークに分割され、
前記複数のノードに故障ノードが存在した場合に故障ノードが存在するネットワーク内の前記待機ノードを起動する一方、
前記各ネットワークにおける複数ノードのディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記待機ノードを自動的に起動し、
前記複数のネットワークのノードで構成されるシステム全体のディスク使用率を算出し該ディスク使用率が所定の閾値を超えた場合に前記ディスク使用率が所定の閾値以下になるまで前記待機ノードを自動的に起動する
ことを特徴とする分散ファイルシステムにおけるノード起動方法。
【請求項3】
管理サーバと、前記管理サーバに接続された複数のノードとを有する分散ファイルシステムにおいて、
前記各ノードは、システム動作時に起動する起動ノードと、電源が供給されない待機状態とした待機ノードを含む一方、
自らのディスク使用率を算出する情報収集部と、
前記待機状態から自らの起動を行うノード起動実行部と、
を備え、
前記管理サーバは、
前記各ノードからディスク使用率の情報を受信する情報受信部と、
前記情報受信部で受信した各ノードのディスク使用率から複数のノードで構成されるシステム全体のシステムディスク使用率を算出するディスク容量管理部と、
前記システムディスク使用率が所定の閾値を超えた場合に前記ノードの中で待機状態となっている待機ノードを起動ノードとして選択するノード起動判断部と、
前記ノード起動判断部で選択されたノードにノード起動命令を発信するノード起動命令部と
を備えたことを特徴とする分散ファイルシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−65469(P2011−65469A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−216023(P2009−216023)
【出願日】平成21年9月17日(2009.9.17)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】