説明

サーバシステム

【課題】分散サーバシステムにおいて、システムを構成する各ノードに対して状況変化に応じた制御を行うことで効率的な稼働を可能にする。
【解決手段】複数のノード20を有してネットワークを構成するサーバシステムにおいて、前記ネットワークに対して前記ノードの稼働状態を管理し制御する監視ノード10を設置し、監視ノード10は、各ノードから稼働状態に関連するパラメータを定期的に取得するノードパラメータ受信部11と、各パラメータの値に応じてノードやシステムを対象とした制御の有無を判断する要制御パラメータ判断部13と、予め記憶された制御リストに応じて各パラメータに対応するノード制御やシステム制御を決定するパラメータ実施制御決定部14と、制御が必要なノードやシステムへ制御信号を送信する制御送信部15を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを構成する複数のノードに対して、状況変化に応じた制御を行うことで各ノードの効率的な稼働を可能にしたサーバシステムに関する。
【背景技術】
【0002】
この種の技術としては、非特許文献1や非特許文献2で示されるように、複数のマシンのディスクを組み合わせて1つのファイルシステムとして機能する分散サーバシステムが提案されている。
非特許文献1に示されたGfarmは、広域ネットワーク上で、大容量、大規模データ処理の要求に応えるスケーラブルな分散ファイルシステムプラットフォームであり、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームである。
一方、非特許文献2に示されたHadoopは、1つのディスクで保存できない大量のデータを並列化することで高速かつ効率良く処理できるものであり、比較的大きなサイズかつ基本的に更新されることのないファイルのI/Oに適した分散プラットフォームである。
【0003】
また、非特許文献3のDRDBには、一方のデータを他方にコピーする技術が開示されている。DRDBは、Linux-HAと呼ばれる高い可用性をもつシステムを構成するために必要な1要素であり、2台以上のサーバ間で定期的に通信を行い、稼働しているサーバの情報を稼働サーバの代替サーバへ複製し、稼働しているサーバに故障が発生した場合に代替サーバへ切り替えてシステムとして継続して利用できる仕組みである。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】URL:http://datafarm.apgrid.org/index.ja.html
【非特許文献2】URL:http://hadoop.apache.org/
【非特許文献3】URL:http://www.drbd.org/ja/home/what-is-drbd/
【非特許文献4】URL:http://www.linux-ha.org/wiki/main_Page
【発明の概要】
【発明が解決しようとする課題】
【0005】
分散サーバシステムでは、ノードが故障した時に当該ノードをシステムから切り離すことでシステムが継続利用でき、高性能なサーバを用意することなく負荷分散やデータ分散を行うことによりシステム全体で高い性能を保持することが行われている。
すなわち、分散サーバシステムの制御において、特定のノードがダウンするとシステム全体へ影響するような重要なノードに対しては、予備系統を用意し故障時に切り替えることでシステムとして継続可能になるよう制御するシステムが存在する。その一方、ダウンしてもシステムの動作へ影響しないノードに関しては、予備系統を用意せず故障時にシステムから切り離すことが行われるが、ノードの稼働数が減ることによりシステム能力低下への影響が懸念される。また、規模の増大による故障台数の増加に伴い定型業務を含む故障対応が煩雑になる。
したがって、既存の分散サーバシステムでは、処理やデータの分散を行いかつ可用性を高めるために複数台のノードが稼働する場合に、システムを構成するノードが過少とならないよう過剰に稼働させることが行われていた。
【0006】
本発明は上記実情に鑑みて提案されたもので、システムを構成する各ノード(サーバ)に対して状況変化に応じた制御を行うことで効率的な稼働を可能にするサーバシステムを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するため本発明は、サーバシステムに監視ノードを設置し、サーバシステムを構成する全ノードから定期的にパラメータ(例えばCPU使用率)を取得し監視するものである。
すなわち、請求項1の発明は、複数のノードを分散配置してネットワークを構成するサーバシステムにおいて、前記ネットワークに対して前記ノードの稼働状態を管理し制御する監視ノードを設置し、前記監視ノードは、次の構成を含むことを特徴としている。
ノードパラメータ受信部。このノードパラメータ受信部は、前記各ノードから稼働状態に関連するパラメータを定期的に取得する。
要制御パラメータ判断部。この要制御パラメータ判断部は、各パラメータの値に応じて前記ノードや前記システムを対象とした制御の有無を判断する。
パラメータ実施制御決定部。このパラメータ実施制御決定部は、予め記憶された制御リストに応じて各パラメータに対応するノード制御やシステム制御を決定する。
制御送信部。この制御送信部は、制御が必要なノードやシステムへ制御信号を送信する。
【0008】
請求項2は、請求項1のサーバシステムにおいて、前記制御リストは、一つのパラメータに対して複数の制御方法が設定されることを特徴としている。
【0009】
請求項3は、請求項2のサーバシステムにおいて、前記各ノードは、前記監視ノードからの制御信号に応じて実行された制御結果を記録する制御結果収集部と、制御結果を前記監視ノードに送信する制御結果送信部と備えるとともに、前記監視ノードは、前記制御結果送信部から送信される制御結果を受信する制御結果受信部を備え、前記パラメータ実施制御決定部は、前記制御結果を受けてノード制御やシステム制御を決定することを特徴としている。
【0010】
請求項4は、請求項3のサーバシステムにおいて、前記パラメータ実施制御決定部は、一つのパラメータに対して複数の制御方法が存在する場合に、前記制御結果受信部で受信した制御結果に基づき、制御実施により復旧した割合が高い制御方法を選択することを特徴としている。
【発明の効果】
【0011】
本発明によれば、監視ノードを設置し、ノードパラメータ受信部でパラメータを定期的に取得し、要制御パラメータ判断部で各パラメータの値に応じてノードやシステムを対象とした制御の有無を判断して制御を行うことにより、故障もしくは他の正常なノードと異なる挙動をするノードに対して自動で復旧を行うことができる。
【0012】
また、システムの使用状況に応じて稼働するノード数を増減することが可能となるため、よりシステムで稼働させるノードの効率化を図ることができる。
【0013】
更に、既に行った制御結果に基づいて、制御実施により復旧した割合が高い制御が選択されることで、システムにおける最適な稼働状態を確保することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係る分散サーバシステムの全体構成を示すモデル図である。
【図2】分散サーバシステムを構成する一つのノードと監視ノードとの接続状態を説明するためのブロック図である。
【図3】分散サーバシステムの監視ノードによる制御処理を説明するフローチャート図である。
【図4】分散サーバシステムの監視ノードによる制御選択処理を説明するフローチャート図である。
【発明を実施するための形態】
【0015】
本発明を分散サーバシステムに適用した実施形態について、図1及び図2を参照して説明する。
分散サーバシステム1は、図1に示すように、複数のノード20から構成された各ネットワーク2と、システム全体を管理する一つの管理サーバ3と、分散サーバシステム1外に設置された監視ノード10により構成されている。管理サーバ3は、複数のノード20を備えている。
各ネットワーク2に配置された複数のノード20は、記憶部(ストレージ)を有するファイルサーバであり、このファイルサーバを広域な範囲に分散配置させることで構成されている。この分散サーバシステム1では、各ネットワーク2の各ノード20に対して管理サーバ3を介してユーザがアクセスすることで、複数のユーザによるファイル書込み要求及びファイル読込み要求が行われ、各ノード20を意識せず全体が単一のサーバとしてユーザに提供するシステムを構成している。
分散サーバシステム1外に設置された監視ノード10は、各ノード20の状態の監視および制御を行うものであり、制御対象となるノード20(各ネットワーク2及び管理サーバ3を構成するノード)は全て同等に扱われる。
【0016】
分散サーバシステム1を構成する各ノード20の稼働状態を管理し制御する監視ノード10の詳細構成について、図2を参照して説明する。
監視ノード10は、ノードパラメータ受信部11と、全ノードパラメータ集計部12と、要制御パラメータ判断部13と、パラメータ実施制御決定部14と、制御送信部15と、制御結果受信部16と、制御履歴記憶部17とを備えて構成され、ノード単体やシステム全体のパラメータを取得し、パラメータに制御が必要か判断し、制御が必要な場合には制御しその結果を受信する。
一方、ノード20は、パラメータ収集部21と、パラメータ送信部22と、制御受信部23と、制御実行部24と、制御結果収集部25と、制御結果送信部26を備え、監視ノード10へのパラメータ送信及び制御結果の送信を行う。
【0017】
すなわち監視ノード10では、各パラメータの値に応じて制御の要不要の判断や、制御が必要な場合の制御リストを保持しており、パラメータ要制御の判断を実施したのち、制御要と判断した場合は制御リストに従い制御を実施し、ノードやシステムの自動的な復旧処理を行う。制御リストには各パラメータに対応する少なくとも1つの制御(復旧処理)方法が設定されている。また、2つ以上の制御方法が存在する場合は、制御を実施した履歴に基づき、制御を実施し復旧した割合がより高い制御を実施するようになっている。
【0018】
以下、監視ノード10を構成する各ブロックについて説明する。
ノードパラメータ受信部11は、各ノード20のパラメータ送信部22から送信されたパラメータを定期的に受信して取得する。ノード20に関するパラメータは、ノードの稼働状態に関連する情報であり、例えば、ノード20に関してはCPU使用率、メモリ使用率、ネットワーク疎通である。
全ノードパラメータ集計部12では、各ノード20のパラメータを収集し、システム全体としてのパラメータ値を算出する。システムに関するパラメータしては、例えばロードアベレージとディスク使用率がある。
要制御パラメータ判断部13は、ノードパラメータ受信部11で得た各ノード20の各パラメータ、及び、全ノードパラメータ集計部12で得たシステム(全ノード)の各パラメータを受信し、各パラメータに対して制御が必要か判断する。具体的には、各パラメータの値が予め設定された閾値(後述する制御基準値)との比較によりノード20やシステムを対象とした制御の有無を判断する。
【0019】
パラメータ実施制御決定部14は、予め記憶された制御リストに応じて各パラメータに対応するノード制御やシステム制御を決定する。また、制御が必要と判断したパラメータに対して、どのような制御を行うかを制御履歴の情報を参照して決定する。
制御送信部15は、パラメータ実施制御決定部14で決定した制御方法(復旧処理)について、制御が必要なノードやシステムへ制御信号を送信する。
制御結果受信部16では、ノード20に対して行った制御結果を受信する。制御履歴記憶部17では、制御が必要だと判断したパラメータに対してどのような制御を行い、成功したか失敗したかの履歴を格納する。
【0020】
次に、ノード20を構成する各ブロックについて説明する。
パラメータ収集部21では、ノード20内部のパラメータを定期的に収集する。
パラメータ送信部22では、収集したパラメータを監視ノード10へ送信する。
制御受信部23では、監視ノード10からの制御指示を受信する。
制御実行部24では、監視ノード10から受信した制御指示の内容を実行することにより、当該ノード20について自動的な復旧処理が行われる。
制御結果収集部25では、制御実行部24で実行した制御によってパラメータが復旧したかの情報を収集する。
制御結果送信部26では、制御結果収集部25で収集した制御結果を監視ノード10へ送信する。
【0021】
次に、分散サーバシステム1の監視ノード10による制御処理について、図3のフローチャートを参照して説明する。
先ず、ノードパラメータ受信部11において、ネットワーク2及び管理サーバ3を構成する各ノード20から稼働状態に関連するパラメータを収集する(ステップ31)。
次に、取得したパラメータの値から各パラメータに対して制御が必要な値かを判断し(ステップ32)、制御が必要な場合は、パラメータ実施制御決定部14において、各パラメータの制御方法リストの中から最適な制御を選択する(ステップ33)。
【0022】
その後、ノード20に対して制御を実施し(ステップ34)、結果を受信し(ステップ35)、制御結果を履歴へ格納する(ステップ36)。
最後に、制御が成功した場合または、他にノードに対して実施する制御が存在しない場合は、制御終了と判断し(ステップ37)、必要に応じてシステムの制御を実施する(ステップ38)。
制御が失敗した場合は、再度制御を選択し、制御リストの制御を全て実施するまで若しくは制御が成功するまで処理を繰り返す。
【0023】
このフローチャートによる処理は、ノード20単体の自動制御だけでなく、複数ノード20から構成されるシステムの自動制御にも用いることができる。ただし、システムが対象となる場合は故障ではなく、システム全体の負荷によって制御の有無を判断する。
【0024】
続いて、分散サーバシステム1の監視ノード10による制御選択処理について、図4のフローチャートを参照して説明する。
パラメータ実施制御決定部14において、制御リストから制御が必要なパラメータに対する制御方法を取得する(ステップ41)。
次に、同一制御フローで選択した制御方法を取り除き(ステップ42)、制御成功回数(復旧回数)を制御実施回数で割った値(復旧割合)が最も大きい制御方法を選択する(ステップ43)。そこで、復旧割合が同じ制御が複数ある場合は(ステップ44)、復旧回数が最も多い制御方法を選択する(ステップ45)。
さらに、復旧回数も同一の制御方法が存在する場合は(ステップ46)、制御実施時刻を比較し、より最近に行った制御方法を選択する(ステップ47)。復旧割合または復旧回数の選択肢で、1つに絞れた場合はその制御方法を選択する。
最後に、選択した制御を実施する(ステップ48)。
【0025】
具体的なパラメータの例及び各パラメータで制御が必要だと判断する値(制御基準値)を表1に示す。本発明のサーバシステムによる制御対象は、ノード20単体、又は、複数ノード20から構成されるシステムであるため、それぞれ分けて説明する。
【0026】
先ず、制御対象がノード単体である場合、パラメータとしては、CPU使用率、メモリ使用率、ネットワーク疎通が考えられる。
CPU使用率については、100%を制御基準値とした。ここでの100%とは、特定のCPUまたはコアでの使用率が100%になった場合を指す。
メモリ使用率についても、100%を制御基準値とした。
ネットワーク疎通に関しては、疎通不可を制御判断値とする。ネットワーク疎通に関しては、取り得る値が疎通可と疎通不可の2値しかないため、疎通不可としている。
【0027】
制御対象がシステムの場合は、パラメータとしては、ロードアベレージとディスク使用率が考えられる。
ロードアベレージに関しては、3以上の値を取るノードが全体の80%を超える場合にノードの追加を行い、0.1以下のノードが存在する場合にはノードを停止する。
ロードアベレージとは、1つのCPUで処理可能な量を1とした場合のCPUリソースの要求量である。例えば、1分間に1つのプロセスが1つのCPUを占有する場合は「1」となり、2つのプロセスの場合は「2」となる。
【0028】
【表1】

