JP5667506B2 - クラスタシステムおよびソフトウェアアップデート方法 - Google Patents

クラスタシステムおよびソフトウェアアップデート方法 Download PDF

Info

Publication number
JP5667506B2
JP5667506B2 JP2011099964A JP2011099964A JP5667506B2 JP 5667506 B2 JP5667506 B2 JP 5667506B2 JP 2011099964 A JP2011099964 A JP 2011099964A JP 2011099964 A JP2011099964 A JP 2011099964A JP 5667506 B2 JP5667506 B2 JP 5667506B2
Authority
JP
Japan
Prior art keywords
server
cluster
servers
new
load balancer
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.)
Active
Application number
JP2011099964A
Other languages
English (en)
Other versions
JP2012230638A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011099964A priority Critical patent/JP5667506B2/ja
Publication of JP2012230638A publication Critical patent/JP2012230638A/ja
Application granted granted Critical
Publication of JP5667506B2 publication Critical patent/JP5667506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

クラスタシステムにおけるソフトウェアアップデート技術に関する。
近年、Webサーバホスティング等の分野では、データセンタのようなサーバ管理事業者が一括してサーバを管理し、サービス提供事業者をホスティングするIaaS(Infrastructure as a Service)等と呼ばれる形態が一般化している(非特許文献1参照)。ここで、サービスの需要増時や、そのサービスを提供しているサーバが障害によって離脱した場合に、速やかに要求に対応するためには、ある程度の待機余剰資源(待機余剰サーバ)を用意しておく必要がある。また、近年では、現用系サーバと待機系サーバの二重化構成をとるのではなく、サーバをN台クラスタリングしたN-Active構成が登場している。N-Active構成は、二重化構成に比べて資源利用効率が高いだけでなく、より柔軟にサーバの追加および削除が可能である(非特許文献2参照)。さらに、需要に応じて、サーバプールに集約されたサーバを各クラスタに動的に追加したり削除したりすることにより、全体の設備利用効率を向上させる技術が提案されている(非特許文献3参照)。
Amazon Elastic Compute Cloud (Amazon EC2)、[online]、[平成23年3月31日検索]、インターネット、<URL:http://aws.amazon.com/ec2/> Mobicents、[online]、[平成23年3月31日検索]、インターネット、<URL: http://www.mobicents.org/> 西村豪生他、高可用ネットワークサーバの資源運用柔軟化に向けた高速リモートブート機構、信学技報、NS2010-148、pp.37-42、Jan、2011.
ここで、例えば、電話のようなライフラインサービスでは、サーバのソフトウェアのアップデート時にも無停止でサービスを提供し続けることが必要である。N-Active構成では、サーバのソフトウェアの更新中にN台の待機資源(待機サーバ)をサーバプールから取得する必要が生じる。このため、1つのクラスタが平常時の2倍の台数のサーバを占有することになり、他のクラスタへ割り振るサーバが枯渇するおそれがある。そこで、本発明は、N-Active構成のクラスタがサービス無停止でソフトウェアのアップデートを行う場合において、占有されるサーバの台数を低減することを目的とする。
前記した課題を解決するため、本発明は、N-Active構成のクラスタへのサーバの追加および削除と、サーバのソフトウェアのバージョンアップとを行うクラスタ管理装置と、追加対象のサーバ群と、外部装置からクラスタへの処理要求を、当該クラスタのいずれかのサーバへ振り分けるロードバランサとを備えるクラスタシステムが以下の処理を行うこととした。すなわち、このクラスタシステムのロードバランサは、処理要求の振り分け先となるサーバを示した振り分け情報を参照して、処理要求の振り分け先となるサーバを決定し、決定したサーバへ、処理要求を送信する。また、クラスタシステムのクラスタ管理装置は、クラスタへの追加対象として選択したサーバへ、当該選択したサーバが用いるブートイメージを送信し、サーバの起動処理を行う。クラスタ管理装置は、ソフトウェアのアップデートの指示を受け付けたとき、ソフトウェアを用いるクラスタのサーバのうち、アップデート前のソフトウェアがインストールされたサーバを、旧クラスタのサーバとし、アップデート後のソフトウェアがインストールされたサーバを、新クラスタのサーバとし、旧クラスタのサーバ台数をN台としたとき、1台以上N台未満の所定台数のサーバを選択する。そして、選択したサーバの起動し、ソフトウェアを用いるクラスタのサーバへの処理要求を行うロードバランサを特定する。この後、クラスタ管理装置は、この特定したロードバランサの振り分け情報に、新たな処理要求を受け付けたときの当該処理要求の振り分け先のサーバとして選択した新クラスタのサーバを示す新テーブルを設定する。
また、クラスタ管理装置は、サーバそれぞれの負荷状況を監視し、新クラスタのサーバの負荷が所定の第1の閾値以上のとき、新クラスタへ新たに追加するサーバを選択する。そして、クラスタ管理装置は、この選択したサーバの起動を指示し、新クラスタのサーバへの処理要求を行うロードバランサを特定し、特定したロードバランサの振り分け情報の新テーブルに、選択したサーバを追加する。
さらに、クラスタ管理装置は、サーバそれぞれの負荷状況を監視し、旧クラスタのサーバの負荷が所定の第2の閾値以下となったとき、旧クラスタから削除するサーバを選択する。そして、クラスタ管理装置は、選択したサーバへの処理要求を行うロードバランサを特定し、特定したロードバランサの振り分け情報から、選択したサーバを削除する。
このようにすることで、クラスタシステムのクラスタ管理装置は、ロードバランサにおいて既に受け付け済みの処理要求については、旧クラスタのサーバへ振り分け、新たな処理要求を受け付けたときは、アップデート後のソフトウェアがインストールされたサーバ(新クラスタのサーバ)に振り分けるよう設定する。つまり、ロードバランサにおいて、旧クラスタへの処理要求の振り分けに用いる現テーブルと、新クラスタへの処理要求の振り分けに用いる新テーブルとを併存させる。また、クラスタ管理装置は、新クラスタのサーバの台数を、1台以上N台未満の所定台数(新クラスタを構成する最小限の台数)とする。これにより、サービス無停止でソフトウェアのバージョンアップを行うとき、旧クラスタと同数のサーバを用意しておく必要がなくなる。
また、クラスタ管理装置は、新クラスタのサーバの負荷が大きくなったとき、これに応じて新クラスタにサーバを追加する。これにより、サービス無停止でソフトウェアのバージョンアップを行いたいときに、バージョンアップしたソフトウェアをインストールしたサーバの台数を必要以上に増やす必要がなくなる。
さらに、クラスタ管理装置は、旧クラスタのサーバの負荷が小さくなったとき、これに応じて旧クラスタのサーバを削減する。つまり、ロードバランサは、新たな処理要求については、新クラスタのサーバに振り分けていくので、旧クラスタのサーバ(バージョンアップ前のソフトウェアを用いるサーバ)への処理要求は徐々に減っていく。よって、この旧クラスタのサーバを、振り分け情報から削除してもよくなる。クラスタ管理装置は、ロードバランサの振り分け情報から旧クラスタのサーバを削除することで、このサーバを他のクラスタにおけるサーバ資源として利用できるようになる。つまり、限られたサーバ資源を有効活用できる。
また、本発明は、クラスタシステムのクラスタ管理装置が、前記旧クラスタから削除するサーバとして、前記処理要求を処理中のサーバを選択したとき、当該サーバで行っている処理を、前記旧クラスタのサーバから選択した他のいずれかのサーバに引き継ぐよう指示する。
このようにすることで、クラスタ管理装置は、旧クラスタのサーバが処理中であったとしても、旧クラスタのサーバの台数を削減できる。
本発明によれば、N-Active構成のクラスタがサービス無停止でソフトウェアのアップデートを行う場合において、占有されるサーバの台数を低減できる。
本実施の形態のクラスタ管理装置を含むシステム構成例を示した図である。 図1の振り分け情報の更新を例示した図である。 図1のサーバ情報を例示した図である。 図1のサービス情報を例示した図である。 図1のブートイメージ情報を例示した図である。 図1の振り分け情報を例示した図である。 図1のクラスタ管理装置によるサーバ追加手順を示した図である。 図1のクラスタ管理装置によるクラスタアップデート手順を示した図である。 図1のクラスタ管理装置による旧クラスタのサーバ減設および新クラスタのサーバ増設手順を示した図である。
本発明を実施するための形態(以下、実施の形態とする)を説明する。まず、システムの概要を説明する。なお、以下の説明において、クラスタは、サーバプール400から選択されたN個のサーバ401から構成される(N-Active構成である)ものとする。
図1に示すように、クラスタシステム2000は、保守ネットワーク600によって保守者端末100と接続し、外部ネットワーク900によって利用者端末200と接続する。サービス提供者は、保守者端末100により、クラスタシステム2000に対し、クラスタへのサーバ追加コマンドやクラスタアップデートコマンド(クラスタで用いるソフトウェアのアップデートのコマンド)を入力する。また、ユーザは、利用者端末200を用い、クラスタシステム2000上で提供されるサービスを外部ネットワーク900越しに利用する。
また、クラスタシステム2000は、クラスタ管理装置300と、サーバ401の集合であるサーバプール400と、ロードバランサ501の集合であるロードバランサプール500とを含んで構成される。クラスタ管理装置300とサーバ401とは、管理ネットワーク700経由で接続される。クラスタ管理装置300は、この管理ネットワーク700経由で、サーバ401へブートイメージを配信する。サーバ401とロードバランサ501とは内部ネットワーク800により接続される。また、ロードバランサ501とクラスタ管理装置300とは、管理ネットワーク700経由で接続される。なお、クラスタ管理装置300は、クラスタ内のサーバ401で用いるソフトウェアがアップデートされると、このアップデートされたソフトウェアを含むブートイメージ(以下、適宜「アップデートされたブートイメージ」という)をサーバ401へ配信する。
また、保守ネットワーク600、管理ネットワーク700、内部ネットワーク800および外部ネットワーク900は、例えば、LAN(Local Area Network)またはIP(Internet Protocol)網である。なお、以下の説明において、アップデートの指示を受けたソフトウェアを用いるクラスタのサーバ401のうち、アップデート前のソフトウェアがインストールされたサーバ401を、旧クラスタのサーバ401という。また、アップデート後のソフトウェアがインストールされたサーバ401を、新クラスタのサーバ401という。
ここで、クラスタ管理装置300は、クラスタのサーバ401で用いるソフトウェアがアップデートされると、アップデートされたブートイメージを、最小限の台数のサーバ401に配信し、起動させる。このアップデートされたブートイメージをインストールしたサーバ401群を新クラスタとする。そして、この起動したサーバ401(例えば、サーバ401E,401F)を、振り分け情報502の新クラスタのサーバ401群を示したテーブル(新テーブル)に登録する(図2(a)→図2(b)参照)。その後、ロードバランサ501は、利用者端末200から新たな処理要求を受信したときは、この新テーブルを参照して、サーバ401(例えば、図2(b)のサーバ401E,401F)へ、処理要求を送信する。つまり、ロードバランサ501において、振り分け情報502に、ソフトウェアがアップデートされたサーバ401のクラスタ(新クラスタ)を示す新テーブルと、ソフトウェアのアップデート前のサーバ401のクラスタ(旧クラスタ)を示す現テーブルとを併存させる。
その後、旧クラスタのサーバ401での処理が減少してくると、クラスタ管理装置300は、振り分け情報502における旧クラスタのサーバ台数を減少させる(図2(c)および(d)参照)。また、新クラスタのサーバ401への処理要求が増加すると、クラスタ管理装置300は、振り分け情報502における新クラスタのサーバ台数を増加させる(図2(c)および(d)参照)。つまり、クラスタ管理装置300は、新クラスタおよび旧クラスタそれぞれの処理負荷に応じて、新クラスタのサーバ台数を徐々に増加させ、また、旧クラスタのサーバ台数を徐々に減少させる。これにより、クラスタ管理装置300は、サービス無停止でサーバ401のソフトウェアのバージョンアップを行うとき、予めサーバプール400から多数のサーバ401をクラスタに追加しておく必要がなくなるので、サーバプール400内のサーバ資源を効率よく利用できる。
<構成>
図1に戻り、システムの構成を詳細に説明する。クラスタ管理装置300は、保守者端末100から入力されたコマンドに基づき、サーバプール400のサーバ401から、クラスタに組み込むサーバ401を選択すると、このサーバ401にブートイメージを配信し、起動させる。
このクラスタ管理装置300は、コマンド処理部301と、サーバ情報管理部302と、サービス情報管理部303と、ブートイメージ管理部304と、遠隔ブート部305と、資源調節部306とを備える。また、このクラスタ管理装置300の記憶部(図示省略)は、サーバ情報307と、サービス情報308と、ブートイメージ情報309とを記憶する。このクラスタ管理装置300は、入出力インタフェース、通信インタフェース、CPU(Central Processing Unit)、メモリ等を備えるコンピュータにより実現される。
コマンド処理部301は、クラスタへのサーバ追加やクラスタアップデート(そのクラスタで用いるソフトウェアのアップデート)コマンド等のコマンドを受け付ける。コマンド処理部301は、クラスタアップデートコマンドを受け付けた場合に、サーバ情報管理部302経由で、サーバ情報307において「利用可能」となっている1台以上のサーバ401を選択する。ここで選択する台数は、旧クラスタのサーバ台数(N台)未満で、新クラスタを構成する最小限の台数であり、1台のみでもよいし、冗長化のため2台としてもよい。コマンド処理部301は、この選択したサーバ401の起動を遠隔ブート部305へ指示する。次に、コマンド処理部301は、サービス情報管理部303経由で、アップデートしたソフトウェアを用いるクラスタのサーバ401への処理要求を行うロードバランサ501を特定する。そして、コマンド処理部301は、この特定したロードバランサ501の振り分け情報502における新テーブル(図2参照)に登録するサーバ401を選ぶ。ロードバランサ501は、サーバ401のソフトウェアのアップデート後、利用者端末200から新たな処理要求を受け付けたときには、この新テーブルを参照することで、新たな処理要求をアップデート後のソフトウェアを備えるサーバ401へ振り分けることになる。なお、新クラスタにサーバ401が追加されると、サーバ情報管理部302は、サーバ情報307(図3参照)における当該サーバ401の状態を「利用可能」から「利用中」に更新する。
サーバ情報管理部302は、サーバ情報307(図3参照)の読み出しおよび書き込みを行う。このサーバ情報307は、サーバごとに、そのサーバ401の状態、つまり、そのサーバ401が利用中であるか、利用可能であるか、利用不可能であるかを示した情報である。図3に例示するサーバ情報307は、サーバプール400内のサーバ401A〜401Cがクラスタに追加されサービス提供中であることを示す。さらに、サーバ401A,401Bは、サービスAというサービスを提供するクラスタによって利用されており、サーバ401Cは、サービスBを提供するクラスタによって利用されていることを示す。また、サーバ401Dは「利用可能」であり、需要に応じてクラスタに追加可能な状態であることを示す。さらに、サーバ401Eは「利用不可能」であり、故障等何らかの理由で、クラスタに追加できない状態であることを示す。サーバ情報管理部302は、サーバ401の状態が変化すると、この状態(そのサーバ401が利用中であるか、利用可能であるか、利用不可能であるか)をサーバ情報307に反映させる。なお、このサーバ情報307は、コマンド処理部301や資源調節部306が、クラスタに追加するサーバ401を選択する際に参照される。
サービス情報管理部303は、サービス情報308(図4参照)の読み出しおよび書き込みを行う。このサービス情報308は、クラスタシステム2000に登録されているサービスのID(サービスID)ごとに、このサービスを提供するクラスタのサーバ401への処理要求の振り分けを行うロードバランサ501と、そのサービスを提供するためのソフトウェアが含まれたブートイメージ(ブートイメージのイメージID)とを示す情報である。図4に例示するサービス情報308は、クラスタシステム2000に、サービスA,B,C…というサービスが登録されており、サービスAのサービスを提供するクラスタのサーバ401のロードバランサが「501A」、サービスAを提供するためのソフトウェアが含まれたブートイメージが「BI1」であることを示す。なお、このサービス情報308は、資源調節部306が振り分け情報502の更新を行うべきロードバランサ501を特定するときや、クラスタのサーバ401に配信すべきブートイメージを特定する際に参照される。
ブートイメージ管理部304は、ブートイメージ情報309の読み出しおよび書き込みを行う。このブートイメージ情報309(図5参照)は、サービス提供に必要なブートイメージの種別(イメージID)ごとに、ブートイメージの格納場所を示した情報である。ブートイメージは、サービスの提供に必要なソフトウェアを含んだファイルであり、サーバ401に配信されるファイルである。ブートイメージ管理部304は、イメージIDの入力を受け付けると、そのイメージIDのブートイメージの格納場所を示すパスを返す。パスは、クラスタ管理装置300がアクセス可能な場所であれば、クラスタ管理装置300のローカルディスク上でもよいし、リモートストレージ上でもよい。なお、ソフトウェアがアップデートされると、ブートイメージ管理部304は、ブートイメージ情報309における、ブートイメージのパスを、アップデートされたソフトウェアを含むブートイメージのパスに変更する。例えば、図5のブートイメージ情報309において、「BI1」のブートイメージに含まれるソフトウェアがアップデートされると、「BI1」のパスを「/path/to/1.img」から「/path/to/1_new.img」に変更する。
遠隔ブート部305は、コマンド処理部301または資源調節部306からの指示に基づき、サーバプール400内のサーバ401をブートする(起動させる)。ここで、サーバ401が電源オフになっている場合、遠隔ブート部305は、IPMI(Intelligent Platform Management Interface)等の管理インタフェースを用いて、このサーバ401の遠隔電源オンを行う。そして、遠隔ブート部305は、サービス情報管理部303およびブートイメージ管理部304に対し、サーバ401が用いるブートイメージを問い合わせ、この問い合わせ結果から得られたブートイメージを、管理ネットワーク700経由で配信する。
資源調節部306は、新テーブルの設定後、各サーバ401の負荷状況を監視する。そして、新クラスタのサーバ401の負荷が所定の閾値を超えたとき、新クラスタへのサーバ401の追加(増設)を行う。つまり、まず、資源調節部306は、新クラスタへ追加するサーバ401を選択し、この選択したサーバ401の起動を遠隔ブート部305へ指示する。次に、資源調節部306は、ロードバランサ501の振り分け情報502の新テーブルに選択したサーバ401を追加する。さらに、資源調節部306は、旧クラスタのサーバ401の負荷が所定の閾値以下となったとき、旧クラスタからサーバ401を削除(減設)する。つまり、まず、資源調節部306は、サーバ情報管理部302経由で、旧クラスタから削除するサーバ401を選択する。次に、資源調節部306は、サービス情報管理部303経由で、この選択したサーバ401への処理要求を行うロードバランサ501を特定する。そして、資源調節部306は、このロードバランサ501の振り分け情報502の現テーブルから、この選択したサーバ401を削除する。次に、資源調節部306は、この選択したサーバの電源オフを遠隔ブート部305へ指示する。なお、このようにしてサーバ401がクラスタに追加されると、サーバ情報307(図3参照)における当該サーバ401の状態が「利用可能」から「利用中」に更新される。また、サーバ401がクラスタから削除されると、サーバ情報307(図3参照)における当該サーバ401の状態が「利用中」から「利用可能」に更新される。
サーバ401は、電源オンになった後、クラスタ管理装置300から配信されたブートイメージを受信し、このブートイメージにより、サーバ401を起動させる。サーバ401も、入出力インタフェース、通信インタフェース、CPU、記憶部等を備えるコンピュータにより実現される。
ロードバランサ501は、処理要求の振り分け先(サーバ401)を示した振り分け情報502と、この振り分け情報502を参照して、利用者端末200からの処理要求を振り分ける処理要求振り分け部503とを備える。この振り分け情報502は、図2および図6に例示するように、現テーブルと新テーブルとを備える。この振り分け情報502は、ロードバランサ501の記憶部の所定領域に記憶される。この現テーブルは、旧クラスタのサーバ401(ソフトウェアのアップデート前のサーバ401)を示した情報であり、新テーブルは、新クラスタのサーバ401(ソフトウェアのアップデート後のサーバ401)を示した情報である。処理要求振り分け部503は、利用者端末200から新たな処理要求を受け付けたときには、振り分け情報502の新テーブルの情報を参照して、処理要求の振り分け先を決定する。なお、振り分け情報502は、クラスタ管理装置300の資源調節部306により更新される。この振り分け情報502は、コマンド処理部301によっても更新可能である。このロードバランサ501も、入出力インタフェース、通信インタフェース、CPU、記憶部等を備えるコンピュータにより実現される。
<サーバ追加の処理手順>
次に、図7を用いて、図1のクラスタ管理装置300のコマンド処理部301が、サーバ追加コマンドを受け付けたときの処理手順を説明する。このサーバ追加コマンドは、少なくともサービスIDおよび追加サーバ数を含む。コマンド処理部301が、サーバ追加コマンドを受け付けると(S11)、サーバ情報管理部302経由でサーバ情報307(図3参照)を参照し、追加サーバ数と同数の利用可能状態のサーバ401(例えば、サーバ401D)を選択する(S12)。ここでの選択は、サーバ情報307の先頭から探索して利用可能状態のサーバ401を上から必要数選択する方法や、各サーバ401のハードウェアスペックを参照して、最も性能がよいサーバ401を選択する方法が考えられる。
コマンド処理部301は、サービス情報管理部303経由でサービス情報308(図4参照)を参照して、サービスIDから必要なブートイメージおよびロードバランサIDを取得する(S13)。例えば、図4に例示するサービス情報308を参照して、サービスAのブートイメージのイメージID「BI1」と、ロードバランサID「501A」のアドレスとを取得する。そして、ブートイメージ情報309(図5参照)に示されるイメージID「BI1」のパスを参照して、イメージID「BI1」のブートイメージを取得する。その後、コマンド処理部301は、遠隔ブート部305に、S12で選択したサーバ401(例えば、サーバ401D)の遠隔電源オンを指示し、S13で取得したブートイメージを配信し、起動させる(S14)。起動が終わると、コマンド処理部301は、該当のロードバランサ501(例えば、ロードバランサ501A)にアクセスし、起動したサーバ401(例えば、サーバ401D)を、振り分け情報502の現テーブルへ登録する(S15、図6(b)参照)。
例えば、図6(a)に示す振り分け情報502の現テーブルには、サーバ401A〜401Cが登録されている。ここで、サーバ追加コマンドによってサービスAを提供するクラスタに、サーバ401Dを追加する場合、図6(b)に示すように現テーブルを書き換えてサーバ401Dを登録する。また、コマンド処理部301は、サーバ情報管理部302経由で追加したサーバ情報307(図3参照)における、この追加したサーバ401Dの状態を「利用可能」から「利用中」に書き換え、そのサーバ401Dが提供するサービスのサービスIDを登録する。
<クラスタアップデートの処理手順>
次に、図2および図8を用いて、図1のクラスタ管理装置300のコマンド処理部301が、クラスタアップデートコマンドを受け付けたときの処理手順を説明する。ここでは、例として、サービスAがサーバ401A〜401Dによって構成されており、このサービスAの提供のためのソフトウェアがアップデートされる場合について説明する。なお、サービスAのロードバランサ501が持つ振り分け情報502は、図2(a)のような状態であるとする。このクラスタアップデートコマンドは、少なくとも新クラスタを実行する上で必要なソフトウェアが含まれたブートイメージのパスを含む。ここで、新ブートイメージのパスが「/path/to/1_new.img」であるクラスタアップデート処理の手順について述べる。
コマンド処理部301は、クラスタアップデートコマンドを受け付けると(S21)、ブートイメージ管理部304経由で、ブートイメージ情報309(図5参照)を書き換える(S22)。例えば、図4に例示するサービス情報308において、サービスAのブートイメージのイメージIDは「BI1」なので、コマンド処理部301は、ブートイメージ管理部304経由で、図5のブートイメージ情報309におけるイメージID「BI1」のブートイメージのパスを「/path/to/1.img」から「/path/to/1_new.img」に書き換える。
その後、コマンド処理部301は、サーバ情報管理部302経由で、サーバ情報307を参照して、クラスタ(新クラスタ)を構成するサーバ401を選択する(S23)。前記したとおり、ここで選択するサーバ401の台数は、クラスタを構成する最小限の台数とする。この最小限の台数とは予め設定された台数であり、1台でもよいし、冗長化を考慮するのであれば2台でもよい。また、サーバ401の選択は、サーバ情報307の先頭から探索して利用可能状態のサーバ401を上から必要数選択してもよいし、各サーバ401のハードウェアスペックを参照して、最も性能がよいものから選択してもよい。
そして、コマンド処理部301は、前記したS13と同様に、サービス情報管理部303経由でサービス情報308を参照して、サービスIDから必要なブートイメージおよびロードバランサIDを取得する(S24)。例えば、図4に例示するサービス情報308を参照して、サービスAのブートイメージのイメージID「BI1」と、ロードバランサID「501A」とを取得する。そして、コマンド処理部301は、遠隔ブート部305経由で、サーバ追加コマンドの場合と同様に、S23で選択したサーバ401(例えば、サーバ401E,401F)を遠隔ブートし、ブートイメージ(アップデートされたブートイメージ)を配信して、選択したサーバ401を起動させる(S25)。例えば、サーバ401E,401Fへパス「/path/to/1_new.img」のブートイメージを配信し、サーバ401E,401Fを起動させる。ここで起動が終わると、コマンド処理部301は、該当のロードバランサ501(例えば、ロードバランサ501A)にアクセスし、起動したサーバ401(例えば、サーバ401E,401F)を、振り分け情報502の新テーブル(図2(b)参照)に登録する(S26)。このようにすることでロードバランサ501は、新たな処理要求については、新テーブルに登録されたサーバ401(例えば、サーバ401E,401F)へ振り分けるようになる。
なお、クラスタへのサーバ401の追加処理は、例えば、非特許文献3に記載の技術により行われる。
<旧クラスタのサーバ減設および新クラスタのサーバ増設>
クラスタ管理装置300は、以上の手順により、クラスタアップデートを実行した後、ロードバランサ501の振り分け情報502に登録された各サーバ401の負荷を監視し、旧クラスタのサーバ減設および新クラスタのサーバ増設を行う。図2および図9を用いて、旧クラスタのサーバ減設および新クラスタのサーバ増設の処理手順を説明する。
まず、図1のクラスタ管理装置300の資源調節部306は、ロードバランサ501の振り分け情報502に登録された各サーバ401の負荷を監視する(S31)、そして、資源調節部306は、旧クラスタ(振り分け情報502の現テーブルに登録されたサーバ401群)の負荷が小さくなったと判断したとき(S32のYes)、旧クラスタを構成するサーバ数を減少させる(S33)。そして、S31へ戻る。一方、資源調節部306は、旧クラスタの負荷は小さくなっていないが(S32のNo)、新クラスタ(振り分け情報502の新テーブルに登録されたサーバ401群)の負荷が大きくなっているとき(S34のYes)、新クラスタを構成するサーバ数を増加させる(S35)。そして、S31へ戻る。なお、旧クラスタの負荷が小さくなっておらず(S32のNo)、また、新クラスタの負荷も大きくなっていないとき(S34のNo)、S31へ戻る。
ここで、現クラスタの負荷が小さくなったか否かの判断は、現クラスタを構成するサーバ401のリソース(CPU、メモリ、ネットワーク等)使用率を参照して行われる。例えば、資源調節部306は、現クラスタ内のいずれかサーバ401の使用率がゼロになった場合、予め定められた閾値以下になった場合、または、現クラスタ全体の使用率が予め定められた閾値以下になった場合に、現クラスタの負荷が小さくなったと判断する。その場合、資源調節部306は、減設対象のサーバ401をランダムに選択してもよいし、最も使用率が低いサーバ401を選択してもよい。なお、現クラスタにおいて使用率がゼロになっていないサーバ401、すなわち、何らかの処理を行っているサーバ401を減設する場合には、現テーブル中の他のサーバ401に対してその処理および処理に関するセッション状態を譲渡し、処理を継続させればよい。
サーバ減設手順の一例を述べる。資源調節部306は、クラスタからの減設対象のサーバ401を決定し、必要であれば、この減設対象のサーバ401から他サーバへの処理の引継ぎを行う。処理が引き継がれる他サーバは、資源調節部306が現テーブル中のサーバ401からランダムに選択してもよいし、最もリソース使用率が少ないサーバ401を選択してもよい。その後、資源調節部306は、減設対象のサーバ401を、遠隔ブート部305経由で電源オフする。そして、サーバ情報管理部302は、サーバ情報307における、この電源オフにしたサーバ401の状態を「利用中」から「利用可能」に変更する。なお、資源調節部306は、減設対象のサーバ401を電源オフする際、この減設対象のサーバ401が有する何らかのデータ(ディスクに書き込んだログ等)を別の場所に転送し、バックアップをとってから電源オフするようにしてもよい。
また、新クラスタの負荷が大きくなったか否かの判断も、新クラスタを構成するサーバ401のリソース(CPU、メモリ、ネットワーク等)使用率を参照して行われる。例えば、資源調節部306は、新クラスタ内のいずれかのサーバ401の使用率が100%になった場合、または、新クラスタ全体の使用率が予め定められた閾値以上になった場合に、新クラスタの負荷が大きくなったと判断する。そして、資源調節部306は、前記したサーバ追加と同様の手順によって増設対象のサーバ401を起動し、ロードバランサ501の新テーブルにそのサーバ401を登録する。
例えば、図2(b)に示す振り分け情報502の状態において、旧クラスタのサーバ減設および新クラスタのサーバ増設の両方が必要となった場合、資源調節部306は、図2(c)に示すように振り分け情報502の現テーブルからサーバ401Dを削除し、新テーブルにサーバ401Gを追加する。この後、さらに、旧クラスタの減設および新クラスタの増設の両方が必要となった場合、資源調節部306は、図2(d)に示すように、現テーブルからサーバ401Cを削除し、新テーブルにサーバ401Hを追加する。その後、資源調節部306は、サーバ401A,401Bの両方において、すべての処理が終了したことを確認すると、現テーブルからサーバ401A,401Bを削除し、図2(e)に示すように現テーブルのエントリがなくなる。この状態になると、図2(f)に示すように資源調節部306は、新テーブルに登録されたサーバ401(サーバ401E〜401H)をすべて現テーブルに移動し、新テーブルをクリアする。これにより、ロードバランサ501は、次回のクラスタアップデートに備えることができる。以上の処理により、クラスタ管理装置300は、クラスタアップデートを完了する。このように資源調節部306が、旧クラスタおよび新クラスタの負荷状態を監視しながら、旧クラスタのサーバ減設および新クラスタのサーバ増設を行うので、サーバプール400内のサーバ資源を無駄なく利用できる。
なお、前記した処理において、資源調節部306が、サーバ401A,401Bのエントリを現テーブルから削除するのは、サーバ401A,401Bにおける処理要求の処理が完了してからでもよいし、クラスタアップデート開始から処定時間経過後でもよい。また、旧クラスタ全体の平均リソース使用率が予め定められた閾値以下になったときでもよい。但し、旧クラスタに処理中のサーバ401が存在した場合、新クラスタでその処理が引き継ぐようにすればよい。
100 保守者端末
200 利用者端末
300 クラスタ管理装置
301 コマンド処理部
302 サーバ情報管理部
303 サービス情報管理部
304 ブートイメージ管理部
305 遠隔ブート部
306 資源調節部
307 サーバ情報
308 サービス情報
309 ブートイメージ情報
400 サーバプール
401 サーバ
500 ロードバランサプール
501 ロードバランサ
502 振り分け情報
503 処理要求振り分け部
600 保守ネットワーク
700 管理ネットワーク
800 内部ネットワーク
900 外部ネットワーク
2000 クラスタシステム

