以下、図面を用いて実施形態を説明する。
図1は、管理装置、情報処理システム、管理装置の制御方法および管理装置の制御プログラムの一実施形態を示す。図1に示す情報処理システムSYS1は、情報処理を実行する複数の処理サーバSV(SV001、SV002、...)と、処理サーバSVを管理する管理サーバMSVとを有する。管理サーバMSVは、管理装置の一例であり、処理サーバSVは、情報処理装置の一例である。例えば、処理サーバSVは、ネットワークスイッチSWを介して管理サーバMSVに接続される。管理サーバMSVおよび処理サーバSVの各々は、CPU(Central Processing Unit)とメモリMEMとNIC(Network Interface Card)等の通信インタフェース部CIFとを有する。処理サーバSVのCPUは、情報処理を実行する処理部の一例であり、処理サーバSVの通信インタフェース部CIFは、装置側通信処理部の一例である。
管理サーバMSVにおいて、CPUは、メモリMEMに格納された制御プログラムを実行し、通信インタフェース部CIFを介して処理サーバSVの起動および停止を管理する。管理サーバMSVの通信インタフェース部CIFは、管理側通信処理部の一例である。管理サーバMSVは、処理サーバSVを使用したいユーザUSRから、処理サーバSVの使用要求REQ(起動台数を含む)を受信したことに基づいて、全ての処理サーバSVに対して起動要求を送信するブロードキャストを実行する。そして、管理サーバMSVは、使用要求REQに含まれる起動台数に対応する数の処理サーバSVを起動する制御を実行する。なお、使用要求REQは、ユーザUSRが端末装置TMを操作することにより、端末装置TMから発行される。また、使用要求REQは、複数のユーザUSRが操作する複数の端末装置TMからそれぞれ発行されてもよい。
処理サーバSVの通信インタフェース部CIFは、CPUおよびメモリMEMへの電源の供給が停止されている間、所定周期で設定される受信期間に使用要求REQを監視する間欠監視を実行する。使用要求REQを受信可能な受信期間の発生周期および受信期間の長さは、情報処理システムSYS1において使用要求REQを受信する処理サーバSVの通信インタフェース部CIFが所定数(例えば、3台)になるように設定される。以下の説明では、CPUおよびメモリMEMへの電源の供給が停止されている期間は、間欠監視期間と称され、CPUおよびメモリMEMに電源が供給されている期間は、通常動作期間と称される。使用要求REQを受信可能な受信期間は、間欠監視期間において、所定周期で繰り返し設定され、通常動作期間には設定されない。
処理サーバSVの通信インタフェース部CIFは、受信期間に管理サーバMSVから起動要求を受信した場合、処理サーバSVを起動してよいか否かを確認する起動確認を管理サーバMSVに通知する。起動確認は、起動要求を受信した情報処理装置から送信される確認応答の一例である。そして、処理サーバSVの通信インタフェース部CIFは、起動確認に基づいて管理サーバMSVから起動許可の通知を受けた場合、CPUおよびメモリMEMに電源を供給し、処理サーバSVを間欠監視期間から通常動作期間に移行する。一方、処理サーバSVの通信インタフェース部CIFは、起動確認に基づいて管理サーバMSVから起動禁止の通知を受けた場合、間欠監視期間を継続する。起動許可の通知は、処理サーバSVにCPUを起動させる起動指示の一例であり、起動禁止の通知は、処理サーバSVにCPUの起動を禁止させる起動禁止指示の一例である。
図2は、図1に示す情報処理システムSYS1の動作の一例を示す。図2において管理サーバMSVの動作は、情報処理装置の制御方法および情報処理装置の制御プログラムの一例を示す。図2に示す処理サーバSV001−SV010の動作において、斜線のパターンは、使用要求を示す起動要求パケットを監視する受信期間を示し、破線のパターンは、処理サーバSVの起動期間を示し、網掛けのパターンは、起動期間後の通常動作期間を示す。
処理サーバSV001−SV010は互いに非同期で動作するため、使用要求パケットを監視する受信期間は、処理サーバSV001−SV010間でずれている。このため、管理サーバMSVから全ての処理サーバSV001−SV010にブロードキャストされる起動要求パケットを受信する処理サーバSVの数は、その都度変化する。図2に示す例では、ブロードキャストされる起動要求パケットを、平均的に3台の処理サーバSVが受信するように、各処理サーバSVの受信期間の長さと、受信期間の発生周期が設定される。
まず、管理サーバMSVは、ユーザUSRが操作する端末装置TMから使用要求REQ001(起動台数=2台)を受信し、起動要求パケットを全ての処理サーバSVにブロードキャストする(図2(a)、(b))。図2に示す例では、受信期間が起動要求パケットの送信タイミングと重なる3台の処理サーバSV001、SV006、SV007が起動要求パケットを受信し、起動要求パケットの確認応答である起動確認パケットを管理サーバMSVに送信する(図2(c))。
管理サーバMSVは、起動確認パケットを受信し、起動確認パケットを送信した処理サーバSV001、SV006、SV007のうち、処理サーバSV001、SV006に起動許可を通知する起動許可パケットを送信する(図2(d))。起動許可パケットは、所定数の処理サーバSVのCPUを動作可能に起動させる起動指示の一例である。処理サーバSV001、SV006の各々の通信インタフェース部CIFは、起動許可パケットの受信に基づいて、CPUおよびメモリMEMに電源を供給させる指示を電源制御部等に出力し、CPUに起動処理を実行させる。
これにより、使用要求REQ001で指示された台数の処理サーバSV001、SV006が起動され、起動された処理サーバSV001、SV006は、起動期間後にアプリケーション等を実行可能な状態になる。処理サーバSV001、SV006は、起動処理が完了した後、起動処理の完了を管理サーバMSVに通知する起動完了パケットを送信する(図2(e))。
一方、管理サーバMSVは、起動確認パケットを送信した処理サーバSV001、SV006、SV007のうち、起動許可パケットを送信しない残りの処理サーバSV007に起動の禁止を通知する起動禁止パケットを送信する(図2(f))。起動禁止パケットは、処理サーバSVにCPUによる起動処理を禁止させる起動禁止指示の一例である。起動禁止パケットを受信した処理サーバSV007の通信インタフェース部CIFは、CPUおよびメモリMEMに電源を供給させる指示を出力せず、間欠監視期間を継続する(図2(g))。これにより、処理サーバSVが互いに非同期で起動要求パケットの受信期間を設定し、起動確認パケットを送信する処理サーバSVの台数が確率的に変化する場合にも、使用要求REQ001で指示された台数の処理サーバSVを起動することができる。
次に、管理サーバMSVは、端末装置TMから使用要求REQ002(起動台数=3台)を受信し、起動要求パケットを全ての処理サーバSVにブロードキャストする(図2(h)、(i))。2台の処理サーバSV002、SV008が起動要求パケットを受信し、起動確認パケットを管理サーバMSVに送信する(図2(j))。なお、使用要求REQ001、REQ002は、共通のユーザUSRが操作する1つの端末装置TMから発行されてもよく、互いに異なるユーザUSRが操作する2つの端末装置TMからそれぞれ発行されてもよい。
管理サーバMSVは、起動確認パケットを送信した処理サーバSV002、SV008の数が、使用要求REQ002に含まれる起動台数に満たないため、全ての処理サーバSV002、SV008に起動許可パケットを送信する(図2(k))。そして、処理サーバSV002、SV008は、起動許可パケットの受信に基づいて、起動処理を実行し、起動処理が完了した後、起動完了パケットを管理サーバMSVに送信する(図2(l))。なお、起動確認パケットを送信した処理サーバSV002、SV008の数が、使用要求REQ002に含まれる起動台数以下の場合、管理サーバMSVは、起動禁止パケットを発行しない。これにより、管理サーバMSVから処理サーバSVへの無駄なパケットの送信を抑止することができる。
管理サーバMSVは、起動完了パケットの受信に基づいて、残りの1台の処理サーバSVを起動するために、追加の起動要求パケットを全ての処理サーバSVにブロードキャストする(図2(m))。図2に示す例では、3台の処理サーバSV004、SV007、SV010が起動要求パケットを受信し、起動確認パケットを管理サーバMSVに送信する(図2(n))。
管理サーバMSVは、残り1台の処理サーバSVを起動するために、処理サーバSV007に起動許可パケットを送信し、処理サーバSV004、SV010に起動禁止パケットを送信する(図2(o、p))。処理サーバSV007は、起動許可パケットの受信に基づいて、起動処理を実行し、起動処理が完了した後、起動完了パケットを管理サーバMSVに送信する(図2(q))。このように、1回の起動要求パケットにより、使用要求REQ002で指示された台数の処理サーバSVが起動されない場合に、追加で起動要求パケットを送信することで、使用要求REQ002で指示された台数の処理サーバSVを起動することができる。
図3は、処理サーバSVが起動要求パケットに基づいて起動許可パケットによる許可を受けることなく起動処理を実行する場合の起動台数のばらつきの一例を示す。図3は、ブロードキャストされる起動要求パケットを、平均的に3台の処理サーバSVが受信するように、各処理サーバSVの受信期間の長さと、受信期間の発生周期が設定された場合の起動台数を示す。
各処理サーバSVの通信インタフェース部CIFが、起動要求パケットの受信期間を所定周期かつ所定の長さに設定し、受信期間が処理サーバSV間で同期せずにばらつく場合、起動要求パケットを受信する処理サーバSVの台数は、乱数事象となる。典型的には、処理サーバSVの起動台数の確率分布は、ポアソン分布になる。このため、起動要求パケットに基づいて起動される処理サーバSVの数の平均値が3台になるように受信期間が設定される場合にも、実際に起動される処理サーバSVの数はばらつく。図2に示す動作を実行する情報処理システムSYS1では、処理サーバSVの起動台数の確率分布が、図3に示すようにばらつく場合にも、使用要求REQで指示された台数の処理サーバSVを起動することができる。
以上、図1および図2に示す実施形態では、起動要求パケットをブロードキャストする情報処理システムSYS1において、使用しない処理サーバSVが起動されることを抑止することで、情報処理システムSYS1の消費電力を削減することができる。また、処理サーバSVが互いに非同期で起動要求パケットの受信期間を設定し、起動確認パケットを送信する処理サーバSVの台数が図3に示すように確率的に変化する場合にも、使用要求REQで指示された台数の処理サーバSVを起動することができる。
1回の起動要求パケットにより、使用要求REQで指示された台数の処理サーバSVが起動されない場合に、追加で起動要求パケットを送信することで、使用要求REQで指示された台数の処理サーバSVを起動することができる。
図4は、管理装置、情報処理システム、管理装置の制御方法および管理装置の制御プログラムの別の実施形態を示す。図1から図3で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図4に示す情報処理システムSYS2は、複数の処理サーバSV、管理サーバMSV、ロードバランサLB、および処理サーバSV、管理サーバMSV、ロードバランサLBを相互に接続する複数のネットワークスイッチSWを有する。
情報処理システムSYS2は、インターネットまたはイントラネット等のネットワークNWを介して複数の端末装置TMに接続される。なお、情報処理システムSYS2は、ネットワークNWを介さずに複数の端末装置TMに接続されてもよい。例えば、端末装置TMは、データの入出力処理など最小限の処理を実行するシンクライアントとして機能する。そして、処理サーバSV内に起動される仮想マシンが端末装置TM(ユーザ)のそれぞれに割り当てられることで、例えば、仮想マシンによりデータ処理等を実行するVDI(Virtual Desktop Infrastructure)が、情報処理システムSYS2により実現される。
情報処理システムSYS2は、負荷の増減に応じて処理サーバSVの起動台数を増減するスケールアウトシステムに適用される。あるいは、情報処理システムSYS2は、教育現場において複数の学生に同時に利用される教育システムに適用されてもよく、企業の事務処理システムに適用されてもよい。各処理サーバSVは、複数のクライアントによるデータ処理の計算機資源として利用されてもよい。
各処理サーバSVは、ネットワークスイッチSWを介して管理サーバMSVおよびロードバランサLBに接続され、ネットワークスイッチSWおよびネットワークNWを介して端末装置TMに接続される。処理サーバSV、管理サーバMSVおよびロードバランサLBが、LAN(Local Area Network)を介して互いに接続される場合、ネットワークスイッチSWは、レイヤ2スイッチ等のLANスイッチである。
管理サーバMSVは、情報処理システムSYS2の全体の動作を制御し、端末装置TMから発行される処理サーバSVの使用要求に基づいて、使用要求に含まれる起動台数の処理サーバSVを起動する処理を実行する。また、管理サーバMSVは、端末装置TMから発行される処理サーバSVの停止要求に基づいて、停止が指示された処理サーバSVを停止する処理を実行する。
ロードバランサLBは、管理サーバMSVからの指示に基づいて動作する。ロードバランサLBは、各処理サーバSVが実行する処理の負荷を分散させる機能、または、各処理サーバSVが実行する処理の負荷を分散させるために、端末装置TMに接続する仮想マシンの割り当てを決める機能を有する。
図5は、図4に示す管理サーバMSVの一例を示す。図5において、太い実線は、電源線を示す。管理サーバMSVは、CPU、メモリMEM、HDD(Hard Disk Drive)、PROM(Programmable Read Only Memory)、BMC(Baseboard Management Controller)、通信インタフェース部CIFおよび電源部PSを有する。
CPUは、PROMに格納されたBIOS(Basic Input/Output System)等の基本プログラムを実行するとともに、メモリMEMに格納されたOS(Operating System)および管理プログラムMPGMを実行することで、管理サーバMSVの機能を実現する。なお、OSおよび管理プログラムMPGMは、管理サーバMSVの起動時に、HDDからメモリMEMに転送される。
メモリMEMは、複数のSDRAM(Synchronous Dynamic Random Access Memory)を含むDIMM等のメモリモジュールであり、メモリバスを介してCPUに接続される。PROMには、CPUへの電源の供給時、またはリスタート時に起動されるBIOS等のファームウェアが予め格納されている。HDDには、OSおよび管理プログラムMPGM等が予め格納されている。
BMCは、管理サーバMSVに搭載されるCPU、メモリMEM、電源部PSおよび図示しないファン等の動作状態を管理する。例えば、BMCは、電源制御信号PWCNTを電源部PSに出力し、電源部PSからCPU、HDD、メモリMEM、PROM等への電源の供給を制御する。なお、BMCおよび通信インタフェース部CIFには、電源が電源部PSから常時供給される。通信インタフェース部CIFは、図4に示す処理サーバSVおよびロードバランサLBとの間の通信を制御する。
図6は、図5に示す管理サーバMSVの機能ブロックの一例を示す。管理サーバMSVは、起動制御部10、受信周期設定部12、サーバ管理テーブルSVTBLおよび起動管理テーブルSTTBLを有する。起動制御部10および受信周期設定部12は、管理サーバMSVのCPUが実行する管理プログラムMPGMにより実現される。なお、起動制御部10および受信周期設定部12は、ハードウェアにより実現されてもよい。例えば、サーバ管理テーブルSVTBLおよび起動管理テーブルSTTBLは、管理サーバMSVのメモリMEMに割り当てられる。
起動制御部10は、図4に示すネットワークNWを介して、処理サーバSVを使用したいユーザUSR(端末装置TM)から処理サーバSVの使用要求REQを受信した場合、使用要求REQに含まれる起動台数の処理サーバSVを起動する制御を実行する。起動制御部10は、起動台数の処理サーバSVを起動した後、使用要求REQを発行したユーザUSR(端末装置TM)に起動完了通知を送信する。
また、起動制御部10は、ユーザUSR(端末装置TM)から処理サーバSVの停止要求を受信した場合、停止要求に対応する処理サーバSVに停止パケットを送信する。そして、起動制御部10は、停止パケットを送信した処理サーバSVから停止処理開始パケットを受信したことに基づいて、停止要求を発行したユーザUSR(端末装置TM)に停止完了通知を送信する。処理サーバSVは、停止処理を開始した後、電源が遮断される前に停止処理開始パケットを管理サーバMSVに送信する。停止要求は、使用要求REQに対応して発行され、起動制御部10は、使用要求REQに基づいて起動した所定数の処理サーバSVを、使用要求REQに対応する停止要求に基づいて停止する制御を実行する。
起動制御部10は、通信インタフェース部CIFを介して、処理サーバSVに起動要求パケット(ブロードキャスト)、起動許可パケット、起動禁止パケットおよび停止パケットを送信する。また、起動制御部10は、通信インタフェース部CIFを介して、処理サーバSVから起動確認パケット、起動完了パケットおよび停止処理開始パケットを受信する。起動制御部10は、起動要求パケットの送信に基づいて所定時間を計測するタイマ14を有する。起動制御部10は、起動要求パケットを送信後、タイマ14が所定時間の計測を完了するまで起動確認パケットの受信処理を実行する。起動要求パケット、起動確認パケット、起動許可パケット、起動禁止パケットおよび起動完了パケットの意味は、図2の説明と同様である。
受信周期設定部12は、起動制御部10からの指示に基づいて、各処理サーバSVの通信インタフェース部CIFに設定する受信期間の周期を算出する機能を有する。受信期間は、各処理サーバSVが使用要求REQを受信可能な期間であり、所定周期に設定され、処理サーバSVの間で互いに非同期である。受信周期設定部12は、起動制御部10から指示に基づいて、サーバ管理テーブルSVTBLを参照し、停止中の処理サーバSVの数を算出する。受信周期設定部12は、算出した処理サーバSVの停止数に基づいて、受信期間の周期を算出し、算出した受信期間の周期を起動制御部10に通知する。受信期間の周期は、停止している処理サーバSVが多いほど長く設定され、停止している処理サーバSVが少ないほど短く設定される。起動制御部10は、受信周期設定部12から通知された受信期間の周期を、処理サーバSVの少なくともいずれかに設定する。受信期間の周期を設定する手法については、図8および図9で説明される。なお、受信期間の長さ(図2に示す斜線パターンの長さ)は、処理サーバSV間で共通に設定される。
サーバ管理テーブルSVTBLは、処理サーバSVを識別するサーバID(Identification)毎に、使用要求REQを示す要求IDと、処理サーバSVが起動中か否かを示す起動フラグとを格納する領域を含むエントリを有する。図6では、起動フラグの”1”は、処理サーバSVが起動していることを示し、起動フラグの”0”は、処理サーバSVが停止していることを示す。
起動制御部10は、起動制御部10が処理サーバSVから起動完了パケットを受信する毎に、起動した処理サーバSVに対応するサーバ管理テーブルSVTBLのエントリに要求IDを格納し、起動フラグを”1”に設定する。また、起動制御部10は、処理サーバSVに停止パケットを送信する毎に、停止する処理サーバSVに対応するサーバ管理テーブルSVTBLのエントリに格納された要求IDを削除し、起動フラグを”0”に設定する。
図6に示すサーバ管理テーブルSVTBLは、使用要求REQ001に基づいて処理サーバSV001、SV006が起動され、使用要求REQ002に基づいて処理サーバSV002、SV007、SV008が起動されたことを示す。すなわち、図6に示すサーバ管理テーブルSVTBLは、図2に示す動作の完了後の状態を示す。
起動管理テーブルSTTBLは、要求ID、要求発生日時、要求台数、起動要求パケットIDおよび起動台数を格納する領域をそれぞれ含む複数のエントリを有する。要求IDは、使用要求REQを識別する情報であり、要求発生日時は、使用要求REQが発生した日時を示す情報であり、要求台数は、使用要求REQに含まれる起動台数を示す情報である。起動要求パケットIDは、使用要求REQに基づいて起動制御部10が発行した起動要求パケットを識別する情報であり、起動台数は、起動要求パケットに基づいて起動した処理サーバSVの台数を示す情報である。
図6に示す起動管理テーブルSTTBLの1行目のエントリは、日時T001に発生した2台の使用を要求する使用要求REQ001に基づいて、起動要求パケットSP001が発行され、2台の処理サーバSVが起動されたことを示す。起動管理テーブルSTTBLの2行目のエントリは、日時T002に発生した3台の使用を要求する使用要求REQ002に基づいて、起動要求パケットSP002が発行され、2台の処理サーバSVが起動されたことを示す。
起動管理テーブルSTTBLの3行目のエントリは、日時T002に発生した3台の使用を要求する使用要求REQ002に基づいて、追加の起動要求パケットSP003が発行され、1台の処理サーバSVが起動されたことを示す。すなわち、図6に示す起動管理テーブルSTTBLは、図2に示す動作により設定された状態を示す。
図7は、図4に示す処理サーバSVの一例を示す。図5に示す管理サーバMSVと同一または同様の構成については、詳細な説明は省略する。処理サーバSVは、管理サーバMSVと同様に、CPU、メモリMEM、HDD、PROM、BMC、通信インタフェース部CIFおよび電源部PSを有する。
CPUは、PROMに格納されたBIOS等の基本プログラムを実行するとともに、メモリMEMに格納されたOSおよびアプリケーションプログラムAPGM等を実行することで、処理サーバSVの機能を実現する。OSおよびアプリケーションプログラムAPGM等は、処理サーバSVの起動時に、HDDからメモリMEMに転送される。HDDには、OSおよびアプリケーションプログラムAPGM等が予め格納されている。処理サーバSVのCPUが実行するOSは、通信インタフェース部CIFを介して、処理サーバSVの停止の指示を受けた場合、CPU、HDD、メモリMEM、PROMへの電源の供給を停止させる停止指示POFFをBMCに出力する機能を有する。
BMCは、管理サーバMSVに搭載されるCPU、メモリMEM、電源部PSおよび図示しないファン等の動作状態を管理する。例えば、BMCは、電源制御信号PWCNTを電源部PSに出力し、電源部PSからCPU、HDD、メモリMEM、PROM等への電源の供給を制御する。BMCは、CPUから停止指示POFFを受信した場合、CPU、HDD、メモリMEM、PROMへの電源の供給を停止する。また、BMCは、通信インタフェース部CIFから起動指示PONを受信した場合、CPU、HDD、メモリMEM、PROMへの電源の供給を開始する。なお、BMCおよび通信インタフェース部CIFには、電源が電源部PSから常時供給される。
通信インタフェース部CIFは、図4に示す管理サーバMSV、ロードバランサLBおよび端末装置TMとの間の通信を制御する。また、通信インタフェース部CIFは、管理サーバMSVからの起動許可パケット(図2)に基づいて、起動指示PONをBMCに出力し、処理サーバSVを起動する、いわゆるWake on LAN機能を有する。
通信インタフェース部CIFは、インターバルレジスタIREGとインターバルフラグIFLGとを有する。インターバルレジスタIREGは、管理サーバMSVからの起動要求パケット(図2)を受信する受信期間の周期を設定する周期情報が格納され、インターバルフラグIFLGは、インターバルレジスタIREGを有効とするか無効とするかを示す情報が格納される。インターバルレジスタIREGには、図6に示す管理サーバMSVの受信周期設定部12が算出した受信期間の周期が、周期情報として起動制御部10により格納される。そして、各処理サーバSVの通信インタフェース部CIFは、インターバルレジスタIREGに設定された周期情報に応じて、図2に斜線パターンで示す受信期間の周期を変更する。
受信期間の周期は、停止している処理サーバSVが多いほど長く設定され、停止している処理サーバSVが少ないほど短く設定される。これにより、停止している処理サーバSVの数に依存せずに、起動要求パケットを受信する処理サーバSVの台数のばらつきを抑えることができる。但し、図3で説明したように、処理サーバSV間において受信期間は同期していないため、起動要求パケットを受信する処理サーバSVの数はばらつく。
この実施形態では、インターバルフラグIFLGは、インターバルレジスタIREGを有効にする値に設定される。インターバルレジスタIREGを無効にする値が、インターバルフラグIFLGに設定された場合、通信インタフェース部CIFは、起動要求パケットを常時受信する。そして、起動要求パケットに基づいて、停止中の全ての処理サーバSVが起動確認パケットを管理サーバMSVに送信する。なお、インターバルフラグIFLGを設けることなく、インターバルレジスタIREGに有効な値が設定された場合、受信期間の周期を設定し、インターバルレジスタIREGに無効な値が設定された場合、起動要求パケットを常時受信してもよい。
図8は、図7に示す処理サーバSV内の通信インタフェース部CIFのインターバルレジスタIREGを設定する動作の一例を示す。図8に示す処理は、図6に示す起動制御部10および受信周期設定部12により、所定の時間間隔で実行される。起動制御部10および受信周期設定部12は、管理サーバMSVのCPUが実行する管理プログラムにより実現される。すなわち、図8は、管理装置の制御方法および管理装置の制御プログラムの一例を示す。
まず、ステップS100において、管理サーバMSVの起動制御部10は、処理サーバSVの1つに、処理サーバSVが起動中か停止中かを確認する疎通確認パケットを送信する。疎通確認パケットを送信する処理サーバSVは、順次に選択され、疎通確認パケットは、所定期間に全ての処理サーバSVに送信される。
次に、ステップS102において、起動制御部10は、疎通確認パケットを送信した処理サーバSVから応答パケットを受信したか否かを判定する。起動制御部10は、所定時間が経過するまでに応答パケットを受信しない場合、疎通確認パケットを送信した処理サーバSVが停止していると判定し、処理をステップS104に移行する。起動制御部10は、所定時間が経過するまでに応答パケットを受信した場合、疎通確認パケットを送信した処理サーバSVが起動中であると判定し、処理を終了する。
ステップS104において、起動制御部10は、サーバ管理テーブルSVTBLにおいて、疎通確認パケットを送信した処理サーバSVに対応するエントリの起動フラグを停止状態(すなわち、”0”)に設定する。そして、起動制御部10は、受信周期設定部12に受信期間の周期を算出させる指示を出力する。次に、ステップS106において、受信周期設定部12は、サーバ管理テーブルSVTBLにおいて、起動フラグが停止状態に設定されたエントリの数を積算することで、停止している処理サーバSVの数を算出する。
次に、ステップS108において、受信周期設定部12は、ステップS106で算出した停止している処理サーバSVの数に基づいて、起動要求パケットを受信する受信期間の周期を算出し、算出した周期を起動制御部10に通知する。例えば、受信周期設定部12は、起動要求パケットに応答して起動確認パケットを送信する処理サーバSVの数の平均値が、予め設定した期待値(例えば、図3に示す”3”)になるように、受信期間の周期を算出する。
次に、ステップS110において、起動制御部10は、受信周期設定部12から通知された受信期間の周期を示す周期情報を、疎通確認パケットを送信した処理サーバSVのインターバルレジスタIREG(図7)に格納し、処理を終了する。なお、管理サーバMSVが、疎通確認パケットを送信した処理サーバSVに周期情報を含む通知パケットを送信し、周期情報のインターバルレジスタIREGへの格納は、処理サーバSVの通信インタフェース部CIFにより実行されてもよい。
管理サーバMSVは、疎通確認パケットにより処理サーバSVが停止中であると判明した時点で、停止中の処理サーバSVの数に基づいて、受信期間の周期を算出する。これより、現在停止中の処理サーバSVの数に合わせて、受信期間を最適な周期に設定することができる。すなわち、起動確認パケットを送信する処理サーバSVの数の平均値を期待値にすることができる。
図9は、図7に示す処理サーバSV内の通信インタフェース部CIFのインターバルレジスタIREGを設定する動作の別の例を示す。図8と同一または同様の処理については、詳細な説明は省略する。図9に示す処理は、図6に示す起動制御部10および受信周期設定部12により、図8に示す処理の起動間隔より長い所定の時間間隔で実行される。なお、図9に示す処理は、図2に示す動作において、使用要求REQの受信に基づく処理サーバSVの起動処理が完了する毎に実行されてもよい。図9は、管理装置の制御方法および管理装置の制御プログラムの一例を示す。
まず、ステップS120において、管理サーバMSVの起動制御部10は、全ての処理サーバSVに疎通確認パケットを順次送信する。疎通確認パケットは、ブロードキャストされてもよい。次に、ステップS122において、起動制御部10は、所定時間の経過を待ち、疎通確認パケットに対応して発行される各処理サーバSVからの応答パケットの受信の有無を判別する。そして、起動制御部10は、サーバ管理テーブルSVTBLにおいて、応答パケットの受信がなかった処理サーバSVに対応するエントリの起動フラグを停止状態(すなわち、”0”)に設定する。そして、起動制御部10は、受信周期設定部12に受信期間の周期を算出させる指示を出力する。
次に、ステップS124において、受信周期設定部12は、図8に示すステップS106と同様に、サーバ管理テーブルSVTBLを参照し、起動フラグが停止状態に設定されたエントリの数を積算することで、停止している処理サーバSVの数を算出する。
次に、ステップS126において、受信周期設定部12は、図8に示すステップS108と同様に、ステップS124で算出した停止している処理サーバSVの数に基づいて、停止中の処理サーバSVの数における起動要求パケットの受信期間の周期を算出する。次に、ステップS128において、起動制御部10は、図8に示すステップS110と同様に、停止中の処理サーバSVのインターバルレジスタIREGに受信期間の周期に格納し、処理を終了する。
図9では、管理サーバMSVは、全ての処理サーバSVに送信した疎通確認パケットにより判明した停止中の処理サーバSVの数に基づいて、受信期間の周期を算出する。これより、現在停止中の処理サーバSVの数に合わせて、受信期間を最適な周期に設定することができ、起動確認パケットを送信する処理サーバSVの数の平均値を期待値にすることができる。
図10は、図5に示す管理サーバMSVによる処理サーバSVの起動処理の一例を示す。図10に示す処理は、図6に示す起動制御部10により実行され、管理装置の制御方法および管理装置の制御プログラムの一例を示す。なお、情報処理システムSYS2の全体の動作は、図2に示す情報処理システムSYS1の動作と同様である。
まず、ステップS130において、起動制御部10は、処理サーバSVを使用したいユーザUSR(端末装置TM)から使用要求REQを受信した場合、処理をステップS132に移行する。ステップS132において、起動制御部10は、全ての処理サーバSVに起動要求パケットを送信する(ブロードキャスト)。次に、ステップS134において、起動制御部10は、図6に示すタイマ14が計測する所定時間が経過するまで、処理サーバSVからの起動確認パケットを待つ。
次に、ステップS136において、起動制御部10は、受信した起動確認パケットの数と使用要求REQに含まれる起動台数とを比較することで、起動確認パケットの判定を実行する。この際、起動制御部10は、起動管理テーブルSTTBLにおいて使用要求REQに対応するエントリを参照し、エントリに格納された要求台数と起動台数とに基づいて、起動確認パケットの判定を実行する。なお、1回の使用要求REQに基づいて、複数の起動要求パケットを送信する場合、ステップS140により変更された起動台数を使用して起動確認パケットの判定が実行される。受信した起動確認パケットの数が使用要求REQに含まれる起動台数より少ない場合、追加の起動要求パケットの発行を決定し、処理はステップS138に移行される。受信した起動確認パケットの数が使用要求REQに含まれる起動台数と等しい場合、処理はステップS142に移行される。受信した起動確認パケットの数が使用要求REQに含まれる起動台数より多い場合、処理はステップS144に移行される。
ステップS138において、起動制御部10は、起動確認パケットの送信元の全ての処理サーバSVに起動許可パケットを送信する。この後、起動制御部10は、起動完了パケットを受信した場合、図6に示すサーバ管理テーブルSVTBLにおいて、起動完了パケットを送信した処理サーバSVに対応するエントリに、使用要求REQの要求IDを格納し、起動フラグを”1”に設定する。また、起動制御部10は、起動完了パケットを受信した場合、図6に示す起動管理テーブルSTTBLに新たなエントリを追加する。新たなエントリには、使用要求REQのIDと、使用要求REQの発生日時と、使用要求REQに含まれる要求台数と、起動要求パケットIDと、起動要求パケットにより起動された処理サーバSVの起動台数とを示す情報が格納される。このように、起動制御部10は、起動許可パケットの発行に対応して、サーバ管理テーブルSVTBLおよび起動管理テーブルSTTBLを更新する。
次に、ステップS140において、起動制御部10は、使用要求REQに含まれる起動台数(要求台数)からステップS138で既に起動した処理サーバSVの数を引いた値を新たな起動台数として算出し、処理をステップS132に戻す。この際、起動制御部10は、起動管理テーブルSTTBLにおいて使用要求REQに対応するエントリを参照し、エントリに格納された要求台数と起動台数とに基づいて、新たな起動台数を算出する。使用要求REQに対応して起動された処理サーバSVの起動台数を格納する起動管理テーブルSTTBLを参照することで、起動管理テーブルSTTBLを参照しない場合に比べて、新たな起動台数を容易に算出することができる。また、起動確認パケットの受信数が起動台数より少ない場合に、新たな起動台数を算出することで、追加の起動要求パケットをブロードキャストする場合に、ステップS136による起動台数の比較を正しく実行することができる。この結果、起動制御部10は、ステップS138、S142、S144において、正しい数の処理サーバSVに起動許可パケットを送信することができる。
一方、ステップS142において、起動制御部10は、起動確認パケットの送信元の全ての処理サーバSVに起動許可パケットを送信する。この後、起動制御部10は、ステップS138の処理と同様に、サーバ管理テーブルSVTBLおよび起動管理テーブルSTTBLを更新する。
ステップS144において、起動制御部10は、起動確認パケットの発行元の処理サーバSVの中から起動台数と同じ数の処理サーバSVを選択し、選択した処理サーバSVに起動許可パケットを送信する。この後、起動制御部10は、ステップS138の処理と同様に、サーバ管理テーブルSVTBLおよび起動管理テーブルSTTBLを更新する。次に、ステップS146において、起動制御部10は、起動確認パケットの発行元の処理サーバSVのうち、ステップS144で選択しなかった処理サーバSVに、起動禁止パケットを送信し、処理をステップS148に移行する。
ステップS148において、起動制御部10は、起動許可パケットを送信した全ての処理サーバSVからの起動完了パケットを待つ。起動制御部10は、起動完了パケットの受信後、使用要求REQに含まれる起動台数の処理サーバSVの起動が完了したことを示す起動完了通知を、使用要求REQの発行元であるユーザUSR(端末装置TM)に送信し、処理サーバSVの起動処理を終了する。
図11は、図5に示す管理サーバMSVによる処理サーバSVの停止処理の一例を示す。図11に示す処理は、図6に示す起動制御部10により実行され、管理装置の制御方法および管理装置の制御プログラムの一例を示す。
まず、ステップS150において、起動制御部10は、処理サーバSVの使用を停止したいユーザUSR(端末装置TM)から停止要求を受信した場合、処理をステップS152に移行する。なお、停止要求は、処理サーバSVを起動させた使用要求REQに対応してユーザUSR(端末装置TM)から送信される。
ステップS152において、起動制御部10は、サーバ管理テーブルSVTBLを参照し、停止要求に対応する使用要求REQが格納されたエントリに対応する処理サーバSVを、停止対象の処理サーバSVとして抽出する。次に、ステップS154において、起動制御部10は、ステップS152で抽出した処理サーバSVに停止パケットを送信する。
次に、ステップS156において、起動制御部10は、停止パケットを送信した全ての処理サーバSVから停止処理開始パケットを受信するまで待つ。停止パケットを送信した全ての処理サーバSVから停止処理開始パケットを受信した場合、処理はステップS158に移行される。
ステップS158において、起動制御部10は、サーバ管理テーブルSVTBLにおいて、停止処理開始パケットを送信した処理サーバSVに対応するエントリの要求IDの欄に格納された使用要求REQの要求IDを削除し、起動フラグの欄を”0”に設定する。また、起動制御部10は、停止処理開始パケットを受信した場合、起動管理テーブルSTTBLにおいて、停止要求に対応する要求IDが格納されたエントリを削除する。
次に、ステップS160において、起動制御部10は、停止要求に対応する処理サーバSVの停止が完了したことを示す停止完了通知を、停止要求の発行元であるユーザUSR(端末装置TM)に送信し、処理サーバSVの停止処理を終了する。
図12は、図5に示す処理サーバSVの動作の一例を示す。図12の上側は、管理サーバMSVから起動許可パケットを受信した処理サーバSVの動作の例を示し、図12の下側は、管理サーバMSVから起動禁止パケットを受信した処理サーバSVの動作の例を示す。
図12の上側において、各処理サーバSVの通信インタフェース部CIFは、間欠監視期間IWP内の受信期間RCVに、起動要求パケットを受信した場合、起動確認パケットを管理サーバMSVに送信する(図12(a))。ここで、間欠監視期間IWPは、CPUおよびメモリMEM等への電源の供給が停止されている期間であり、使用要求REQを受信可能な受信期間が所定周期で設定される。
通信インタフェース部CIFは、起動確認パケットに対応する起動許可パケットを管理サーバMSVから受信した場合、BMCに起動指示PONを出力する(図12(b))。なお、通信インタフェース部CIFは、起動確認パケットに対応する起動許可パケットを受信しない場合、起動指示PONを出力することなく間欠監視期間IWPを継続する。
起動指示PONを受信したBMCは、電源制御信号PWCNTを電源部PSに出力し、CPUおよびメモリMEM等への電源の供給を電源部PSに開始させる(図12(c))。電源の供給が開始されたことに基づいて、BIOSが起動される(図12(d))。BIOSは、ハードウェアの初期設定を実行し、ブートローダ等によりOSをHDDからメモリMEMにロードし、OSを起動する(図12(e))。
起動されたOSは、OSの起動が完了したことを示す起動完了パケットを、通信インタフェース部CIFを介して管理サーバMSVに通知する(図12(f))。そして、OSが起動された処理サーバSVの状態は、間欠監視期間IWPから通常動作期間NMPに遷移する。
一方、図12の下側において、各処理サーバSVの通信インタフェース部CIFは、図12の上側と同様に、間欠監視期間IWP内の受信期間RCVに、起動要求パケットを受信した場合、起動確認パケットを管理サーバMSVに送信する(図12(g))。通信インタフェース部CIFは、起動確認パケットに対応する起動禁止パケットを管理サーバMSVから受信した場合、BMCに起動指示PONを出力せずに、間欠監視期間IWPを継続する(図12(h))。すなわち、起動禁止パケットを受信した処理サーバSVは、BIOSおよびOSが起動されず、停止状態を維持する。
図12に示す動作では、起動許可パケットを管理サーバMSVから受信したことに基づいて、CPUおよびメモリMEM等への電源の供給を開始することで、起動する処理サーバSVのみのCPUおよびメモリMEMに電源を供給することができる。この結果、起動しない処理サーバSVのCPUおよびメモリMEMにも電源を供給する場合に比べて、情報処理システムSYS2の消費電力を削減することができる。
図13は、図5に示す処理サーバSV内の通信インタフェース部CIFが間欠監視期間IWPに実行する処理の一例を示す。図13に示す処理は、所定の頻度で繰り返し実行される。
まず、ステップS200において、処理サーバSV内の通信インタフェース部CIFは、管理サーバMSVからの起動要求パケットの受信を待ち、起動要求パケットを受信した場合、処理をステップS202に移行する。ステップS202において、通信インタフェース部CIFは、管理サーバMSVに起動確認パケットを送信する。
次に、ステップS204において、通信インタフェース部CIFは、管理サーバMSVから起動禁止パケットを受信した場合、処理を終了し、管理サーバMSVから起動禁止パケットを受信していない場合、処理をステップS206に移行する。ステップS206において、通信インタフェース部CIFは、管理サーバMSVから起動許可パケットを受信した場合、処理をステップS208に移行し、管理サーバMSVから起動許可パケットを受信していない場合、処理をステップS204に戻す。ステップS208において、通信インタフェース部CIFは、CPUおよびメモリMEM等への電源の投入をBMCに指示し、BIOSおよびOSを起動させ、処理を終了する。
以上、図4から図13に示す実施形態においても、図1および図2に示す実施形態と同様の効果を得ることができる。例えば、起動要求パケットをブロードキャストする情報処理システムSYS2において、使用しない処理サーバSVが起動されることを抑止することで、情報処理システムSYS2の消費電力を削減することができる。1回の起動要求パケットにより、使用要求REQで指示された台数の処理サーバSVが起動されない場合に、追加で起動要求パケットを送信することで、使用要求REQで指示された台数の処理サーバSVを起動することができる。
さらに、図4から図13に示す実施形態では、以下の効果を得ることができる。例えば、使用要求REQに含まれる起動台数から受信した起動確認パケットの数を引いた値を、新たな起動台数に設定することで、追加の起動要求パケットをブロードキャストする場合に、正しい数の処理サーバSVに起動許可パケットを送信することができる。起動管理テーブルSTTBLを参照して新たな起動台数を算出することで、起動管理テーブルSTTBLを使用しない場合に比べて、新たな起動台数を容易に算出することができる。起動確認パケットを送信した処理サーバSVの数が使用要求REQに含まれる起動台数以下の場合、起動禁止パケットを発行しないことで、管理サーバMSVから処理サーバSVへの無駄なパケットの送信を抑止することができる。
停止中の処理サーバSVの数を所定の時間間隔で算出し、受信期間の周期を算出することで、受信期間を最適な周期に設定することができ、起動確認パケットを送信する処理サーバSVの数の平均値を期待値にすることができる。起動許可パケットを管理サーバMSVから受信したことに基づいて、CPUおよびメモリMEM等への電源の供給を開始することで、起動する処理サーバSVのみのCPUおよびメモリMEMに電源を供給することができる。この結果、起動しない処理サーバSVのCPUおよびメモリMEMにも電源を供給する場合に比べて、情報処理システムSYS2の消費電力を削減することができる。
図14は、管理装置、情報処理システム、管理装置の制御方法および管理装置の制御プログラムの別の実施形態における処理サーバの動作の一例を示す。図12と同一または同様の動作については、詳細な説明は省略する。なお、情報処理システムSYS2の構成は、図1と同様であり、管理サーバMSVの構成は、図5と同じであり、処理サーバSVの構成は、図7と同じである。管理サーバMSVの動作は、図8から図11と同じである。また、情報処理システムの全体の動作は、図2と同じである。
図14の上側は、管理サーバMSVから起動許可パケットを受信した処理サーバSVの動作の例を示し、図14の下側は、管理サーバMSVから起動禁止パケットを受信した処理サーバSVの動作の例を示す。図14に示す例では、処理サーバSVの通信インタフェース部CIFは、管理サーバMSVからの起動要求パケットの受信に基づいて、CPUおよびメモリMEM等への電源の投入をBMCに指示し、BIOSを起動させる(図14(a)、(b)、(c))。
起動されたBIOSは、通信インタフェース部CIFを介して起動確認パケットを管理サーバMSVに送信する(図14(d))。通信インタフェース部CIFは、起動確認パケットに対応する起動許可パケットを管理サーバMSVから受信した場合、受信した起動許可パケットをBIOSに通知する(図14(e))。通信インタフェース部CIFからの通知を受けたBIOSは、OSをHDDからメモリMEMにロードし、OSを起動する(図14(f))。この後、起動されたOSは、起動完了パケットを、通信インタフェース部CIFを介して管理サーバMSVに通知する(図14(g))。そして、処理サーバSVの状態は、間欠監視期間IWPから通常動作期間NMPに遷移する。
図14の下側において、BIOSが起動確認パケットを管理サーバMSVに送信するまでの動作は、図14の上側に示す動作と同じである。通信インタフェース部CIFは、起動確認パケットに対応する起動禁止パケットを管理サーバMSVから受信した場合、受信した起動禁止パケットをBIOSに通知する(図14(h))。起動禁止パケットを受信したBIOSは、BIOSの停止処理を開始し、BIOSを停止してよい状態になった場合、CPUおよびメモリMEM等への電源の供給を停止させる停止指示POFFをBMCに出力する(図14(i))。BMCは、停止指示POFFに基づいて、CPUおよびメモリMEM等への電源の供給を停止する電源制御信号PWCNTを電源部PSに出力する(図14(j))。そして、電源が遮断され、処理サーバSVの動作が停止し、処理サーバSVの状態は、間欠監視期間IWPを維持する。
図14に示す動作では、通信インタフェース部CIFは、起動要求パケットの受信に基づいて、起動確認パケットを受信する前に、起動指示PONをBMCに出力し、BIOSを起動する機能を有する。すなわち、起動確認パケットを送信する動作と、起動許可パケットおよび起動禁止パケットを受信する動作とは、通信インタフェース部CIFではなく、BIOSが実行する。これにより、通信インタフェース部CIF(ハードウェア)の変更をすることなく、BIOS等のソフトウェアの変更により、図14に示す動作を実現することができる。
また、図14に示す動作では、処理サーバSVの通信インタフェース部CIFは、起動要求パケットを管理サーバMSVから受信したことに基づいて、CPUおよびメモリMEM等への電源の供給を開始する。これにより、CPUおよびメモリMEM等への電源の供給を、起動許可パケットの受信に基づいて開始する場合に比べて、起動許可パケットを受信してからOSの起動が完了するまでの時間を短縮することができる。
図15は、図14に示す処理サーバSV内の通信インタフェース部CIFが間欠監視期間IWPに実行する処理の一例を示す。図13と同一または同様の処理については、詳細な説明は省略する。図15に示す処理は、所定の頻度で繰り返し実行される。
まず、ステップS210において、図13に示すステップS200と同様に、処理サーバSV内の通信インタフェース部CIFは、管理サーバMSVからの起動要求パケットの受信を待ち、起動要求パケットを受信した場合、処理をステップS212に移行する。ステップS212において、通信インタフェース部CIFは、CPUおよびメモリMEM等への電源の投入をBMCに指示し、BIOSを起動させる。
次に、ステップS214において、通信インタフェース部CIFは、BIOSから転送される起動確認パケットを、管理サーバMSVに送信する。次に、ステップS216において、通信インタフェース部CIFは、管理サーバMSVから起動許可パケットまたは起動禁止パケットを受信した場合、受信したパケットをBIOSに転送し、処理を終了する。
図16は、図14に示す処理サーバSV内で起動されるBIOSが実行する処理の一例を示す。まず、ステップS302において、電源の投入により起動されたBIOSは、通信インタフェース部CIFを介して管理サーバMSVに起動確認パケットを送信する。次に、ステップS304において、BIOSは、通信インタフェース部CIFを介して、管理サーバMSVから起動禁止パケットを受信した場合、処理をステップS310に移行する。BIOSは、通信インタフェース部CIFを介して、管理サーバMSVから起動禁止パケットを受信していない場合、処理をステップS306に移行する。
ステップS306において、BIOSは、通信インタフェース部CIFを介して、管理サーバMSVから起動許可パケットを受信した場合、処理をステップS308に移行する。BIOSは、通信インタフェース部CIFを介して、管理サーバMSVから起動許可パケットを受信していない場合、処理をステップS304に戻す。ステップS308において、BIOSは、OSを起動し、処理を終了する。
一方、ステップS310において、起動禁止パケットを受信したBIOSは、BIOSの終了処理を開始する。次に、ステップS312において、BIOSは、終了処理においてBIOSを停止してよい状態になった場合、CPUおよびメモリMEM等への電源の供給を停止させる指示をBMCに出力し、処理を終了する。
以上、図14から図16に示す実施形態においても、図1から図13に示す実施形態と同様の効果を得ることができる。例えば、起動要求パケットをブロードキャストする情報処理システムにおいて、使用しない処理サーバSVが起動されることを抑止することで、情報処理システムの消費電力を削減することができる。
さらに、図14から図16に示す実施形態では、起動確認パケットを送信する動作と、起動許可パケットおよび起動禁止パケットを受信する動作とは、通信インタフェース部CIFではなく、BIOSが実行する。このため、通信インタフェース部CIF(ハードウェア)の変更をすることなく、BIOS等のソフトウェアの変更により、図14に示す動作を実現することができる。
また、起動要求パケットを管理サーバMSVから受信したことに基づいて、CPUおよびメモリMEM等への電源の供給を開始することで、図12に示す動作に比べて、起動許可パケットを受信してからOSの起動が完了するまでの時間を短縮することができる。この結果、起動許可パケットの受信に基づいてCPUおよびメモリMEM等への電源の供給を開始する場合に比べて、情報処理システムの性能を向上することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。