JP2012155689A - ソフトウェアイメージ配信方法およびシステム - Google Patents

ソフトウェアイメージ配信方法およびシステム Download PDF

Info

Publication number
JP2012155689A
JP2012155689A JP2011016915A JP2011016915A JP2012155689A JP 2012155689 A JP2012155689 A JP 2012155689A JP 2011016915 A JP2011016915 A JP 2011016915A JP 2011016915 A JP2011016915 A JP 2011016915A JP 2012155689 A JP2012155689 A JP 2012155689A
Authority
JP
Japan
Prior art keywords
server
fragment
software image
servers
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011016915A
Other languages
English (en)
Inventor
Gosei Nishimura
豪生 西村
Michio Irie
道生 入江
Masashi Kaneko
雅志 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011016915A priority Critical patent/JP2012155689A/ja
Publication of JP2012155689A publication Critical patent/JP2012155689A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】現用中サーバのリソースが、ソフトウェアイメージの転送のため長時間占有されないようにする。
【解決手段】リポジトリ装置2100が既存クラスタへサーバ2310を追加するとき、まず、追加対象サーバそれぞれに対し、既にソフトウェアイメージを保持している現用中サーバからソフトウェアイメージをN個に分割した断片を取得するよう指示する。そして、断片を取得した追加対象サーバは、他の追加対象サーバから、自身が保持していない断片を取得し、また、他の追加対象サーバに対し、自身の保持する断片を送信する。このような断片交換処理を、ソフトウェアイメージを構成するすべての断片を取得するまで繰り返す。
【選択図】図4

Description