Claims (3)

  1. N-Active構成のクラスタへのサーバの追加および削除と、前記サーバのソフトウェアのバージョンアップとを行うクラスタ管理装置と、前記追加対象のサーバ群と、外部装置から前記クラスタへの処理要求を、当該クラスタのいずれかのサーバへ振り分けるロードバランサとを備えるクラスタシステムであって、
    前記ロードバランサは、
    前記処理要求の振り分け先となるサーバを示した振り分け情報を記憶する記憶部と、
    前記振り分け情報を参照して、前記処理要求の振り分け先となるサーバを決定し、前記決定したサーバへ、前記処理要求を送信する処理要求振り分け部とを備え、
    前記クラスタ管理装置は、
    前記クラスタへの追加対象として選択したサーバへ、当該選択したサーバが用いるブートイメージを送信し、当該サーバの起動処理を行う遠隔ブート部と、
    前記ソフトウェアのアップデートの指示を受け付けたとき、前記ソフトウェアを用いるクラスタのサーバのうち、前記アップデート前のソフトウェアがインストールされたサーバを、旧クラスタのサーバとし、前記アップデート後のソフトウェアがインストールされたサーバを、新クラスタのサーバとし、前記旧クラスタのサーバ台数をN台としたとき、1台以上N台未満の所定台数のサーバを選択し、当該選択したサーバの起動を前記遠隔ブート部へ指示し、前記ソフトウェアを用いるクラスタのサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報に、新たな前記処理要求を受け付けたときの当該処理要求の振り分け先のサーバとして当該選択した新クラスタのサーバを示す新テーブルを設定するコマンド処理部と
    前記サーバそれぞれの負荷状況を監視し、前記新クラスタのサーバの負荷が所定の第1の閾値以上のとき、前記新クラスタへ新たに追加するサーバを選択し、当該選択したサーバの起動を前記遠隔ブート部へ指示し、前記新クラスタのサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報の前記新テーブルに、当該選択したサーバを追加するとともに、
    前記サーバそれぞれの負荷状況を監視し、前記旧クラスタのサーバの負荷が所定の第2の閾値以下となったとき、前記旧クラスタから削除するサーバを選択し、当該選択したサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報から、当該選択したサーバを削除する資源調節部とを備えることを特徴とするクラスタシステム。
  2. 前記資源調節部が、
    前記旧クラスタから削除するサーバとして、前記処理要求を処理中のサーバを選択したとき、当該サーバで行っている処理を、前記旧クラスタのサーバから選択した他のいずれかのサーバに引き継ぐよう指示することを特徴とする請求項に記載のクラスタシステム。
  3. N-Active構成のクラスタへのサーバの追加および削除と、前記サーバのソフトウェアのバージョンアップとを行うクラスタ管理装置と、前記追加対象のサーバ群と、外部装置から前記クラスタへの処理要求の振り分け先となるサーバを、振り分け情報を参照して決定するロードバランサとを備えるクラスタシステムにおいて、
    記クラスタ管理装置が
    前記クラスタへの追加対象として選択したサーバへ、当該選択したサーバが用いるブートイメージを送信し、当該サーバの起動処理を行うステップと、
    前記ソフトウェアのアップデートの指示を受け付けたとき、前記ソフトウェアを用いるクラスタのサーバのうち、前記アップデート前のソフトウェアがインストールされたサーバを、旧クラスタのサーバとし、前記アップデート後のソフトウェアがインストールされたサーバを、新クラスタのサーバとし、前記旧クラスタのサーバ台数をN台としたとき、1台以上N台未満の所定台数のサーバを選択するステップと、
    当該選択したサーバの起動を指示し、前記ソフトウェアを用いるクラスタのサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報に、新たな前記処理要求を受け付けたときの当該処理要求の振り分け先のサーバとして当該選択した新クラスタのサーバを示す新テーブルを設定するステップと
    前記サーバそれぞれの負荷状況を監視し、前記新クラスタのサーバの負荷が所定の第1の閾値以上のとき、前記新クラスタへ新たに追加するサーバを選択し、当該選択したサーバの起動を指示し、前記新クラスタのサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報の前記新テーブルに、当該選択したサーバを追加するステップと、
    前記サーバそれぞれの負荷状況を監視し、前記旧クラスタのサーバの負荷が所定の第2の閾値以下となったとき、前記旧クラスタから削除するサーバを選択し、当該選択したサーバへの処理要求を行うロードバランサを特定し、前記特定したロードバランサの振り分け情報から、当該選択したサーバを削除するステップとを実行することを特徴とするソフトウェアアップデート方法。