【0029】
次に、表1に示した各パラメータに対する制御方法(復旧処理)の具体例を表2に示す。
CPU使用率に対しては、(1)最もCPU使用率が高いプロセスの優先順位を下げる、(2)最も使用率が高いプロセスを停止する、の2種類の対処(制御)の仕方がある。
メモリ使用率に関しては、(1)swap領域を増やす、(2)最も使用率が高いプロセスを再起動する、(3)最も使用率が高いプロセスを停止する、の3種類の対処(制御)の仕方がある。
ネットワーク疎通に関しては、インタフェースの再起動を行う。設定の不備が存在する場合は設定の修正を行う。
【0030】
ロードアベレージに関しては、ノードの増減を行うため、サーバ(ノード)を新たに起動する、サーバ(ノード)を停止する、の2種類の対処(制御)の仕方がある。
ディスク使用率に関しては、容量の増加でのみ対処可能であるため、サーバ(ノード)を新たに起動する制御のみが行われる。
一つのパラメータに対して複数の対処法(制御方法)がある場合には、上述したように、パラメータ実施制御決定部14において、過去の制御履歴における復旧割合等を考慮して一の制御方法が決定される。
【0031】
【表2】

【0032】
上述したシステムによれば、故障もしくは他の正常なノードと異なる挙動をするノードに対して自動で復旧を試みるため、設定ミスや軽微な故障等の定型的な対処で復旧可能となるため、故障と判断したノードをより早くに再利用することが可能となる。
【0033】
また、故障ノードに対して人手を介して行う定型的な対処を自動化することにより、再利用できないと判断したノードへ運用者が行う故障原因の特定や対処する作業を低減することが可能になる。
【0034】
更に、既存の分散ファイルシステムではピーク時のパフォーマンスに最適化したシステム構成を設定し、定期的なノード追加を行う運用が主となる。よって、稼働しているノードの過剰供給となる場合が多く、仮に過少供給となった場合のノード追加には時間を要する。
これに対して上述のシステムによれば、使用状況に応じて稼働するノード数を増減することが可能となるため、よりシステムの稼働状況に最適化したノード数を稼働させることが可能となる。
【0035】
上述したシステムでは、各ノード20を意識せず全体が単一のサーバとして処理可能な分散サーバシステムに適用した例について説明したが、複数ノードを備えたシステムであれば適用することができる。
【符号の説明】
【0036】
1…分散サーバシステム、 2…ネットワーク、 3…管理サーバ、 10…監視ノード、 11…ノードパラメータ受信部、 12…全ノードパラメータ集計部、 13…要制御パラメータ判断部、 14…パラメータ実施制御決定部、 15…制御送信部、 16…制御結果受信部、 17…制御履歴記憶部、 20…ノード、 21…パラメータ収集部、 22…パラメータ送信部、 23…制御受信部、 24…制御実行部、 25…制御結果収集部、 26…制御結果送信部。