本発明は、クラスタシステムの各サーバへのソフトウェアイメージの配信技術に関する。
近年、Webサーバホスティング等の分野では、データセンタのようなサーバ管理事業者が一括してサーバを管理し、サービス提供事業者をホスティングするIaaS(Infrastructure as a Service)等と呼ばれる形態が一般化している(非特許文献1参照)。ここで、サービスの需要増時や、そのサービスを提供しているサーバが障害によって離脱した場合に速やかに要求に対応するためには、ある程度の待機余剰資源を含めたサーバを用意しておく必要がある。また、近年では無停止でサーバ資源の動的追加および削除が可能なネットワークサーバクラスタのアーキテクチャが登場しており、通信網を構成する設備のさらなる運用柔軟化や低コスト化が期待されている(非特許文献2参照)。
そのような要求に対して、各ネットワークサーバクラスタの余剰資源をリソースプールとして集約しておき、需要増時や、障害や災害によって失われた資源の補充時に、リソースプールから必要なサーバを各クラスタに追加することにより、全体の設備利用効率を向上させる技術が検討されている。
このように余剰資源が集約された共用のリソースプールから、サーバをクラスタに追加する場合、リソースプール内に保持されているサーバが、どのようなソフトウェア構成を取るかが事前に分からない。このため、リソースプールのサーバはソフトウェアを何も有していない状態であることが一般的である。よって、資源追加時には、リポジトリから、個々のサービスに対応したソフトウェア構成が含まれたソフトウェアイメージを、追加対象のサーバに転送し、このサーバに必要な設定を行った後にクラスタに組み込む必要がある。
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/>
前記したとおり、リソースプールのサーバは、ソフトウェアを何も有していない状態であることが一般的である。よって、リポジトリは、追加対象のサーバが決まると、その追加対象のサーバへ、個々のサービスに対応したソフトウェア構成が含まれたソフトウェアイメージを転送し、必要な設定を行った後にクラスタに組み込む必要がある。このソフトウェアイメージはオペレーティングシステムや各種ミドルウェア、データ等を含んでいるため数〜数十GBに及ぶ大容量であり、転送にはある程度の時間を要する。
ここで、激甚災害や大規模障害等が発生した場合、各サービスを提供するクラスタを構成する多数のサーバ資源が同時に失われ、複数のクラスタが一斉に失われた分の資源を補充するための資源要求を行うことが考えられる。その際には、ソフトウェアイメージを管理しているリポジトリに対して、多数のサーバからのアクセスが発生してデータ転送に輻輳が発生することが考えられる。このため、ソフトウェアイメージの転送時間が長大化し、復旧時間が遅くなり、インフラとして公共性の高い通信サービスに求められる無停止性や即応性を満たすことができないおそれがある。
このような環境下で、リポジトリの負荷集中を防ぐため、リポジトリからソフトウェアイメージを転送するのではなく、同じクラスタに属する現用中(サービス提供中)サーバからソフトウェアイメージを転送する方法も考えられる。しかし、このような方法において、複数のサーバを同時に追加する場合、追加対象の全サーバにソフトウェアイメージが転送されるまで、現用中サーバにおける転送処理が長時間継続し、現用中サーバにおいてサービス提供に必要なリソースが不足するおそれがある。
そこで、本発明は、前記した問題を解決し、クラスタに複数のサーバを追加する場合であっても、現用中サーバのリソースがソフトウェアイメージの転送のために占有される時間を低減することを目的とする。
前記した課題を解決するため、本発明は、クラスタに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置が、クラスタへのサーバの追加台数およびサーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける。そして、リポジトリ装置は、この入力された追加指示に基づき、サーバそれぞれのアドレスごとに、当該サーバがクラスタに追加可能な状態か否かおよび当該サーバの保持するソフトウェアイメージの種別を示したサーバ状態情報を読み出す。そして、クラスタへの追加対象サーバとして、読み出したサーバ状態情報に示されるサーバのうち、追加可能な状態のサーバを、追加指示に示される台数選択する。そして、サーバ状態情報を参照して、追加指示に示されるソフトウェアイメージを保持するサーバを特定し、また、追加対象サーバそれぞれに転送IDを割り当てる。次に、リポジトリ装置は、追加対象サーバがソフトウェアイメージの断片の取得先とすべき断片取得先サーバのアドレスとして、ソフトウェアイメージを保持するサーバのアドレスを設定する。そして、リポジトリ装置は、追加対象サーバごとに、当該追加対象サーバの転送IDおよび断片取得先サーバのアドレスを示した取得交換指示情報を作成し、この作成した取得交換指示情報を、追加対象サーバそれぞれへ配信する。ここで、クラスタへのサーバの追加台数が2のべき乗数であるとき、追加対象サーバそれぞれが、リポジトリ装置から配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、ソフトウェアイメージの分割数Nとして、取得交換指示情報に示される追加対象サーバの台数を設定し、ソフトウェアイメージの断片番号として、自身のサーバの転送IDとを設定した断片取得要求を、自身のサーバのソフトウェアイメージの断片取得先サーバへ送信する。そして、追加対象サーバそれぞれは、この断片取得要求の応答として、断片取得先サーバから、ソフトウェアイメージを、追加台数に分割した断片のうち、断片番号に対応する断片を受信する。そして、受信した断片を、他の追加対象サーバと交換する交換ステップを、ソフトウェアイメージを構成するすべての断片を受信するまで繰り返す。
このように追加対象サーバは、まず、既にソフトウェアイメージを保持しているサーバ(現用中サーバ)からソフトウェアイメージの断片を取得する。そして、その後、断片を受信した追加対象サーバ同士で断片を交換しあうことで、ソフトウェアイメージを構成するすべての断片を取得する。よって、現用中サーバのリソースがソフトウェアイメージの転送のために占有される時間を低減できる。
また、本発明は、クラスタへの追加対象サーバそれぞれが、交換ステップにおいて、交換ステップ数を示す変数pの初期値として、0を設定し、以下の式(1)を計算する。
s=RD(自身のサーバの転送ID/2)…式(1)
そして、追加対象サーバそれぞれは、自身のサーバの断片取得先サーバの転送IDであるidを、sが偶数のとき、以下の式(2)により計算し、
id=自身のサーバの転送ID+2…式(2)
sが奇数のとき、以下の式(3)により計算する。
id=自身のサーバの転送ID−2…式(3)
次に、追加対象サーバそれぞれは、交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算し、
b=RD(id/2)×2…式(4)
交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算する。
e=b+2−1…式(5)
そして、追加対象サーバそれぞれは、転送IDが、idであるサーバから、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜断片番号eの断片を受信する。ここで、まだ、ソフトウェアイメージを構成するいずれかの断片を受信していなければ、変数pの値をインクリメントして、再度、式(1)を計算する。このような処理を、ソフトウェアイメージを構成するすべての断片を受信するまで実行する。
但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
このようにすることで、追加対象サーバは、ソフトウェアイメージの断片を漏れなく、効率よく取得できる。
また、本発明は、クラスタへのサーバの追加台数が2のべき乗数でないとき、追加対象サーバそれぞれが、断片取得要求を、自身のサーバのソフトウェアイメージの断片取得先サーバへ送信する代わりに以下の処理を行う。すなわち、追加対象サーバは、配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、断片取得要求に、ソフトウェアイメージの分割数Nとして、取得交換指示情報に示される追加対象サーバの台数より大きい最小の2のべき乗数を設定する。また、この断片取得要求に、ソフトウェアイメージの断片番号として、自身のサーバの転送IDとを設定し、自身のサーバのソフトウェアイメージの断片取得先サーバへ送信する。また、追加対象サーバそれぞれは、交換ステップにおいて、交換ステップ数を示す変数pの初期値として、0を設定し、以下の式(1)を計算する。
s=RD(自身のサーバの転送ID/2)…式(1)
そして、追加対象サーバそれぞれは、自身のサーバの断片取得先サーバの転送IDであるidを、sが偶数のとき、以下の式(2)により計算し、
id=自身のサーバの転送ID+2…式(2)
sが奇数のとき、以下の式(3)により計算する。
id=自身のサーバの転送ID−2…式(3)
次に、追加対象サーバそれぞれは、交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算し、
b=RD(id/2)×2…式(4)
交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算する。
e=b+2−1…式(5)
ここで、計算したidが、サーバの追加台数の値未満であるとき、追加対象サーバは、転送IDが、idであるサーバから、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜断片番号eの断片を受信する。一方、計算したidが、サーバの追加台数以上の値であるとき、追加対象サーバは、取得交換指示情報を参照して特定した断片取得先サーバから、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜断片番号eの断片を受信する。ここで、ソフトウェアイメージを構成するいずれかの断片を受信していなければ、変数pの値をインクリメントして、再度、前記式(1)を計算する。このような処理を、ソフトウェアイメージを構成するすべての断片を受信するまで実行する。但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
このようにすることで、追加対象サーバの台数が2のべき乗数でなかった場合でも、すべての追加対象サーバがソフトウェアイメージの断片を取得できる。また、追加対象サーバは、できるだけ、他の追加対象サーバとの間でソフトウェアイメージの断片を交換するようにし、他の追加対象サーバと断片を交換できない場合に、現用中サーバから断片を取得する。これにより、現用中サーバのリソースがソフトウェアイメージの転送のために占有される時間を低減できる。
また、本発明は、リポジトリ装置が、新規クラスタの構築のため、前記新規クラスタを構成するサーバの台数および前記サーバへ配信するソフトウェアイメージの種別を含む構築指示の入力を受け付ける。そして、リポジトリ装置は、サーバ状態情報に示されるサーバのうち、追加可能な状態のサーバを前記構築指示に示される台数選択する。次に、リポジトリ装置は、構築指示に示される種別のソフトウェアイメージを、記憶部から読み出し、選択したサーバへ配信する。
このようにすることで、リポジトリ装置は、新規クラスタを構築することができる。
本発明によれば、クラスタに複数のサーバを追加する場合であっても、現用中サーバのリソースがソフトウェアイメージの転送のために占有される時間を低減できる。
本実施の形態のシステムの構成例を示した図である。 図1のクラスタシステムの構成例を示した図である。 図2のシステムの処理概要を示した図である。 図2のシステムの処理概要を示した図である。 図1のソフトウェアイメージDB内のソフトウェアイメージ情報を例示した図である。 図1のサーバDB内のサーバ状態情報を例示した図である。 図1のリポジトリ装置が配信する取得交換指示情報を例示した図である。 図1のサーバDB内のサーバ状態情報を例示した図である。 図1のサーバDB内のサーバ状態情報を例示した図である。 図2のシステムの追加対象サーバ数が、2のべき乗数ではないときの処理概要を示した図である。 図2のシステムの追加対象サーバ数が、2のべき乗数ではないときの処理概要を示した図である。 図1のサーバの処理手順を示したフローチャートである。
<全体構成>
以下、本発明を実施するための最良の形態(以下、実施の形態という)について説明する。まず、図1を用いて、本実施の形態のリポジトリ装置およびサーバを含むシステムの全体構成を説明する。
システムは、保守者端末1000と、クラスタシステム2000と、利用者端末3000とを含んで構成される。クラスタシステム2000は、保守ネットワーク4000(LAN(Local Area Network)またはIP(Internet Protocol)網)によって保守者端末1000と接続し、サービスネットワーク5000によって利用者端末3000と接続する。サービス提供者は、クラスタシステム2000に対する保守コマンド(後記)を保守者端末1000により入力する。ユーザは、利用者端末3000を用い、クラスタシステム2000上で提供されるサービスをサービスネットワーク5000(LANまたはIP網)越しに利用する。
クラスタシステム2000は、計算資源である複数のサーバ2310が集約されているリソースプール2300と、リポジトリ装置2100とを備え、両者は管理ネットワーク2200によって接続される。
リポジトリ装置2100は、保守者端末1000から入力された保守コマンドに基づき、リソースプール2300のサーバ2310を起動させ、このサーバ2310へソフトウェアイメージを配信する。ここで、このリポジトリ装置2100が行う処理は大きく2つある。1つは、新規クラスタの構築であり、もう1つは既存クラスタへの資源の追加である。つまり、リポジトリ装置2100は、保守コマンドとして、新規クラスタの構築または既存クラスタへの資源の追加に関するコマンド(クラスタへのサーバ2310の追加指示)の入力を受け付けると、この保守コマンドに基づき、新規クラスタの構築または既存クラスタへの資源の追加を行う。この保守コマンドは、新規クラスタの構築であれば、新規クラスタのサーバ2310の台数と、配信するソフトウェアイメージのイメージID(種別)とを含む。一方、既存クラスタへの資源の追加であれば、追加するサーバ2310の台数と、配信するソフトウェアイメージのイメージID(種別)とを含む。
<処理の概要>
次に、図1を適宜参照しつつ、図3,4を用いて、システムの処理の概要を説明する。ここでは、リソースプール2300内に、図2に示すように、サーバ2310A〜2310Hが存在する場合を例に説明する。リポジトリ装置2100は、図1の保守ネットワーク4000経由で、新規クラスタの構築指示を受け付けると、新規クラスタを構成するサーバ2310(例えば、サーバ2310E,2310F,2310G,2310H)を選択する。そして、選択したサーバ2310へ、ソフトウェアイメージを配信する。ソフトウェアイメージを受信したサーバ2310は、ソフトウェアイメージを読み込み、自身のサーバ2310を起動し、現用中サーバとなる。その後、リポジトリ装置2100は、保守ネットワーク4000経由で、既存クラスタへの資源の追加指示を受け付けると、追加対象サーバを選択する。ここでは、追加対象サーバとして、サーバ2310A,2310B,2310C,2310Dを選択した場合を考える。この場合、リポジトリ装置2100は、追加対象サーバの台数(この場合、4台)に応じて、追加対象サーバそれぞれに転送IDを割り当て、また、追加対象サーバがソフトウェアイメージの断片を取得するときの取得先(断片取得先)サーバの割り当ても行う。そして、各追加対象サーバに割り当てた転送IDおよび断片取得先サーバを、追加対象サーバそれぞれへ通知する。この通知を受けた追加対象サーバはそれぞれ、自身のサーバ2310の断片取得先サーバに対し、ソフトウェアイメージの断片の取得要求(断片取得要求)を送信する。この取得要求は、追加対象サーバ数(追加対象サーバの数)と断片番号(自身の転送ID)とを含む。
現用中サーバはそれぞれ、追加対象サーバからの断片取得要求を受信すると、自身の保持するソフトウェアイメージを、(ソフトウェアイメージのサイズ/分割数N(ここでは追加対象サーバ数))のサイズの断片に分割する。そして、そのソフトウェアイメージの断片の先頭から数えて、断片番号で指定された順番の断片を、断片取得要求の送信元のサーバ2310へ送信する。これにより、追加対象サーバはそれぞれ、ソフトウェアイメージを構成する断片のうち、自身のサーバ2310の転送IDに対応する断片を取得することになる。つまり、図3のサーバ2310A(転送ID:0)は、断片番号「0」の断片を取得し、サーバ2310B(転送ID:1)は、断片番号「1」の断片を取得し、サーバ2310C(転送ID:2)は、断片番号「2」の断片を取得し、サーバ2310D(転送ID:3)は、断片番号「3」の断片を取得する。
その後、追加対象サーバはそれぞれ、自身のサーバ2310の保持する断片を交換しあう(コピーして他の追加対象サーバへ転送する)。このような交換を、ソフトウェアイメージを構成するすべての断片が揃うまで繰り返す。例えば、図3に示した処理の後、追加対象サーバはそれぞれ、図4に示すように、転送IDが隣接するサーバ2310同士がペアとなって、自身の取得した断片を交換する(S1)。これにより、サーバ2310A(転送ID:0)およびサーバ2310B(転送ID:1)は、断片番号「0,1」の断片を取得し、サーバ2310C(転送ID:2)およびサーバ2310D(転送ID:3)は、断片番号「2,3」の断片を取得する。その後、サーバ2310A(転送ID:0)は、サーバ2310C(転送ID:2)との間で、断片番号「0,1」の断片と、断片番号「2,3」の断片とを交換する。また、サーバ2310B(転送ID:1)は、サーバ2310D(転送ID:3)との間で、断片番号「0,1」の断片と、断片番号「2,3」の断片とを交換する(S2)。これにより、サーバ2310A〜2310Dはそれぞれ、ソフトウェアイメージを構成するすべての断片(断片番号「0〜3」の断片)を取得することができる。
以上のような処理を行うことで、現用中サーバは、追加対象サーバそれぞれへ全ソフトウェアイメージを送信する必要がなくなるので、ソフトウェアイメージ転送のために長時間リソースが占有されることがなくなる。また、追加対象サーバも、転送IDが隣接するサーバ2310同士でソフトウェアイメージの断片を交換する等、断片を効率よく交換するので、少ない処理負荷でソフトウェアイメージのすべての断片を取得することができる。
なお、ここでは、クラスタへの追加サーバの台数が2のべき乗数である場合について説明したが、追加サーバの台数が2のべき乗数ではない場合でも、ソフトウェアイメージの断片の交換は可能である。この場合の処理手順については後記する。
<構成>
図1のリポジトリ装置2100およびサーバ2310の構成を詳細に説明する。
<リポジトリ装置>
リポジトリ装置2100は、管理インタフェース部2110と、ソフトウェアイメージDB(データベース)2120と、サーバDB2130と、初期配信部2140と、追加配信部2150とを備える。このリポジトリ装置2100は、入出力インタフェース、通信インタフェース、CPU(Central Processing Unit)、メモリ等を備えるコンピュータにより実現される。
管理インタフェース部2110は、保守者端末1000とのインタフェースとなり、前記した保守コマンドを受け付ける。この管理インタフェース部2110は、通信インタフェースや入出力インタフェース、および、CPUによるプログラム実行処理により実現される。
ソフトウェアイメージDB2120は、ソフトウェアイメージ情報(図5参照)を備える。このソフトウェアイメージ情報は、各サーバ2310がサービス実行に必要なソフトウェアイメージの種別(イメージID)ごとに、ソフトウェアイメージの格納場所を示した情報である。ソフトウェアイメージは、サービスの提供に必要なソフトウェア構成を含んだファイルであり、サーバ2310に配信されるファイルである。ソフトウェアイメージDB2120は、管理インタフェース部2110等から主キーであるイメージIDの入力を受け付けると、そのソフトウェアイメージの格納場所を示すパスを返す。パスは、リポジトリ装置2100がアクセス可能な場所であれば、リポジトリ装置2100のローカルディスク上でもよいし、リモートストレージ上でもよい。
サーバDB2130は、サーバ状態情報(図6参照)を備える。このサーバDB2130は、初期配信部2140や追加配信部2150から、追加資源として利用可能な状態のサーバ2310の問い合わせを受けたとき、このサーバDB2130は、サーバ状態情報において、状態が「待機中」となっているサーバ2310を所定台数選択し、そのサーバ2310のサーバIDと、アドレスとを返す。サーバ状態情報は、主キーであるサーバIDごとに、そのサーバIDのサーバ2310のアドレス、状態、所持ソフトウェアイメージを示した情報である。アドレスとは、ソフトウェアイメージの転送等、外部との通信に用いられるアドレスである。図6の例はIPv4(Internet Protocol Version 4)アドレスを記載している。状態は、そのサーバの稼動状態を示し、そのサーバが追加資源として利用可能(何もサービスを提供していない)か、それとも現用中(サービス提供中)であるかを判別できればよい。図6の例では追加資源として利用可能な状態を「待機中」、別のサービスを提供している状態を「現用中」とし、さらにどのサービスも提供していないが、追加資源としても利用可能でない状態を「故障中」としている。所持ソフトウェアイメージは、そのサーバが所持しているソフトウェアイメージのイメージIDである。なお、ソフトウェアイメージを既に有している現用中サーバは、自身と同じクラスタに新規追加されるサーバ2310に、自身が持つソフトウェアイメージを転送することができる。
なお、このサーバDB2130およびソフトウェアイメージDB2120は、CPUによるプログラム実行処理と、サーバ状態情報やソフトウェアイメージ管理情報を記憶する記憶手段(RAM(Random Access Memory)やHDD(Hard Disk Drive)、フラッシュメモリ等)とにより実現される。
初期配信部2140は、新規クラスタ構築時に、起動対象のサーバ2310に対して、ソフトウェアイメージを配信する。リポジトリ装置2100から起動対象のサーバ2310へのソフトウェアイメージ配信は、初回のクラスタ構築時(すなわち、必要なソフトウェアイメージを有する現用中サーバが存在しない場合)に行われる。具体的には、管理インタフェース部2110経由で入力された新規クラスタ構築コマンドに対し、初期配信部2140は、ソフトウェアイメージDB2120に、このコマンドに示される種別(イメージID)のソフトウェアイメージの問い合わせを行う。そして、このソフトウェアイメージDB2120から、問い合わせの応答を受け取ると、この応答に示されるソフトウェアイメージを起動対象のサーバ2310に転送する。なお、この起動対象のサーバ2310は、初期配信部2140が、サーバDB2130に対し、問い合わせを行い、その応答に示されるサーバ2310とする。
追加配信部2150は、既存クラスタへの資源追加コマンドに対して、サーバDB2130のサーバ状態情報を参照して、追加対象サーバそれぞれに対して、どの現用中サーバから断片を取得し、どのような順序でその断片を交換しあうかを指示する。
つまり、追加配信部2150は、サーバDB2130から、資源追加コマンドに示されるソフトウェアイメージを保持するサーバ2310の情報を得る。また、追加配信部2150は、追加対象サーバそれぞれにユニークな転送IDを割り当てる。そして、追加配信部2150は、追加対象サーバが、ソフトウェアイメージの断片の取得先とすべき断片取得先サーバのアドレスとして、資源追加コマンドに示されるソフトウェアイメージを保持するサーバ2310のアドレスを設定する。その後、追加配信部2150は、追加対象サーバごとに、転送IDおよび断片取得先サーバのアドレスを示した取得交換指示情報(図7参照)を作成する。そして、追加配信部2150は、この取得交換指示情報を、各サーバ2310へ配信する。各サーバ2310は、この取得交換指示情報を参照することで、ソフトウェアイメージの断片をどの現用中サーバ、または追加対象サーバから取得すればよいかを判断することができる。
取得交換指示情報を、図7に例示する。図7に示すように、取得交換指示情報は、追加対象サーバ(アドレスが主キー)について、その追加対象サーバの転送IDと、その追加対象サーバの断片取得先(断片取得先サーバ)とを示した情報である。転送IDは、例えば、「0」から「追加するサーバ台数−1」までの数字であり、各サーバ2310に対して異なる数字が割り振られればその順序は問わない。図7の例では、追加対象サーバのアドレスの昇順に転送IDを割り振っている。断片取得先は、サーバDB2130から、追加配信部2150が得た、追加対象サーバが取得すべきソフトウェアイメージ「IMG_A」(図6参照)を所持する現用中サーバである。サーバDB2130が、現用中サーバを選択する方法は、サーバID(サーバ2310のアドレス)の昇順または降順で選ぶ方法や、最もCPU使用率が小さいもの、最も性能がよいものを選ぶ方法等、予め定められたアルゴリズムを用いる。そして、選択した現用中サーバのアドレスが断片取得先として取得交換指示情報に登録される。図7の取得交換指示情報は、図9のサーバ状態情報において現用中サーバとなっている、「Svr05,Svr06,Svr07,Svr08」のサーバ2310が登録された状態を示している。この登録順序は、サーバID(サーバ2310のアドレス)の昇順または降順で選ぶ等、予め定められたアルゴリズムによる。
<サーバ>
図1のサーバ2310を説明する。サーバ2310は、自身のサーバ2310が新規クラスタに組み込まれる場合、リポジトリ装置2100から取得したソフトウェアイメージにより、サーバ2310を起動させる(新規クラスタ構築処理)。一方、自身のサーバ2310が既存クラスタに組み込まれる場合、まず、リポジトリ装置2100からソフトウェアイメージの断片を取得し、その後、他の追加対象サーバとの間で取得した断片を互いに交換する。そして、サーバ2310は、ソフトウェアイメージを構成するすべての断片を取得すると、このソフトウェアイメージにより、サーバ2310を起動させる(既存クラスタへの資源追加処理)。
このようなサーバ2310は、イメージ転送部2311と、ブート部2312と、ソフトウェアイメージ保管部2313とを備える。
イメージ転送部2311は、自身のサーバ2310が新規クラスタに組み込まれる場合、リポジトリ装置2100からソフトウェアイメージを受信し、ソフトウェアイメージ保管部2313に保存する。一方、自身のサーバ2310が既存クラスタに組み込まれる場合、まず、リポジトリ装置2100から断片取得先指示情報(図7参照)を受信する。そして、自身のサーバ2310のサーバID(アドレス)と、断片取得先情報とを参照して、自身のサーバ2310の断片取得先サーバを選択する。そして、その選択した断片取得先サーバから、ソフトウェアイメージの断片を取得する。その後、イメージ転送部2311は、断片取得先情報と、自身のサーバ2310に割り当てられた転送IDとを参照して、ソフトウェアイメージの断片を交換すべき他のサーバ2310を特定し、この特定したサーバ2310との間で断片の交換処理を行う。この交換処理は、イメージ転送部2311が、ソフトウェアイメージ全体を取得するまで繰り返す。
ブート部2312は、ソフトウェアイメージ保管部2313に保存されたソフトウェアイメージを読み込み、このソフトウェアイメージのOS(Operating System)を起動させる。これにより、サーバ2310は、サービスネットワーク5000経由でサービスを提供可能な状態になる。
ソフトウェアイメージ保管部2313は、リポジトリ装置2100から受信したソフトウェアイメージや、他のサーバ2310から受信したソフトウェアイメージの断片を保存する。このソフトウェアイメージ保管部2313は、サーバ2310の記憶手段(図示省略)により実現される。
このサーバ2310も、入出力インタフェース、通信インタフェース、CPU、記憶手段等を備えるコンピュータにより実現される。
<新規クラスタ構築処理>
次に、新規クラスタ構築の処理手順について述べる。ここでは、図2に示すように、8台のサーバ2310A(Svr01)〜2310H(Svr08)から構成されるクラスタシステム2000において、リポジトリ装置2100が新規クラスタ構築コマンドにより4台のサーバ2310のクラスタを構築する手順について述べる。
図8は、リポジトリ装置2100が、新規クラスタ構築コマンドを実行する前のサーバDB2130のサーバ状態情報を例示した図である。各サーバ2310は待機中であり、いずれのサーバ2310もソフトウェアイメージは所持していない。本状態に対して、新規クラスタ構築コマンド(構築するクラスタのサーバ台数:4、配信するソフトウェアイメージのイメージID「IMG_A」)を投入する場合について考える。
リポジトリ装置2100は、管理インタフェース部2110経由で新規クラスタ構築コマンドを受けると、初期配信部2140は、サーバDB2130に問い合わせを行い、4台の待機中のサーバ2310を選択する。サーバDB2130からの待機中サーバの選択は、サーバIDの昇順または降順で選ぶ方法や、最も待機中の時間が長いもの、最も性能がよいものなど、予め定められたアルゴリズムによる。この例では、図2のサーバ2310E(Svr05)〜サーバ2310H(Svr08)が選択されたとする。その後、リポジトリ装置2100の初期配信部2140は、ソフトウェアイメージDB2120を参照して「IMG_A」のソフトウェアイメージを読み出し、読み出したソフトウェアイメージを、サーバ2310E(Svr05)、サーバ2310F(Svr06)、サーバ2310G(Svr07)およびサーバ2310H(Svr08)に対して配信する(図3参照)。なお、ここでの配信は、リポジトリ装置2100の初期配信部2140が、各サーバ2310へユニキャスト通信を4回行う単純なもので構わない。各サーバ2310のイメージ転送部2311は、「IMG_A」のソフトウェアイメージをリポジトリ装置2100から受信するとソフトウェアイメージ保管部2313に保存する。保存が完了すると、サーバ2310のブート部2312は、そのソフトウェアイメージによってサーバ2310をブートする。
サーバ2310E(Svr05)〜サーバ2310H(Svr08)がソフトウェアイメージ「IMG_A」によって起動すると、初期配信部2140は、サーバDB2130のサーバ状態情報の内容を図9のように書き換える。
<既存クラスタへの資源追加処理>
以上のようにして、新規クラスタが構築された後、リポジトリ装置2100が、既存クラスタへの資源追加コマンドによって、ソフトウェアイメージ「IMG_A」によって、さらに4台のサーバ2310を起動する手順について述べる。
リポジトリ装置2100は、管理インタフェース部2110経由で既存クラスタへの資源追加コマンドを受けると、追加配信部2150が、サーバDB2130のサーバ状態情報を参照して、4台の待機中のサーバ2310を選択する。ここでは、サーバ2310A(Svr01)〜サーバ2310C(Svr04)が選択されたとする。その後、リポジトリ装置2100の追加配信部2150は、(自身で各サーバ2310にソフトウェアイメージを転送するのではなく)各サーバ2310に対して、「ソフトウェアイメージの断片を現用中サーバから取得し、それを互いに交換する」ように指示する。つまり、追加配信部2150は、追加対象サーバそれぞれの断片取得先サーバを示した取得交換指示情報(図7参照)を作成し、この取得交換情報を各サーバ2310へ配信する。
サーバ2310が取得交換指示情報を受信すると、イメージ転送部2311は、自身のアドレスと、取得交換指示情報とを参照し、自身のサーバ2310の断片取得先サーバを選択する。例えば、サーバ2310A(「192.168.9.1」、Svr01)は、図7の取得交換指示情報を参照して、断片取得先サーバとして、サーバ2310E(「192.168.9.5」、Svr05)を選択し、サーバ2310B(「192.168.9.2」、Svr02)は、サーバ2310F(「192.168.9.6」、Svr06)を選択する。また、サーバ2310C(「192.168.9.3」、Svr03)は、断片取得先サーバとして、サーバ2310G(「192.168.9.7」、Svr07)を選択し、サーバ2310D(「192.168.9.4」、Svr04)は、サーバ2310H(「192.168.9.8」、Svr08)を選択することを示す。
そして、サーバ2310は、選択した断片取得先サーバに対し、断片取得要求を送信し、指定のソフトウェアイメージの断片を取得する。この断片取得要求は、追加対象サーバの台数である追加対象サーバ数と、取得したいソフトウェアイメージの断片の断片番号とを含む。追加対象サーバ数は、取得交換指示情報における、サーバ2310のエントリ数である。断片番号は、初回取得時(現用中サーバから断片を取得するとき)は、自身のサーバ2310の転送IDとなる。断片取得要求を受信した現用中サーバは、ソフトウェアイメージを、(ソフトウェアイメージのサイズ)/Nのサイズの断片に先頭から均等分割した際に、先頭(0起点)から数えて「断片番号」として指定された順番の断片を、断片取得要求の要求元のサーバ2310に転送する(図3参照)。なお、このNは、ソフトウェアイメージの分割数であり、追加対象サーバ数より大きい最小の2のべき乗数とする。また、現用中サーバにアクセスするのは、最初の断片の取得時であり、その後は追加対象サーバ(ここでは、サーバ2310A(Svr01)〜サーバ2310D(Svr04))同士が断片を交換することにより、既存クラスタへの追加対象サーバすべてにソフトウェアイメージ全体が行き渡るようにする。
例えば、図4に示すように、初期状態では各サーバ2310(サーバ2310A〜2310D)がソフトウェアイメージの断片1つしか所持していないが、1つの交換処理Stepで、ペアとなるサーバ2310が互いに自身が持っていないソフトウェアイメージの断片を交換する。このような交換処理Stepを繰り返すことにより、最終的に全追加対象サーバにソフトウェアイメージが行き渡る。そして、ソフトウェアイメージを取得した各追加対象サーバは、ブート部2312により、このソフトウェアイメージを読み込み、サーバ2310を起動する。
このように、既存クラスタへの資源追加時において、追加対象サーバそれぞれが、現用中サーバからソフトウェアイメージの断片を取得した後、その断片を他の追加対象サーバと交換することにより、ソフトウェアイメージ全体を取得する。これにより、現用中サーバのリソースがソフトウェアイメージの転送のために長時間占有されることがなくなる。また、追加対象サーバ同士がソフトウェアイメージを取得する際、互いに自身が持っていないソフトウェアイメージの断片を交換するので、各追加対象サーバは効率よくソフトウェアイメージを取得できる。
なお、前記した例は、既存クラスタへの資源追加処理において追加対象サーバの台数が2のべき乗数の場合であった。追加対象サーバの台数が2のべき乗数ではない場合、特定の交換Stepにおいて断片の交換相手となるサーバ2310が存在しないときがある。本実施の形態のサーバ2310は、断片の交換相手となるサーバ2310が存在しないときは、断片取得指示情報に示される自身のサーバ2310の断片取得先サーバ(現用中サーバ)から断片を取得する。
具体例を挙げて説明する。ここでは、追加対象サーバの台数が3台(サーバ2310A(Svr01)、サーバ2310B(Svr02)、サーバ2310C(Svr03))である場合を考える。この場合、図10に示すように、ソフトウェアイメージを、追加対象サーバの台数より大きい最小の2のべき乗数(この場合、分割数「4」)で断片分割し、各追加対象サーバは、断片取得先サーバ(現用中サーバ)から、転送ID番目の断片を取得する。なお、現用中サーバへの断片取得要求は、図3で説明した手順と同様の手順で行われる。その後、追加対象サーバ間での断片交換処理を行うが、図11に示すように、断片の交換先が存在しないサーバ2310(初期状態のサーバ2310Cや、S11後のサーバ2310D)は、取得交換指示情報(図7参照)に示される、自身のサーバ2310の断片取得先である現用中サーバから指定の断片を取得する。
例えば、図11のサーバ2310C(Svr03)は、S11において、断片番号「3」の断片の交換先(断片の取得先となる追加対象サーバ)が無いので、自身のサーバ2310Cの断片取得先サーバであるサーバ2310G(Svr07)に対し、追加対象サーバ数(分割数)「4」、断片番号「3」を設定した断片取得要求を送信し、断片番号「3」の断片を取得する。また、S12において、サーバ2310B(Svr02)は、断片番号「2,3」の断片の交換先が無いので、自身のサーバ2310の断片取得先サーバであるサーバ2310F(Svr06)に対し、追加対象サーバ数(分割数)「4」、断片番号「2,3」を設定した断片取得要求を送信し、断片番号「2,3」の断片を取得する。なお、このように現用中サーバから複数の断片を同時に取得する必要がある場合、断片取得要求の「断片番号」は、「2,3」等のように複数の断片を指定する。このような断片取得要求を受信した現用中サーバは、複数の断片を、図3で説明した手順と同様に、断片要求元のサーバ2310に転送する。
<処理手順>
図1の各サーバ2310において、ソフトウェアイメージの断片の交換処理の詳細を図12に示す。なお、本処理は、追加対象サーバ数が2のべき乗数であるか否かは問わない。
まず、サーバ2310のイメージ転送部2311は、初期値としてp(交換ステップ数を示す変数)=0、N=1を設定し(S21)、Nが追加対象サーバの台数より大きい最小の2のべき乗数か否かを判断する(S22)。ここで、Nが追加対象サーバの台数より大きい最小の2のべき乗数であれば(S22のYes)、以下の式(1)を計算する(S24)。そして、S25へ進む。
s=RD(自身のサーバの転送ID/2)…式(1)
なお、RD()は、()内の数値の小数点以下を切り捨てた値である。
一方、ここで、Nが追加対象サーバの台数より大きい最小の2のべき乗数でなければ(S22のNo)、イメージ転送部2311は、Nの値を2倍して(S23)、再度、S22の処理を行う。
S24の後、イメージ転送部2311は、式(1)で計算したsが偶数のとき(S25のYes)、以下の式(2)により自身のサーバ2310の断片取得先サーバの転送IDであるidを計算する(S26)。そして、S28へ進む。
id=自身のサーバの転送ID+2…式(2)
一方、S25でsが奇数のとき(S25のNo)、以下の式(3)により、idを計算する(S27)。そして、S28へ進む。
id=自身のサーバの転送ID−2…式(3)
次に、イメージ転送部2311は、交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)により計算する(S28)。
b=RD(id/2)×2…式(4)
また、イメージ転送部2311は、交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)により計算する(S29)。そして、S30へ進む。
e=b+2−1…式(5)
S30において、S26またはS27で計算したidが、追加対象サーバ数(サーバ台数)の値未満であるとき(S30のNo)、サーバ2310のイメージ転送部2311は、取得交換指示情報(図7参照)を参照して、転送IDがidであるサーバ2310から、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜eの断片を取得する(S32)。つまり、サーバ2310は、転送IDがidである追加対象サーバに対し、追加対象サーバ数:N、断片番号:b〜eを設定した断片取得要求を送信する。そして、この断片取得要求の送信先の追加対象サーバから、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜eの断片を取得する。そして、S33へ進む。
一方、S30において、S26またはS27で計算したidが、追加対象サーバ数の値以上であるとき(S30のYes)、取得交換指示情報に示される、自身のサーバ2310の断片取得先サーバから、ソフトウェアイメージを構成するN個の断片うち、断片番号b〜eの断片を取得する(S31)。つまり、サーバ2310は、断片を交換相手となる追加対象サーバがないので、取得交換指示情報に示される、自身のサーバ2310の断片取得先サーバ(現用中サーバ)に対し、追加対象サーバ数:N、断片番号:b〜eを設定した断片取得要求を送信する。そして、サーバ2310は、この断片取得先サーバから、ソフトウェアイメージをN個に分割した断片のうち、断片番号b〜eの断片を取得する。そして、S33へ進む。
S31またはS32の後、サーバ2310のイメージ転送部2311は、ソフトウェアイメージを構成するすべての(N個の)断片を取得したか否かを確認し(S33:全断片取得済?)、まだ取得していない断片があれば(S33のNo)、pの値をインクリメントして(S34)、S24へ戻る。一方、イメージ転送部2311は、ソフトウェアイメージを構成するすべての断片を取得していれば(S33のYes)、転送処理を完了させ(S35)、追加対象サーバのブート部2312はソフトウェアイメージ保管部2313に保存されたソフトウェアイメージによってサーバ2310を起動する。
以上説明したとおり、既存クラスタへの資源追加時において、追加対象サーバそれぞれが、現用中サーバからソフトウェアイメージの断片を取得した後、その断片を他の追加対象サーバと交換することにより、ソフトウェアイメージ全体を取得する。このとき、断片の交換相手となる追加対象サーバがない場合、適宜、断片取得先サーバから断片を取得する。これにより、各追加対象サーバは、ソフトウェアイメージの全断片を取得することができ、かつ、現用中サーバのリソースがソフトウェアイメージの転送のために占有される時間を低減できる。
1000 保守者端末
2000 クラスタシステム
2100 リポジトリ装置
2110 管理インタフェース部
2120 ソフトウェアイメージDB
2130 サーバDB
2140 初期配信部
2150 追加配信部
2200 管理ネットワーク
2300 リソースプール
2310 サーバ
2311 イメージ転送部
2312 ブート部
2313 ソフトウェアイメージ保管部
3000 利用者端末
4000 保守ネットワーク
5000 サービスネットワーク

Claims (8)

  1. クラスタに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置が、
    前記クラスタへのサーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付けるステップと、
    前記入力された追加指示に基づき、前記サーバそれぞれのアドレスごとに、当該サーバが前記クラスタに追加可能な状態か否かおよび当該サーバの保持するソフトウェアイメージの種別を示したサーバ状態情報を読み出し、前記クラスタへの追加対象サーバとして、前記読み出したサーバ状態情報に示されるサーバのうち、追加可能な状態のサーバを、前記追加指示に示される台数選択するステップと、
    前記サーバ状態情報を参照して、前記追加指示に示されるソフトウェアイメージを保持するサーバを特定するステップと、
    前記追加対象サーバそれぞれに転送IDを割り当てるステップと、
    前記追加対象サーバが前記ソフトウェアイメージの断片の取得先とすべき断片取得先サーバのアドレスとして、前記ソフトウェアイメージを保持するサーバのアドレスを設定するステップと、
    前記追加対象サーバごとに、当該追加対象サーバの転送IDおよび前記断片取得先サーバのアドレスを示した取得交換指示情報を作成するステップと、
    前記作成した取得交換指示情報を、前記追加対象サーバそれぞれへ配信するステップとを実行し、
    前記サーバの追加台数が2のべき乗数であるとき、
    前記追加対象サーバそれぞれが、
    前記配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、前記ソフトウェアイメージの分割数Nとして、前記取得交換指示情報に示される前記追加対象サーバの台数を設定し、前記ソフトウェアイメージの断片の断片番号として、前記自身のサーバの転送IDとを設定した断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップと、
    前記断片取得要求の応答として、前記断片取得先サーバから、前記ソフトウェアイメージを、前記追加台数に分割した断片のうち、前記断片番号に対応する断片を受信するステップとを実行し、
    前記受信した断片を、他の前記追加対象サーバと交換する交換ステップを、前記ソフトウェアイメージを構成するすべての断片を受信するまで繰り返すことを特徴とするソフトウェアイメージ配信方法。
  2. 前記追加対象サーバそれぞれが、
    前記交換ステップにおいて、
    交換ステップ数を示す変数pの初期値として、0を設定し、
    以下の式(1)を計算するステップと、
    s=RD(自身のサーバの転送ID/2)…式(1)
    前記自身のサーバの断片取得先サーバの転送IDであるidを、
    sが偶数のとき、以下の式(2)により計算するステップと、
    id=自身のサーバの転送ID+2…式(2)
    sが奇数のとき、以下の式(3)により計算するステップと、
    id=自身のサーバの転送ID−2…式(3)
    前記交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算するステップと、
    b=RD(id/2)×2…式(4)
    前記交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算するステップと、
    e=b+2−1…式(5)
    前記転送IDが、前記idであるサーバから、前記ソフトウェアイメージを前記N個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信するステップとを実行し、
    まだ、前記ソフトウェアイメージを構成するいずれかの断片を受信していないとき、
    前記変数pの値をインクリメントして、再度、前記式(1)を計算する処理を、前記ソフトウェアイメージを構成するすべての断片を受信するまで実行することを特徴とする請求項1に記載のソフトウェアイメージ配信方法。
    但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
  3. 前記サーバの追加台数が2のべき乗数でないとき、
    前記追加対象サーバそれぞれが、
    前記断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップに代えて、
    前記配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、前記ソフトウェアイメージの分割数Nとして、前記取得交換指示情報に示される前記追加対象サーバの台数より大きい最小の2のべき乗数を設定し、前記ソフトウェアイメージの断片の断片番号として、前記自身のサーバの転送IDとを設定した断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップを実行し、
    前記交換ステップに代えて、
    交換ステップ数を示す変数pの初期値として、0を設定し、
    以下の式(1)を計算するステップと、
    s=RD(自身のサーバの転送ID/2)…式(1)
    前記自身のサーバの断片取得先サーバの転送IDであるidを、
    sが偶数のとき、以下の式(2)により計算するステップと、
    id=自身のサーバの転送ID+2…式(2)
    sが奇数のとき、以下の式(3)により計算するステップと、
    id=自身のサーバの転送ID−2…式(3)
    前記交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算するステップと、
    b=RD(id/2)×2…式(4)
    前記交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算するステップと、
    e=b+2−1…式(5)
    前記計算したidが、前記サーバの追加台数の値未満であるとき、
    前記転送IDが、前記idであるサーバから、前記ソフトウェアイメージをN個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信するステップと、
    前記計算したidが、前記サーバの追加台数以上の値であるとき、
    前記取得交換指示情報を参照して特定した前記断片取得先サーバから、前記ソフトウェアイメージをN個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信するステップとを実行し、
    まだ、前記ソフトウェアイメージを構成するいずれかの断片を受信していないとき、
    前記変数pの値をインクリメントして、再度、前記式(1)を計算する処理を、前記ソフトウェアイメージを構成するすべての断片を受信するまで実行することを特徴とする請求項1に記載のソフトウェアイメージ配信方法。
    但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
  4. 前記リポジトリ装置が、
    新規クラスタの構築のため、
    前記新規クラスタを構成するサーバの台数および前記サーバへ配信するソフトウェアイメージの種別を含む構築指示の入力を受け付けるステップと、
    前記読み出したサーバ状態情報に示されるサーバのうち、前記追加可能な状態のサーバを前記構築指示に示される台数選択するステップと、
    前記構築指示に示される種別のソフトウェアイメージを、記憶部から読み出し、前記選択したサーバへ配信するステップとをさらに実行することを特徴とする請求項1ないし請求項3のいずれか1項に記載のソフトウェアイメージ配信方法。
  5. クラスタに追加するサーバへ、管理ネットワーク経由で、当該サーバを動作させるためのソフトウェアイメージを配信するリポジトリ装置を備えるシステムであって、
    前記リポジトリ装置は、
    前記クラスタへのサーバの追加台数および前記サーバへ配信するソフトウェアイメージの種別を含む追加指示の入力を受け付ける管理インタフェース部と、
    前記サーバそれぞれのアドレスごとに、当該サーバが前記クラスタに追加可能な状態か否かおよび当該サーバの保持するソフトウェアイメージの種別を示したサーバ状態情報を記憶する記憶部と、
    前記入力された追加指示に基づき、前記サーバ状態情報を読み出し、前記クラスタへの追加対象サーバとして、前記読み出したサーバ状態情報に示されるサーバのうち、追加可能な状態のサーバを、前記追加指示に示される台数選択し、前記サーバ状態情報を参照して、前記追加指示に示されるソフトウェアイメージを保持するサーバを特定し、前記追加対象サーバそれぞれに転送IDを割り当て、前記追加対象サーバが前記ソフトウェアイメージの断片の取得先とすべき断片取得先サーバのアドレスとして、前記ソフトウェアイメージを保持するサーバのアドレスを設定し、前記追加対象サーバごとに、当該追加対象サーバの転送IDおよび前記断片取得先サーバのアドレスを示した取得交換指示情報を作成し、前記作成した取得交換指示情報を、前記追加対象サーバそれぞれへ配信する追加配信部とを備え、
    前記サーバそれぞれは、
    前記サーバの追加台数が2のべき乗数であるとき、前記配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、前記ソフトウェアイメージの分割数Nとして、前記取得交換指示情報に示される前記追加対象サーバの台数を設定し、前記ソフトウェアイメージの断片の断片番号として、前記自身のサーバの転送IDとを設定した断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップを実行し、前記断片取得要求の応答として、前記断片取得先サーバから、前記ソフトウェアイメージを前記N個に分割した断片のうち、前記断片番号に対応する断片を受信し、前記受信した断片を、他の前記追加対象サーバと交換する交換ステップを、前記ソフトウェアイメージを構成するすべての断片を受信するまで繰り返すイメージ転送部と、
    前記ソフトウェアイメージの断片を保存するソフトウェアイメージ保管部と、
    前記ソフトウェアイメージ保管部に前記ソフトウェアイメージを構成するすべての断片が保存されたとき、前記ソフトウェアイメージを読み込み、前記自身のサーバを起動するブート部とを備えることを特徴とするシステム。
  6. 前記サーバそれぞれが、
    前記交換ステップにおいて、
    交換ステップ数を示す変数pの初期値として、0を設定し、
    以下の式(1)を計算するステップと、
    s=RD(自身のサーバの転送ID/2)…式(1)
    前記自身のサーバの断片取得先サーバの転送IDであるidを、
    sが偶数のとき、以下の式(2)により計算し、
    id=自身のサーバの転送ID+2…式(2)
    sが奇数のとき、以下の式(3)により計算し、
    id=自身のサーバの転送ID−2…式(3)
    前記交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算し、
    b=RD(id/2)×2…式(4)
    前記交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算し、
    e=b+2−1…式(5)
    前記転送IDが、前記idであるサーバから、前記ソフトウェアイメージをN個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信し、
    まだ、前記ソフトウェアイメージを構成するいずれかの断片を受信していないとき、
    前記pをインクリメントして、再度、前記式(1)を計算する処理を、前記ソフトウェアイメージを構成するすべての断片を受信するまで実行することを特徴とする請求項5に記載のシステム。
    但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
  7. 前記サーバの追加台数が2のべき乗数でないとき、前記サーバそれぞれが、
    前記断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップに代えて、前記配信された取得交換指示情報と、自身のサーバのアドレスとを参照して、前記ソフトウェアイメージの分割数Nとして、前記取得交換指示情報に示される前記追加対象サーバの台数より大きい最小の2のべき乗数を設定し、前記ソフトウェアイメージの断片の断片番号として、前記自身のサーバの転送IDとを設定した断片取得要求を、前記自身のサーバの前記ソフトウェアイメージの断片取得先サーバへ送信するステップを実行し、
    前記交換ステップに代えて、
    交換ステップ数を示す変数pの初期値として、0を設定し、
    以下の式(1)を計算し、
    s=RD(自身のサーバの転送ID/2)…式(1)
    前記自身のサーバの断片取得先サーバの転送IDであるidを、
    sが偶数のとき、以下の式(2)により計算し、
    id=前記自身のサーバの転送ID+2…式(2)
    sが奇数のとき、以下の式(3)により計算し、
    id=前記自身のサーバの転送ID−2…式(3)
    前記交換するソフトウェアイメージの断片の先頭の断片番号bを、以下の式(4)に計算し、
    b=RD(id/2)×2…式(4)
    前記交換するソフトウェアイメージの断片の終端の断片番号eを、以下の式(5)に計算し、
    e=b+2−1…式(5)
    前記計算したidが、前記サーバの追加台数の値未満であるとき、
    前記転送IDが、前記idであるサーバから、前記ソフトウェアイメージをN個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信し、
    前記計算したidが、前記サーバの追加台数以上の値であるとき、
    前記取得交換指示情報を参照して特定した前記断片取得先サーバから、前記ソフトウェアイメージをN個に分割した断片のうち、前記断片番号b〜前記断片番号eの断片を受信し、
    まだ、前記ソフトウェアイメージを構成するいずれかの断片を受信していないとき、
    前記pをインクリメントして、再度、前記式(1)を計算する処理を、前記ソフトウェアイメージを構成するすべての断片を受信するまで実行することを特徴とする請求項5に記載のシステム。
    但し、式(1)および式(4)における、RD()は、()内の数値の小数点以下を切り捨てた値とする。
  8. 前記リポジトリ装置の管理インタフェース部は、新規クラスタの構築のため、前記新規クラスタを構成するサーバの台数および前記サーバへ配信するソフトウェアイメージの種別を含む構築指示の入力を受け付け、
    前記リポジトリ装置は、
    前記サーバ状態情報に示されるサーバのうち、前記追加可能な状態のサーバを前記構築指示に示される台数選択し、前記構築指示に示される種別のソフトウェアイメージを、記憶部から読み出し、前記選択したサーバへ配信する初期配信部をさらに備えることを特徴とする請求項5ないし請求項7のいずれか1項に記載のシステム。
