JP2006323526A - クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ - Google Patents

クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ Download PDF

Info

Publication number
JP2006323526A
JP2006323526A JP2005144480A JP2005144480A JP2006323526A JP 2006323526 A JP2006323526 A JP 2006323526A JP 2005144480 A JP2005144480 A JP 2005144480A JP 2005144480 A JP2005144480 A JP 2005144480A JP 2006323526 A JP2006323526 A JP 2006323526A
Authority
JP
Japan
Prior art keywords
node
management
cluster
nodes
management node
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.)
Pending
Application number
JP2005144480A
Other languages
English (en)
Inventor
Kazuhiro Suzuki
和宏 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005144480A priority Critical patent/JP2006323526A/ja
Publication of JP2006323526A publication Critical patent/JP2006323526A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】無駄な待機系ノードを用いずにクラスタの運用管理を円滑に引き継ぐことにより可用性の向上を図ること。
【解決手段】管理ノードとして稼働しているノード111が故障すると、他ノード112〜115の中から管理ノード(ノード115)が決定される。ノード115ではノードコーディネータNCが起動され、第2のクラスタ情報1400が生成される。第2のクラスタ情報1400は、ノード115のノードデーモンNDに配布される。ノード115のノードコーディネータNCでは、障害ノード111を除いたあらたなIP変換テーブル1500を作成し、障害ノード111を除くノード112〜ノード115に配布される。ノード112〜ノード115の各ノードデーモンNDが有する第1のクラスタ情報から第2のクラスタ情報1400に更新され、そのIP変換テーブル1500が各VNICに引き渡される。
【選択図】 図14

Description

この発明は、複数の計算機ノード(以下、単に「ノード」)からなるクラスタを管理するクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタに関する。
近年、インターネットを利用したe−ビジネスでは、24時間365日サービスを提供し続けることが成功のための重要なカギとなる。しかし、現実問題として、1台のマシンが故障や過負荷により停止しただけで、顧客へのサービスが全面的にストップしてしまうことがあり、莫大な損害を引き起こすことになる。こうした事態に備えるためにシステムのMTBF(平均故障間隔)を改善し稼働率を向上させる高可用化の要求が高まりつつある。可用性を向上させ、システム停止時間を最小限にすることで、被る損害や危険を最小限に抑えることができる。
一般的にシステムの可用性を向上させるには、そのシステムを構成する部品を冗長化することが重要である。そのような高可用化システムとして、クラスタが利用されるケースが多い。クラスタにおいては、2台以上のノードを使用して冗長化し、一台を現用系として動作させ、残りを待機系とすることで、何らかの原因で現用系が動作不能になった場合に待機系がその処理を引き継ぐことができる。このようなクラスタはフェイルオーバ型クラスタと呼ばれている。
フェイルオーバ型のクラスタでは、一台のノードを現用系として動作させ、残りのノードを待機系とすることで、何らかの原因で現用系が動作不能になった場合に待機系がその処理を引き継ぐような構成をとっている。また、1台の管理ノード上で動作するプロセスがクラスタ全体を管理しており、管理ノード以外のノードに障害が発生したとしても、障害が発生したノードを切り放すことでシステムの処理を継続できる可用性を備えているシステムもある(たとえば、下記特許文献1を参照。)。
特開2004−264911号公報
しかしながら、上述したクラスタでは、待機系のノードは現用系のノードに障害が発生するまでは稼働せずに待機し続けているため、余分な資源を用意しなければならないという問題があった。すなわち、たとえば、ノードとなる2台のサーバでフェイルオーバ型のクラスタを構築したとしても、1台分しか稼働していないことになる。
また、待機系のノードを用意せずに、クラスタ全体を一台のノード(管理ノード)で管理しているクラスタにおいては、管理ノードに障害が発生した場合には、クラスタ全体の運用を継続することができなくなってしまうという問題があった。これはいわゆる“Single Point of Failure”と言われている問題であり、クラスタの構成要素(ノード)を冗長化、すなわち、余分な待機系のノードを用意しなければならないという問題があった。
この発明は、上述した従来技術による問題点を解消するため、無駄な待機系ノードを用いずにクラスタの運用管理を円滑に引き継ぐことにより可用性の向上を図ることができるクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタを提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、およびクラスタ管理方法は、複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理プログラム、該プログラムを記録した記録媒体、およびクラスタ管理方法であって、前記複数のノードのうち自ノードを除く他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出し、前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定し、前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動することを特徴とする。
この発明によれば、管理ノードに選ばれたノードに換わって、当該ノード以外のいずれかのノードがクラスタの管理処理を実行することができる。
また、上記発明において、前記管理ノードに選ばれたノードから配信された前記クラスタ内のノードの負荷情報を取得し、前記管理ノードに選ばれたノードの停止が検出された場合、取得された負荷情報に基づいて、前記自ノードを前記管理ノードに決定することとしてもよい。
この発明によれば、あらたに管理ノードとなり得る候補が複数ある場合であっても、ノードごとに管理ノードの決定処理をおこなうことができる。
また、上記発明において、さらに、前記他ノードから当該他ノードが前記管理ノードに決定されなかった旨の否決情報を取得し、さらに、取得された否決情報に基づいて、前記自ノードを前記管理ノードに決定することとしてもよい。
この発明によれば、管理ノードの決定処理において自ノードとの比較対象となる他ノード数を削減することができる。
また、上記発明において、前記自ノードが前記管理ノードに決定されなかった場合、前記他ノードに前記自ノードの否決情報を送信することとしてもよい。
この発明によれば、他ノードにおける管理ノードの決定処理において当該他ノードとの比較対象から自ノードを排除することができる。
また、上記発明において、停止の検出に先立って、前記管理ノードに選ばれたノードから前記クラスタの管理に関する第1のクラスタ情報を受信し、前記自ノードが前記管理ノードに決定された場合、受信された第1のクラスタ情報を用いて、停止が検出されたノードを除いたクラスタの管理に関する第2のクラスタ情報を生成し、生成された第2のクラスタ情報を、前記自ノードのメモリに格納し、生成された第2のクラスタ情報を、前記検出工程によって停止が検出されたノードを除く他ノードに配信することとしてもよい。
この発明によれば、自ノードが管理ノードに決定された場合、旧管理ノードからクラスタの管理処理を円滑に引き継ぐことができる。
また、上記発明において、前記自ノードが前記管理ノードに決定された場合、前記自ノードが提供しているサービスの起動要求を前記他ノードにおこなって、いずれかの前記他ノードからの前記サービスの起動応答を受け付けることとしてもよい。
この発明によれば、管理ノードに決定された自ノードにおいて提供されていたサービスを他ノードにマイグレートすることができる。
また、上記発明において、前記管理ノードの指定を受け付け、前記管理ノードに指定されなかった場合、前記他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出することとしてもよい。
この発明によれば、管理ノードに指定されなかったいずれのノードからも、管理ノードに選ばれたノードの停止(故障)を監視することができる。
また、上記発明において、前記管理ノードに指定された場合、前記自ノードによる前記管理処理を起動することとしてもよい。
この発明によれば、管理ノードに指定されることにより、いずれのノードも管理ノードとして稼働することができる。
また、この発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、およびクラスタ管理方法は、複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理プログラム、該プログラムを記録した記録媒体、およびクラスタ管理方法であって、前記管理ノードの指定を受け付け、前記管理ノードに指定された場合、自ノードによる前記管理処理を起動し、前記管理処理が起動された場合、前記クラスタの管理に関するクラスタ情報を生成し、生成されたクラスタ情報を自ノードのメモリに格納し、生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信することを特徴とする。
この発明によれば、管理ノードに指定されることにより、いずれのノードも管理ノードとして稼働することができる。また、全ノードにクラスタ情報を格納、配信しておくことにより、自ノードの管理処理または自ノード自体が停止した場合であっても、クラスタの管理処理を引き継ぐことができる。
また、上記発明において、前記自ノードによる前記管理処理が停止したか否かを検出し、格納されたクラスタ情報を用いて、停止が検出された管理処理を再起動することとしてもよい。
この発明によれば、他ノードに管理ノードの決定処理をさせることなく、自ノードみずから管理ノードに復帰して、クラスタの管理処理を再度実行することができる。
また、この発明にかかるノードは、複数のノードからなるクラスタ内のノードであって、前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードに選ばれたノードが、停止したか否かを検出し、前記管理ノードに選ばれたノードの停止が検出された場合、前記管理ノードに決定し、前記管理ノードに決定された場合、前記管理処理を起動することを特徴とする。
この発明によれば、管理ノードに選ばれたノードに換わってクラスタの管理処理を実行することができる。
また、この発明にかかるノードおよび複数のノードからなるクラスタは、前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードの指定を受け付け、前記管理ノードに指定された場合、前記管理処理を起動し、前記管理処理が起動された場合、前記クラスタ内の全ノードの管理に関するクラスタ情報を生成し、生成されたクラスタ情報をメモリに格納し、生成されたクラスタ情報を、前記複数のノードのうち自ノードを除く他ノードに配信することを特徴とする。
この発明によれば、管理ノードに指定されることにより、いずれのノードも管理ノードとして稼働することができる。また、全ノードにクラスタ情報を格納、配信しておくことにより、自ノードの管理処理または自ノード自体が停止した場合であっても、クラスタの管理処理を引き継ぐことができる。
本発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタによれば、無駄な待機系ノードを用いずにクラスタの運用管理を円滑に引き継ぐことにより可用性の向上を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタの好適な実施の形態を詳細に説明する。
(クラスタシステムのシステム構成)
まず、この発明の実施の形態にかかるクラスタシステムのシステム構成について説明する。図1は、この発明の実施の形態にかかるクラスタシステムのシステム構成図である。図1において、クラスタシステム100は、クラスタ101とクライアント102とがインターネット、LAN、WANなどのネットワーク103を介して相互に交信可能に接続されている。クラスタ101は、複数のノード(図1では5台)111〜115によって構成されており、クライアント102に対して各種サービスを提供する。たとえば、各ノード111〜115は、ファイアウォールサーバ、メールサーバ、データベースサーバ、Webサーバ、アプリケーションサーバとして機能するコンピュータ装置である。
また、各ノード111〜115は、それぞれ上述した各種サービスを提供するほか、クラスタ101全体を管理する管理ノードとして稼働することができ、管理ノードに選ばれた場合には、管理ノードとして稼働する。また、各ノード111〜115は、自ノード以外の他ノードの中から管理ノードが選ばれた場合には、管理ノードとして稼働しているノードによって管理される。
(ノード111〜115およびクライアント102のハードウェア構成)
つぎに、この発明の実施の形態にかかるノード111〜115およびクライアント102(以下、「ノード111〜115等」という。)のハードウェア構成について説明する。図2は、この発明の実施の形態にかかるノード111〜115等のハードウェア構成を示すブロック図である。図2において、ノード111〜115等は、CPU201と、ROM202と、RAM203と、HDD(ハードディスクドライブ)204と、HD(ハードディスク)205と、FDD(フレキシブルディスクドライブ)206と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)207と、ディスプレイ208と、I/F(インターフェース)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、ノード111〜115等の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。HDD204は、CPU201の制御にしたがってHD205に対するデータのリード/ライトを制御する。HD205は、HDD204の制御で書き込まれたデータを記憶する。
FDD206は、CPU201の制御にしたがってFD207に対するデータのリード/ライトを制御する。FD207は、FDD206の制御で書き込まれたデータを記憶したり、FD207に記憶されたデータをノード等に読み取らせたりする。
また、着脱可能な記録媒体として、FD207のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F209は、通信回線を通じてインターネットなどのネットワーク103に接続され、このネットワーク103を介して他の装置に接続される。そして、I/F209は、ネットワーク103と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、ノード111〜115等内に画像データを取り込む。なお、スキャナ212は、OCR機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(ノードの機能的構成)
つぎに、この発明の実施の形態にかかるクラスタ101を構成するノード111〜115の機能的構成について説明する。図3は、この発明の実施の形態にかかるクラスタ101を構成する各ノード111〜115の機能的構成を示すブロック図である。図3において、各ノード111〜115は、検出部301と、取得部302と、決定部303と、起動部304と、送信部305と、受信部306と、生成部307と、格納部308と、メモリ309と、配信部310と、マイグレート部311と、指定部312と、から構成されている。
まず、検出部301は、複数のノード111〜115のうち自ノードを除く他ノードの中から管理ノードに選ばれたノードが停止したか否かを検出する。自ノードとは、複数のノード111〜115の中から任意に着目したノードであり、他ノードとは、複数のノード111〜115のうち自ノードを除いたノードである。また、管理ノードは、他ノードの中から選ばれたノードである。たとえば、自ノードが、図1に示したノード115である場合、他ノードはノード111〜114となる。また、管理ノードは、他ノード(ノード111〜114)の中から管理ノードに選ばれたノード111とすることができる。
検出部301による検出手法としては、たとえば、pingツールを用いることができる。たとえば、自ノードから管理ノードに対してpingツールによるエコー要求を送信し、管理ノードからエコー要求に対するエコー応答がなかった場合、管理ノードに選ばれたノードが停止(ダウン)していることを検出することができる。
また、取得部302は、管理ノードに選ばれたノードから配信されたクラスタ101内のノード111〜115の動作状況に関する情報を取得する。ここで、負荷情報とは、自ノードを含むクラスタ101内のノードのCPU使用率やメモリ使用率などのリソース情報や、当該ノードのサービスの提供数など、ノードにかかっている負荷を示す情報である。
また、取得部302は、他ノードから当該他ノードが管理ノードに決定されなかった旨の否決情報を取得する。取得部302は、これらの情報を、他ノードからの定期的な配信によって取得したり、また、他ノードにおける所望のタイミングで送信された場合に取得することとしてもよい。さらに、取得部302からの要求に応じて他ノードから取得することとしてもよい。
また、決定部303は、自ノードを管理ノードに決定する。具体的には、たとえば、検出部301によって管理ノードに選ばれたノードの停止が検出された場合、自ノードを管理ノードに決定する。また、他ノードも同時に管理ノードに選ばれたノードを監視している場合には、当該他ノードも管理ノードに選ばれたノードの停止を検出することとなる。管理ノードは1台でよいため、管理ノードの候補となるノードが複数存在する場合には、優先順位によって決定する。
たとえば、取得部302によって取得された負荷情報を用いて、自ノードの負荷情報が所定のしきい値以下である場合、自ノードを管理ノードに決定することができる。また、他ノードの負荷情報と比較して、自ノードの負荷情報が他ノードの負荷情報よりも低い、すなわち、負荷が最も少ない場合に、自ノードを他ノードに優先して管理ノードに決定することができる。また、取得部302により他ノード内のノードからの否決情報が取得された場合、当該ノードの負荷情報を、自ノードの負荷情報との比較対象から除くこととしてもよい。
また、起動部304は、決定部303によって管理ノードに決定された場合、自ノードによる管理処理を起動する。具体的には、管理ノードに決定された場合、自ノードが有するクラスタ101の管理プロセス(後述するノードコーディネータ)を立ち上げる。
また、送信部305は、決定部303によって自ノードが管理ノードに決定されなかった場合、他ノードに自ノードの否決情報を送信する。他ノードにおいても、図3に示した機能的構成と同一構成を有しているため、送信部305から送信された自ノードの否決情報を、他ノードにおける取得部302が取得して、自ノードの場合と同様、他ノードにおける管理ノードの決定処理に用いることができる。
また、受信部306は、検出部301による停止の検出に先立って、管理ノードに選ばれたノードからクラスタ101の管理に関するクラスタ情報を受信する。クラスタ情報とは、クラスタ101の運用管理に必要な情報であれば何でも良く、後述するように、たとえば、各ノード111〜115のサービス内容を示すサービスリスト、各ノード111〜115のIPアドレス(実IPアドレス)と仮想IPアドレスとを対応させた変換テーブル、各ノード111〜115が現在行っているサービス内容と仮想IPアドレスとを対応させたタスクリストなどが挙げられる。
管理ノードに選ばれたノードでは、上述したクラスタ101の管理プロセスが立ち上がっているため、当該管理プロセスによって生成されたクラスタ情報が、管理ノードに選ばれたノードからクラスタ101内の全ノード111〜115に配信され、受信部306は、配信されたクラスタ情報を受信する。これにより、管理ノードに選ばれたノードが故障などにより停止(ダウン)した場合であっても、管理ノードに選ばれたノードが管理ノードに決定された場合、受信されたクラスタ情報を用いて、クラスタ101の運用管理を引き継ぐことができる。
また、生成部307は、決定部303によって自ノードが管理ノードに決定された場合、受信部306によって受信されたクラスタ情報(以下、「第1のクラスタ情報」という。)を用いて、検出部301によって停止が検出されたノード(障害ノード)を除いたクラスタ101の管理に関する第2のクラスタ情報を生成する。管理ノードに選ばれたノードが停止しているため、第2のクラスタ情報による運用管理対象となるのは、停止が検出されたノードを除いたノードである。
たとえば、管理ノードに選ばれたノードがノード111であり、このノード111の停止が検出され、あらたに管理ノードに決定されたノードが自ノード115であるとすると、第2のクラスタ情報による管理対象となるノードは、ノード111を除いたノード112〜115である。
また、格納部308は、生成部307によって生成された第2のクラスタ情報を、自ノードのメモリ309に格納する。具体的には、たとえば、後述するように、自ノードのノードコーディネータから自ノードのノードデーモンに引き渡すことで、自ノードのメモリ309に格納する。
また、配信部310は、生成部307によって生成された第2のクラスタ情報を、検出部301によって停止が検出されたノードを除く他ノードに配信する。上述の例では、自ノード115は、停止が検出されたノード111を除く他ノード112〜114に配信する。
また、マイグレート部311は、決定部303によって自ノードが管理ノードに決定された場合、自ノードが提供しているサービスの起動要求を他ノードにおこなう。そして、いずれかの他ノードからのサービスの起動応答を受け付ける。これにより、管理ノードに決定されるまでにおこなっていたサービスを他ノードに移行することができる。また、他ノードからの起動応答を受けた場合、自ノードのサービスを削除することとしてもよい。これにより、管理ノードに決定された自ノードの管理プロセス(ノードコーディネータ)が起動したことによる過負荷を軽減することができる。
つぎに、自ノードが管理ノードに選ばれる場合について説明する。指定部312は、管理ノードの指定を受け付ける。具体的には、たとえば、オペレータが図2に示したキーボード210やマウス211を操作することにより、管理ノードの指定を受け付けることができる。この指定により、自ノードが管理ノードに選ばれることとなる。なお、指定部312によって管理ノードに指定されなかった場合、検出部301は、他ノードの中から管理ノードに選ばれたノードが停止したか否かを検出することとなる。
一方、指定部312によって管理ノードに指定された場合、起動部304は、自ノードによる管理処理、すなわち、クラスタ101の管理プロセス(ノードコーディネータ)を起動する。これにより自ノードが管理ノードとなる。そして、生成部307は、上述した場合と同様、起動部304によって管理処理が起動された場合、クラスタ101の管理に関する第1のクラスタ情報を生成する。
また、格納部308も、上述した場合と同様、生成部307によって生成された第1のクラスタ情報を自ノードのメモリ309に格納し、配信部310は、生成部307によって生成された第1のクラスタ情報を、複数のノード111〜115のうち自ノードを除く他ノードに配信する。
この状態において、自ノードは、他ノードの検出部301により自ノードの停止の有無が監視されることとなる一方、自ノード自身も、自ノードの検出部301が、自ノードの管理処理、具体的には、自ノードによるクラスタ101の管理プロセス(ノードコーディネータ)が停止したか否かを検出する。
この場合、起動部304は、格納部308によって格納されたクラスタ情報を用いて、検出部301によって停止が検出された管理処理、具体的には、自ノードによるクラスタ101の管理プロセス(ノードコーディネータ)を再起動する。具体的には、自ノードのノードデーモンからメモリ309に格納されたクラスタ情報を呼び出すことにより、管理処理を再起動することができる。
なお、上述した検出部301、取得部302、決定部303、起動部304、送信部305、受信部306、生成部307、格納部308、配信部310、マイグレート部311、および指定部312は、具体的には、たとえば、図2に示したROM202、RAM203、HD205などの記録媒体に記録されたプログラムを、CPU201が実行することによって、またはI/F209によって、その機能を実現する。また、メモリ309は、具体的には、たとえば、図2に示したROM202、RAM203、HD205などの記録媒体によって、その機能を実現する。
つぎに、上述したクラスタ101の具体的な構成例について説明する。図4は、クラスタ101の具体的な構成例を示す説明図である。図4において、クラスタ101を、自律機能による効率的な運用を実現する自律運用システムとして説明する。
このクラスタ101は、サービスを運用中の全ノード111〜115が管理ノードになり得るため、余分な資源であるアイドル状態の待機系ノードを用意すること無く、可用性を向上させることが可能となる。
このクラスタ101では、クラスタ101内のノード111〜115を仮想化し、全ての通信を仮想化されたIPアドレス(仮想IP、Virtual IP、以下、「VIP」という。)によっておこなう。これにより、実際のノード(実ノード)111〜115とクライアント102のアプリケーションが操作する仮想ノードとを切り放し、クライアント102のアプリケーションからノード111〜115の構成の変化や故障などを隠蔽することができる。また、クライアント102のアプリケーションに割り当てるノード数を自律的に制御することによって、柔軟かつ効率的なリソース管理を実現することができる。
なお、実ノードとは、物理的なノード111〜115であり、各(実)ノード111〜115には実際のIPアドレス(実IP、Real IP、以下「RIP」という。)が割り当てられている。管理ノードも実ノードの一つである。また、仮想ノードとは、管理ノード上に生成された仮想的なノードで、クライアント102のユーザアプリケーションに見せるVIPを提供する。また、管理ノードは、クラスタ101外のクライアント102(図1を参照)からのVIP(仮想ノード)宛のリクエストを受け取るノードである。図4では現在の管理ノードをノード111とする。以下、仮想ノードと区別するため、ノード111〜115を実ノード111〜115と記述することもある。
これにより、たとえば、ノード113は、クラスタ101内における実際のIPアドレス(RIP)が「RIP3」である実ノードであるが、クライアント102から見ると、仮想的なIPアドレス(VIP)が「VIP3」である仮想ノードとなる。
また、図4中、NCはノードコーディネータであり、仮想ノードと実ノード111〜115のマッピングを管理するデーモンプロセスである。ノードコーディネータNCは管理ノード上で動作するプロセスであり、IP変換テーブル500を含むクラスタ情報400を生成・管理している。ここで、IP変換テーブル500について説明する。図5は、IP変換テーブル500を示す説明図である。
図5において、IP変換テーブル500は、実ノードごとに、RIPとVIPとが対応付けられている。IP変換テーブル500は、VIPからRIPを検索するためのテーブルである。仮想ノードと実ノードのマッピングを変更することができるため、ユーザは実ノードの構成や台数を知ることなく、クライアント102からアプリケーションを動作させることができる。
また、仮想ノードに実ノードをマッピングする場合には、一つの仮想ノードに対して複数の実ノードをマッピングすることができる。つまり、仮想ノードへのリクエストを複数の実ノードに分散することによってロードバランシング型のクラスタ101を構成することができる。複数の仮想ノードをユーザのクライアント102に対して提供することによって、複数のノード111〜115からなるクラスタ101として見せることができる。そのためユーザはHPC型のアプリケーションを動作させることが可能となる。
また、図4において、ノードコーディネータNCはIP変換テーブル500のマスタテーブルを操作できる唯一のプロセスである。管理ノード(ノード111)のオペレータはノードコーディネータNCに対して実ノードの割り当てを要求する。ノードコーディネータNCはIP変換テーブル500のエントリを変更し、全ての実ノード111〜115に対してIP変換テーブル500のコピーを配信する。これによってIP変換テーブル500のコンシステンシを保つことができる。また、ノードコーディネータNCは実ノード111〜115の状態を監視して、仮想ノードが割り当てられた実ノード111〜115の負荷が増大すると、負荷を分散させるために新たな実ノード111〜115を割り当てる機能を持っている。反対に負荷が減少した場合には、割り当てていた実ノードを解放する。
また、ノードコーディネータNCは、サービスリストの登録とタスクリストの作成をおこなう。図6は、サービスリストの一例を示す説明図である。サービスリスト600は、サービスIDとサービス内容とを対応させたリストである。図7は、タスクリストの一例を示す説明図である。タスクリスト700は、各ノード111〜115が現在行っているサービス内容のサービスIDと仮想IPアドレス(VIP)とを対応させたリストである。
図5〜図7に示したように、サービス内容と、VIPと、RIPとを関連付けることにより、どの実ノードがどの仮想ノードとしてどのようなサービスを提供しているかを、ノードコーディネータNCは把握することができる。なお、図5〜図7に示したIP変換テーブル500、サービスリスト600、およびタスクリスト700がクラスタ情報400となる。
また、図4中、NDは、ノードデーモン(Node Daemon)であり、ノードコーディネータNCからの指示にしたがってVNICを設定するデーモンプロセスである。ノードデーモンNDは、各実ノード111〜115に常駐し、ノードコーディネータNCによって配信されたIP変換テーブル500のコピーを受信する。ノードデーモンNDは受信したIP変換テーブル500をVNICに引き渡す。また、ノードデーモンNDはその自ノードがサービスに割り当てられた場合に、VNICによって転送されてきたVIP宛のパケットを受け取るためのトンネルデバイスを設定する。自ノードがサービスから削除された場合は、トンネルデバイスの削除処理をおこなう。
また、図4中、各ノード111〜115に備えられているVNICは、バーチャルネットワークインターフェースカード(Virtual Network Interface Card)であり、IP変換テーブル500にしたがって、VIP(仮想ノード)宛のパケットをRIP(実ノード)宛に書き換えるカーネルモジュールである。VNICは管理ノードを含む全ての実ノード111〜115に備えられている。
VNICにより、仮想ノード間の通信に関して実ノード111〜115間のインターコネクトを利用することが可能となる。VNICは大きく分けて2つの処理からなる。一方はクラスタ101外部のクライアント102からのパケットをクラスタ101内部のノード111〜115に転送する処理である。これはWebサーバなどの前段に設置されるロードバランサと同様の働きをする。他方は任意のノードからのパケットを当該ノード以外のノードに転送する処理である。これによって、クラスタ101内のノード間通信を行うことができる。
すなわち、VNICを用いることにより、クラスタ101外のクライアント102からのVIP宛のパケットはそのVIPを提供する管理ノード(に選ばれたノード111)が受け取る。パケットを受け取ったノード111は,パケットの宛先アドレスとポート番号をキーとしてIP変換テーブル500を検索する。検索にヒットするとエントリに登録されているRIPに対してパケットを送出する。ヒットしなければ通常のパケットとして受理する。このように、一つのVIPに対して複数のRIPを登録することによって、ロードバランサとして機能させることができる。
また、VNICを用いることにより、クラスタ101内部のノード間通信を実現することもできる。クラスタ101内の実ノード111〜115はユーザアプリケーションが動作している。ユーザアプリケーションがノード間通信を行う時にはVIPによってノードを識別する。VNICはこのVIPが割り当てられている実ノード111〜115にパケットを転送する。
各ノード111〜115内で生成されたVIP宛のパケットは、VIPとポート番号をキーとしてIP変換テーブル500を検索し、パケットの宛先RIPを得ることができる。この場合にも複数のRIPを登録することによってノード間通信にもロードバランシングを適用することができる。つまり、各ノード111〜115は独立してロードバランサとしての機能を提供することができる。
また、図4において、クラスタ101は、ユーザアプリケーションがクラスタ101内の実ノード111〜115を直接操作することを禁止している。これはクライアント102のユーザアプリケーションには仮想ノードだけを提供し、実ノード111〜115を隠蔽するためである。仮想ノードは適切な実ノード111〜115にマッピングされ、ユーザアプリケーションは実ノード111〜115上で実行される。マッピングはIPアドレスとポート番号の組によって管理する。このマッピングにより仮想ノードへのアクセスは実ノード111〜115へのアクセスに変換され、ユーザアプリケーションにはあたかも仮想ノード上で動作しているように見せている。
また、図4において、全ての実ノード111〜115でコンシステンシを保つため、ノードコーディネータNCにおいてクラスタ情報400が更新された場合、あらたなクラスタ情報410を各実ノード111〜115に配布する。更新されたクラスタ情報410は、その種類を示す更新リクエストと共に配布される。具体的な更新リクエストと配布タイミングの一覧を表1に示す。
Figure 2006323526
クラスタ情報410の配布方式には、たとえば、ブロードキャストによる方式と各ノードデーモンNDに対してTCPコネクションを張ってpoint-to-pointで行う方式の2通りが考えられる。前者は各ノードデーモンNDがブロードキャストを受け取って各VNIC内のIP変換テーブル500を更新する処理を並列に行うことができる。そのためには、全ての実ノード111〜115がノードコーディネータNCと同じセグメント内に存在している必要がある。
一方、後者は異なるセグメントに存在する実ノード111〜115にも確実にIP変換テーブル500のコピーを送ることができる。更新リクエストを受け取った各ノードデーモンNDは、更新リクエストの内容を解析して自らが保持しているクラスタ情報400から、更新されたクラスタ情報410を反映する。クラスタ情報410が反映されると、IP変換テーブル500は、カーネルモジュールであるVNICに通知される。
(クラスタ管理処理手順)
つぎに、この発明の実施の形態にかかるクラスタ管理処理手順について説明する。図8は、この発明の実施の形態にかかるクラスタ管理処理手順を示すフローチャートである。図8のフローチャートでは、クラスタ101内の任意のノードを自ノードとして、当該自ノードによるクラスタ管理処理手順を示している。
まず、指定部312により管理ノードに指定されたか否かを判断する(ステップS801)。管理ノードに指定された場合(ステップS801:Yes)、自ノードのノードコーディネータNCを起動して(ステップS802)、サービス登録処理(ステップS803)およびノード割り当て処理(ステップS804)を実行する。サービス登録処理およびノード割り当て処理は、具体的には、図3に示した生成部307、より具体的には、自ノードのノードコーディネータNCによって実行する。そのあと、サービスの起動リクエストが送られ、ノードコーディネータNCはノードスケジューリングを実行する(ステップS805)。ノードスケジューリングについては後述する。
一方、管理ノードに指定されなかった場合(ステップS801:No)、他ノードの中から管理ノードが選ばれ、自ノードは管理ノード決定処理を実行する(ステップS806)。そして、管理ノード決定処理により管理ノードに決定されると、自ノードのノードコーディネータNCを起動し(ステップS807)、クラスタ情報400の再構築処理を実行する(ステップS808)。ここで、管理ノード決定処理は、図3に示した指定部312、取得部302、決定部303および配信部310によって実行する。また、再構築処理は、起動部304、生成部307、配信部310およびマイグレート部311によって実行する。
そのあと、自ノードが停止したか否かを自ノードみずから判断する(ステップS809)。そして、自ノードが停止した場合(ステップS809:Yes)、一連の処理を終了する。具体的には、たとえば、故障により自ノードがダウンした場合や、オペレータの操作により自ノードの起動を終了した場合が該当する。この場合、他ノードの検出部301により、管理ノードである自ノードの停止が検出され、他ノードにおいてステップS806〜S808の処理が実行されることとなる。
また、ステップS809において、自ノードが停止していない場合(ステップS809:No)、ノードコーディネータNCが停止したか否かを判断する(ステップS810)。ノードコーディネータNCが停止していなければ(ステップS810:No)、ステップS805に移行する。
また、ステップS810において、自ノードのノードコーディネータNCが停止した場合(ステップS810:Yes)、起動部304によりノードコーディネータNCを再起動する(ステップS811)。そして、ノードデーモンND、具体的にはメモリ309からクラスタ情報400を抽出し(ステップS812)、ステップS805に移行する。
つぎに、図8で示したサービス登録処理(ステップS803)について説明する。図9は、図8で示したサービス登録処理(ステップS803)を示すUMLのシーケンス図である。図9において、オペレータからのサービスの登録要求を受け取る(ステップS901)と、ノードコーディネータNCは、サービスにVIPを割り当てて,サービスリスト600としてメモリ309上に蓄えることにより、サービス登録をおこなう(ステップS902)。サービス登録にはサービス記述ファイルと呼ばれるXML文書を指定する。
図10は、サービス記述ファイルの一例を示す説明図である。図10に示したサービス記述ファイル1000において、左端の番号は行番号である。このサービス記述ファイル1000の3行目と4行目には、“web”という名称のサービスがTCPの“80”番ポートを監視していることが記述されている。また、5行目には、サービスを起動/停止するためのスクリプトが記述されている。また、6行目には、リソースの競合が発生した場合の優先順位を決定するための優先度が記述されている。
また、7行目からの“svc:SLA”は、自律制御の動作を指定するための記述であり、データ種別とそのしきい値を条件式の形で表したものである。ここでは、ノード数とCPU使用率がデータ種別として示されている。それぞれの条件式はレベル付けされており、レベルが低い方から順に評価していく。評価結果が“偽”となった場合は、その直前のレベルをサービスレベルとする。複数のアプリケーションが登録されている場合には、全てのアプリケーションで“真”となるサービスレベルが決定される。ノードコーディネータNCはサービスレベルが最大となるように、サービスに割り当てる実ノード数を制御する。
また、図9において、サービス登録(ステップS902)が完了した場合、作成されたサービスリスト600を自ノードのノードデーモンNDに配布する(ステップS903)。具体的には、自ノードのメモリ309にサービスリスト600を格納するとともに、他ノードのノードデーモンNDにサービスリスト600を配信する。ノードコーディネータNCは各ノードデーモンNDから配布完了の通知を受け取る(ステップS904)と、オペレータに対し登録完了を通知する(ステップS905)。これにより、サービス登録処理(ステップS803)が完了する。
つぎに、図8で示したノード割り当て処理(ステップS804)について説明する。図11は、図8で示したノード割り当て処理(ステップS804)を示すUMLのシーケンス図である。図11において、オペレータは、ノードコーディネータNCに対して実ノードの割り当てを要求する(ステップS1101)。そして、サービス名と割り当てて欲しい実ノード数を選択する(ステップS1102)。
ノードコーディネータNCは、割り当て可能な実ノードから、要求された数分の実ノードをIP変換テーブル500に記録することにより、IP変換テーブル500を更新し、IP変換テーブル500をノードデーモンNDに配布する(ステップS1103)。具体的には、サービスリスト600と同様、自ノードのメモリ309にIP変換テーブル500を格納するとともに、他ノードのノードデーモンNDにIP変換テーブル500を配信する。
そのあと、自ノードを含む各ノードのノードデーモンNDは、それぞれVNICに対し、受け取ったIP変換テーブル500の設定をおこなうとともに(ステップS1104)、各VNICに対しトンネルデバイスの設定をおこなう(ステップS1105)。各ノード111〜115のVNICにおいてトンネルデバイスの設定が完了した場合、各ノードデーモンNDは、管理ノードである自ノードのノードコーディネータNCにIP変換テーブル500の配布完了を通知し(ステップS1106)、オペレータにノード割り当ての登録完了を通知する(ステップS1107)。これにより、実ノード割り当て処理(ステップS804)が完了する。
つぎに、図8に示したノードスケジューリング(ステップS805)について具体的に説明する。ノードスケジューリングでは、ノードコーディネータNCは、サービスの起動要求を受け取ると割り当てられた実ノード111〜115上でサービスを起動してサービス提供状態に入る。サービス提供状態に入ると、ノードコーディネータNCは全ての実ノード111〜115と仮想ノードの状態を監視して、与えられたSLAの条件式にしたがってノードの割り当てを行う。これがノードスケジューリング(機能)である。
ノード111〜115の負荷が変化した場合には、ノードスケジューリング機能によって実ノード数の割り当てを自律的に変更して、クラスタ101全体で最適な状態を保つように動作する。Webサーバのようなスケールアウト型アプリケーションではノードスケジューリング機能を利用することができる。
また、ノードスケジューリング機能は、IP変換テーブル500に登録されたRIPの数を変更することで実現される。RIPを増加させる時には、ノード割り当て可能な実ノード111〜115を選択してIP変換テーブル500に割り当てるRIPを追加する。この時、VIPの実ノードを増やす場合には、そのノード上でサービスを起動する。反対に実ノードを削除する場合には、その実ノード上のサービスを停止した後でIP変換テーブル500に登録されているRIPを削除する。このノードスケジューリング機能により、図7に示したタスクリスト700を作成するとともに、タスクリスト700を動的に変更することができる。このようにしてノードスケジューリング(ステップS805)が実現される。
つぎに、図8に示した管理ノード決定処理について説明する。図12は、管理ノード決定処理を示すフローチャートである。図8において、自ノードが管理ノードでない場合、検出部301により、管理ノードの停止が検出されるまで管理ノードの監視をおこない(ステップS1201:No)、取得部302により、管理ノードの停止が検出された場合(ステップS1201:Yes)、他ノードから負荷情報または否決情報を取得する(ステップS1202)。
このあと、決定部303により、ステップS1202で取得した情報を用いて、管理ノードの決定処理を実行する(ステップS1203)。管理ノードに決定された場合(ステップS1204:Yes)、ステップS807に移行して、自ノードのノードコーディネータNCを起動する。一方、管理ノードに決定されなかった場合(ステップS1204:No)、配信部310により、否決情報を他ノードに配信して(ステップS1205)、一連の処理を終了する。なお、配信された否決情報は他ノードにおける管理ノード決定処理に用いられる。
つぎに、図8に示したクラスタ情報400の再構築処理について説明する。図13は、図8に示したクラスタ情報400の再構築処理を示すUMLのシーケンス図である。自ノードがあらたに管理ノードに決定されると、元の管理ノードによって生成されたクラスタ情報400を自ノード(管理ノード)において再構築する必要がある。
図13において、クラスタ情報400の再構築処理では、管理ノードである自ノード上でノードコーディネータNCが起動された場合(ステップS807)、自ノードのノードデーモンNDに対してクラスタ情報400を要求する(ステップS1301)。ノードデーモンNDは、クラスタ情報400の問い合わせ専用のポートを開いており、ノードコーディネータNCからの要求を待ち受けている。ノードコーディネータNCがこのポートに接続すると、ノードデーモンNDは、自ノードのメモリ309に格納されているクラスタ情報400(第1のクラスタ情報400)を、サービスリスト600、IP変換テーブル500、タスクリスト700の順にノードコーディネータNCに送信する(ステップS1302)。
ノードコーディネータNCは、受け取ったクラスタ情報400から新たなクラスタ情報(第2のクラスタ情報)を生成され、再構築されたこととなる。再構築処理が完了すると、マイグレート処理をおこなう。すなわち、自ノードで動作しているサービスの起動要求を他ノードのノードデーモンNDにおこなう(ステップS1303)。そして、他ノードのノードデーモンNDから起動完了の通知を受けると(ステップS1304)、ノードコーディネータNCは、自ノードのノードデーモンNDにサービスの停止を要求して(ステップS1305)、IP変換テーブル500から自ノードのRIPを削除する。
そして、自ノードからの停止完了の通知を受ける(ステップS1306)。この時、自ノードに再びサービスが割り当てられないように設定を変更する。このあと、ノードコーディネータNCは、トンネルデバイスの削除と外部からのパケットを受け取るためのVIPの作成(IPエイリアス)などのノード情報の設定をおこなう(ステップS1307)。
このあと、ノードコーディネータNCは、再構築された第2のクラスタ情報を自ノードのノードデーモンNDに配布して(ステップS1308)、この配布されたクラスタ情報に含まれているIP変換テーブル500を自ノードのVNICに配布することによりIP変換テーブル500を更新する(ステップS1309)。このあと、ノードコーディネータNCは自ノードのノードデーモンNDから第2のクラスタ情報の配布完了の通知を受ける(ステップS1310)。
また、ノードコーディネータNCは、障害ノードを除いた他ノードのノードデーモンNDに再構築された第2のクラスタ情報400を配布する(ステップS1311)。これにより、他ノードのノードデーモンNDは、それぞれVNICが有するIP変換テーブル500を、配布されたクラスタ情報400に含まれているIP変換テーブル500に更新する(ステップS1312)。このあと、ノードコーディネータNCは、他ノードのノードデーモンNDから配布完了の通知を受ける(ステップS1313)。
これにより、実ノードを管理ノードに切り替えることによって、サービスを提供している実ノード数が減少してクラスタ101全体の性能は一時的に低下するものの、サービスの提供を継続することが可能となる。低下した性能は、あらたに管理ノードに決定されたノードのノードコーディネータNCの自律機能によって最適化される。管理ノードに決定されたノードがサービスを提供している場合であっても、そのサービスを停止する前に、当該サービスを他ノードに割り当ててサービスの起動要求(ステップS1303)を送る。これによって、サービスをマイグレートすることができ、サービスの提供を継続することができる。
また、サービスを停止する場合に、毎回サービスマイグレーションを実行するとノードコーディネータNCの起動時間が延びてしまうことが懸念される。そこで、同一のサービスを提供している実ノード数によってサービスマイグレーションを実行するかどうかの判定をおこなうこととしてもよい。すなわち、同一サービスを提供するノード数が所定数以上ある場合には、マイグレーションをおこなう必要がない。
つぎに、上述した管理ノード決定処理およびクラスタ情報400の再構築処理を、図4に示したクラスタ101の構成例を用いて説明する。図14は、クラスタ101の構成例を示す説明図である。図4において、管理ノードであるノード111に故障が発生した場合、他ノードの中から管理ノードが決定される。ここでは、ノード115が決定されたこととする。そして、図14において、管理ノードに決定されたノード115では、ノードコーディネータNCが起動され、クラスタ情報400の再構築処理により第2のクラスタ情報1400が生成される。
この第2のクラスタ情報1400は、ノード115のノードデーモンNDに配布されて、ノード115のVNICに転送される。また、第2のクラスタ情報1400は、第1のクラスタ情報400のIP変換テーブル500を引き継いでいるため、ノード115のノードコーディネータNCでは、このIP変換テーブル500から障害ノード111を除いたあらたなIP変換テーブル1500を作成する。
このあらたなIP変換テーブル1500は、障害ノード111を除く他ノード112〜114およびノード115に配布される。他ノード112〜114およびノード115では、他ノード112〜114およびノード115の各ノードデーモンNDが有する第1のクラスタ情報400(図4を参照)が、管理ノードであるノード115から配布された第2のクラスタ情報1400に更新され、その第2のクラスタ情報1400に含まれているIP変換テーブル1500が各VNICに引き渡される。
このように、クラスタ101内のノードがすべて現用系である場合、別のサービスを提供していた実ノードを、当該実ノードのノードコーディネータNCによって管理ノードに切り替えることができ、管理ノードに障害が発生した場合であっても、クラスタ101の運用管理を無駄な待機系のノードを用いずに継続することができる。
また、あらたに管理ノードに決定されたノードで提供していたサービスを停止して、他の実ノードにサービスを移動させること、すなわち、サービスマイグレーションを実行することにより、管理ノードに決定されたノードの過負荷状態を回避することができる。これにより、クラスタ101の運用管理の効率化と高可用化を両立することができる。
以上説明したように、本発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタによれば、無駄な待機系ノードを用いずにクラスタの運用管理を円滑に引き継ぐことにより可用性の向上を図ることができるという効果を奏する。
なお、本実施の形態で説明したクラスタ管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行させるクラスタ管理プログラムであって、
前記複数のノードのうち自ノードを除く他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出させる検出工程と、
前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定させる決定工程と、
前記決定工程によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動させる起動工程と、
を前記自ノードのコンピュータに実行させることを特徴とするクラスタ管理プログラム。
(付記2)前記管理ノードに選ばれたノードから配信された前記クラスタ内のノードの負荷情報を取得させる取得工程を前記自ノードのコンピュータに実行させ、
前記決定工程は、
前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記取得工程によって取得された情報に基づいて、前記自ノードを前記管理ノードに決定させることを特徴とする付記1に記載のクラスタ管理プログラム。
(付記3)前記取得工程は、
さらに、前記他ノードから当該他ノードが前記管理ノードに決定されなかった旨の否決情報を取得させ、
前記決定工程は、
さらに、前記取得工程によって取得された否決情報に基づいて、前記自ノードを前記管理ノードに決定させることを特徴とする付記2に記載のクラスタ管理プログラム。
(付記4)前記決定工程によって前記自ノードが前記管理ノードに決定されなかった場合、前記他ノードに前記自ノードの否決情報を送信させる送信工程を、前記自ノードのコンピュータに実行させることを特徴とする付記1〜3のいずれか一つに記載のクラスタ管理プログラム。
(付記5)前記検出工程による停止の検出に先立って、前記管理ノードに選ばれたノードから前記クラスタの管理に関する第1のクラスタ情報を受信させる受信工程と、
前記決定工程によって前記自ノードが前記管理ノードに決定された場合、前記受信工程によって受信された第1のクラスタ情報を用いて、前記検出工程によって停止が検出されたノードを除いたクラスタの管理に関する第2のクラスタ情報を生成させる生成工程と、
前記生成工程によって生成された第2のクラスタ情報を、前記自ノードのメモリに格納させる格納工程と、
前記生成工程によって生成された第2のクラスタ情報を、前記検出工程によって停止が検出されたノードを除く他ノードに配信させる配信工程と、
を前記自ノードのコンピュータに実行させることを特徴とする付記1〜3のいずれか一つに記載のクラスタ管理プログラム。
(付記6)前記決定工程によって前記自ノードが前記管理ノードに決定された場合、前記自ノードが提供しているサービスの起動要求を前記他ノードにおこなって、いずれかの前記他ノードからの前記サービスの起動応答を受け付けさせるマイグレート工程を、前記自ノードのコンピュータに実行させることを特徴とする付記5に記載のクラスタ管理プログラム。
(付記7)前記管理ノードの指定を受け付けさせる指定工程を前記自ノードのコンピュータに実行させ、
前記検出工程は、
前記指定工程によって前記管理ノードに指定されなかった場合、前記他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出させることを特徴とする付記1に記載のクラスタ管理プログラム。
(付記8)前記起動工程は、
前記指定工程によって前記管理ノードに指定された場合、前記自ノードによる前記管理処理を起動させることを特徴とする付記7に記載のクラスタ管理プログラム。
(付記9)複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行させるクラスタ管理プログラムであって、
前記管理ノードの指定を受け付けさせる指定工程と、
前記指定工程によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動させる起動工程と、
前記起動工程によって前記管理処理が起動された場合、前記クラスタの管理に関するクラスタ情報を生成させる生成工程と、
前記生成工程によって生成されたクラスタ情報を自ノードのメモリに格納させる格納工程と、
前記生成工程によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信させる配信工程と、
を前記自ノードのコンピュータに実行させることを特徴とするクラスタ管理プログラム。
(付記10)前記自ノードによる前記管理処理が停止したか否かを検出させる検出工程と、
前記格納工程によって格納されたクラスタ情報を用いて、前記検出工程によって停止が検出された管理処理を再起動させる再起動工程と、
を前記自ノードのコンピュータに実行させることを特徴とする付記9に記載のクラスタ管理プログラム。
(付記11)付記1〜10のいずれか一つに記載のクラスタ管理プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記12)複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理方法であって、
前記複数のノードのうち自ノードを除く他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出する検出工程と、
前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定する決定工程と、
前記決定工程によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動する起動工程と、
を含んだことを特徴とするクラスタ管理方法。
(付記13)複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理方法であって、
前記管理ノードの指定を受け付ける指定工程と、
前記指定工程によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動する起動工程と、
前記起動工程によって前記管理処理が起動された場合、前記クラスタの管理に関するクラスタ情報を生成する生成工程と、
前記生成工程によって生成されたクラスタ情報を自ノードのメモリに格納する格納工程と、
前記生成工程によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信する配信工程と、
を含んだことを特徴とするクラスタ管理方法。
(付記14)複数のノードからなるクラスタ内のノードであって、
前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードに選ばれたノードが、停止したか否かを検出する検出手段と、
前記検出手段によって前記管理ノードに選ばれたノードの停止が検出された場合、前記管理ノードに決定する決定手段と、
前記決定手段によって前記管理ノードに決定された場合、前記管理処理を起動する起動手段と、
を備えることを特徴とするノード。
(付記15)複数のノードからなるクラスタ内のノードであって、
前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードの指定を受け付ける指定手段と、
前記指定手段によって前記管理ノードに指定された場合、前記管理処理を起動する起動手段と、
前記起動手段によって前記管理処理が起動された場合、前記クラスタ内の全ノードの管理に関するクラスタ情報を生成する生成手段と、
前記生成手段によって生成されたクラスタ情報をメモリに格納する格納手段と、
前記生成手段によって生成されたクラスタ情報を、前記複数のノードのうち自ノードを除く他ノードに配信する配信手段と、
を備えることを特徴とするノード。
(付記16)複数のノードからなるクラスタであって、
前記各ノードは、
前記複数のノードのうち自ノードを除く他ノードの中から前記クラスタの管理処理を実行する管理ノードに選ばれたノードが、停止したか否かを検出する検出手段と、
前記検出手段によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定する決定手段と、
前記決定手段によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動する起動手段と、
を備えることを特徴とするクラスタ。
(付記17)複数のノードからなるクラスタであって、
前記各ノードは、
前記クラスタの管理処理を実行する管理ノードの指定を受け付ける指定手段と、
前記指定手段によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動する起動手段と、
前記起動手段によって前記管理処理が起動された場合、前記複数のノードの管理に関するクラスタ情報を生成する生成手段と、
前記生成手段によって生成されたクラスタ情報を自ノードのメモリに格納する格納手段と、
前記生成手段によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信する配信手段と、
を備えることを特徴とするクラスタ。
以上のように、本発明にかかるクラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタは、たとえば、自律運用システムに有用であり、特に、基幹業務のデータベースサーバやアプリケーションサーバ、ファイルサーバ、インターネット上のファイアウォール、メールサーバ、Webサーバに適している。
この発明の実施の形態にかかるクラスタシステムのシステム構成図である。 この発明の実施の形態にかかるノード等のハードウェア構成を示すブロック図である。 この発明の実施の形態にかかるクラスタを構成する各ノードの機能的構成を示すブロック図である。 クラスタの具体的な構成例を示す説明図である。 IP変換テーブルを示す説明図である。 サービスリストの一例を示す説明図である。 タスクリストの一例を示す説明図である。 この発明の実施の形態にかかるクラスタ管理処理手順を示すフローチャートである。 図8で示したサービス登録処理を示すUMLのシーケンス図である。 サービス記述ファイルの一例を示す説明図である。 図8で示したノード割り当て処理を示すUMLのシーケンス図である。 図8に示した管理ノード決定処理を示すフローチャートである。 図8に示したクラスタ情報の再構築処理を示すUMLのシーケンス図である。 クラスタの構成例を示す説明図である。
符号の説明
100 クラスタシステム
101 クラスタ
102 クライアント
103 ネットワーク
111〜115 (実)ノード
301 検出部
302 取得部
303 決定部
304 起動部
305 送信部
306 受信部
307 生成部
308 格納部
309 メモリ
310 配信部
311 マイグレート部
312 指定部
400、410 第1のクラスタ情報
500、1500 IP変換テーブル
600 サービスリスト
700 タスクリスト
1000 サービス記述ファイル
1400 第2のクラスタ情報
NC ノードコーディネータ
ND ノードデーモン
VNIC バーチャルネットワークインターフェースカード

Claims (10)

  1. 複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行させるクラスタ管理プログラムであって、
    前記複数のノードのうち自ノードを除く他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出させる検出工程と、
    前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定させる決定工程と、
    前記決定工程によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動させる起動工程と、
    を前記自ノードのコンピュータに実行させることを特徴とするクラスタ管理プログラム。
  2. 前記管理ノードに選ばれたノードから配信された前記クラスタ内のノードの負荷情報を取得させる取得工程を前記自ノードのコンピュータに実行させ、
    前記決定工程は、
    前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記取得工程によって取得された情報に基づいて、前記自ノードを前記管理ノードに決定させることを特徴とする請求項1に記載のクラスタ管理プログラム。
  3. 複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行させるクラスタ管理プログラムであって、
    前記管理ノードの指定を受け付けさせる指定工程と、
    前記指定工程によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動させる起動工程と、
    前記起動工程によって前記管理処理が起動された場合、前記クラスタの管理に関するクラスタ情報を生成させる生成工程と、
    前記生成工程によって生成されたクラスタ情報を自ノードのメモリに格納させる格納工程と、
    前記生成工程によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信させる配信工程と、
    を前記自ノードのコンピュータに実行させることを特徴とするクラスタ管理プログラム。
  4. 請求項1〜3のいずれか一つに記載のクラスタ管理プログラムを記録したコンピュータに読み取り可能な記録媒体。
  5. 複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理方法であって、
    前記複数のノードのうち自ノードを除く他ノードの中から前記管理ノードに選ばれたノードが停止したか否かを検出する検出工程と、
    前記検出工程によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定する決定工程と、
    前記決定工程によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動する起動工程と、
    を含んだことを特徴とするクラスタ管理方法。
  6. 複数のノードからなるクラスタの管理処理を前記複数のノード内の管理ノードによって実行するクラスタ管理方法であって、
    前記管理ノードの指定を受け付ける指定工程と、
    前記指定工程によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動する起動工程と、
    前記起動工程によって前記管理処理が起動された場合、前記クラスタの管理に関するクラスタ情報を生成する生成工程と、
    前記生成工程によって生成されたクラスタ情報を自ノードのメモリに格納する格納工程と、
    前記生成工程によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信する配信工程と、
    を含んだことを特徴とするクラスタ管理方法。
  7. 複数のノードからなるクラスタ内のノードであって、
    前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードに選ばれたノードが、停止したか否かを検出する検出手段と、
    前記検出手段によって前記管理ノードに選ばれたノードの停止が検出された場合、前記管理ノードに決定する決定手段と、
    前記決定手段によって前記管理ノードに決定された場合、前記管理処理を起動する起動手段と、
    を備えることを特徴とするノード。
  8. 複数のノードからなるクラスタ内のノードであって、
    前記複数のノードの中から前記クラスタの管理処理を実行する管理ノードの指定を受け付ける指定手段と、
    前記指定手段によって前記管理ノードに指定された場合、前記管理処理を起動する起動手段と、
    前記起動手段によって前記管理処理が起動された場合、前記クラスタ内の全ノードの管理に関するクラスタ情報を生成する生成手段と、
    前記生成手段によって生成されたクラスタ情報をメモリに格納する格納手段と、
    前記生成手段によって生成されたクラスタ情報を、前記複数のノードのうち自ノードを除く他ノードに配信する配信手段と、
    を備えることを特徴とするノード。
  9. 複数のノードからなるクラスタであって、
    前記各ノードは、
    前記複数のノードのうち自ノードを除く他ノードの中から前記クラスタの管理処理を実行する管理ノードに選ばれたノードが、停止したか否かを検出する検出手段と、
    前記検出手段によって前記管理ノードに選ばれたノードの停止が検出された場合、前記自ノードを前記管理ノードに決定する決定手段と、
    前記決定手段によって前記管理ノードに決定された場合、前記自ノードによる前記管理処理を起動する起動手段と、
    を備えることを特徴とするクラスタ。
  10. 複数のノードからなるクラスタであって、
    前記各ノードは、
    前記クラスタの管理処理を実行する管理ノードの指定を受け付ける指定手段と、
    前記指定手段によって前記管理ノードに指定された場合、自ノードによる前記管理処理を起動する起動手段と、
    前記起動手段によって前記管理処理が起動された場合、前記複数のノードの管理に関するクラスタ情報を生成する生成手段と、
    前記生成手段によって生成されたクラスタ情報を自ノードのメモリに格納する格納手段と、
    前記生成手段によって生成されたクラスタ情報を、前記複数のノードのうち前記自ノードを除く他ノードに配信する配信手段と、
    を備えることを特徴とするクラスタ。
