"サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、前記サーバを動作させるためのソフトウェアイメージを、イメージリポジトリ装置に配信させるリモートブート装置が、前記クラスタへの追加対象サーバの追加台数および前記追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するステップと、前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップと、前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を含む転送指示情報を生成するステップと、前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するステップとを実行し、前記イメージリポジトリ装置が、前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信するステップを実行し、前記転送指示情報および前記ソフトウェアイメージの断片を受信した追加対象サーバそれぞれが、前記受信したソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送し、前記自身のサーバのイメージ保存部に保存する処理を、前記ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返すステップと、前記イメージ保存部に保存されたソフトウェアイメージから前記自身のサーバを起動させるステップとを実行し、前記リモートブート装置が前記転送指示情報を生成するとき、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序は、前記トポロジ情報を参照して、前記追加対象サーバ間で経由する前記スイッチの数が最小となるような順序とすることを特徴とするソフトウェアイメージ配信方法。前記サーバそれぞれは、前記受信したソフトウェアイメージの断片と、前記断片ごとに、当該断片の受信、送信および前記イメージ保存部への保存それぞれについて実行済みか否かを示すチャンクテーブルとを記憶するメインメモリを備えており、前記チャンクテーブルを参照して、受信済みとなっている前記断片について、当該断片の送信または前記イメージ保存部への保存を行うステップと、前記断片の送信または前記イメージ保存部への保存を行ったとき、前記チャンクテーブルにおける当該断片について送信または前記イメージ保存部への保存を実行済みに書き換えるステップと、前記チャンクテーブルを参照して、前記受信、送信およびイメージ保存部への保存が実行済みである断片を、前記メインメモリ上から削除するステップとを実行することを特徴とする請求項1に記載のソフトウェアイメージ配信方法。前記サーバそれぞれは、前記転送指示情報において、自身のサーバが、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序が最後になっていると判断したとき、前記自身のサーバが受信した前記断片を前記イメージリポジトリ装置へ通知することを特徴とする請求項1または請求項2に記載のソフトウェアイメージ配信方法。サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、前記サーバを動作させるためのソフトウェアイメージを配信するイメージリポジトリ装置と、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、前記イメージリポジトリ装置に、前記ソフトウェアイメージの配信を指示するリモートブート装置とを備えるソフトウェアイメージ配信システムであって、前記リモートブート装置は、前記クラスタへの追加対象サーバの追加台数および前記追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付け、前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するブート要求受付部と、前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信する遠隔電源管理部と、前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を、前記追加対象サーバ間で経由する前記スイッチの数を最小にするような順序とした転送指示情報を生成するチェイン生成部と、前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するチェイン送信部とを備え、前記イメージリポジトリ装置は、前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信するイメージ配信部を備え、前記サーバは、前記ソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送し、前記自身のサーバのイメージ保存部に保存する処理を、前記ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返すイメージ転送部と、前記イメージ保存部と、前記イメージ保存部に保存されたソフトウェアイメージから前記自身のサーバを起動させるブート部とを備えることを特徴とするソフトウェアイメージ配信システム。サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、イメージリポジトリ装置に、前記サーバを動作させるためのソフトウェアイメージの配信を指示するためのソフトウェアイメージ配信プログラムであって、コンピュータに、前記クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するステップと、前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップと、前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を含む転送指示情報を生成するステップと、前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するステップとを実行させ、前記生成する転送指示情報は、前記イメージリポジトリ装置に対し、前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信し、前記転送指示情報および前記ソフトウェアイメージの断片を受信した追加対象サーバそれぞれに対し、前記受信したソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送するよう指示する情報であり、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序は、前記トポロジ情報を参照して、前記追加対象サーバ間で経由する前記スイッチの数が最小となるような順序であることを特徴とするソフトウェアイメージ配信プログラム。ソフトウェアイメージは、オペレーティングシステムや各種ミドルウェア、データ等をすべて含んでいるため数~数十GBに及ぶ大容量であり、転送にはある程度の時間を要する。ここで、クラスタへの急な需要増やサーバの障害復旧時にもサービスの可用性低下を防ぐためには、複数のサーバが同時に要求されたとしても、高速にソフトウェアを配信して起動する必要がある。非特許文献3に記載の技術は、サーバを木構造にマッピングして配信を行う通信ライブラリによってソフトウェアイメージの配信を行っている。しかし、この方法ではクラスタへの追加対象サーバが増加すると、それに応じてソフトウェアイメージの配信時間が増加してしまうという問題がある。また、一般的な通信ライブラリはすべてのサーバを互いに通信可能な論理的なノードとして抽象化しており、実際のネットワークトポロジを考慮して最適な通信を行っているとは限らない。このため、ソフトウェアイメージの配信時にネットワークの帯域を効率よく利用できず、ソフトウェアイメージの転送に必要以上の時間がかかってしまうことがある。そこで、本発明は、前記した問題を解決し、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込める手段を提供することを目的とする。前記した課題を解決するため、本発明は、サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加するサーバの遠隔電源オンの指示を行い、サーバを動作させるためのソフトウェアイメージを、イメージリポジトリ装置に配信させるリモートブート装置が以下の処理を行う。すなわち、リモートブート装置が、クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける。そして、リモートブート装置は、この入力されたソフトウェアイメージの種別を、イメージリポジトリ装置へ送信する。次に、リモートブート装置は、入力された追加指示に基づき、サーバそれぞれのIDおよび当該サーバがクラスタに追加可能か否かを示したサーバ情報を読み出し、読み出したサーバ情報に示されるサーバのうち、追加可能なサーバをクラスタへの追加対象サーバとして追加指示に示される台数選択する。そして、その選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信する。その後、リモートブート装置は、イメージリポジトリ装置、サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、ソフトウェアイメージを分割した断片を、追加対象サーバ間で転送するときの追加対象サーバの順序を含む転送指示情報を生成する。そして、この生成した転送指示情報をイメージリポジトリ装置へ送信する。この転送指示情報を受信したイメージリポジトリ装置は、送信された種別のソフトウェアイメージを分割し、分割したソフトウェアイメージの断片と、転送指示情報とを、転送指示情報に含まれる転送順序の最初の起動対象サーバへ送信する。その後、転送指示情報およびソフトウェアイメージの断片を受信した追加対象サーバそれぞれは、受信したソフトウェアイメージの断片を、転送指示情報において自身のサーバの次に断片を転送すべき追加対象サーバへ転送し、自身のサーバのイメージ保存部に保存する処理を、ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返す。その後、起動対象サーバは、イメージ保存部に保存されたソフトウェアイメージから自身のサーバを起動させる。ここで、リモートブート装置が転送指示情報を生成するとき、追加対象サーバ間で転送するときの追加対象サーバの順序は、トポロジ情報を参照して、追加対象サーバ間で経由するスイッチの数が最小となるような順序とする。このように、リモートブート装置は、ソフトウェアイメージを断片に分割し、追加対象サーバに、この断片それぞれを、所定の転送順序でバケツリレーのように順次断片を転送させることができる。これにより、イメージリポジトリ装置は、クラスタへの追加対象サーバそれぞれへソフトウェアイメージ全体を送る必要がなくなる。よって、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込むことができる。また、転送指示情報に設定する追加対象サーバ間でのソフトウェアイメージの断片の転送順序は、追加対象サーバ間で経由するスイッチ数ができるだけ少なくなるようにする。これにより、各断片の転送時に経由するリンクの数をできるだけ低減できるので、各断片を順次追加対象サーバ間で転送するとき、ネットワークの帯域の利用効率を向上させることができる。また、本発明は、サーバそれぞれが、受信したソフトウェアイメージの断片と、断片ごとに、当該断片の受信、送信およびイメージ保存部への保存それぞれについて実行済みか否かを示すチャンクテーブルとを記憶するメインメモリを備えている。そして、サーバそれぞれは、チャンクテーブルを参照して、受信済みとなっている断片について、当該断片の送信またはイメージ保存部への保存を行う。その後、断片の送信またはイメージ保存部への保存を行ったとき、チャンクテーブルにおける当該断片について送信またはイメージ保存部への保存を実行済みに書き換える。そして、サーバそれぞれは、チャンクテーブルを参照して、受信、送信およびイメージ保存部への保存が実行済みである断片を、メインメモリ上から削除する。このように、追加対象サーバは、順次、受信したソフトウェアイメージの断片の送信、保存を繰り返すが、ソフトウェアイメージの断片の送信およびイメージ保存部への保存が完了すると、この断片をメインメモリ上から削除するので、メインメモリの限られた記憶容量を有効活用できる。また、本発明は、サーバそれぞれが、転送指示情報において、自身のサーバが、追加対象サーバ間で転送するときの追加対象サーバの順序が最後になっていると判断したとき、自身のサーバが受信した断片をイメージリポジトリ装置へ通知する。このようにすることで、イメージリポジトリ装置は、追加対象サーバのうち転送順序が最後になっている追加対象サーバが、ソフトウェアイメージのどの断片まで受信したか配信状況を確認することができる。また、本発明は、サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加するサーバの遠隔電源オンの指示を行い、イメージリポジトリ装置に、サーバを動作させるためのソフトウェアイメージの配信を指示するためのソフトウェアイメージ配信プログラムについて、各ステップを実行させるプログラムとした。すなわち、コンピュータに、クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、入力されたソフトウェアイメージの種別を、イメージリポジトリ装置へ送信するステップと、入力された追加指示に基づき、サーバそれぞれのIDおよび当該サーバがクラスタに追加可能か否かを示したサーバ情報を読み出し、読み出したサーバ情報に示されるサーバのうち、追加可能なサーバをクラスタへの追加対象サーバとして追加指示に示される台数選択し、選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信するステップと、イメージリポジトリ装置、サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、ソフトウェアイメージを分割した断片を、追加対象サーバ間で転送するときの追加対象サーバの順序を含む転送指示情報を生成するステップと、生成した転送指示情報をイメージリポジトリ装置へ送信するステップとを実行させるプログラムとした。ここで、転送指示情報は、イメージリポジトリ装置に対し、送信された種別のソフトウェアイメージを分割し、分割したソフトウェアイメージの断片と、転送指示情報とを、転送指示情報に含まれる転送順序の最初の起動対象サーバへ送信し、転送指示情報およびソフトウェアイメージの断片を受信した追加対象サーバそれぞれに対し、受信したソフトウェアイメージの断片を、転送指示情報において自身のサーバの次に断片を転送すべき追加対象サーバへ転送するよう指示する情報であり、追加対象サーバ間で転送するときの追加対象サーバの順序は、トポロジ情報を参照して、追加対象サーバ間で経由するスイッチの数が最小となるような順序としている。このようなプログラムによれば、一般的なコンピュータを、本発明のリモートブート装置として機能させることができる。本発明によれば、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込むことができる。以下、本発明の実施するための形態実施の形態を説明する。まず、図1を用いて本実施の形態のシステムの全体構成を説明する。本実施の形態のシステムは、サービスを提供するための資源である複数のサーバ300と、サーバ300を遠隔起動するリモートブート装置100と、ソフトウェアイメージの配信元となるイメージリポジトリ装置200とを備える。リモートブート装置100と、イメージリポジトリ装置200と、サーバ300とは管理ネットワーク400で接続される。遠隔起動指示やソフトウェアイメージの配信は、この管理ネットワーク400経由で行われる。また、端末600は、サービスネットワーク500経由で各サーバ300にアクセスし、各サーバ300が提供するサービスを受ける。リモートブート装置100は、保守者の端末装置図示省略からサーバ300のリモートブート遠隔起動要求を受け付けると、必要台数のサーバ300を遠隔起動する。そして、リモートブート装置100は、イメージリポジトリ装置200に対し、起動したサーバ300へのソフトウェアイメージの配信を指示する。ここで、イメージリポジトリ装置200は、図2に例示するように、イメージリポジトリ装置200を先頭にして、起動対象サーバを論理的に一列チェイン状に並べる。そして、この並べた起動対象サーバサービスを提供するサーバ300群であるクラスタへの追加対象サーバに対してソフトウェアイメージを配信する。その際、ソフトウェアイメージをいくつかの断片チャンクに分割し、チャンク単位でチェインチャンクの転送順序に沿って各サーバ300へ配信する。そして、この起動対象サーバは、バケツリレー式に、チャンクの受信、送信および保存を実行する。つまり、各サーバ300は、チャンクを受信すると、順次、このチャンクをチェインの次のサーバ300へ転送する。また、サーバ300は、受信したチャンクを自身のローカルディスクに保存することでソフトウェアイメージを保存する。ここで、チェインは、ネットワークトポロジを考慮して構成される。例えば、各サーバ300300A,300B,300C,300Dおよびイメージリポジトリ装置200は、図3abに例示するように、スイッチ700700A,700B,700C経由で接続される。このようなネットワークトポロジにおいて、図3aの0→1→2→3→4のような順で各チャンクを順次配信していくと、スイッチ700をまたいだ通信が多く発生し、1つのリンク上で複数の通信が同時に行われる可能性がある。このため、ネットワークの通信帯域の利用効率が悪くなる可能性がある。一方、本システムでは、図3bの0→1→2→3→4のような順、つまり、経由するスイッチ数スイッチまたぎの数が最小限となるような配信順序で、各チャンクを順次配信していく。このようにすることで、1つのリンク上で複数の通信が同時に行われる可能性を低くできる。なお、前記したリモートブート装置100は、管理ネットワーク400やサービスネットワーク500経由で通信可能な通信インタフェースと、入出力インタフェースと、CPUCentralProcessingUnitと、RAMRandomAccessMemory、ROMReadOnlyMemory、HDDHardDiskDrive、フラッシュメモリ等の記憶部とを備えるコンピュータにより実現される。<リモートブート装置>次に、図4を用いて、図1のリモートブート装置100、イメージリポジトリ装置200およびサーバ300を詳細に説明する。まず、リモートブート装置100を説明する。リモートブート装置100は、ブート要求受付部110と、遠隔電源管理部120と、サーバ情報管理部130と、チェイン生成部140と、トポロジ情報管理部150と、チェイン送信部160とを備える。また、このリモートブート装置100は、記憶部図示省略の所定領域に、サーバ情報131と、トポロジ情報151とを記憶する。ブート要求受付部110と、遠隔電源管理部120と、サーバ情報管理部130と、チェイン生成部140と、トポロジ情報管理部150と、チェイン送信部160とは、リモートブート装置100が備えるCPUによるプログラム実行処理や、専用回路等により実現される。このリモートブート装置100をプログラム実行処理により実現する場合、記憶部には、このリモートブート装置100の機能を実現するためのプログラムが格納される。ブート要求受付部110は、保守者の端末装置等から起動対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含むリモートブート要求を受け付け、一連のリモートブート処理を開始する。リモートブート要求は、保守者の端末装置等の外部端末からネットワーク越しに受け付けてもよいし、リモートブート装置100に直接接続された入力装置経由で受け付けてもよい。遠隔電源管理部120は、起動対象のサーバ300を選択し、このサーバ300を遠隔電源ONする。遠隔電源ONは、例えば、IPMIやWoL等を用いて行われる。サーバ情報管理部130は、サーバ情報131の読み出しおよび書き込みを行う。このサーバ情報131は、図5に例示するように、サーバ300の識別情報であるサーバIDごとに、このサーバ300の遠隔操作用アドレス、転送用アドレスおよびサーバ300の状態を示した情報である。遠隔操作用アドレスは、遠隔電源管理部120によって、サーバ300を電源ONする際に必要となるエンドポイントのアドレスである。図5の例では、サーバ300が遠隔電源ONにIPMIを用いることを想定しており、IPInternetProtocolアドレスが値として格納されている。転送用アドレスは、当該サーバ300にソフトウェアイメージを転送する際に用いるネットワークアドレスである。また、サーバ300の状態は、そのサーバ300が資源として利用可能であるか否かクラスタに追加可能であるか否かを示す情報が格納される。図5の例では、サーバ300の状態を、利用可能、利用中、利用不可のいずれかとしている。利用可能は、資源として利用可能な待機中のサーバ300であり、利用中は、現在何らかのサービスを提供しており、クラスタに追加できないサーバ300であり、利用不可は、故障等の理由で利用不可であるサーバ300であることを示している。図4に戻る。チェイン生成部140は、チェイン転送指示情報を生成する。チェインとは、イメージリポジトリ装置200および各起動対象サーバ間でソフトウェアイメージの断片を転送するときの順序を示す情報である。チェインの生成手順の詳細は後記するが、チェイン生成部140は、イメージリポジトリ装置200をスタート地点として、終端の起動対象サーバまで、経由スイッチ数が最も少ない起動対象サーバを順次選択していくことで、チェインを生成する。これにより、起動対象サーバ間でチャンクを転送するときに、経由するスイッチ数をできるだけ少なくできる。チェイン送信部160は、チェイン生成部140により作成されたチェインをイメージリポジトリ装置200に転送して、チャンクの配信開始を指示する。チェイン生成部140およびチェイン送信部160の詳細は後記する。トポロジ情報管理部150は、トポロジ情報151の読み出しおよび書き込みを行う。このトポロジ情報151は、ネットワークのサーバ300、イメージリポジトリ装置200およびこれらを接続するスイッチ700の接続関係トポロジを示した情報である。ここでのネットワークトポロジは、一般的な木構成を想定している。図7に、トポロジ情報151を例示する。このトポロジ情報151は、図6のネットワークトポロジを示すトポロジ情報151である。なお、図6および図7におけるSWは、スイッチ700のスイッチIDを示し、Svrは、サーバ300のサーバIDを示す。トポロジ情報151は、図7に例示するようにスイッチ700の識別情報であるスイッチIDごとに、木構造上の親スイッチ、子スイッチおよび収容サーバのIDを値として格納している。親スイッチの値はスイッチIDとして格納され、その値の数は最大1つである。また、図6におけるSW0のように木構造上の根ルートとなるスイッチ700には親スイッチは存在しない。一方、子スイッチは複数個存在しうる。図6および図7の例では、SW0は、SW1,SW2,SW3を子スイッチとして有する。また、SW1,SW4~SW6は、子スイッチを有さないため、値も存在しない。収容サーバは、そのスイッチ700に収容されているサーバ300のサーバIDが値となるため、複数個存在しうる。また、スイッチ700同士を接続するSW0,SW2,SW3等の中継スイッチはサーバ300を収容していないため、収容サーバの値が存在しない。<イメージリポジトリ>図4に戻る。イメージリポジトリ装置200は、配信要求受付部210と、イメージ情報管理部220と、イメージ配信部240とを備える。また、イメージリポジトリ装置200の記憶部図示省略の所定領域にストレージ230と、イメージ情報221とを記憶する。配信要求受付部210と、イメージ情報管理部220と、イメージ配信部240とは、イメージリポジトリ装置200の備えるCPUによるプログラム実行処理や、専用回路等により実現される。このイメージリポジトリ装置200をプログラム実行処理により実現する場合、記憶部には、このイメージリポジトリ装置200の機能を実現するためのプログラムが格納される。配信要求受付部210は、管理ネットワーク400経由でリモートブート装置100からのイメージIDおよびチェインの送信を受け付け、ソフトウェアイメージの断片チャンクの配信処理を開始する。イメージ情報管理部220は、イメージ情報221の読み出しおよび書き込みを行う。このイメージ情報221は、図8に例示するように、ソフトウェアイメージの識別情報イメージIDごとに、そのソフトウェアイメージにアクセスするためのパスを示した情報である。このイメージ情報221は、イメージ配信部240が、ストレージ230からソフトウェアイメージを読み出すときに参照される。図4に戻る。ストレージ230は、ソフトウェアイメージ本体を記憶する。イメージ配信部240は、配信対象のソフトウェアイメージを複数のチャンクに分割し、チェインに沿って配信する。このイメージ配信部240は、リモートブート装置100からチェインを受信し、このチェインの先頭のサーバ300に転送するチェイン転送部チェイン受信部およびチェイン送信部241と、配信対象のソフトウェアイメージをチャンクに分割するチャンク分割部242と、チャンクをチェインに示される先頭のサーバ300に送信するチャンク送信部243とを備える。また、このイメージ配信部240は、チェイン終端のサーバ300から、チャンクの配信状況を受け付ける配信状況受付部244をさらに備えてもよい。<サーバ>サーバ300は、ブート部310と、イメージ転送部320とを備える。また、サーバ300は、HDD等の記憶部図示省略の所定領域に、イメージ保存部330を備える。また、サーバ300のRAM等のメインメモリ図示省略の所定領域に、チャンクテーブル341を記憶する。また、このメインメモリは、他のサーバ300から受信したチャンクおよびチェインを記憶する。受信したチャンクは、メインメモリ上に記憶された後、イメージ保存部330に記憶される。ブート部310は、IPMI等のインタフェースによりリモートブート装置100から遠隔電源ONを受け付ける遠隔管理受付部311と、ブート対象のソフトウェアを選択して自身のサーバ300を起動する選択的ブート部312とを備える。この選択的ブート部312は、例えば、GRUBGRandUnifiedBootloader等のブートローダである。この選択的ブート部312は、IPMIによる遠隔電源ONを受けると所定のソフトウェアをブートする。待機中のサーバ300のブート部310は、電源ONされると選択的ブート部312によって、イメージ転送部320の機能を実現するためのソフトウェアをブートする。また、サーバ300は、配信対象のソフトウェアイメージを構成するチャンクをすべて受信すると、選択的ブート部312によって、そのソフトウェアイメージを用いて自身のサーバ300を再起動させる。イメージ転送部320は、チェイン転送部321と、チャンク受信部322と、チャンク転送部323と、チャンク保存部324とを備える。また、イメージ転送部320は、転送情報管理部325をさらに備えていてもよい。チェイン転送部321は、前のサーバ300またはイメージリポジトリ装置200からチェインを受信すると、このチェインを参照して次のサーバ300へ、チェインを転送する。また、チェイン転送部321は、受信したチェインをチャンク転送部323に通知し、チャンクテーブル341を生成する。チャンクテーブル341は、図9に例示するように、チャンクの識別情報であるチャンクIDごとに、そのチャンクの受信フラグ、送信フラグ、保存フラグおよびチャンクの内容である実データを示した情報である。各フラグは、それぞれそのチャンクを、受信済みか否か、送信済みか否か、図4のイメージ保存部330に保存済みか否かを管理するフラグであり、0が未、1が済を示す。図4に戻る。チャンク受信部322は、他のサーバ300またはイメージリポジトリ装置200からチャンクを受信する。また、チャンク受信後、チャンクテーブル341図9参照における該当チャンクIDの受信フラグを1にする。チャンク転送部323は、チャンクテーブル341図9参照を参照して、受信フラグが1となっているチャンクを取得し、チェインを参照して、次のサーバ300へ送信する。また、チャンク転送部323は、チャンクの送信が完了すると、チャンクテーブル341図9参照における当該チャンクの送信フラグを1にする。チャンク保存部324は、受信したチャンクをイメージ保存部330に保存する。また、チャンクの保存が完了すると、チャンクテーブル341図9参照における当該チャンクの保存フラグを1にする。なお、このチャンクテーブル341の送信フラグおよび保存フラグの双方が1となったチャンクの実データは、メインメモリ上のメモリ使用量削減のため、解放してもよい。解放は、所定周期でまとめて行ってもよいし、チャンクテーブル341の受信フラグが1になった時点で他のチャンクのフラグの値を確認し、各フラグの値がすべて1なら逐次解放してもよい。転送情報管理部325は、チェインを参照し、自身がチェインの終端のサーバ300であるとき、どのチャンクを受信したかや、ソフトウェアイメージ全体の何を受信したか等を示す配信状況をイメージリポジトリ装置200に通知する。イメージ保存部330は、受信したソフトウェアイメージのチャンクを保存する。なお、このイメージ転送部320は、前記したチャンクの受信、送信および保存をそれぞれ並行に行うことにより、高速なバケツリレー的配信を実現する。そして、イメージ転送部320は、ソフトウェアイメージを構成するすべてのチャンクの受信、送信および保存が完了すると、選択的ブート部312の設定を変更し、イメージ保存部330のソフトウェアイメージ内のシステムによって起動するようにする。その後、サーバ300を再起動することにより、選択的ブート部312によってソフトウェアイメージ内のシステムが起動する。これにより、サーバ300は、図1の端末600に対しサービスを提供可能な状態になる。<動作手順><リモートブート装置>次に、図10を用いて、図1のシステムの動作概要を説明する。ここでは、リモートブート装置100の動作を中心に説明する。リモートブート装置100のブート要求受付部110は、保守者の端末装置等から、起動対象のサーバ300の台数と、このサーバ300へ配信したいソフトウェアイメージの種別であるイメージIDを含むブート要求リモートブート要求を受け付けるS11。ブート要求受付部110は、ブート要求を受け付けるとイメージIDをイメージリポジトリ装置200に通知しS12、イメージリポジトリ装置200にそのソフトウェアイメージが存在するか否かを確認する。そのソフトウェアイメージが存在することが確認できると、ブート要求受付部110は、サーバ情報管理部130経由で、サーバ情報131図5参照を取得しS13、指定された台数のサーバ300を起動対象サーバとして選択するS14:対象サーバ選択。起動対象サーバの選択は、サーバ情報131において、利用可能状態のサーバ300のうち、上から必要台数を確保する、ランダムに選択する、ハードウェア性能のよいものを選択する等が考えられる。ブート要求受付部110は、起動対象サーバを選択すると、選択した起動対象サーバを、遠隔電源管理部120およびチェイン生成部140に通知するS15。そして、遠隔電源管理部120は、通知された起動対象サーバに対して、IPMI等の手段を用いて遠隔電源ONを行うS16。チェイン生成部140は、トポロジ情報管理部150経由でトポロジ情報151を取得しS17、チャンクの配信順序であるチェインを生成しS18、チェイン送信部160へ通知するS19。チェインの生成手順の詳細は、具体例を用いて後記する。そして、チェイン送信部160は、通知されたチェインをイメージリポジトリ装置200へ送信するS20。以上のようにして、リモートブート装置100は、チャンクの配信手順であるチェインを、イメージリポジトリ装置200へ送信する。イメージリポジトリ装置200は、送信されたチェインに従い、まず、チェインの先頭の追加対象サーバへチャンクを送信し、後は追加対象サーバ間で、チェインに従ったチャンクの転送処理が行われる。<チェイン生成手順>ここで、図11および図12を用いて、図4のリモートブート装置100のチェイン生成部140のチェイン生成手順図10のS18を詳細に説明する。ここでは、図6に例示するネットワークトポロジにおいて、Svr3,Svr4,Svr6,Svr7が起動対象サーバとして選択された場合を例に説明する。なお、図4のチェイン生成部140は、チェイン生成に際して、チェイン生成状況を示すテーブルである処理テーブル図12a~l参照を生成する。なお、チェイン生成処理は、トポロジ情報151図7参照を参照して行われる。また、チェイン生成処理は、スイッチ700ごとに処理を進めていくため、処理中のスイッチ700をSとして説明する。また、図12a~lそれぞれは、Sが推移したときの処理テーブルと、チェインとを示す。チェイン生成部140は、チェインの処理を開始すると、まず、チャンクの配信元となるイメージリポジトリ装置200Repのアドレスが先頭となるチェインを生成するS1。そして、チェイン生成部140は、トポロジ情報151を参照して、この起動対象サーバに直接的または間接的に接続されるスイッチ700群のスイッチIDをキーとする処理テーブルを生成し、その値である処理フラグをすべて0に初期化するS2、図12のa参照。そして、チェイン生成部140は、リポジトリイメージリポジトリ装置200が収容されているスイッチ700図7のSW6をSとして処理を開始するS3。チェイン生成部140は、Sのスイッチ700に収容されている1以上の起動対象サーバのアドレスをチェイン末尾チェインに、直前に追加したサーバ300の次に追加するS4。例えば、図6のSW6に収容される起動対象サーバはSvr7のみなので、チェイン生成部140は、Svr7のアドレスのみをチェインに追加する。そして、チェイン生成部140は、図12のbに示すように処理テーブル中のSW6の処理フラグを1にするS5。その後、トポロジ上にSの親スイッチがあればS6のYes、チェイン生成部140は、このSを親スイッチとしてS7、S8へ処理を進める。例えば、図6のSW6には親スイッチSW3があるので、チェイン生成部140は、SをSW3に移し、処理をS8へ進める。一方、トポロジ上にSの親スイッチがなければS6のNo、チェイン生成部140は、チェイン生成処理を終了するS12。つまり、生成したチェインを、図4のチェイン転送部321に出力する。S7の後、チェイン生成部140は、処理テーブルを参照して、Sに処理フラグが0の子スイッチがなければS8のNo、処理テーブル中のSの処理フラグを1にしてS11、S6へ戻る。例えば、Sが、図6のSW3であるとき、図12cに示す処理テーブルには処理フラグが0であるSW3の子スイッチSW6はないので、チェイン生成部140は、処理テーブル中のSW3の処理フラグを1にして図12のc参照、S6へ戻る。ここで、図6のSW3には親スイッチSW0があるのでS6のYes、チェイン生成部140は、Sを、親スイッチであるSW0にするS7。つまり、チェイン生成部140は、Sに未処理の子スイッチがなければ、Sを、親スイッチに戻す。一方、チェイン生成部140は、処理テーブルを参照し、Sに、処理フラグが0の子スイッチがあればS8のYes、つまり、未処理の子スイッチがあれば、チェイン生成部140は、Sを、未処理の子スイッチ、つまり、処理フラグが0の子スイッチのいずれかに移すS9。そして、S10へ処理を進める。例えば、図12のdの処理テーブルに示すように、SW0には処理フラグが0の子スイッチが2つ図6のSW1およびSW2あるため、チェイン生成部140は、Sを、SW1またはSW2のいずれか例えば、SW1にする。S9の後、チェイン生成部140は、Sの子スイッチがあればS10のYes、S8へ戻る。一方、Sの子スイッチがなければS10のNo、S4へ戻る。つまり、処理対象Sが、サーバ300を収容するスイッチ700となった場合、S4を実行し、スイッチ700に収容される起動対象サーバのアドレスをチェインに追加する。例えば、Sが、図6のSW1であるとき、このSW1は、起動対象サーバSvr3,Svr4,Svr6,Svr7を収容していないので、チェインの追加は行わず、チェイン生成部140は、処理テーブル中のSW1の処理フラグを1とするS5、図12のe参照。そして、このSW1には親スイッチ図6のSW0があるのでS6のYes、チェイン生成部140は、Sを、S1の親スイッチSW0に戻すS7。ここで、図12のfの処理テーブルに示すように、SW0には、処理フラグが0の子スイッチSW2があるのでS8のYes、Sを、SW2に移すS9。図6のSW2には子スイッチSW4がありS10のYes、かつ、図12のgの処理テーブルに示すように、このSW4の処理フラグは0なのでS8のYes、Sを、SW4にするS9。このSW4には、子スイッチがなくS10のNo、SW4は、起動対象サーバSvr3,Svr4を収容するので、チェイン生成部140は、このSvr3,Svr4のアドレスをチェインに追加するS4、図12のh参照。また、処理テーブルにおけるSW4の処理フラグを1にするS5、図12のh参照。次に、図6のSW4には親スイッチSW2があるのでS6のYes、チェイン生成部140は、Sを、SW2に戻すS7。図12のiの処理テーブルに示すように、SW2には処理フラグが0の子スイッチ図6のSW5があるのでS8のYes、Sを、SW5に移すS9。このSW5には、子スイッチがなくS10のNo、SW5は、起動対象サーバSvr6を収容しているので、チェイン生成部140は、このSvr6のアドレスをチェインに追加しS4、処理テーブルにおけるSW5の処理フラグを1にするS5、図12のj参照。このSW5には親スイッチ図6のSW2があるのでS6のYes、チェイン生成部140は、Sを、SW2に戻すS7。ここで、図12のkの処理テーブルに示すように、SW2には処理フラグが0の子スイッチはないのでS8のNo、処理テーブルにおけるSW2の処理フラグを1にするS5。その後、このSW2には親スイッチ図6のSW0があるのでS6のYes、チェイン生成部140は、Sを、SW0に戻すS7。図12のlの処理テーブルに示すように、このSW0には処理フラグが0の子スイッチはないのでS8のNo、処理テーブルにおけるSW0の処理フラグを1にするS11。このSW0には親スイッチがないのでS6のNo、チェイン生成部140は、チェイン生成処理を終了しS12、転送順序であるチェイン図12のlに示すチェインをチェイン転送部321に出力する。このように、チェイン生成部140は、図6に例示するネットワークトポロジにおいて、イメージリポジトリ装置200をスタート地点として、次の起動対象サーバまでのホップ数経由するスイッチ700が最小となる起動対象サーバを選択し、チェインに追加していく。よって、生成されるチェインは、当該起動対象サーバ間で経由するスイッチ数が最小となるように並べたものとすることができる。<イメージリポジトリ装置>次に、図13を用いて、イメージリポジトリ装置200の動作手順を説明する。イメージリポジトリ装置200の配信要求受付部210は、配信対象のソフトウェアイメージのイメージIDをリモートブート装置100から受け取るとS21、イメージ情報管理部220経由でイメージ情報221図8参照を取得しS22、ソフトウェアイメージのイメージパスパスをチャンク分割部242に通知するS23。チャンク分割部242は、S23で通知されたイメージパスをもとに、配信対象のソフトウェアイメージイメージをストレージ230から取得しS24、このソフトウェアイメージを、チャンクに分割するS25。チャンク分割部242は、分割したチャンクを、イメージリポジトリ装置200のメインメモリ上に展開する。また、イメージリポジトリ装置200の配信要求受付部210は、リモートブート装置100からチェインを受信するとS26、受信したチェインをチェイン転送部241へ通知するS27。そして、チェイン転送部241は、通知されたチェインを参照し、チェイン先頭のサーバ300のアドレスに対してチェインを転送するS28。また、配信要求受付部210は、S26で受信したチェインを、チャンク送信部243に通知するS29。チャンク送信部243は、チャンク分割部242によってメインメモリ上に展開されたチャンクを取得しS30、取得したチャンクをチェインの先頭のサーバ300に送信するS31。また、前記したとおり、イメージリポジトリ装置200は、配信状況受付部244により、チェインの終端のサーバ300からチャンクの配信状況を受信してもよいS32。ここでの配信状況は、例えば、終端のサーバ300が所定時間おきに、受信したチャンク数や、ソフトウェアイメージ全体に対する受信したチャンク割合等を通知するものである。<サーバ>次に、図14および図15を用いて、サーバ300の動作を説明する。まず、図14を用いてチェインの終端のサーバ300以外のサーバ300の動作を説明する。図14に示すように、サーバ300の遠隔管理受付部311は、リモートブート装置100からIPMI等のインタフェースによって遠隔電源ONの指令を受け付けるとS41、選択的ブート部312にマシンのブートを指示するS42。ここで、選択的ブート部312はイメージ転送部320を起動する。チェイン転送部321は、イメージリポジトリ装置200または他のサーバ300からのチェイン必要であればパラメータ情報が送信されるとS43、このチェインを、チェインの次のサーバ300に送信するS44。また、チェイン転送部321は、チャンク転送部323にチェインを通知するS45。また、チェイン転送部321は、チャンクテーブル図9参照を生成するS46。チャンク受信部322は、イメージリポジトリ装置200または他のサーバ300からチャンクを受信するとS47、受信したチャンクを、チェイン転送部321経由でチャンクテーブル341に登録するS48。つまり、チャンク受信部322は、チャンクテーブル341における、受信チャンクのチャンクIDの受信フラグを1にする。その後、チャンク転送部323は、チャンクテーブル341を参照して、受信フラグが1となっているチャンクを取得しS49、チェインにおける次のサーバ300へ送信するS50。また、チャンク保存部324は、受信フラグが1となっているチャンクを取得しS51、イメージ保存部330に保存するS52。このようにして、チャンクの送信、保存が完了すると、チャンク転送部323およびチャンク保存部324はそれぞれ、チャンクテーブル341における当該チャンクの送信フラグ、保存フラグを1にする。この後、チャンク転送部323は、チャンクテーブル341を参照して、受信、送信およびイメージ保存部330への保存が実行済みである断片を、メインメモリ上から削除する。この後、各サーバ300において、ソフトウェアイメージを構成するすべてのチャンクの受信、送信および保存が完了すると、チェイン転送部321は、完了通知を選択的ブート部312へ出力するS53。この完了通知を受けた選択的ブート部312は、ブート対象をイメージ保存部330のソフトウェアイメージ内のシステムに変更して、サーバ300を再起動するS54。これにより、選択的ブート部312によってソフトウェアイメージ内のシステムが起動する。このようにサーバ300は、チャンクの受信、送信および保存処理図14のシーケンス中の破線で囲まれている部分それぞれを並行に行うので、高速なバケツリレー的配信を実現できる。最後に、図15を用いて、チェインの終端のサーバ300がチャンクの配信状況をイメージリポジトリ装置200に通知するときの動作を説明する。終端のサーバ300は、図14のS41~S43と同様に、リモートブート装置100からの遠隔電源ONを受けS61、ブートするとS62、サーバ300のチェイン転送部321は、イメージリポジトリ装置200または他のサーバ300から送信されたチェインを受信するS63。その後、チェイン転送部321は、このチェインを転送情報管理部325へ通知しS64、チャンクテーブル341を生成するS65。ここで、終端のサーバ300は、次のサーバ300へのチャンクの送信を行わないので、チャンクテーブル341における各チャンクの送信フラグを1にしておく図16参照。チャンク受信部322がイメージリポジトリ装置200または他のサーバ300からチャンクを受信するとS66、図14のS48と同様にチャンクテーブル341への登録を行うS67。そして、チャンクの受信を確認したチャンク保存部324は、図14のS51,52と同様に、チャンクの取得およびイメージ保存部330への保存を行いS68、S69、チャンク保存部324は、チャンクテーブル341における当該チャンクの保存フラグを1にする。転送情報管理部325は、チェイン転送部321経由で、チャンクテーブル341に示される各チャンクの情報チャンク情報を取得するとS70、このチャンク情報を含む配信状況をイメージリポジトリ装置200へ送信するS71。これにより、イメージリポジトリ装置200は、チェインの終端のサーバ300に、どの程度チャンクが到達しているかを確認することができる。S72およびS73は、図14のS53およびS54と同様なので説明を省略する。以上説明したシステムによれば、イメージリポジトリ装置200から配信されたソフトウェアイメージのチャンクを、チェインに従い起動対象サーバ間でバケツリレー式に転送するので、ソフトウェアイメージを迅速に配信できる。また、リモートブート装置100は、チェインを生成するとき、チャンクの配信順序を、起動対象サーバ間で経由するスイッチ数ができるだけ少なくなるような順序とする。よって、ネットワーク内の通信帯域が無駄に占有されるおそれがなくなる。なお、前記した実施の形態において、リモートブート装置100とイメージリポジトリ装置200とは別個の装置として説明したが、これらは同じ装置で実現するようにしてもよい。また、ソフトウェアイメージを分割するときのチャンクサイズは、事前に固定的に与えられたサイズでもよいし、リモートブート装置100からイメージIDと共に動的に通知されたサイズであってもよい。なお、サーバ300のチャンク送信部243は、チャンクを次のサーバ300に送信するとき、次のサーバ300と単一のコネクションを確立して送信してもよいし、複数のコネクションを確立してチャンクを並行に送信してもよい。例えば、N本のコネクションを用いた場合、チャンク送信部243は、各コネクションでそれぞれ総チャンク数の1/Nのチャンクを送信する。このようにすることで、サーバ300間でのチャンクの送信を速やかに行うことができる。また、イメージリポジトリ装置200の配信状況受付部244は、終端のサーバ300から配信状況を受信する代わりに、終端のサーバ300からチャンク自体を受信し、その受信したチャンクをもとに配信状況を計算するようにしてもよい。また、この配信状況受付部244は外部装置からの要求を受け付けて、現在の配信状況を返してもよい。さらに、イメージリポジトリ装置200のチェイン転送部241は、追加対象サーバへのチェイン転送時に、これから送信するソフトウェアイメージの容量や、通信に使うポート番号、コネクション数等のパラメータを送信してもよい。このパラメータの値は、チェイン送信時に動的に決定してもよいし、静的な値を予め定めておいてもよい。また、リモートブート装置100で生成されたチェインは、イメージリポジトリ装置200経由で、チェインに記載された各起動対象サーバ間で転送するものとしたが、これに限定されない。例えば、リモートブート装置100から直接、イメージリポジトリ装置200および起動対象サーバそれぞれへ配信してもよいし、チェインを受信したイメージリポジトリ装置200が、起動対象サーバそれぞれへ配信してもよい。"