JP2011016915A 2011-01-28 2011-01-28 ソフトウェアイメージ配信方法およびシステム Pending JP2012155689A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011016915A JP2012155689A (ja) 2011-01-28 2011-01-28 ソフトウェアイメージ配信方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011016915A JP2012155689A (ja) 2011-01-28 2011-01-28 ソフトウェアイメージ配信方法およびシステム

Publications (1)

Publication Number Publication Date
JP2012155689A true JP2012155689A (ja) 2012-08-16

Family

ID=46837317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011016915A Pending JP2012155689A (ja) 2011-01-28 2011-01-28 ソフトウェアイメージ配信方法およびシステム

Country Status (1)

Country Link
JP (1) JP2012155689A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164473A (ja) * 2013-02-25 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ブートイメージ配信システム及びブートイメージ配信方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006040810A1 (ja) * 2004-10-12 2006-04-20 Fujitsu Limited ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
JP2009009297A (ja) * 2007-06-27 2009-01-15 Noritsu Koki Co Ltd データ配信方法およびデータ配信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006040810A1 (ja) * 2004-10-12 2006-04-20 Fujitsu Limited ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
JP2009009297A (ja) * 2007-06-27 2009-01-15 Noritsu Koki Co Ltd データ配信方法およびデータ配信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164473A (ja) * 2013-02-25 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ブートイメージ配信システム及びブートイメージ配信方法