JP2011099964A 2011-04-27 2011-04-27 クラスタシステムおよびソフトウェアアップデート方法 Active JP5667506B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011099964A JP5667506B2 (ja) 2011-04-27 2011-04-27 クラスタシステムおよびソフトウェアアップデート方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011099964A JP5667506B2 (ja) 2011-04-27 2011-04-27 クラスタシステムおよびソフトウェアアップデート方法

Publications (2)

Publication Number Publication Date
JP2012230638A JP2012230638A (ja) 2012-11-22
JP5667506B2 true JP5667506B2 (ja) 2015-02-12

Family

ID=47432110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011099964A Active JP5667506B2 (ja) 2011-04-27 2011-04-27 クラスタシステムおよびソフトウェアアップデート方法

Country Status (1)

Country Link
JP (1) JP5667506B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102260549B1 (ko) * 2020-09-10 2021-06-04 한국전자기술연구원 연합 컨테이너 환경에서 자원 사용률 및 지리적 위치 기반 로드밸런싱 방법
US11106454B2 (en) 2016-04-15 2021-08-31 Nec Corporation Software update control device, software update control method, and recording medium having software update control program stored thereon

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812945A (zh) * 2014-02-26 2014-05-21 可牛网络技术(北京)有限公司 一种数据升级的方法和中心服务器
CN110198221A (zh) * 2018-02-27 2019-09-03 中国移动通信集团有限公司 一种负载均衡的实现方法、装置及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163241A (ja) * 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
JP2004164236A (ja) * 2002-11-12 2004-06-10 Canon Inc データ更新方法
JPWO2006040810A1 (ja) * 2004-10-12 2008-05-15 富士通株式会社 ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
WO2007077600A1 (ja) * 2005-12-28 2007-07-12 Fujitsu Limited 運用管理プログラム、運用管理方法および運用管理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106454B2 (en) 2016-04-15 2021-08-31 Nec Corporation Software update control device, software update control method, and recording medium having software update control program stored thereon
KR102260549B1 (ko) * 2020-09-10 2021-06-04 한국전자기술연구원 연합 컨테이너 환경에서 자원 사용률 및 지리적 위치 기반 로드밸런싱 방법

