JP5887462B2 - 情報処理システム、および情報処理システムの運用管理方法 - Google Patents

情報処理システム、および情報処理システムの運用管理方法 Download PDF

Info

Publication number
JP5887462B2
JP5887462B2 JP2015505189A JP2015505189A JP5887462B2 JP 5887462 B2 JP5887462 B2 JP 5887462B2 JP 2015505189 A JP2015505189 A JP 2015505189A JP 2015505189 A JP2015505189 A JP 2015505189A JP 5887462 B2 JP5887462 B2 JP 5887462B2
Authority
JP
Japan
Prior art keywords
computer
information processing
information
computers
adjacent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015505189A
Other languages
English (en)
Other versions
JPWO2014141459A1 (ja
Inventor
忠幸 松村
忠幸 松村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5887462B2 publication Critical patent/JP5887462B2/ja
Publication of JPWO2014141459A1 publication Critical patent/JPWO2014141459A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、複数の情報処理装置を有する情報処理システムに関し、特に情報処理装置間の効率的な情報交換に好適なネットワークを構築する技術に関する。
大量の計算資源を集約するデータセンタの利用が普及している。データセンタの利用者は自前で計算資源を用意する必要がなく、必要な時に必要な量の計算資源を仮想的に保有することができるため、計算資源保有のための初期コストを抑えることができる。またデータセンタ提供者は大量の計算資源を集約することで構築コストと運用管理コストを抑えることができる。
近年、データセンタの運用管理コストを抑えるため、また、モジュラー型データセンタと呼ばれる小規模な複数のデータセンタを分散配置する形式のデータセンタの保守コストを抑えるため、耐故障性に優れる計算機ネットワークアーキテクチャが非特許文献1、非特許文献2で提案されている。これらの文献では、従来の木構造ではなく、計算機自身を計算用途としてだけでなくスイッチ用途としても利用するネットワークアーキテクチャが提案されている。
一方、計算機の故障を検知するためには、各計算機から定期的に正常稼働通知情報を特定ノードに送信するハートビートと呼ばれる障害検知機構が利用されている。従来の木構造では、木構造を利用して、特定の管理ノードへ直接ハートビートを送信することができる。しかし、非特許文献1または非特許文献2が提案するような計算機自体をスイッチとして利用する場合には、計算機を経由してハートビートを管理ノードに送信する必要があり、ハートビートの送信に無駄が生じる。また、低消費電力化を目的に非可動計算機の電源を遮断する場合や、計算機に故障が生じた際に、計算機自身がネットワーク資源としての役割を担っているためにネットワークトポロジが動的に変化してしまう。
そのため、これら計算機をスイッチとしても利用するようなネットワークアーキテクチャにおいては、計算機同士で自律的にハートビートネットワーク構築し、適切な障害検知を実施する必要がある。
複数の計算機からなる計算機システムにおける自律的なハートビートネットワーク構築方法として、ゴシップ情報の伝播をモデルとしたゴシップスタイルと呼ばれる情報交換方式が非特許文献3にて提案されている。また、自律的かつ、障害発生時に即座に障害を検知する即時性をもったハートビートネットワーク構築方法として、隣接計算機の隣接計算機を考慮してハートビートを送信する相手を選択する方法が非特許文献4で提案されている。
C. Guo, et.al., "Dcell: a scalable and fault−tolerant network structure for data centers", in Proc. of the ACM SIGCOMM 2008 conference on Data communication, Aug. 17−22, 2008,p.75−86 C. Guo, et.al"BCube: a high performance server centric network architecture for modular data centers", in Proc. of the ACM SIGCOMM conference on Data communication, 16−21, Aug. 2009,p.63−74 R. Renesse, Y. Minsky and M. Hayden, "A Gossip−Style Failure Detection Service", in Proc. of the International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998, p. 55−70 Y. Horita, K. Taura and T. Chikayama, "A Scalable and Efficient Self−Organizing Failure Detector for Grid Applications", in Proc. of the 6th IEEE/ACM International Workshop on Grid Computing, Nov. 2005, p. 202−210
非特許文献3に開示されている方法は、完全にランダムに情報交換の相手を選択してハートビートを送信するため、非常に自律性の高いハートビートネットワークを構築することができる。しかし、この方法は、完全にランダムであるため、情報の確定までに一定の時間を要する。そのため、即時性の観点で課題がある。
非特許文献4に開示されている方法は、自律的かつ即時的である。しかし、情報伝播の完全性のために過剰なハートビートを送受信することになり、ネットワーク負荷が大きくなる課題がある。また、特定のノードにハートビートの送受信が集中する可能性がある。
そこで本発明は、情報処理システム内での、ハートビート送受信によるネットワークへの負荷を抑え且つ平均化することを目的とする。
本発明は、情報処理システム内で互いに接続関係にある各情報処理装置が、自情報処理装置に隣接する情報処理装置の情報を有し、情報処理システム内の情報処理装置の内の少なくとも3つでハミルトン閉路となるネットワークを構成し、該情報に基づいて、該ネットワークへの該隣接する情報処理装置の追加を行うことで、上述の課題を解決する。
本発明により、情報処理システム内での、ハートビート送受信によるネットワークへの負荷を抑え且つ平均化することができる。
計算機(情報処理装置)の構成例を示す機能ブロック図である。 ハミルトン閉路の例図である。 計算機稼働制御方式を説明するための例図である。 データセンタの例を示す図である。 図4に示したデータセンタのネットワークトポロジに対応するグラフ表現の図である。 計算機追加稼働の動作の例を示す図である。 計算機追加稼働の動作の例を示すフローチャートである。 計算機の稼働停止制御の動作の例を示すフローチャートである。 2台以上の計算機を一度に追加して稼働させハミルトン閉路を拡張する場合の例を示す図である。 2台以上の計算機を一度に追加して稼働させハミルトン閉路を拡張することを実現するための計算機構成の例を示す図である。 2台以上の計算機を一度に追加して稼働させハミルトン閉路を拡張する動作の例を示す図である。 2台以上の計算機を一度に追加して稼働させハミルトン閉路を拡張する動作のフローチャートである。 2台以上の計算機を一度に追加して稼働させハミルトン閉路を拡張する動作のフローチャートである。 計算機探索チェーンリストL5の例を示す図である。 データセンタ制御部DC_CTRLの構成例を示す図である。 中央管理型の場合の動作例を示すフローチャートである。 リストL6の例を示す図である。 リストL7の例を示す図である。 リストL8の例を示す図である。 リストL10の例を示す図である。 データセンタ構成の例を示す図である。 使用不可計算機の存在を示す例を示す図である。 使用不可計算機のハートビートネットワークの例を示す図である。 データセンタ内のクラスタ化の例を示す図である。 計算機(情報処理装置)のハードウェア構成例を示す図である。
本発明の具体的実施形態を図面に基づいて詳細に説明する。
互いに接続関係にある複数の計算機(情報処理装置)を備える情報処理システムにおいて、最小のネットワーク負荷かつ、各計算機への負荷が最小かつ平等な全計算機間での情報交換方法を考えると、それは各計算機が1台の相手に情報を送信し、かつ、各計算機が一台の相手から情報を受信する場合である。計算機をノード、情報の送受信関係をエッジとして考えると、それは図2のように全ノードを1度ずつ通る閉路に従い情報交換を行うことである。このような全ノードを1度ずつ通る閉路をグラフ理論ではハミルトン閉路(HC:Hamilton Cycle)と呼ぶ。よって、任意の台数、任意の接続関係を持つ複数の計算機を備える情報処理システムにおいて、最小のネットワーク負荷かつ、各計算機への負荷が最小かつ平等な全計算機間での情報交換を行うには、情報処理システム上の各計算機をノード、計算機間の接続関係をエッジとするグラフ上におけるハミルトン閉路を見つけ、そのハミルトン閉路を利用して情報交換を行えば良い。また、そのハミルトン閉路上の情報交換方法を利用してハートビートネットワークを構成すれば、ネットワーク負荷が最小かつ、各計算機への負荷が最小かつ平等な障害検知機構を構成することが可能である。
しかし、任意のグラフにおけるハミルトン閉路を見つける問題はハミルトン閉路問題と呼ばれ、計算論的に困難な問題であることが知られている。そのため、各計算機の電源投入、電源遮断や計算機の故障などにより動的にネットワークトポロジが変化する条件下において、ネットワークトポロジの変化の際に適時そのネットワークトポロジ上に対応するグラフ上のハミルトン閉路を見つけることは計算量の観点から困難である。特にノード数が多くなると考えられる大規模データセンタにおいてはなおさら困難である。
ここで、任意のグラフからハミルトン閉路を見つけ出すことは難しいものの、現在存在するハミルトン閉路を逐次拡大縮小するための十分条件は容易に考えられ、その十分条件に従って、ハミルトン閉路を逐次拡大縮小することは可能である。つまり、現在のハミルトン閉路上の隣接する2つのノードにエッジを持つノードであれば、そのノードを追加した後に、追加された新たなノードを加えたハミルトン閉路を再構築することは容易である。同様に、現在のハミルトン閉路上のあるノードの2つの隣接ノード間にエッジがあれば、そのノードを除いても新たにハミルトン閉路を再構築することは容易である。
例えば、図3のように、5つのノード1,2,3,4,5が現在のハミルトン閉路HC(1→2→3→4→5→1)を構成している場合、そのハミルトン閉路上の隣接する2つのノード1,5の両方にエッジを持つノード6を追加しても、ノード5からノード1へのエッジE(5→1)をノード6を経由する2つのエッジE(5→6),E(6→1)の2つに繋ぎかえることで容易にノード1,2,3,4,5,6から構成されるグラフ上の新たなハミルトン閉路HC’(1→2→3→4→5→6→1)を構成することが可能である。同様に、現在のハミルトン閉路HC(1→2→3→4→5)において、ノード3はHC上の隣接する2つのノード2,4間にエッジが存在するためノード3を除去しても、ノード3へのハミルトン閉路上の2つのエッジE(2→3)とE(3→4)の2つのエッジをノード3を経由せずに直接E(2→4)で接続することで、新たなハミルトン閉路HC’’(1→2→4→5→1)を構築することが可能である。
本実施例の情報処理システムは、上述のように、任意のネットワークトポロジ上のハミルトン閉路を見つけるのではなく、ハミルトン閉路の拡大縮小によって適時ハミルトン閉路を維持するように計算資源の管理を行う。つまり、本実施例では、新たな計算機を稼働させる際、または計算機を非稼働にする際に、逐次的にハミルトン閉路を容易に拡大または縮小できる計算機を選択することで、稼働中の複数の計算機間にハミルトン閉路を用意し、そのハミルトン閉路を用いて効率的に稼働中の全計算機間で情報交換を行うことを可能にする。さらには、そのハミルトン閉路を用いてハートビートネットワークを構築することで、各計算機は1台の計算機にハートビートを送信し、1台の計算機からのハートビートを受信し、全体としてループを形成することで、ネットワーク負荷が最小かつ、各計算機への負荷が最小かつ平等な障害検知機構を構築する。
図4に、本発明を適用した情報処理システムの例として、データセンタDCを示す。図4のデータセンタDCでは、25台の計算機(情報処理装置)SRVを備えることを想定し、各計算機間に特定の接続関係を想定している。各計算機SRVには、図4に示した識別番号(1〜25)が与えられている。ここで、計算機SRVは、例えばサーバ装置である。また、計算機SRVの台数および接続関係は説明上の例であり、本発明は台数および計算機間の接続関係により限定されない。また、説明を容易にするために、データセンタDC内の管理を行うデータセンタコントローラDC_CTRLおよびクラスタコントローラCL_CTRLがデータセンタDCに含まれるが、同様に、本発明はデータセンタコントローラDC_CTRLおよびクラスタコントローラCL_CTRLを有する構成に限定されない。
今、データセンタDCでは、実線で示された計算機SRV9,10,13,14,15,18,19,20が稼動しており、稼働中の計算機間でハミルトン閉路HC=(10→9→14→13→18→19→20→15→10)が構成され、そのハミルトン閉路上でハートビートネットワークが構築されているものとする。一方で、計算機SRV9,10,13,14,15,18,19,20以外の計算機は非稼動中とする。
ここで、新たな計算機の稼働要求がデータセンタDCに来た場合を考える。新たな計算機の稼働要求としては、データセンタDCの外部からユーザやデータセンタDCの管理者が要求を出す場合、またデータセンタ内部で計算能力の逼迫を検知して新たな計算機を稼働する場合などが考えられる。このような新たな計算機の稼動要求が来た際に、データセンタDCは、ランダムに新たな計算機を選択するのではなく、後述のように、ハミルトン閉路を容易に拡大することが可能な計算機を選択的に追加する。
図5は、図4のデータセンタDCのネットワークトポロジに対応するグラフ表現を示す図である。丸で示したノード内の各数字が、計算機SRVの識別番号に対応する。新たな計算機SRVを追加する際に、その追加する計算機SRVが現在のハミルトン閉路上の隣接する2つのノードの両方にエッジを持つ場合は、容易にハミルトン閉路を拡大再構成することが可能である。図5の場合、ノード5,8,17,24に対応する計算機SRV5,8,17,24が候補として該当する。複数の計算機SRVが追加候補として存在する場合に、起動要求計算機数が1台であれば、データセンタDCは、後述のように、候補の中から適切な評価指標に基づき1台を選出する。
図1に、以上説明したハミルトン閉路の拡大縮小を各計算機が自律分散的に実現することを可能にするための計算機SRVの構成例を機能ブロック図で示す。図6は、図1に示した計算機SRVを有するデータセンタDC内での、各計算機SRVの処理の関係を示す図である。図7は、各計算機SRVの動作を示すフローチャートである。
各計算機SRVは、通常の計算機の要素SRV_BASEに加え、周囲の計算機やコントローラと通信するためのインターフェイスCOM_IF、自身の隣接計算機に関する情報ADJ_SRV_INF、および一連の計算機追加のための手続きを担うノードコントローラNODE_CTRLを有する。
隣接計算機に関する情報ADJ_SRV_INFには、自計算機SRVがどの計算機SRVと隣接であるか、および自計算機SRVに隣接する計算機SRVがどの計算機SRVと隣接であるかを表すリスト情報ADJ_CONと、自計算機SRVに隣接する計算機SRVの稼働、非稼働、および利用状況に関する情報ADJ_ACTと、自計算機SRVに隣接する計算機SRVの故障に関する情報ADJ_FLTと、が含まれる。情報ADJ_ACTが保持する隣接計算機の利用状況とは、その計算機を使用中のユーザ情報であるユーザ識別情報(ID)やグループID、またはアプリケーション情報であるアプリケーションIDである。
リスト情報ADJ_CONは、データセンタの出荷時または構成時に各計算機SRV毎に予め設定しておき、構成変更の際に適時外部から更新する。また、リスト情報ADJ_CONには、予め自計算機SRVがどの計算機SRVと隣接であるかの情報を入れておき、各計算機SRVが、各計算機SRVに隣接する計算機のリスト情報ADJ_CONから、自計算機SRVに隣接する計算機SRVがどの計算機SRVと隣接であるかの情報を入手してリスト情報ADJ_CONに足すようにすることもできる。例えば、計算機SRVが、計算機のハミルトン閉路への追加やハミルトン閉路からの削除のプロセスを実行する際に、自計算機SRVに隣接する計算機SRVがどの計算機SRVと隣接であるかの情報を、隣接する計算機から取り寄せるようにすることができる。また例えば、データセンタDC全体に、該情報を隣接する計算機から取り寄せるトリガとなる信号を放送することで実現することもできる。これにより、データセンタDCの管理者が、リスト情報ADJ_CONの入力に要する労力を大幅に削減できる。情報ADJ_ACTは、隣接計算機が稼働開始、稼働停止、アプリケーション割当、ユーザ割当などのイベント発生時に通知情報を放送することで更新する。情報ADJ_FLTは、故障を検知した計算機SRVが故障情報をデータセンタの計算機に放送することで更新する。
ノードコントローラNODE_CTRLには、現在の最有力候補計算機を示す情報C_CANDと、情報C_CANDを更新する制御部CAND_UPDATEと、追加候補計算機同士を比較評価するための指標EVAL_CRTと、指標EVAL_CRTを用いて評価を行う制御部PRT_EVALと、自身を識別する識別子SRV_IDと、現在のハミルトン閉路情報C_HCと、情報C_HCの更新を行う制御部HC_UPDATEと、自身の隣接計算機の中から追加候補計算機のリストを生成する制御部GEN_CAND_LISTとが含まれる。現在のハミルトン閉路情報C_HCには、ハミルトン閉路の識別情報HCIDと、自計算機が所属するハミルトン閉路に含まれる計算機および計算機の接続の情報と、が含まれる。ハミルトン閉路の識別情報HCIDは、データセンタDCの管理者が与えてもよいし、データセンタDCが自動的に付与してもよい。
図24に、計算機SRVのハードウェア構成例を示す。計算機SRVは、中央処理装置CPU、主記憶装置MEM、ストレージ装置STR、およびネットワークインタフェースNTIFを備える。各装置はバスで接続される。主記憶装置MEMは、ランダムアクセスメモリである。ストレージ装置STRはハードディスクドライブやフラッシュメモリである。図1に示した各制御部による制御についての演算処理や、その他の演算処理は、中央処理装置CPUで実行される。また、図1に示した各制御部のプログラムや各情報は、ストレージ装置STRに保存されて、主記憶装置MEMに取り出されて使用される。ネットワークインタフェースNTIFは、複数の計算機と接続可能であり、計算機SRVはスイッチとして機能することができる。
以下、ハミルトン閉路に計算機を追加する際のデータセンタDCや計算機SRVの動作について説明する。図6、並びに図7の各ステップに沿って説明する。
計算機追加の一連の手続きは、まず計算機追加の要求を送信することが起点となる。計算機追加要求が送信される場合としては、データセンタDCの外部からユーザやデータセンタの管理者が要求を出す場合、またデータセンタDC内部で計算能力の逼迫を検知して新たな計算機を稼働する場合などが考えられる。図6では、要求送信者を起点者Trigとしている。起点者Trigは、計算機追加要求であるノード割当要求と、追加候補計算機同士を比較評価するための指標EVAL_CRTとを含んだメッセージMe1を送信する。
計算機SRVがメッセージMe1を受信すると(ステップS701)、メッセージMe1を受信した計算機SRV(図6ではSRV0)のノードコントローラNODE_CTRLは、まず自計算機のリスト情報ADJ_CONから自計算機SRVに隣接する計算機のリストL1を生成し、リストL1の計算機の中から、情報ADJ_ACTおよび情報ADJ_FLTに基づき計算機を抽出し、正常かつ非稼働中または待機中の計算機のリストL2を生成する(ステップS702)。
次に、メッセージMe1を受信した計算機SRVのノードコントローラNODE_CTRLは、リストL2にある計算機のそれぞれの隣接計算機に対して、現在のハミルトン閉路情報C_HCに基づいて、各隣接計算機が現在のハミルトン閉路上の自身の右、または左隣接計算機と隣接であるかをリスト情報ADJ_CONに基づいて判断し、隣接である計算機のみを抽出したリストL3を生成する(ステップS703)。ここで、左右とは、閉路の左回り、右回りの対に対応するものである。右隣の計算機をリストL3に追加するのか、それとも左隣の計算機をリストL3に追加するのかは、データセンタDC全体で、またはハミルトン閉路毎に予め決めておく。
次に、メッセージMe1を受信した計算機SRVのノードコントローラNODE_CTRLは、リストL3にリストアップされた各計算機をメッセージMe1に含まれて送られてくる評価指標EVAL_CRTに基づき順序付けし、各計算機を順序に並べた新たなリストL4を作成する(S704)。そして、メッセージMe1を受信した計算機SRVのノードコントローラNODE_CTRLは(S705)、順序付けられたリストL4中の計算機から評価値の最良な計算機を現在の最有力候補計算機として情報C_CANDに書き込む(S706)。なお、評価指標EVAL_CRTはデータセンタDCの各計算機の接続情報や、各計算機の稼働状況から計算可能な指標である。例えば、ある計算機に接続する計算機の数(グラフ表現上ではノードの次数)、計算機を利用しているユーザの識別番号、ユーザのグループ識別番号、アプリケーションの識別番号の順とすることが考えられる。
最後に、メッセージMe1を受信した計算機SRVのノードコントローラNODE_CTRLは、現在のハミルトン閉路情報C_HCに基づいて、現在のハミルトン閉路上の右または左隣接計算機に、計算機追加要求であるノード割当要求と、現在の最有力候補計算機の情報C_CANDおよびそれを選出した計算機である自計算機の識別子SRV_IDと、評価指標EVAL_CRTと、を含むメッセージMe2を送信する(S707)。右隣に送信するのか、それとも左隣に送信するのかは、データセンタDC全体で、またはハミルトン閉路毎に予め決めておく。
メッセージMe2を受信した計算機(図6ではSRV1以降)のノードコントローラNODE_CTRLは、メッセージMe1を受信した計算機(図6ではSRV0)と同様にリストL4を作成して自計算機の隣接計算機の中から最有力候補計算機CANDを選出し(ステップS701〜S705)、受信したメッセージMe2にある評価指標EVAL_CRTに基づいて、受信したメッセージMe2にある情報C_CANDが示す現在の最有力候補計算機と比較する(ステップS708)。メッセージMe2を受信した計算機のノードコントローラNODE_CTRLは、自身が選出した最有力候補計算機CANDが現在の最有力候補計算機よりも良い場合は(ステップS709)、情報C_CANDを自身が選出した最有力候補計算機CANDの情報に更新し、現在の最有力候補計算機を選出した計算機を自計算機の識別子SRV_IDに更新する(ステップS710)。
最後に、メッセージMe2を受信した計算機のノードコントローラNODE_CTRLは、現在のハミルトン閉路情報C_HCに基づいて、現在のハミルトン閉路上の隣接計算機に、計算機追加要求であるノード割当要求と、現在の最有力候補計算機の情報C_CANDおよびそれを選出した計算機である自計算機の識別子SRV_IDと、評価指標EVAL_CRTと、をメッセージMe2として送信する(ステップS707)。図6では、計算機SRV1は計算機SRV2に送信する。
上記手順を現在のハミルトン閉路上のすべての計算機において実行すると、最終的にメッセージMe1を受信した計算機(図6では計算機SRV0)まで一巡する。一巡すると、現在最も有力な計算機と、それを選出した計算機が確定する。すなわち、ハミルトン閉路に追加する特定の計算機と、その計算機を選出した計算機が確定する。
最有力候補計算機確定後、データセンタDCは、確定した計算機の起動および、現在のハミルトン閉路情報C_HCの更新を行い、更新された情報に基づいてハミルトン閉路のネットワーク上でハートビート送受信を行う。現在のハミルトン閉路情報C_HCの更新はメッセージMe1を受信した計算機がデータセンタDC全体にハミルトン閉路への計算機の追加の情報をハミルトン閉路の識別情報HCIDと併せて放送することで実現することができる。放送を受信した各計算機の計算機の制御部HC_UPDATEは、受信した識別情報HCIDと現在のハミルトン閉路情報C_HCにある識別情報HCIDを比較して一致すれば、現在のハミルトン閉路情報C_HCを更新する。また、メッセージMe1を受信した計算機がデータセンタDC全体に放送する方法以外にも、例えば、現在のハミルトン閉路を利用して、再度放送内容を巡回させる方法も可能である。
現在のハミルトン閉路情報C_HCの更新を行う際に、その最有力候補計算機を選出した計算機情報を利用する。たとえば、現在のハミルトン閉路が(0→1→2→3→4)の場合に、計算機5を計算機1が選出したとする。その場合、ハミルトン閉路上の右隣接方向にメッセージを流し、右隣接計算機との隣接性を候補選出の基準とした場合、計算機5は計算機1の現在のハミルトン閉路上の右隣接計算機である2との間に挿入され、現在のハミルトン閉路が(0→1→5→2→3→4)に更新される。以上のハミルトン閉路更新依頼を放送することで、各計算機は現在のハミルトン閉路を更新する。また、あらたに稼働する計算機も同様に起動時にハミルトン閉路情報を新たに更新する。
上述のようにメッセージをハミルトン閉路上の右、左隣接のどちらに流すのか、候補リストL3の生成のための右、左隣接のどちらを判断基準にするのかは、予め設定しておく事も可能であり、また、メッセージとして併せて送信することも可能である。
また、メッセージが一巡したことの判定方法はメッセージMe1を受信した計算機に自身が起点であることを示すフラグを持たせる、または、メッセージMe2に起点計算機情報を付加する、などの方法がある。
現在のハミルトン閉路情報C_HCの初期設定は、稼動させる計算機同士の接続がハミルトン閉路を形成するようにデータセンタDCの管理者が設定することができる。3台の計算機を含むハミルトン閉路を管理者が設定すれば、上述のようにハミルトン閉路に計算機を追加させて所望の台数の計算機を稼動させることができる。また、管理者が初期設定する代わりに、隣接計算機に関する情報ADJ_SRV_INFに基づいて、特定の計算機SRVに、互いに隣接する自計算機を含む3台の計算機SRVからなるハミルトン閉路のハミルトン閉路情報C_HCを生成させることもできる。
本実施例のデータセンタDCでは、各計算機SRVの隣接計算機に関する情報ADJ_SRV_INFに、自計算機SRVがどの計算機SRVと隣接であるか、および自計算機SRVに隣接する計算機SRVがどの計算機SRVと隣接であるかを表すリスト情報ADJ_CONが含まれているので、各計算機SRVが、それぞれが有する情報に基づいて最有力候補計算機CANDを選出することができ、図6に示すように単純化されたフローで追加計算機を決定することができる。
次に、上述の計算機の追加稼働とは逆に計算機の電源遮断の場合について説明する。図8は、データセンタDCでの計算機の電源遮断の動作例を示すフローチャートである。
計算機の電源遮断要求がなされる場合としては、アプリケーション終了時に計算機が自身で発行する場合や、外部から電力制限などの制約や、強制終了要求により要求される場合などが想定される。図3にて説明したように、ある計算機の現在のハミルトン閉路上の両端の隣接計算機同士が隣接である場合には、その計算機を電源遮断しても、両端の計算機同士を接続することで電源遮断された計算機を除いた分だけ小さくなったハミルトン閉路を容易に再構築可能である。
図4とそれに対応するグラフ表現図5の場合には、例えば計算機SRV9は現在のハミルトン閉路(15→10→9→14→13→18→19→20→15)上の両端の計算機SRV10,14が隣接であるため電源遮断が可能であり、計算機SRV10と計算機SRV14を接続することにより新たなハミルトン閉路(15→10→14→13→18→19→20→15)を再構築可能である。同様に計算機SRV18は計算機SRV13,19が、計算機SRV20は計算機SRV19,15がそれぞれ隣接であるため電源遮断が可能であり、ハミルトン閉路を容易に再構築可能である。逆に、計算機SRV10,14,13,19,15はアプリケーションが終了してもハミルトン閉路を維持するために電源遮断をしない。
図8は、以上説明した計算機の稼働停止制御の動作の例を示すフローチャートである。計算機SRVが電源遮断要求を受けた際(ステップS801)、ノードコントローラNODE_CTRLが、リスト情報ADJ_CONおよび現在のハミルトン閉路情報C_HCに基づいて自計算機に隣接する計算機のハミルトン閉路上の隣接計算機の隣接性に応じて電源遮断を実行するか、ネットワーク機能を目的に自計算機の稼働を続けるために自計算機を待機状態に遷移するかを判定する(ステップS802〜804)。いずれの状態に遷移する場合であっても、該計算機は、状態遷移する間に周囲の計算機に状態遷移すること、およびハミルトン閉路情報の更新依頼をデータセンタDC内に放送する(S808〜S810)。このように計算機SRVは計算用途だけでなくネットワーク用途にも用いられるために、計算機SRVの状態には、稼働中、非稼働中、故障に加え待機状態が存在する。待機状態はユーザアプリケーションを実行していないが、ネットワーク機能目的として稼働を続けている状態である。情報ADJ_ACTはこのネットワーク機能目的で稼働を続けている待機状態であるかの情報も含む。
待機状態計算機が存在する場合に、計算機の追加稼働要求を受けた際に、新たに新しい計算機を追加するのではなく、待機状態計算機を追加計算機として使用することも本実施例のデータセンタDCでは可能である。例えば、リストL2生成時に非稼働中という制約条件に加え、待機状態である計算機もリストアップするように制約条件を加え、評価指標EVAL_CRTにおいて待機状態である候補計算機が最優先されるように評価指標EVAL_CRTを設定することで実現可能である。ハミルトン閉路の更新の際に全体にハミルトン閉路更新のメッセージを放送して、稼働中のすべての計算機においてハミルトン閉路情報の更新を行うことは前記の追加稼働における状況と同様である。
本実施例に従い計算機の稼働、非稼働を制御することで、複数の計算機から構成される計算機システムにおいて、稼働中のすべての計算機を接続するハミルトン閉路を利用して、稼働中のすべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。
ここで、計算機の稼働、非稼動状態の遷移はオペレータやコントローラが主体的に制御する場合の他に、計算機自身の故障により強制的に非稼動状態に遷移する場合が想定される。そのような計算機の故障によりハミルトン閉路が切れてしまった場合のハミルトン閉路の再構成方法に関して以下に説明する。故障時の対応は図1のノードコントローラNODE_CTRL内の障害制御部FLT_CTRLが担当する。障害制御部FLT_CTRLは3方式のハミルトン閉路の再構成方法を適時適用する。3方式とは縮小、拡大、リフレッシュの3方式である。図4の計算機システムとその稼働状況を想定し、そのグラフ表現である図5を用いて各再構成方式を以下に説明する。
まず、第1の方式である縮小方式について説明する。縮小方式は故障した計算機のハミルトン閉路上の両側の隣接する2台の計算機同士が隣接である場合に適用可能である。この場合、故障した計算機の両側の隣接計算機同士を接続することで故障計算機を除き、新たなハミルトン閉路を容易に再構成することができる。
例えば図5では、計算機SRV18が故障した場合が縮小方式の適用可能な場合である。計算機SRV18のハミルトン閉路上の両側の隣接する2台の計算機SRV13,19は互いに隣接である。よって、計算機SRV13,19を直接結び、元のハミルトン閉路(10→9→14→13→18→19→20→15)を(10→9→14→13→19→20→15)に再構成することができる。故障した計算機上のアプリケーションを引き続き実行したい場合は、適時新たな計算機の稼働を要求することで、再度ハミルトン閉路を適時拡大することが可能である。
障害制御部FLT_CTRLはこの手続を実現するために、情報ADJ_SRV_INF、現在のハミルトン閉路情報C_HCに基づき、ハミルトン閉路上の故障計算機の先の計算機と自身が隣接であるかを判定する。もしも、縮小方式が適用できない場合は次に拡大方式の適用を試みる。例えば、計算機SRV13は現在のハミルトン閉路情報C_HCにより故障計算機SRV18の先の計算機が計算機SRV19であることを判断する。そして、計算機SRV19と自身が隣接であるかは情報ADJ_SRV_INFにより判断することが可能である。計算機SRV19が隣接計算機であれば、情報ADJ_SRV_INFの計算機リストに存在するはずであり、隣接でなければ、情報ADJ_SRV_INFの計算機リストに存在しないからである。
第2の方式である拡大方式は、故障した計算機のハミルトン閉路上の両側の計算機同士が新たに1台の計算機を稼働させ、その計算機を介して連結することが可能な場合に適用可能な方式である。例えば図5では、計算機SRV14が故障した場合が拡大方式の適用可能な場合である。計算機SRV14のハミルトン閉路上の両側の隣接する2台の計算機SRV9,13は計算機SRV8を介して互いに連結である。よって計算機SRV9,13を計算機SRV8を介して接続することで、元のハミルトン閉路(10→9→14→13→18→19→20→15)を(10→9→8→13→19→20→15)に再構成することができる。
拡大方式は自身の隣接計算機の隣接情報のみにより実現可能である。例えば、計算機SRV14が故障した際に、計算機SRV9が拡大方式の実行を担当した場合、自身の隣接計算機SRV8が計算機SRV13と隣接であるかどうかを判定することで実現できる。これは図1の情報ADJ_SRV_INFを利用することで得ることができる情報であり、拡大方式は図1の構成計算機にて実現可能な方式である。
縮小、拡大方式のいずれの方式においても、故障した計算機の代替として新たに稼働開始する計算機にアプリケーションを引き継ぐ場合にはそのアプリケーションが内部状態に依存するようなステートフルなアプリケーションである場合、その状態を適時移動後の計算機にコピーした後、アプリケーションユーザに稼働計算機変更の通知など稼働アプリケーション遷移処理を実行する。内部状態に依存しないステートレスなアプリケーションの場合には、新たな計算機稼働後にアプリケーションの遷移処理を実行する。
なお、縮小、拡大のいずれの方式を優先して行うかはデータセンタ運用者の自由である。
縮小、拡大のいずれの方式でもハミルトン閉路を再構成できない場合にはリフレッシュ方式を適用する。リフレッシュ方式では容易にハミルトン閉路を再構築することを断念して、一度ハミルトン閉路を大きく縮小した後に、再度拡大を試みる。その際になるべく再拡大対象となる計算機台数が少なくなるように、現在のハミルトン閉路を可能な限り最大長で分断する。
図5の例を用いて具体的な手続きを説明する。リフレッシュ方式が適用される状況は計算機SRV10が故障するような場合である。この場合計算機SRV9,15は縮小、拡大方式のいずれでもハミルトン閉路を再構築することができない。そこで計算機SRV15もしくは計算機SRV9、もしくはその両方はリフレッシュ方式の実行を開始する。2台の計算機が同時にリフレッシュ方式の実行をする場合に、両者で合意形成アルゴリズムの実行が必要であることは縮小、拡大方式の場合と同様である。ここでは計算機SRV9がリフレッシュ方式の実行を担うとする。
計算機SRV9の障害制御部FLT_CTRLは、情報ADJ_SRV_INFと現在のハミルトン閉路情報C_HCから得られる現在のハミルトン閉路上の各計算機との隣接性から、それぞれの計算機と自身を結ぶ分断路により現在のハミルトン閉路を分断した場合に、分断後のハミルトン閉路の長さが最長となる分断路と、その時のハミルトン閉路の長さを求める。この例では、計算機SRV9はハミルトン閉路上の計算機SRV14とのみ隣接であるため、閉路を構成できない。よって、計算機SRV9はハミルトン閉路を分断できないため、現在の最良分断路C_DSPとしては空集合φと、現在の最良分断長C_MAXLとして0を、現在のハミルトン閉路上の隣接計算機へ障害対策要求メッセージと併せて送信する。
次に障害対策要求メッセージを受信する計算機SRV14は同様に自身と現在のハミルトン閉路上の計算機との隣接性から、分断後の経路長が最長となるハミルトン閉路の分断路を探索する。計算機SRV14は、故障した計算機SRV10を除くと計算機SRV15,19と隣接であり、計算機SRV15との分断路でハミルトン閉路を分断すると、分断後のハミルトン閉路は(14→13→18→19→20→15→14)となり長さは6であり、計算機19との分断路でハミルトン閉路を分断すると、分断後のハミルトン閉路は(14→13→18→19→14)となり長さ4である。よって計算機SRV14に関しては計算機SRV15との分断路が最長分断長6を生む分断路として選出される。この値は、メッセージとして受信した現在の最長分断長C_MAXLよりも長いため、計算機SRV14の障害制御部FLT_CTRLは最長分断長C_MAXL,現在の最良分断路C_DSPとしてそれぞれ、C_MAXL=6,C_DSP=(14,15)を更新し、これらの値を現在のハミルトン閉路上の隣接計算機に障害対策要求メッセージと併せて送信する。
以下、ハミルトン閉路上の各計算機が順次以上の手続きを実行すると、最終的に故障計算機の隣接計算機に達する。この例の場合は計算機SRV15である。この時点で得られた最長分断長C_MAXLがその状況下で構築可能な最大分断長であり、現在の最良分断路C_DSPがその分断路となる。よって、故障計算機の隣接計算機である計算機SRV15は、決定結果を障害対策メッセージの流れた方向とは逆の方向に適時流し、決定結果を全体に通知する。よってこの例の場合、分断後のハミルトン閉路が長さ6で最長な計算機SRV14と計算機SRV15の分断路が分断路として決定される。また、元のハミルトン閉路の長さ8との差分から、故障した計算機を含めて2台の計算機SRV9,10がハミルトン閉路の分断によりハミルトン閉路上の経路から外れることがわかる。そこで、新たに2台の計算機を新たに稼働させる。新規追加手続きに関しては通常時と同様の手続きである。
また、計算機SRV9,10上で稼動していたアプリケーションのように、ハミルトン閉路の再構築のために稼働計算機が別の計算機に移動する場合、そのアプリケーションが内部状態に依存するようなステートフルなアプリケーションである場合、その状態を適時移動後の計算機にコピーした後、アプリケーションユーザに稼働計算機変更の通知など稼働アプリケーション遷移処理を実行する。内部状態に依存しないステートレスなアプリケーションの場合には、新たな計算機稼働後にアプリケーションの遷移処理を実行する。アプリケーションの遷移完了後、ハミルトン閉路の更新および計算機SRV9,10は稼働停止処理を実行する。
いずれの方式においても、ハミルトン閉路情報の更新が発生するため、ハミルトン閉路の更新依頼メッセージを稼働中の計算機全体に放送して、稼働中のすべての計算機のハミルトン閉路情報を更新する。但し、本案は放送方式の差異により請求範囲の制限は受けない。
以上説明したように、本実施例では、複数の計算機から構成される計算機システムにおいて、すべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。
本実施例では、実施例1よりもさらに柔軟に計算機の追加ができる方式を説明する。
図9は、6台の計算機で構成される計算機システムであり、6台のうち計算機1,2,3,4の4台が稼動しており、計算機5,6が非可動であり、現在のハミルトン閉路がC_HC(1→2→3→4)で構成されている計算機システムの状況をグラフ表現した例を示す図である。
この状況において、新たな計算機の稼働が要求された場合、非稼働中の計算機5,6のいずれも現在のハミルトン閉路の隣接する2つの計算機と隣接ではないため、実施例1の方式では追加することができない。
しかし、計算機5,6を同時に稼働させれば、計算機5,6の計算機グループは現在のハミルトン閉路上の隣接する2台の計算機2,3と隣接であり、かつ計算機5,6も隣接であるため実施例1の考え方同様に容易にハミルトン閉路を拡張することが可能である。例えば、図9の場合は計算機5,6を同時に稼働させることで、現在のハミルトン閉路(1→2→3→4)に計算機5,6を追加して閉路(1→2→5→6→3→4)を新たなハミルトン閉路として拡張可能である。
本実施例2は以上のように、2つ以上の計算機を同時に起動する場合に、容易にハミルトン閉路を拡張することを可能にする計算機の追加方法に関するものであり、図10に実施例2の計算機の構成の例を示す。
各計算機SRVは、通常の計算機の要素SRV_BASEに加え、周囲の計算機やコントローラと通信するためのインターフェイスCOM_IF、データセンタ内の計算機に関する情報DC_SRV_INF、一連の計算機追加のための手続きを担うノードコントローラNODE_CTRLを有する。
データセンタ内の計算機に関する情報DC_SRV_INFは、データセンタ内の各計算機がどの計算機と隣接であるかを表すリスト情報DC_CON、データセンタ内の各計算機の稼働、非稼働、および利用状況に関する情報DC_ACT、データセンタ内の各計算機の故障に関する情報DC_FLTとを含む。情報DC_ACTが保持する隣接計算機の利用状況とは、その計算機を使用中のユーザ情報であるユーザIDやグループID、またはアプリケーション情報であるアプリケーションIDである。
リスト情報DC_CONは、データセンタの出荷時または構成時に各計算機毎に予め設定しておき、構成変更の際に適時外部から更新する。情報DC_ACTは、各計算機が稼働開始、稼働停止、アプリケーション割当、ユーザ割当などのイベント発生時に通知情報を放送することで更新する。情報DC_FLTは故障を検知した計算機が故障情報をデータセンタの計算機に放送することで更新する。
ノードコントローラNODE_CTRLは、現在の最有力候補計算機グループを示す情報C_CANDsおよびそれを更新する制御部CANDs_UPDATEと、追加候補計算機グループ同士を比較評価するための指標EVAL_CRTおよびそれを用いて評価を行う制御部PRT_EVALと、自計算機を識別する識別子SRV_IDと、現在のハミルトン閉路情報C_HCおよびその更新を行う制御部HC_UPDATEと、自身の隣接計算機の中から追加候補計算機グループのリストを生成する制御部GEN_CAND_LISTと、探索長を表す整数値kと、探索している計算機チェーンのリストを表すリストL5(List5)と、を有する。
図11、および図12A,Bの各ステップを用いて、実施例2のデータセンタの動作を説明する。計算機追加の一連の手続きはまず計算機追加の要求を送信することが起点となる。計算機追加要求の送信者はデータセンタの外部からユーザやデータセンタの管理者が要求を出す場合、またデータセンタ内部で計算能力の逼迫を検知して新たな計算機を稼働する場合などが考えられる。図11では、要求送信者を起点者Trigとしている。起点者Trigは、計算機追加要求と併せて、追加候補計算機グループを比較評価数する際の評価指標EVAL_CRTと探索長kをメッセージMe1として送信する。
メッセージMe1を受信した計算機のノードコントローラNODE_CTRLは(ステップS1201)、まずリスト情報DC_CONから隣接計算機リストL1を生成し、リストL1の中から情報DC_ACT,情報DC_FLTに基づき、正常かつ非稼働中、または、待機中の計算機のリストL2を生成し、リストL2を探索計算機チェーンリストL5に書き込む(ステップS1202)。
次に、ノードコントローラNODE_CTRLは、リストL2のそれぞれの隣接計算機に対して、各隣接計算機が現在のハミルトン閉路C_HC上の自身の右、または左隣接計算機と隣接であるかを判断し、隣接である計算機のみを抽出したリストL3を生成する(ステップS1203)。
ここで、リストL3が空集合でない、つまり現在のハミルトン閉路上の隣接計算機と隣接な計算機グループが見つかった場合、または、探索長を表すkが0の場合は、ノードコントローラNODE_CTRLは探索を終了する。もし、リストL3が空集合、つまり現在のハミルトン閉路上の隣接計算機と隣接な計算機グループが見つかっていない、かつ、探索長を表すkが0でない場合、ノードコントローラNODE_CTRLは更にもう1つ先の計算機へ探索範囲を拡大する(ステップS1204)。
探索範囲を拡大する場合、ノードコントローラNODE_CTRLは、探索計算機チェーンリストL5の各計算機リストの最終要素の計算機の隣接計算機リストをリスト情報DC_CONを基に追加しリストL5を更新する(ステップS1205)。ノードコントローラNODE_CTRLは、探索を1つ深める度に探索長kをデクリメントする。リストL5の各要素の最終要素計算機に対して、ノードコントローラNODE_CTRLは、各計算機が現在のハミルトン閉路上の隣接計算機と隣接する計算機のリストL3を生成する(ステップS1206)。ノードコントローラNODE_CTRLは、以上の手続きをリストL3が空集合であり、かつ、探索長kが0で無い間続ける。
探索計算機チェーンリストL5の例を図13に示す。計算機起動要求メッセージを受信した計算機を計算機1とする。計算機1はまず自身の隣接計算機である計算機2,3,4をリストL5としてリストアップする。リストL5の要素、ここでは2,3,4の最終要素、ここでは同様に2,3,4が現在のハミルトン閉路上の隣接計算機と隣接であるかを判定する。もし隣接計算機が見つからず、探索長kが0でない場合には更に探索範囲を1つ進める。ここでは、L5の計算機探索チェーンリストの最終要素計算機2,3,4それぞれの隣接計算機に基づき計算機探索チェーンリストL5を更新する。
図13では計算機2の隣接計算機として計算機5,6が計算機リスト(2,5)(2,6)として生成され、計算機3の隣接計算機として計算機6,7,8が計算機リスト(3,6)(3,7)(3,8)としてリストアップされ、計算機4の隣接計算機として計算機8,9が計算機リスト(4,8)(4,9としてリストアップされ、リストL5が更新される。よって、1段探索範囲を進めた際、リストL5は((2,5),(2,6),(3,6),(3,7),(3,8),(4,8),(4,9))となる。ここで、リストL5中の各要素リストの最終要素、例えば(2,5)の場合は計算機5に関して現在のハミルトン閉路上の隣接計算機との隣接性を判定する。この段階でもリストL3が空であり、かつ、まだ探索長kが0でない場合はさらに探索範囲を進める。その際には、リストL5の各計算機リストの最終要素の隣接計算機を同様に探索計算機チェーンリストとして生成する。例えば、計算機リスト(2,5)の最終要素5の隣接計算機wを追加した(2,5,w)がリストアップされ、計算機wが現在のハミルトン閉路上の隣接計算機への隣接性を判定される。
次に、ノードコントローラNODE_CTRLは、リストL3にリストアップされた各計算機グループをメッセージと併せて送られてくる評価指標に基づき順序付し、順序に並べた新たなリストL4を作成する(ステップS1207)。評価指標はデータセンタの各計算機の接続情報および、各計算機の稼働状況から計算可能な指標である。例えば、ある計算機に接続する計算機の数(グラフ上では次数)、計算機を利用しているユーザの識別番号、ユーザのグループ識別番号、アプリケーションの識別番号などが考えられる。実施例1と異なり、実施例2ではリストL3にリストアップされる要素は1台の計算機の場合だけでなく、複数の計算機から構成される計算機グループである場合を含む。よって、評価指標には追加計算機の数なども含まれる。
起点者Trigから直接計算機起動要求メッセージMe1を受信した計算機SRV0ノードコントローラNODE_CTRLは(ステップS1208)、順序付けられたリストL4中から評価値の最良な計算機グループを現在の最有力候補計算機グループとして情報C_CANDsに書き込む(ステップ1209)。最後に、ノードコントローラNODE_CTRLは、現在のハミルトン閉路上の右または左隣接計算機に、計算機追加要求、現在の最有力候補計算機グループの情報C_CANDsおよびそれを選出した計算機である自計算機の識別子SRV_IDと、評価指標EVAL_CRTと、をメッセージMe2として送信する(ステップ1210)。
メッセージMe2を受信した計算機のノードコントローラNODE_CTRLは、メッセージMe1を受信した計算機と同様の手続きにより自身の隣接計算機の中から最有力候補計算機グループCANDsを選出し、現在の最有力候補計算機グループと比較する(ステップS1211)。ノードコントローラNODE_CTRLは、自身が選出した最有力候補計算機グループCANDsが現在の最有力候補計算機グループよりも良い場合(ステップS1212)は、情報C_CANDsをCANDsに更新し(ステップS1213)、現在の最有力候補計算機グループを選出した計算機を自身の識別子に更新する。最後に、ノードコントローラNODE_CTRLは、C_CANDs,CANDsの大小関係によらず、現在のハミルトン閉路上の隣接計算機に、計算機追加要求と、現在の最有力候補計算機グループの情報C_CANDsおよびそれを選出した計算機である自計算機の識別子SRV_IDと、評価指標EVAL_CRTと、をメッセージMe2として送信する(ステップS1210)。
上記手順を現在のハミルトン閉路上のすべての計算機において実行すると、最終的にメッセージMe1を受信した計算機まで一巡する。この時点で、現在最も有力な計算機グループと、それを選出した計算機が確定する。
最有力候補計算機グループ確定後、確定した計算機の起動および、現在のハミルトン閉路の更新を行う。現在のハミルトン閉路の更新を行う際に、その最有力候補計算機グループを選出した計算機情報を利用する。たとえば、現在のハミルトン閉路C_HCが(0→1→2→3→4)の場合に、計算機グループ(5、6,7)を計算機1が選出したとする。その場合、ハミルトン閉路上の右隣接方向にメッセージを流し、右隣接計算機との隣接性を候補選出の基準としている場合、計算機5は計算機1の現在のハミルトン閉路上の右隣接計算機である2との間に挿入され、現在のハミルトン閉路C_HCが(0→1→5→6→7→2→3→4)に更新される。ハミルトン閉路を稼働中の計算機全体へ放送することですべての稼働中の計算機でハミルトン閉路情報を更新すること、及び新たに稼働する計算機にも放送することで全稼働計算機でハミルトン閉路情報を更新することに関しては実施例1同様である。
メッセージをハミルトン閉路上の右、左隣接のどちらに流すのか、候補リストL3の生成のための右、左隣接のどちらを判断基準にするのかは、予め設定しておく事も可能であり、メッセージとして併せて送信することも可能である。また、メッセージが一巡したことの判定方法はメッセージMe1を受信した計算機に自身が起点であることを示すフラグを持たせる、または、メッセージMe2に起点計算機情報を付加する、などの方法が考えられる。
電源遮断による計算機の稼働停止に関しては実施例1と同様の手続きである。
本実施例では1台の追加起動要求に対して、ハミルトン閉路を拡張する目的で複数の計算機が起動される場合が生じ、それらハミルトン閉路拡張のための起動される計算機はアプリケーションを実行しない待機状態となる場合が存在する。そのため、本実施例では、計算機の状態が稼働中、非稼働中、故障に加え待機状態が存在する。待機状態はユーザアプリケーションを実行していないが、ネットワーク機能目的として稼働を続けている状態である。情報DC_ACTはこのネットワーク機能目的で稼働を続けている待機状態であるかの情報も含む。
待機状態計算機が存在する場合に、実施例1同様に、計算機の追加稼働要求を受けた際に、新たに計算機を追加するのではなく、待機状態計算機を追加計算機として使用することも本実施例のデータセンタでは実現可能である。例えば、リストL2生成時に非稼働中という制約条件に加え、待機状態である計算機もリストアップするように制約条件を加え、評価指標EVAL_CRTに待機状態である候補計算機が最優先されるように評価指標EVAL_CRTを設定することで実現可能である。
以上の手続きにより、複数の計算機から構成される計算機システムにおいて、すべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。
本実施例に従い計算機の稼働、非稼働を制御することで、複数の計算機から構成される計算機システムにおいて、稼働中すべての計算機を接続するハミルトン閉路を利用して、稼働中のすべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。
しかし、実施例1同様に、計算機の稼働、非稼動状態の遷移はオペレータやコントローラが主体的に制御する場合の他に、計算機自身の故障により強制的に非稼動状態に遷移する場合が想定される。そのような計算機の故障によりハミルトン閉路が切れてしまった場合のハミルトン閉路の再構成方法に関して説明する。
本実施例では、大きくは3方式のハミルトン閉路の再構成方法を開示する。3方式とは縮小、拡大、リフレッシュの3方式である。なお、縮小に関しては実施例1と同様な手続きとなる。以下、図4の計算機システムとその稼働状況を想定し、そのグラフ表現である図5を用いて各再構成方式を説明する。
第1の方式である縮小方式に関しては実施例1と同様なため説明を省略する。
第2の方式である拡大方式は基本的には実施例1で開示される拡大方式と類似する方式である。但し、本実施例では、図10のように各計算機が1隣接だけでなく、データセンタ内のすべての計算機に関する隣接関係を情報DC_SRV_INFを介して得られることを利用して、新たに稼働させる計算機を1台ではなく、最大k台まで許容する。本方式をk拡大方式と呼ぶ。この場合、図10の探索長kをk拡大方式の探索長として利用する。kの値はデータセンタの構成または、出荷時に予めポリシーとして内部記憶に保持しておき、故障発生時にkに書き込む場合、もしくは故障検知時にデータセンタ外部またはデータセンタ内部のコントローラからkに値を書込む場合が想定される。
例えば図5の場合、計算機13が故障した場合がk拡大方式の適用状況である。計算機13が故障した場合、そのハミルトン閉路上の両側の隣接計算機14,18は互いに隣接ではなく、かつ、1台の新たな計算機を介しても連結ではない。そのため縮小、実施例1の拡大方式ではハミルトン閉路を再構築することができない。しかし、計算機8,12,17の3台の計算機を介することで計算機14,18は連結となることができる。よって、計算機8,12,17の3台を新たなに稼働させ、計算機14,18をこれら3台の計算機を介して接続することで、元のハミルトン閉路(10→9→14→13→18→19→20→15)を(10→9→14→8→12→17→18→19→20→15)に再構成することができる。
図10の計算機において、故障制御部FLT_CTRLが情報DC_SRV_INFに基づきk台先の連結計算機の隣接関係を知ることができるため、与えられるkの値に基づき適時探索範囲を適時広げながら、k台以下の計算機を新たに稼働させることでハミルトン閉路を再構成することができる。例えば図5の計算機13が故障した際に、計算機14がハミルトン閉路の再構築を担う場合を想定する。ハミルトン閉路の再構築は計算機14ではなく、もう一方の隣接計算機である計算機18が担うことも可能であり、また両者が同時に担うことも可能である。ただし、計算機14,18の2台の両方が同時に担う場合には、実行の冗長性は得られるものの、両者間で合意形成アルゴリズムを実行する必要がある。
計算機14はまず自身の1隣接計算機のうち非稼働中の計算機8が計算機18と隣接であるかどうかを判定する。この場合計算機8は計算機18と非隣接であるため、kの値が1つデクリメントし、kが0でなければ更に一つ先の連結計算機との隣接性を判定する。ここでは計算機8の1つ先の計算機である計算機7,12が候補であり、計算機7,12と計算機18との隣接性を判定する。ここでも、計算機7,12は計算機18と隣接ではないため、kの値を1つデクリメントし、kが0でなければ更に1つ先の連結計算機との隣接性を判定する。ここではさらに、計算機7,12それぞれの隣接計算機である計算機1,2,3,6、11,17と計算機18との隣接性を判定する。ここで、計算機17が計算機18と隣接であることがわかる。そこで計算機14は稼働計算機リストとして、計算機8,12,17を稼働させることを判断し、該当計算機を稼働させる。
計算機14は計算機18に到達するまでの計算機リストの順序を記憶しておく。例えば、計算機14は計算機リスト(8、12,17)の順番で計算機18との連結性を確保できることを判定する。そのために、探索の際には上述の実施例2同様に探索計算機チェーンリストL5を利用する。
また、同じ探索長で複数の経路が候補として選出された場合は、上述の実施例2同様に優先度判定基準EVAL_CRTの利用が可能である。基準EVAL_CRTはデータセンタ構成および出荷時に予め設定しておく、または、計算機故障イベント発生時に外部または内部のコントローラが設定するいずれも可能である。
なお、縮小、拡大のいずれの方式を優先して行うかはデータセンタ運用者の自由である。
縮小、拡大のいずれの方式でもハミルトン閉路を再構成できない場合にはリフレッシュ方式を適用する。リフレッシュ方式では容易にハミルトン閉路を再構築することを断念して、一度ハミルトン閉路を大きく縮小した後に、再度拡大を試みる。その際になるべく再拡大対象となる計算機台数が少なくなるように、現在のハミルトン閉路を可能な限り最大長で分断する。
図5の例を用いて具体的な手続きを説明する。リフレッシュ方式が適用される状況は計算機10が故障するような場合である。この場合計算機9,15は縮小、拡大方式のいずれでもハミルトン閉路を再構築することができない。そこで計算機15もしくは計算機9、もしくはその両方はリフレッシュ方式の実行を開始する。2台の計算機が一度にリフレッシュ方式の実行をする場合に、両者で合意形成アルゴリズムの実行が必要であることは縮小、拡大方式の場合と同様である。ここでは計算機9がリフレッシュ方式の実行を担うとする。
図10で例示される実施例2の計算機構成は実施例1の計算機構成の例図である図1を内包する関係にある。そのため、本実施例でも実施例1同様に実施例1で説明したメッセージ通信に基づく手続きによりリフレッシュ動作を実行可能である。しかし、図10の構成では、各計算機がデータセンタ内のすべての計算機の隣接関係情報を保持しているため、メッセージ通信をせずとも、1台の計算機が同様の手続きを実行可能である。この場合、計算機9が同様の手続きを担当する。
計算機9は現在のハミルトン閉路上の各計算機に対して、それぞれの計算機がハミルトン閉路を分断する場合にもっとも経路長を長く分断できる分断長とその際の分断路を探索する。この例では、計算機9はハミルトン閉路上の計算機14とのみ隣接であるため、閉路を構成できない。計算機14は故障した計算機10を除くと計算機15,19と隣接であり、計算機15との分断路でハミルトン閉路を分断すると、分断後のハミルトン閉路は(14→13→18→19→20→15→14)となり長さは6であり、計算機19との分断路でハミルトン閉路を分断すると、分断後のハミルトン閉路は(14→13→18→19→14)となり長さ4である。よって計算機14に関しては計算機15との分断路が最長分断長6を生む分断路として選出される。同様に計算機13は計算機19との分断路により長さ3のハミルトン閉路を構成でき、計算機18、20は計算機9同様に閉路を構成できず、計算機19は計算機14との分断路により長さ4のハミルトン閉路を構成でき、計算機15は計算機14との分断露により長さ6の分断路を構成できる。よってこの場合、分断後のハミルトン閉路最長である計算機14と計算機15の分断路が最長分断路C_DSPとして決定され、その時のハミルトン閉路の長さがC_MAXL=6として決定される。また、元のハミルトン閉路の長さ8との差分から、故障した計算機を含めて2台の計算機9,10がハミルトン閉路の分断によりハミルトン閉路上の経路から外れることがわかる。そこで、新たに2台の計算機を新たに稼働させる。この新規の稼働に関しては実施例1,2と同様の方法により、ハミルトン閉路を適時拡大することが可能である。
また、計算機9,10上で稼動していたアプリケーションのように、ハミルトン閉路の再構築のために稼働計算機が別の計算機に移動する場合、そのアプリケーションが内部状態に依存するようなステートフルなアプリケーションである場合、その状態を適時移動後の計算機にコピーした後、アプリケーションユーザに稼働計算機変更の通知など稼働アプリケーション遷移処理を実行する。内部状態に依存しないステートレスなアプリケーションの場合には、新たな計算機稼働後にアプリケーションの遷移処理を実行する。アプリケーションの遷移完了後、ハミルトン閉路の更新および計算機9,10は稼働停止処理を実行する。
いずれの方式においても、ハミルトン閉路情報の更新が発生するため、ハミルトン閉路の更新依頼メッセージを稼働中の計算機全体に放送して、稼働中のすべての計算機のハミルトン閉路情報を更新する。この手続に関しては実施例1,2と同様の手続きである。
実施例1,2では各計算機がメッセージ通信を用いて自律分散的に協調動作することで、計算機の新規稼働、停止を制御し、障害時の対応を実現する。しかし、同様のことは中央集権型な方式でも実現可能である。例えば、図4のデータセンタ制御部DC_CTRLが同様の計算機の新規稼働、停止を制御し、障害時の対応を制御することが可能である。
データセンタ制御部DC_CTRLにより制御を行う場合のデータセンタ制御部DC_CTRLの構成を図14に示す。データセンタ制御部DC_CTRLは図10の計算機の構成と類似した構成となる。
データセンタ制御部DC_CTRLはデータセンタ内の計算機と通信するためのインターフェイスCOM_IF、データセンタ内の計算機に関する情報DC_SRV_INF、一連の計算機追加のための手続きを担うノードコントローラNODE_CTRLを有する。データセンタ制御部DC_CTRLはインターフェイスCOM_IFを介して、直接または間接的にデータセンタ内の各計算機と通信可能であり、各計算機の稼働、停止を制御することができる。
データセンタ内の計算機に関する情報DC_SRV_INFは、データセンタ内の各計算機がどの計算機と隣接であるかを表すリスト情報DC_CON、データセンタ内の各計算機の稼働、非稼働、および利用状況に関する情報DC_ACT、およびデータセンタ内の各計算機の故障に関する情報DC_FLTを含む。情報DC_ACTが保持する隣接計算機の利用状況とは、その計算機を使用中のユーザ情報であるユーザIDやグループID、またはアプリケーション情報であるアプリケーションIDである。
リスト情報DC_CONはデータセンタの出荷時または構成時に各計算機毎に予め設定しておき、構成変更の際に適時外部から更新する。情報DC_ACTは各計算機が稼働開始、稼働停止、アプリケーション割当、ユーザ割当などのイベント発生時に更新する。情報DC_FLTは故障を検知した計算機がデータセンタ制御部DC_CTRLに故障検出を通知することで更新する。
ノードコントローラNODE_CTRLは現在の最有力候補計算機グループを示す情報C_CANDsおよびそれを更新する制御部CANDs_UPDATEと、追加候補計算機グループ同士を比較評価するための評価指標EVAL_CRTおよびそれを用いて評価を行う制御部PRT_EVALと、現在のハミルトン閉路情報C_HCおよびその更新を行う制御部HC_UPDATEと、データセンタ内の計算機の中から追加候補計算機グループのリストを生成する制御部GEN_CAND_LISTと、探索長を表す整数値kと、探索している計算機チェーンのリストを表すリストL10(List10)とを含む。評価指標EVAL_CRT、および探索長kはデータセンタの構成時、または出荷時に予め設定しておき、適時必要に応じて外部から更新することで所望の比較指標を使用する。
計算機追加の一連の手続きはまず計算機追加の要求を送信することが起点となる。計算機追加要求の送信者はデータセンタの外部からユーザやデータセンタの管理者が要求を出す場合、またデータセンタ内部で計算能力の逼迫を検知して、データセンタ制御部DC_CTRL自身が新たな計算機を稼働要求を発行する場合が考えられる。
データセンタ制御部DC_CTRLによる中央集権型の計算機追加手続きのフローチャートを図15に示す。
まずデータセンタ制御部DC_CTRLは、リスト情報DC_CONから現在のハミルトン閉路上の計算機毎にその計算機と隣接な計算機のリストのリストL6を生成し(ステップS1501)、リストL6の中から情報DC_ACT,情報DC_FLTに基づき、正常かつ非稼働中、または、待機中の計算機のリストL7を生成し、リストL7を探索計算機チェーンリストL10に書き込む(ステップS1502)。図4およびそのグラフ表現である図6の場合におけるリストL6,L7をそれぞれ図16、17に示す。
次に、リストL7の各計算機の隣接計算機に対が、各隣接計算機が現在のハミルトン閉路C_HC上の右、または左隣接計算機と隣接であるかを判断し、隣接である計算機のみを抽出したリストL8を生成する(ステップS1503)。図17のリストL7からリストL8を生成した場合の例を図18に示す。
ここで、リストL8が空集合でない、つまり現在のハミルトン閉路上の隣接計算機と隣接な計算機グループが見つかった場合、または、探索長を表すkが0の場合は探索を終了する。もし、リストL8が空集合、つまり現在のハミルトン閉路上の隣接計算機と隣接な計算機グループが見つかっていない、かつ、探索長を表すkが0でない場合更にもう1つ先の計算機へ探索範囲を拡大する(ステップS1504)。
探索範囲を拡大する場合、探索長kをデクリメントし、探索計算機チェーンリストL10の各計算機リストの最終要素の計算機の隣接計算機リストの内、非稼働中もしくは待機中の計算機のリストをリスト情報DC_CONを基に追加しリストL10を更新する(ステップS1505)。図18のリストL8は空集合ではないが、例示のために、リストL10を1ステップ更新した場合のリストL10を図19に示す。リストL10の各要素の最終要素計算機に対して、各計算機が現在のハミルトン閉路上の隣接計算機と隣接する計算機のリストL8を生成する(ステップS1506)。以上の手続きをリストL8が空集合であり、かつ、探索長kが0で無い間続ける。
次に、リストL8にリストアップされた各計算機グループを評価指標EVAL_CRTに基づき順序付し、順序に並べた新たなリストL9を作成する(ステップS1507)。評価指標はデータセンタの各計算機の接続情報および、各計算機の稼働状況から計算可能な指標である。例えば、ある計算機に接続する計算機の数(グラフ上では次数)、計算機を利用しているユーザの識別番号、ユーザのグループ識別番号、アプリケーションの識別番号などが考えられる。また、評価指標には追加計算機の数なども含まれる。
データセンタ制御部DC_CTRLは順序付けられたリストL9中から評価値の最良な計算機グループを最有力候補計算機グループとして情報C_CANDsに書き込み、その計算機を追加起動計算機グループとして決定する。
追加起動計算機グループ確定後、確定した計算機の起動および、現在のハミルトン閉路の更新を行う。ハミルトン閉路の更新は追加起動計算機グループと現在のハミルトン閉路情報C_HC,データセンタ内の計算機の接続関係情報DC_SRV_INFの情報に基づき実行される(ステップS1508)。
電源遮断による計算機の稼働停止は実施例1,2と同様の手続きである。
このように本実施例の場合では1台の追加起動要求に対して、ハミルトン閉路を拡張する目的で複数の計算機が起動される場合が生じ、それらハミルトン閉路拡張のための起動される計算機はアプリケーションを実行しない待機状態となる場合が存在する。そのため、本願では計算機の状態が稼働中、非稼働中、故障に加え待機状態が存在する。待機状態はユーザアプリケーションを実行していないが、ネットワーク機能目的として稼働を続けている状態である。情報DC_ACTはこのネットワーク機能目的で稼働を続けている待機状態であるかの情報も含む。
待機状態計算機が存在する場合に、実施例1、2同様に、計算機の追加稼働要求を受けた際に、新たに計算機を追加するのではなく、待機状態計算機を追加計算機として使用することも本実施例で開示する技術により実現可能である。例えば、評価指標EVAL_CRTに待機状態である候補計算機が最優先されるように評価指標EVAL_CRTを設定することで実現可能である。
以上の手続きにより、複数の計算機から構成される計算機システムにおいて、すべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。
本実施例に従い計算機の稼働、非稼働を制御することで、複数の計算機から構成される計算機システムにおいて、稼働中すべての計算機を接続するハミルトン閉路を利用して、稼働中のすべての計算機間で効率的に情報交換を実施することが可能となる。この情報交換方法に基づきハートビートネットワークを構築することで、効率的な障害検知機構を構築することができる。しかし、実施例1、2同様に、計算機の稼働、非稼動状態の遷移はオペレータやコントローラが主体的に制御する場合の他に、計算機自身の故障により強制的に非稼動状態に遷移する場合が想定される。
そのような計算機の故障によりハミルトン閉路が切れてしまった場合のハミルトン閉路の再構成方法に関しての障害対応方式は実施例1,2同様に3方式がある。
3つの縮小、拡大、リフレッシュ方式いずれに関しても実施例1,2で開示される方式を本実施例の中央集権型にも適用可能である。具体的には縮小、拡大方式では故障計算機の隣接計算機が担当していた障害対応手続きと同様の手続きをデータセンタ制御部DC_CTRLが実行すれば良い。また、リフレッシュ方式に関しても実施例2のリフレッシュ方式にて開示している、メッセージ通信を用いずに、故障計算機の隣接する1台の計算機が実行する障害対応手続きと同様の手続きをデータセンタ制御部DC_CTRLが実行すれば良い。
以上の一連の手続きにより、データセンタ制御部DC_CTRLによる中央集権型制御方法により、実施例1,2,と同様の要求を実現することが可能である。
データセンタを運用しているといずれ計算機の故障が生じる。それら故障計算機がメンテナンスにより取り替えられない限り、その故障はデータセンタ内に蓄積する。
故障が蓄積すると、データセンタ内に複数存在する計算機がクラスタ化される可能性がある。また、上述の方式に従い新規に計算機を稼働させる際にハミルトン閉路の拡張を制約として考える場合、使用されない計算機が存在する可能性がある。
例えば、図20のような16台の計算機および3台の管理計算機とその接続関係からなるデータセンタを考える。管理計算機とはデータセンタ内の計算機の運用管理だけでなく、データセンタ内と外のインターフェイスであるゲートウェイなどもここでは含むものとする。
データセンタには複数の計算機が存在するが、そのすべてが管理計算機やゲートウェイと接続することはなく、図20のように一部の計算機を介して接続する場合がある。そのような場合において、それら管理計算機やゲートウェイへの接続点(ハブ)となる計算機は他の計算機とは接続上の意味がその他の計算機とは異なる。図20の例では計算機SRV1,SRV2の計算機がそのような計算機である。
ここで故障が蓄積し、図20のデータセンタが図21のような構成に縮退した場合を考える。図21のようになった場合、計算機SRV3,SRV4はハミルトン閉路の構成要素とは成り得ない。そのため、例え計算機SRV3,SRV4が故障していない状況でも、実施例1,2,3の稼働制御方式に従うと計算機SRV3,SRV4は稼働することはない。
また、管理計算機やゲートウェイへの連結性が完全に切れた計算機SRV6、SRV7のような計算機はアプリケーションを実行してもその結果をデータセンタの外とやり取りすることができないため使用することができない。
そのため実施例1、2,3の稼働制御方式では、故障していない計算機を使用できない場合が存在するため、データセンタの効率の観点で非効率となる場合が存在する。
データセンタ制御部DC_CTRLは使用不可となる計算機の存在を管理して、使用優先度の異なる計算機が存在するとして、計算機の稼働を制御する。図14のようにデータセンタ制御部DC_CTRLが情報DC_SRV_INFを保持する場合、データセンタ制御部DC_CTRLはデータセンタ内の各計算機それぞれの接続関係を把握可能である。よって、計算機SRV3のように、グラフ表現において、次数が1となるような計算機を検出可能である。次数が1の計算機はハミルトン閉路の要素となることは不可能である。また、計算機SRV4のように計算機SRV3のような次数1の計算機から構成される木への接続辺を除いた時に、次数が1の計算機も同様にハミルトン閉路の要素とは成り得ず、データセンタ制御部DC_CTRLはこのような計算機も検出可能である。このようなハミルトン閉路の要素となりえない計算機を検出するとデータセンタ制御部DC_CTRLはその計算機の優先度を他の計算機よりも下げる。具体的には情報DC_SRV_INFの情報DC_FLTにその情報を書き込む。
実施例1,2,3の計算機追加方式に従い計算機の追加が可能な限り、このように重要度が低下した計算機の追加は行われない。しかし、実施例1、2,3の方式でこれ以上計算機の追加が不可能となった場合には、重要度が低下した計算機の使用を開始する。ただし、このような計算機はハミルトン閉路を構成することができないため、実施例1,2,3の方式で構築される通常のハートビートネットワークによる障害検知機構とは異なる障害検知機構が必要となる。具体的には計算機SRV3,SRV4のような計算機は各自が現在存在するハミルトン閉路の最も近い計算機への最短経路上の隣接計算機にハートビートを打つ様にする。
図21の計算機SRV3,SRV4の場合、計算機SRV5が計算機SRV3,SRV4それぞれの現在のハミルトン閉路上の計算機に最も近い計算機である。そのため、計算機SRV4は計算機SRV5へハートビートを打ち、計算機SRV3は計算機SRV5への最短経路上の隣接計算機である計算機SRV4にハートビートを打つ。
また、例えば図22のように7台の通常の計算機がハミルトン閉路を構成している状況で、優先度の低い計算機SRV2,3,4,5,6が稼働している状況を考える。この時、優先度の低い計算機SRV2,3,4,5,6の現在のハミルトン閉路上の最も近い計算機は計算機SRV1である。したがって、各計算機は計算機SRV1への最短経路上の隣接計算機へ図22のようにハートビートを打つ。
このようにすることで、例えば、計算機SRV2が故障した場合にはその故障を計算機SRV1が検知することが可能であり、その情報を基に、計算機SRV3,4,5,6が計算機SRV1との連結性が断たれ、使用ができなくなることをデータセンタ制御部DC_CTRLは判断可能であり、それらを稼働中の計算機としてではなく、使用不可な計算機として管理することが可能である。同様に、計算機SRV4が故障した場合にはその故障を計算機SRV2が検知することができ、その情報を基に、計算機SRV5,6を使用不可計算機としてデータセンタ制御部DC_CTRLは管理可能である。
また、図21同様に故障が蓄積すると、内部が複数の計算機グループにクラスタ化される状況が発生する。そこで、データセンタ制御部DC_CTRLは管理計算機またはゲートウェイへの連結度、またはハブとなる計算機への連結度に基づき各計算機のデータセンタ内のクラスタ化を管理する。
連結度が2よりも小さい場合、1台の計算機が故障した際に管理計算機などへの通信路が完全に遮断される可能性がある。そのためデータセンタ制御部DC_CRTLは各管理計算機またはゲートウェイおよびそのハブとなる計算機への連結度が2以上である計算機グループを1つのクラスタとして管理する。そして、各クラスタ毎に実施例1,2,3の方式に従いハミルトン閉路を構成、管理する。例えば、図21同様に故障が蓄積した場合、図23のようにハブとなる計算機である計算機SRV1,SRV2への連結度に基づきクラスタCl1およびクラスタCl2を管理する。
同じユーザ、同じアプリケーションは通信する可能性が高いため、なるべく同じクラスタに割当たるように計算機の起動を管理する。そのため、各クラスタで稼働中の計算機上のユーザ、アプリケーション情報を情報DC_SRV_INFの情報DC_ACTに基づき判定し、どちらのクラスタに割り当てるのかを判定する。
以上のように、本実施例が開示するデータセンタ制御部DC_CTRLによる内部計算機の管理、およびそのクラスタ管理を実施例1,2,3と同時に適用することで、より効果的にデータセンタ内の計算機を利用することが可能となる。
SRV:計算機SRV、SRV_BASE:通常の計算機の要素、COM_IF:インターフェイス、ADJ_SRV_INF:自身の隣接計算機に関する情報、NODE_CTRL:ノードコントローラ、Me1:メッセージ、Me2:メッセージ。

Claims (10)

  1. 接続関係にある複数の情報処理装置を備え、
    各情報処理装置が自情報処理装置に隣接する情報処理装置の情報を有し、
    前記複数の情報処理装置の内の少なくとも3つでハミルトン閉路となるネットワークを構成し、
    前記ハミルトン閉路を構成する前記情報処理装置のうち第1情報処理装置が、前記ハミルトン閉路への情報処理装置の追加要求を受信すると、
    前記第1情報処理装置は、前記情報に基づいて、前記第1情報処理装置と隣接し、かつ、前記第1情報処理装置とハミルトン閉路上で隣接する情報処理装置とも隣接する第2情報処理装置を前記ネットワークへ追加することを特徴とする情報処理システム。
  2. 請求項1に記載の情報処理システムにおいて、
    前記情報には、さらに、前記隣接する情報処理装置に隣接する情報処理装置の情報が含まれることを特徴とする情報処理システム。
  3. 請求項2に記載の情報処理システムにおいて、
    前記ハミルトン閉路を構成する前記情報処理装置のうち第3情報処理装置が電源遮断要求を受信すると、
    前記情報に基づいて、前記第3情報処理装置と前記ハミルトン閉路上で隣接する第4情報処理装置と、前記第1情報処理装置と前記ハミルトン閉路上で隣接する第5情報処理装置とが、隣接する場合、前記第3情報処理装置の電源遮断し、
    前記第4情報処理装置と前記第5情報処理装置とが隣接しない場合、前記第3情報処理装置を待機させることを特徴とする情報処理システム。
  4. 請求項1に記載の情報処理システムにおいて、
    前記ネットワークハートビートネットワークであることを特徴とする情報処理システム。
  5. 請求項1に記載の情報処理システムにおいて、
    前記情報処理装置はサーバ装置であることを特徴とする情報処理システム。
  6. 接続関係にある複数の情報処理装置を準備し、
    各情報処理装置に自情報処理装置に隣接する情報処理装置の情報を与え、
    前記複数の情報処理装置の内の少なくとも3つでハミルトン閉路となるネットワークを構成し、
    前記ハミルトン閉路を構成する前記情報処理装置のうち第1情報処理装置が、前記ハミルトン閉路への情報処理装置の追加要求を受信すると、
    前記情報に基づいて、前記第1情報処理装置と隣接し、かつ、前記第1情報処理装置とハミルトン閉路上で隣接する情報処理装置とも隣接する第2情報処理装置を前記ネットワークへ追加することを特徴とする情報処理システムの運用管理方法。
  7. 請求項6に記載の情報処理システムの運用管理方法において、
    前記情報には、さらに、前記隣接する情報処理装置に隣接する情報処理装置の情報が含まれることを特徴とする情報処理システムの運用管理方法。
  8. 請求項7に記載の情報処理システムの運用管理方法において、
    前記ハミルトン閉路を構成する前記情報処理装置のうち第3情報処理装置が電源遮断要求を受信すると、
    前記情報に基づいて、前記第3情報処理装置と前記ハミルトン閉路上で隣接する第4情報処理装置と、前記第1情報処理装置と前記ハミルトン閉路上で隣接する第5情報処理装置とが、隣接する場合、前記第3情報処理装置の電源遮断し、
    前記第4情報処理装置と前記第5情報処理装置とが隣接しない場合、前記第3情報処理装置を待機させることを特徴とする情報処理システムの運用管理方法。
  9. 請求項6に記載の情報処理システムの運用管理方法において、
    前記ネットワークハートビートネットワークであることを特徴とする情報処理システムの運用管理方法。
  10. 請求項6に記載の情報処理システムの運用管理方法において、
    前記情報処理装置はサーバ装置であることを特徴とする情報処理システムの運用管理方法。
JP2015505189A 2013-03-15 2013-03-15 情報処理システム、および情報処理システムの運用管理方法 Expired - Fee Related JP5887462B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057347 WO2014141459A1 (ja) 2013-03-15 2013-03-15 情報処理システム、および情報処理システムの運用管理方法

Publications (2)

Publication Number Publication Date
JP5887462B2 true JP5887462B2 (ja) 2016-03-16
JPWO2014141459A1 JPWO2014141459A1 (ja) 2017-02-16

Family

ID=51536154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505189A Expired - Fee Related JP5887462B2 (ja) 2013-03-15 2013-03-15 情報処理システム、および情報処理システムの運用管理方法

Country Status (2)

Country Link
JP (1) JP5887462B2 (ja)
WO (1) WO2014141459A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240077869A1 (en) 2021-01-15 2024-03-07 Nippon Telegraph And Telephone Corporation Control apparatus, hamiltonian cycle extension apparatus, these methods and programs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250181A (ja) * 2010-05-27 2011-12-08 Nec Corp ネットワーク管理システム、ネットワーク要素、ネットワーク管理装置、及びネットワーク管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250181A (ja) * 2010-05-27 2011-12-08 Nec Corp ネットワーク管理システム、ネットワーク要素、ネットワーク管理装置、及びネットワーク管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015044823; 増澤利光、他3名: '方向感覚付き完全ネットワークにおけるプロセッサ故障耐性のあるリーダ選択アルゴリズム' 電子情報通信学会論文誌(J73-D-I) Vol.J73-D-I No.10, 19901025, pp.818-828, 社団法人 電子情報通信学会 *

Also Published As

Publication number Publication date
JPWO2014141459A1 (ja) 2017-02-16
WO2014141459A1 (ja) 2014-09-18

Similar Documents

Publication Publication Date Title
US20210119872A1 (en) Communicating state information in distributed operating systems
US11924044B2 (en) Organizing execution of distributed operating systems for network devices
CN109729129B (zh) 存储集群系统的配置修改方法、存储集群及计算机系统
CN108234302B (zh) 保持网络装置用的分布式操作系统中的一致性
US8880931B2 (en) Method, distributed system and computer program for failure recovery
US10728099B2 (en) Method for processing virtual machine cluster and computer system
US20090259741A1 (en) Grid Computing Implementation
KR20070026327A (ko) 액티브 라우팅 컴포넌트 장애 처리 방법 및 장치
US20040215904A1 (en) System and method for assigning data collection agents to storage area network nodes in a storage area network resource management system
WO2017097006A1 (zh) 一种实时数据容错处理方法及系统
Ding et al. A MapReduce‐supported network structure for data centers
Dustdar et al. Dynamic replication and synchronization of web services for high availability in mobile ad-hoc networks
Chaudhary et al. PARC: Placement availability resilient controller scheme for software-defined datacenters
JP6511739B2 (ja) 冗長システムおよび冗長化方法
JP5887462B2 (ja) 情報処理システム、および情報処理システムの運用管理方法
US10305987B2 (en) Method to syncrhonize VSAN node status in VSAN cluster
Pashkov et al. On high availability distributed control plane for software-defined networks
JP4645435B2 (ja) 情報処理装置、通信負荷分散方法及び通信負荷分散プログラム
KR102476271B1 (ko) 자율 관리(semi-managed) DHT 구성 방법 및 시스템
Stahl et al. Dynamic fault-tolerance and mobility provisioning for services on mobile cloud platforms
Xu et al. HASP: high availability SFC placement approach in data center network
Balasangameshwara Improving fault-tolerant load balancing algorithms in computational grids
Sen et al. A Resilient and Robust Edge-Cloud Network System Supporting CPS
JP2015215754A (ja) クラスタシステムおよびSplit−BrainSyndrome発生防止方法
JP6476718B2 (ja) 情報処理システム、プログラム、及び情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160215

R151 Written notification of patent or utility model registration

Ref document number: 5887462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees