(57)【要約】【課題】同一のブートイメージファイルを複数の配信先サーバに配信するときの配信時間を短くする。【解決手段】配信元サーバ１が、配信要求を受け付けたブートイメージファイルを複数のパーツに分割する分割ステップと、これらの複数パーツのそれぞれを、所定サイズのチャンクに分割して、配信元サーバ１から配信先サーバ２のうちの少なくとも１台に再配布パーツとして並列配信する第一の配信ステップと、配信先サーバ２間でそれぞれに配信された再配布パーツをチャンク単位で並列に送受信し合う第二の配信ステップと、配信先サーバ２のそれぞれが、受信した全ての再配布パーツを結合して、元のブートイメージファイルを復元する復元ステップと、を含み、前記第二の配信ステップにおけるチャンクの送受信は、前記第一の配信ステップにおける当該チャンクの次のチャンクの並列配信と並列に実行される。【選択図】図１
2014164556.tif 000002
【特許請求の範囲】
【請求項１】
同一のブートイメージファイルを複数の配信先サーバに配信するブートイメージ配信方法であって、
配信元サーバが、前記ブートイメージファイルの配信要求を受け付けて、当該ブートイメージファイルを複数のパーツに分割する分割ステップと、
前記複数パーツのそれぞれを、所定サイズのチャンクに分割して、前記配信元サーバから前記配信先サーバのうちの少なくとも１台に再配布パーツとして並列配信する第一の配信ステップと、
前記配信先サーバのそれぞれが、自身に配信された前記再配布パーツを前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信するとともに、自身に配信された前記再配布パーツ以外の残パーツを前記配信先サーバ毎に予め定められた他の配信先サーバから前記チャンク単位で並列受信する第二の配信ステップと、
前記配信先サーバのそれぞれが、前記第一の配信ステップで受信した前記再配布パーツと前記第二の配信ステップで受信した前記残パーツとを結合して、前記ブートイメージファイルを復元する復元ステップと、を含み、
前記第二の配信ステップにおける前記チャンクの並列送信及び並列受信は、前記第一の配信ステップにおける当該チャンクの次のチャンクの並列配信と並列に実行される
ことを特徴とするブートイメージ配信方法。
【請求項２】
請求項１に記載のブートイメージ配信方法において、
前記分割ステップにて前記複数パーツに分割するときの分割数は、前記同一のブートイメージファイルを配信すべき前記配信先サーバの数とそれらの配信先サーバ間で設定可能な配信先サーバ当たりのリンク数とをパラメータとして分割数を決定するために参照される所定のテーブルを参照して決定される
ことを特徴とするブートイメージ配信方法。
【請求項３】
請求項１または請求項２に記載のブートイメージ配信方法において、
前記ブートイメージファイルの配信対象外の配信先サーバのなかの任意の台数を、当該ブートイメージファイルを配信すべき配信先サーバと見做して、当該配信対象外の配信先サーバに前記第一の配信ステップと、前記第二の配信ステップにおける前記再配布パーツの並列送信とを実行させる
ことを特徴とするブートイメージ配信方法。
【請求項４】
配信元サーバが、同一のブートイメージファイルを複数の配信先サーバに配信するブートイメージ配信システムであって、
前記配信元サーバは、
前記ブートイメージファイルの配信要求を受け付けるブートイメージ受付部と、
当該ブートイメージファイルを複数のパーツに分割するパーツ分割部と、
前記複数パーツのそれぞれを、所定サイズのチャンクに分割して、前記配信先サーバのうちの少なくとも１台に再配布パーツとして並列配信する再配布パーツ配信部と、を備え、
前記配信先サーバのそれぞれは、
自身に配信された前記再配布パーツを前記チャンク単位で受信する再配布パーツ受信部と、
受信した前記再配布パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信する再配布パーツ送信部と、
自身に配信された前記再配布パーツ以外の残パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバから前記チャンク単位で並列受信する残パーツ取得部と、
前記再配布パーツ受信部が受信した前記再配布パーツと、前記残パーツ取得部が受信した前記残パーツとを結合して、前記ブートイメージファイルを復元するブートイメージ復元部と、を備え、
前記再配布パーツ送信部における前記チャンクの並列送信及び前記残パーツ取得部における前記チャンクの並列受信と、前記再配布パーツ受信部における当該チャンクの次のチャンクの受信とが、並列に実行される
ことを特徴とするブートイメージ配信システム。
【請求項５】
請求項４に記載のブートイメージ配信システムにおいて、
前記配信元サーバは、
前記パーツ分割部が、前記同一のブートイメージファイルを配信すべき前記配信先サーバの数と、それらの配信先サーバ間で設定可能な配信先サーバ当たりのリンク数とをパラメータとして、前記複数パーツに分割するときの分割数を決定するために参照される所定のテーブルを備える
ことを特徴とするブートイメージ配信システム。
【請求項６】
請求項４または請求項５に記載のブートイメージ配信システムにおいて、
前記配信元サーバは、
前記ブートイメージファイルの配信対象外の配信先サーバのなかの任意の台数を、当該ブートイメージファイルを配信すべき配信先サーバと見做して、前記再配布パーツの並列送信を実行し、
当該配信対象外の配信先サーバのそれぞれは、
前記再配布パーツ受信部が、自身に配信された前記再配布パーツを前記チャンク単位で受信し、
前記再配布パーツ送信部が、受信した前記再配布パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信する
ことを特徴とするブートイメージ配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムを構成する各サーバなどへ、同一のブートイメージを配信するための技術に関する。
【背景技術】
【０００２】
スケールアウト型の大規模分散処理においては、複数拠点に跨って拠点横断でのクラスタリングが行われる。その際、クラスタを構成する各サーバには共通のＯＳ（Operating System）やミドルウェア、アプリケーションプログラムなどを含むブートイメージが必要となる。拠点間ネットワークの帯域を有効に活用する観点からは、サーバ共通のブートイメージは拠点毎の管理サーバに配信しておき、各サーバが起動時に各拠点の管理サーバからブートイメージを取得するようにすべきである。そのために、保守者はクラスタを構成するサーバが設置される全拠点に予めブートイメージを配信しておく必要がある。
【０００３】
ブートイメージの配信に係る従来技術として、特許文献１には、多数のサーバにブートイメージを配信する際に、ファイルを所定サイズのチャンクに分割してサーバ間でパイプライン式に配信する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３８０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、前記の従来技術を、複数の拠点に設置された管理サーバへのブートイメージ配信に適用することを想定した場合、拠点間が全て直列に接続されることとなる。その結果、拠点間のルーティングを行うルータ間の特定のリンクの帯域だけが占有され、他のルータ間リンクを有効活用することができないという問題があった。
【０００６】
本発明は、前記の課題を解決するためになされたものであり、拠点間を接続するリンクを効率的に活用して、同一のブートイメージを複数の配信先サーバに配信するときの配信時間を短くすることを目的とする。
【課題を解決するための手段】
【０００７】
前記の目的を達成するために、本発明は、同一のブートイメージファイルを複数の配信先サーバに配信するブートイメージ配信方法であって、配信元サーバが、前記ブートイメージファイルの配信要求を受け付けて、当該ブートイメージファイルを複数のパーツに分割する分割ステップと、前記複数パーツのそれぞれを、所定サイズのチャンクに分割して、前記配信元サーバから前記配信先サーバのうちの少なくとも１台に再配布パーツとして並列配信する第一の配信ステップと、前記配信先サーバのそれぞれが、自身に配信された前記再配布パーツを前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信するとともに、自身に配信された前記再配布パーツ以外の残パーツを前記配信先サーバ毎に予め定められた他の配信先サーバから前記チャンク単位で並列受信する第二の配信ステップと、前記配信先サーバのそれぞれが、前記第一の配信ステップで受信した前記再配布パーツと前記第二の配信ステップで受信した前記残パーツとを結合して、前記ブートイメージファイルを復元する復元ステップと、を含み、前記第二の配信ステップにおける前記チャンクの並列送信及び並列受信は、前記第一の配信ステップにおける当該チャンクの次のチャンクの並列配信と並列に実行されるものとした。
【０００８】
こうすることにより、分割された各パーツが配信先サーバ間でそれぞれ並列に配信されるので、ブートイメージファイルの配信時間を短くすることができる。
【０００９】
また、本発明は、前記のブートイメージ配信方法において、前記分割ステップにて前記複数パーツに分割するときの分割数は、前記同一のブートイメージファイルを配信すべき前記配信先サーバの数とそれらの配信先サーバ間で設定可能な配信先サーバ当たりのリンク数とをパラメータとして分割数を決定するために参照される所定のテーブルを参照して決定されるものとした。
【００１０】
こうすることにより、同一のブートイメージファイルを配信すべき配信先サーバの数とそれらの配信先サーバ間で設定可能なリンク数とに対応する最適な分割数を自動で決定することができる。
【００１１】
また、本発明は、前記のブートイメージ配信方法において、前記ブートイメージファイルの配信対象外の配信先サーバのなかの任意の台数を、当該ブートイメージファイルを配信すべき配信先サーバと見做して、当該配信対象外の配信先サーバに前記第一の配信ステップと、前記第二の配信ステップにおける前記再配布パーツの並列送信とを実行させるものとした。
【００１２】
こうすることにより、配信対象外の配信先サーバをも含めて再配布パーツの並列配信を行うので、再配布パーツの並列配信の並列度を高めることが可能となり、ブートイメージファイルの配信時間をさらに短くできる可能性が高くなる。
【００１３】
また、本発明は、配信元サーバが、同一のブートイメージファイルを複数の配信先サーバに配信するブートイメージ配信システムであって、前記配信元サーバは、前記ブートイメージファイルの配信要求を受け付けるブートイメージ受付部と、当該ブートイメージファイルを複数のパーツに分割するパーツ分割部と、前記複数パーツのそれぞれを、所定サイズのチャンクに分割して、前記配信先サーバのうちの少なくとも１台に再配布パーツとして並列配信する再配布パーツ配信部と、を備え、前記配信先サーバのそれぞれは、自身に配信された前記再配布パーツを前記チャンク単位で受信する再配布パーツ受信部と、受信した前記再配布パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信する再配布パーツ送信部と、自身に配信された前記再配布パーツ以外の残パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバから前記チャンク単位で並列受信する残パーツ取得部と、前記再配布パーツ受信部が受信した前記再配布パーツと、前記残パーツ取得部が受信した前記残パーツとを結合して、前記ブートイメージファイルを復元するブートイメージ復元部と、を備え、前記再配布パーツ送信部における前記チャンクの並列送信及び前記残パーツ取得部における前記チャンクの並列受信と、前記再配布パーツ受信部における当該チャンクの次のチャンクの受信とが、並列に実行されるものとした。
【００１４】
こうすることにより、分割された各パーツが配信先サーバ間でそれぞれ並列に配信されるので、ブートイメージファイルの配信時間を短くすることができる。
【００１５】
また、本発明は、前記のブートイメージ配信システムにおいて、前記配信元サーバは、前記パーツ分割部が、前記同一のブートイメージファイルを配信すべき前記配信先サーバの数と、それらの配信先サーバ間で設定可能な配信先サーバ当たりのリンク数とをパラメータとして、前記複数パーツに分割するときの分割数を決定するために参照される所定のテーブルを備えるものとした。
【００１６】
こうすることにより、同一のブートイメージファイルを配信すべき配信先サーバの数とそれらの配信先サーバ間で設定可能なリンク数とに対応する最適な分割数を自動で決定することができる。
【００１７】
また、本発明は、前記のブートイメージ配信システムにおいて、前記配信元サーバは、前記ブートイメージファイルの配信対象外の配信先サーバのなかの任意の台数を、当該ブートイメージファイルを配信すべき配信先サーバと見做して、前記再配布パーツの並列配信を実行し、当該配信対象外の配信先サーバのそれぞれは、前記再配布パーツ受信部が、自身に配信された前記再配布パーツを前記チャンク単位で受信し、前記再配布パーツ送信部が、受信した前記再配布パーツを、前記配信先サーバ毎に予め定められた他の配信先サーバに前記チャンク単位で並列送信するものとした。
【００１８】
こうすることにより、配信対象外の配信先サーバをも含めて再配布パーツの並列配信を行うので、再配布パーツの並列配信の並列度を高めることが可能となり、ブートイメージファイルの配信時間をさらに短くできる可能性が高くなる。
【発明の効果】
【００１９】
本発明によれば、同一のブートイメージファイルを複数の配信先サーバに配信するときの配信時間を短くすることができる。
【図面の簡単な説明】
【００２０】
【図１】ブートイメージ配信システムの構成例を示す図である。
【図２】配信元サーバの構成例を示す機能ブロック図である。
【図３】配信先サーバの構成例を示す機能ブロック図である。
【図４】配信元サーバ上のブートイメージ情報の構成及びデータ例を示す図である。
【図５】配信元サーバ上のパーツ情報の構成及びデータ例を示す図である。
【図６】配信元サーバ上の配信先サーバ情報の構成及びデータ例を示す図である。
【図７】配信先サーバ上のブートイメージ情報の構成及びデータ例を示す図である。
【図８】配信先サーバ上のパーツ情報の構成及びデータ例を示す図である。
【図９】配信先サーバ上の取得先サーバ情報の構成及びデータ例を示す図である。
【図１０】配信元サーバが実行するブートイメージ配信処理の例を示すフローチャートである。
【図１１】配信先サーバが実行するブートイメージ送受信処理の例を示すフローチャートである。
【図１２】４台の配信先サーバに２パーツに分割されたブートイメージファイルを配信する場合の動作例を示すシーケンスチャートである。
【図１３】４台の配信先サーバに４パーツに分割されたブートイメージファイルを配信する場合の動作例を示すシーケンスチャートである。
【図１４】５台の配信先サーバを３台と２台との２つのグループに分けてブートイメージファイルを配信する場合の動作例を示すシーケンスチャートである。
【図１５】６台の配信先サーバに３パーツに分割されたブートイメージファイルを配信する場合の動作例を示すシーケンスチャートである。
【図１６】配信先の拠点数Ｍと拠点間リンク数Ｌとに対応する最適な分割数Ｄと配信時間比率との関係を一覧にして示した図である。
【図１７】分割数決定テーブルの構成及びデータ例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態（以下、「本実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００２２】
図１は、本実施形態に係るブートイメージ配信システムの構成例を示す図である。図１に示すように、ブートイメージ配信システム１００は、ブートイメージの配信元となる配信元サーバ１と、Ｎ箇所の各拠点に１台ずつ設置される複数の配信先サーバ２とが、拠点間ネットワーク４によって接続されて構成されている。また、配信元サーバ１には配信対象となるブートイメージを生成して配信元サーバ１に登録したり、配信先を指定したりするための保守端末３が接続されている。図示は省略しているが、各拠点にはユーザ端末に対して所定のサービスを提供するサーバ群が設置されており、各拠点の配信先サーバ２からこれらのサーバ群に必要なブートイメージを配信することで、クラスタサーバシステムとしての動作を制御するようになっている。
【００２３】
図２は、配信元サーバの構成例を示す機能ブロック図である。図２に示すように、配信元サーバ１は、ブートイメージ受付部１１、パーツ分割部１２、再配布パーツ割当部１３、再配布パーツ配信部１４、及び記憶部１５を備えている。記憶部１５には、ブートイメージ情報１５１、複数のブートイメージファイル１５２、パーツ情報１５３、配信先サーバ情報１５４、及び分割数決定テーブル１５５などが記憶される。
【００２４】
配信元サーバ１は、例えばコンピュータによって構成され、不図示のＣＰＵ（Central Processing Unit）が記憶部１５に記憶された所定のブートイメージ配信プログラムを実行することによって、これらの各機能部が具現化される。
【００２５】
ブートイメージ受付部１１は、保守端末３からブートイメージの配信要求を受け付ける。このとき、保守端末３からは、ブートイメージの本体とともに、当該ブートイメージの識別情報であるイメージＩＤ（Identification）や適用機種などの情報と、当該ブートイメージの配信先拠点または配信先サーバを指定する情報が送信されるものとする。
【００２６】
ブートイメージ受付部１１は、保守端末３から受信したブートイメージの本体をブートイメージファイル１５２として記憶部１５に記憶させ、保守端末３から同時に受信した当該ブートイメージに関する情報とブートイメージファイル１５２の記憶位置を示すファイルパスとを関連付けて、ブートイメージ情報１５１（図４参照）として記憶部１５に記憶させる。
【００２７】
パーツ分割部１２は、配信対象のブートイメージファイル１５２を複数のパーツに分割するための分割数を決定し、複数パーツへの分割を行う。複数パーツへの分割方法は任意であるが、各パーツのサイズはなるべく偏りがないことが好ましい。そのためには、ブートイメージファイル１５２のサイズを分割数で割ることでパーツのサイズを求め、求めたサイズで先頭から順に各パーツに分割するようにしてもよい。あるいは、パーツへの分割位置を後記するチャンク間の境界とし、端数となるチャンク及び端数のデータを最後のパーツに含めることで、各パーツを構成するチャンク数を求め、求めたチャンク数を用いて各パーツに分割するようにしてもよい。パーツ分割部１２は、分割したそれぞれのパーツに関する情報と当該パーツのデータの記憶位置を示す送信データアドレスとを関連付けて、パーツ情報１５３（図５参照）として記憶部２６に記憶させる。複数パーツへの分割数は、配信先の拠点数Ｍ（２≦Ｍ≦Ｎ）と拠点間に設定可能なリンク数Ｌとをパラメータとして最適な分割数Ｄを規定する分割数決定テーブル１５５（図１７参照、本発明の分割数を決定するために参照される所定のテーブル）を参照して決定される。
【００２８】
再配布パーツ割当部１３は、分割されたそれぞれのパーツについて、それを再配布パーツとして他の配信先サーバ２に配信する配信先サーバ２を少なくとも１台ずつ割り当てる。割当て方法は、Ｍ台の配信先サーバ２を任意の基準で順序付けしておき、例えば先頭から順にそれぞれ異なるＤ個の再配布パーツの順列を繰り返して割り当てるものとすればよい。
【００２９】
再配布パーツ配信部１４は、各配信先サーバ２に割り当てられた再配布パーツを所定サイズ（例えば６４Ｋバイト）のチャンクに分割して、全配信先サーバ２に並列配信を行う。このとき、再配布パーツ配信部１４は、各配信先サーバ２に対し、ブートイメージ情報１５１（図４参照）に登録された当該ブートイメージのイメージＩＤ、ファイルサイズ及び適用機種をも合わせて通知する。さらに、再配信パーツ以外の残りのパーツである残パーツの取得先を各配信先サーバ２に対して通知するものとしてもよい。
【００３０】
残パーツの取得先の割当て方法は任意であるが、例えば、各配信先サーバ２は、所定の基準で順序付けされたＭ台の配信先サーバ２のなかの自身よりも上位であって最も順位が近いサーバをそれぞれの残パーツの取得先とすればよい。あるいは、配信先の拠点数Ｍが分割数Ｄの倍数である場合には、Ｍ台のサーバをＤ台毎にグループ分けし、グループ内の他の配信先サーバ２をそれぞれの残パーツの取得先としてもよい。
【００３１】
さらに、配信先の拠点数Ｍが分割数Ｄの倍数でない場合において、当該ブートイメージの配信先ではない他の配信先サーバ２を再配布パーツの配信先に加えることで配信先サーバ数が分割数Ｄの倍数となるときは、再配布パーツの配信を補助する他の配信先サーバ２を再配布パーツの配信先に加えてもよい。それにより、全ての再配布パーツを配信先サーバ２間で再配信するときの並列度を最大とすることができる。
【００３２】
図３は、配信先サーバの構成例を示す機能ブロック図である。図３に示すように、配信先サーバ２は、再配布パーツ受信部２１、再配布パーツ送信部２２、残パーツ取得部２３、ブートイメージ復元部２４、ブートイメージ配信部２５、及び記憶部２６を備えている。記憶部２６には、ブートイメージ情報２６１、複数のブートイメージファイル２６２、パーツ情報２６３、取得先サーバ情報２６４、及び複数のパーツ２６５などが記憶される。
【００３３】
配信先サーバ２は、例えばコンピュータによって構成され、不図示のＣＰＵが記憶部２６に記憶された所定のブートイメージ送受信プログラムを実行することによって、これらの各機能部が具現化される。
【００３４】
再配布パーツ受信部２１は、配信元サーバ１からチャンク単位で受信した再配布パーツのデータを、パーツ２６５として順次記憶部２６に記憶させ、その再配布パーツに関する情報とデータの記憶位置を示す受信データアドレスとを関連付けて、パーツ情報２６３として記憶部２６に記憶させる。
【００３５】
また、再配布パーツ受信部２１は、配信元サーバ１から残りのパーツを取得すべき他の配信先サーバ２を指定する情報を受信した場合は、当該配信先サーバ２を指定する情報をパーツ情報２６３の取得先サーバＩＤ（図８参照）に登録する。他方、そのような情報を配信元サーバ１から受信しない場合は、再配布パーツ受信部２１が所定のルールによって取得先とする配信先サーバ２を決定し、当該配信先サーバ２の情報をパーツ情報２６３の取得先サーバＩＤに登録する。
【００３６】
再配布パーツ送信部２２は、他の配信先サーバ２からの再配布パーツの取得要求に応じて、受信済みの再配布パーツのデータをパーツ２６５から読み出して当該配信先サーバ２にチャンク単位で送信する。複数の配信先サーバ２から同時に再配布パーツの取得要求を受けた場合には、それらの送信は全て並列に実行される。
【００３７】
残パーツ取得部２３は、配信元サーバ１から自身に配信されなかった残りのパーツである残パーツのそれぞれを、パーツ情報２６３の取得先サーバＩＤ（図８参照）によって特定される他の配信先サーバ２から取得する。具体的には、当該他の配信先サーバ２に対して再配布パーツの取得要求を送信し、その応答として送信される再配布パーツのデータをチャンク単位で受信して、パーツ２６５として順次記憶部２６に記憶させ、その再配布パーツに関する情報とデータの記憶位置を示す受信データアドレスとを関連付けて、パーツ情報２６３として記憶部２６に記憶させる。これら残パーツの取得は、パーツ毎に全て並列に実行される。
【００３８】
ブートイメージ復元部２４は、パーツ２６５のデータが全て揃ったのちに、それらのパーツ２６５を結合して元のブートイメージファイルを復元し、ブートイメージファイル２６２として記憶部２６に記憶させる。また、当該ブートイメージに関する情報とブートイメージファイル２６２の記憶位置を示すファイルパスとを関連付けて、ブートイメージ情報２６１（図７参照）として記憶部２６に記憶させる。
【００３９】
ブートイメージ配信部２５は、ユーザ端末に対して所定のサービスを提供する配下のサーバ群からブートイメージの配信要求を受け付け、それらのサーバ群のそれぞれに対応するブートイメージのデータをブートイメージファイル２６２から読み出して、当該サーバに送信する。
【００４０】
図４は、配信元サーバ１上のブートイメージ情報の構成及びデータ例を示す図である。図４に示すように、配信元サーバ１上のブートイメージ情報１５１には、イメージＩＤ、ファイルパス、ファイルサイズ、及び適用機種からなるレコードが、それぞれのブートイメージ毎に登録される。
【００４１】
イメージＩＤとは、それぞれのブートイメージを一意に識別するために付される識別情報である。ファイルパスとは、該当するブートイメージファイル１５２が登録されている位置を示す情報である。ファイルサイズとは、該当するブートイメージファイル１５２のファイルサイズである。適用機種とは、該当するブートイメージファイル１５２の配信対象となるサーバの機種を示す情報である。
【００４２】
図５は、配信元サーバ１上のパーツ情報の構成及びデータ例を示す図である。図５に示すように、配信元サーバ１上のパーツ情報１５３には、パーツ番号、送信データアドレス、及びデータサイズからなるレコードが、それぞれのパーツ毎に登録される。
【００４３】
パーツ番号とは、それぞれのパーツを一意に識別するために付される一連番号である。送信データアドレスとは、該当するパーツの先頭データの位置情報である。データサイズとは、該当するパーツのデータサイズである。
【００４４】
図６は、配信元サーバ１上の配信先サーバ情報の構成及びデータ例を示す図である。図６に示すように、配信元サーバ１上の配信先サーバ情報１５４には、サーバＩＤ、ＩＰアドレス、再配布パーツ番号、チャンク数、及び送信チャンク番号からなるレコードが、それぞれの配信先サーバ毎に登録される。
【００４５】
サーバＩＤとは、それぞれの配信先サーバ２を一意に識別するために付される識別情報である。ＩＰ（Internet Protocol）アドレスとは、該当する配信先サーバ２にデータを送信するために用いるアドレス情報である。再配布パーツ番号とは、該当する配信先サーバに割り当てられた再配布パーツの識別番号である。チャンク数とは、当該再配布パーツのデータを構成するチャンクの数である。送信チャンク番号とは、該当する配信先サーバ２に当該再配布パーツを送信するときの次のチャンク番号であり、最初は「１」に設定される。この送信チャンク番号の値は、１つのチャンクの送信が終了する毎に１ずつ増えていき、全てのチャンクの送信が完了したときには該当するチャンク数の値と等しくなる。
【００４６】
図７は、配信先サーバ２上のブートイメージ情報の構成及びデータ例を示す図である。図７の例は図１５にて後記する配信先サーバ［ＳＶＲ２］２−２についてのデータ例である。このブートイメージ情報２６１には、当該配信先サーバ［ＳＶＲ２］２−２からブートイメージが配信される配下のサーバ群に配信すべき全てのブートイメージ毎に、イメージＩＤ、ファイルパス、ファイルサイズ、適用機種からなるレコードが登録される。
【００４７】
イメージＩＤとは、それぞれのブートイメージを一意に識別するために付される識別情報である。ファイルパスとは、該当するブートイメージファイル２６２が登録されている位置を示す情報である。ファイルサイズとは、該当するブートイメージファイル２６２のファイルサイズである。適用機種とは、該当するブートイメージファイル２６２の配信対象となるサーバの機種を示す情報である。
【００４８】
図８は、配信先サーバ２上のパーツ情報の構成及びデータ例を示す図である。図８の例は図１５にて後記する配信先サーバ［ＳＶＲ２］２−２についてのデータ例である。このパーツ情報２６３には、配信中のブートイメージを構成する全てのパーツ毎に、パーツ番号、取得先サーバＩＤ、ＩＰアドレス、データサイズ、及び受信データアドレスからなるレコードが登録される。
【００４９】
パーツ番号とは、それぞれのパーツを一意に識別するために付される一連番号である。取得先サーバＩＤとは、該当するパーツの取得先となる他の配信先サーバを特定するための識別情報である。ＩＰアドレスとは、該当する配信先サーバ２にデータを送信するために用いるアドレス情報である。データサイズとは、該当するパーツのデータサイズである。受信データアドレスとは、該当するパーツのデータを格納したパーツ２６５の先頭データの位置情報である。
【００５０】
なお、当該配信先サーバ［ＳＶＲ２］２−２に割り当てられた再配布パーツであるＰ２に該当するレコードの取得先サーバＩＤとＩＰアドレスとは、いずれも「−」となっている。また、括弧付きの受信データアドレス「ｒｄａ１」及び「ｒｄａ３」は、他の配信先サーバ２から該当するパーツのデータの受信を開始する時点で、記憶部２６に必要なサイズの空きエリアが確保され、動的にアドレスが決定される。
【００５１】
図９は、配信先サーバ２上の取得先サーバ情報の構成及びデータ例を示す図である。図９の例は図１５にて後記する配信先サーバ［ＳＶＲ２］２−２についてのデータ例である。この取得先サーバ情報２６４には、配信中のブートイメージを構成する全てのパーツの取得先及び再配布先毎に、サーバＩＤ、ＩＰアドレス、パーツ番号、送受信別、チャンク数、及び送受信チャンク番号からなるレコードが登録される。
【００５２】
サーバＩＤとは、該当するパーツの取得先または再配布先となるサーバを特定するための識別情報である。ＩＰアドレスとは、該当するサーバとの間でデータを送受信するために用いるアドレス情報である。パーツ番号とは、該当するサーバから取得するかまたは該当するサーバが再配布するパーツの識別番号である。送受信別とは、該当するパーツのデータを送信するか受信するかの別を表すものであり、配信元サーバ１から再配布パーツを配信される場合と、他のサーバから残りのパーツを取得する場合とには「受信」となり、他のサーバからの取得要求に応じて自身の再配布パーツを送信する場合には「送信」となる。チャンク数とは、該当するパーツのデータを構成するチャンクの数である。送受信チャンク番号とは、該当する取得先からパーツを受信する、もしくは該当する再配布先に自身の再配布パーツを送信するときの次のチャンク番号であり、最初は「１」に設定される。この送受信チャンク番号の値は、１つのチャンクの送受信が終了する毎に１ずつ増えていき、全てのチャンクの送信または受信が完了したときには該当するチャンク数の値と等しくなる。
【００５３】
図１０は、配信元サーバ１が実行するブートイメージ配信処理の例を示すフローチャートである。配信元サーバ１が起動されると、ステップＳ１１にて、ブートイメージ受付部１１は、保守端末３から配信対象のブートイメージを受け付ける。このとき、保守端末３から配信対象とすべき拠点群または配信先サーバ群の指定も同時に行われるものとする。ブートイメージ受付部１１は、保守端末３から受信したブートイメージをブートイメージファイル１５２として記憶部１５に追加して記憶させ、当該ブートイメージに関する情報をブートイメージ情報１５１（図４参照）に追加登録する。
【００５４】
次に、ステップＳ１２にて、パーツ分割部１２は、受け付けたブートイメージを同一サイズの複数のパーツに分割する（本発明の分割ステップに相当）。このとき、分割数Ｄは、配信対象となる配信先サーバ２の台数（配信先の拠点数）Ｍと、それらの配信先サーバ２間で設定可能な最大のリンク数（拠点間リンク数）Ｌとをパラメータとして分割数決定テーブル１５５（図１７参照）を参照することによって決定される。
【００５５】
図１７に例示した分割数決定テーブル１５５は、縦方向を配信先の拠点数Ｍとし、横方向を拠点間リンク数Ｌとして、両者の交点に決定する分割数Ｄを記入した２次元配列である。Ｍ＝５の場合を例に説明すると、Ｌ＝２のときは、適用対象外（「×」印）、Ｌ＝３、Ｌ＝４またはＬ＝５のときは、Ｄ＝２、Ｌ＝６のときは、Ｄ＝３、Ｌ＝７のときは、Ｄ＝４、Ｌ＝８またはＬ＝９のときはＤ＝５となっている。
【００５６】
パーツ分割部１２は、ブートイメージファイル１５２のファイルサイズを決定した分割数Ｄで割ることで、パーツのデータサイズを算出し、ブートイメージファイル１５２における各パーツのパーツ番号と先頭データアドレスである送信データアドレスとデータサイズとからなるレコードをパーツ情報１５３に登録する。
【００５７】
図１０に戻り、次に、ステップＳ１３にて、再配布パーツ割当部１３は、各配信先サーバ２に再配布パーツとして配信するパーツを割り当てる。割当ては、配信先の拠点数Ｍと分割数Ｄとに基づいて、前記した方法によって行われる。
【００５８】
次に、ステップＳ１４にて、再配布パーツ配信部１４は、各配信先サーバ２に割り当てられた再配布パーツをチャンク単位で並列に送信する（本発明の第一の配信ステップに相当）。そして、ステップＳ１５にて、再配布パーツ配信部１４は、パーツを構成するデータの全チャンクを送信したか否かを判定し、全チャンクを送信していなければ（ステップＳ１５でＮｏ）ステップＳ１４に処理を戻して次のチャンクを送信し、全チャンクを送信した場合は（ステップＳ１５でＹｅｓ）処理を終了する。
【００５９】
図１１は、配信先サーバ２が実行するブートイメージ送受信処理の例を示すフローチャートである。配信先サーバ２が起動されると、ステップＳ２１にて、再配布パーツ受信部２１は、配信元サーバ１から送信される再配布パーツを受信する（本発明の第一の配信ステップに相当）。この再配布パーツの受信はチャンク単位で行われ、再配布パーツ受信部２１は、受信した再配布パーツのデータをパーツ２６５に格納するとともに、パーツ情報２６３（図８参照）に当該パーツに対応するレコードを追加登録する。また、再配布パーツ受信部２１は、配信元サーバ１から通知されるブートイメージのイメージＩＤ、ファイルサイズ及び適用機種を示すレコード（ファイルパスは未定）をブートイメージ情報２６１に追加登録する。さらに、残パーツの取得先が配信元サーバ１から通知された場合には、当該取得先の情報をパーツ情報２６３（図８参照）に登録する。
【００６０】
次に、ステップＳ２２にて、再配布パーツ送信部２２は、ステップＳ２１にて、他の配信先サーバ２からの取得要求に応じて受信済みの再配布パーツのチャンクを、当該他の配信先サーバ２に送信する（本発明の第二の配信ステップに相当）。このとき、再配布パーツ送信部２２は、取得先サーバ情報２６４（図９参照）に要求元の他の配信先サーバ２に対応するレコードを追加登録する。
【００６１】
次に、ステップＳ２３にて、残パーツ取得部２３は、ステップＳ２１では受信されなかった他のパーツ（残パーツ）の各々を再配布パーツとして受信している他の各配信先サーバ２に対して受信済みチャンクの取得要求を送信し、当該残パーツの受信済みチャンクを受信する（本発明の第二の配信ステップに相当）。それぞれの残パーツをどの配信先サーバ２から受信するかは、パーツ情報２６３（図８参照）を参照して決定される。このとき、残パーツ取得部２３は、取得先サーバ情報２６４（図９参照）に取得先の他の配信先サーバ２に対応するレコードを追加登録する。
【００６２】
次に、ステップＳ２４では、ブートイメージ復元部２４は、各パーツを構成する全チャンクを取得したか否かを判定し、まだ全チャンクを取得していなければ（ステップＳ２４でＮｏ）ステップＳ２１に処理を戻して、次のチャンクについて前記の処理を繰り返す。一方、全チャンクを取得していれば（ステップＳ２４でＹｅｓ）ステップＳ２５に処理を進める。
【００６３】
ステップＳ２５では、ブートイメージ復元部２４は、取得した全チャンクからなるそれぞれのパーツを結合することによって、元のブートイメージファイルを復元する（本発明の復元ステップに相当）。ブートイメージ復元部２４は、復元したブートイメージファイルをブートイメージファイル２６２として記憶部２６に記憶させるとともに、ブートイメージ情報２６１（図７参照）に当該ブートイメージファイル２６２を格納したファイルパスを追加登録したのち、処理を終了する。
【００６４】
なお、図１１のステップＳ２１〜ステップＳ２３は、それぞれを並列に実行するものとしてもよい。その際には、ステップＳ２２及びＳ２３にてそれぞれ並列に送受信するチャンクの次のチャンクが、ステップＳ２１にてそれらと並列に受信されることとなる。
【００６５】
図１２は、４台の配信先サーバ２に２パーツに分割されたブートイメージを配信する場合の動作例を示すシーケンスチャートである。図において、Ｐ１及びＰ２はそれぞれパーツ１及びパーツ２を表し、Ｃ１及びＣ２はそれぞれチャンク１及びチャンク２を表す。したがって、例えば「Ｐ１（Ｃ１）送信」とは、パーツ１の１つ目のチャンク（チャンク１）を送信することを表している。
【００６６】
この場合、それぞれのチャンクについて、まず始めに、配信元サーバ１（サーバＩＤ＝ＭＡＳＴＥＲ）（以降、配信元サーバ［ＭＡＳＴＥＲ］１と表記）から配信先サーバ２（サーバＩＤ＝ＳＶＲ１）（以降、配信先サーバ［ＳＶＲ１］２−１と表記、他の配信先サーバについても同様）と配信先サーバ［ＳＶＲ３］２−３とへのＰ１の送信と、配信先サーバ［ＳＶＲ２］２−２と［ＳＶＲ４］２−４とへのＰ２の送信が並列に実行される。続いて、それぞれの配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ４］２−４は、自身に送信されなかったもう１つのパーツのチャンクを、例えば自身の左隣の配信先サーバ２から取得する（ただし、配信先サーバ［ＳＶＲ１］２−１の左隣の配信先サーバは配信先サーバ［ＳＶＲ４］２−４であるものとする）。
【００６７】
次のチャンクについて実行される、配信元サーバ［ＭＡＳＴＥＲ］１から各配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ４］２−４へのパーツの配信動作と、各配信先サーバ［ＳＶＲ２］２−１〜［ＳＶＲ４］２−４における他のパーツの１つ前のチャンクの取得動作とは、全て並列に実行される。
【００６８】
図１３は、４台の配信先サーバに４パーツに分割されたブートイメージを配信する場合の動作例を示すシーケンスチャートである。図において、Ｐ１〜Ｐ４はそれぞれパーツ１〜パーツ４を表し、Ｃ１及びＣ２はそれぞれチャンク１及びチャンク２を表す。
【００６９】
この場合、それぞれのチャンクについて、まず始めに、配信元サーバ［ＭＡＳＴＥＲ］１から配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ４］２−４にそれぞれＰ１〜Ｐ４が並列に送信される。続いて、それぞれの配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ４］２−４は、自身に送信されなかった残る３つのパーツのチャンクを、それぞれを受信した他の配信先サーバ２から取得する。
【００７０】
次のチャンクについて実行される、配信元サーバ［ＭＡＳＴＥＲ］１から各配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ４］２−４へのパーツの配信動作と、各配信先サーバ［ＳＶＲ２］２−１〜［ＳＶＲ４］２−４における他のパーツの１つ前のチャンクの取得動作とは、全て並列に実行される。
【００７１】
図１４は、５台の配信先サーバを３台と２台との２つのグループに分けてブートイメージを配信する場合の動作例を示すシーケンスチャートである。この例では、配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ３］２−３によって３台のグループが形成され、配信先サーバ［ＳＶＲ４］２−４と［ＳＶＲ５］２−５とによって２台のグループが形成されているものとする。図において、Ｐ１〜Ｐ３は３台のグループに配信される各パーツを、Ｐａ，Ｐｂは２台のグループに配信される各パーツを表し、Ｃ１及びＣ２はそれぞれチャンク１及びチャンク２を表す。
【００７２】
この場合、それぞれのチャンクについて、まず始めに、配信元サーバ［ＭＡＳＴＥＲ］１から配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ３］２−３にそれぞれＰ１〜Ｐ３が、配信先サーバ［ＳＶＲ４］２−４と［ＳＶＲ５］２−５とにはそれぞれＰａとＰｂとが並列に送信される。続いて、配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ３］２−３は、自身に送信されなかった残る２つのパーツのチャンクを、それぞれを受信した自身と同じグループ内の他の配信先サーバ２から取得する。これと並行して、配信先サーバ［ＳＶＲ４］２−４と［ＳＶＲ５］２−５とは、自身に送信されなかった残る１つのパーツのチャンクを、自身と同じグループ内のもう一方の配信先サーバ２から取得する。
【００７３】
次のチャンクについて実行される、配信元サーバ［ＭＡＳＴＥＲ］１から各配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ５］２−５へのパーツの配信動作と、各配信先サーバ［ＳＶＲ２］２−１〜［ＳＶＲ５］２−５における他のパーツの１つ前のチャンクの取得動作とは、全て並列に実行される。
【００７４】
図１４の例では、３台のグループに配信されるＰ１〜Ｐ３のサイズの方が、２台のグループに配信されるＰａ，Ｐｂのサイズよりも小さくなるため、３台のグループに配信されるチャンク数の方が少なく、２台のグループよりも先に配信が終了することとなる。したがって、全ての配信先サーバへの配信が完了するまでの所要時間である配信時間は、２台のグループへの配信時間（ブートイメージファイル全体を配信元サーバ１から各配信先サーバ２に並列配信する場合と比較した配信時間の比率（以降、配信時間比率）＝１／２）と等しくなる。
【００７５】
図１５は、６台の配信先サーバに３パーツに分割されたブートイメージを配信する場合の動作例を示すシーケンスチャートである。図において、Ｐ１〜Ｐ３は３分割された各パーツを表し、Ｃ１及びＣ２はそれぞれチャンク１及びチャンク２を表す。
【００７６】
この場合、それぞれのチャンクについて、まず始めに、配信元サーバ［ＭＡＳＴＥＲ］１から配信先サーバ［ＳＶＲ１］２−１と［ＳＶＲ４］２−４とにＰ１が、配信先サーバ［ＳＶＲ２］２−２と［ＳＶＲ５］２−５とにＰ２が、配信先サーバ［ＳＶＲ３］２−３と［ＳＶＲ６］２−６とにＰ３が、それぞれ並列に送信される。続いて、配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ６］２−６のそれぞれは、自身に送信されなかった残る２つのパーツのチャンクを、それぞれを受信した自身の左側で最も近い他の配信先サーバ２から取得する（ただし、配信先サーバ［ＳＶＲ１］２−１の左隣の配信先サーバは配信先サーバ［ＳＶＲ６］２−６であるものとする）。
【００７７】
次のチャンクについて実行される、配信元サーバ［ＭＡＳＴＥＲ］１から各配信先サーバ［ＳＶＲ１］２−１〜［ＳＶＲ６］２−６へのパーツの配信動作と、各配信先サーバ［ＳＶＲ２］２−１〜［ＳＶＲ６］２−６における他のパーツの１つ前のチャンクの取得動作とは、全て並列に実行される。
【００７８】
図１５の例では、それぞれの配信先サーバ２が、３分割されたパーツのチャンクを並列に受信することとなるので、全ての配信先サーバ２への配信が完了するまでの所要時間である配信時間は、３台のグループへの配信時間（配信時間比率＝１／３）と等しくなる。
【００７９】
なお、図１５の例では、それぞれの配信先サーバ２が、自身に配信されなかった残る２つのパーツを自身の左側で最も近い他の配信先サーバ２から取得するものとしたが、６台の配信先サーバ２を３台ずつの２つのグループに分けて、自身に配信されなかった残る２つのパーツを自身と同じグループの他の配信先サーバ２から取得するものとしてもよい。
【００８０】
図１６は、配信先の拠点数Ｍと拠点間リンク数Ｌに対応する分割数Ｄと配信時間比率との関係を一覧にして示した図である。例えば、Ｎｏ．が「１」である１行目のデータは、Ｌ＝２でＭ＝２，４，６，８，・・・(Ｍが偶数）である場合には、Ｄ＝２とすることで配信時間比率が「１／２」となることを表している。同様に、Ｎｏ．が「２」である２行目のデータは、Ｌ＝３でＭ＝３，５，７，９，・・・（Ｍが奇数）である場合も、Ｄ＝２とすることで配信時間比率が「１／２」となることを表している。
【００８１】
また、Ｎｏ．が「３」である３行目のデータは、Ｌ＝４でＭ＝３，６，９，１２，・・・(Ｍが３の倍数）である場合には、Ｄ＝３とすることで配信時間比率が「１／３」となることを表している。４行目以後のデータについては詳しい説明を省略するが、いずれの場合も配信時間比率を「１／２」〜「１／５」に低減できることがわかる。
【００８２】
以上説明したように、本実施形態によれば、配信元サーバ１から各配信先サーバ２への再配布パーツの配信と、配信先サーバ２同士の間の再配布パーツの再配信とを、チャンク単位で並列に実行することができるので、同一のブートイメージファイルを複数の配信先サーバ２に配信するときの配信時間を短くすることができる。
ことができる。
【００８３】
以上にて本発明を実施する形態の説明を終えるが、本発明の実施の態様はこれに限られるものではなく、本発明の趣旨を逸脱しない範囲において各種の変形が可能である。
【符号の説明】
【００８４】
１    配信元サーバ
１１  ブートイメージ受付部
１２  パーツ分割部
１３  再配布パーツ割当部
１４  再配布パーツ配信部
１５  記憶部
１５１  ブートイメージ情報
１５２  ブートイメージファイル
１５３  パーツ情報
１５４  配信先サーバ情報
１５５  分割数決定テーブル（分割数を決定するために参照される所定のテーブル）
２，２−１〜２−６  配信先サーバ
２１  再配布パーツ受信部
２２  再配布パーツ送信部
２３  残パーツ取得部
２４  ブートイメージ復元部
２５  ブートイメージ配信部
２６  記憶部
２６１  ブートイメージ情報
２６２  ブートイメージファイル
２６３  パーツ情報
２６４  取得先サーバ情報
２６５  パーツ
３    保守端末
４    拠点間ネットワーク
１００  ブートイメージ配信システム
【図１】
2014164556.tif 000003
【図２】
2014164556.tif 000004
【図３】
2014164556.tif 000005
【図４】
2014164556.tif 000006
【図５】
2014164556.tif 000007
【図６】
2014164556.tif 000008
【図７】
2014164556.tif 000009
【図８】
2014164556.tif 000010
【図９】
2014164556.tif 000011
【図１０】
2014164556.tif 000012
【図１１】
2014164556.tif 000013
【図１２】
2014164556.tif 000014
【図１３】
2014164556.tif 000015
【図１４】
2014164556.tif 000016
【図１５】
2014164556.tif 000017
【図１６】
2014164556.tif 000018
【図１７】
2014164556.tif 000019