Also Published As

Publication number Publication date
JP2012230638A (ja) 2012-11-22

Similar Documents

Publication Publication Date Title
JP5513997B2 (ja) 通信システムおよび通信システム更新方法
US9874924B1 (en) Equipment rack power reduction using virtual machine instance migration
JP5575641B2 (ja) 共有データセンタ災害復旧システム及び方法
US10645152B2 (en) Information processing apparatus and memory control method for managing connections with other information processing apparatuses
US10241876B1 (en) Cooperative fault tolerance and load balancing
JP6182265B2 (ja) コンピューティングセッションの管理
US9906596B2 (en) Resource node interface protocol
WO2012056596A1 (ja) 計算機システム及び処理制御方法
JP6840099B2 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
WO2016030973A1 (ja) マルチテナントリソース調停方法
JP5667506B2 (ja) クラスタシステムおよびソフトウェアアップデート方法
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN115665147A (zh) 分布式计算网络中的数据平面api
JP2005031987A (ja) コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム
CN106911741B (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
JP2004220151A (ja) 新旧モジュールの切り替え機能を有するサーバ装置
JP7206981B2 (ja) クラスタシステム、その制御方法、サーバ、及びプログラム
US20160103714A1 (en) System, method of controlling a system including a load balancer and a plurality of apparatuses, and apparatus
JP2017129988A (ja) バッチ制御システム、バッチ制御プログラム、及びバッチ制御方法
JP7176633B2 (ja) 仮想化基盤制御装置、仮想化基盤制御方法および仮想化基盤制御プログラム
JP5444257B2 (ja) ソフトウェアイメージ配信方法、リポジトリ装置、サーバおよびシステム
US10261871B2 (en) Modification of a cluster of communication controllers
JP6277069B2 (ja) 仮想機器管理装置、仮想機器管理方法及び仮想機器管理プログラム
JP5298055B2 (ja) 資源内に配置された制御対象機器を制御する機器制御装置、プログラム及び方法
JP2008129828A (ja) ブレードサーバの動的割り当て方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140528

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: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141212

R150 Certificate of patent or registration of utility model

Ref document number: 5667506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150