説明

ソフトウェアイメージ配信方法、ソフトウェアイメージ配信システムおよびそのプログラム

【課題】多数のサーバをクラスタに組み込む場合であっても、迅速に組み込めるようにする。
【解決手段】リモートブート装置は、イメージリポジトリ装置200に、配信対象のソフトウェアイメージの分割を指示する。また、このイメージリポジトリ装置200を始点として、この分割したソフトウェアイメージの断片(チャンク)を、どのようなサーバ順で転送するかを示したチェインを生成する。このチェインを受信したイメージリポジトリ装置200および起動対象サーバは、チェインを参照して、イメージリポジトリ装置200を始点として、起動対象サーバ間でバケツリレーのようにチャンクを順次転送していく。ここでチェインに示される転送順序は、ネットワークトポロジを考慮し、起動対象サーバ間の経由スイッチの数が最小となるような順序とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラスタシステムの各サーバへのソフトウェアイメージの配信技術に関する。
【背景技術】
【0002】
近年、Webサーバホスティング等の分野では、データセンタのようなサーバ管理事業者が一括してサーバを管理し、サービス提供事業者をホスティングするIaaS(Infrastructure as a Service)等と呼ばれる形態が一般化している(非特許文献1参照)。ここで、サービスの需要増時や、そのサービスを提供しているサーバが障害によって離脱した場合に速やかに要求に対応するためには、ある程度の待機余剰資源を含めたサーバを用意しておく必要がある。また、近年では無停止でサーバ資源の動的追加および削除が可能なネットワークサーバクラスタのアーキテクチャが登場しており、通信網を構成する設備のさらなる運用柔軟化や低コスト化が期待されている(非特許文献2参照)。
【0003】
そのような要求に対して、各ネットワークサーバクラスタの余剰資源をリソースプールとして集約しておき、需要増時や、障害や災害によって失われた資源の補充時に、リソースプールから必要なサーバを各クラスタに追加することにより、全体の設備利用効率を向上させる技術が検討されている。
【0004】
このように余剰資源が集約された共用のリソースプールから、サーバをクラスタに追加する場合、リソースプール内に保持されているサーバが、どのようなソフトウェア構成を取るかが事前に分からない。このため、リソースプールのサーバはソフトウェアを何も有していない状態であることが一般的である。よって、資源追加時には、リポジトリから、個々のサービスに対応したソフトウェア構成が含まれたソフトウェアイメージを、追加対象のサーバに転送する。そして、このサーバに必要な設定を行った後にクラスタに組み込む必要がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Amazon Elastic Compute Cloud (Amazon EC2)、[online]、[平成23年3月23日検索]、インターネット、<URL:http://aws.amazon.com/ec2/>
【非特許文献2】Mobicents、[online]、[平成23年3月23日検索]、インターネット、<URL: http://www.mobicents.org/>
【非特許文献3】西村豪生他、高可用ネットワークサーバの資源運用柔軟化に向けた高速リモートブート装置、信学技報、NS2010-148、pp.37-42、Jan、2011.
【発明の概要】
【発明が解決しようとする課題】
【0006】
ソフトウェアイメージは、オペレーティングシステムや各種ミドルウェア、データ等をすべて含んでいるため数〜数十GBに及ぶ大容量であり、転送にはある程度の時間を要する。ここで、クラスタへの急な需要増やサーバの障害復旧時にもサービスの可用性低下を防ぐためには、複数のサーバが同時に要求されたとしても、高速にソフトウェアを配信して起動する必要がある。
【0007】
非特許文献3に記載の技術は、サーバを木構造にマッピングして配信を行う通信ライブラリによってソフトウェアイメージの配信を行っている。しかし、この方法ではクラスタへの追加対象サーバが増加すると、それに応じてソフトウェアイメージの配信時間が増加してしまうという問題がある。また、一般的な通信ライブラリはすべてのサーバを互いに通信可能な論理的なノードとして抽象化しており、実際のネットワークトポロジを考慮して最適な通信を行っているとは限らない。このため、ソフトウェアイメージの配信時にネットワークの帯域を効率よく利用できず、ソフトウェアイメージの転送に必要以上の時間がかかってしまうことがある。
【0008】
そこで、本発明は、前記した問題を解決し、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込める手段を提供することを目的とする。
【課題を解決するための手段】
【0009】
前記した課題を解決するため、本発明は、サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加するサーバの遠隔電源オンの指示を行い、サーバを動作させるためのソフトウェアイメージを、イメージリポジトリ装置に配信させるリモートブート装置が以下の処理を行う。すなわち、リモートブート装置が、クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける。そして、リモートブート装置は、この入力されたソフトウェアイメージの種別を、イメージリポジトリ装置へ送信する。次に、リモートブート装置は、入力された追加指示に基づき、サーバそれぞれのIDおよび当該サーバがクラスタに追加可能か否かを示したサーバ情報を読み出し、読み出したサーバ情報に示されるサーバのうち、追加可能なサーバをクラスタへの追加対象サーバとして追加指示に示される台数選択する。そして、その選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信する。その後、リモートブート装置は、イメージリポジトリ装置、サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、ソフトウェアイメージを分割した断片を、追加対象サーバ間で転送するときの追加対象サーバの順序を含む転送指示情報を生成する。そして、この生成した転送指示情報をイメージリポジトリ装置へ送信する。この転送指示情報を受信したイメージリポジトリ装置は、送信された種別のソフトウェアイメージを分割し、分割したソフトウェアイメージの断片と、転送指示情報とを、転送指示情報に含まれる転送順序の最初の起動対象サーバへ送信する。その後、転送指示情報およびソフトウェアイメージの断片を受信した追加対象サーバそれぞれは、受信したソフトウェアイメージの断片を、転送指示情報において自身のサーバの次に断片を転送すべき追加対象サーバへ転送し、自身のサーバのイメージ保存部に保存する処理を、ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返す。その後、起動対象サーバは、イメージ保存部に保存されたソフトウェアイメージから自身のサーバを起動させる。ここで、リモートブート装置が転送指示情報を生成するとき、追加対象サーバ間で転送するときの追加対象サーバの順序は、トポロジ情報を参照して、追加対象サーバ間で経由するスイッチの数が最小となるような順序とする。
【0010】
このように、リモートブート装置は、ソフトウェアイメージを断片に分割し、追加対象サーバに、この断片それぞれを、所定の転送順序でバケツリレーのように順次断片を転送させることができる。これにより、イメージリポジトリ装置は、クラスタへの追加対象サーバそれぞれへソフトウェアイメージ全体を送る必要がなくなる。よって、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込むことができる。また、転送指示情報に設定する追加対象サーバ間でのソフトウェアイメージの断片の転送順序は、追加対象サーバ間で経由するスイッチ数ができるだけ少なくなるようにする。これにより、各断片の転送時に経由するリンクの数をできるだけ低減できるので、各断片を順次追加対象サーバ間で転送するとき、ネットワークの帯域の利用効率を向上させることができる。
【0011】
また、本発明は、サーバそれぞれが、受信したソフトウェアイメージの断片と、断片ごとに、当該断片の受信、送信およびイメージ保存部への保存それぞれについて実行済みか否かを示すチャンクテーブルとを記憶するメインメモリを備えている。そして、サーバそれぞれは、チャンクテーブルを参照して、受信済みとなっている断片について、当該断片の送信またはイメージ保存部への保存を行う。その後、断片の送信またはイメージ保存部への保存を行ったとき、チャンクテーブルにおける当該断片について送信またはイメージ保存部への保存を実行済みに書き換える。そして、サーバそれぞれは、チャンクテーブルを参照して、受信、送信およびイメージ保存部への保存が実行済みである断片を、メインメモリ上から削除する。
【0012】
このように、追加対象サーバは、順次、受信したソフトウェアイメージの断片の送信、保存を繰り返すが、ソフトウェアイメージの断片の送信およびイメージ保存部への保存が完了すると、この断片をメインメモリ上から削除するので、メインメモリの限られた記憶容量を有効活用できる。
【0013】
また、本発明は、サーバそれぞれが、転送指示情報において、自身のサーバが、追加対象サーバ間で転送するときの追加対象サーバの順序が最後になっていると判断したとき、自身のサーバが受信した断片をイメージリポジトリ装置へ通知する。
【0014】
このようにすることで、イメージリポジトリ装置は、追加対象サーバのうち転送順序が最後になっている追加対象サーバが、ソフトウェアイメージのどの断片まで受信したか(配信状況)を確認することができる。
【0015】
また、本発明は、サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加するサーバの遠隔電源オンの指示を行い、イメージリポジトリ装置に、サーバを動作させるためのソフトウェアイメージの配信を指示するためのソフトウェアイメージ配信プログラムについて、各ステップを実行させるプログラムとした。すなわち、コンピュータに、クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、入力されたソフトウェアイメージの種別を、イメージリポジトリ装置へ送信するステップと、入力された追加指示に基づき、サーバそれぞれのIDおよび当該サーバがクラスタに追加可能か否かを示したサーバ情報を読み出し、読み出したサーバ情報に示されるサーバのうち、追加可能なサーバをクラスタへの追加対象サーバとして追加指示に示される台数選択し、選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、管理ネットワークを介して送信するステップと、イメージリポジトリ装置、サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、ソフトウェアイメージを分割した断片を、追加対象サーバ間で転送するときの追加対象サーバの順序を含む転送指示情報を生成するステップと、生成した転送指示情報をイメージリポジトリ装置へ送信するステップとを実行させるプログラムとした。ここで、転送指示情報は、イメージリポジトリ装置に対し、送信された種別のソフトウェアイメージを分割し、分割したソフトウェアイメージの断片と、転送指示情報とを、転送指示情報に含まれる転送順序の最初の起動対象サーバへ送信し、転送指示情報およびソフトウェアイメージの断片を受信した追加対象サーバそれぞれに対し、受信したソフトウェアイメージの断片を、転送指示情報において自身のサーバの次に断片を転送すべき追加対象サーバへ転送するよう指示する情報であり、追加対象サーバ間で転送するときの追加対象サーバの順序は、トポロジ情報を参照して、追加対象サーバ間で経由するスイッチの数が最小となるような順序としている。
【0016】
このようなプログラムによれば、一般的なコンピュータを、本発明のリモートブート装置として機能させることができる。
【発明の効果】
【0017】
本発明によれば、多数のサーバをクラスタに組み込む場合であっても、迅速に組み込むことができる。
【図面の簡単な説明】
【0018】
【図1】本実施の形態のシステムの構成例を示した図である。
【図2】図1のシステムにおけるチャンクの転送処理を概念的に説明した図である。
【図3】図1のシステムにおけるチャンクの転送処理を概念的に説明した図である。
【図4】図1のリモートブート装置、イメージリポジトリ装置およびサーバの構成を示した図である。
【図5】図1のサーバ情報を例示した図である。
【図6】図1のサーバを含むネットワークトポロジを例示した図である。
【図7】図1のトポロジ情報を例示した図である。
【図8】図1のイメージ情報を例示した図である。
【図9】図1のチャンクテーブルを例示した図である。
【図10】図1のリモートブート装置の動作手順を説明するための図である。
【図11】図1のリモートブート装置によるチェインの生成手順を示す図である。
【図12】図1のリモートブート装置がチェインを生成するときに用いる処理テーブルおよびチェインの推移を例示した図である。
【図13】図1のイメージリポジトリ装置の動作手順を説明するための図である。
【図14】図1のサーバの動作手順を説明するための図である。
【図15】図1のサーバの動作手順を説明するための図である。
【図16】図1のチャンクテーブルを例示した図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施するための形態(実施の形態)を説明する。まず、図1を用いて本実施の形態のシステムの全体構成を説明する。本実施の形態のシステムは、サービスを提供するための資源である複数のサーバ300と、サーバ300を遠隔起動するリモートブート装置100と、ソフトウェアイメージの配信元となるイメージリポジトリ装置200とを備える。リモートブート装置100と、イメージリポジトリ装置200と、サーバ300とは管理ネットワーク400で接続される。遠隔起動指示やソフトウェアイメージの配信は、この管理ネットワーク400経由で行われる。また、端末600は、サービスネットワーク500経由で各サーバ300にアクセスし、各サーバ300が提供するサービスを受ける。
【0020】
リモートブート装置100は、保守者の端末装置(図示省略)からサーバ300のリモートブート(遠隔起動)要求を受け付けると、必要台数のサーバ300を遠隔起動する。そして、リモートブート装置100は、イメージリポジトリ装置200に対し、起動したサーバ300へのソフトウェアイメージの配信を指示する。
【0021】
ここで、イメージリポジトリ装置200は、図2に例示するように、イメージリポジトリ装置200を先頭にして、起動対象サーバを論理的に一列(チェイン状)に並べる。そして、この並べた起動対象サーバ(サービスを提供するサーバ300群であるクラスタへの追加対象サーバ)に対してソフトウェアイメージを配信する。その際、ソフトウェアイメージをいくつかの断片(チャンク)に分割し、チャンク単位でチェイン(チャンクの転送順序)に沿って各サーバ300へ配信する。そして、この起動対象サーバは、バケツリレー式に、チャンクの受信、送信および保存を実行する。つまり、各サーバ300は、チャンクを受信すると、順次、このチャンクをチェインの次のサーバ300へ転送する。また、サーバ300は、受信したチャンクを自身のローカルディスクに保存することでソフトウェアイメージを保存する。
【0022】
ここで、チェインは、ネットワークトポロジを考慮して構成される。例えば、各サーバ300(300A,300B,300C,300D)およびイメージリポジトリ装置200は、図3(a)(b)に例示するように、スイッチ700(700A,700B,700C)経由で接続される。このようなネットワークトポロジにおいて、図3(a)の(0)→(1)→(2)→(3)→(4)のような順で各チャンクを順次配信していくと、スイッチ700をまたいだ通信が多く発生し、1つのリンク上で複数の通信が同時に行われる可能性がある。このため、ネットワークの通信帯域の利用効率が悪くなる可能性がある。
【0023】
一方、本システムでは、図3(b)の(0)→(1)→(2)→(3)→(4)のような順、つまり、経由するスイッチ数(スイッチまたぎの数)が最小限となるような配信順序で、各チャンクを順次配信していく。このようにすることで、1つのリンク上で複数の通信が同時に行われる可能性を低くできる。
【0024】
なお、前記したリモートブート装置100は、管理ネットワーク400やサービスネットワーク500経由で通信可能な通信インタフェースと、入出力インタフェースと、CPU(Central Processing Unit)と、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶部とを備えるコンピュータにより実現される。
【0025】
<リモートブート装置>
次に、図4を用いて、図1のリモートブート装置100、イメージリポジトリ装置200およびサーバ300を詳細に説明する。まず、リモートブート装置100を説明する。
【0026】
リモートブート装置100は、ブート要求受付部110と、遠隔電源管理部120と、サーバ情報管理部130と、チェイン生成部140と、トポロジ情報管理部150と、チェイン送信部160とを備える。また、このリモートブート装置100は、記憶部(図示省略)の所定領域に、サーバ情報131と、トポロジ情報151とを記憶する。ブート要求受付部110と、遠隔電源管理部120と、サーバ情報管理部130と、チェイン生成部140と、トポロジ情報管理部150と、チェイン送信部160とは、リモートブート装置100が備えるCPUによるプログラム実行処理や、専用回路等により実現される。このリモートブート装置100をプログラム実行処理により実現する場合、記憶部には、このリモートブート装置100の機能を実現するためのプログラムが格納される。
【0027】
ブート要求受付部110は、保守者の端末装置等から起動対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含むリモートブート要求を受け付け、一連のリモートブート処理を開始する。リモートブート要求は、保守者の端末装置等の外部端末からネットワーク越しに受け付けてもよいし、リモートブート装置100に直接接続された入力装置経由で受け付けてもよい。
【0028】
遠隔電源管理部120は、起動対象のサーバ300を選択し、このサーバ300を遠隔電源ONする。遠隔電源ONは、例えば、IPMI(Intelligent Platform Management Interface)やWoL(Wake on LAN)等を用いて行われる。
【0029】
サーバ情報管理部130は、サーバ情報131の読み出しおよび書き込みを行う。このサーバ情報131は、図5に例示するように、サーバ300の識別情報であるサーバIDごとに、このサーバ300の遠隔操作用アドレス、転送用アドレスおよびサーバ300の状態を示した情報である。遠隔操作用アドレスは、遠隔電源管理部120によって、サーバ300を電源ONする際に必要となるエンドポイントのアドレスである。図5の例では、サーバ300が遠隔電源ONにIPMIを用いることを想定しており、IP(Internet Protocol)アドレスが値として格納されている。転送用アドレスは、当該サーバ300にソフトウェアイメージを転送する際に用いるネットワークアドレスである。また、サーバ300の状態は、そのサーバ300が資源として利用可能であるか否か(クラスタに追加可能であるか否か)を示す情報が格納される。図5の例では、サーバ300の状態を、「利用可能」、「利用中」、「利用不可」のいずれかとしている。「利用可能」は、資源として利用可能な(待機中の)サーバ300であり、「利用中」は、現在何らかのサービスを提供しており、クラスタに追加できないサーバ300であり、「利用不可」は、故障等の理由で利用不可であるサーバ300であることを示している。
【0030】
図4に戻る。チェイン生成部140は、チェイン(転送指示情報)を生成する。チェインとは、イメージリポジトリ装置200および各起動対象サーバ間でソフトウェアイメージの断片を転送するときの順序を示す情報である。チェインの生成手順の詳細は後記するが、チェイン生成部140は、イメージリポジトリ装置200をスタート地点として、終端の起動対象サーバまで、経由スイッチ数が最も少ない起動対象サーバを順次選択していくことで、チェインを生成する。これにより、起動対象サーバ間でチャンクを転送するときに、経由するスイッチ数をできるだけ少なくできる。
【0031】
チェイン送信部160は、チェイン生成部140により作成されたチェインをイメージリポジトリ装置200に転送して、チャンクの配信開始を指示する。チェイン生成部140およびチェイン送信部160の詳細は後記する。
【0032】
トポロジ情報管理部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を収容していないため、収容サーバの値が存在しない。
【0033】
<イメージリポジトリ>
図4に戻る。イメージリポジトリ装置200は、配信要求受付部210と、イメージ情報管理部220と、イメージ配信部240とを備える。また、イメージリポジトリ装置200の記憶部(図示省略)の所定領域にストレージ230と、イメージ情報221とを記憶する。配信要求受付部210と、イメージ情報管理部220と、イメージ配信部240とは、イメージリポジトリ装置200の備えるCPUによるプログラム実行処理や、専用回路等により実現される。このイメージリポジトリ装置200をプログラム実行処理により実現する場合、記憶部には、このイメージリポジトリ装置200の機能を実現するためのプログラムが格納される。
【0034】
配信要求受付部210は、管理ネットワーク400経由でリモートブート装置100からのイメージIDおよびチェインの送信を受け付け、ソフトウェアイメージの断片(チャンク)の配信処理を開始する。
【0035】
イメージ情報管理部220は、イメージ情報221の読み出しおよび書き込みを行う。このイメージ情報221は、図8に例示するように、ソフトウェアイメージの識別情報(イメージID)ごとに、そのソフトウェアイメージにアクセスするためのパスを示した情報である。このイメージ情報221は、イメージ配信部240が、ストレージ230からソフトウェアイメージを読み出すときに参照される。
【0036】
図4に戻る。ストレージ230は、ソフトウェアイメージ本体を記憶する。
【0037】
イメージ配信部240は、配信対象のソフトウェアイメージを複数のチャンクに分割し、チェインに沿って配信する。このイメージ配信部240は、リモートブート装置100からチェインを受信し、このチェインの先頭のサーバ300に転送するチェイン転送部(チェイン受信部およびチェイン送信部)241と、配信対象のソフトウェアイメージをチャンクに分割するチャンク分割部242と、チャンクをチェインに示される先頭のサーバ300に送信するチャンク送信部243とを備える。また、このイメージ配信部240は、チェイン終端のサーバ300から、チャンクの配信状況を受け付ける配信状況受付部244をさらに備えてもよい。
【0038】
<サーバ>
サーバ300は、ブート部310と、イメージ転送部320とを備える。また、サーバ300は、HDD等の記憶部(図示省略)の所定領域に、イメージ保存部330を備える。また、サーバ300のRAM等のメインメモリ(図示省略)の所定領域に、チャンクテーブル341を記憶する。また、このメインメモリは、他のサーバ300から受信したチャンクおよびチェインを記憶する。受信したチャンクは、メインメモリ上に記憶された後、イメージ保存部330に記憶される。
【0039】
ブート部310は、IPMI等のインタフェースによりリモートブート装置100から遠隔電源ONを受け付ける遠隔管理受付部311と、ブート対象のソフトウェアを選択して自身のサーバ300を起動する選択的ブート部312とを備える。この選択的ブート部312は、例えば、GRUB(GRand Unified Bootloader)等のブートローダである。この選択的ブート部312は、IPMIによる遠隔電源ONを受けると所定のソフトウェアをブートする。待機中のサーバ300のブート部310は、電源ONされると選択的ブート部312によって、イメージ転送部320の機能を実現するためのソフトウェアをブートする。また、サーバ300は、配信対象のソフトウェアイメージを構成するチャンクをすべて受信すると、選択的ブート部312によって、そのソフトウェアイメージを用いて自身のサーバ300を再起動させる。
【0040】
イメージ転送部320は、チェイン転送部321と、チャンク受信部322と、チャンク転送部323と、チャンク保存部324とを備える。また、イメージ転送部320は、転送情報管理部325をさらに備えていてもよい。
【0041】
チェイン転送部321は、前のサーバ300またはイメージリポジトリ装置200からチェインを受信すると、このチェインを参照して次のサーバ300へ、チェインを転送する。また、チェイン転送部321は、受信したチェインをチャンク転送部323に通知し、チャンクテーブル341を生成する。チャンクテーブル341は、図9に例示するように、チャンクの識別情報であるチャンクIDごとに、そのチャンクの受信フラグ、送信フラグ、保存フラグおよびチャンクの内容である実データを示した情報である。各フラグは、それぞれそのチャンクを、受信済みか否か、送信済みか否か、図4のイメージ保存部330に保存済みか否かを管理するフラグであり、「0」が未、「1」が済を示す。
【0042】
図4に戻る。チャンク受信部322は、他のサーバ300またはイメージリポジトリ装置200からチャンクを受信する。また、チャンク受信後、チャンクテーブル341(図9参照)における該当チャンクIDの受信フラグを「1」にする。
【0043】
チャンク転送部323は、チャンクテーブル341(図9参照)を参照して、受信フラグが「1」となっているチャンクを取得し、チェインを参照して、次のサーバ300へ送信する。また、チャンク転送部323は、チャンクの送信が完了すると、チャンクテーブル341(図9参照)における当該チャンクの送信フラグを「1」にする。
【0044】
チャンク保存部324は、受信したチャンクをイメージ保存部330に保存する。また、チャンクの保存が完了すると、チャンクテーブル341(図9参照)における当該チャンクの保存フラグを「1」にする。なお、このチャンクテーブル341の送信フラグおよび保存フラグの双方が「1」となったチャンクの実データは、メインメモリ上のメモリ使用量削減のため、解放してもよい。解放は、所定周期でまとめて行ってもよいし、チャンクテーブル341の受信フラグが「1」になった時点で他のチャンクのフラグの値を確認し、各フラグの値がすべて「1」なら逐次解放してもよい。
【0045】
転送情報管理部325は、チェインを参照し、自身がチェインの終端のサーバ300であるとき、どのチャンクを受信したかや、ソフトウェアイメージ全体の何%を受信したか等を示す配信状況をイメージリポジトリ装置200に通知する。
【0046】
イメージ保存部330は、受信したソフトウェアイメージのチャンクを保存する。
【0047】
なお、このイメージ転送部320は、前記したチャンクの受信、送信および保存をそれぞれ並行に行うことにより、高速なバケツリレー的配信を実現する。そして、イメージ転送部320は、ソフトウェアイメージを構成するすべてのチャンクの受信、送信および保存が完了すると、選択的ブート部312の設定を変更し、イメージ保存部330のソフトウェアイメージ内のシステムによって起動するようにする。その後、サーバ300を再起動することにより、選択的ブート部312によってソフトウェアイメージ内のシステムが起動する。これにより、サーバ300は、図1の端末600に対しサービスを提供可能な状態になる。
【0048】
<動作手順>
<リモートブート装置>
次に、図10を用いて、図1のシステムの動作概要を説明する。ここでは、リモートブート装置100の動作を中心に説明する。
【0049】
リモートブート装置100のブート要求受付部110は、保守者の端末装置等から、起動対象のサーバ300の台数と、このサーバ300へ配信したいソフトウェアイメージの種別であるイメージIDを含むブート要求(リモートブート要求)を受け付ける(S11)。
【0050】
ブート要求受付部110は、ブート要求を受け付けるとイメージIDをイメージリポジトリ装置200に通知し(S12)、イメージリポジトリ装置200にそのソフトウェアイメージが存在するか否かを確認する。そのソフトウェアイメージが存在することが確認できると、ブート要求受付部110は、サーバ情報管理部130経由で、サーバ情報131(図5参照)を取得し(S13)、指定された台数のサーバ300を起動対象サーバとして選択する(S14:対象サーバ選択)。起動対象サーバの選択は、サーバ情報131において、利用可能状態のサーバ300のうち、上から必要台数を確保する、ランダムに選択する、ハードウェア性能のよいものを選択する等が考えられる。
【0051】
ブート要求受付部110は、起動対象サーバを選択すると、選択した起動対象サーバを、遠隔電源管理部120およびチェイン生成部140に通知する(S15)。そして、遠隔電源管理部120は、通知された起動対象サーバに対して、IPMI等の手段を用いて遠隔電源ONを行う(S16)。
【0052】
チェイン生成部140は、トポロジ情報管理部150経由でトポロジ情報151を取得し(S17)、チャンクの配信順序であるチェインを生成し(S18)、チェイン送信部160へ通知する(S19)。チェインの生成手順の詳細は、具体例を用いて後記する。そして、チェイン送信部160は、通知されたチェインをイメージリポジトリ装置200へ送信する(S20)。
【0053】
以上のようにして、リモートブート装置100は、チャンクの配信手順であるチェインを、イメージリポジトリ装置200へ送信する。イメージリポジトリ装置200は、送信されたチェインに従い、まず、チェインの先頭の追加対象サーバへチャンクを送信し、後は追加対象サーバ間で、チェインに従ったチャンクの転送処理が行われる。
【0054】
<チェイン生成手順>
ここで、図11および図12を用いて、図4のリモートブート装置100のチェイン生成部140のチェイン生成手順(図10のS18)を詳細に説明する。
【0055】
ここでは、図6に例示するネットワークトポロジにおいて、Svr3,Svr4,Svr6,Svr7が起動対象サーバとして選択された場合を例に説明する。なお、図4のチェイン生成部140は、チェイン生成に際して、チェイン生成状況を示すテーブルである処理テーブル(図12(a)〜(l)参照)を生成する。なお、チェイン生成処理は、トポロジ情報151(図7参照)を参照して行われる。また、チェイン生成処理は、スイッチ700ごとに処理を進めていくため、処理中のスイッチ700をSとして説明する。また、図12(a)〜(l)それぞれは、Sが推移したときの処理テーブルと、チェインとを示す。
【0056】
チェイン生成部140は、チェインの処理を開始すると、まず、チャンクの配信元となるイメージリポジトリ装置200(Rep)のアドレスが先頭となるチェインを生成する(S1)。そして、チェイン生成部140は、トポロジ情報151を参照して、この起動対象サーバに直接的または間接的に接続されるスイッチ700群のスイッチIDをキーとする処理テーブルを生成し、その値である処理フラグをすべて「0」に初期化する(S2、図12の(a)参照)。
【0057】
そして、チェイン生成部140は、リポジトリ(イメージリポジトリ装置200)が収容されているスイッチ700(図7のSW6)をSとして処理を開始する(S3)。
【0058】
チェイン生成部140は、Sのスイッチ700に収容されている1以上の起動対象サーバのアドレスをチェイン末尾(チェインに、直前に追加したサーバ300の次)に追加する(S4)。例えば、図6のSW6に収容される起動対象サーバはSvr7のみなので、チェイン生成部140は、Svr7のアドレスのみをチェインに追加する。そして、チェイン生成部140は、図12の(b)に示すように処理テーブル中のSW6の処理フラグを「1」にする(S5)。
【0059】
その後、トポロジ上にSの親スイッチがあれば(S6のYes)、チェイン生成部140は、このSを親スイッチとして(S7)、S8へ処理を進める。例えば、図6のSW6には親スイッチ(SW3)があるので、チェイン生成部140は、SをSW3に移し、処理をS8へ進める。
【0060】
一方、トポロジ上にSの親スイッチがなければ(S6のNo)、チェイン生成部140は、チェイン生成処理を終了する(S12)。つまり、生成したチェインを、図4のチェイン転送部321に出力する。
【0061】
S7の後、チェイン生成部140は、処理テーブルを参照して、Sに処理フラグが「0」の子スイッチがなければ(S8のNo)、処理テーブル中のSの処理フラグを「1」にして(S11)、S6へ戻る。例えば、Sが、図6のSW3であるとき、図12(c)に示す処理テーブルには処理フラグが「0」であるSW3の子スイッチ(SW6)はないので、チェイン生成部140は、処理テーブル中のSW3の処理フラグを「1」にして(図12の(c)参照)、S6へ戻る。ここで、図6のSW3には親スイッチ(SW0)があるので(S6のYes)、チェイン生成部140は、Sを、親スイッチであるSW0にする(S7)。つまり、チェイン生成部140は、Sに未処理の子スイッチがなければ、Sを、親スイッチに戻す。
【0062】
一方、チェイン生成部140は、処理テーブルを参照し、Sに、処理フラグが「0」の子スイッチがあれば(S8のYes)、つまり、未処理の子スイッチがあれば、チェイン生成部140は、Sを、未処理の子スイッチ、つまり、処理フラグが「0」の子スイッチのいずれかに移す(S9)。そして、S10へ処理を進める。例えば、図12の(d)の処理テーブルに示すように、SW0には処理フラグが「0」の子スイッチが2つ(図6のSW1およびSW2)あるため、チェイン生成部140は、Sを、SW1またはSW2のいずれか(例えば、SW1)にする。
【0063】
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)。
【0064】
図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)参照)。
【0065】
次に、図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)参照)。
【0066】
このSW5には親スイッチ(図6のSW2)があるので(S6のYes)、チェイン生成部140は、Sを、SW2に戻す(S7)。ここで、図12の(k)の処理テーブルに示すように、SW2には処理フラグが「0」の子スイッチはないので(S8のNo)、処理テーブルにおけるSW2の処理フラグを「1」にする(S5)。
【0067】
その後、この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)が最小となる起動対象サーバを選択し、チェインに追加していく。よって、生成されるチェインは、当該起動対象サーバ間で経由するスイッチ数が最小となるように並べたものとすることができる。
【0068】
<イメージリポジトリ装置>
次に、図13を用いて、イメージリポジトリ装置200の動作手順を説明する。イメージリポジトリ装置200の配信要求受付部210は、配信対象のソフトウェアイメージのイメージIDをリモートブート装置100から受け取ると(S21)、イメージ情報管理部220経由でイメージ情報221(図8参照)を取得し(S22)、ソフトウェアイメージのイメージパス(パス)をチャンク分割部242に通知する(S23)。
【0069】
チャンク分割部242は、S23で通知されたイメージパスをもとに、配信対象のソフトウェアイメージ(イメージ)をストレージ230から取得し(S24)、このソフトウェアイメージを、チャンクに分割する(S25)。チャンク分割部242は、分割したチャンクを、イメージリポジトリ装置200のメインメモリ上に展開する。
【0070】
また、イメージリポジトリ装置200の配信要求受付部210は、リモートブート装置100からチェインを受信すると(S26)、受信したチェインをチェイン転送部241へ通知する(S27)。そして、チェイン転送部241は、通知されたチェインを参照し、チェイン先頭のサーバ300のアドレスに対してチェインを転送する(S28)。また、配信要求受付部210は、S26で受信したチェインを、チャンク送信部243に通知する(S29)。チャンク送信部243は、チャンク分割部242によってメインメモリ上に展開されたチャンクを取得し(S30)、取得したチャンクをチェインの先頭のサーバ300に送信する(S31)。
【0071】
また、前記したとおり、イメージリポジトリ装置200は、配信状況受付部244により、チェインの終端のサーバ300からチャンクの配信状況を受信してもよい(S32)。ここでの配信状況は、例えば、終端のサーバ300が所定時間おきに、受信したチャンク数や、ソフトウェアイメージ全体に対する受信したチャンク割合等を通知するものである。
【0072】
<サーバ>
次に、図14および図15を用いて、サーバ300の動作を説明する。まず、図14を用いてチェインの終端のサーバ300以外のサーバ300の動作を説明する。
【0073】
図14に示すように、サーバ300の遠隔管理受付部311は、リモートブート装置100からIPMI等のインタフェースによって遠隔電源ONの指令を受け付けると(S41)、選択的ブート部312にマシンのブートを指示する(S42)。ここで、選択的ブート部312はイメージ転送部320を起動する。
【0074】
チェイン転送部321は、イメージリポジトリ装置200または他のサーバ300からのチェイン(必要であればパラメータ情報)が送信されると(S43)、このチェインを、チェインの次のサーバ300に送信する(S44)。また、チェイン転送部321は、チャンク転送部323にチェインを通知する(S45)。また、チェイン転送部321は、チャンクテーブル(図9参照)を生成する(S46)。
【0075】
チャンク受信部322は、イメージリポジトリ装置200または他のサーバ300からチャンクを受信すると(S47)、受信したチャンクを、チェイン転送部321経由でチャンクテーブル341に登録する(S48)。つまり、チャンク受信部322は、チャンクテーブル341における、受信チャンクのチャンクIDの受信フラグを「1」にする。
【0076】
その後、チャンク転送部323は、チャンクテーブル341を参照して、受信フラグが「1」となっているチャンクを取得し(S49)、チェインにおける次のサーバ300へ送信する(S50)。また、チャンク保存部324は、受信フラグが「1」となっているチャンクを取得し(S51)、イメージ保存部330に保存する(S52)。このようにして、チャンクの送信、保存が完了すると、チャンク転送部323およびチャンク保存部324はそれぞれ、チャンクテーブル341における当該チャンクの送信フラグ、保存フラグを「1」にする。この後、チャンク転送部323は、チャンクテーブル341を参照して、受信、送信およびイメージ保存部330への保存が実行済みである断片を、メインメモリ上から削除する。
【0077】
この後、各サーバ300において、ソフトウェアイメージを構成するすべてのチャンクの受信、送信および保存が完了すると、チェイン転送部321は、完了通知を選択的ブート部312へ出力する(S53)。この完了通知を受けた選択的ブート部312は、ブート対象をイメージ保存部330のソフトウェアイメージ内のシステムに変更して、サーバ300を再起動する(S54)。これにより、選択的ブート部312によってソフトウェアイメージ内のシステムが起動する。
【0078】
このようにサーバ300は、チャンクの受信、送信および保存処理(図14のシーケンス中の破線で囲まれている部分)それぞれを並行に行うので、高速なバケツリレー的配信を実現できる。
【0079】
最後に、図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参照)。
【0080】
チャンク受信部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と同様なので説明を省略する。
【0081】
以上説明したシステムによれば、イメージリポジトリ装置200から配信されたソフトウェアイメージのチャンクを、チェインに従い起動対象サーバ間でバケツリレー式に転送するので、ソフトウェアイメージを迅速に配信できる。また、リモートブート装置100は、チェインを生成するとき、チャンクの配信順序を、起動対象サーバ間で経由するスイッチ数ができるだけ少なくなるような順序とする。よって、ネットワーク内の通信帯域が無駄に占有されるおそれがなくなる。
【0082】
なお、前記した実施の形態において、リモートブート装置100とイメージリポジトリ装置200とは別個の装置として説明したが、これらは同じ装置で実現するようにしてもよい。
【0083】
また、ソフトウェアイメージを分割するときのチャンクサイズは、事前に固定的に与えられたサイズでもよいし、リモートブート装置100からイメージIDと共に動的に通知されたサイズであってもよい。
【0084】
なお、サーバ300のチャンク送信部243は、チャンクを次のサーバ300に送信するとき、次のサーバ300と単一のコネクションを確立して送信してもよいし、複数のコネクションを確立してチャンクを並行に送信してもよい。例えば、N本のコネクションを用いた場合、チャンク送信部243は、各コネクションでそれぞれ総チャンク数の1/Nのチャンクを送信する。このようにすることで、サーバ300間でのチャンクの送信を速やかに行うことができる。
【0085】
また、イメージリポジトリ装置200の配信状況受付部244は、終端のサーバ300から配信状況を受信する代わりに、終端のサーバ300からチャンク自体を受信し、その受信したチャンクをもとに配信状況を計算するようにしてもよい。また、この配信状況受付部244は外部装置からの要求を受け付けて、現在の配信状況を返してもよい。
【0086】
さらに、イメージリポジトリ装置200のチェイン転送部241は、追加対象サーバへのチェイン転送時に、これから送信するソフトウェアイメージの容量や、通信に使うポート番号、コネクション数等のパラメータを送信してもよい。このパラメータの値は、チェイン送信時に動的に決定してもよいし、静的な値を予め定めておいてもよい。
【0087】
また、リモートブート装置100で生成されたチェインは、イメージリポジトリ装置200経由で、チェインに記載された各起動対象サーバ間で転送するものとしたが、これに限定されない。例えば、リモートブート装置100から直接、イメージリポジトリ装置200および起動対象サーバそれぞれへ配信してもよいし、チェインを受信したイメージリポジトリ装置200が、起動対象サーバそれぞれへ配信してもよい。
【符号の説明】
【0088】
100 リモートブート装置
110 ブート要求受付部
120 遠隔電源管理部
130 サーバ情報管理部
131 サーバ情報
140 チェイン生成部
150 トポロジ情報管理部
151 トポロジ情報
160 チェイン送信部
200 イメージリポジトリ装置
210 配信要求受付部
220 イメージ情報管理部
221 イメージ情報
230 ストレージ
240 イメージ配信部
241,321 チェイン転送部
242 チャンク分割部
243 チャンク送信部
244 配信状況受付部
300 サーバ
310 ブート部
311 遠隔管理受付部
312 選択的ブート部
320 イメージ転送部
322 チャンク受信部
323 チャンク転送部
324 チャンク保存部
325 転送情報管理部
330 イメージ保存部
341 チャンクテーブル
400 管理ネットワーク
500 サービスネットワーク
600 端末
700 スイッチ

