JP2006260059A - サーバ装置 - Google Patents
サーバ装置 Download PDFInfo
- Publication number
- JP2006260059A JP2006260059A JP2005075565A JP2005075565A JP2006260059A JP 2006260059 A JP2006260059 A JP 2006260059A JP 2005075565 A JP2005075565 A JP 2005075565A JP 2005075565 A JP2005075565 A JP 2005075565A JP 2006260059 A JP2006260059 A JP 2006260059A
- Authority
- JP
- Japan
- Prior art keywords
- server
- group
- server device
- load
- processing
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 137
- 230000004044 response Effects 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 128
- 230000008569 process Effects 0.000 claims description 115
- 238000009826 distribution Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 25
- 238000012544 monitoring process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000010365 information processing Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100028900 Caenorhabditis elegans pcs-1 gene Proteins 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】 全体を管理する装置や外付けの特殊な装置等を必要とせずに、グループ内のサーバ装置における負荷分散・均衡化を図る。負荷変動に対応して全サーバ装置が自立的に負荷を調整していき、常にサーバ装置間で均等に負荷を持つようにする。
【解決手段】 複数のサーバ{a,b,c}を含むサーバグループにおいて共通のグループIPアドレスを持つ。各サーバは、自サーバの処理の負荷を測定し、サーバグループの各サーバの負荷情報を保有し、負荷変動に応じて負荷情報をサーバグループ内に送信する。各サーバは、PCからグループIPアドレスを送信先とした処理要求を受信すると、負荷情報を参照して自サーバの負荷が最小であれば、処理を受け付ける。
【選択図】 図9
【解決手段】 複数のサーバ{a,b,c}を含むサーバグループにおいて共通のグループIPアドレスを持つ。各サーバは、自サーバの処理の負荷を測定し、サーバグループの各サーバの負荷情報を保有し、負荷変動に応じて負荷情報をサーバグループ内に送信する。各サーバは、PCからグループIPアドレスを送信先とした処理要求を受信すると、負荷情報を参照して自サーバの負荷が最小であれば、処理を受け付ける。
【選択図】 図9
Description
本発明は、PC(パソコン)などのクライアントからの要求を受け付けて処理を行うサーバ装置に関し、特に、複数のサーバ装置における負荷分散の技術に関する。
従来、サーバ装置毎に、メール、Web、DB(データベース)、アプリケーション実行などの機能を設定した構成において、PCなどのクライアントから、所望の機能に対応するサーバ装置を選び、該当サーバ装置を宛先とした通信アドレスを用いて処理要求を出していた。
そのため、PCが増加してくると、あるサーバ装置に対して負荷が増える。従って、そのたびに、負荷を分散するための外付けのサーバ装置を増設し、接続対象のPC側の設定も変更する必要があった。
また更に、近年では、サーバ装置の増設を容易にするため、“ブレードサーバ”と呼ばれる複数のサーバ装置を筐体に内蔵して、ブレードサーバ単位で挿抜を行う構成により、サーバ機能の性能アップを簡単に行う方式も出てきた。各ブレードサーバは、CPU、メモリやハードディスクドライブ(HDD)、ネットワーク制御機能などを持つ構成である。
ところが、上記のケースにおいても、やはり、複数のブレードサーバ間でどのように負荷分散するかについては、PC側での接続先設定を変更することにより負荷分散を図っていた。
上記不具合を改善するため、特許文献1においては、プロキシサーバの並列運転の構成において、お互い相手の負荷を通知し合い、PCから処理要求が来ると、まず、主となるサーバが一旦受け付け、相手サーバの負荷と比較し、それにより、前記処理要求を自サーバで処理するか、または、相手サーバに依頼することにより、負荷分散を図っていることが開示されている。
また、特許文献2においては、複数のサーバノードを持つ構成で、そのうちの一台が、まず、PCからの要求を受け付け、所定負荷以内であれば、その要求を自サーバで処理し、所定負荷を越えている場合は、他のサーバから、負荷情報を取得して、適切な負荷のサーバへ要求を転送することが開示されている。
また、特許文献3においては、管理サーバを設けた構成で、管理サーバが、各ブレードサーバのパフォーマンス情報を受け取り、かつ、各サーバのスループットなどのQoS属性が下回っていることにより、どのサーバにジョブを割り当てるかについての技術が開示されている。
特開2002−271415号公報「プロキシサーバ・システム、および、その通信方法」
特開2004−287889号公報「分散処理システム、分散処理用装置、方法及びコンピュータプログラム」
特開2004−110791号公報「ブレードアーキテクチャのための動的適応サーバプロビジョニング」
ところが、前記背景技術のいずれにせよ、複数のサーバにおける負荷分散のために、まずは、全体を管理する主サーバ装置を必要とし、主サーバ装置で処理要求を一次受け付けし、他のサーバ装置に依頼するかどうかを決定していた。あるいは複数のサーバ装置に対し外付けの負荷分散装置を設ける必要があった。
そのため、前記主サーバ装置のような装置に対して、比較的高い負荷がかかるため、他のサーバ装置よりも高性能のマシンを必要とする。また、前記主サーバ装置がダウンした場合の代替マシンの準備が別立てとなり、復旧のための時間、工数を必要とする。
また、場合によっては、前記主サーバ装置の負荷がある値に達するまでは、残りのサーバ装置がアイドル状態になっている可能性があり、サーバ間での完全な負荷の均衡化を目指したものとはなっていなかった。
本発明は以上のような問題に鑑みてなされたものであり、複数のサーバにおける負荷分散に関して、下記(1),(2)のような目的を有する。これにより設備使用効率向上及び仕事効率向上を図ったサーバ装置、制御方法、プログラム、及び情報処理システムなどの技術を提供する。
(1) 全体を管理するあるいは処理要求を一次受け付けする前記主サーバ装置のような装置を必要とせず、また前記外付けの負荷分散装置のような特殊な装置を必要とせず、定義されたグループ内のサーバ装置(サーバグループと称する)における処理の負荷分散・均衡化を図る。
(2) サーバ装置数の増減、クライアント数の増減に伴う負荷変動に対応して、前記サーバグループの全サーバ装置が自立的に負荷を調整していき、常に、全サーバ装置でできる限り均等な負荷を分担するようにする。特に、前記サーバ装置数の増減に関して、ブレードサーバ方式に最適な技術を提供する。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のサーバ装置は、複数のサーバ装置を含んで構成されるグループにおける各々のサーバ装置であって、以下に示す技術的手段を有することを特徴とする。
(1) 本サーバ装置は、複数のサーバ装置を含んで構成されるグループ(サーバグループ)を定義したグループ定義情報を保有する。前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持つ。本サーバ装置は、自サーバ装置での処理の負荷を測定する手段を有し、前記グループの自サーバ装置を含む各サーバ装置の負荷情報を保有する。本サーバ装置は、前記自サーバ装置での処理の負荷の変動に応じて、前記自サーバ装置の負荷情報あるいは負荷変動情報を、前記グループの他サーバ装置に送信して報告する処理を行う。また逆に、本サーバ装置は、前記グループの他サーバ装置から負荷情報の報告を受信した場合に、その受信情報をもとに前記保有している前記グループの他サーバ装置すなわち送信元のサーバ装置の負荷情報を更新する処理を行う。
(2) 更に本サーバ装置は、前記(1)において以下を特徴とする。前記グループの全サーバ装置は、通信接続されるクライアントから、前記共通のアドレスを送信先として用いた処理要求の電文を受信する。そして、前記処理要求を受信した各々のサーバ装置は、前記保有している前記グループの各サーバ装置の負荷情報を参照し、自サーバ装置の負荷情報が最小である場合は、前記処理要求に対しての処理受付を行う。すなわち、前記各サーバ装置の負荷の状態に応じて前記処理受付を行うかどうかが判断される。あるいは他の判断基準として、本サーバ装置は、前記自サーバ装置の負荷情報が閾値内である場合などに、前記処理受付を行う。
(3) 更に本サーバ装置は、前記(1)において以下を特徴とする。本サーバ装置は、前記グループにおける自サーバ装置の動作状態を示す情報と他サーバ装置の動作状態を示す情報とを保有する。本サーバ装置は、本サーバ装置は、パワーオンまたは起動または休止状態からの稼動再開などの動作状態の変動に応じて、前記動作状態を示す情報を更新し、前記グループ定義情報を有している場合は、自サーバ装置が前記グループに対して負荷分散対象すなわち処理受付が可能な状態として新規追加または再追加などされることを示す情報または前記動作状態を示す情報を、前記グループの他サーバ装置に送信する処理を行う。また逆に、本サーバ装置は、前記グループの他サーバ装置から前記追加されることを示す情報を受信した場合に、その受信情報をもとに前記保有している前記グループの他サーバ装置の動作状態を示す情報を、該当サーバ装置が負荷分散対象として追加されるように更新する処理を行う。
(4) 更に本サーバ装置は、前記(2)において以下を特徴とする。本サーバ装置は、前記処理要求に対しての処理受付を行う場合、前記クライアントに対して、前記自サーバの固有アドレスを送信元として用いた処理受付の電文を送信し、それに対して前記クライアントから受付応答の電文を受信した場合に、前記処理受付に対応した処理を継続して実行する。
(5) 更に本サーバ装置は、前記(2)において以下を特徴とする。前記処理要求を受信した各々のサーバ装置は、前記保有している前記グループの各サーバ装置の負荷情報を参照し、自サーバ装置の負荷情報が最小でない場合は、規則に従って定められた時間、例えばランダムな時間などの間、前記グループの他サーバ装置から前記クライアントに対し送信される処理受付の電文を傍受監視して、当該電文を傍受しなかった場合は前記処理受付に係わる前記負荷の状態の判断を含む判断を再試行する。
(6) 更に本サーバ装置は、前記(2)において以下を特徴とする。本サーバ装置は、前記処理要求を受信した際に、前記グループの自サーバ装置の負荷情報と他サーバ装置の負荷情報とで同じものがある場合は、前記グループ定義情報で持つ各サーバ装置に定められたMACアドレス等の値を用いて比較して、その値が最小の場合に自サーバ装置で前記処理受付を行う。すなわち、負荷が同程度の複数のサーバ装置がある場合に、所定の規則に従って1つのサーバ装置を決定して処理受付を行う。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1) 複数のサーバ装置における負荷分散・均衡化を実現して、設備使用効率向上及び仕事効率向上を図ることができる。
(2) サーバ装置やクライアント装置の増減を簡単に行うことができ、それに伴う負荷変動に対応して、最適化をサーバ装置で自立的に行うことができる。特に、ブレードサーバ方式に最適な技術を提供できる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。図1〜図13は、本発明の一実施の形態を説明するための図である。
本発明の一実施の形態におけるサーバ装置は、本サーバ装置を複数用いてサーバグループが定義・設定された構成において、クライアントからの要求をサーバグループで受信して、各サーバ装置での負荷状態の判断に応じて処理を受け付ける。これによりサーバ間での負荷の調整がなされる。本サーバ装置上では、サーバグループにおける負荷分散のための制御方法に従った処理が、プログラムやハードウェア論理等に従って実行される。
<情報処理システム>
図1は、本発明の一実施の形態におけるサーバ装置であるサーバ200を含んで構成される情報処理システムの構成例を示す。本システムは、ネットワーク4に、PC1と、サーバ集合筐体2に実装された複数のサーバ200{a,b,c}と、DBサーバ3とを有する。
図1は、本発明の一実施の形態におけるサーバ装置であるサーバ200を含んで構成される情報処理システムの構成例を示す。本システムは、ネットワーク4に、PC1と、サーバ集合筐体2に実装された複数のサーバ200{a,b,c}と、DBサーバ3とを有する。
ネットワーク4は、TCP/IPをベースとするインターネット、LANなどである。本実施の形態では、ネットワーク4は特にEthernet(登録商標)によるLANであり、TCP/IPベースのプロトコルで通信処理が行われる。また、実際の接続形態として、マルチドロップ接続、スイッチングハブやルータ経由によるスター接続などがあり得るが、いずれの場合も、各サーバ200へ出入りする電文はすべて、他のサーバ200においても傍受可能なように設定されている。
PC1は、ネットワーク端末装置であり、サーバ200に対するクライアント装置として、ネットワーク4を通じてサーバ200に対してアプリケーション等の処理の実行を要求する。必要に応じて1つ以上のPC1がネットワーク4に接続される構成である。
サーバ200{a,b,c}は、クライアントであるPC1からの処理要求を受信してそれに対応したアプリケーション等の処理を行う装置である。本例では、各サーバ200は、サーバ集合筐体2内に実装可能なブレードサーバ方式である。
サーバ集合筐体2は、1つの筐体に複数のサーバ200を実装可能とする筐体である。サーバ集合筐体2は、本例では、ブレードサーバ方式のサーバ200に対応したブレードシャーシの形態である。その他、サーバ集合筐体2は、サーバ200の形態に応じてラックマウントキャビネットといった各種形態が可能である。各サーバ200{a,b,c}は、保守・管理者により、必要に応じて、サーバ集合筐体2内に対して挿抜の動作により実装可能である。前記サーバ200の実装とは、サーバ200及びサーバ集合筐体2の形態に応じた挿抜や搭載やネジ止めなどの方法に加え、製造時点で、布線、半田付けなどにより事実上固定されているものも含んでいい。
サーバ集合筐体2には、各サーバ200の挿抜のためのスロット及びコネクタ等の構成を有する。例えばサーバ200の増設の場合、保守・管理者が、対象サーバ200をスロットに挿入してコネクタ同士を接続することで、サーバ集合筐体2内に接続・固定される。サーバ集合筐体2には、各サーバ200{a,b,c}が自由に実装され、すべてのサーバ200が同じネットワ−ク4に接続される。サーバ集合筐体2に有する実装スペースが許す限りで何台のサーバ200でも実装可能である。本例では、3つのサーバ200{a,b,c}がサーバ集合筐体2内に実装されており、それぞれネットワーク4上で通信可能である。
本システムでは、これら複数のサーバ200{a,b,c}を同一グループとして定義し、ネットワーク4上で処理の負荷分散を行う対象として取り扱う。このグループに関する定義情報を含む必要な設定の情報が、当該グループの各サーバ200において保持される。これら同一グループとして定義及び通信接続される複数のサーバ200{a,b,c}を、サーバグループと称する。
DBサーバ3は、外部からの要求に応じてDB参照や更新などのDB処理を行うサーバである。DBサーバ3は、サーバ200からの要求に応じてDB処理を行ってその結果をサーバ200へ返す。DBサーバ200は、複数のサーバ200から共有でアクセスされ処理するサーバを設ける場合の1つの典型例であって、他に、Webやメールといった各種アプリケーションのサーバも可能である。
本システムでは、PC1からの処理要求を、共通の通信アドレスによりサーバグループで受信すると共に、負荷状態に応じてサーバ200{a,b,c}で処理を受け付ける。そして処理を受け付けたサーバ200は、その処理の実行についてDB処理が必要な場合に、DBサーバ3へ要求を出す。そしてサーバ200はDBサーバ3からの処理結果またはそれをもとに処理を行った結果を、PC1へ応答として送信する。前記PC1から発行される処理要求は、サーバ200での特定の処理に対する要求や、あるいは、DBサーバ3へのDB参照要求などである。本例では、サーバ200から更にDBサーバ3に対してアクセスが行われる場合を説明するが、PC1とサーバ200との間で処理が完結する場合も勿論可能である。
<PC>
図2は、PC1のハードウェアブロック構成図を示している。PC1は、CPU101、メモリ102、LANボード103、HDD104、入力制御ボード105、出力制御ボード106を有する。
図2は、PC1のハードウェアブロック構成図を示している。PC1は、CPU101、メモリ102、LANボード103、HDD104、入力制御ボード105、出力制御ボード106を有する。
CPU101は、PC1全体を制御するプロセッサである。メモリ102は、プログラムやデータなどを一時記憶する。HDD104は、プログラム、テーブル類、DB情報などを記憶している外部記憶装置である。CPU101は、メモリ102上のプログラムを実行してPC1としての機能を実現する。入力制御ボード105は、キーボード、マウスなどの入力装置を制御するボードである。出力制御ボード106は、モニタ、液晶ディスプレイなどの表示装置や他の出力装置を制御するボードである。LANボード103は、ネットワーク4に対するLANインターフェースを制御するボードである。LANボード103によりネットワーク4上で各種コマンドやデータが授受される。PC1は、後述するグループIPアドレス614を認識している。
図3は、PC1のソフトウェアブロック構成図を示している。PC1は、アプリケーション部111、OS112、通信制御部113、入力制御部114、出力制御部115を有する。
アプリケーション部111は、Webブラウザ、メール、データ参照などのアプリケーションソフトウェアのプログラムを示す。OS(オペレーティングシステム)112は、入出力制御、イベント通知、アプリケーション部111のプログラムの起動・終了などのスケジュール管理を行う。アプリケーション部111及びOS112は、サーバ200に対する処理要求を必要に応じて発行する。
通信制御部113は、前記LANボード103の処理に対応するもので、LANインターフェースを制御するドライバや、TCP/IPプロトコル制御などが含まれる。入力制御部114は、前記入力装置の入力制御を行うドライバなどを含む。出力制御部115は、前記表示装置を制御する表示ドライバ、ビデオメモリ管理などが含まれる。
<サーバ>
図4は、サーバ200{a〜c}のハードウェアブロック構成図を示している。各々のサーバ200は、CPU201、メモリ202、LAN制御部203、HDD204、SVP制御部205を有する。
図4は、サーバ200{a〜c}のハードウェアブロック構成図を示している。各々のサーバ200は、CPU201、メモリ202、LAN制御部203、HDD204、SVP制御部205を有する。
CPU201は、サーバ200全体を制御するプロセッサであり、自サーバでの処理及びDBサーバ3に対する処理を制御する。メモリ202は、プログラム、データ、テーブル情報などを一時記憶するメモリである。HDD204は、プログラム、テーブル類、DB情報などを記憶している外部記憶装置である。本例では、HDD204には、後述するテーブル(6,7)が保持される。CPU201は、メモリ202上のプログラムを実行してサーバ200としての機能を実現する。
LAN制御部203は、ネットワーク4に対するLANインターフェースを制御する部分である。LAN制御部203によりネットワーク4上で各種コマンドやデータが授受される。また、LAN制御部203は、同一サーバグループ内にある関連IPアドレスをソース、デスティネーションに使用した電文を、一旦、本制御部に取り込み、解析し、傍受可能としている。
SVP制御部205は、SVPインターフェースを制御する部分であり、サーバ内各部と外部のSVP(サービスプロセッサ)に対して接続される。SVPは、SVP制御部205を通じて、各サーバ200についての保守・管理の処理を行う。SVPの処理は、例えば構成や障害の管理といったものである。
本サーバ200は、ブレードサーバ方式であるため、個々には入力装置や出力装置を持たない構成である。その代わりに、外付けの監視装置やシステムコンソールなどの役目を果たすSVPによる入出力を可能とするために、SVP制御部205を有している。保守・管理者は、SVPを操作してサーバ200の保守・管理を行うことができる。サーバ集合筐体2としてのブレードシャーシ内には、図示しないが、上記SVPや、各サーバ200に対する電源供給を行う電源部や送風を行うファンといった部位が設けられている。
図5は、サーバ200{a,b,c}のソフトウェアブロック構成図を示している。サーバ200は、アプリケーション部211、OS212、通信制御部213、監視制御部214、負荷測定部215、設定テーブル6、動作テーブル7を有する。
アプリケーション部211は、Web参照、メール制御、データ参照などのアプリケーションサーバソフトウェアのプログラムを示す。OS212は、入出力制御、イベント通知、アプリケーション部211のプログラムの起動・終了などのスケジュール管理を行う。サーバ200は、OS212とアプリケーション部211において、PC1からの処理要求に対応した処理を行う。本例では、サーバ200のアプリケーション部211で、DBサーバ3でのDB処理を用いた処理が行われる。
通信制御部213は、前記LAN制御部203の処理に対応するもので、LANインターフェースを制御するドライバ、TCP/IPプロトコル制御などが含まれる。通信制御部213を介して、PC1との間、サーバグループのサーバ200間、及びDBサーバ3との間で、それぞれ通信可能である。
監視制御部214は、同一サーバグループに構成されたサーバ200の動作状況の監視や、LANインターフェース上での電文の傍受監視などを行う。また監視制御部214は、設定テーブル6や動作テーブル7を管理し、必要に応じて参照・更新する。
負荷測定部215は、負荷状態の把握のための負荷情報として、自サーバ200のCPU201におけるCPU使用率を、定期的またはアプリケーション部211の処理の起動・終了などの負荷の変動時に応じて測定する。負荷測定部215で測定された自サーバ200の負荷情報は、監視制御部214を介して、動作テーブル7に反映される。また、負荷がある程度変動した場合には、通信制御部213を介して、同一サーバグループ内の他サーバ200への負荷情報の通知や交換のための通信が行われる。
本実施の形態では、グループ定義情報として、設定テーブル6と動作テーブル7を有する。設定テーブル6は、システムの設定のための情報であり、自身も含めた同一サーバグループの各サーバ200{a,b,c}のアドレスや識別名などの必要な設定情報を保持している。動作テーブル7は、システムの状態管理のための情報であり、自身も含めた同一サーバグループの各サーバ200{a,b,c}の動作及び負荷の状態を情報として管理・保持している。
なお、DBサーバ3の構成については、前記図4,5に示すブレードサーバ方式のサーバ200と同様のサーバ装置でも、前記図2,3に示すPC1と同様のスタンドアロン方式のサーバ装置でもよい。
<テーブル>
図6は、設定テーブル6の形式の一実施例を示す。設定テーブル6は、すべてのサーバ200において、自ホスト名620を除き、同じ内容を持つ。設定テーブル6で、列(601〜603)にサーバ200{a,b,c}単位の情報を示し、行(611〜615)に各設定情報の項目を示している。これら設定テーブル6の内容は、外部のSVPよりSVP制御部205を通じて設定され、HDD204内に記憶される。
図6は、設定テーブル6の形式の一実施例を示す。設定テーブル6は、すべてのサーバ200において、自ホスト名620を除き、同じ内容を持つ。設定テーブル6で、列(601〜603)にサーバ200{a,b,c}単位の情報を示し、行(611〜615)に各設定情報の項目を示している。これら設定テーブル6の内容は、外部のSVPよりSVP制御部205を通じて設定され、HDD204内に記憶される。
固有ホスト名611は、各サーバ200に固有のホスト名が割り当てられる。本例では、各サーバ200{a,b,c}の固有ホスト名611は、“APSRVRa”、“APSRVRb”、“APSRVRc”と割り当てられている。
固有IPアドレス612は、各サーバ200{a,b,c}に固有のIPアドレスが通信アドレスとして割り当てられる。本例では、各サーバ200{a,b,c}の固有IPアドレス612は、“202.200.256.1”、“202.200.256.2”、“202.200.256.3”と割り当てられている。
グループホスト名613は、同一サーバグループのサーバ200群のすべてに対して、同一ホスト名が割り当てられる。本例では、サーバ200{a,b,c}のグループホスト名613は、“APSRVR”が割り当てられている。
グループIPアドレス614は、同一サーバグループのサーバ200群のすべてに対して、同一IPアドレスが共通の通信アドレスとして割り当てられる。一般には、本アドレスとして、テレビ会議などで使用される同一のマルチキャストアドレスとして定義することでもよい。本例では、すべてのサーバ200{a,b,c}は、グループIPアドレス614として“202.200.256.0”が割り当てられている。
MACアドレス615は、各サーバ200で固有のMACアドレスである。本例では、サーバ200{a,b,c}のMACアドレス615は、それぞれ、“01.23.45.67.89.AB”、“AB.CD.EF.01.23.45”、“67.89.AB.CD.EF.01”となっている。LAN制御部203は、MACアドレス615を有し、SVPからの設定でなく、パワーオン時、自サーバのMACアドレスのみ、LAN制御部203から取得し、本テーブルに設定することも可能である。
固有IPアドレス612、グループIPアドレス614、MACアドレス615は、ネットワーク4上の通信において送信元や送信先のアドレスとして使用される。
また、自ホスト名620には、自サーバ200のホスト名が設定される。例えば、サーバa(200)の自ホスト名620に、“APSRVRa”が設定されている。自ホスト名620が固有ホスト名611とリンクすることにより、上記列(601〜603)のうちいずれが自サーバ200の内容かを知ることができる。
本実施の形態では、PC1からサーバ200に対する処理要求は、グループIPアドレス614が送信先として使用される。また、処理要求を受け付けたサーバ200からPC1に対する応答は、固有IPアドレス612が送信元として使用される。
PC1からは処理要求に対応した処理を実際に受け付けて実行しているサーバ200を識別する必要は特にないが、当該サーバ200の識別は、固有IPアドレス612等により可能である。
また、グループIPアドレス614や固有IPアドレス612は、各サーバ200間の負荷情報の通知や交換などの通信においても使用される。
通信におけるIPアドレス部分では、上記グループIPアドレス614や固有IPアドレス612が設定されていても、ネットワーク4であるEthernet(登録商標)のデータリンクレベルでは、実際に送受信処理するLAN制御部203のMACアドレス615が設定される。但し、以降、IPアドレスからMACアドレス615への変換の技術は、ARP(Address Resolution Protocol)などを使用して、条件に該当するサーバが応答を返すことでMACアドレス615に変換することによりなされる。以下、この処理の詳細過程は省略するが、IPアドレスで行っている動作は、MACアドレス615においても同様に適用可能である。
図7は、動作テーブル7の形式の一実施例を示す。動作テーブル7の列(701〜703)にサーバ200{a,b,c}単位の情報を示し、行(711,712)に各サーバ200の動作や負荷の状態などの項目を示している。本例では、動作状態711とCPU使用率712とにより各サーバ200の状態が管理されている。これらの値に基づき、サーバ200での処理の受け付けが判断され、すなわちサーバ200間の負荷が調整されることになる。
動作状態711は、各サーバ200での処理に係わる動作状態を示す項目であり、状態の変動に応じて設定される。動作状態711が“ON”ならば、該当サーバ200は、パワー(電源)オンされて稼動状態であること、すなわち、処理稼動中または処理提供可能な状態を示す。また動作状態711が“OFF”ならば、該当サーバ200は、パワーオフまたは休止状態(処理提供不能な状態)であることを示す。
CPU使用率712は、サーバ200での処理に関する負荷状態を表わす値であり、CPU201の使用率の数値(単位は[%])で示している。
また、これら動作テーブル7の情報も、自ホスト名620とリンクして前記図6と同様の列の配列とすることにより、上記列(701〜703)のうちいずれが自サーバ200の内容かを知ることができる。
これら動作テーブル7の内容は、各サーバ200の状態が変化するたびに、後述の方法で複数のサーバ200間でお互いに通信することにより、各サーバ200で保持している情報の整合性をとっている。
<電文>
図8は、ネットワーク4におけるLANインターフェース上で使用される電文の形式の一実施例を示している。電文の種類に対応してその電文に設定される各種情報を示している。PC1、サーバグループのサーバ200、DBサーバ3の間で授受される電文の種類として、本例では、各コマンド811〜818を使用する。各コマンド811〜818は、例えばヘッダとコンテンツを有する形式であり、ステータスや単なるデータ等の場合を含むものとする。各電文は、コマンド801、ソースIPアドレス801、デスティネーションIPアドレス802、セッション番号804、コンテンツ805の領域を含む。
図8は、ネットワーク4におけるLANインターフェース上で使用される電文の形式の一実施例を示している。電文の種類に対応してその電文に設定される各種情報を示している。PC1、サーバグループのサーバ200、DBサーバ3の間で授受される電文の種類として、本例では、各コマンド811〜818を使用する。各コマンド811〜818は、例えばヘッダとコンテンツを有する形式であり、ステータスや単なるデータ等の場合を含むものとする。各電文は、コマンド801、ソースIPアドレス801、デスティネーションIPアドレス802、セッション番号804、コンテンツ805の領域を含む。
コマンド801には、起動完了811、負荷情報812、処理要求813、処理受付814、処理結果815、DBアクセス要求816、DBアクセス結果817、受付応答818がある。各コマンド811〜818は、電文の種類を示しており、コンテンツ805として何を含むかが決まる。
ソースIPアドレス802、デスティネーションIPアドレス803は、それぞれ、TCP/IPプロトコルにおける送信元のアドレス、送信先のアドレスが指定される。またセッション番号804は、他の同類の要求及び処理と混信しないための識別情報が設定される。
起動完了811は、自サーバ200がパワーオンされて稼動状態(“ON”)となったことを、同一サーバグループ内の他サーバ200に対し知らせるものである。本例では、このソースIPアドレス802には、各サーバ200の固有IPアドレス612として“202.200.256.i”(iは1,2,3のどれか)を指定する。またデスティネーションIPアドレス803には、グループIPアドレス614を指定する。またコンテンツ805には、どのサーバ200が“ON”となったかを示す情報として“APSRVRj=ON”(jはa,b,cのどれか)が含まれている。
負荷情報812は、各サーバ200の負荷の変動時、自身を含む各サーバ200の負荷情報を、サーバグループ内の他サーバ200に対し報告するためのものである。前記負荷の変動は、パワーオンによるサーバ200の起動も含む。このソースIPアドレス802及びデスティネーションIPアドレス803は、起動完了811の場合と同様である。また、コンテンツ805には、自サーバ200で動作テーブル7に保持しているサーバグループ内の全サーバ200についての負荷情報を、他サーバ200への確認も含めて報告する。本例では、コンテンツ805に、動作状態711の情報も含めており、例えば“APSRVRa=ON,70%”,“APSRVRb=ON,80%”,“APSRVRc=OFF”などが含まれている。
処理要求813は、PC1からサーバ200に対する、DB参照、URL参照、メール送信、データ参照などの要求を表わす電文である。このソースIPアドレス802はPC1のIPアドレスであり、デスティネーションIPアドレス803はグループIPアドレス614である。またセッション番号804には、本例では“aa”が付与される。またコンテンツ805には、処理要求内容、及びパラメータなどのデータが含まれている。
処理受付814は、PC1からの処理要求813についてのサーバ200での処理の受け付けを表わす電文である。この電文を受信したPC1等は、該当サーバ200で処理を受け付けることが認識できる。このソースIPアドレス802は、サーバグループにおいて処理要求813に対応した処理を受け付けたサーバ200の固有IPアドレスを使用する。デスティネーションIPアドレス803はPC1のIPアドレスである。またセッション番号804として、前記PC1からの処理要求813に対応したセッション番号804と同じ値(“aa”)が付与される。
受付応答818は、処理受付814に対する確認のための応答である。このソースIPアドレス802はPC1のIPアドレスであり、デスティネーションIPアドレス803は、処理受付814を送信してきた該当サーバ200の固有IPアドレス612である。PC1は、処理受付814の電文を受信すると、これに付与されているセッション番号804と同じのセッション番号804(“aa”)をセットした受付応答818の電文を該当サーバ200に返信する。
本例では、通常シーケンスでは、サーバ200からの処理受付814に対してPC1から受付応答818を返す。処理受付814と受付応答818とにより、該当サーバ200での処理の受け付けが確認される。なお、処理受付814と受付応答818を省略して確認なしに処理させるシーケンスとすることも可能である。
DBアクセス要求816とDBアクセス結果817は、サーバグループ内のサーバ200での処理に応じて、外付けのDBサーバ3へ処理を要求する場合の例として示している。
DBアクセス要求816は、サーバ200からDBサーバ3への処理要求である。本例では、このソースIPアドレス802は該当サーバ200の固有IPアドレス612であり、デスティネーションIPアドレス803はDBサーバ3のIPアドレスである。またセッション番号804として、前記処理要求813等と同じ値(“aa”)を使用する場合を示す。またコンテンツ805は、例えばDB参照のための検索キーの情報である。
DBアクセス結果817は、DBサーバ3からサーバ200への応答である。本例では、このソースIPアドレス802はDBサーバ3のIPアドレスであり、デスティネーションIPアドレス803は該当サーバ200の固有IPアドレス612である。またセッション番号804として、前記DBアクセス要求816と同じ値(“aa”)を使用する場合を示す。なおサーバ200とDBサーバ3との間の通信において、PC1との間で使用するセッション番号804(例えば“aa”)とは異なるセッション番号804(例えば“bb”)を使用することとしてもよい。またコンテンツ805は、例えばDB検索結果及びそのデータである。
処理結果815は、サーバ200での処理受付814に対応した処理結果となる、PC1への応答を示す。このソースIPアドレス802は処理を行った該当サーバ200の固有IPアドレスであり、デスティネーションIPアドレス803はPC1のIPアドレスである。またセッション番号804として、前記処理受付814のセッション番号804と同じ値(“aa”)がセットされる。またコンテンツ805は、処理結果及びそのデータの詳細が含まれている。
上記処理受付814や受付応答818等において、処理を受け付けたサーバ200の固有IPアドレス612を使用する理由は、サーバ200間での負荷情報の交換の遅れや漏れ等に起因して複数のサーバ200がPC1に対し処理受付814を返した場合にも対応してサーバ200を識別できるようにするためである。この場合、処理を受け付ける複数のサーバ200が、PC1に対し固有IPアドレスを用いて処理受付814の電文を送信する。そして、PC1から、どの処理受付814の電文を受け取ったかを示すために該当サーバ200の固有IPアドレスを用いて受付応答818を送信する。PC1からの受付応答818を受信したサーバ200は、自サーバ200で受け付けた処理がPC1側からも確認されたので、当該処理を継続する。前記受付応答818を受信しなかったサーバ200は、処理の継続を中止する。
本例では、処理受付814、処理結果815、DBアクセス要求816、DBアクセス結果817等の電文上において、固有IPアドレス612等により、どのサーバ200が具体的に処理を受け付けたかを知ることができる。サーバ200は、負荷状態に応じて自分が処理すべきものか否か判断して、自己責任により遂行することになる。
ここで、処理受付814、受付応答818を使用せず、各サーバ200で判断し、継続して、本例では、DBアクセス要求816を出すことでもいい。この時、偶然、複数のサーバ200が同じ条件になり、同じ判断に基いて、要求を出す可能性があるが、この場合でも、最終的には、処理結果815を早く返したサーバ200からのデータが採用されることになる。処理受付814、受付応答818の必要性は、他のサーバ200が傍受することにより、複数サーバ200からの同じ要求が出る頻度を下げているだけである。ノイズなどで、処理受付814、受付応答818の電文を取りこぼしたケースも含めて、複数のサーバ200が受け付けた場合も、上記により、処理がなされるようになっている。
<処理シーケンス及びフロー>
次に、本システムにおける処理のシーケンス及びフローを説明する。図9は、PC1、同一サーバグループのサーバ200{a,b,c}、及び、DBサーバ3の間での一連の処理及び制御のシーケンスの例を示している。PC1、サーバ200、及びDBサーバ3の間では、前記電文を用いて本シーケンス及びフローに対応した通信及び処理が行われる。
次に、本システムにおける処理のシーケンス及びフローを説明する。図9は、PC1、同一サーバグループのサーバ200{a,b,c}、及び、DBサーバ3の間での一連の処理及び制御のシーケンスの例を示している。PC1、サーバ200、及びDBサーバ3の間では、前記電文を用いて本シーケンス及びフローに対応した通信及び処理が行われる。
サーバグループにおいて、例えばサーバc(200)は、パワーオンにより稼動状態となった場合、自身における動作状態の変動を通知するための起動完了811の電文を、サーバグループ内の他サーバa及びb(200)に送信する(S1030)。前記起動完了811の電文を受信したサーバa及びb(200)は、その情報をもとに、自身の動作テーブル7の内容を更新する。また、サーバグループにおいて、例えばサーバa(200)は、自身におけるある程度の負荷変動を検出すると、負荷情報812の電文を、サーバグループ内の他サーバb及びc(200)に送信する(S1011)。前記負荷情報812の電文を受信したサーバb及びc(200)は、その情報をもとに、自身の動作テーブル7の内容を更新する(S1021,S1031)。負荷状態や動作状態の変動が発生したサーバ(200)では、自身の動作テーブル7の内容を更新している。上記動作が、常時、サーバグループ内で任意のサーバ200から他サーバ200に対して、変動発生に伴う情報の通知や交換によりお互いに連絡し合うことが行われている。
次に、S1001で、PC1から、処理要求813の電文がサーバグループに対して送信される。本処理要求813は、あるサーバグループに対して、そのグループIPアドレス614を送信先として用いて発行される。
一方、S1300で、サーバグループの各サーバ200は、処理要求813を受信する処理、及び、自サーバ200でその処理要求813に対応した処理を受け付けるかどうかを動作テーブル7の参照に基づき判断する処理などを行う。図13で述べる処理及び制御に従って、いずれかのサーバ200で処理を受け付け、処理を受け付けたサーバ200から処理受付814の電文がPC1に送信されることになる。本例では、サーバグループ内で負荷が最小の状態にあるサーバb(200)で処理を受け付ける場合を示している。
上記S1300では、各サーバ200で独立して処理の受け付けに関する判断が行われるので、状況に応じて結果として、1つのサーバ200のみが処理を受け付ける場合以外にも、複数のサーバ200が処理を受け付ける場合や、いずれも受け付けずに再試行が行われる場合などがある。いずれの場合でも、1つのサーバ200との間で実際に処理が行われることになる。
上記S1300において、S1300bで、サーバb(200)は、動作テーブル7における各サーバ200{a,b,c}についてのCPU使用率712の比較に基づき、自サーバで処理を受け付けるか否か判断して自サーバで処理を受け付けることを決めると、処理受付814の電文をPC1に送信する。処理受付814の電文を受信したPC1は、それに対する受付応答818の電文をサーバb(200)へ送信する。サーバb(200)は、受付応答818の電文を受信することで処理の受け付けを確認し、当該処理を継続する。
サーバグループにおけるサーバb(200)が処理を受け付けたことにより、当該サーバb(200)で負荷変動が発生し検出される。そのため、前記S1011,S1021,S1031の処理と同様に、S1022,S1012,S1032の処理において、サーバb(200)から負荷情報812を他サーバa及びc(200)に報告し、各動作テーブル7を更新する。
次に、前記処理要求813に対応した処理を受け付けたサーバb(200)で、DBサーバ3へのDB参照が必要になったとする。S1023で、該当サーバb(200)はDB参照処理を行う。該当サーバb(200)は、DBサーバ3に対してDBアクセス要求816の電文を送信する。S1041において、DBサーバ3は、DBアクセス要求816に応じてDB処理を行い、その結果であるDBアクセス結果817の電文を該当サーバb(200)へ送信する。
S1023で、該当サーバb(200)は、前記DBアクセス結果817あるいはそれを用いた処理の結果を、PC1に対して、処理結果815の電文として送信する。そしてS1002で、PC1は、処理結果815を受信する処理を行う。
また上記により、サーバb(200)において、前記処理要求813に対応した1つの処理が完了したとする。これにより、当該サーバb(200)で負荷変動が発生し検出される。そのため、同様に、S1024,S1013,S1033の処理において、サーバb(200)から負荷情報812を他サーバa及びc(200)に報告し、各動作テーブル7を更新する。
図10は、サーバグループのサーバ200{a,b,c}におけるパワーオン動作時の処理の詳細を示すフロー図である。ステップS901で、パワーオンにより起動されたサーバ200(例えばサーバa)は、動作テーブル7における自サーバ200に相当する列の動作状態711を、“OFF”から“ON”にする。また、S902で、同サーバ200は、同じ列のCPU使用率712を、‘0’にセットする。
次に、S903で、同サーバ200は、負荷測定部215,監視制御部214,通信制御部213を起動し、これによりサーバグループの監視が行われる状態となる。
次に、S904で、同サーバ200は、起動完了811の電文を、同一サーバグループ内の他サーバ200(サーバb及びc)に対して送信する。これにより、自サーバ200(サーバa)がサーバグループに対して処理提供可能な状態(“ON”)で新規追加されることを知らせる。
一方、図12のS1221でも示すように、サーバグループの各サーバ200(サーバb及びc)は、前記起動完了811の電文を受信すると、それにより新規追加されるサーバ200(サーバa)に対して、自身の動作テーブル7の内容を更新すると共に、自身を含む各サーバ200(サーバb及びc)の負荷情報を前記負荷情報812の電文により通知する。
次に、S905で、前記起動完了811を送信したサーバ200(サーバb)は、他サーバ200からの負荷情報812の電文の受信を確認する。負荷情報812の電文を受信した場合(S905−YES)、S906で、同サーバ200は、受信した負荷情報812の電文におけるコンテンツ805に含まれている各サーバ200(サーバb及びc)についての負荷情報に従い、それに対応する自身の動作テーブル7における自サーバの列(701)以外のすべての列(702,703)を更新する。
図11は、サーバグループのサーバ200{a,b,c}における負荷情報の送信処理の詳細を示すフロー図である。本処理は、前記図9における、負荷変動をチェックして他サーバ200へ負荷情報812の電文を送信する処理(S1011等)に対応している。
まず、S1101で、各サーバ200は、負荷測定部215により、自サーバ200の負荷情報としてCPU使用率712を測定している。この負荷の測定方法については各種周知技術があるが、例えば、インターバルタイマーを利用して、一定間隔で、OS212の状態を見て、ウェイト状態か否か(すなわち処理待ちか処理中か)を判定したり、CPU自身から発生されるウェイト信号、HOLD信号など特定の信号を監視することにより、CPU201の使用率を計算することにより行う。
S1102で、サーバ200は、直前測定時の自サーバ200の動作テーブル7のCPU使用率712と、S1101で現在測定した値とを比較する。比較に基づき、S1103で、前記測定したCPU使用率712の値が、ある程度の範囲内に収まるかそれ以上に変動しているかを、閾値との比較により判定することで負荷変動をチェックする。なお、上記判断の基準となる閾値について設定可能としてもよい。
前記閾値内の変動の場合(S1103−YES)、S1105で、該当サーバ200は、定められた時間分をウェイト後、S1101へ移り、再度同様の処理を繰り返す。上記定められた時間の値は、ランダム値や一定値などである。
前記閾値以上の変動がある場合(S1103−NO)、S1104において、該当サーバ200は、前記S1101での測定値を、動作テーブル7におけるCPU使用率712の項目の自サーバ200に対応する列へ設定して更新する。
次に、S1106において、該当サーバ200は、負荷変動を検出したことにより、負荷情報812の電文を作成する。すなわち、該当サーバ200は、自身の動作テーブル7における動作状態711及びCPU使用率712の項目における全サーバの列(701〜703)に対応した値を、負荷情報812の電文のコンテンツ805へセットする。なお、この際、CPU使用率712の値のみ使用するようにしてもよい。
次に、S1107において、該当サーバ200は、作成した負荷情報812の電文を、同一サーバグループ内の他サーバ200に対して送信する。
なお、前記各サーバ200の動作テーブル7の情報に関しては、状態変動や情報の通知の遅れ等により、サーバ200間で違いがあり得る。前記他サーバ200から負荷情報812を受信した際に動作テーブル7へ反映する情報の決定においては、例えば、常に受信した最近値を使用すること、あるいは、最近値に限らず重い負荷を示す情報の方を優先して使用すること等により決定してもよい。また例えば、動作テーブル7で記憶する情報として、ある時点の負荷であることを示すタイムスタンプ情報を付加しておき、本タイムスタンプと比較し、新しい値を利用する形式としてもよい。
また、サーバ200間での負荷情報812の授受に関しては、あるサーバ200からサーバグループに対して自サーバ200のみの情報を通知するようにしてもよい。本例では、動作テーブル7における自サーバ200を含むすべてのサーバ200についての負荷情報を他サーバ200へ通知することで、サーバ200間の情報の違いを少なくさせるようにしている。
図12は、サーバグループのサーバ200{a,b,c}における各種コマンド801の電文の受信処理についての詳細を示すフロー図である。
まず、S1201において、電文を受信したサーバ200は、受信した電文のデスティネーションIPアドレス803がグループIPアドレス614であるかどうかを比較判定する。当該アドレスが一致しない場合は終了する。
前記アドレスが一致する場合は、次に、S1202で、該当サーバ200は、電文のコマンド801が負荷情報812かどうかを判定する。負荷情報812の場合、S1211で、該当サーバ200は、該当電文のコンテンツ805における全サーバについての負荷情報を、動作テーブル7の該当行(711,712)の自サーバ以外の列(701〜703)へセットする。
次に、S1203において、該当サーバ200は、コマンド801が起動完了811かどうか判定する。起動完了811の場合、S1221で、該当サーバ200は、該当電文のコンテンツ805における対象サーバの動作状態の情報を、自身の動作テーブル7における動作状態711の対象列へセットする。すなわち電文送信元のサーバ200の動作状態を表わす情報(前記“ON”等)がセットされる。
次に、S1204で、該当サーバ200は、コマンド801が処理要求813かどうか判定する。処理要求813の場合、S1300で、図13で詳細に示すような、処理要求813の電文についての受付処理を行う。そしてこの受付処理後に終了する。
次に、S1205で、該当サーバ200は、コマンド801がDBアクセス結果817かどうか判定する。DBアクセス結果817の場合、S1231で、該当サーバ200は、DBアクセス結果817の電文のコンテンツ805を、処理結果815の電文のコンテンツ805にセットし、そして、S1232で、処理結果815の電文をPC1へ送信する。受信した電文のコマンド801が以上に該当しない場合、何もしないで当該電文を破棄して終了する。
図13は、サーバグループのサーバ200{a,b,c}における処理要求813についての受付処理(S1300)の詳細を示すフロー図である。S1303〜S1305の処理により、いずれかのサーバ200で処理を受け付けるように制御する例である。
まず、S1301において、グループIPアドレス614を送信先として用いた処理要求813の電文を受信した各サーバ200は、動作テーブル7の内容を読み出す。次に、S1302で、該当サーバ200は、動作テーブル7におけるCPU使用率712の自サーバの列と他サーバの列との値を比較する。次に、S1303で、該当サーバ200は、自サーバの列のCPU使用率712がサーバグループ内で最小かどうかを判定する。
前記S1303で、該当サーバ200は、自サーバのCPU使用率712が最小でない場合(S1303−NO)、S1310に移る。
該当サーバ200は、前記自サーバのCPU使用率712が最小の場合(S1303−YES)、S1304で、動作テーブル7で、本最小値において他サーバの対応列のCPU使用率712と一致するものが無いかを判定する。すなわちサーバグループ内の複数のサーバ200で負荷が同じ最小値となっている場合を検出する。
前記最小値が一致する複数のサーバ200がある場合は、あらかじめ設定されている所定の規則に従って、その中で処理を受け付けるサーバ200を選択して自サーバで処理を受け付けるかどうかを決める。この際の規則の例として、S1305で、該当サーバ200は、設定テーブル6における各サーバ200のMACアドレス615の情報を参照して、自サーバのMACアドレス615の値が最小かどうかを判定し、その値が最小のサーバ200で処理を受け付けるように決定する。
上記処理を通じて、CPU使用率712が最小の1つのサーバ200(S1304−NO)、あるいは、CPU使用率712が最小の複数のサーバ200がある場合はそのうちMACアドレス615が最小のサーバ200(S1305−YES)が、処理を受け付ける義務を負うことになる。
前記S1303−NOの場合、または、前記S1305で、自サーバ200のMACアドレス615の値が最小値でなく前記規則により処理を受け付ける条件が成立しない場合(S1305−NO)、次にS1310で、該当サーバ200は、ランダムな時間分ウェイトして、S1311で、他サーバ200が処理を受け付けたかどうかを、前記処理受付814の電文を傍受監視することで判断する。該当サーバ200は、前記処理受付814の電文を傍受した場合(S1311−YES)、終了する。前記処理受付814の電文を傍受しなかった場合(S1311−NO)、再度、開始に戻って前記S1301からやり直す。
前記S1311−NOの場合には、再度、開始に戻って処理の受け付けの判断に係わる再試行を行う。これは、各サーバ200間の状態に関して、負荷情報の報告の遅れや漏れ等により同時刻で同じ値が保証される訳ではないことを考慮して、サーバグループの全サーバ200が処理を受け付けずデッドロックにより誰も応答しない場合を防止するための措置である。
前記S1303の処理を中心にして、PC1に対し処理受付814の電文を応答する条件が整った場合、該当サーバ200は、複数のサーバ200からの処理受付814の応答が同時に発生しないように、Ethernet(登録商標)における衝突防止と同様の考え方により、S1306で、ランダムな時間分ウェイトする。そしてS1307で、該当サーバ200は、そのウェイトの間、サーバグループの他サーバ200からの処理受付814の電文を傍受監視することにより、他サーバ200が処理受付814の応答をPC1に対して行っていないことを確認する。該当サーバ200は、前記電文を傍受したことにより他サーバ200が応答していることを確認した場合(S1307−YES)、処理を受け付けせずに終了する。
該当サーバ200は、前記電文を傍受しなかったことにより他サーバ200が応答していないことを確認した場合(S1307−NO)、次に、S1308で、処理受付814の電文を作成する。ここで、該当サーバ200は、処理受付814の電文に、送信元として自サーバの固有IPアドレス612をセットし、また、処理の識別のためのセッション番号804として例えば“aa”をセットする。そして、S1309で、該当サーバ200は、作成した処理受付814の電文を、PC1に対して送信する。
S1309の後、PC1において処理受付814の電文が受信され、受付応答818の電文が該当処理を受け付けたサーバ200へと返される。そして該当サーバ200で処理が実行されることになる。
前記S1303等の処理において、サーバ200の負荷状態を最小値により判断する以外にも、負荷情報がある程度の閾値以下に収まるものを選択すること等により判断してもよい。また、前記S1305で用いる規則は、MACアドレス615以外でも、各サーバ200に対し定められた値などを用いることもできる。また、前記S1306やS1310におけるウェイト時間については、例えばMACアドレス615等をもとに定められる、各サーバ200で異なる固定値などとしてもよい。このようなサーバ200での処理受付の決定に係わる所定の判断基準や規則に応じて、1つのサーバ200で処理受付が行われるように制御している。また、前記判断基準や各サーバ200で持つ情報の違い等によって、複数のサーバ200で処理受付が行われる場合も発生し得る。この場合、そのうち1つのサーバ200に対するPC1からの受付応答818の授受や、S1310及びS1311におけるウェイト及び電文の傍受監視による処理受付に係わる判断の再試行などの仕組みにより、1つのサーバ200で実際に処理を行わせるように制御している。
以上説明したように、本実施の形態によれば、全体を管理するあるいは処理要求を一次受け付けするような装置を必要とせず、また外付けの負荷分散装置のような特殊な装置を必要とせず、サーバグループ内のサーバ200における処理の負荷分散・均衡化を図ることができる。また、サーバ200やPC1の数の増減に伴う負荷変動に対応して、サーバグループの全サーバ200が自立的に負荷を調整していき、常に、全サーバ200でできる限り均等に負荷を持つようにできる。
以上の他に、本実施の形態では、サーバ200の負荷情報としてCPU使用率712を用いたが、その他、サーバ200でPC1から受け付けた処理数や、いわゆるトラフィック量(転送レート等)や、実行ジョブ(サーバ200での処理を分割した単位)数などの他のパラメータを使用してもよい。
また、本例では、負荷分散対象となるサーバ200に関して、同様の性能のブレードサーバ方式を対象にした。これに限らず、本発明の他の実施の形態では、前記ブレードサーバ方式ではなく、スタンドアロン型の複数のサーバ装置や、それぞれ異なる性能の複数のサーバを用いてシステムが構成される。スタンドアロン型の複数のサーバ装置でシステムを構成する場合、前記図1におけるサーバ集合筐体2を除いた同様の構成となる。また上記異なる性能の複数のサーバ、例えばCPU201の処理速度[Hz]が異なる複数のサーバで構成する場合では、負荷情報として前記CPU使用率712などを使用する場合、低い性能のサーバには少ない仕事量を、高い性能のサーバには多くの仕事量を課すような負荷分散の均衡を保たせる。
また、処理を受け付けたサーバ200の識別に関して、固有IPアドレス612を用いる以外には、グループIPアドレス614、セッション番号804、及びサーバ200のID(固有IPアドレス612等)の組み合わせを用いる等としてもよい。
また、本システム内に1つのサーバグループのみ設定される場合を示したが、例えば、サーバ集合筐体2においてサーバ200の組み合わせにより複数のサーバグループを設定して、各サーバグループにおいて同様に負荷分散することも可能である。
また、本例では、各サーバ200のネットワーク4に対する接続・配線の形式について、マルチドロップ型、すなわち各サーバ200が独立してLAN制御部203によりネットワーク4に対し接続される形式とした。これに限らず、各サーバ200が、ネットワーク4に対し、スイッチやハブやルータやゲートウェイ等の、データ転送の役割を持つ中継部を介在して接続・配線される形式も可能である。すなわち各サーバ200が中継部に接続され、中継部がネットワーク4に対し接続される形式である。例えば、サーバ集合筐体2内にこのような中継部を設けた構成も可能である。この場合でも、各サーバ200間、及び、各サーバ200とPC1との間の通信の電文において、前記グループIPアドレス614が用いられた場合には、前記中継部でその電文が同一サーバグループのサーバ200に対して転送されるように、転送に関する設定を行っておく。これにより同様に負荷分散が実現可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、サーバやサーバを含んで構成される情報処理システムなどに利用可能である。
1…PC、2…サーバ集合筐体、3…DBサーバ、4…ネットワーク、6…設定テーブル、7…動作テーブル、101,201…CPU、102,202…メモリ、103…LANボード、104,204…HDD、105…入力制御ボード、106…出力制御ボード、111,211…アプリケーション部、112,212…OS、113,213…通信制御部、114…入力制御部、115…出力制御部、200…サーバ、203…LAN制御部、205…SVP制御部、214…監視制御部、215…負荷測定部。
Claims (6)
- 複数のサーバ装置を含んで構成されるグループを定義したグループ定義情報を保有し、
前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持ち、
自サーバ装置での処理の負荷を測定する手段を有し、
前記グループにおける自サーバ装置の負荷情報と他サーバ装置の負荷情報とを保有し、
前記自サーバ装置での処理の負荷の変動に応じて、前記自サーバ装置の負荷情報を前記グループの他サーバ装置に送信する処理と、
前記グループの他サーバ装置から負荷情報を受信した場合に、その受信情報をもとに前記保有している前記グループの他サーバ装置の負荷情報を更新する処理とを行うことを特徴とするサーバ装置。 - 請求項1記載のサーバ装置において、
クライアントから前記共通アドレスを送信先として用いた処理要求の電文を受信し、前記グループにおける自サーバ装置の負荷情報と他サーバ装置の負荷情報とを参照して、前記自サーバ装置の負荷情報が最小である場合は、前記処理要求に対しての処理受付を行うことを特徴とするサーバ装置。 - 請求項1記載のサーバ装置において、
前記グループにおける自サーバ装置の動作状態を示す情報と他サーバ装置の動作状態を示す情報とを保有し、
パワーオンまたは起動に応じて、前記グループ定義情報を有している場合は、自サーバ装置が前記グループに対して負荷分散対象として追加されることを示す情報を、前記グループの他サーバ装置に送信する処理と、
前記グループの他サーバ装置から前記追加されることを示す情報を受信した場合に、その受信情報をもとに前記保有している前記グループの他サーバ装置の動作状態を示す情報を更新する処理とを行うことを特徴とするサーバ装置。 - 請求項2記載のサーバ装置において、
前記処理要求に対しての処理受付を行う場合、前記クライアントに対して、前記自サーバの固有アドレスを送信元として用いた処理受付の電文を送信し、それに対して前記クライアントから受付応答の電文を受信した場合に、前記処理受付に対応した処理を継続して実行することを特徴とするサーバ装置。 - 請求項2記載のサーバ装置において、
前記処理要求の電文を受信した際に、前記自サーバ装置の負荷情報が最小でない場合は、定められた時間の間、前記グループの他サーバ装置から前記クライアントに対して送信される処理受付の電文を傍受監視して、その電文を傍受しなかった場合は前記処理受付に係わる判断を再試行することを特徴とするサーバ装置。 - 請求項2記載のサーバ装置において、
前記処理要求を受信した際に、前記グループの自サーバ装置の負荷情報と他サーバ装置の負荷情報とで同じものがある場合は、前記グループ定義情報で持つ各サーバ装置に定められた重複しない固有値を用いて比較して、その結果により、自サーバ装置で前記処理受付を行うことを特徴とするサーバ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005075565A JP2006260059A (ja) | 2005-03-16 | 2005-03-16 | サーバ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005075565A JP2006260059A (ja) | 2005-03-16 | 2005-03-16 | サーバ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006260059A true JP2006260059A (ja) | 2006-09-28 |
Family
ID=37099254
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005075565A Pending JP2006260059A (ja) | 2005-03-16 | 2005-03-16 | サーバ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006260059A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009113172A1 (ja) * | 2008-03-13 | 2009-09-17 | 富士通株式会社 | ジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法 |
| JP2009258777A (ja) * | 2008-04-11 | 2009-11-05 | Toshiba Corp | 医用画像管理サーバおよび医用画像管理システム |
| JP2010152783A (ja) * | 2008-12-26 | 2010-07-08 | Nec Corp | 分散ファイルシステムにおける負荷分散アクセスシステム、オブジェクト保持装置、クライアント装置およびその方法並びにそのプログラム |
| JP2011191907A (ja) * | 2010-03-12 | 2011-09-29 | Hitachi Information & Control Solutions Ltd | データ配信システム,負荷分散方法及び蓄積サーバ |
| CN103188546A (zh) * | 2011-12-27 | 2013-07-03 | 索尼电脑娱乐公司 | 图像提供服务器、信息处理装置、图像处理系统及其方法 |
| JP2016051446A (ja) * | 2014-09-02 | 2016-04-11 | 株式会社日立製作所 | 計算機システム、計算機、負荷分散方法及びそのプログラム |
| JP2019530279A (ja) * | 2016-08-19 | 2019-10-17 | アヴァシュア, エルエルシー | ピア・ツー・ピア・サーバ・ネットワーク用ビデオ負荷均衡システム |
-
2005
- 2005-03-16 JP JP2005075565A patent/JP2006260059A/ja active Pending
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009113172A1 (ja) * | 2008-03-13 | 2009-09-17 | 富士通株式会社 | ジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法 |
| JP5218548B2 (ja) * | 2008-03-13 | 2013-06-26 | 富士通株式会社 | ジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法 |
| JP2009258777A (ja) * | 2008-04-11 | 2009-11-05 | Toshiba Corp | 医用画像管理サーバおよび医用画像管理システム |
| JP2010152783A (ja) * | 2008-12-26 | 2010-07-08 | Nec Corp | 分散ファイルシステムにおける負荷分散アクセスシステム、オブジェクト保持装置、クライアント装置およびその方法並びにそのプログラム |
| JP2011191907A (ja) * | 2010-03-12 | 2011-09-29 | Hitachi Information & Control Solutions Ltd | データ配信システム,負荷分散方法及び蓄積サーバ |
| JP2013134762A (ja) * | 2011-12-27 | 2013-07-08 | Sony Computer Entertainment Inc | 画像処理システム、画像提供サーバ、情報処理装置、および画像処理方法 |
| CN103188546A (zh) * | 2011-12-27 | 2013-07-03 | 索尼电脑娱乐公司 | 图像提供服务器、信息处理装置、图像处理系统及其方法 |
| US8933936B2 (en) | 2011-12-27 | 2015-01-13 | Sony Corporation | Image processing system, image provider server, information processing device, and image processing method, adapted to change in resolution |
| JP2016051446A (ja) * | 2014-09-02 | 2016-04-11 | 株式会社日立製作所 | 計算機システム、計算機、負荷分散方法及びそのプログラム |
| JP2019530279A (ja) * | 2016-08-19 | 2019-10-17 | アヴァシュア, エルエルシー | ピア・ツー・ピア・サーバ・ネットワーク用ビデオ負荷均衡システム |
| JP2021153319A (ja) * | 2016-08-19 | 2021-09-30 | アヴァシュア, エルエルシー | ピア・ツー・ピア・サーバ・ネットワーク用ビデオ負荷均衡システム |
| JP7026103B2 (ja) | 2016-08-19 | 2022-02-25 | アヴァシュア, エルエルシー | ピア・ツー・ピア・サーバ・ネットワーク用ビデオ負荷均衡システム |
| JP7332653B2 (ja) | 2016-08-19 | 2023-08-23 | アヴァシュア, エルエルシー | ピア・ツー・ピア・サーバ・ネットワーク用ビデオ負荷均衡システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11363097B2 (en) | Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network | |
| US7558859B2 (en) | Peer-to-peer auction based data distribution | |
| US8191068B2 (en) | Resource management system, resource information providing method and program | |
| US7962635B2 (en) | Systems and methods for single session management in load balanced application server clusters | |
| US8239868B2 (en) | Computer system, servers constituting the same, and job execution control method and program | |
| CN101102288B (zh) | 一种实现大型即时通信的方法及系统 | |
| US20200042608A1 (en) | Distributed file system load balancing based on available node capacity | |
| CN104750544B (zh) | 应用于分布式系统中的进程管理系统及进程管理方法 | |
| CN102053602A (zh) | 发动机数据采集方法、数据采集服务器和测控系统 | |
| US20080163234A1 (en) | Methods and systems for identifying application system storage resources | |
| CN116723198A (zh) | 一种多节点服务器主机控制方法、装置、设备、存储介质 | |
| JP2006301749A (ja) | サーバ装置 | |
| JP2006260059A (ja) | サーバ装置 | |
| US20040015571A1 (en) | Dynamic determination of network configuration | |
| KR101080733B1 (ko) | 규칙기반 가상머신의 동적 생성으로 부하를 분산하는 서버와 이를 이용한 자율적 부하분산 방법 | |
| US6856943B2 (en) | User perception tool | |
| JP2012088943A (ja) | 仮想サーバ管理装置 | |
| JP2001202318A (ja) | データ配信システム | |
| JP2002259354A (ja) | ネットワークシステム及び負荷分散方法 | |
| JP2006301769A (ja) | サーバ装置 | |
| CN113067877A (zh) | 一种集群部署下的运维服务器分配方法 | |
| JP2011138397A (ja) | 仮想化環境におけるモジュール間の通信方法 | |
| JP2017174038A (ja) | 情報処理システム、情報処理方法およびプログラム | |
| EP2115619B1 (en) | Communication socket state monitoring device and methods thereof | |
| EP2115636A2 (en) | Methods and systems for identifying application system storage resources |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070119 |