Similar Documents

Publication Publication Date Title
CN106663030B (zh) 在分布式集群中的可扩展故障恢复通信
Rostanski et al. Evaluation of highly available and fault-tolerant middleware clustered architectures using RabbitMQ
JP5582344B2 (ja) 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
JP6729399B2 (ja) システム、仮想化制御装置、仮想化制御装置の制御方法及びプログラム
Hu et al. Practical resource provisioning and caching with dynamic resilience for cloud-based content distribution networks
US9830235B1 (en) Cooperative fault tolerance and load balancing
JP2009532771A (ja) 複数のコンピュータシステムによるプログラムの実行を管理する方法及びシステム
US8751661B1 (en) Sticky routing
CA2916265C (en) Producer system partitioning among leasing agent systems
US9350801B2 (en) Managing client access to a plurality of computing systems
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN111614748A (zh) 可扩展的对等匹配
US11128698B2 (en) Producer system registration
Zhu et al. Scaling service-oriented applications into geo-distributed clouds
US9369518B2 (en) Producer system partitioning among leasing agent systems
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
Saboor et al. Enabling rank-based distribution of microservices among containers for green cloud computing environment
CN113014611A (zh) 一种负载均衡方法及相关设备
JP5667506B2 (ja) クラスタシステムおよびソフトウェアアップデート方法
JP2012155689A (ja) ソフトウェアイメージ配信方法およびシステム
JP2012146093A (ja) ソフトウェアイメージ配信方法、リポジトリ装置、サーバおよびシステム
Alharbi et al. Optimizing jobs' completion time in cloud systems during virtual machine placement
EP4283954A1 (en) Computing power information processing method, first network device, and system
JP5551967B2 (ja) クラスタシステム、クラスタシステムのスケールアウト方法、リソースマネージャ装置、サーバ装置
JP5852922B2 (ja) マシン管理支援装置、マシン管理支援方法、マシン管理支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130204

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140304