【特許請求の範囲】
【請求項1】
サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、前記サーバを動作させるためのソフトウェアイメージを、イメージリポジトリ装置に配信させるリモートブート装置が、
前記クラスタへの追加対象サーバの追加台数および前記追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、
前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するステップと、
前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップと、
前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を含む転送指示情報を生成するステップと、
前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するステップとを実行し、
前記イメージリポジトリ装置が、
前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信するステップを実行し、
前記転送指示情報および前記ソフトウェアイメージの断片を受信した追加対象サーバそれぞれが、
前記受信したソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送し、前記自身のサーバのイメージ保存部に保存する処理を、前記ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返すステップと、
前記イメージ保存部に保存されたソフトウェアイメージから前記自身のサーバを起動させるステップとを実行し、
前記リモートブート装置が前記転送指示情報を生成するとき、
前記追加対象サーバ間で転送するときの前記追加対象サーバの順序は、前記トポロジ情報を参照して、前記追加対象サーバ間で経由する前記スイッチの数が最小となるような順序とすることを特徴とするソフトウェアイメージ配信方法。
【請求項2】
前記サーバそれぞれは、
前記受信したソフトウェアイメージの断片と、前記断片ごとに、当該断片の受信、送信および前記イメージ保存部への保存それぞれについて実行済みか否かを示すチャンクテーブルとを記憶するメインメモリを備えており、
前記チャンクテーブルを参照して、受信済みとなっている前記断片について、当該断片の送信または前記イメージ保存部への保存を行うステップと、
前記断片の送信または前記イメージ保存部への保存を行ったとき、前記チャンクテーブルにおける当該断片について送信または前記イメージ保存部への保存を実行済みに書き換えるステップと、
前記チャンクテーブルを参照して、前記受信、送信およびイメージ保存部への保存が実行済みである断片を、前記メインメモリ上から削除するステップとを実行することを特徴とする請求項1に記載のソフトウェアイメージ配信方法。
【請求項3】
前記サーバそれぞれは、
前記転送指示情報において、自身のサーバが、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序が最後になっていると判断したとき、
前記自身のサーバが受信した前記断片を前記イメージリポジトリ装置へ通知することを特徴とする請求項1または請求項2に記載のソフトウェアイメージ配信方法。
【請求項4】
サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、前記サーバを動作させるためのソフトウェアイメージを配信するイメージリポジトリ装置と、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、前記イメージリポジトリ装置に、前記ソフトウェアイメージの配信を指示するリモートブート装置とを備えるソフトウェアイメージ配信システムであって、
前記リモートブート装置は、
前記クラスタへの追加対象サーバの追加台数および前記追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付け、前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するブート要求受付部と、
前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信する遠隔電源管理部と、
前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を、前記追加対象サーバ間で経由する前記スイッチの数を最小にするような順序とした転送指示情報を生成するチェイン生成部と、
前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するチェイン送信部とを備え、
前記イメージリポジトリ装置は、
前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信するイメージ配信部を備え、
前記サーバは、
前記ソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送し、前記自身のサーバのイメージ保存部に保存する処理を、前記ソフトウェアイメージを構成するすべての断片を受信し、転送するまで繰り返すイメージ転送部と、
前記イメージ保存部と、
前記イメージ保存部に保存されたソフトウェアイメージから前記自身のサーバを起動させるブート部とを備えることを特徴とするソフトウェアイメージ配信システム。
【請求項5】
サーバおよび当該サーバ同士を接続するスイッチがツリー構造で接続されるネットワークにおいて、クラスタに追加する前記サーバの遠隔電源オンの指示を行い、イメージリポジトリ装置に、前記サーバを動作させるためのソフトウェアイメージの配信を指示するためのソフトウェアイメージ配信プログラムであって、
コンピュータに、
前記クラスタへの追加対象サーバの追加台数および追加対象サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、
前記入力されたソフトウェアイメージの種別を、前記イメージリポジトリ装置へ送信するステップと、
前記入力された追加指示に基づき、前記サーバそれぞれのIDおよび当該サーバが前記クラスタに追加可能か否かを示したサーバ情報を読み出し、前記読み出したサーバ情報に示されるサーバのうち、追加可能なサーバを前記クラスタへの追加対象サーバとして前記追加指示に示される台数選択し、前記選択した追加対象サーバそれぞれへの遠隔電源オンの指示を、前記管理ネットワークを介して送信するステップと、
前記イメージリポジトリ装置、前記サーバおよび当該サーバを接続するスイッチの接続関係を示したトポロジ情報を参照して、前記ソフトウェアイメージを分割した断片を、前記追加対象サーバ間で転送するときの前記追加対象サーバの順序を含む転送指示情報を生成するステップと、
前記生成した転送指示情報を前記イメージリポジトリ装置へ送信するステップとを実行させ、
前記生成する転送指示情報は、
前記イメージリポジトリ装置に対し、前記送信された種別のソフトウェアイメージを分割し、前記分割したソフトウェアイメージの断片と、前記転送指示情報とを、前記転送指示情報に含まれる転送順序の最初の前記起動対象サーバへ送信し、
前記転送指示情報および前記ソフトウェアイメージの断片を受信した追加対象サーバそれぞれに対し、前記受信したソフトウェアイメージの断片を、前記転送指示情報において自身のサーバの次に前記断片を転送すべき追加対象サーバへ転送するよう指示する情報であり、
前記追加対象サーバ間で転送するときの前記追加対象サーバの順序は、前記トポロジ情報を参照して、前記追加対象サーバ間で経由する前記スイッチの数が最小となるような順序であることを特徴とするソフトウェアイメージ配信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−238095(P2012−238095A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−105303(P2011−105303)
【出願日】平成23年5月10日(2011.5.10)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】