以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態によるサーバシステムの構成
図1において、1は全体としてデータセンタに設置された本実施の形態によるサーバシステムを示す。このサーバシステム1は、管理サーバ2が第1のネットワークスイッチ(NW−SW)3を介して1又は複数の物理サーバ4と接続されると共に、管理サーバ2及び各物理サーバ4がそれぞれ第2のネットワークスイッチ(NW−SW)5を介してストレージ装置6と接続されることにより構成されている。
管理サーバ2は、パーソナルコンピュータ又はワークステーションなどから構成され、図2に示すように、CPU(Central Processing Unit)10、メモリ11、ネットワークインタフェース12及びディスクインタフェース13を備える。
CPU10は、管理サーバ2全体の動作制御を司るプロセッサであり、メモリ11に格納された後述の制御プログラム群13及び管理テーブル群14に基づいて必要な処理を実行する。メモリ11は、後述する制御プログラム群13及び管理テーブル群14を記憶するために用いられるほか、CPU10のワークメモリとしても用いられる。
ネットワークインタフェース12は、第1のネットワークスイッチ3(図1)に対応した通信インタフェースであり、管理サーバ2が各物理サーバ4と通信する際のプロトコル制御を行う。またディスクインタフェース13は、第2のネットワークスイッチ5に対応した通信インタフェースであり、管理サーバ2がストレージ装置6と通信する際のプロトコル制御を行う。
物理サーバ4は、管理サーバ2と同様にパーソナルコンピュータ又はワークステーションなどから構成され、図3に示すように、CPU20、メモリ21、ネットワークインタフェース22及びディスクインタフェース23を備える。これらCPU20、メモリ21、ネットワークインタフェース22及びディスクインタフェース23は、それぞれ管理サーバ2のCPU10、メモリ11、ネットワークインタフェース12及びディスクインタフェース13と同様の機能を有するものであるため、その詳細については説明を省略する。
かかる物理サーバ4には物理サーバ4内のデバイス管理を行うOS(Operating System)24がインストールされており、物理サーバ4上ではこのOS24が起動された状態にある。なお、物理サーバ4のOS24が起動されていない場合は、WOL(Wake up On Lan)やBMC(Basement Management Controller)経由で電源をオンにすることで当該OS24を起動状態にすることできる。
OS24上には、管理用のプログラム25や、業務を提供するアプリケーション26などが配備され、これらプログラム25及びアプリケーション26がOS24上で動作している。プログラム25は、物理サーバ4や仮想サーバ31を管理するための専用のプログラムである。このプログラムによって、OS24や物理サーバ4に関する資産情報や性能情報、障害情報を取得することができる。また、プログラム25によって、別のプログラムを起動又は終了させたり、OS24自体に終了コマンドを投入することもできる。さらに、プログラム25にアプリケーション26の監視機能を持たせることで、アプリケーション26の動作を管理することもできる。
図4に示すように、各物理サーバ4上では、メモリ21に格納された制御プログラムの1つである仮想化機構30が動作し、この仮想化機能30が、物理サーバ4のCPU20、メモリ21、ネットワークインタフェース22及びディスクインタフェース23などのデバイスをそれぞれ仮想化した仮想CPU32、仮想メモリ33、仮想ネットワークインタフェース34及び仮想ディスクインタフェース35などから構成される仮想サーバ31を作成する。
各仮想サーバ31の仮想メモリ33にはプログラム25、アプリケーション26及びOS20がそれぞれ他の仮想サーバ31とは別個に格納されており、これらプログラム25、アプリケーション26及びOS20に基づいて個々の仮想サーバ31が物理サーバ30と同様のサービスを提供し得るようになされている。
仮想化機構30及び各仮想サーバ31もまた、仮想化機構30の仮想化機構管理用インタフェース36を介して管理サーバ2と接続されている。そして管理サーバ2は、仮想化機構管理用インタフェース36経由で、仮想化機構30や各仮想サーバ31の情報を収集及び設定することができ、また各仮想サーバ31の電源制御をすることができるようになされている。
ストレージ装置6(図1)は、例えばRAID(Redundant Array of Inexpensive Disks)方式で運用される複数のディスク装置(図示せず)を備えて構成される。図1に示すように、これら複数のディスク装置が提供する記憶領域上には複数のボリューム37が定義される。なお、これらボリューム37の属性としては、システムボリューム及びデータボリュームなどがある。システムボリュームは、OS等のシステム情報を格納するために使用され、データボリュームは、ユーザデータを格納するために使用される。
またストレージ装置6内には、管理サーバ2に接続された1又は複数のボリューム37も存在し、このボリューム37内に後述のように物理サーバ4や仮想サーバ31に配信される1種類以上のプログラム25が格納されて保持される。
(1−2)サーバシステムにおけるプログラム配布方法
(1−2−1)プログラム配布方法の概要
上述した本実施の形態によるサーバシステム1において、管理サーバ2は、物理サーバ4及び仮想サーバ31を管理することを目的として、新規導入された物理サーバ4及び仮想サーバ31に対して管理用のプログラム25を配信し、そのプログラム25を利用して、物理サーバ4及び仮想サーバ31を管理する。また管理サーバ2は、仮想化機構30については、管理用のプログラム25を用いない管理方法(例えばOS標準インタフェースや標準化されたインタフェースを用いた管理方法)により管理する。
ただし、サーバ利用者の要望や、プログラム25とサーバとの相性の問題から、かかるプログラム25を物理サーバ4や仮想サーバ31に配信できない場合もある。
そこで、本実施の形態によるサーバシステム1は、新規導入された物理サーバ4や仮想サーバ31について、そのサーバが管理用のプログラム25を配信可能なサーバであるか否かを判定し、配信可能な物理サーバ4や仮想サーバ31に対してのみ選択的にかかるプログラム25を配信する点を特徴の1つとしている。
図5は、このような本実施の形態による管理用のプログラム配信方法の概略を示している。本実施の形態によるサーバシステム1において、管理サーバ2は、定期監視又はイベントを契機として、第1のネットワークスイッチ3に接続されたノード(ここでは物理ノード4、仮想化機構30及び仮想サーバ31)を走査し(SP1)、第1のネットワークスイッチ3に接続されたノードを検索する(SP1)。
そして管理サーバ2は、かかる走査により第1のネットワークスイッチ3に新規に接続されたノード(以下、これを新規ノードと呼ぶ)を検出すると(SP2)、その新規ノードに対する情報収集を実施する(SP3)。この情報収集の方法としては、情報収集プログラムを用いた情報収集方法や、OS標準インタフェース又は標準化されたプロトコルを利用した情報収集方法などを適用することができる。
なお、データセンタの運用ポリシーに沿って情報収集を行うことで、詳細に渡って情報を集めることが可能である。データセンタの運用ポリシーの例として、物理サーバ4や、仮想化機構30及び仮想サーバ31に付与するIPアドレスの範囲を規定することが挙げられる。この運用ポリシーによれば、例えば「ping」により新規ノードを検出する際に、時間の効率が良く、また無駄なパケットによりネットワークに負荷をかけることを抑制することができる。また、情報収集を実施する際には、後述するホスト名の命名規則やユーザID及びパスワードの生成規則が役に立つ。これらの規則を用いることで、サーバに接続し情報を収集することが可能になる。接続方法を指定した運用をしている場合、それをデータセンタの運用ポリシーとして定義することで、さらに確実に効率良く情報収集を実施することが可能である。
続いて管理サーバ2は、ステップSP3において収集した情報に基づいて、各新規ノードが物理サーバ4、仮想化機構30及び仮想サーバ31のうちのいずれであるかを判定し、これら新規ノード間の親子関係(新たに検出した物理サーバ4、仮想化機構30及び仮想サーバ31のトポロジ)を明らかにする(SP4)。この親子関係を明らかにすることで、例えば仮想サーバ31が稼動する物理サーバ4や、仮想化機構30に対してはプログラム25を配信しないといった運用を行うことができる。
続いて管理サーバ2は、ステップSP2において検出した新規ノードに対するプログラム25の配信の可否を判定する(SP5)。これは、その新規ノードに対する管理方法の決定を意味する。
そして、管理サーバ2は、この判定において肯定結果を得た場合、その新規ノードにプログラム25を配信後、当該プログラム25を用いた管理を開始する(SP6)。対象は、物理サーバ4及び仮想サーバ31である。物理サーバ4については、データセンタの運用ポリシーによっては配信しないこともある。本実施の形態においては、仮想サーバ31が稼動する物理サーバ4に対してはプログラム25を配信しない。一方、プログラム25を配信するケースは、その物理サーバ4上で仮想化機構30が稼動していない場合や、仮想化機構30が一般的に利用されるホストOSを利用している場合などである。プログラム25を配信した場合、その物理サーバ4や仮想サーバ31に対する情報収集や監視、設定及び制御はその後そのプログラム25を通じて行う。
また管理サーバ2は、ステップSP5の判定において否定結果を得た場合、その新規ノードにプログラム25を配信せず、当該新規ノードに対して例えばOS標準インタフェースや標準化されたインタフェースを用いた管理を開始する(SP7)。対象は、仮想化機構30や、プログラム25が対応していない物理サーバ502などである。このようにして、仮想化機構30に対してサーバ管理用のプログラム25が配信されることを抑止することができる。
(1−2−2)各種プログラム及び各種テーブルの構成
以上のような本実施の形態によるプログラム配布方法を実現するための手段として、管理サーバ2のメモリ11には、図2に示すように、サーバ走査プログラム40、サーバ登録プログラム41、サーバ構成取得プログラム42、仮想化機構構成生成プログラム43、管理手段判別プログラム44及び配信実行プログラム45からなるプログラム群13と、サーバ管理テーブル46、サーバ論理情報管理テーブル47、サーバモデル情報管理テーブル48、仮想化機構管理テーブル49、データセンタ運用ポリシー管理テーブル50及びプログラム管理テーブル51からなる管理テーブル群14とが格納されている。
このうち、サーバ走査プログラム40は、第1のネットワークスイッチ3(図1)を介して管理サーバ2に接続されたノード(物理サーバ4、仮想化機構30及び仮想サーバ31)を走査するためのプログラムであり、サーバ登録プログラム41は、かかる走査により検出した新規ノードをサーバ管理テーブル46に登録するプログラムである。
またサーバ構成取得プログラム42は、サーバ登録プログラム41によりサーバ管理テーブル46に登録された各新規ノードの構成情報を取得するプログラムであり、仮想化機構構成生成プログラム43は、かかる新規ノード間のトポロジを検出するためのプログラムである。
さらに管理手段判定プログラム44は、サーバ管理テーブル46に登録された新規ノードに対してプログラム25を配信するか否かを判定するプログラムであり、配信実行プログラム45は、プログラム25を配信すると判定された新規ノードに対してプログラム25を配信するプログラムである。
なお、以下においては、各種処理の処理主体をサーバ走査プログラム40、サーバ登録プログラム41、サーバ構成取得プログラム42、仮想化機構構成生成プログラム43、管理手段判別プログラム44又は配信実行プログラム45として説明するが、実際は、そのプログラムに基づいて管理サーバ2のCPU10が対応する処理を実行することはいうまでもない。
一方、サーバ管理テーブル46は、管理サーバ2が当該管理サーバ2に接続されたノードを管理するためのテーブルであり、ノード識別子欄46A、CPUアーキテクチャ欄46B、UUID欄46C、I/Oデバイス欄46D、ボリューム欄46E、電源ステータス欄46F、サーバモデル欄46G、仮想レイヤ欄46H及び仮想化種別欄46Iから構成される。
そしてノード識別欄46Aには、サーバ走査プログラム40により検出された管理サーバ2に接続された各ノード(物理サーバ4、仮想化機構30及び仮想サーバ31)にそれぞれ付与された識別子(以下、これをノード識別子と呼ぶ)が格納される。またCPUアーキテクチャ欄46Bには、対応するノードに搭載されたCPUのアーキテクチャが格納される。CPUアーキテクチャは、プログラム25の種別を選択する際に必要な情報である。異なるCPUアーキテクチャ用に作成されたプログラム25では、例え動作したとしても十分に役割を果たすことができない可能性が高い。
UUID欄46Cには、対応するノードに付与されたUUID(Universal Unique Identifier)が格納される。UUIDは、本来、全宇宙規模で識別子が重複しないように形式が規定された、確実なユニーク性を保証する識別子となり得る識別子である。従って、ノード識別子欄46Aに格納されるノード識別子の候補であり、広範囲に渡ったサーバ管理には非常に有効である。ただし、ノード識別子欄46Aに格納するノード識別子としては、システム管理者が所望するノード識別子を使用しても良い。実際上、ノード識別子はノード間で重複することがなければ問題ないため、UUIDを使うことが望ましいものの、それが必須とはならない。例えば、ホスト名やIPアドレス、MAC(Media Access Control)アドレス、WWN(World Wide Name)などがノード識別子の候補として挙げることができる。
I/Oデバイス欄46Dは、デバイス欄46J、枚数欄46K、WWN欄46L及びドライバ種別欄46Mから構成される。そしてデバイス欄46Jには、対応するノードが管理サーバ2と通信を行うために利用するI/O(Input/Output)デバイスのデバイス種別が格納される。かかるデバイス種別としては、HBA(Host Bus Adaptor)やNIC(Network Interface Card)などが挙げられる。
また枚数欄46Kには、かかるI/Oデバイスの数が格納される。I/Oデバイスの数が少ない場合、プログラム25がネットワーク等にかける負担が少ないことが望まれるため、対応するノードに配布するプログラム25として負荷の軽いプログラム25を選択することが必要となる。また、対応するノードがかかるI/Oデバイスを複数有する場合には、1つ以上のI/Oデバイスを監視するケースが存在する。その場合は、対応するノードに配布する25として、管理サーバ2と、そのノードとの間で密な連携ができる25を選択する必要がある。
WWN欄46Kには、対応するデバイス欄46Jにデバイス種別が格納されたI/Oデバイスに付与されたネットワークアドレス(HBAのWWNや、NICのMACアドレスなど)が格納される。ネットワークアドレスは、SAN(Storage Area Network)環境においてノードを識別する識別子となる。そのため、SAN環境が前提のシステムにおいては、ノード識別子としての役割を担う場合もある。MACアドレスは、一般的に一意の識別子であるため、ノード識別子としての役割を担う場合もある。
またドライバ種別欄46Mには、対応するI/Oデバイスのデバイスドライバ種別が格納される。相性の良し悪しで、システムがダウンしないためにもどのようなデバイスドライバが組み込まれているかを知ることは重要である。
ボリューム欄46Eは、インタフェース欄46N、容量欄46P及び種別欄46Qから構成される。そしてインタフェース欄46Nには、対応するノードが、当該ノードと接続されたボリューム37(図1)にデータを入出力する際に用いるインタフェースの種別(IDE(Integrated Device Environment)やSCSI(Small Computer System Interface)など)が格納される。
また容量欄46Pには、かかるボリューム37の容量が格納される。かかるボリューム37の合計容量が少ないケースでは、プログラム25に関してデータベース領域を多量に消費することは許容されないため、可能な限り軽い動作が求められる。また、逆にかかるボリューム37の合計容量が大きく、かつ大量のノードを管理する場合にはデータベースを構築した方が、情報検索や情報を蓄える上で信頼性の高いシステムを組むことが可能になる。
さらに種別欄46Qには、対応するボリューム37の属性がシステムボリューム(「boot」)及びデータボリューム(「data」)のいずれであるかを表す情報が格納される。種別欄46Qについては、初期設定値を前者(「boot」)に設定し、変更しない運用も考えられるが、一般的にはシステム管理者によって設定される。また、ノード識別子欄46Aについては、本サーバ管理テーブル46の各欄のいずれか、又は複数の欄を組み合わせたものを指定することで入力を省略することができる。また、昇順などで自動的に割り振っても良い。
電源ステータス欄46Fには、そのノードの電源ステータスが格納される。電源ステータスとしては、起動状態(「オン」)及び未起動状態(「オフ」)の2つのステータスがある。例えばプログラム25を配信する際に、そのノードの電源がオフの場合、電源をオンにする必要があるため、管理サーバ2は各ノードの電源ステータスをも管理する。また、電源がオフになっている仮想サーバ31については情報を収集できないが、後述のサーバモデル情報管理テーブル48(図8参照)に値を格納する際には適切に情報を満たす必要がある。これにより、仮想化機構30や仮想サーバ31が動作したり、定義されている物理サーバ4にプログラム25を誤配信することを回避することが可能となる。
サーバモデル欄46Gには、対応するノードのサーバモデル(ベンダ名やモデル名など)が格納される。この情報は、そのノードがプログラム25を用いて管理できる対象であるか否かを判定するために用いられる。
さらに仮想レイヤ欄46Hには、対応するノードの仮想化レイヤが格納される。仮想化レイヤとしては、「物理」、「仮想化機構」及び「仮想サーバ」の3種類が存在し、それぞれ物理サーバ4、仮想化機構30又は仮想サーバ31に対応する。管理サーバ2は、この情報に基づいて、対応するノードが物理サーバ4、仮想化機構30及び仮想サーバ31のいずれであるかを判別し、ノード間のトポロジを判定する。
さらに仮想化種別欄46Iには、対応するノードの仮想化種別(仮想化製品を提供するベンダ名や製品名)が格納される。情報取得のインタフェースやプロトコル及びCIM(Common Information Model)に対応しているか否かなど、情報取得を進める上で必要な情報である。後述の仮想化機構識別子(図9参照)を格納しても同義である。
このサーバ管理テーブル46は、基本的に初期時には情報が格納されておらず、サーバ走査プログラム40(図2)により新規ノード(物理サーバ4、仮想化機構30及び又は仮想サーバ31)が検出されるごとに、その新規ノードに関する各種情報が収集されて、これらの情報のうちの必要な情報がサーバ管理テーブル46に格納される。
なお、仮想化機構30は利用者から見て、どのデバイスも使っていないように見えるため、例えば図6のノード識別子が「ノード2」や「ノード8」の行に示すように、CPUアーキテクチャ欄46B、枚数欄46K、WWN欄46L、ドライバ種別欄46M、インタフェース欄46N、容量欄46P及び種別欄46Qに対応する情報が格納されない(対応する情報が収集できない)可能性がある。
これは、サーバ仮想化製品を提供するベンダがどのように仮想化機構30を見せるかにも依存する。これらの欄に情報が格納される場合、物理デバイスと情報を共有することが考えられる。これにより、情報が一致する物理サーバ4と仮想化機構30は一組であることを推定することができる。
一方、サーバ論理情報管理テーブル47は、管理サーバ2が自己に接続された各ノード(物理サーバ4、仮想化機構30及び仮想サーバ31)の論理構成を管理するためのテーブルであり、図7に示すように、ノード識別子欄47A、業務識別子欄47B、ディスクイメージ名欄47C、OS種別欄47D、アーキテクチャ欄47E、ホスト名欄47F、ID/OSパスワード欄47G、IP情報欄47H、プログラム名欄47I、プログラム固有設定欄47J及び管理手段欄47Kから構成される。
そしてノード識別子欄47Aには、対応するノードに付与されたノード識別子が格納され、業務識別子欄47Bには、そのノードが使用される業務の識別子である業務識別子が格納されている。かかる業務識別子を記述する方法としては、業務Aの第1サーバ、第2サーバといった個々をサーバレベルまで特定する記述方法、業務Aで共通化されたソフトウェアのインストールを示し、業務レベルまでを特定する記述方法、システムで共通化されたソフトウェアのインストールを示し、共通環境レベルを特定する記述方法などが考えられる。なお、対応するノードが使用される業務は、通常はシステム管理者が記述するが、インストールされているハードウェアやプログラムなどから管理サーバ2が推定することも可能である。
また、データセンタの運用ポリシーに基づいて、実装されているプログラムが判明した段階で、業務を特定できるケースも存在する。特定した業務と連携することで、配信するプログラム25のバージョンを変えることが可能である。これにより、対応するノードに対する図11について後述する管理レベルが変わり、物理サーバ4や仮想サーバ31に負荷をかけるがOSやハードウェアと密な連携が可能なプログラム25を配信したり、逆に物理サーバ4や仮想サーバ31に負荷をかけない代わりにOSやハードウェアとの連携が疎なプログラム25を配信する、といった運用が可能になる。これは、業務やアプリケーションによって、必要とされるプログラムの機能が異なることから必要となる管理方針の使い分け(ポリシー管理)である。
また、管理サーバ2が、OS起動通知や、障害通知、ハードウェア情報通知(ブレードサーバの挿入や抜去)、プログラムのインストール及びアンインストールといったソフトウェア更新情報通知(アップデートを含む)を契機として、サーバ論理情報管理テーブル47を更新した上で、プログラム25を選択して配信することも可能である。
ディスクイメージ名欄47Cには、対応するノードが使用するボリューム37(図1)のディスクイメージ名が格納される。ディスクイメージ名は、各ディスクイメージを特定するための識別子である。これは、物理サーバ4や仮想サーバ31のディスクイメージを識別しており、業務とほぼ同義とみなすことができる。ただし、アプリケーションがインストールされていない状態のディスクイメージや、OSやアプリケーションはインストールされているが、セットアップされていないディスクイメージが存在し、それらディスクイメージを配信することで業務回復を図ったり、業務を提供する物理サーバ4や仮想サーバ31を増設することが容易になる。そういった情報と連携することで、最初は疎な連携のプログラム25を配信しておいて、業務が本格稼動する際に密な連携のプログラム25を再配信する、といった連携が可能になる。
業務が本格稼動するときに、ハードウェア特有の機能を使ってシステムの高信頼化を図ることも可能になる。また逆に、疎な連携のプログラム25を再配信することもある。これにより、システム構築のときにだけ必要な情報収集ツールとしてプログラム25を利用することが可能になる。また、全く別のプログラム25を用途に応じて再配信することで、ユーザニーズに合わせて出来るだけ常駐するプログラムを排除するといった柔軟なシステム構築ならびに運用が可能になる。再配信の方法としては、RCP(Remote Copy)やRSH(Remote Shell)を使ってプログラム25を配信しインストーラを実行する方法でも良いし、デプロイメイト用のソフトウェアを利用しても良い。配信する手順として、複数の手段を試行することで可能な方法を選択しても良い。また、用済みとなったプログラム25をノードから削除することも可能である。常駐するプログラムを可能な限り少なくすることで、計算機リソースを業務へ有効活用することが可能になる。再配信のトリガは、ユーザが与えても良いし、ノードからのアラート通知でも良い。OS起動やブレードサーバの挿入および抜去、ハードウェアおよびソフトウェアの障害通知および障害予兆通知、性能障害の通知および性能障害予兆通知などがある。障害や障害の予兆を検知した時点で、詳細な情報取得を目的に密連携のプログラム25を再配信したり、高可用性を重視するHA(High Availavilty)構成へシステム構成を組むための機能を持ったプログラム25を再配信したりすることで、障害の原因解析や対処の検討、ならびにシステムの可用性向上へ寄与することが可能になる。
OS種別欄47Dには、対応するノードが使用するOSの種別が格納される。このOS種別欄47Dに格納する情報として、サービスパックやパッチなどの情報をも含めることで、当該情報に基づいてプログラム25が対応しているか否かを判別することや、対応するプログラム25を選択することも可能になる。また、セキュリティの観点からも、対応するノードのメンテナンスが簡単になるというメリットがある。本実施の形態においては、かかるOS種別欄47Dに、対応するノードが使用するOSの種別を記載することとしているが、その他のOSについても同様に記述することも可能である。
アーキテクチャ欄47Eには、対応するノードのOSが対応可能なCPUアーキテクチャが格納される。OS種別欄47Dに格納されたOS種別と同様に、このアーキテクチャ欄47Eに格納されているCPUアーキテクチャに基づいて、個々のプログラム25がそのノードに対応しているか否かを判別することや、対応するプログラム25を選択することも可能になる。なおサーバ論理情報管理テーブル47内に記述されている特定のCPUアーキテクチャ以外についても同様に記述することが可能である。
ホスト名欄47Fには、対応するノードにアクセス可能なホスト(物理サーバ4及び仮想サーバ31)のホスト名が格納される。データセンタの運用ポリシーによって、ホスト名を限定して接続を試みることが可能である。これにより、接続できる可能性が飛躍的に向上し、情報取得の効率化及び確実化に貢献する。接続に成功した結果(ホスト名)を、ホスト名欄47Fに格納する。
ID/OSパスワード欄47Gには、対応するノードが使用するOSのパスワードが格納される。ホスト名欄47Fと同様に、情報を収集する上で必要な情報であり、データセンタの運用ポリシーから得られる情報を元にする。接続に成功した結果を、ID/OSパスワード欄47Gに格納する。
IP情報欄47Hには、対応するノードに関するIPアドレス、サブネットマスク、デフォルトゲートウェイなどのIP情報が格納される。後述のようにデータセンタの運用ポリシーに応じて、IPアドレスの範囲を指定することで、走査が可能になる。IPアドレスは、システム管理者やアプリケーションによっては、そのノードを識別する識別子となる可能性がある。
プログラム欄47Iには、対応するノードに実装された、業務を提供するために必要なミドルウェアやアプリケーションのプログラム名や、これらのバージョン情報などが格納される。このプログラム欄47Iに格納された情報と連携することで、配信するプログラム25のバージョンを変えることが可能となる。これにより、対応するノードに対する管理レベルが変わり、物理サーバ4や仮想サーバ31に負荷をかけるがOSやハードウェアと密な連携が可能なプログラム25を配信したり、逆に物理サーバ4や仮想サーバ31に負荷をかけない代わりにOSやハードウェアとの連携が疎なプログラム25を配信する、といった管理が可能になる。これは、業務やアプリケーションによって、必要とされるプログラムの機能が異なることから必要となる管理方針の使い分け(ポリシー管理)である。
プログラム固有設定欄47Jには、対応するノードの固有情報が格納される。例えば、対応するプログラムで使用するIPアドレス(論理IPアドレス)やポート番号などである。ポート番号は、重複するとソフトウェアが起動しなかったり、起動しても正常に動作できない場合がある。このため重複を避けるためにも各プログラムで使用するポート番号等の値を情報収集しておくことで、トラブルを回避することができる。プログラム25を配信しインストールする際に、使用するポートを変更することも可能になる。
本情報については、OSの標準インタフェースを使って、使用しているポートや提供しているサービスを取得することによって推定することが可能である。また、他のプログラムと共存する条件をデータセンタの運用ポリシーで決まっている場合には、プログラム25を配信して良いか否かを判定することが可能になる。例えば、JRE(Java(登録商標) Runtime Environment)といった動作環境に関する制限事項が該当する。
管理手段欄47Kには、対応するノードを管理する管理手段が格納される。例えばプログラム25を用いてそのノードを管理する場合には、そのプログラム25の識別子が格納される。また、かかるノードをOSの標準インタフェースを使用して管理する場合や、標準化されたインタフェースを利用して管理する場合には、管理モデルや通信プロトコルなどが管理手段欄47Kに格納される。管理手段欄47Kについては、情報収集の際には値が格納されない。管理手段を決定する管理手段判定プログラム44(図2)によって、その後に情報が格納される。
このサーバ論理情報管理テーブル47は、基本的に初期時には情報が格納されておらず、サーバ走査プログラム40(図2)により新規ノード(物理サーバ4、仮想化機構30及び又は仮想サーバ3)が検出されるごとに、その新規ノードに関する各種情報が収集されて、これらの情報のうちの必要な情報がサーバ論理情報管理テーブル47に格納される。
他方、サーバモデル情報管理テーブル48は、サーバ管理テーブル46(図6)に登録されたノード間の階層構造(サーバモデル)を管理するためのテーブルであり、図8に示すように、物理サーバ欄48A、仮想化機構欄48B及び仮想サーバ欄48Cから構成される。
そして物理サーバ欄48Aには、管理サーバ2が管理するノードのうちの各物理サーバ4のノード識別子がそれぞれ格納され、仮想化機構欄48Bには、その物理サーバ4に実装された仮想化機構30のノード識別子が、当該物理サーバ4のノード識別子と関連付けて格納される。なお、仮想化機構欄48Bには、図9について後述する仮想化機構識別子も格納するようにしても良い。さらに仮想サーバ欄48Cには、その仮想化機構30上に設定された仮想サーバ31のノード識別子が、当該仮想化機構30のノード識別子と関連付けて格納される。
このサーバモデル情報管理テーブル48は、基本的に初期時には情報が格納されておらず、サーバ走査プログラム40(図2)により新規ノードが検出されるごとに、その新規ノードに関する各種情報が収集されて、そのノード識別子が関連付けてサーバモデル情報管理テーブル48に格納される。
このサーバモデル情報管理テーブル48により、物理サーバ4、仮想化機構30及び仮想サーバ31のトポロジを把握することができるため、仮想サーバ31にはプログラム25を配信するが物理サーバ4や仮想化機構30にはプログラム25を配信しない、仮想サーバ31が存在しない物理サーバ4にプログラム25を配信する、といった判定が可能になる。
なお、かかる判定の際には、電源がオフになっている仮想サーバ31のノード識別子も仮想サーバ欄48Cに格納されていることが重要であり、このノード識別子が登録されていない場合、配信すべきでない物理サーバ4にプログラム25を配信してしまうミスが発生する。従って、電源がオフされた仮想サーバ31をも考慮することで、このようなミスを回避することができる。
本サーバモデル情報管理テーブル48が完成することで、夫々のノードの管理手段を判定することが可能になり、図7について上述したサーバ論理情報管理テーブル47の管理手段欄47Kに格納する値を決定することができる。
仮想化機構管理テーブル49は、仮想化機構30の種別ごとのアクセス方法やプログラムのインストールの可否を管理するために、システム管理者が作成するテーブルであり、図9に示すように、仮想化機構識別子欄49A、仮想化機構種別欄49B、識別欄49C及びプログラムインストール可否欄49Dから構成される。
そして仮想化機構識別子欄49Aには、システム管理者が各仮想化機構30に対して付与した識別子(以下、これを仮想化機構識別子と呼ぶ)が格納され、仮想化機構種別欄49Bには、対応する仮想化機構30に関する製品情報が格納される。具体的には、対応する仮想化機構30を製造販売しているベンダのベンダ名や製品名などが格納される。
また識別欄49Cは、取得先欄49E、方法欄49F及びプロトコル欄49Gから構成される。そして取得先欄49Eには、上述のサーバ管理テーブル46(図6)やサーバモデル情報管理テーブル48(図8)に格納する情報を取得する際の情報取得先(情報元)が格納される。例えば、仮想サーバ31や仮想化機構管理用インタフェース36(図4)を利用して仮想化機構30や仮想サーバ31の情報を取得したり、仮想化機構30が稼動する物理サーバ4の識別子(UUIDなど)を取得する場合には、その仮想サーバ31のノード識別子や仮想化機構管理用インタフェース36の識別子などが格納される。
また方法欄49Fには、対応する仮想化機構30やその仮想化機構30が稼動する物理サーバ4の識別方法が格納される。例えば、仮想化レイヤ及び仮想化種別(図6参照)に関する情報を取得し、当該情報に基づいてそのノードが仮想化機構30であるか否かを識別する場合には、その旨が格納される。また仮想サーバ31から、仮想サーバ31に対応する仮想化機構30の種別や仮想化機構30及び物理サーバ4の識別子(UUIDなど)を取得して仮想化機構30及び当該仮想化機構30が稼動する物理サーバ4を識別する場合には、その旨が格納される。
さらにプロトコル欄49Gには、取得先欄49Eに格納された取得先に接続するためのプロトコルや情報収集する際のデータモデルが格納される。この運用ポリシーにより、相手及び方法を特定した情報収集が可能となる。
プログラムインストール可否欄49Dは、物理サーバ欄49H、仮想化機構欄49I及び仮想サーバ欄49Jから構成される。そして物理サーバ欄49Hには、対応する仮想化機構30が稼動する物理サーバ4に対してプログラム25をインストールしても良いか否か(「可」又は「否」)を表す情報が格納され、仮想化機構欄49Iには、対応する仮想化機構30にプログラム25をインストールしても良いか否かを表す情報が格納される。さらに仮想サーバ欄49Jには、その仮想化機構30上で稼動する仮想サーバ41に対してプログラム25をインストールしても良いか否かを表す情報が格納される。
なお、かかる物理サーバ欄49H、仮想化機構欄49I及び仮想サーバ欄49Jに格納される情報には、それぞれ予めデフォルト値が用意されており、これら物理サーバ欄49H、仮想化機構欄49I及び仮想サーバ欄49Jに情報が格納されていない場合には、その物理サーバ4、仮想化機構30又は仮想サーバ31について、対応するデフォルト値が適用される。一例として、当初の目的に沿って、物理サーバ4及び仮想化機構30のデフォルト値は「否」、仮想サーバ31のデフォルトは「可」とすることが考えられる。
一方、データセンタ運用ポリシー管理テーブル50は、そのデータセンタにおける運用ポリシーに応じたルールを管理するためのテーブルであり、図10示すように、ルール識別子欄50A、ルールパラメータ欄50B、パラメータ固定値欄50C、パラメータ範囲欄50D、例外パラメータ欄50E及び走査方法欄50Fから構成される。
そしてルール識別子欄50Aには、そのデータセンタにおける運用ポリシーに応じた各ルールにそれぞれ付与された識別子(以下、これをルール識別子と呼ぶ)が格納され、ルールパラメータ欄50Bには、対応するルールの適応対象となるパラメータが格納される。このパラメータとしては、IPアドレスや、ホスト名、ID及びパスワードなどがある。
またパラメータ固有値欄50Cには、そのデータセンタにおける運用ポリシーによりそのパラメータについて規定された当該パラメータの固有値が格納され、パラメータ範囲欄50Dには、そのデータセンタにおける運用ポリシーによりそのパラメータについて規定されたかかるパラメータの範囲が格納される。
例えば図10の例では、IPアドレスについての運用ポリシーとして、IPアドレスの範囲が「192.168.0.0」〜「192.168.255.255」及び「192.168.200.10」に規定されていることが示されている。また図10では、ホスト名についての運用ポリシーとして、「hostname」という「固定値」及び「昇順の整数列」の組合せの命名規則に沿って、「hostname0001」、「hostname0002」、「hostname0003」、……、「hostname1000」といった具合にホスト名を命名すべきことが示されている。
さらに例外パラメータ欄50Eには、パラメータ範囲欄50Dにおいて規定したパラメータ範囲の例外の値が格納する。例えば図10の例では、ホスト名として、「hostname0500」〜「hostname0550」の範囲は使用(命名)しないことが示されている。
さらに走査方法欄50Fには、管理サーバ2が自己に接続されたノードからIPアドレスやホスト名などのパラメータの値を収集する際の収集方法(走査方法)が格納される。例えば図10の例では、IPアドレスについては、「ping」により各ノードからIPアドレスを収集すべきことが規定されている。
この場合において、走査方法欄50Fに複数の走査方法が登録されていても構わない。接続プロトコルが複数許可されているケースがこれに該当する。例えば図10の例では、ホスト名については、「SSH(Secure SHell)」と、運用ポリシーの「ルール3及びルール4の組合せ」たルールとにより各ノードからホスト名を収集すべきことが規定されている。
以上のことから、図10の例の場合、管理サーバ2は、自己に接続された各ノードのIPアドレスを収集する際には、「ルール1」に従って、「ping」により「192.168.0.0」〜「192.168.0.2」及び「192.168.100.1」を除く「192.168.0.0」〜「192.168.255.255」及び「192.168.200.10」の範囲を走査し、反応が返ってきたIPアドレスについて、ノードが存在すると判断してサーバ管理テーブル46(図6)に登録する処理を行うことになる。
なお図10の「ルール2」は、各ノードにそれぞれ付与する「ホスト名」に関する運用ポリシーであり、ホスト名を使ってサーバへ接続を試みる場合に活用される。また図10の「ルール3」は、各ノードにそれぞれ登録するユーザの「ID」に関する運用ポリシーであり、これらノードにログインして情報を収集する際に、後述のパスワードと組で利用される。
さらに図10の「ルール4」は、各ノードにそれぞれ設定するログイン用の「パスワード」に関する運用ポリシーであり、そのノードにログインして情報を収集する際に用いられる。SSHやtelnetを使ってノードに接続する際に用いられる。
さらに図10の「ルール5」は、「ハードベンダ」に関する運用ポリシーである。ハードベンダには、物理サーバ4や仮想サーバ31を提供するベンダやサーバ仮想化製品を提供するベンダがあるが、ベンダによって情報収集する際の接続インタフェースやプロトコルが異なる場合がある。従って、この情報は、ノードにアクセスして情報収集する際の接続インタフェースやプロトコルを認識するために活用される。
一方、図10の「ルール6」は、各ノードが利用する「OS」に関する運用ポリシーである。OSによって、標準提供されるインタフェースや情報モデルが異なる。このためこの情報は、ノードにアクセスして情報を収集する際に活用される。
また図10の「ルール7」は、各ノードにそれぞれ実装する「ミドルウェア」や「アプリケーション」に関する運用ポリシーである。OSと同様に、ミドルウェアやアプリケーションごとに情報収集の際にアクセスするポートやインタフェース、情報モデルが異なる。情報収集の際、数多存在する接続方法の中から、各ミドルウェアやアプリケーションで許可されている、又は実装されている情報取得方法を、なんの情報もない状態から見つけることは容易でない。そこで、かかる情報収集の際にこの情報が利用される。
さらに図10の「ルール8」は、各ノードに設ける「管理用インタフェース」に関する運用ポリシーである。管理インタフェースが標準化されたインタフェースの場合、異なるベンダが提供するプラットフォームを管理することが可能である。この情報は、各プラットフォームに関する情報収集だけでなく、値の設定及び各プラットフォームの制御に用いられる。
他方、図10の「ルール9」は、プログラム25の一例である「エージェントプログラム」に関する運用ポリシーである。配信が許可されるエージェントプログラムのバージョンが規定されている。
また図10の「ルール10」は、物理サーバ4に実装される「仮想化機構」に関する運用ポリシーである。OSと同様に、サーバ仮想化製品によって、提供する管理方法や管理インタフェース、プロトコルが異なる。情報収集だけでなく、値の設定や仮想化機構の制御に用いられる情報である。各仮想化機構30で許可されている、又は実装されている情報取得方法を、なんの情報もない状態から見つけることは容易でない。そこで、本情報によって、サーバ走査プログラム40によるサーバ走査処理において検出した仮想化機構30を絞り込み、情報収集することが可能になる。
さらに図10の「ルール11」は、物理サーバ4に搭載されるサービスプロセッサのIPアドレスに関する運用ポリシーである。第2の実施の形態において後述するように、物理サーバ4に搭載されたサービスプロセッサを経由して情報を収集することができるプラットフォームが存在する。この場合、管理対象サーバではないが「ping」に反応する管理インタフェースが存在する。そこで本情報は、サービスプロセッサを通して各ノードの情報を収集する際に利用される。
プログラム管理テーブル51は、ノードに配信するプログラム25を、当該プログラム25の配信元である管理サーバ2が管理するためのテーブルであり、図11に示すように、プログラム識別子欄51A、配布先サーバ種別欄51B、配布先プラットフォーム種別欄51C、ライセンス欄51D及び管理レベル欄51Eから構成される。
そしてプログラム識別子欄51Aには、1又は複数種類存在するプログラム25にそれぞれ付与された識別子(以下、これをプログラム識別子と呼ぶ)が格納され、配布先サーバ種別欄51Bには、対応するプログラム25を配信布可能なノードの種別(ベンダ名及びモデル名等)が格納される。機種によって、配信するプログラム25を変える必要がある場合、この値を参照することで対応が可能となる。
また配布先プラットフォーム種別欄51Cには、配布先のノードにおける対応可能なプラットフォームの種別が格納される。具体的には、CPUアーキテクチャやOS種別がこの配布先プラットフォーム種別欄51Cに格納されることになる。配布先サーバ種別欄51Bに格納されるサーバ種別と同様、環境に応じて配信するプログラム25を変える必要がある場合に、この値を参照することで対応が可能になる。
一方、ライセンス欄51Dは、使用数欄51F、残数欄51G及び有効期限欄51Hから構成される。そしてこれら使用数欄51F、残数欄51G及び有効期限欄51Hには、それぞれ対応するプログラム25の現在の使用数、ライセンスの残数又は有効期限が格納される。この情報により、ライセンスがオーバーしないように配布抑止をしたり、ライセンスの有効期限切れやライセンス不足などに関するアラートをシステム管理者に表示及び通知することが可能になる。管理サーバ2側に、本プログラム管理テーブル51を更新したり参照するインタフェースをもたせることで、管理の利便性の向上を図ることができる。なおプログラム25を配信成功した時点で、管理サーバ2が使用数欄51Fや残数欄51Gを更新することは可能であるが、初期設定はユーザが行う必要がある。
また管理レベル欄51Eには、対応するプログラム25と、配布先のノードのOSやハードウェアとの連携の度合いを表す管理レベルが格納される。プログラム25の中には、ノードに負荷をかけるがOSやハードウェアと密な連携が可能なプログラム、逆にノードに負荷をかけない代わりにOSやハードウェアとの連携が疎なプログラムが存在する。業務やアプリケーションによって、必要とされるプログラムの機能が異なることから必要となる管理方針の使い分け(ポリシー管理)が可能になる。
本実施の形態においては、管理レベルとして「疎」及び「密」の2段階しか記載していないが、さらに多段階することで細かな使い分けが可能になる。また、1段階しか用意しないケースも許容し、その場合においても後述する本実施の形態による効果は保たれる。
(1−2−3)本実施の形態によるプログラム配信方法に関する処理
(1−2−3−1)プログラム配信処理
次に、本実施の形態によるプログラム配信方法に関する処理の流れについて説明する。このプログラム配信処理は、図11に示す以下の手順で行なわれる。
すなわち、管理サーバ2のサーバ走査プログラム40は、所定の監視契機が到来すると、当該管理サーバ2に接続されたノードを検出するための所定のサーバ走査処理を実施する(SP10)。
ここで「監視契機」とは、定期的な監視、スケジュールに基づいた監視などである。UI(User Interface)を介して、ユーザが契機を与えても良い。プログラムのインストール若しくはアンイストール又はアップデートなどによりソフトウェアの構成が変更されたことを監視契機としても良い。また仮想サーバ31及び仮想化機構30の構成や種類又はバージョンが変更されたタイミングや、物理サーバ4のデバイス構成が変更されたタイミング、これらをユーザに通知するアラートを監視契機とすることもできる。
かかるサーバ走査処理により新たなノードが検出された場合、管理サーバ2のサーバ登録プログラム41が、そのノードをサーバ管理テーブル46(図2)及びサーバ論理情報管理テーブル47(図2)に登録する(SP11)。
続いて管理サーバ2のサーバ構成取得プログラム42が、その新規ノードの構成情報を取得し、取得した構成情報に基づいてサーバ管理テーブル46及びサーバ論理情報管理テーブル47を更新する(SP12)。
次いで、管理サーバ2の仮想化機構構成生成プログラム43が、サーバ管理テーブル46及びサーバ論理情報管理テーブル47を参照して、サーバモデル情報管理テーブル48を生成する(SP13)。このとき生成されたサーバモデル情報管理テーブル48により、新規ノード間のトポロジ(新たな物理サーバ4、仮想化機構103及び仮想サーバ104のトポロジ)が明らかになる。
この後、管理サーバ2の管理手段判定プログラム44が、ステップSP10のサーバ走査処理により検出した新規ノードごとに、プログラム25を配信するか、プログラム25を配信せずに別の管理方法で管理を行うかを判定する(SP14)。そしてこのステップSP14において、かかる新規ノードに対してプログラム25を配布しないと管理手段判定プログラム44が判定した場合には、このプログラム配信処理が終了する。
これに対してステップSP14において、かかる新規ノードに対してプログラム25を配布すると管理手段判定プログラム44が判定した場合には、管理サーバ2の配信実行プログラム45が、そのプログラム25の配布対象となる新規ノードに対して対応するプログラムを配信し(SP15)、この後、このプログラム配信処理が終了する。
(1−2−3−2)サーバ走査処理
図13は、かかるプログラム配信処理のステップSP10におけるサーバ走査プログラム40の具体的な処理内容を示している。
サーバ走査プログラム40は、管理サーバ2の起動後にこの図13に示すサーバ走査処理を開始し、この後所定の監視契機が到来するのを待ち受ける(SP20)。そしてサーバ走査プログラム40は、かかる監視契機が到来すると、データセンタ運用ポリシー管理テーブル50(図10)を参照し(SP21)、当該データセンタ運用ポリシー管理テーブル50に格納されているルールに則り、指定された走査方法で自管理サーバに接続されたノードを検索する。
具体的に、サーバ走査プログラム40は、データセンタ運用ポリシー管理テーブル50に格納されているIPアドレスの範囲内のすべてのIPアドレスについて、そのIPアドレスを宛先とするpingパケットを発信し、当該pingパケットに対するノードからの返信を待ち受ける。そしてサーバ走査プログラム40は、返信があったIPアドレスを記録し、そのIPアドレスが付与されたノードを検出したものと判定する。
また、サーバ走査プログラム40は、データセンタ運用ポリシー管理テーブル50の走査方法欄50F(図10)に格納されているプロトコル(例えば、SSH)によって、ホスト名を指定した方法による接続を試みる。ログインが成功する必要はなく、接続を受け付ける状態であればそのホスト名を有するノードが存在することになるため、ノードを検出したものと判定する。なお、かかるノードの存在を確認する方法としては、これら以外の方法を用いても良い。
そしてサーバ走査プログラム40は、この後、サーバ登録プログラム41を起動したうえでこのサーバ走査処理を終了する。
(1−2−3−3)サーバ登録処理
一方、サーバ登録プログラム41は、サーバ走査プログラム40により起動されると、図14に示すサーバ登録処理手順に従って、図12について上述したプログラム配信処理のステップSP11を処理する。
すなわちサーバ登録プログラム41は、まず、サーバ走査処理により検出された1つのノードを選択し、サーバ管理テーブル46(図6)及びサーバ論理情報管理テーブル47(図7)を参照して、そのノードがサーバ管理テーブル46及びサーバ論理情報管理テーブル47に登録されていない新規ノードであるか否かを判断する(SP30)。
例えばそのノードをpingで発見した場合には、IPアドレスが判明しているため、サーバ登録プログラム41は、サーバ論理情報管理テーブル47の各IP情報欄47H(図7)にそれぞれ格納されているIP情報を参照して、そのとき対象としているノードのIPアドレスがサーバ論理情報管理テーブル47のいずれかのIP情報欄47Hに格納されているか否かを判断する。
そしてサーバ登録プログラム41は、かかる判断において肯定結果を得たときにはステップSP32に進み、これに対して肯定結果を得たときには、図13について上述したサーバ走査処理のステップSP22において受信したそのノードからの返信に含まれる各種情報のうちの必要な情報を、サーバ管理テーブル46及びサーバ論理情報管理テーブル47に新規に登録する(SP31)。
次いでサーバ登録プログラム41は、サーバ走査処理において検出したすべてのノードについて同様の処理を終えたか否かを判断し、否定結果を得るとステップSP30に戻る。そしてサーバ登録プログラム41は、この後、ステップSP30において選択するノードを順次他のノードに切り換えながら、同様の処理を繰り返す(SP30〜SP32−SP30)。
そしてサーバ登録プログラム41は、やがてサーバ走査処理において検出したすべてのノードについて同様の処理を終えると、サーバ構成取得プログラム42を起動したうえでこのサーバ登録処理を終了する。
(1−2−3−4)サーバ構成取得処理
他方、サーバ構成取得プログラム42は、サーバ登録プログラム41により起動されると、図15に示すサーバ構成情報処理手順に従って、図12について上述したプログラム配信処理のステップSP12を処理する。
すなわちサーバ構成取得プログラム42は、まず、サーバ管理テーブル40(図6)を参照して、当該サーバ管理テーブル40上の1つの新規エントリを選択する。そしてサーバ構成取得部42は、選択した新規エントリの登録済みの情報をサーバ管理テーブル40から読み出す(SP40)。
続いてサーバ構成取得プログラム42は、サーバ論理情報管理テーブル47(図7)を参照して、ステップSP40において選択した新規エントリに対応するサーバ論理情報管理テーブル47上のエントリを検出し、そのエントリの登録済みの情報を読み出す(SP41)。
次いでサーバ構成取得プログラム42は、データセンタ運用ポリシー管理テーブル50(図10)を参照して、ステップSP40においてサーバ管理テーブル46から読み出した情報と、ステップSP41においてサーバ論理情報管理テーブル47から読み出した情報とに基づいて、新規のエントリに対応する新規ノードからその構成情報を取得するためのルールを読み出す(SP42)。
この後、サーバ構成取得プログラム42は、ステップSP42において取得したルールごとに指定された走査方法でかかる新規ノードを走査し、当該新規ノードからその構成情報を取得する(SP43)。例えば、サーバ構成取得プログラム42は、IPアドレスを用い、データセンタ運用ポリシー管理テーブル50から読み出したIDとパスワード情報を用いて、新規ノードにログインする。その後、WMI(Windows(登録商標) Management Instrumentation)を用いて、その新規ノードやOSに関する情報を取得する。
続いてサーバ構成取得プログラム42は、ステップSP43において取得した新規ノードの構成情報に基づいてサーバ管理テーブル46及びサーバ論理情報管理テーブル47をそれぞれ更新する(SP44,SP45)。この際、サーバ構成取得プログラム42は、ステップSP43において新規ノードへの接続に成功したID及びパスワードを、サーバ論理情報管理テーブル47の対応するエントリの管理手段欄47K(図7)に格納する。
さらにサーバ構成取得プログラム42は、サーバ管理テーブル40上のすべての新規エントリに対してステップSP40〜ステップSP45の処理を終えたか否かを判断し(SP46)、否定結果を得るとステップSP40に戻る。そしてサーバ構成取得プログラム42は、この後、ステップSP40において選択するサーバ管理テーブル40上の新規エントリを順次他の新規のエントリに切り換えながら、同様の処理を繰り返す(SP40〜SP46−SP40)。
そしてサーバ構成取得プログラム42は、やがてサーバ管理テーブル40上のすべての新規エントリに対する同様の処理を終えると、仮想化機構構成生成プログラム43を起動したうえでこのサーバ構成取得処理を終了する。
(1−2−3−5)仮想化機構構成生成処理
図16は、図12について上述したプログラム配信処理のステップSP13における仮想化機構構成生成プログラム43の具体的な処理内容を示す。仮想化機構構成生成プログラム43は、サーバ構成取得プログラム42により起動されると、この図16に示す仮想化機構構成生成処理手順に従って、プログラム配信処理のステップSP13を処理する。
すなわち仮想化機構構成生成プログラム43は、まず、サーバ管理テーブル46を参照して、当該サーバ管理テーブル40上の新規エントリを1つ選択する。そして仮想化機構構成生成プログラム43は、選択した新規エントリの登録済みの情報をサーバ管理テーブル46から読み出す(SP50)。
続いて仮想化機構構成生成プログラム43は、データセンタ運用ポリシー管理テーブル50を参照して、ステップSP50において選択した新規エントリに対応する仮想化機構30の種別と走査方法をデータセンタ運用ポリシー管理テーブル50から読み出す(SP51)。
次いで仮想化機構構成生成プログラム43は、仮想化機構管理テーブル49を参照して、ステップSP51において得られた仮想化機構30の種別と照らし合わせ、その仮想化機構30を識別するための識別情報の取得先、取得方法及び取得時に使用するプロトコルを仮想化機構管理テーブル49の識別欄49C(図9)からを読み出す(SP52)。なお、かかる識別情報の取得先としては、図9に示すように、仮想化機構管理インタフェース36(図4)や、いずれかの仮想サーバなどが挙げられる。また識別情報の取得先として、サービスコンソールを挙げることもできる。サービスコンソールは、仮想サーバ31のうちで管理用として特別に設けられた仮想サーバで、管理用の情報取得インタフェース及び制御インタフェースを備える。
続いて仮想化機構構成生成プログラム43は、ステップSP50において検出した新規ノードに対する接続を試行し(SP53)、この後、かかる接続が成功したか否かを判定する(SP54)。
仮想化機構構成生成プログラム43は、この判定において否定結果を得ると、この仮想化機構構成生成処理を終了し、これに対して肯定結果を得ると、接続先の新規ノードからその新規ノードの仮想化種別及び仮想レイヤに関する情報を取得する(SP55,SP56)。そして仮想化機構構成生成プログラム43は、このようにして取得したこれらの情報(仮想化種別及び仮想レイヤ)をサーバ管理テーブル46に格納する(SP57)。
続いて仮想化機構構成生成プログラム43は、かかる接続先の新規ノードから必要なノード識別子をそれぞれ取得する(SP58〜SP60)。
具体的に仮想化機構構成生成プログラム43は、かかる接続先が物理サーバ4である場合には、その物理サーバ4のノード識別子、その物理サーバ4上で稼動する仮想化機構30のノード識別子及びその仮想化機構30により提供される各仮想サーバ31のノード識別子をそれぞれその物理サーバ4から取得する。
また仮想化機構構成生成プログラム43は、かかる接続先が仮想化機構30である場合には、その仮想化機構30が稼動する物理サーバ4のノード識別子、当該仮想化機構30のノード識別子及び当該仮想化機構30が提供する各仮想サーバ31のノード識別子をそれぞれその仮想化機構30から取得する。
さらに仮想機構構成生成プログラム43は、かかる接続先が仮想サーバ31である場合には、その仮想サーバ31が作成された物理サーバ4のノード識別子、その仮想サーバ31を提供する仮想化機構30のノード識別子及び当該仮想化機構30に提供されるその仮想サーバ31を含むすべての仮想サーバ31のノード識別子をそれぞれその仮想サーバ31から取得する。
続いて仮想機構構成生成プログラム43は、サーバ管理テーブル40上のすべての新規エントリに対してステップSP50〜ステップSP60の処理を終えたか否かを判断し(SP61)、否定結果を得るとステップSP50に戻る。そして仮想機構構成生成プログラム43は、この後、ステップSP50において選択するサーバ管理テーブル40上の新規エントリを順次他の新規のエントリに切り換えながら、同様の処理を繰り返す(SP50〜SP60−SP50)。
そして仮想機構構成生成プログラム43は、やがてサーバ管理テーブル40上のすべての新規エントリに対する同様の処理を終えると、上述のようにして得られた各新規ノードのノード識別子を、新規ノード間の親子関係(新たな物理サーバ4、仮想化機構40及び仮想サーバ31のトポロジ)に応じて関連付けた状態でサーバモデル情報管理テーブル48に格納する(SP62)。
以上の処理により、サーバモデル情報管理テーブル48が完成し、物理サーバ4、仮想化機構30及び仮想サーバ31のトポロジが明らかになる。これにより、仮想サーバ31が稼動する仮想化機構30や物理サーバ4に対するプログラム25の配信を抑止することが可能になる。
そして仮想機構構成生成プログラム43は、この後、管理手段判定プログラム44を起動したうえで、この仮想化機構構成生成処理を終了する。
(1−2−3−6)管理手段判定処理
管理手段判定プログラム44は、仮想化機構構成生成プログラム43により起動されると、図17に示す管理手段判定処理手順に従って、図12について上述したプログラム配信処理のステップSP14を処理する。
すなわち管理手段判定プログラム44は、まず、サーバ管理テーブル46を参照して、当該サーバ管理テーブル46上の新規エントリを1つ選択する。そして管理手段判定プログラム44は、選択した新規エントリの登録済みの情報(ノード識別子、仮想化種別及び仮想化レイヤ)をサーバ管理テーブル46から読み出す(SP70)。
続いて管理手段判定プログラム44は、ステップSP70において検出した各新規エントリに対応する新規ノードの仮想化レイヤをサーバモデル情報管理テーブル48からそれぞれ読み出す(SP71)。
次いで管理手段判定プログラム44は、その新規ノード対するプログラム25のインストールの可否に関する情報を仮想化機構管理テーブル49の対応するプログラムインストール可否欄49Dから読み出す(SP72)。
さらに管理手段判定プログラム44は、プログラム管理テーブル51を参照して、その新規ノードのハードウェアやOS情報と合致するプログラム25が存在するか否かの判定及びそのプログラム25のライセンス情報の確認を行う(SP73)。
そして管理手段判定プログラム44は、この後、かかる新規ノードにプログラム25を配信するか否かを判定する(SP74)。具体的には、管理手段判定プログラム44は、その新規ノードのハードウェアやOS情報と合致するプログラム25が存在すると共に、そのプログラム25のライセンスが残っており、かつその新規ノードに対してプログラム25を配信可能か否かを判断することになる。そしてこれらの条件をすべて満たすときに、その新規ノードについて、このステップSP74において肯定結果が得られることになる。
そして管理手段判定プログラム44は、ステップSP74の判断において肯定結果を得るとステップSP76に進み、これに対して否定結果を得ると、その新規ノードに対する管理手段として、プログラム25を用いない他の管理手段を決定する(SP76)。例えば、図15について上述したサーバ構成取得処理のステップSP43においてサーバ構成取得プログラム42が構成情報を収集したときに成功した接続方法がサーバ論理情報管理テーブル47の管理手段欄47K(図7)に格納されているため、管理手段判定プログラム44は、その接続方法を「他の管理手段」として決定する。
続いて管理手段判定プログラム44は、プログラム25を配信する場合はその旨、配信しない場合はステップSP75において決定した管理手段をサーバ論理情報管理テーブル47の対応する管理手段欄47Kに格納する(SP76)。
さらに管理手段判定プログラム44は、サーバ管理テーブル40上のすべての新規エントリに対してステップSP70〜ステップSP76の処理を終えたか否かを判断し(SP77)、否定結果を得るとステップSP70に戻る。そして管理手段判定プログラム44は、この後、ステップSP70において選択するサーバ管理テーブル40上の新規エントリを順次他の新規のエントリに切り換えながら、同様の処理を繰り返す(SP70〜SP77−SP70)。
そして管理手段判定プログラム44は、やがてサーバ管理テーブル40上のすべての新規エントリに対する同様の処理を終えると、配信実行プログラム45を起動したうえでこの管理手段判定処理を終了する。
(1−2−3−7)配信実行処理
配信実行プログラム45は、管理手段判定プログラム44により起動されると、図18に示す配信実行処理手順に従って、図12について上述したプログラム配信処理のステップSP15を処理する。
すなわち配信実行プログラム45は、管理手段判定プログラム44により起動されると、まず、図17について上述した管理手段判定処理のステップSP74においてプログラム25の配信対象として決定したノードを1つ選択し、そのノードに対して当該ノードに応じたプログラム25を配信する(SP80)。
このときの配信方法としては、RCP(Remote Copy)やRSH(Remote Shell)を使ってプログラム25を配信しインストーラを実行する方法でも良いし、デプロイメイト用のソフトウェアを利用しても良い。配信する手順として、複数の手段を試行することで可能な方法を選択しても良い。
続いて配信実行プログラム45は、ステップSP80における配信プログラムの配信結果に応じてプログラム管理テーブル51のライセンス欄51D(図11)を更新する(SP81)。
さらに配信実行プログラム45は、管理手段判定処理(図17)プログラム25の配信対象として決定したすべてのノードに対してプログラム25を配信し終えたか否かを判断し(SP82)、否定結果を得るとステップSP80に戻る。そして配信実行プログラム45は、この後ステップSP80において選択するノードを順次他のノードに切り換えながら、同様の処理を繰り返す(SP80〜SP82−SP80)。
そして配信実行プログラム45は、やがて対象となるすべてのノードに対する同様の処理を終えると、この配信実行処理を終了する。
(1−4)本実施の形態の効果
以上のように本実施の形態によるサーバシステム1では、管理サーバ2が、第1のネットワークスイッチ3を介して接続された各ノードの構成情報を収集し、この構成情報に基づいてプログラム25を選択的に配信可能なノードに配信するため、仮想サーバ31や、仮想化機構30が稼動していない物理サーバ4に対してはプログラム25を配信するが、プログラム25が対応していない物理サーバ4及び仮想サーバ31や、仮想化機構が稼動している物理サーバ4に対してはプログラム25を配信しない、といった運用が可能となる。これによりシステム管理者の負担を軽減しながら利便性を向上させ得るサーバシステムを構築することができる。
(2)第2の実施の形態
図1との対応部分に同一符号を付した図19は、第2の実施の形態によるサーバシステム60を示す。このサーバシステム60は、プログラム25の配信対象がブレードサーバ61である点が第1の実施の形態によるサーバシステム1(図1)と異なる。
ブレードサーバ61には複数のシャーシ62が設けられており、これらシャーシ62に1又は複数の物理サーバ4が内包(挿入)されている。各シャーシ62には、それぞれサービスプロセッサ63が設置されており、このサービスプロセッサ63によって同じシャーシ62内の物理サーバ4を管理(情報取得、電源制御など)することができる。
管理サーバ64は、サービスプロセッサ63から同じシャーシ61内の物理サーバ4の情報を取得することができる。また、管理サーバ64は、かかる物理サーバ4上で稼動する仮想化機構30や、当該仮想化機構30により提供される仮想サーバ31の情報を、同じシャーシ62内のサービスプロセッサ63と、仮想化機構30の仮想化機構管理用インタフェース36(図4)とを順次介して取得することができる。
図23は、図6、図7、図9〜図11について上述したサーバ管理テーブル46、サーバ論理情報管理テーブル47、仮想化機構管理テーブル49、データセンタ運用ポリシー管理テーブル50及びプログラム管理テーブル51と共に管理サーバ60の管理テーブル群66(図19)を構成する第2の実施の形態によるサーバモデル情報管理テーブル67を示す。
本実施の形態においては、シャーシ62(サービスプロセッサ63)、物理サーバ4、仮想化機構30及び仮想サーバ31のトポロジが図21のような階層構造を有するため、本実施の形態によるサーバモデル情報管理テーブル67は、図8について上述した第1の実施の形態によるサーバモデル情報管理テーブル48に対してサービスプロセッサ欄67Aを追加した構成となっている。
サービスプロセッサ63から、物理サーバ4や仮想化機構30の情報を取得し、サービスプロセッサ63が仮想化機構管理用インタフェース36(図4)から仮想サーバ31の情報を取得することにより、このサーバモデル情報管理テーブル67を作成することが可能である。
図22は、図12について上述したプログラム配信処理のステップSP12において行なわれる第2の実施の形態によるサーバ構成取得処理の流れを示している。このサーバ構成取得処理は、図2について上述したサーバ走査プログラム40、サーバ登録プログラム41、仮想化機構構成生成プログラム43、管理手段判定プログラム44及び配信実行プログラム45と共に管理サーバ64の制御プログラム群65を構成する第2の実施の形態によるサーバ構成取得プログラム68(図2)によって実行される。
すなわちサーバ構成取得プログラム68は、サーバ登録プログラム41により起動されると、このサーバ構成取得処理を開始し、ステップSP90〜ステップSP92を図15について上述した第1の実施の形態によるサーバ構成取得処理のステップSP40〜ステップSP42と同様に処理する。
続いてサーバ構成取得プログラム68は、ステップSP92において取得したルールごとに指定された走査方法でかかる新規ノードを走査し、当該新規ノードからその構成情報を取得する(SP93)。本実施の形態においては、この際、サーバ構成取得プログラム68が各新規ノードではなく、対応するシャーシ62のサービスプロセッサ63に接続することを特徴とする。
すなわちサーバ構成取得プログラム68は、ステップSP92において取得したルールに基づき得られたサービスプロセッサ63のIPアドレスとIDとパスワード情報を使って、サービスプロセッサ63に接続し、実装されたUIを通じて情報を取得すると共に、物理サーバ4や仮想化機構30の情報を取得する。また、サーバ構成取得プログラム68は、サービスプロセッサ63を介して仮想化機構管理用インタフェース36(図4)を通じて仮想サーバ104の情報を取得する。OS情報は、第1の実施の形態で説明した方法により取得する。
このようにサービスプロセッサ63を経由することで、すべてのノードへ接続を試行しなくても、同一シャーシ62内に挿入された物理サーバ4(ブレード)の情報を確実に、かつ迅速に収集することが可能である。
そしてサーバ構成取得プログラム68は、この後、ステップSP94〜ステップSP96を図15について上述した第1の実施の形態によるサーバ構成取得処理のステップSP44〜ステップSP46と同様に処理し、この後このサーバ構成取得処理を終了する。
以上のように本実施の形態によるサーバシステム60によれば、ブレードサーバ61に対してもプログラム25を選択的に配信することができる。
(3)他の実施の形態
なお上述の実施の形態においては、本発明を適用した管理サーバ2,64を図1又は図19のように構成するようにした場合について述べたが、本発明はこれに限らず、かかる管理サーバ2,64の構成としては、この他種々の構成を広く適用することができる。
また上述の実施の形態においては、第1のネットワークスイッチ3を介して接続された、それぞれ物理サーバ4、仮想化機構30及び仮想サーバ31のいずれかからなる1又は複数のノードを検出する検出部を、管理サーバ2,64のCPU10及びサーバ走査プログラム40により構成し、検出したノードごとに、当該ノードの仮想レイヤに関する第1の構成情報を取得する取得部を、管理サーバ2,64のCPU10及びサーバ構成取得プログラム42により構成し、取得したノードごとの第1の構成情報に基づいて、プログラムを選択的に対応するノードに配信する配信部を管理サーバ2,64のCPU10と、仮想化機構構成生成プログラム43、管理手段判定プログラム44及び配信実行プログラム45とで構成するようにした場合について述べたが、本発明はこれに限らず、これら検出部、取得部及び配信部の構成としては、この他種々の構成を広く適用することができる。
さらに上述の実施の形態においては、配信対象のプログラムが管理用のプログラム25である場合について述べたが、本発明はこれに限らず、かかるプログラム25以外のプログラムを配信する際にも本発明を適用することができる。