(57)【特許請求の範囲】
【請求項１】
クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置が、
前記サーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、
前記入力された追加指示に基づき、前記サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うためのエンドポイントのアドレスを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記追加指示に示される台数選択し、前記選択したサーバのエンドポイント経由で、前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップと、
前記ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェア情報を参照して、前記追加指示に示される種別のソフトウェアイメージを、前記管理ネットワーク経由で、前記選択したサーバへ配信するステップと、
前記管理ネットワークを構成するノードまたは前記選択されたサーバそれぞれが互いに、前記受信したソフトウェアイメージをコピーして転送することで、前記ソフトウェアイメージを、前記選択したサーバへ配信するステップとを実行することを特徴とするソフトウェアイメージ配信方法。
【請求項２】
前記リポジトリ装置が、
前記ソフトウェアイメージを、前記選択したサーバへ配信するステップにおいて、
前記ソフトウェアイメージを、前記管理ネットワーク経由で、マルチキャストにより、前記選択したサーバへ配信することを特徴とする請求項１に記載のソフトウェアイメージ配信方法。
【請求項３】
前記リポジトリ装置が、
前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップを実行した後、
前記選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成するステップと、
前記作成した転送ＩＤ情報を、前記管理ネットワーク経由で、前記選択したサーバそれぞれへ配信するステップとをさらに実行し、
前記ソフトウェアイメージを、前記選択したサーバへ配信するステップに代えて、
前記ソフトウェアイメージを、ユニキャストにより、前記転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も先、または、最も後の転送サーバへ配信するステップを実行し、
前記選択されたサーバそれぞれが互いに、前記ソフトウェアイメージを配信するステップにおいて、
前記選択されたサーバそれぞれが、
前記リポジトリ装置から、前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから、前記ソフトウェアイメージを受信するステップと、
前記受信した転送ＩＤ情報および前記自身のサーバのＩＤに基づき、前記自身のサーバの転送ＩＤを特定し、前記特定した転送ＩＤおよび前記転送ＩＤ情報を参照して、前記自身のサーバの転送ＩＤの次の転送ＩＤのサーバがあると判断したとき、前記次の転送ＩＤのサーバへ前記受信したソフトウェアイメージをコピーして転送するソフトウェアイメージ転送ステップとを実行することを特徴とする請求項１に記載のソフトウェアイメージ配信方法。
【請求項４】
前記リポジトリ装置が、
前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップを実行した後、
前記選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成するステップと、
前記作成した転送ＩＤ情報を、前記管理ネットワーク経由で、前記選択したサーバそれぞれへ配信するステップとをさらに実行し、
前記ソフトウェアイメージを、前記選択したサーバへ配信するステップに代えて、
前記選択したサーバ群を、前記リポジトリ装置をルートとする二項木の木構造のノードとしたときの、前記リポジトリ装置の子のノードとなるサーバへ、前記ソフトウェアイメージを配信するステップを実行し、
前記選択されたサーバそれぞれが互いに、前記ソフトウェアイメージを配信するステップにおいて、
前記選択されたサーバそれぞれが、
前記リポジトリ装置から、前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから、前記ソフトウェアイメージを受信するステップと、
前記受信した転送ＩＤ情報および前記自身のサーバのＩＤに基づき、前記自身のサーバの転送ＩＤを特定し、前記特定した転送ＩＤに基づき、前記二項木における前記自身のサーバからみて子のサーバがあるか否かを判断し、前記子のサーバがあると判断したとき、前記子のサーバそれぞれへ前記受信したソフトウェアイメージをコピーして転送するソフトウェアイメージ転送ステップを実行することを特徴とする請求項１に記載のソフトウェアイメージ配信方法。
【請求項５】
前記選択されたサーバそれぞれが、
予め記憶部に転送用ＯＳ（オペレーティングシステム）および転送プログラムを記憶しており、
前記リポジトリ装置から、前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから、前記ソフトウェアイメージを受信するステップにおいて、
前記記憶部から前記転送用ＯＳおよび転送プログラムを読み込んで、起動し、前記起動した転送用ＯＳにより前記転送プログラムを実行して、前記リポジトリ装置から前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから前記ソフトウェアイメージを受信するステップと、
前記ソフトウェアイメージ転送ステップと、
前記ソフトウェアイメージを前記記憶部のソフトウェアイメージ格納部へ記憶するステップとを実行し、
さらに、
前記受信したソフトウェアイメージを前記記憶部のソフトウェアイメージ格納部へ記憶するステップが完了した後、前記サーバを再起動し、前記ソフトウェアイメージ格納部のソフトウェアイメージのＯＳを起動するステップを実行することを特徴とする請求項３または請求項４に記載のソフトウェアイメージ配信方法。
【請求項６】
前記選択されたサーバそれぞれが、
前記リポジトリ装置から、前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから、前記ソフトウェアイメージを受信するステップにおいて、
外部装置から、転送プログラムを取得して、起動するステップと、
前記転送プログラムにより、前記リポジトリ装置から前記転送ＩＤ情報を受信し、前記リポジトリ装置または他のサーバから前記ソフトウェアイメージを受信するステップと、
前記ソフトウェアイメージ転送ステップと、
前記受信したソフトウェアイメージを記憶部のソフトウェアイメージ格納部へ記憶するステップとを実行し、
さらに、
前記転送プログラムにより、前記ソフトウェアイメージ格納部のソフトウェアイメージのＯＳを起動するステップを実行することを特徴とする請求項３または請求項４に記載のソフトウェアイメージ配信方法。
【請求項７】
クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置であって、
前記サーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、
前記サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うエンドポイントのアドレスを示したサーバ情報と、前記ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェアイメージ情報とを記憶する記憶部と、
前記入力された追加指示に基づき、前記サーバ情報に示されるサーバのうち、追加可能なサーバを前記追加指示に示される台数選択し、前記選択したサーバのエンドポイント経由で、前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するサーバ起動部と、
前記追加指示に示されるソフトウェアイメージを、前記管理ネットワーク経由で、マルチキャストにより前記選択したサーバそれぞれへ配信するイメージ配信部とを備えること
を特徴とするリポジトリ装置。
【請求項８】
クラスタシステムに用いられるサーバであって、
外部装置からの指示に基づき、電源オンの処理を行う遠隔管理インタフェース部と、
自身のサーバを動作させるためのソフトウェアイメージと、前記クラスタシステムに追加するサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報とを受信し、前記転送ＩＤ情報および前記自身のサーバのＩＤに基づき、前記自身のサーバの転送ＩＤを特定し、前記特定した転送ＩＤおよび前記転送ＩＤ情報を参照して、前記自身のサーバの転送ＩＤの次の転送ＩＤのサーバがあると判断したとき、前記次の転送ＩＤのサーバへ前記受信したソフトウェアイメージをコピーして転送するイメージ転送部と、
前記受信したソフトウェアイメージを記憶する記憶部と、
前記記憶部に前記ソフトウェアイメージが記憶された後、再起動し、前記記憶部から前記ソフトウェアイメージを読み込み、前記ソフトウェアイメージのＯＳを起動するブート部とを備えることを特徴とするサーバ。
【請求項９】
クラスタシステムに用いられるサーバであって、
外部装置からの指示に基づき、電源オンの処理を行う遠隔管理インタフェース部と、
自身のサーバを動作させるためのソフトウェアイメージと、前記クラスタシステムに追加するサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報とを受信し、前記転送ＩＤ情報および前記自身のサーバのＩＤに基づき、前記自身のサーバの転送ＩＤを特定し、前記特定した転送ＩＤに基づき、前記クラスタシステムに追加するサーバとして選択されたサーバ群を、リポジトリ装置をルートとする二項木の木構造のノードとしたとき、前記木構造における前記自身のサーバからみた子のサーバがあるか否かを判断し、前記子のサーバがあると判断したとき、前記子のサーバそれぞれへ前記受信したソフトウェアイメージをコピーして転送するソフトウェアイメージ転送処理を行うイメージ転送部と、
前記受信したソフトウェアイメージを記憶する記憶部と、
前記記憶部に前記ソフトウェアイメージが記憶された後、再起動し、前記記憶部から前記ソフトウェアイメージを読み込み、前記ソフトウェアイメージのＯＳを起動するブート部とを備えることを特徴とするサーバ。
【請求項１０】
前記サーバは、予め、前記記憶部に転送用ＯＳおよび前記イメージ転送部の処理を実行するための転送プログラムを記憶しており、
前記ブート部が、前記記憶部から前記転送用ＯＳおよび前記転送プログラムを読み込んで、起動し、前記起動した転送用ＯＳにより前記転送プログラムを実行することを特徴とする請求項８または請求項９に記載のサーバ。
【請求項１１】
前記ブート部が、前記イメージ転送部の処理を実行するための転送プログラムを外部装置から受信し、前記転送プログラムを実行することを特徴とする請求項８または請求項９に記載のサーバ。
【請求項１２】
請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバを含むシステムに用いられ、前記クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置であって、
前記サーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、
前記サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うエンドポイントのアドレスを示したサーバ情報と、前記ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェアイメージ情報とを記憶する記憶部と、
前記入力された追加指示に基づき、前記サーバ情報に示されるサーバのうち、追加可能なサーバを前記追加指示に示される台数選択し、前記選択したサーバのエンドポイント経由で、前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するサーバ起動部と、
前記選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成し、前記作成した転送ＩＤ情報を、前記管理ネットワーク経由で、前記選択したサーバそれぞれへ配信し、前記追加指示に示される種別のソフトウェアイメージを、ユニキャストにより、前記転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も先、または、最も後のサーバへ配信するイメージ配信部とを備えることを特徴とするリポジトリ装置。
【請求項１３】
請求項９ないし請求項１１のいずれか１項に記載のサーバを含むシステムに用いられ、前記クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置であって、
前記サーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、
前記サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うエンドポイントのアドレスを示したサーバ情報と、前記ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェアイメージ情報とを記憶する記憶部と、
前記入力された追加指示に基づき、前記サーバ情報に示されるサーバのうち、追加可能なサーバを前記追加指示に示される台数選択し、前記選択したサーバのエンドポイント経由で、前記選択したサーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するサーバ起動部と、
前記選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成し、前記作成した転送ＩＤ情報を、前記管理ネットワーク経由で、前記選択したサーバそれぞれへ配信し、前記追加指示に示される種別のソフトウェアイメージを、ユニキャストにより、前記選択したサーバ群を、前記リポジトリ装置をルートとする二項木の木構造のノードとしたときの、前記リポジトリ装置の子のノードとなるサーバへ配信するイメージ配信部とを備えることを特徴とするリポジトリ装置。
【請求項１４】
請求項７に記載のリポジトリ装置およびサーバを備えることを特徴とするシステム。
【請求項１５】
請求項１２に記載のリポジトリ装置と、請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバとを備えることを特徴とするシステム。
【請求項１６】
請求項１３に記載のリポジトリ装置と、請求項９ないし請求項１１のいずれか１項に記載のサーバとを備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムの各サーバへのソフトウェアイメージの配信技術に関する。
【背景技術】
【０００２】
近年、Webサーバホスティング等の分野では、データセンターのようなサーバ管理事業者が一括してサーバを管理し、サービス提供事業者をホスティングするＩａａＳ（Infrastructure as a Service）等と呼ばれる形態が一般化している（非特許文献１参照）。ここで、サービスの需要増時や、そのサービスを提供しているサーバが障害によって離脱した場合に速やかに要求に対応するためには、ある程度の待機余剰資源を含めたサーバを用意しておく必要がある。また、近年では無停止でサーバ資源の動的追加および削除が可能なネットワークサーバクラスタのアーキテクチャが登場しており、通信網を構成する設備のさらなる運用柔軟化や低コスト化が期待されている（非特許文献２参照）。
【０００３】
そのような要求に対して、各ネットワークサーバクラスタの余剰資源をリソースプールとして集約しておき、需要増時や、障害や災害によって失われた資源の補充時に、リソースプールから必要なサーバを各クラスタに追加することにより、全体の設備利用効率を向上させる技術が検討されている。
【０００４】
このように余剰資源が集約された共用のリソースプールから、サーバをクラスタに追加する場合、リソースプール内に保持されているサーバが、どのようなソフトウェア構成を取るかが事前に分からない。このため、リソースプールのサーバはソフトウェアを何も有していない状態であることが一般的である。よって、資源追加時には、リポジトリから、個々のサービスに対応したソフトウェア構成が含まれたソフトウェアイメージを、追加対象のサーバに転送する。そして、このサーバに必要な設定を行った後にクラスタに組み込む必要がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Amazon Elastic Compute Cloud （Amazon EC2）、[online]、[平成22年12月3日検索]、インターネット、<URL:http://aws.amazon.com/ec2/>
【非特許文献２】Mobicents、[online]、[平成22年12月3日検索]、インターネット、<URL: http://www.mobicents.org/>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ソフトウェアイメージは、オペレーティングシステムや各種ミドルウェア、データ等をすべて含んでいるため数〜数十ＧＢに及ぶ大容量であり、転送にはある程度の時間を要する。リソースプールから多数のサーバを同時にクラスタに組み込む必要がある場合、リポジトリから大容量のイメージを同時に多数のサーバへ配信する必要があるため、イメージを管理しているリポジトリが輻輳を起こしてボトルネックとなるおそれがある。そのような場合、状況に応じて迅速に資源追加をすることができず、インフラとして公共性の高い通信サービスに求められる無停止性や即応性を満たすことができない。
【０００７】
そこで、本発明は、前記した問題を解決し、リソースプールから多数のサーバをクラスタに組み込む場合であっても、迅速に組み込める手段を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明は、クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置が以下の処理を行う方法とした。すなわち、リポジトリ装置は、サーバの追加台数およびサーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける。そして、入力された追加指示に基づき、サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うためのエンドポイントのアドレスを示したサーバ情報を読み出す。次に、読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを追加指示に示される台数選択する。そして、この選択したサーバのエンドポイント経由で、選択したサーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信する。これにより、選択したサーバは電源オンになる。その後、リポジトリ装置は、ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェア情報を参照して、追加指示に示される種別のソフトウェアイメージを、管理ネットワーク経由で、選択したサーバへ配信する。そして、管理ネットワークを構成するノードまたは選択されたサーバそれぞれは互いに、受信したソフトウェアイメージをコピーして転送することで、ソフトウェアイメージを、選択したサーバへ配信する。
【０００９】
このようにすることで、リポジトリ装置は、管理ネットワークを構成するノードまたはサーバそれぞれが互いに、ソフトウェアイメージを、宛先となるサーバそれぞれへコピーして転送するので、リポジトリ装置がサーバそれぞれへソフトウェアイメージをユニキャストで送信する必要がなくなる。これにより、ソフトウェアイメージ配信時におけるリポジトリ装置の輻輳を防止できる。
【００１０】
請求項２に記載の発明は、請求項１に記載のソフトウェアイメージ配信方法において、リポジトリ装置が、ソフトウェアイメージを、選択したサーバへ配信するとき、ソフトウェアイメージを、管理ネットワーク経由で、マルチキャストにより配信する。
【００１１】
請求項７に記載の発明は、クラスタシステムに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置が、以下の構成を有する。すなわち、リポジトリ装置は、サーバの追加台数およびサーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うエンドポイントのアドレスを示したサーバ情報と、ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェアイメージ情報とを記憶する記憶部とを有する。また、このリポジトリ装置は、入力された追加指示に基づき、サーバ情報に示されるサーバのうち、追加可能なサーバを追加指示に示される台数選択し、選択したサーバのエンドポイント経由で、選択したサーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信するサーバ起動部と、追加指示に示されるソフトウェアイメージを、管理ネットワーク経由で、マルチキャストにより選択したサーバそれぞれへ配信するイメージ配信部とを備える。
【００１２】
このようにすることで、リポジトリ装置は、マルチキャストによりクラスタシステムに追加する各サーバへソフトウェアイメージを配信するので、ソフトウェアイメージ配信時におけるリポジトリ装置の輻輳を防止できる。
【００１３】
請求項３に記載の発明は、請求項１に記載のソフトウェアイメージ配信方法において、選択したサーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信した後、以下の処理を行う。すなわち、リポジトリ装置は、選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成する。そして、この作成した転送ＩＤ情報を、管理ネットワーク経由で、選択したサーバそれぞれへ配信する。そして、リポジトリ装置は、ソフトウェアイメージを、ユニキャストにより、転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も先、または、最も後の転送サーバへ配信する。その後、選択されたサーバそれぞれが、転送ＩＤ情報と、ソフトウェアイメージとを受信する。そして、この選択されたサーバそれぞれは、転送ＩＤ情報を参照して、次のサーバへソフトウェアイメージを配信する。つまり、選択されたサーバはそれぞれ、受信した転送ＩＤ情報および自身のサーバのＩＤに基づき、自身のサーバの転送ＩＤを特定する。そして、この特定した転送ＩＤおよび転送ＩＤ情報を参照して、自身のサーバの転送ＩＤの次の転送ＩＤのサーバがあると判断したとき、この次の転送ＩＤのサーバへ、受信したソフトウェアイメージをコピーして転送する。なお、自身のサーバからみて次のサーバがないときは、サーバは、ソフトウェアイメージの転送を行わない。
【００１４】
請求項８に記載の発明は、クラスタシステムに用いられるサーバであり、このサーバは、外部装置からの指示に基づき、電源オンの処理を行う遠隔管理インタフェース部と、受信したソフトウェアイメージを記憶する記憶部と、記憶部にソフトウェアイメージが記憶された後、再起動し、記憶部からソフトウェアイメージを読み込み、ソフトウェアイメージのＯＳを起動するブート部と、イメージ転送部とを備える。イメージ転送部は、自身のサーバを動作させるためのソフトウェアイメージと、クラスタシステムに追加するサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報とを受信し、転送ＩＤ情報および自身のサーバのＩＤに基づき、自身のサーバの転送ＩＤを特定する。そして、この特定した転送ＩＤと転送ＩＤ情報とを参照して、自身のサーバの転送ＩＤの次の転送ＩＤのサーバがあるか否かを判断する。ここで自身のサーバの転送ＩＤの次の転送ＩＤのサーバがあると判断したとき、この次の転送ＩＤのサーバへ受信したソフトウェアイメージをコピーして転送する。なお、自身のサーバからみて次のサーバがないときは、サーバは、ソフトウェアイメージの転送を行わない。
【００１５】
このようにリポジトリ装置は、クラスタシステムへの追加対象のサーバのうち、二項木のルートとなるサーバへソフトウェアイメージを配信し、そのソフトウェアイメージを受信したサーバがソフトウェアイメージをコピーして他のサーバへ転送する。よって、リポジトリ装置が、ユニキャストで、追加対象のすべてのサーバへソフトウェアイメージを送信する必要がなくなり、ソフトウェアイメージ配信時におけるリポジトリ装置の輻輳を防止できる。
【００１６】
請求項４に記載の発明は、請求項１に記載のソフトウェアイメージ配信方法において、リポジトリ装置が、選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成する。そして、この作成した転送ＩＤ情報を、管理ネットワーク経由で、選択したサーバそれぞれへ配信する。また、リポジトリ装置は、選択したサーバ群を、リポジトリ装置をルートとする二項木の木構造のノードとしたときの、このリポジトリ装置の子のノードとなるサーバへ、ソフトウェアイメージを配信する。次に、選択されたサーバそれぞれが、転送ＩＤ情報とソフトウェアイメージとを受信する。そして、この選択されたサーバそれぞれは、転送ＩＤ情報を参照して、次のサーバへソフトウェアイメージを配信する。つまり、選択されたサーバはそれぞれ、転送ＩＤ情報および自身のサーバのＩＤに基づき、自身のサーバの転送ＩＤを特定する。そして、この特定した転送ＩＤと転送ＩＤ情報とを参照して、二項木における自身のサーバからみて子のサーバがあるか否かを判断する。ここで、自身のサーバからみて、子のサーバがあると判断したとき、サーバは、子のサーバそれぞれへ、受信したソフトウェアイメージをコピーして転送する。なお、自身のサーバからみて子のサーバがないときは、サーバは、ソフトウェアイメージの転送を行わない。
【００１７】
請求項９に記載の発明は、クラスタシステムに用いられるサーバであり、このサーバは、外部装置からの指示に基づき、電源オンの処理を行う遠隔管理インタフェース部と、受信したソフトウェアイメージを記憶する記憶部と、受信したソフトウェアイメージによって、自身のサーバの起動処理を行うブート部と、イメージ転送部とを備える。イメージ転送部は、自身のサーバを動作させるためのソフトウェアイメージと、クラスタシステムに追加するサーバとして選択されたサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報とを受信する。また、このイメージ転送部は、転送ＩＤ情報および自身のサーバのＩＤに基づき、自身のサーバの転送ＩＤを特定する。そして、この特定した転送ＩＤと転送ＩＤ情報とを参照して、選択されたサーバ群を、リポジトリ装置をルートとする二項木の木構造のノードとしたとき、木構造における自身のサーバからみた子のサーバがあるか否かを判断する。ここで、子のサーバがあると判断したとき、イメージ転送部は、子のサーバそれぞれへ受信したソフトウェアイメージをコピーして転送するソフトウェアイメージ転送処理を行う。なお、自身のサーバからみて子のサーバがないときは、サーバは、ソフトウェアイメージの転送を行わない。
【００１８】
請求項１３に記載の発明は、請求項９に記載のサーバを含むシステムに用いられ、クラスタシステムに新たに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置であり、このリポジトリ装置は、サーバの追加台数およびサーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、記憶部とを備える。この記憶部は、サーバそれぞれのＩＤ、当該サーバが追加可能か否かおよび当該サーバへの遠隔電源オンを行うエンドポイントのアドレスを示したサーバ情報と、ソフトウェアイメージの種別ごとに当該種別のソフトウェアイメージまたは当該種別のソフトウェアイメージの格納場所を示したソフトウェアイメージ情報とを記憶する。また、リポジトリ装置は、入力された追加指示に基づき、サーバ情報に示されるサーバのうち、追加可能なサーバを追加指示に示される台数選択し、選択したサーバのエンドポイント経由で、選択したサーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信するサーバ起動部を備える。また、このリポジトリ装置は、選択したサーバのＩＤごとにそのＩＤのサーバの転送ＩＤを示した転送ＩＤ情報を作成し、作成した転送ＩＤ情報を、管理ネットワーク経由で、選択したサーバそれぞれへ配信し、追加指示に示される種別のソフトウェアイメージを、ユニキャストにより、起動したサーバ群を、リポジトリ装置をルートとする二項木の木構造のノードとしたときの、リポジトリ装置の子のノードとなるサーバへ配信するイメージ配信部とを備える。
【００１９】
このようにリポジトリ装置は、クラスタシステムへの追加対象のサーバのうち、二項木のルートの子となるサーバへソフトウェアイメージを配信し、そのソフトウェアイメージを受信したサーバがソフトウェアイメージをコピーして他のサーバへ転送する。よって、リポジトリ装置が、ユニキャストで、追加対象のすべてのサーバへソフトウェアイメージを送信する必要がなくなり、ソフトウェアイメージ配信時におけるリポジトリ装置の輻輳を防止できる。なお、サーバはそれぞれ、リポジトリ装置から送信された転送ＩＤ情報に基づき、クラスタシステムの各サーバを二項木の木構造で考えたときの、自身のサーバの子ノードのサーバを認識し、その子ノードのサーバへソフトウェアイメージを転送する。これにより、ソフトウェアイメージを効率よく配信できる。
【００２０】
請求項５に記載の発明は、請求項３または請求項４に記載のソフトウェアイメージ配信方法において、選択されたサーバそれぞれが、予め記憶部に転送用ＯＳ（オペレーティングシステム）および転送プログラムを記憶している。そして、リポジトリ装置から、転送ＩＤ情報を受信し、リポジトリ装置または他のサーバから、ソフトウェアイメージを受信するとき、サーバは、まず、記憶部から転送用ＯＳおよび転送プログラムを読み込んで、起動する。その後、起動した転送用ＯＳにより転送プログラムを実行して、リポジトリ装置から転送ＩＤ情報を受信し、リポジトリ装置または他のサーバからソフトウェアイメージを受信する。そして、サーバは、ソフトウェアイメージ転送ステップを実行し、ソフトウェアイメージを、自身のサーバの記憶部のソフトウェアイメージ格納部へ記憶する。その後、サーバを再起動し、ソフトウェアイメージのＯＳを起動する。
【００２１】
このようにすることで、サーバは、自身の備える転送ＯＳにより、転送プログラムを実行し、ソフトウェアイメージの転送を行うことができる。
【００２２】
請求項１０に記載の発明は、請求項８または請求項９に記載のサーバが、予め、記憶部に転送用ＯＳおよびイメージ転送部の処理を実行するための転送プログラムを記憶しており、ブート部が、記憶部から転送用ＯＳおよび転送プログラムを読み込んで、起動し、起動した転送用ＯＳにより転送プログラムを実行することで実現される。
【００２３】
このように各サーバが転送用ＯＳを一時的に起動することで、転送プログラムが実行され、請求項８または請求項９に記載のサーバのイメージ転送部の機能を実現できる。
【００２４】
請求項６に記載の発明は、請求項３または請求項４に記載のソフトウェアイメージ配信方法において、選択されたサーバそれぞれが、リポジトリ装置から転送ＩＤを受信し、リポジトリ装置または他のサーバからソフトウェアイメージを受信するとき、まず、外部装置から、転送プログラムを取得して、起動する。そして、ソフトウェアイメージ転送ステップを実行し、受信したソフトウェアイメージを記憶部のソフトウェアイメージ格納部へ記憶する。その後、サーバは、転送プログラムにより、ソフトウェアイメージ格納部のソフトウェアイメージのＯＳを起動する。
【００２５】
このようにすることで、各サーバが転送プログラムを備えていない場合でも、ソフトウェアイメージ転送処理を実行でき、ソフトウェアイメージのＯＳを起動できる。
【００２６】
請求項１１に記載の発明は、請求項８または請求項９に記載のサーバにおけるブート部が、イメージ転送部の処理を実行するための転送プログラムを外部装置から受信し、転送プログラムを実行することで実現される。
【００２７】
このようにすることで、各サーバが転送プログラムを備えていない場合でも、請求項８または請求項９に記載のサーバのイメージ転送部の機能を実現できる。
【００２８】
請求項１４に記載の発明は、請求項７に記載のリポジトリ装置およびサーバを備えるシステムとした。
【００２９】
このようにすることで、請求項７のリポジトリ装置およびサーバを含むシステムを実現できる。
【００３０】
請求項１５に記載の発明は、請求項１２に記載のリポジトリ装置と、請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバとを備えるシステムとした。
【００３１】
このようにすることで、請求項１２に記載のリポジトリ装置と、請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバとを備えるシステムを実現できる。
【００３２】
請求項１６に記載の発明は、請求項１３に記載のリポジトリ装置と、請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバとを備えるシステムとした。
【００３３】
このようにすることで、請求項１３のリポジトリ装置および請求項８、請求項１０および請求項１１のいずれか１項に記載のサーバを含むシステムを実現できる。
【発明の効果】
【００３４】
本発明によれば、リポジトリ装置が、クラスタシステムに追加するサーバそれぞれへソフトウェアイメージをユニキャストで送信する必要がなくなるので、ソフトウェアイメージ配信時におけるリポジトリ装置の輻輳発生を防止できる。これにより、リソースプールから多数のサーバをクラスタに組み込む場合であっても、迅速に組み込める。
【図面の簡単な説明】
【００３５】
【図１】第１の実施の形態のシステムの概要を示した図である。
【図２】第１の実施の形態のシステムの構成例を示した図である。
【図３】図２のソフトウェアイメージＤＢ内のソフトウェアイメージ管理テーブルを例示した図である。
【図４】図２のサーバＤＢ内のサーバ情報を例示した図である。
【図５】図３のシステムの処理手順を示したフローチャートである。
【図６】第２の実施の形態のシステムの概要を示した図である。
【図７】第２の実施の形態のシステムの構成例を示した図である。
【図８】図７のリポジトリ装置が配信する転送ＩＤ情報を例示した図である。
【図９】図７のシステムにおけるソフトウェアイメージの配信を概念的に示した図である。
【図１０】図３のシステムの処理手順を示したフローチャートである。
【図１１】第２の実施の形態のシステムの構成例を示した図である。
【図１２】図７のシステムのサーバが、ソフトウェアイメージの転送先を決定するときの処理手順を示したフローチャートである。
【図１３】その他の実施の形態におけるシステムの構成例を示した図である。
【図１４】図１３のシステムの処理手順を示したフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明を実施するための形態（以下、実施の形態とする）を、第１の実施の形態および第２の実施の形態に分けて説明する。なお、以下の説明において、ソフトウェアイメージは、ＯＳ（オペレーティングシステム）やミドルウェア、サーバが各種サービスを提供するためのソフトウェア、データ等を含むファイルであるものとする。また、リポジトリ装置２１００、サーバ２３１０，２３２０，２３３０の台数は、各図に示す台数に限定されない。
【００３７】
＜第１の実施の形態＞
まず、図１を用いて第１の実施の形態の概要を説明する。図１に示すように、クラスタシステム２０００は、リポジトリ装置２１００と、リソースプール２３００のサーバ２３１０（サーバ２３１０Ａ，２３１０Ｂ，２３１０Ｃ）と、マルチキャストによる配信をサポートする（例えば、ＩＰ（Internet Protocol）網）管理ネットワーク２２００とを含んで構成される。リポジトリ装置２１００と、リソースプール２３００のサーバ２３１０とは、管理ネットワーク２２００経由で接続される。リポジトリ装置２１００は、この管理ネットワーク２２００経由で、マルチキャストによりソフトウェアイメージを配信する。これにより、ソフトウェアイメージ配信時におけるリポジトリ装置２１００の輻輳発生を防止できる。つまり、この管理ネットワーク２２００内において、管理ネットワーク２２００内のルータがデータ（ソフトウェアイメージ）を複製して配信することになるので、ソフトウェアイメージ配信時にリポジトリ装置２１００で輻輳が発生することがなくなる。よって、リポジトリ装置２１００は、各サーバ２３１０へ、迅速にソフトウェアイメージを配信できる。
【００３８】
なお、リポジトリ装置２１００は、管理ネットワーク２２００が同じセグメントのネットワークである場合、ブロードキャストアドレスへのソフトウェアイメージの配信がマルチキャストとなる。
【００３９】
＜構成＞
次に、図２を用いて、第１の実施の形態のシステムの構成例を説明する。図２に示すように、クラスタシステム２０００は、保守ネットワーク４０００（ＬＡＮ（Local Area Network）またはＩＰ網）によって保守者端末１０００と接続し、サービスネットワーク５０００によって利用者端末３０００と接続する。サービス提供者は、クラスタシステム２０００に対する保守コマンド（後記）を保守者端末１０００により入力する。ユーザは、利用者端末３０００を用い、クラスタシステム２０００上で提供されるサービスをサービスネットワーク５０００（ＬＡＮまたはＩＰ網）越しに利用する。
【００４０】
クラスタシステム２０００は、計算資源である複数のサーバ２３１０が集約されているリソースプール２３００と、リポジトリ装置２１００とを備え、両者は管理ネットワーク２２００によって接続される。
【００４１】
リポジトリ装置２１００は、保守者端末１０００から入力された保守コマンドに基づき、リソースプール２３００のサーバ２３１０を起動させ、このサーバ２３１０へソフトウェアイメージを配信する。このリポジトリ装置２１００は、管理インタフェース部２１１０と、ソフトウェアイメージＤＢ（データベース）２１２０と、サーバＤＢ２１３０と、イメージ配信部２１４０と、サーバ起動部２１５０とを備える。このリポジトリ装置２１００は、入出力インタフェース、通信インタフェース、ＣＰＵ（Central Processing Unit）、メモリ等を備えるコンピュータにより実現される。
【００４２】
管理インタフェース部２１１０は、保守者端末１０００とのインタフェースとなり、保守コマンドを受け付ける。管理インタフェース部２１１０は、例えば、クラスタシステム２０００で稼動させるサーバ２３１０に追加するための保守コマンドを受け付ける。この保守コマンドは、少なくとも、追加するサーバ台数、配信するソフトウェアイメージのイメージＩＤの２つを含む。この管理インタフェース部２１１０は、通信インタフェースや入出力インタフェース、および、ＣＰＵによるプログラム実行処理により実現される。
【００４３】
ソフトウェアイメージＤＢ２１２０は、ソフトウェアイメージ管理テーブル（ソフトウェアイメージ情報。図３参照）を備える。このソフトウェアイメージ管理テーブルは、所定のサービス実行に必要なソフトウェアイメージの種別（イメージＩＤ）ごとに、ソフトウェアイメージの格納場所を示した情報である。ソフトウェアイメージは、サービスの提供に必要なソフトウェア構成を含んだファイルであり、サーバ２３１０に配信されるファイルである。ソフトウェアイメージＤＢ２１２０は、管理インタフェース部２１１０等から主KeyであるイメージＩＤの入力を受け付けると、そのソフトウェアイメージの格納場所を示すパスを返す。パスは、リポジトリ装置２１００がアクセス可能な場所であれば、リポジトリ装置２１００のローカルディスク上でもよいし、リモートストレージ上でもよい。
【００４４】
サーバＤＢ２１３０は、サーバ情報（図４参照）を備える。このサーバ情報は、サーバＩＤごとに、そのサーバＩＤのサーバ２３１０の遠隔電源管理エンドポイントのアドレスと、サーバ２３１０の状態（追加資源として利用可能か）とを示した情報である。遠隔電源管理エンドポイントのアドレスは、サーバ２３１０の遠隔電源オンを行うサーバのインタフェースによって異なり、例えば、ＩＰＭＩ（Intelligent Platform Management Interface）であればＩＰアドレスであり、ＷｏＬ（Wake on LAN）であればＭＡＣ（Media Access Control）アドレスである。また、サーバ２３１０の状態は、そのサーバ２３１０が追加資源として利用可能か否かを判別出来ればよい。図４の例では追加資源として利用可能な状態を「待機中」とし、それ以外の利用不可能な状態を理由ごとに分けて「使用中」、「故障中」としている。例えば、イメージ配信部２１４０やサーバ起動部２１５０から、追加資源として利用可能な状態のサーバ２３１０の問い合わせを受けたとき、このサーバＤＢ２１３０は、サーバ情報において、状態が「待機中」となっているサーバ２３１０を所定台数選択し、そのサーバ２３１０のサーバＩＤと、エンドポイントとを返す。
【００４５】
なお、このサーバＤＢ２１３０およびソフトウェアイメージＤＢ２１２０は、ＣＰＵによるプログラム実行処理と、サーバ情報やソフトウェアイメージ管理テーブルを記憶する記憶手段（ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）、フラッシュメモリ等）とにより実現される。
【００４６】
２１５０は、管理インタフェース部２１１０で受け付けたサーバの追加要求に応じて、「利用可能」状態のサーバ２３１０をサーバＤＢ２１３０に問い合わせる。次に、サーバ起動部２１５０は、問い合わせの応答として得た利用可能状態のサーバ２３１０の中から追加するサーバ２３１０を選択する。そして、その選択したサーバ２３１０の遠隔電源管理エンドポイントを得て、選択したサーバ２３１０を遠隔電源オンする。
【００４７】
イメージ配信部２１４０は、管理インタフェースで受け付けられたサーバの追加要求に応じて、ソフトウェアイメージＤＢ２１２０に問い合わせを行うことにより必要なソフトウェアイメージを特定する。そして、イメージ配信部２１４０は、特定したソフトウェアイメージを追加対象の各サーバ２３１０に配信する。
【００４８】
なお、このサーバ起動部２１５０およびイメージ配信部２１４０は、ＣＰＵによるプログラム実行処理により実現される。
【００４９】
次に、サーバ２３１０を説明する。サーバ２３１０は、電源オンになった後、リポジトリ装置２１００から配信されたソフトウェアイメージを受信し、このソフトウェアイメージにより、サーバ２３１０を再起動させる。このサーバ２３１０は、ブート部２３１２と、遠隔管理インタフェース部２３１３と、ソフトウェアイメージ格納部２３１４とを備える。このサーバ２３１０も、入出力インタフェース、通信インタフェース、ＣＰＵ、記憶部等を備えるコンピュータにより実現される。
【００５０】
ブート部２３１２は、リポジトリ装置２１００から配信されたソフトウェアイメージにを受信後、サーバ２３１０を再起動させる。そして、受信したソフトウェアイメージを読み込み、このソフトウェアイメージのＯＳを起動させる。これにより、サーバ２３１０は、サービスネットワーク５０００経由でサービスを提供可能な状態になる。
【００５１】
遠隔管理インタフェース部２３１３は、リポジトリ装置２１００のサーバ起動部２１５０から遠隔電源オンを行うサーバ（図示省略）経由で、遠隔電源オンを受け付けるインタフェースである。
【００５２】
ソフトウェアイメージ格納部２３１４は、リポジトリ装置２１００から配信されたソフトウェアイメージを格納する。このソフトウェアイメージ格納部２３１４は、サーバ２３１０の記憶手段（図示省略）により実現される。
【００５３】
＜処理手順＞
次に、図５を用いて、図２のリポジトリ装置２１００およびサーバ２３１０の処理手順を説明する。
【００５４】
リポジトリ装置２１００の管理インタフェース部２１１０は、図２の保守者端末１０００から、保守ネットワーク４０００経由で、サーバ２３１０の追加要求（追加指示。イメージＩＤおよび追加するサーバ台数を含む）を受け付ける（Ｓ１）。その後、管理インタフェース部２１１０は、サーバ起動部２１５０へ、追加するサーバ台数を伝える（Ｓ２）。Ｓ２の後、サーバ起動部２１５０は、サーバＤＢ２１３０に利用可能なサーバ２３１０の問い合わせを行い、必要な台数のサーバの遠隔電源管理エンドポイントを取得する（Ｓ３）。そして、この遠隔電源管理エンドポイント経由で各サーバ２３１０の遠隔電源オンを行う（Ｓ４）。各サーバ２３１０は、遠隔電源オンが行われると、ブート部２３１２（例えば、ＧＲＵＢ（GRand Unified Bootloader）等のブートローダ）により起動する。ここで起動させるサーバ２３１０は、サーバＩＤの昇順で選ぶ方法や、最も待機時間が長いサーバを選ぶ方法等、予め定めたアルゴリズムによって選択されるものとする。
【００５５】
また、リポジトリ装置２１００の管理インタフェース部２１１０は、イメージ配信部２１４０へ、これから配信を行うソフトウェアイメージのイメージＩＤおよび追加対象のサーバ数を通知する（Ｓ５）。そして、イメージ配信部２１４０は、ソフトウェアイメージＤＢ２１２０に問い合わせを行って該当のソフトウェアイメージを取得し（Ｓ６）、配信に備える。
【００５６】
Ｓ６の後、リポジトリ装置２１００のイメージ配信部２１４０は、管理ネットワーク２２００経由で、マルチキャストにより、各サーバ２３１０へ、Ｓ６で取得したソフトウェアイメージを配信する（Ｓ１１）。そして、各サーバ２３１０は、受信したソフトウェアイメージをソフトウェアイメージ格納部２３１４に格納し（Ｓ１２）、各サーバ２３１０は再起動する（Ｓ１３）。再起動を行う際、サーバ２３１０のブート部２３１２は、ソフトウェアイメージ格納部２３１４からソフトウェアイメージをロードし（Ｓ１４）、そのソフトウェアイメージ内のＯＳを起動する（Ｓ１５）。これにより、追加要求されたサーバ２３１０の起動が完了する。
【００５７】
なお、起動したサーバ２３１０のクラスタシステム２０００への追加方法はサービスやクラスタシステム２０００ごとに異なり、そのロジックはソフトウェアイメージ内に含まれていることを想定するため、本クラスタシステム２０００ではＯＳの起動でサーバ資源の追加を完了したこととする。
【００５８】
なお、前記したＳ２において、追加するサーバ台数の決定は、サーバ２３１０のプロセッサ等の現使用率や過去のアクセス数、データ処理数等の測定データをもとにして、予め定めたアルゴリズムにより行うようにしてもよい。
【００５９】
このようにすることで、リポジトリ装置２１００は、多数のサーバ２３１０へソフトウェアイメージを配信する際でも、リポジトリ装置２１００側で輻輳が発生することがなくなる。これにより、リソースプール２３００から多数のサーバ２３１０をクラスタ（クラスタシステム２０００）に組み込む場合であっても、迅速に組み込むことができる。
【００６０】
＜第２の実施の形態＞
図６を用いて第２の実施の形態の概要を説明する。前記した実施の形態と同様の構成要素は、同じ符号を付して説明を省略する。第２の実施の形態は、全サーバが単純にリポジトリ装置２１００からソフトウェアイメージを受信するのではなく、リポジトリ装置２１００およびサーバ間で所定の配信順序を決めて転送を行うことを特徴とする。具体的には、リポジトリ装置２１００およびサーバ間で、所定の配信順序で転送するために、リポジトリ装置２１００は、各サーバの転送ＩＤを割り振り、この各サーバの転送ＩＤを示した転送ＩＤ情報を各サーバに配布する。そして、各サーバは、この転送ＩＤ情報を参照して、所定の配信順序によりソフトウェアイメージを転送していく。例えば、転送ＩＤの昇順でソフトウェアイメージを転送する場合、リポジトリ装置２１００は、まず、転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も先のサーバへ配信し、その後、各サーバは、転送ＩＤの昇順でソフトウェアイメージを転送していく。転送ＩＤの降順でソフトウェアイメージを転送する場合、リポジトリ装置２１００は、まず、転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も後のサーバへ配信し、その後、各サーバは、転送ＩＤの降順でソフトウェアイメージを転送していく。効率的な配信順序の一例として、リポジトリ装置２１００およびサーバを、リポジトリ装置２１００を根（ルート）とした二項木で構成し、その二項木のルートから子ノード、その子ノードのさらに子ノード…という順序とすることが考えられる。この場合の実施の形態を以下に説明する。
【００６１】
図６に示すように、第２の実施の形態のクラスタシステム２０００のリソースプール２３００は、サーバ２３２０（サーバ２３２０Ａ，２３２０Ｂ，２３２０Ｃ）を備える。このようなシステムにおいて、リポジトリ装置２１００は、管理ネットワーク２２００経由で、リソースプール２３００の（すべてのサーバ２３２０ではなく）所定のサーバ２３２０へソフトウェアイメージを送信する。このソフトウェアイメージを受信したサーバ２３２０は、受信したソフトウェアイメージを格納するととともに、そのソフトウェアイメージをコピーし、管理ネットワーク２２００経由で追加対象の他のサーバ２３２０へ転送する。つまり、追加対象のサーバ２３２０同士が協調してソフトウェアイメージを転送しあう。このようにすることで、管理ネットワーク２２００がマルチキャストをサポートしていない場合でも、各サーバ２３２０へ迅速にソフトウェアイメージを配信できる。
【００６２】
次に、図７を用いて、第２の実施の形態のシステムの全体構成例を説明する。第２の実施の形態のシステムのリポジトリ装置２１００は、図２のイメージ配信部２１４０に代えて、イメージ配信部２１４１を備える。また、リソースプール２３００は、サーバ２３２０を備える。サーバ２３２０は、図２のサーバ２３１０の構成に加え、イメージ転送部２３２１をさらに備える。
【００６３】
このイメージ配信部２１４１は、遠隔電源オンにより起動したサーバ２３２０（クラスタシステム２０００への追加対象のサーバ２３２０）へソフトウェアイメージを配信する。ここで、ソフトウェアイメージの配信先となるサーバ２３２０は、追加対象のサーバ２３２０群をリポジトリ装置２１００をルートとする二項木（次数０の二項木は１つのノードを持ち、次数kの二項木は１つのルートを持ち、その子ノードはそれぞれ次数ｋ−１，ｋ−２，…，２，１，０の二項木の親ノードであるという特徴を持つ木）の木構造で考えたときの、リポジトリ装置２１００の子ノードとなるサーバ２３２０とする。つまり、イメージ配信部２１４１は、追加対象のサーバ２３２０すべてへソフトウェアイメージを配信するのではなく、その一部のサーバ２３２０へ配信する。
【００６４】
また、イメージ配信部２１４１は、転送ＩＤ情報作成部２１４２を備える。この転送ＩＤ情報作成部２１４２は、遠隔電源オンにより起動したサーバ２３２０（追加対象のサーバ２３２０）から、サーバＩＤの登録を受け付けると、そのサーバＩＤごとに、そのサーバ２３２０の転送ＩＤを示した転送ＩＤ情報（図８参照）を作成する。この転送ＩＤは、追加対象のすべてのサーバ２３２０（例えば、Ｎ台のサーバ２３２０）に対して、１〜Ｎのユニークな数字を割り当てたものである。各サーバ２３２０に対して、１〜Ｎのユニークな数字が割り当てられれば、その順序は問わない。例えば、サーバＩＤの昇順に数字を割り当てると、図８に示す転送ＩＤ情報のようになる。イメージ配信部２１４１は、この転送ＩＤ情報を、追加対象のサーバ２３２０それぞれへ配信する。そして、この転送ＩＤ情報を受信したサーバ２３２０は、この転送ＩＤ情報から、自身の転送ＩＤを特定し、ソフトウェアイメージの転送先となるサーバ２３２０があるか否かを判断する。そして、ソフトウェアイメージの転送先となるサーバ２３２０があれば、そのサーバ２３２０へソフトウェアイメージを転送する。このときの転送先のサーバ２３２０の決定処理の詳細については、図１０を用いて後記する。なお、このように各サーバ２３２０において追加対象のサーバ２３２０群を二項木として把握することで、ソフトウェアイメージを転送すべき子ノードがあるか否かの判断を容易に行える。
【００６５】
サーバ２３２０のイメージ転送部２３２１は、リポジトリ装置２１００から転送ＩＤ情報を受信し、リポジトリ装置２１００または他のサーバ２３２０からソフトウェアイメージを受信すると、転送ＩＤ情報と自身のサーバ２３２０のサーバＩＤとを参照して、自身の転送ＩＤを特定する。そして、この転送ＩＤをもとに、追加対象のサーバ２３２０群を二項木の木構造（図９参照）で考えた場合の、自身のサーバ２３２０の子ノード（ソフトウェアイメージの転送先）となるサーバ２３２０があるか否かを判断する。ここで、子ノードとなるサーバ２３２０があれば、そのサーバ２３２０へ、ソフトウェアイメージをコピーして転送する。もし、子ノードとなるサーバ２３２０がなければ、ソフトウェアイメージの転送は行わず、処理を終了する。なお、このイメージ転送部２３２１は、ブート部２３１２が転送用ＯＳおよび転送プログラムを読み込んで、起動し、この起動した転送用ＯＳにより転送プログラムを実行することにより実現される。
【００６６】
ここで、図９，１０を用いて、ソフトウェアイメージの配信処理の概要を説明する。ここでは、図９に示すように、リポジトリ装置２１００が、転送ＩＤ「１〜７」のサーバ２３２０にソフトウェアイメージを配信する場合の処理を例に説明する。本アルゴリズムでは、すべてのサーバ２３２０を、リポジトリ装置２１００をルートとする二項木構造にマッピングすることによって、サーバ２３２０の台数をＮ台としたとき、ｌｏｇ２（Ｎ）回の転送ステップで配信を完了することができる。つまり、リポジトリ装置２１００がすべてのサーバ２３２０へユニキャストでソフトウェアイメージを配信するより、ソフトウェアイメージ配信処理の負荷を大幅に低減できる。図９の二項木に沿ってソフトウェアイメージの配信を行う場合の処理概要を以下に述べる。
【００６７】
まず、リポジトリ装置２１００は起動対象であるすべてのサーバ２３２０（ここでＮ台とする）に対して１からＮの数字の転送ＩＤを割り振る。各サーバ２３２０に対して異なる１からＮの数字が割り振られれば、その順序は問わない。例えばサーバＩＤの昇順に割り振った場合、図９のようになる。リポジトリ装置２１００のイメージ配信部２１４１は、図８に示す転送ＩＤ情報を、すべてのサーバ２３２０に対して送信する。この送信はサーバ台数分のユニキャストでよい。各サーバ２３２０はこの転送ＩＤ情報を受け取ると、この転送ＩＤ情報とサーバＩＤとから自身に割り振られた転送ＩＤを認識する。ここでリポジトリ装置２１００の転送ＩＤを「０」とし、このリポジトリ装置２１００が持つソフトウェアイメージを二項木に基づいて転送ＩＤ「１」から「Ｎ」までのサーバ２３２０に配信する方法について述べる。転送ＩＤが割り振られた各サーバ２３２０およびリポジトリ装置２１００は、二項木における自身の子ノードの転送ＩＤが、以下の２つの式
ｓ＝ｌｏｇ２（自身の転送ＩＤ＋１）…式（１）
ｉｄ＝自身の転送ＩＤ＋２ｓ…式（２）
で定義されるという性質を利用し、図１０のフローチャートに基づいてソフトウェアイメージの転送先のサーバ２３２０を決定する。
【００６８】
リポジトリ装置２１００および各サーバ２３２０（ここでは、以下まとめて「ノード」と呼ぶ）は、転送ＩＤ情報と、自身のサーバＩＤとを参照して、自身の転送ＩＤを特定する。そして、自身のノードがソフトウェアイメージを有していれば（Ｓ１０１のＹｅｓ）、Ｓ２へ進む。一方、まだソフトウェアイメージを受信していないサーバ２３２０は、Ｓ１０１でＮｏに進むため、先の状態へは進まない。
【００６９】
Ｓ１０２の計算式（ｓ＝ｌｏｇ２（自身の転送ＩＤ＋１））およびＳ１０３の計算式（ｉｄ＝自身の転送ＩＤ＋２ｓ）によって、各ノードは、二項木に基づいてソフトウェアイメージを送信すべきサーバの転送ＩＤ（最初は、転送ＩＤを「１」とする）の値を計算する。ここで計算された値が、転送ＩＤの最大値を超えていた場合（Ｓ１０４のＮｏ）、二項木における子のノードが存在しないということなので、そこでソフトウェアイメージの転送は完了となる（Ｓ１０７）。一方、計算された値が、転送ＩＤの最大値以下の場合は（Ｓ１０４のＹｅｓ）、計算された転送ＩＤ（ｉｄ）のノード（サーバ２３２０）へソフトウェアイメージを転送する（Ｓ１０５）。その後、二項木における別の子に対する送信処理を行うため、ノードは、ｓの値をインクリメントして（Ｓ１０６）、Ｓ１０３以降の処理を再度実行する。
【００７０】
以上のような処理を行うことで、例えば、図９のリポジトリ装置２１００（転送ＩＤ「０」）は、転送ＩＤ「１」、「２」、「４」のサーバ２３２０へソフトウェアイメージを転送する。また、転送ＩＤ「１」のサーバ装置２３２０は、転送ＩＤ「３」、「５」のサーバ２３２０へソフトウェアイメージを転送する。さらに、転送ＩＤ「３」のサーバ２３２０は、転送ＩＤ「７」のサーバ２３２０へソフトウェアイメージを転送する。
【００７１】
このようにすることで、クラスタシステム２０００内のリポジトリ装置２１００が、追加対象のサーバ２３２０それぞれへソフトウェアイメージを配信するよりも、転送処理の負荷を大幅に低減できる。
【００７２】
ここで、このような転送機能を持つサーバ２３２０の詳細を、図１１を用いて説明する。サーバ２３２０の記憶手段（図示省略）は、ソフトウェアイメージ格納部２３１４に加え、管理ＯＳ保管部２３１５を備える。これらは、物理的に異なるディスクでも、同じディスク上の異なる領域であってもよい。前記したイメージ転送部２３２１は、管理ＯＳ保管部２３１５の転送ＡＰＬ（転送アプリケーション、転送プログラム）２３２２と、この転送ＡＰＬ２３２２を動作させる転送用ＯＳ２３２３とにより実現される。
【００７３】
なお、ソフトウェアイメージの配信順序（転送順序）は、例えば、リポジトリ装置２１００→転送ＩＤ「０」のサーバ２３２０→転送ＩＤ「１」のサーバ２３２０→転送ＩＤ「２」のサーバ２３２０→…というように、サーバ２３２０を転送ＩＤ順に（昇順または降順に）論理的に一列に並べ、先頭から順にソフトウェアイメージを転送するようにしてもよい。この場合、リポジトリ装置２１００は、まず、転送ＩＤ情報に示される転送ＩＤのうち転送ＩＤの順番が最も先（または、最も後）のサーバ２３２０へソフトウェアイメージを配信する。その後、このソフトウェアイメージ受信した、サーバ２３２０は、転送ＩＤ情報と自身のサーバＩＤとを参照して、自身のサーバ２３２０の転送ＩＤを特定する。そして、転送ＩＤ情報を参照し、転送ＩＤが、昇順（または降順）で自身のサーバ２３２０の転送ＩＤの次である他のサーバ２３２０があれば、このサーバ２３２０へソフトウェアイメージを転送する。一方、転送ＩＤが、昇順（または降順）で自身のサーバ２３２０の転送ＩＤの次である他のサーバ２３２０がなければ、ソフトウェアイメージを転送せず、処理を終了する。このような方法によっても、リポジトリ装置２１００がソフトウェアイメージを配信するときの処理負荷を軽減し、輻輳を効果的に防止できる。
【００７４】
＜処理手順＞
次に、図１２を用いて、図7のリポジトリ装置２１００およびサーバ２３２０の処理手順を説明する。図１２のＳ６までは、第１の実施の形態と同様なので説明を省略し、Ｓ７から説明する。
【００７５】
各サーバ２３２０は、遠隔電源オンが行われると、ブート部２３１２により、管理ＯＳ保管部２３１５から転送用ＯＳ２３２３を読み込み（Ｓ７）、転送用ＯＳ２３２３を起動させる（Ｓ８）。転送用ＯＳ２３２３が起動すると、この転送用ＯＳ２３２３により、各サーバ２３２０は、転送ＡＰＬ２３２２を実行し（Ｓ９）、転送ＡＰＬ２３２２により、リポジトリ装置２１００のイメージ配信部２１４１に対して自身のサーバ２３２０のサーバＩＤを登録する（Ｓ１０）。つまり、自身のサーバ２３２０が起動したことを、リポジトリ装置２１００へ通知する。リポジトリ装置２１００のイメージ配信部２１４１は、登録してきたサーバＩＤを受け付け、記憶手段の所定領域に記憶しておく。その後、リポジトリ装置２１００のイメージ配信部２１４１は、起動した各サーバ２３２０（Ｓ１０で登録してきたサーバ２３２０）に対し、起動した各サーバ２３２０のサーバＩＤごとに、そのサーバ２３２０の転送ＩＤを示した転送ＩＤ情報（図８参照）を作成し、各サーバ２３２０へ配信する。また、イメージ配信部２１４１は、二項木の子ノードに当たるサーバ２３２０へソフトウェアイメージを配信する。その後、ソフトウェアイメージを受信したサーバ２３２０はそれぞれ、受信した転送ＩＤ情報から、自身の転送ＩＤを把握し、子ノードに当たるサーバ２３２０があれば、そのサーバ２３２０へソフトウェアイメージをコピーして転送する処理を繰り返すことで、各サーバ２３２０へソフトウェアイメージを配信する（Ｓ１１）。Ｓ１１の処理の詳細は、図１０で説明したとおりであるので詳細な説明を省略する。また、Ｓ１２〜Ｓ１５の処理は、第１の実施の形態と同様であるので説明を省略する。
【００７６】
このようにすることで、管理ネットワーク２２００がマルチキャストをサポートしていない場合でも、リポジトリ装置２１００は、輻輳を発生させることなく、各サーバ２３２０へ迅速にソフトウェアイメージを配信できる。
【００７７】
＜その他の実施の形態＞
なお、サーバ２３２０のイメージ転送部２３２１（図１１参照）の機能は、第２の実施の形態のように、予めサーバ２３２０自身が備えていてもよいし、図１３に示すネットワークブートサーバ２４００がネットワークブートストラッププログラム２４３０として各サーバ２３３０（２３３０Ａ，２３３０Ｂ，２３３０Ｃ）へ配布してもよい。
【００７８】
このネットワークブートサーバ２４００は、ＣＰＵ、記憶手段、管理ネットワーク２２００との通信インタフェース等を備えるコンピュータにより実現され、管理ネットワーク２２００に接続されるサーバである。ネットワークブートサーバ２４００は、アドレス配布部２４１０と、ブートストラッププログラム配信部２４２０とを備え、記憶手段の所定領域にネットワークブートストラッププログラム２４３０を記憶する。このネットワークブートストラッププログラム２４３０は、イメージ転送部２３２１の機能を実現するためのイメージ転送プログラム２３３１を含む。
【００７９】
アドレス配布部２４１０は、起動したサーバ２３３０から、ＤＨＣＰ（Dynamic Host Configuration Protocol）リクエストを受信すると、これに応じて、サーバ２３３０に割り当てるＩＰアドレスを払い出す。また、サーバ２３３０へ、ネットワークブートサーバ２４００のアドレスと、ネットワークブートストラッププログラム２４３０の格納場所を示すパスとを送信する。
【００８０】
ブートストラッププログラム配信部２４２０は、ネットワークブートストラッププログラム２４３０をサーバ２３３０へ配信する。
【００８１】
なお、以下の説明において、各サーバ２３３０は、ＰＸＥ（Preboot eXecution Environment）等のネットワークブート規格によってリモートのソフトウェアイメージを読み込んで起動するものとする。
【００８２】
次に、図１４を用いて、図１３のリポジトリ装置２１００、ネットワークブートサーバ２４００およびサーバ２３３０の処理手順を説明する。図１４のＳ６までは、第１の実施の形態および第２の実施の形態と同様なので説明を省略し、Ｓ２５から説明する。
【００８３】
サーバ２３３０は、Ｓ４において遠隔電源オンが行われると、図１３のブート部２３１２が、ＰＸＥネットブート規格に従って、ネットワークブートを開始する（Ｓ２５）。そして、ブート部２３１２は、ＤＨＣＰリクエストを管理ネットワーク２２００のブロードキャストパケットにより送信する（Ｓ２６）。このＤＨＣＰリクエストを受信したネットワークブートサーバ２４００のアドレス配布部２４１０は、ＤＨＣＰリクエストの送信元のサーバ２３３０へＩＰアドレスを払い出す。また、ネットワークブートサーバ２４００のアドレス、ネットワークブートストラッププログラム２４３０の格納場所を示すパスを通知する（Ｓ２７）。各サーバ２３２０のブート部２３１２は、ＴＦＴＰ（Trivial File Transfer Protocol）等のプロトコルによってネットワークブートサーバ２４００上のネットワークブートストラッププログラム２４３０を取得し（Ｓ２８）、このネットワークブートストラッププログラム２４３０をサーバ２３３０上で実行する（Ｓ２９）。実行されたネットワークブートストラッププログラム２４３０により、イメージ転送部２３２１（図１１参照）の機能が実現されると、図１２のＳ１０と同様に、イメージ転送部２３２１により、サーバ２３３０は、リポジトリ装置２１００のイメージ配信部２１４１へ自身を登録する（Ｓ３０）。その後、リポジトリ装置２１００は、図５のＳ１１、図１２のＳ１１と同様に、各サーバ２３３０にソフトウェアイメージを配信する。但し、本実施の形態では、サーバ２３３０は、ネットワークブートストラッププログラム２４３０に基づき、ソフトウェアイメージを一時的にＨＤＤ等の記憶領域に保管せず、直接ソフトウェアイメージ内のＯＳをメインメモリに展開して起動する（Ｓ３１）。
【００８４】
このようにすることで、サーバ２３３０が、イメージ転送部２３２１を備えていない場合でも、ブート部２３１２がネットワークブートサーバ２４００から受信した転送プログラムを実行することで、イメージ転送部２３１２の機能を実現できる。これにより、システムは、第２の実施の形態で説明したような、ソフトウェアイメージの転送処理を行うことができる。
【符号の説明】
【００８５】
１０００  保守者端末
２０００  クラスタシステム
２１００  リポジトリ装置
２１１０  管理インタフェース部
２１２０  ソフトウェアイメージＤＢ
２１３０  サーバＤＢ
２１４０，２１４１  イメージ配信部
２１４２  転送ＩＤ情報作成部
２１５０  サーバ起動部
２２００  管理ネットワーク
２３００  リソースプール
２３１０，２３２０，２３３０  サーバ
２３１２  ブート部
２３１３  遠隔管理インタフェース部
２３１４  ソフトウェアイメージ格納部
２３１５  管理ＯＳ保管部
２３２１  イメージ転送部
２３２２  転送ＡＰＬ
２３２３  転送用ＯＳ
２３３１  イメージ転送プログラム
２４００  ネットワークブートサーバ
２４１０  アドレス配布部
２４２０  ブートストラッププログラム配信部
２４３０  ネットワークブートストラッププログラム
３０００  利用者端末
４０００  保守ネットワーク
５０００  サービスネットワーク
【図１】
0005444257.tif 000002
【図２】
0005444257.tif 000003
【図３】
0005444257.tif 000004
【図４】
0005444257.tif 000005
【図５】
0005444257.tif 000006
【図６】
0005444257.tif 000007
【図７】
0005444257.tif 000008
【図８】
0005444257.tif 000009
【図９】
0005444257.tif 000010
【図１０】
0005444257.tif 000011
【図１１】
0005444257.tif 000012
【図１２】
0005444257.tif 000013
【図１３】
0005444257.tif 000014
【図１４】
0005444257.tif 000015