【特許請求の範囲】
【請求項1】
複数のノードを有してネットワークを構成するサーバシステムにおいて、
前記ネットワークに対して前記ノードの稼働状態を管理し制御する監視ノードを設置し、
前記監視ノードは、
前記各ノードから稼働状態に関連するパラメータを定期的に取得するノードパラメータ受信部と、
各パラメータの値に応じて前記ノードや前記システムを対象とした制御の有無を判断する要制御パラメータ判断部と、
予め記憶された制御リストに応じて各パラメータに対応するノード制御やシステム制御を決定するパラメータ実施制御決定部と、
制御が必要なノードやシステムへ制御信号を送信する制御送信部と
を備えることを特徴とするサーバシステム。
【請求項2】
前記制御リストは、一つのパラメータに対して複数の制御方法が設定される請求項1に記載のサーバシステム。
【請求項3】
前記各ノードは、前記監視ノードからの制御信号に応じて実行された制御結果を記録する制御結果収集部と、制御結果を前記監視ノードに送信する制御結果送信部と備えるとともに、
前記監視ノードは、前記制御結果送信部から送信される制御結果を受信する制御結果受信部を備え、前記パラメータ実施制御決定部は、前記制御結果を受けてノード制御やシステム制御を決定する請求項2に記載のサーバシステム。
【請求項4】
前記パラメータ実施制御決定部は、一つのパラメータに対して複数の制御方法が存在する場合に、前記制御結果受信部で受信した制御結果に基づき、制御実施により復旧した割合が高い制御方法を選択する請求項3に記載のサーバシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−190378(P2012−190378A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−55017(P2011−55017)
【出願日】平成23年3月14日(2011.3.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】