JP2005144480A 2005-05-17 2005-05-17 クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ Pending JP2006323526A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005144480A JP2006323526A (ja) 2005-05-17 2005-05-17 クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005144480A JP2006323526A (ja) 2005-05-17 2005-05-17 クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ

Publications (1)

Publication Number Publication Date
JP2006323526A true JP2006323526A (ja) 2006-11-30

Family

ID=37543175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005144480A Pending JP2006323526A (ja) 2005-05-17 2005-05-17 クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ

Country Status (1)

Country Link
JP (1) JP2006323526A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003625A (ja) * 2007-06-20 2009-01-08 Yokogawa Electric Corp フィールド機器
JP2009025965A (ja) * 2007-07-18 2009-02-05 Hitachi Ltd フェールオーバにおける引き継ぎ先を自律的に変更する計算機システム及び方法
JP2010511964A (ja) * 2006-12-05 2010-04-15 クゥアルコム・インコーポレイテッド ゼロ単一障害点ロード・バランサ(azerosinglepointoffailureloadbalancer)の装置および方法
JP2010526362A (ja) * 2007-05-03 2010-07-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) クラスタ化されたソフトウェアエンティティのための動的cliマッピング
JP2012083891A (ja) * 2010-10-08 2012-04-26 Buffalo Inc フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法
WO2012101785A1 (ja) * 2011-01-26 2012-08-02 富士通株式会社 管理装置、管理方法および管理プログラム
KR101286159B1 (ko) 2011-11-25 2013-07-15 한국과학기술정보연구원 Mpi 병렬 프로세스 생성 및 종료 방법과 장치, 그에 대한 기록매체
JP2015070446A (ja) * 2013-09-30 2015-04-13 富士通株式会社 通信システム、通信装置、プログラム、および方法
CN112714166A (zh) * 2020-12-22 2021-04-27 新华三大数据技术有限公司 分布式存储系统的多集群管理方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5566049A (en) * 1978-11-09 1980-05-19 Fujitsu Ltd Composite data processing unit and data processing unit
JPH11184825A (ja) * 1997-12-19 1999-07-09 Mitsubishi Electric Corp クラスタシステム
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
JP2001043105A (ja) * 1999-07-30 2001-02-16 Toshiba Corp 高可用性計算機システム及び同システムにおけるデータバックアップ方法
JP2004126982A (ja) * 2002-10-03 2004-04-22 Nri & Ncc Co Ltd 運用管理システム
JP2004133764A (ja) * 2002-10-11 2004-04-30 Toshiba Corp クラスタシステム及び同システムにおけるサービス制御方法
JP2004264911A (ja) * 2003-02-20 2004-09-24 Fujitsu Ltd 計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラム
JP2005025756A (ja) * 2003-06-30 2005-01-27 Microsoft Corp ホスト状態情報を用いるネットワーク負荷分散
JP2005056347A (ja) * 2003-08-07 2005-03-03 Fujitsu Ltd サーバ機能引継方法およびサーバ機能引継プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5566049A (en) * 1978-11-09 1980-05-19 Fujitsu Ltd Composite data processing unit and data processing unit
JPH11184825A (ja) * 1997-12-19 1999-07-09 Mitsubishi Electric Corp クラスタシステム
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
JP2001043105A (ja) * 1999-07-30 2001-02-16 Toshiba Corp 高可用性計算機システム及び同システムにおけるデータバックアップ方法
JP2004126982A (ja) * 2002-10-03 2004-04-22 Nri & Ncc Co Ltd 運用管理システム
JP2004133764A (ja) * 2002-10-11 2004-04-30 Toshiba Corp クラスタシステム及び同システムにおけるサービス制御方法
JP2004264911A (ja) * 2003-02-20 2004-09-24 Fujitsu Ltd 計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラム
JP2005025756A (ja) * 2003-06-30 2005-01-27 Microsoft Corp ホスト状態情報を用いるネットワーク負荷分散
JP2005056347A (ja) * 2003-08-07 2005-03-03 Fujitsu Ltd サーバ機能引継方法およびサーバ機能引継プログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010511964A (ja) * 2006-12-05 2010-04-15 クゥアルコム・インコーポレイテッド ゼロ単一障害点ロード・バランサ(azerosinglepointoffailureloadbalancer)の装置および方法
JP2010526362A (ja) * 2007-05-03 2010-07-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) クラスタ化されたソフトウェアエンティティのための動的cliマッピング
JP2009003625A (ja) * 2007-06-20 2009-01-08 Yokogawa Electric Corp フィールド機器
JP2009025965A (ja) * 2007-07-18 2009-02-05 Hitachi Ltd フェールオーバにおける引き継ぎ先を自律的に変更する計算機システム及び方法
US7895468B2 (en) 2007-07-18 2011-02-22 Hitachi, Ltd. Autonomous takeover destination changing method in a failover
JP2012083891A (ja) * 2010-10-08 2012-04-26 Buffalo Inc フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法
WO2012101785A1 (ja) * 2011-01-26 2012-08-02 富士通株式会社 管理装置、管理方法および管理プログラム
JP5741595B2 (ja) * 2011-01-26 2015-07-01 富士通株式会社 管理装置、管理方法および管理プログラム
KR101286159B1 (ko) 2011-11-25 2013-07-15 한국과학기술정보연구원 Mpi 병렬 프로세스 생성 및 종료 방법과 장치, 그에 대한 기록매체
JP2015070446A (ja) * 2013-09-30 2015-04-13 富士通株式会社 通信システム、通信装置、プログラム、および方法
CN112714166A (zh) * 2020-12-22 2021-04-27 新华三大数据技术有限公司 分布式存储系统的多集群管理方法及装置
CN112714166B (zh) * 2020-12-22 2022-03-29 新华三大数据技术有限公司 分布式存储系统的多集群管理方法及装置

Similar Documents

Publication Publication Date Title
JP2006323526A (ja) クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ
JP5164628B2 (ja) ネットワークスイッチ装置、サーバシステム及びサーバシステムにおけるサーバ移送方法
US8903963B2 (en) Method and apparatus for web based storage on demand
EP1451687B1 (en) Real composite objects for providing high availability of resources on networked systems
JP2007226400A (ja) 計算機管理方法、計算機管理プログラム、実行サーバの構成を管理する待機サーバ及び計算機システム
JP2008293117A (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
JP2010003061A (ja) 計算機システム及びそのi/o構成変更方法
JP2009217314A (ja) 情報処理装置、サーバ、データ処理方法、記憶媒体、プログラム
JP5979986B2 (ja) 配信システム及びその制御方法
US11604806B2 (en) System and method for highly available database service
US20150106496A1 (en) Method and Apparatus For Web Based Storage On-Demand
WO2015198440A1 (ja) 管理サーバ、計算機システム及び方法
JP2007156618A (ja) 情報処理システムおよび情報処理装置の割当管理方法
US11917001B2 (en) Efficient virtual IP address management for service clusters
CN102420820A (zh) 一种集群系统中的隔离方法和装置
CN113746641B (zh) 一种基于分布式存储的odx协议处理方法
JP2016045930A (ja) 管理システム、及び、管理システムの制御方法
JP2010113587A (ja) ストレージシステムおよびストレージシステムによるファイルシステムの管理方法
JP2004318578A (ja) 情報処理システム
JP5491934B2 (ja) サーバ装置、及び情報処理システムの制御方法、並びにプログラム
JP2002009791A (ja) Ipアドレスを動的に割り当てるdhcpサーバシステム及びipアドレスを動的に割り当てるdhcpサーバ
US20150142960A1 (en) Information processing apparatus, information processing method and information processing system
JP4375121B2 (ja) データベース管理システムにおける処理代行方法
JP5544516B2 (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ
JP2017162416A (ja) レプリケーションプログラム、冗長化システム、およびレプリケーション方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101129

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101224