説明

デプロイ方法およびシステム

【課題】
OSデプロイメントソフトウェアにおいて,様々なハードウェア構成のサーバ装置にデプロイ可能にする。
【解決手段】
デプロイ元サーバ装置のディスクイメージが管理サーバによって管理され,デプロイ先サーバ装置がネットワークを通じて管理サーバに接続されている計算機システムにおいて,前記ディスクイメージ内にデプロイ元サーバ装置のハードウェア構成情報と,ディスクイメージ内のドライバ情報ファイルから得られるハードウェア構成許容リストを保持し,ユーザからのデプロイ指示に際して管理サーバがデプロイ元サーバ装置とデプロイ先サーバ装置のハードウェア構成を比較し,その差異を検知して,検知した差異に応じてデプロイ方法を変化させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,OSのデプロイの汎用化に関する。
【背景技術】
【0002】
一般に,オペレーティング・システム(OS)のインストールは,管理者がインストール用のCD−ROMなどを直接サーバ装置に挿入し実行する。このインストール方法は,少数のサーバ環境では適用可能であるが,大量のサーバ環境では手間や時間がかかってしまう。そのため,多数のサーバ環境ではOSデプロイメントソフトウェアが用いられることが多い。OSデプロイメントソフトウェアは,OSをインストールする対象のサーバとは独立の管理サーバ上で動作し,OSをサーバ装置に配布(デプロイ)する機能を有する。
【0003】
ここで,配布(デプロイ)とは,あらかじめ保存しておいた,OSがインストールされたイメージデータを,対象サーバのディスクにコピーすることを意味する。具体的な動作は以下の通りである。まず,対象サーバは,自身が管理サーバと接続するLANに新たに接続され電源が投入されると,管理サーバに対してネットワークブートの要求を行う。
【0004】
この要求に対して管理サーバが応答すると,管理サーバと対象サーバの間で通信が開始される。通信開始後,管理サーバは,ネットワークを通じてユーザが指定したイメージデータを対象サーバのディスクにコピーする。
【0005】
【特許文献1】US2005/0216911
【発明の開示】
【発明が解決しようとする課題】
【0006】
OSデプロイメントソフトウェアでは,バックアップ元サーバ装置で作成したバックアップイメージを用いてデプロイ先サーバ装置にデプロイを行う場合,バックアップ元サーバ装置とデプロイ先サーバ装置のハードウェア構成が異なると,イメージをデプロイした後にブートできない,またブートしても期待する動作を実現できないという問題がある。
【0007】
バックアップ元とデプロイ先のサーバ装置のハードウェア構成が異なる場合に上記のような問題が起こる理由は,バックアップ元サーバ装置のハードウェアに対応するデバイスドライバとデプロイ先ハードウェア装置に対するデバイスドライバが一致しない場合があるためである。例えば,バックアップ元サーバ装置のHBA(Host Bus Adapter)とデプロイ先サーバ装置のHBAが異なり,かつ,バックアップ元サーバ装置のOSにインストールされているHBA用ドライバがデプロイ先サーバ装置のHBAに対応していないとする。この場合,デプロイ先サーバ装置にイメージをデプロイした後にデプロイ先サーバ装置を再起動させても,デプロイ先サーバ装置はブートすることができない。
【0008】
しかし,このような場合であっても,これまでハードウェアスペックが異なるサーバにデプロイしようとしているかどうかを判断することは困難であった。
【課題を解決するための手段】
【0009】
デプロイ元サーバ装置のバックアップデータを含むディスクイメージが管理サーバによって管理され,デプロイ先サーバ装置がネットワークを通じて管理サーバに接続されている計算機システムにおいて,前記ディスクイメージ内にバックアップ元サーバ装置のハードウェア構成情報と,ディスクイメージ内のドライバ情報ファイルから得られるハードウェア構成許容リストを保持している。そしてデプロイ元サーバ装置とデプロイ先サーバ装置のハードウェア構成を比較し,その差異を検知できるようにする。
【発明の効果】
【0010】
あるデプロイ元サーバ装置で作成したディスクイメージを,異なるハードウェア構成のデプロイ先サーバ装置にデプロイさせることが出来る。
【発明を実施するための最良の形態】
【0011】
以下,図面を用いて本願発明の実施の形態を説明する。
【実施例1】
【0012】
図1は,実施例の全体図の例を示している。管理サーバ102は本実施例における制御の中心である。管理サーバ102は,デプロイ管理部110と各種テーブル(111〜114)から構成される。管理サーバ102は,ストレージ装置101と接続される。また,ネットワークスイッチ103を介して,サーバ装置104,SVP(Service Processor)107と接続される。サーバ装置104上の仮想化部105が稼動している場合,管理サーバ102は仮想サーバ106と接続される。管理サーバ102は,サーバ装置104などのサーバは,コンピュータと呼ぶこともある。
【0013】
管理サーバ102は,デプロイ管理部110,サーバ装置管理テーブル111,デプロイイメージ管理テーブル112,仮想サーバ管理テーブル113,ドライバ管理テーブル114から構成される。管理サーバ102は,サーバ装置104からイメージのバックアップを取得したり,サーバ装置104にイメージをデプロイする機能を有する。本実施例のデプロイは,ディスクイメージ108をデプロイ先サーバ装置104Tの内蔵ディスクに展開することにより,バックアップ元サーバ装置104Fで稼動しているOSと同等のOSや業務プログラムをデプロイ先サーバ装置104Tにコピーする。管理サーバ102は,バックアップ時はサーバ装置104からデータをイメージ化したディスクイメージ108を作成し,デプロイ時はサーバ装置104にデプロイする機能を有する。
【0014】
ディスクイメージを配布する配布先のサーバ装置104をデプロイ先サーバ装置104Tと呼び,その配布されたディスクイメージを取得した元となるサーバ装置104をイメージ取得元サーバ104F,またはバックアップ元サーバ104F,デプロイ元サーバ104Fと呼ぶ。サーバ装置104は,それぞれ,バックアップ元サーバ104Fになることもあるし,デプロイ先サーバ104Tになることもある。それぞれのサーバ装置104のハードウェア構成は同一の場合もあれば、異なる場合もある。
【0015】
本実施例のデプロイは,バックアップ元サーバ装置で稼動中のオペレーティングシステム(OS)が記録されているディスク装置の内容から,バックアップ元サーバ装置の固有情報を除去したバックアップイメージを作成する機能と,これを別のディスク装置に保存し,ユーザからデプロイの指示があった場合にデプロイ先サーバ装置のディスク装置にコピーする機能と,コピー後にデプロイ先サーバ装置の固有情報を設定する機能を有する。
【0016】
なお,サーバ装置の固有情報とは,例えばコンピュータ名やNICに割り振ってあるIPアドレスなどがある。ディスクイメージ108は,バックアップ元サーバ装置104Fのバックアップデータを含む場合もある。
【0017】
ストレージ装置101は,バックアップサーバ装置104毎のディスクイメージ108と各種デバイスドライバを格納するドライバディスク109を有する。ドライバディスク109は,OSの動作に必要なドライバが格納されたディスクである。これは,管理サーバ102がサーバ装置104にイメージをデプロイする際にOSの動作に不足しているドライバのインストールに使用される。
【0018】
サーバ装置104には,仮想化部105,仮想サーバ106が含まれる。仮想化部105は,サーバ装置104のメモリやプロセッサなどのリソースを分割する機能や,サーバ装置104が有しない入出力インターフェースなどの入出力デバイスをエミュレーションし,仮想サーバ106に割り当てる機能を有する。仮想サーバ106は,サーバ装置104のリソースの一部を割り当てられ,サーバ装置104とは独立したOSの動作環境を有する。なお,仮想サーバ106は,サーバ装置104に対して複数設けることもできる。
【0019】
SVP107は,管理サーバ102とネットワークスイッチ103を介して接続され,サーバ装置104の電源のON/OFFや,サーバ装置104に障害が発生した場合に管理サーバ102に通知する機能を有する。また,SVP107は,サーバ装置のメモリ容量や,接続された入出力インターフェースやプロセッサの種別といったハードウェア構成を管理することもでき,管理サーバ102からのハードウェア構成情報の取得要求に応じて情報を転送することもできる。
【0020】
サーバ装置管理テーブル111は,ネットワークスイッチ103に接続されたサーバ装置104の情報を格納する。デプロイイメージ管理テーブル112は作成したディスクイメージのOS種別等の識別情報は格納する。仮想サーバ管理テーブル113は,サーバ装置104上で稼動している仮想サーバ106の情報を格納する。ドライバ管理テーブル114は,ドライバディスク109に格納されている各種デバイスドライバの情報を格納する。本実施例では,管理サーバ102がサーバ装置104のディスクイメージを作成し,作成したイメージを別のサーバ装置104にデプロイする例を示す。
【0021】
図2は,管理サーバ102の構成図の例を示す。管理サーバ102は,メモリ201とプロセッサ210とネットワークインターフェース211とディスクインターフェース212から構成される。これらの,ネットワークインターフェース211とディスクインターフェース212はデバイスと総称される。また,入出力デバイス,入出力インターフェースと呼ぶこともある。
【0022】
メモリ201には,デプロイ管理部110,サーバ装置管理テーブル111,デプロイイメージ管理テーブル112,仮想サーバ管理テーブル113,ドライバ管理テーブル114が格納される。デプロイ管理部110は,イメージバックアップ部201,イメージデプロイ部202,仮想サーバ生成部203,許容リスト作成部204,バックアップ/デプロイエージェント205,構成情報取得部206,デプロイイメージ再構築部207,構成情報取得エージェント208から構成される。
【0023】
メモリ201に格納されたイメージバックアップ部201,イメージデプロイ部202,仮想サーバ生成部203,許容リスト作成部204,バックアップ/デプロイエージェント205,構成情報取得部206,デプロイイメージ再構築部207,構成情報取得エージェント208,などの各種プログラムをプロセッサ210が実行することで,イメージバックアップ,イメージデプロイ,仮想サーバ生成,許容リスト作成,バックアップ/デプロイエージェント処理,構成情報取得,デプロイイメージ再構築,構成情報取得エージェント処理の各処理を行う。
【0024】
これらの,イメージバックアップ部201,イメージデプロイ部202,仮想サーバ生成部203,許容リスト作成部204,バックアップ/デプロイエージェント205,構成情報取得部206,デプロイイメージ再構築部207,構成情報取得エージェント208などの各プログラムは,各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【0025】
イメージバックアップ部201は,サーバ装置104または仮想サーバ106のディスクイメージ108を作成する。ディスクイメージとは,ファイルシステムの完全な内容と構造を1つのファイルに格納したデータのことである。通常のバックアップではブート情報やOSによりロックされた部分・物理的な情報等はバックアップすることができないが,ディスクイメージをバックアップするとそれら全てを含んだバックアップを作成できる。イメージファイルと呼ぶこともある。
【0026】
イメージデプロイ部202は,イメージディスクを種々のサーバ装置104にデプロイする。バックアップ/デプロイエージェント205は,バックアップまたはデプロイの対象となるサーバ装置上でバックアップ・デプロイを実行する。
【0027】
仮想サーバ生成部203は,サーバ装置上の仮想化部105を起動させ,仮想サーバ106を作成させる。許容リスト作成部204はデプロイ先のデバイスとして許容できるデバイスを列挙した許容リスト602を作成する。
【0028】
構成情報取得部206は,ネットワークスイッチ103に接続されたサーバ装置104の構成情報を取得する。デプロイイメージ再構築部207は,ディスクイメージがデプロイ先のサーバ装置に適合しない場合にイメージを再構築する。構成情報取得エージェント208は,構成情報を取得する対象となるサーバ装置上で情報を取得し,構成情報取得部206に送信する。
【0029】
図3は,サーバ装置104の構成図の例を示す。サーバ装置104は,メモリ301,プロセッサ305,ネットワークインターフェース307,ディスクインターフェース306,内蔵ディスク308,BMC(Base board Management Controller)309から構成される。BMC309は,SVP107と接続され,構成情報の転送や障害の通知を行う。なお,BMC309は,プロセッサ305とは独立に動作でき,プロセッサ305に障害が発生し動作できなくなった場合にも,障害をSVP107に通知することができる。BMCは,外部からの要求に従い電源管理をおこなうことができる。またBMCは,サーバ104内に設置された温度センサや電圧センサの信号を監視して異常を監視しており,外部からの問い合わせに対して異常の有無を返信する機能を有する。なおBMC309はサーバ装置104とは別の、図には示していない補助電源から給電されるため、サーバ装置104の電源がオフの状態であっても常時機能する。なお,ネットワークI/F307,ディスクI/F306,内蔵ディスク308は複数有することもできる。
【0030】
メモリ301には,OS303と業務プログラム302,仮想化部105と仮想サーバ106,起動モード選択部310が格納される。これらのものはプロセッサ305で実行される。起動モード選択部310は,管理サーバから仮想化部を起動するかしないかの指示を受け付けて,起動モードを選択する。
【0031】
メモリ301に格納された仮想化部105,リソース割当部304,起動モード選択部310などの各種プログラムをプロセッサ305が実行することで,仮想化,リソース割当,起動モード選択の各処理を行う。これらは,仮想化部105,リソース割当部304,起動モード選択部310など,各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【0032】
内蔵ディスク308は,ディスクI/F306を介してプロセッサ305と接続され,OS303や業務プログラム302などを格納する。サーバ装置104の起動時にメモリ301,あるいは仮想サーバ106に転送される。本実施例におけるデプロイは,管理サーバ102から内蔵ディスク308に対してOS303や業務プログラム302をコピーし,OS303や業務プログラム302が正常に動作するように制御する。
【0033】
仮想化部105は,リソース割当部304を含み,仮想サーバ106に割り当てるリソースを管理する。仮想サーバ106は仮想化部105が起動しているときのみ存在し,その中にOS303と業務プログラム302を含む。仮想サーバ106は,仮想化部105によって複数設けることもできる。OS303は,仮想サーバ106毎に独立に動作することができる。なお,サーバ装置104は,仮想化部105を用いずに起動した場合は,内蔵ディスク308からメモリ301にOS303や業務プログラム302を転送する。
【0034】
図4は,デプロイの動作概要の一つの例を示している。図4は,ディスクイメージ108のバックアップ元サーバ装置104Fのハードウェア構成とデプロイ先のサーバ装置104のハードウェア構成が同一な場合など,デプロイ先サーバ装置104Tをそのまま物理サーバとしてデプロイの対象とする場合を示している。このような場合には,管理サーバ102はストレージ装置101内のディスクイメージ108をデプロイ先サーバ装置104Tの内蔵ディスク308に対してネットワークスイッチ103を介してデプロイする。その後,仮想化部105を起動させずに,デプロイ先サーバ装置104Tを物理サーバとして起動する。
【0035】
なお,デプロイ時はサーバ装置104には稼動できるOS303やソフトウェアは存在しない。そのため,管理サーバ102から内蔵ディスク308に対してディスクイメージ108の内容をコピーする際は,デプロイの処理を開始する前に,管理サーバ102からサーバ装置104に対してバックアップ/デプロイエージェント205を転送する。そして,このバックアップ/デプロイエージェント205が,管理サーバから受信したディスクイメージ108の内容を内蔵ディスク308へ書き込む。なお,他の方法としては,仮想化部105がバックアップ/デプロイエージェント205の機能を有し,ネットワークスイッチ103を介してディスクイメージ108のデータを読み取り,サーバ装置104の内蔵ディスク308に書き込んでもよい。
【0036】
図5は,本発明におけるデプロイの動作概要の一つの例を示している。図5は,ディスクイメージ108のバックアップ元サーバ装置104Fのハードウェア構成とデプロイ先サーバ装置104Tのハードウェア構成が異なり,ディスクイメージ108の再構成等では対応できない場合など,デプロイ先サーバ装置104T上に仮想サーバ106を作成し,その仮想サーバ106をデプロイの対象とする場合を示している。
【0037】
仮想サーバ106は,仮想化部105からCPU時間やメモリを割り当てられ,OSから見た物理デバイスをエミュレートした仮想デバイスを割り当てられた,論理的なハードウェア装置である。したがって,仮想サーバ106上のOSからも,仮想サーバ106の外側からも仮想サーバ106は物理的なハードウェアを持つサーバ装置と同じものとして認識される。そのため,仮想サーバ106に対するデプロイは物理的なサーバ装置へのデプロイと変わらない手順で行うことができる。
【0038】
デバイスとの入出力の際には,仮想サーバ106とサーバ装置104の実デバイスとの間に仮想化部105が入ってそれぞれからの入出力を変換する。仮想デバイスとはこの入出力の変換によってOSから見た物理的なデバイスをエミュレートするものである。具体的には,仮想化部105が,サーバ装置104の実デバイスからの入力を,仮想サーバ106に割り当てられた仮想デバイスで処理可能な情報に変換し,仮想サーバ106に入力する。また仮想化部105は,仮想サーバ106からの出力を,サーバ装置104の実デバイスで処理可能な情報に変換し,サーバ装置104の実デバイスに出力する。変換の方法を変えることにより,仮想化部105は様々な種類の物理デバイスをエミュレートしたり,任意の数のデバイスとしてエミュレートした仮想デバイスを,仮想サーバに割り当てることが可能である。
【0039】
従来,バックアップ元サーバ装置104Fのハードウェア構成とデプロイ先サーバ装置104Tのハードウェア構成が異なる場合にはデプロイを実行することができなかったが,本実施例においては,管理サーバ102がストレージ装置101内のディスクイメージ108内のイメージを,デプロイ先サーバ装置104T上の仮想サーバ106に対してデプロイすることにより,デプロイの実行を可能としている。デプロイ後,仮想サーバ106を再起動させることにより,ディスクイメージ108のバックアップ元サーバ装置104Fにインストールされていた状態のOS303,業務プログラム302が仮想サーバ106上に再現される。
【0040】
これにより,ディスクイメージ108を生成した時のサーバ装置104のハードウェア構成と,デプロイするサーバ装置104のハードウェア構成が異なっている場合にも,正常に動作させることができる。ハードウェア構成の違いとは,例えばネットワークインターフェース307,ディスクインターフェース306の種類や数の違いなどである。このように,本発明の実施例においては,ハードウェアの構成が異なるといったソフトウェアだけでは吸収しきれない差異を,仮想化部105のエミュレーションやリソースの割当によって吸収し,仮想サーバ106をデプロイの対象にすることで正常に動作させることができる。
【0041】
なお,仮想サーバを使用する場合,仮想化部105が入出力を変換する必要があり,CPU305に負荷を与え,また,処理にオーバーヘッドが発生することになる。従って,ハードウェア構成が同一の場合や,差分デバイスが許容リストに載っていて許容範囲内である場合には,仮想サーバを使用しない。本実施例のように,仮想サーバを使用するかどうかを判定することにより,ディスクイメージからデプロイできる場合はなるべくデプロイを実行しパフォーマンスを維持することが可能となり,それができない場合には仮想サーバを用いることで可用性を上げることが可能となる。
【0042】
図6はディスクイメージ108の構成例を示している。ディスクイメージ108は,イメージ格納領域603,バックアップ元ハードウェア構成情報601,許容リスト602から構成される。このうち,イメージ格納領域603にバックアップ元サーバ装置104Fに接続されている内蔵ディスク308のデータをイメージ化したものを格納している。イメージ格納領域603の内部にはドライバ情報ファイル604が含まれる。ドライバ情報ファイル604には,ディスクイメージ108が有しているデバイスドライバに関する情報が格納されている。
【0043】
ドライバ情報ファイルは,ドライバが対応するデバイスの種類の情報や,そのドライバが対応するデバイスの情報や,デバイスの名称などが記載されているものである。ドライバ情報ファイル604を参照することにより,各ドライバが対応するデバイスの識別子と,そのデバイスの種類の情報を取得する。ここでいうデバイスの種類の情報とは,例えば「NIC」や「HBA」などである。
【0044】
ディスクイメージ108内にバックアップ元サーバ装置104Fのハードウェア構成情報601を保持することにより,バックアップ元となるディスクイメージ108を別サイトのデータセンタの管理サーバに移動させてデプロイを行うことが出来る。
【0045】
なお,本実施例では,バックアップのみに適用されるものではない。本実施例は,あるサーバ装置104のディスクイメージをストレージ装置101に格納しておき,複数のデプロイ先サーバ104Tに一斉にデプロイするような,データセンターでの大規模なスケールアウトなどにも適用できる。この場合に,ディスクイメージ108内にイメージ取得元サーバ装置104Fのハードウェア構成情報601を保持しており,そのハードウェア構成601と複数あるデプロイ先サーバ装置104Tのハードウェア構成と比較することで,デプロイできるかどうかを判断する。
【0046】
ディスクイメージ108内に,ディスクイメージ作成時のイメージ取得元サーバ装置104Fのハードウェア構成情報601を保持しているため,その後イメージ取得元サーバ装置104Fのハードウェア構成が変更された場合であっても,その変更を考慮しなくてよい。
【0047】
ディスクイメージ108には,通常はイメージ格納領域603しか含まない。しかし,実施例では,バックアップ元ハードウェア構成情報601と許容リスト602をイメージ格納領域603に対応付けて格納する。これらの情報を使うことにより,管理サーバ102が変更されても,ディスクイメージ108だけでデプロイに必要な情報を取得することができる。また,ディスクイメージ108を他の管理サーバ102に移行することも容易になる。なお,サーバ装置104に対してデプロイする際は,ディスクイメージ108のイメージ格納領域603のみを取り出してサーバ装置104に転送する。
【0048】
なお,バックアップ元ハードウェア構成情報601や許容リスト602は管理サーバが有していてもよい。この場合,管理サーバのメモリ上または記憶装置上にバックアップ元ハードウェア構成情報601,許容リスト602を格納する。これらは別の場所に格納されたディスクイメージ108と対応付けられている。
【0049】
図7は,サーバ管理テーブル111の例を示す。カラム701は,物理サーバ識別子を示す。ここにはサーバ装置104毎に識別子が割り当てられる。カラム702にはサーバ装置104に搭載されているCPUの情報が,カラム703にはメモリ容量の情報が格納される。カラム704にはサーバ装置104に搭載されているデバイスの名称と,固有な識別子を持つデバイスに関してはその識別子が格納される。
【0050】
デバイスに固有な識別子の例として,NICのMAC(Media Access Control address)アドレス,HBAのWWN(World Wide Name)等が挙げられる。カラム705にはサーバ装置104に接続されているディスクの情報が格納され,カラム706にはサーバ装置104の仮想化部105が起動しているかどうかの情報が含まれる。カラム706に格納される情報としては,仮想化部105を起動していない状態,仮想化部105を起動している状態がある。サーバ管理テーブルに新しいサーバの情報が追加された時点では、カラム706の情報として仮想化部105を起動していない状態が記録される。カラム707には,カラム704に記載されたデバイスの持つ機能の情報が格納される。
【0051】
サーバ装置管理テーブル111を持つことで,デプロイの際にイメージデプロイ部202がバックアップ元サーバ装置104Fのハードウェア構成情報とデプロイ先サーバ装置104Tのハードウェア構成情報を比較する際に,デプロイ先サーバ装置104Tのハードウェア構成情報をサーバ管理テーブル111から取得できる。また,管理サーバ102はネットワークスイッチ103を介して接続しているサーバ装置104のハードウェア構成情報を構成情報取得部206により取得し,随時アップデートしながら正しく保持し,管理することができる。
【0052】
図8は仮想サーバ管理テーブル113の例を示す。カラム801は仮想化部識別子を格納する。ここには仮想化部105毎に識別子が割り当てられる。カラム802は稼動物理サーバ識別子を格納する。ここにはサーバ装置104毎に識別子が割り当てられる。カラム803は仮想サーバ識別子を格納する。ここには同じ仮想化部105上で一意になるよう仮想サーバ106に識別子が割り当てられる。カラム804には仮想サーバ106に割り当てられているリソースの情報を格納する。
【0053】
具体的なリソースの情報としては,仮想化されたCPU,メモリ,NICやHBA,ディスク装置などの数や容量などの情報が格納される。仮想サーバ管理テーブル113を持つことで,管理サーバ102はネットワークスイッチ103を介して接続しているサーバ装置104上の仮想サーバ106の情報を管理できるようになる。また,複数のサーバ装置104を管理することができるため,システム全体の仮想サーバを把握することができる。なお,仮想化機構識別子801に対して,複数の仮想サーバ識別子803を有することもできる。
【0054】
図9はデプロイイメージ管理テーブル112の例を示す。デプロイイメージ管理テーブル112は,ストレージ装置101に含まれるディスクイメージ108に関する情報を格納する。カラム901はイメージ識別子を格納する。カラム902はイメージのOS種別情報を格納する。カラム903はバックアップ元サーバ装置の識別子を格納する。カラム904はイメージが作成された日時を格納する。ストレージ装置101内に格納された各ディスクイメージの格納場所は,デプロイイメージ管理テーブル112の各イメージ識別子901と対応付けて記憶されている。デプロイイメージ管理テーブル112を持つことにより,デプロイを指示するユーザや,イメージデプロイ部202,バックアップ/デプロイエージェント205がディスクイメージ108を一意に指定できるようになる。
【0055】
デプロイイメージ管理テーブル112によって,デプロイしたいOSの種別をキーとしてデプロイイメージ管理テーブル112を検索することで,デプロイしたいOSを有するイメージ識別子901を逆引きすることもできる。これにより,管理サーバ102が保有するディスクイメージ108の活用範囲を広げることが出来る。例えば,管理者が交替した場合でも,お互いの管理者に共通の情報であるOSの種別をキーに管理情報を検索することで,管理者が固有に設定できる情報であるイメージ識別子901にかかわり無くディスクイメージ108を管理できる。
【0056】
図10は,ドライバディスク109に格納されているドライバを管理するドライバ管理テーブル114の例を示す。カラム1001はドライバ識別子を示す。カラム1002はそのドライバが対応するOSの種別を示す。カラム1003はそのドライバが適用されるデバイスの識別子情報を格納する。例えば,NIC1とNIC2といった情報を格納する。カラム1004は,そのドライバが対応するデバイス毎の機能の情報を格納する。例えばNIC1はチーミングとVLANの機能を持ち,NIC2はチーミングの機能を持つ,といった情報を格納する。
【0057】
VLANとは,物理的な接続形態とは別に仮想的なネットワークを構成し、端末をグループ化するものである。スイッチなどのネットワーク機器の機能により、MACアドレス、IPアドレス、プロトコルなどに応じてグループ化される。ポートベースVLAN,タグVLAN,プロトコルVLAN等がある。
【0058】
チーミングとは,複数のNICを接続し,複数のNIC間でネットワーク・トラフィックの負荷を分散することにより,ネットワーク・パフォーマンスを向上させる。また,フェイル・オーバーに対応しているので,ネットワーク障害によるサービスの停止を回避でき,可用性向上に役立つ。チーミングには2枚以上のNICを使って,片方は待機系としておき1枚が壊れたら切り替える,という構成がある。また,2枚とも作動させておきデータ受信を2枚で,送信を1枚で行い。この時NICはOSからは1枚のように認識される,という構成もある。また,2枚で送受信を行い,この時NICはOSからはNICが1枚のように認識される,という構成もある。これらは2枚以上のNICにおいても適用できる。
【0059】
N-port仮想化とは,1つのファイバチャネルHBAポートに対して、複数のWWNを利用可能にする機能である。この機能を利用することにより,HBAポートの数より多くの仮想サーバに対してLUN(Logical Unit Number)を割り当てることが可能になる。
【0060】
これらの機能の情報は,管理サーバがドライバディスクに格納されたドライバに対応するドライバ情報から機能の情報を取得してカラム1004に格納する。また,管理サーバがドライバ識別子で指定されたドライバに関する情報をインターネット経由で取得し,カラム1004に格納することもできる。またユーザが手入力で登録することもできる。ドライバディスク109の各デバイスドライバの格納場所は,ドライバ管理テーブル114の各ドライバ識別子1001と対応付けて記憶されている。ドライバ管理テーブル114を持つことにより,ドライバディスク109に格納されたデバイスドライバを管理することができる。
【0061】
機能1004に格納された情報は,デプロイ先のサーバ装置104のハードウェアの構成が異なる場合にデプロイの手段を変更するために使用される。デプロイの手段の変更とは,例えば,ドライバの変更だけで対応可能か,あるいは,仮想化部105を用いてデバイスのエミュレーションを行う必要があるかといった手段の変更である。同じNICであっても,メーカーや種類が異なると必要な機能を有していないケースもある。こういった場合に,ドライバ管理テーブル114を用いることで機能の差を事前に知ることができるようになる。
【0062】
図11は許容リスト602の例を示す。カラム1101は,バックアップ元に搭載されているデバイスの種類を示す。具体的には「NIC」,「HBA」といった情報が格納される。カラム1102は,デプロイ先のサーバ装置104に搭載されているデバイスとして許容されるデバイスの識別子を格納する。カラム1103は,デバイスが性能を持つ場合に,その性能値を格納する。性能の例としてはNICやHBA等の速度がある。カラム1104はカラム1102のデバイスの持つ機能の情報を格納する。ここで,LUNマスキングとは,各LUNをどのHBAに使用させるか割り当てる機能である。なお,LUNマスキングを使用した場合,割り当てられたHBA以外はLUNにアクセスできない。FC−TAPE対応とは,ファイバチャネルテープデバイスが使用可能であることを表す。
【0063】
カラム1105はカラム1102に記載されたデバイスに対応するドライバの名称とドライバの格納場所情報を格納する。ドライバの格納場所は,ドライバまでのパス情報として格納されていてもよいし,ドライバ管理テーブル114と対応付けられていてもよい。
【0064】
許容リスト602を持つことにより,バックアップ元サーバ装置104Fのハードウェア構成とデプロイ先サーバ装置のハードウェア構成が異なる場合に,デプロイ先サーバ装置104Tに仮想サーバ106を生成せずにデプロイを実行できるかどうかを判断できる。また,仮想サーバ106を生成しない場合にドライバディスク109内のデバイスドライバを用いてディスクイメージ108内のイメージを再構築することが必要かどうかを判断できる。
【0065】
図12はバックアップ元ハードウェア構成情報601の例を示す。カラム1201はバックアップ元サーバ装置104Fのサーバ識別子を格納する。カラム1202はバックアップ元サーバ装置104FのCPU情報を格納する。カラム1203はメモリ情報を格納する。カラム1204は搭載デバイス情報を格納する。カラム1205はデバイスの性能値を格納する。カラム1206はバーティション構成の情報を格納する。カラム1207はバックアップ元サーバ装置104Fに搭載されているデバイスの機能の情報を格納する。バックアップ元ハードウェア構成情報601を持つことにより,バックアップ時点のバックアップ元サーバ装置104Fのハードウェア構成とデプロイ先サーバ装置104Tのハードウェア構成情報を比較することができるようになる。なお,バックアップ元サーバは,デプロイ元サーバと呼ぶ場合もあるし,イメージ取得元サーバと呼ぶ場合もある。
【0066】
図13は,イメージバックアップ部201の処理フローの例を示す。イメージバックアップ部201がユーザからバックアップ対象となるサーバ装置を選択を受け付ける(ステップ1301)。構成情報取得部がバックアップ対象のサーバ装置104からハードウェア構成情報を取得する。取得した構成情報を,バックアップ元ハードウェア構成情報601に格納する(ステップ1302)。イメージバックアップ部201がバックアップ/デプロイエージェント205をバックアップ元サーバ装置104Fに転送する(ステップ1303)。バックアップ/デプロイエージェントは,バックアップ元サーバ装置上で稼動し,イメージ作成作業,イメージバックアップ部201への作成イメージ転送作業を行う。
【0067】
バックアップ/デプロイエージェントは,バックアップ元サーバのデバイスのドライバ情報を取得し,作成するディスクイメージと共に,イメージバックアップ部201に転送する。もしくは,作成するディスクイメージに含めて,イメージバックアップ部201に転送する。
【0068】
イメージバックアップ部201がバックアップ/デプロイエージェント205に対してバックアップを指示する(ステップ1304)。イメージバックアップ部201がバックアップ/デプロイエージェント205からバックアップ元サーバのバックアップイメージを取得し,管理サーバのストレージ装置に格納する。この際,デプロイイメージ管理テーブル112に,格納したバックアップイメージの情報を格納する。カラム902のOS情報は、バックアップ/デプロイエージェント205によって取得できていればその情報を用い、取得できていない場合はユーザの入力によって取得する。カラム903のバックアップ元サーバ識別子はステップ1301でのユーザからのバックアップサーバ装置の指定をもとに記録する。また、カラム904にはバックアップを行った日時を記録する(ステップ1305)。許容リスト作成部が,デプロイ先サーバのデバイスとして許容されるデバイスを列挙した許容リスト602を作成する(ステップ1306)。
【0069】
イメージバックアップ部201がステップ1306で作成された許容リスト602と,ステップ1302で作成されたバックアップ元ハードウェア構成情報601をディスクイメージ108内に格納する(ステップ1307)。ディスクイメージ108には,バックアップ元サーバのドライバ情報を,ドライバ情報ファイル604として格納する。イメージバックアップ部201がバックアップ対象となるサーバ装置を停止する(ステップ1308)。このフローにより,バックアップ元サーバ装置104Fのディスクのイメージを作成し,バックアップ元サーバ装置104Fのハードウェア構成情報とデプロイ先に搭載されるデバイスの許容リスト206をディスクイメージ108内に格納させることが出来る。
【0070】
図14は,構成情報取得部206の処理フローの例を示す。構成情報取得部206が構成情報を取得する対象となるサーバ装置104を起動する(ステップ1401)。構成情報取得部206が対象サーバ装置104からのネットワークブート要求に応答し,構成情報取得エージェント208を対象サーバ装置104に転送する(ステップ1402)。構成情報取得部206が構成情報取得エージェント208から,対象サーバ装置104のハードウェア構成情報を取得する(ステップ1403)。構成情報取得部が仮想サーバ生成部から呼び出されているかを判断する(ステップ1404)。仮想サーバ生成部から呼び出されている場合は構成情報取得部を終了し,そうでない場合はステップ1405に移行する。ステップ1403で取得したハードウェア構成情報を構成情報取得部206がサーバ装置管理テーブル111に格納する(ステップ1405)。必要に応じてユーザが各デバイスの機能を入力し,その情報を構成情報取得部206がサーバ装置管理テーブル111の対象サーバ装置の項のカラム707に追記する(ステップ1406)。
【0071】
このフローの実行により,サーバ装置104のハードウェア構成情報,搭載デバイスの機能をサーバ装置管理テーブル111に格納することができる。
【0072】
また,イメージバックアップ部201により構成情報取得部206が呼び出された場合には,同様の処理で取得した,バックアップ元サーバ装置F104のハードウェア構成情報を,バックアップ元ハードウェア構成情報601に格納することが出来る。
【0073】
これにより,管理サーバ102はネットワークスイッチ103を介して接続されている全てのサーバ装置104のハードウェア情報を管理できる。
【0074】
図15は構成情報取得エージェント208の処理フローの例を示す。構成情報取得エージェント208がハードウェア構成情報を取得する対象となるサーバ装置104のプロセッサ305とメモリ301の情報を取得する(ステップ1501)。構成情報取得エージェント208が対象サーバ装置104に接続されているディスク308の情報を取得する(ステップ1502)。構成情報取得エージェント208が対象サーバ装置104に搭載されているデバイスの情報を取得する(ステップ1503)。構成情報取得エージェント208が各デバイスの詳細情報を取得する(ステップ1504)。詳細情報としては,名称,バージョン,性能等がある。構成情報取得エージェント208が取得した対象サーバ装置104のハードウェア構成情報を構成情報取得部206に通知する(ステップ1505)。このフローを実行することにより,ハードウェア構成情報を取得するサーバ装置104上で,実際に情報を取得する作業が行われる。
【0075】
図16は,バックアップ/デプロイエージェント205の処理フローの例を示す。バックアップ/デプロイエージェント205がバックアップ/デプロイエージェント205に対する要求がバックアップであるかどうかの判断を行う(ステップ1601)。要求がバックアップであった場合,すなわち,イメージバックアップ部201からバックアップ/デプロイエージェント205が呼ばれた場合は,ステップ1602に移行する。管理サーバ102からの指示に従い,バックアップ/デプロイエージェント205がバックアップの対象となるディスクを選択する(ステップ1602)。バックアップ/デプロイエージェント205が対象となるディスクのデータを取得し,イメージ化し、可能であればOSの種別を取得する(ステップ1603)。バックアップ/デプロイエージェント205がステップ1603で取得したデータをイメージバックアップ部201に転送する(ステップ1604)。
【0076】
一方,ステップ1601において要求がバックアップではなかった場合,すなわち,イメージデプロイ部からバックアップ/デプロイエージェント205が呼ばれた場合は,ステップ1605に移行する。バックアップ・デプロイエージェント205がデプロイの対象となるディスクを選択する(ステップ1605)。デプロイ管理部110の指示に従ってバックアップ・デプロイエージェント205がストレージ装置101内のディスクイメージ108を選択し,その中に含まれるイメージのデータを取得する(ステップ1606)。バックアップ/デプロイエージェント205がステップ1606で取得したイメージをデプロイの対象となるディスクに書き込む(ステップ1607)。このフローの実行により,バックアップやデプロイの対象となるサーバ装置104上での実際のバックアップ・デプロイの作業が実行される。
【0077】
図17は,許容リスト作成部204の処理フローの例を示す。許容リストはデプロイイメージ管理テーブル112のディスクイメージ毎に存在する。この許容リスト602はバックアップ元ハードウェア構成情報601とイメージ格納領域603に対応付けられて格納されている。許容リスト作成部204は,ディスクイメージ108内のバックアップ元ハードウェア構成情報601のカラム1204より,バックアップ元サーバ装置F104に搭載されているデバイスの種類の情報を取得する(ステップ1701)。その後,許容リスト作成部204がバックアップの際に呼び出されたのか,デプロイの際に呼び出されたのかを判断する(ステップ1702)。
【0078】
バックアップの際に呼び出された場合は,ステップ1703に移行する。許容リスト作成部204がディスクイメージ108内のドライバ情報ファイル604を参照する(ステップ1703)。ここで,ドライバ情報ファイル604は,ドライバが対応するデバイスの種類の情報や,そのドライバが対応するデバイスの情報や,デバイスの名称などが記載されているものである。許容リスト作成部204はドライバ情報ファイル604を参照することにより,各ドライバが対応するデバイスの識別子と,そのデバイスの種類の情報を取得する。ここで言うデバイスの種類の情報とは,例えば「NIC」や「HBA」などである。
【0079】
許容リスト作成部204が,バックアップ元ハードウェア構成情報601のカラム1204に記述されているバックアップ元サーバ装置F104に搭載されているデバイスの種類の情報を取得する(ステップ1704)。
【0080】
ステップ1703で取得したドライバ情報ファイル604に格納されたドライバが対応するデバイスの種類の情報と,ステップ1704で取得したバックアップ元サーバ装置F104に搭載されているデバイスの種類の情報と,を比較し,一致するデバイスの種類の情報を取得する(ステップ1705)。
【0081】
その後,ステップ1704で取得したバックアップ元サーバ装置F104に搭載されているデバイスの種類の情報をカラム1101に列挙する。そしてディスクイメージ108内に含まれるドライバで対応可能なデバイス,つまりステップ1705で取得した一致するデバイス,の識別子のリストを許容リスト602のカラム1102に,カラム1101のデバイスの種類と対応付けながら格納する(ステップ1706)。
【0082】
ステップ1706で,許容リスト作成部204が,許容リスト602に格納されたデバイスのうち,デバイスに対応するドライバ情報ファイル604等から取得した性能情報や,ハードウェア構成情報取得時に取得した性能情報を,許容リスト602のカラム1103に性能情報として追記する(ステップ1707)。
【0083】
一方,ステップ1702において許容リスト作成部204がデプロイの際に呼び出されたものと判断された場合は,ステップ1708に移行する。許容リスト作成部204がドライバディスク109内に含まれるドライバ情報ファイル604を参照し,それぞれのドライバが対応しているデバイスの識別子と,そのデバイスの種類の情報を取得する(ステップ1708)。
【0084】
許容リスト作成部204が,バックアップ元ハードウェア構成情報601のカラム1204より,バックアップ元サーバ装置104Fに搭載されているデバイスの種類の情報を取得する(ステップ1709)。
【0085】
ステップ1708で取得したドライバ情報ファイル604に格納されたドライバが対応するデバイスの種類の情報と,ステップ1709で取得したバックアップ元サーバ装置104Fに搭載されているデバイスの種類の情報と,を比較して,一致するデバイスの種類の情報を取得する(ステップ1710)。
【0086】
この一致するデバイスのうち許容リストに記載されていないデバイスがある場合,このデバイスの種類の情報をカラム1102に,カラム1101のデバイスの種類と対応付けながら追記する(ステップ1711)。
【0087】
追記したデバイスのうち,ドライバ情報ファイル604等からその性能情報がわかるものについて,許容リスト作成部204が許容リスト602に性能情報を追記する(ステップ1712)。
【0088】
ステップ1713では,許容リスト602に記載されているデバイスについて,機能の情報を追記する。これらの機能の情報は,許容リスト作成部204が,図示しないデバイス情報格納部からデバイス識別子に対応する機能情報を取得してカラム1104に格納する。また,許容リスト作成部204が,デバイス識別子で指定されたデバイスに関する情報をインターネット経由で取得し,カラム1104に格納することもできる。またユーザが手入力で登録することもできる。
【0089】
この処理フローによって作成される許容リスト602に含まれる情報を参照することにより,バックアップ元サーバ装置104Fのハードウェア構成とデプロイ先サーバ装置104Tのハードウェア構成が異なる場合であっても,ディスクイメージ108内のデバイスドライバまたはドライバディスク109内のデバイスドライバを使用することで対応できる場合であれば,デプロイを実行することが出来るということを判断できる。
【0090】
図18は,イメージデプロイ部202の処理フローの例を示す。イメージデプロイ部202が,管理サーバからどのディスクイメージ108をどのサーバ装置104にデプロイするか,という情報を取得し,デプロイに用いるディスクイメージ108を選択する。この際に,デプロイイメージ管理テーブルのカラム901のイメージ識別子を参照し,イメージを識別する。(ステップ1801)。管理サーバは,例えば,障害の発生したサーバ装置104に対応するディスクイメージを,デプロイイメージ管理テーブル112に基づいて,デプロイするディスクイメージとして決定する。また,デプロイイメージ管理テーブル112の情報をユーザに提示することにより,ユーザがどのディスクイメージをデプロイするか決定することもできる。
【0091】
イメージデプロイ部202が構成情報取得部206を呼び出し,構成情報取得部がデプロイ先サーバ装置104Tのハードウェア構成情報を取得する(ステップ1802)。イメージデプロイ部202がステップ1802で取得したデプロイ先サーバ装置104Tのハードウェア構成情報をサーバ装置管理テーブル111に記録する(ステップ1803)。
【0092】
イメージデプロイ部202がデプロイ先サーバ装置104Tのハードウェア構成情報として,サーバ管理テーブル111のうちの,カラム702のCPU情報,カラム703のメモリ容量の情報,カラム704の搭載デバイス情報と,カラム705の接続されているディスク装置の容量の情報を取得する。
【0093】
また,バックアップ元サーバ装置104Fのハードウェア構成情報として,ディスクイメージ108内のバックアップ元ハードウェア構成情報601のうち,カラム1202のCPU情報,カラム1203のメモリ情報,カラム1204の搭載デバイス情報と,カラム1206のパーティション構成の情報を取得して,それぞれの情報を比較する(ステップ1804)。
【0094】
ここで,バックアップ元サーバ装置104Fのハードウェア構成情報をディスクイメージ108内から取得することにより,デプロイのマスタとなるディスクイメージを別サイトのデータセンタに持ち運んでデプロイを行うことが出来る。また,バックアップイメージを作成した後にバックアップ元サーバ装置104Fのハードウェア構成を変更した場合でも,デプロイ時にはバックアップイメージ作成時のハードウェア構成を参照してデプロイを行うことができるため,管理サーバ102はサーバ装置管理テーブル111の情報を更新して,サーバ装置104の適切な管理を行うことができる。
【0095】
ステップ1804でハードウェア構成を比較した結果,デプロイ先サーバ装置104Tについてディスク容量が足りない,必要なハードウェアが搭載されていない等の,明らかにデプロイが不可能となる要素がない場合は,ステップ1805に移行する。一方,ステップ1804において明らかにデプロイ先サーバ装置104Tにデプロイすることが不可能な条件が見つかった場合は,ステップ1811に移行し,イメージデプロイ部202がデプロイを中止する。
【0096】
ステップ1805では,イメージデプロイ部202が,バックアップ元サーバ装置104Fのハードウェア構成情報をディスクイメージ108内のバックアップ元ハードウェア構成情報601のカラム1204から取得し,デプロイ先サーバ装置104Tのハードウェア構成情報をサーバ管理テーブル111のカラム704から取得して,両者を比較する。
【0097】
これにより,バックアップ元サーバ装置104Fとデプロイ先サーバ装置104Tが同一ハードウェア構成であるかどうかを判断する。ステップ1805において,それぞれのデバイス構成が同一であると判断された場合には,ステップ1810に移行する。一方,ステップ1805において,構成が同一ではないと判断された場合は,構成が同一ではないと判断される原因となったデバイス(差分デバイスと呼ぶ。)を特定し,その後ステップ1806に移行する。
【0098】
ステップ1806では,差分デバイスが許容リスト602に載っているかどうかを,イメージデプロイ部202が許容リスト602のカラム1102の許容されるデバイスの識別子情報を参照することによって判断する。
【0099】
差分デバイスが許容リスト602に載っていた場合は,ディスクイメージ108内に含まれているデバイスドライバの中に,差分デバイスに対応できるものが存在するため,ディスクイメージ108内のイメージをそのままデプロイすることができる。一方,差分デバイスが許容リスト602に載っていなかった場合は,ディスクイメージ108内に含まれているドライバではデプロイ先サーバ装置のデバイスに対応できないということになる。
【0100】
ステップ1806において,差分デバイスが許容リスト602に載っていないと判断された場合にはステップ1807に移行する。ステップ1807では,イメージデプロイ部202がデプロイイメージ再構築部207を呼び出す。デプロイイメージ再構築部207は,ドライバディスク109を用いてデプロイするイメージを再構築するか,仮想サーバ生成部203を呼出し,デプロイ先マシンに仮想サーバを作成する。
【0101】
一方,ステップ1806において,差分デバイスが許容リスト602に載っていると判断された場合は,ステップ1808に移行する。ステップ1808では,イメージデプロイ部202が差分デバイスを表示し,ユーザに対してデプロイ先サーバ装置はバックアップ元サーバ装置と同一ハードウェア構成ではないことを表示する。また,バックアップ元ハードウェア構成情報601のカラム1204のデバイス構成情報,カラム1205の性能値,カラム1207の機能情報と,許容リスト602のカラム1103の性能値,カラム1104の機能情報を取得し,バックアップ元サーバとデプロイ先サーバとでデバイスの種類は同じであるが構成が異なっているデバイスの性能と機能の情報をユーザに対して表示する。
【0102】
ステップ1809では,イメージデプロイ部202がユーザに対してデプロイを続行するかどうか入力を求める。ユーザがデプロイの続行を求めた場合にはステップ1810に移行する。一方,ユーザがデプロイの続行を求めなかった場合にはステップ1811に移行し,デプロイを中止する。なお,ユーザからのデプロイ続行指示を受け付けることなく,必ずイメージをデプロイするという構成にしてもよい。この場合は,ステップ1808のデバイスの性能と機能の情報を表示する必要はない。
【0103】
ステップ1810では,イメージデプロイ部202がバックアップ/デプロイエージェント205をデプロイ先サーバ装置に転送し,実際のデプロイ作業を実行する。
【0104】
このフローの実行により,バックアップ元サーバ装置104Fとデプロイ先サーバ装置104のハードウェア構成が異なる場合にもデプロイを実行することが可能になる。また,ユーザの判断次第ではデプロイを中止することもできる。
【0105】
ディスクイメージ108内にイメージ取得元サーバ装置104Fのハードウェア構成情報601を保持しており,そのハードウェア構成601と複数あるデプロイ先サーバ装置104Tのハードウェア構成と比較することで,デプロイできるかどうかを判断するため,データセンターでの大規模なスケールアウトのように,複数のデプロイ先サーバ104Tに対してデプロイするイメージが複数ある場合であっても,いちいちそれぞれのイメージ取得元サーバに問い合わせる必要が無くなり,デプロイを容易に行うことができる。
【0106】
図19はデプロイイメージ再構築部207の処理フローの例を示す。デプロイイメージ再構築部207が許容リスト作成部204を呼び出し,許容リスト作成部204がドライバディスク109を参照して許容リスト602の更新を行う(ステップ1901)。このステップの実行により,ドライバディスク109内に格納されているドライバで対応できるデバイスが許容リスト206に追記される場合がある。ドライバ管理テーブル114のドライバ適用識別子1003の情報を元に、対応できるデバイスがあるかどうか判定する。
【0107】
デプロイイメージ再構築部207が,ステップ1805でデプロイ先サーバ装置104Tに搭載されている,バックアップ元サーバ装置104Fと構成が異なると判断される原因となった差分デバイスの情報を取得する。デプロイイメージ再構築部207が,この差分デバイスが,更新された許容リスト602のカラム1102に存在するかどうかを判断する(ステップ1902)。差分デバイスが許容リスト602内に存在すると確認された場合は,ステップ1903に移行する。この場合は,ドライバディスク109内に格納されているデバイスドライバを用いて,ディスクイメージ108内のデプロイイメージを再構築することによって,イメージをデプロイ先サーバ装置104Tに対してデプロイすることが可能である。
【0108】
ステップ1903では,デプロイイメージ再構築部207がユーザに対してデプロイ先サーバ装置104Tはバックアップ元サーバ装置104Fと同一ハードウェア構成ではないことを表示する。また,バックアップ元ハードウェア構成情報601のカラム1204のデバイス構成情報,カラム1205の性能値,カラム1207の機能情報と,許容リスト602のカラム1103の性能値,カラム1104の機能情報を取得し,バックアップ元サーバ装置104Fとデプロイ先サーバ装置104Tに搭載されているデバイスの性能と機能の情報をユーザに対して表示する。
【0109】
その後,デプロイイメージ再構築部207がユーザに対してデプロイを続行するかどうか入力を求める(ステップ1904)。ユーザがデプロイの続行を求めた場合にはステップ1905に移行する。一方,ユーザがデプロイの続行を求めなかった場合にはステップ1906に移行し,デプロイを中止する。なお,ユーザからのデプロイ続行指示を受け付けることなく,必ずイメージをデプロイするという構成にしてもよい。この場合は,ステップ1903のデバイスの性能と機能の情報を表示する必要はない。
【0110】
ステップ1905では,デプロイイメージ再構築部207が許容リスト602のカラム1102のデバイス識別子情報をキーとしてドライバディスク109内の適切なデバイスドライバを選択し,ディスクイメージ108内のイメージ格納領域603にインストールして,イメージを再構築する。
【0111】
例えば,ディスクイメージ108内のバックアップ元ハードウェア構成情報601が図12に示すような構成であり、デプロイ先サーバ装置のハードウェア構成情報が図7のサーバ3のような構成であった場合,以下のような流れでデプロイイメージが再構築される。このとき,バックアップ元サーバ装置とデプロイ先サーバ装置とのハードウェア構成の差異は,バックアップ元サーバ装置でのNIC1,HBA1がデプロイ先サーバ装置ではそれぞれ一つずつNIC2,HBA2に置き換わっている点である。従って,ディスクイメージ108をデプロイ先サーバ装置にデプロイする際にはNIC2,HBA2に対応するデバイスドライバが必要になる。
【0112】
ここで,許容リスト602を参照するとNIC2に対応するデバイスドライバとHBA2に対応するデバイスドライバは,それぞれドライバディスク内に存在することが分かる。デプロイイメージ再構築部207はドライバディスク内のドライバ2とドライバ5をディスクイメージ108内のイメージ格納領域603にインストールして,イメージを再構築する。
【0113】
ステップ1902で対象となるデバイスが許容リスト602に存在しなかった場合は,ステップ1907に移行する。ステップ1907では,デプロイイメージ再構築部207が仮想サーバ生成部203を呼び出す。呼び出した結果,デプロイ可能な仮想サーバ106を生成するか,ユーザがデプロイを中止するかのどちらかとなる。このフローを実行することで,ディスクイメージ108内のデバイスドライバだけでは対応できないハードウェア構成のデプロイ先サーバ装置104Tに対しても,ドライバディスク109内にあるデバイスドライバで対応できる場合はデプロイを行うことが可能になる。
【0114】
本実施例では,ステップ1806において,差分デバイスがデバイス許容リスト内に存在しない場合に,デプロイイメージ再構築部を呼出し,イメージ再構築を実行する。しかし,ステップ1806において,差分デバイスがデバイス許容リスト内に存在しない場合に,デプロイイメージ再構築部を呼出すことなく,仮想サーバ生成部203を呼出し,仮想サーバを生成することも可能である。
【0115】
図20は,仮想サーバ生成部203の処理フローの例を示す。仮想サーバ生成部203が,デプロイ先サーバ装置104Tはバックアップ元サーバ装置104Fと同一ハードウェア構成ではないため,デプロイ先サーバ装置104T上で仮想サーバ106を作成してデプロイを行う旨のメッセージをユーザに対して表示する(ステップ2001)。仮想サーバ生成部203がユーザに対してデプロイを続行するかどうか入力を求める(ステップ2002)。
【0116】
ユーザがデプロイの続行を求めた場合にはステップ2004に移行する。一方,ユーザがデプロイの続行を求めなかった場合にはステップ2003に移行し,デプロイを中止する。なお,ユーザからのデプロイ続行指示を受け付けることなく,必ず仮想サーバを生成してイメージをデプロイするという構成にしてもよい。この場合は,ステップ2001のデバイスの性能と機能の情報を表示する必要はない。
【0117】
ステップ2004では,仮想サーバ生成部203がデプロイ先サーバ装置104Tの仮想化部105を起動する。仮想サーバ生成部203が、デプロイが可能なハードウェア構成を持つ仮想サーバ106の構成を決定する。そして、仮想サーバ生成部203が仮想化部に対して、仮想サーバの起動を指示する。デプロイが可能なハードウェア構成とは,デプロイ元ハードウェア構成情報601と同じハードウェア構成か,あるいは許容リスト602に含まれるハードウェア構成で構築された仮想サーバ106である。
【0118】
従って,仮想サーバ106の構成は,デプロイ元ハードウェア構成情報601と同じハか,あるいは許容リスト602に含まれるハードウェア構成の範囲内となる。
【0119】
例えば,ディスクイメージ108内のバックアップ元ハードウェア構成情報601が図12に示すような構成であり,デプロイ先サーバ装置のハードウェア構成が図7にサーバ2として示すような構成であった場合,以下のような流れで仮想サーバ106が構成される。まず、バックアップ元サーバ装置とデプロイ先サーバ装置とのハードウェア構成の差異は,バックアップ元サーバ装置ではNIC1が1枚,HBA1が2枚であるところが,デプロイ先サーバ装置ではNIC3、HBA1がそれぞれ1枚ずつに置き換わっている点である。
【0120】
この場合、ディスクイメージ108をデプロイ先サーバ装置にデプロイするためにはNIC3用のデバイスドライバと,もう一枚のHBA1が必要である。しかし、許容リスト602を参照すると、NIC3用のデバイスドライバはディスクイメージ内やドライバディスク内に存在しない。また、HBA1も用意ができないものとする。
【0121】
それでもユーザからデプロイ続行の指示があった場合には,仮想サーバ生成部203が仮想化部105に対し,NIC3一つ、HBA1一つの入出力をNIC3一つ、HBA1二つに対する入出力に変換し、仮想サーバ上のOSから見た場合にNIC3を一つ、HBA1を二つ持つように見える仮想サーバの構成するように指示する。また、仮想サーバ生成部203はバックアップ元ハードウェア構成情報の601のカラム1202,カラム1203、カラム1206の情報を用いて,仮想サーバへの仮想CPU、仮想メモリ、仮想ディスクの割り当てを仮想化部105に対して指示する。
【0122】
仮想サーバ106は,仮想化部105からCPU時間やメモリを割り当てられ,デプロイ元サーバ104Fの入出力デバイスをエミュレートした仮想デバイスを割り当てられる。デプロイ元サーバ104Fの入出力デバイスとしてエミュレートされた仮想デバイスからの入力データを,デプロイ先サーバの実デバイスが認識可能なデータに変換し、デプロイ先サーバの実デバイスに出力する。逆にデプロイ先サーバの実アドレスからの入力データを,仮想デバイスが認識可能なデータに変換し,仮想サーバの仮想デバイスに出力する。
【0123】
なお,許容リスト602に含まれるハードウェア構成で仮想サーバ106を構成する場合は,場合によっては複数の候補が存在することもある。例えば,図11の許容リストが存在する場合において,仮想サーバ106上でエミュレートするNICの候補は,NIC1とNIC2となる。この場合,性能値1103が高いNIC,あるいは機能1104が豊富なNICを選択することで,機能不足や性能不足などを無くしデプロイ後の動作を確実にすることができる。
【0124】
ステップ2005では,仮想化部105を起動させるためにデプロイ先のサーバ装置104が再起動する。ステップ2006では,仮想サーバ生成部203がデプロイ先サーバ装置104Tが起動する際に出すネットワークブートの要求を無視する。このことにより,デプロイ先の物理サーバ装置104にデプロイすることを防ぎ,仮想サーバ106に対してデプロイできるようになる。仮想化部105が起動したら、ステップ2004で決定した構成に従って、仮想化部105が仮想サーバ106を生成する。
【0125】
ステップ2007では,仮想サーバ生成部203が,ステップ2004で決定し,ステップ2006で仮想サーバ106の作成において使用した仮想サーバの構成情報から,仮想サーバ管理テーブル113のカラム804の割り当てリソースの項に仮想CPU,仮想メモリ、仮想ディスク、仮想デバイスの情報を記録する。また、仮想サーバ生成部203が、この時点で構成情報取得部206が持っているデプロイ先サーバ装置の情報から物理サーバを判別し,サーバ管理テーブル111のカラム706に仮想化機構を使用しているという情報を追記する。
【0126】
仮想サーバ106をネットワークブートさせて仮想サーバ106のハードウェア構成情報を取得し、仮想サーバへのデプロイ処理を開始させる(ステップ2008)。このフローを実行することにより,デプロイを行うための仮想サーバ生成を行うことができる。
【0127】
本実施例は,データセンターでの大規模なスケールアウトなどにも適用できる。例えば,バックアップを取ったデータセンターからイメージを持ち運び他のデータセンターでデプロイする場合など,事前にデプロイ先マシンとしての正しい構成を調査しておくことは手間がかかる。この発明を用いてデプロイ可能な範囲が広がればデプロイ先マシン購入時のチェックも少なくて済み,選択肢も広がるため,異なるデータセンターで同じバックアップイメージを使ったデプロイが可能となる。
【0128】
なお,本実施例は,ネットワークブートに適用することもできる。ネットワークブート(ネットブート)は,ストレージ装置101に格納されたディスクイメージ108(起動ディスク)をサーバ装置104のメモリに読み込むことによって、サーバ装置104を起動する。一つのディスクイメージ108からネットブートすることにより複数台のサーバ装置104を起動できるようになる。
【0129】
ネットブートの場合,管理サーバ102でネットブート可能かどうか判定する方法と,サーバ装置104でネットブート可能かどうか判定する方法とがある。管理サーバ102で判定する方法では,サーバ装置104がネットブート要求を管理サーバに送信する。また,自分のサーバ装置104のハードウェア構成情報を管理サーバに送信する(ステップ1802に対応)。
【0130】
管理サーバは,ネットブート要求を受けつけると,受信したサーバ装置104のハードウェア構成情報と,ディスクイメージ108のハードウェア構成情報601とを比較する(ステップ1804以降に対応)。これ以降はステップ1804以降と同様である。ハードウェア構成が一致する場合には(ステップ1805に対応),ネットブートを実行し,サーバ装置104はディスクイメージ108を取得してメモリ上に展開する(ステップ1810に対応)。
【0131】
ハードウェア構成が一致しない場合であっても,差分デバイスが許容リストに存在する場合には,ネットブートを実行する(ステップ1806に対応)。差分デバイスが許容リストに存在しない場合には,イメージデプロイ部が,ディスクイメージ再構築部207を呼出し(ステップ1807に対応),ネットブートするディスクイメージ108を再構築する(ステップ1905)。その後,ネットブートを実行し,サーバ装置104は再構築されたディスクイメージ108を取得してメモリ上に展開する(ステップ1810に対応)。
【0132】
一方,サーバ装置104でネットブート可能かどうか判定する方法では,サーバ装置104は,自分のサーバのハードウェア構成情報を取得し,ネットブートするディスクイメージ108内のハードウェア構成情報601を取得し,ステップ1804以降と同様に,それぞれを比較する。構成が同一であれば(ステップ1805)ネットブートを実行し,サーバ装置104はディスクイメージ108を取得してメモリ上に展開する(ステップ1810に対応)。
【0133】
構成が異なっている場合には,サーバ装置104は,ディスクイメージ108内の許容リストを取得する。取得した許容リストに,差分デバイスが載っている場合には(ステップ1806に対応),サーバ装置104は,そのままネットブートを実行する。差分デバイスが許容リストに存在しない場合には,イメージデプロイ部が,ディスクイメージ再構築部207を呼出し(ステップ1807に対応),ネットブートするディスクイメージ108を再構築する(ステップ1905)。その後,ネットブートを実行し,サーバ装置104は再構築されたディスクイメージ108を取得してメモリ上に展開する(ステップ1810に対応)。
【0134】
またデプロイと同様に,仮想サーバを使用することもできる。仮想サーバを生成した後,ネットブートを実行し,サーバ装置104はディスクイメージ108を取得して仮想サーバのメモリ上に展開する。
【0135】
このように,本実施例は,デプロイだけでなく,ネットワークブートにも対応することができる。
【図面の簡単な説明】
【0136】
【図1】全体構成図の例を示す。
【図2】管理サーバの構成図の例を示す。
【図3】サーバ装置の構成図の例を示す。
【図4】物理サーバ装置に対してデプロイを行う場合の概要図の例を示す。
【図5】仮想サーバに対してデプロイを行う場合の概要図の例を示す。
【図6】ディスクイメージの構成図の例を示す。
【図7】サーバ装置管理テーブルの例を示す。
【図8】仮想サーバ管理テーブルの例を示す。
【図9】デプロイイメージ管理テーブルの例を示す。
【図10】ドライバ管理テーブルの例を示す。
【図11】許容リストの例を示す。
【図12】バックアップ元ハードウェア構成情報の例を示す。
【図13】イメージバックアップ部のフローチャートの例を示す。
【図14】構成情報取得部のフローチャートの例を示す。
【図15】構成情報取得エージェントのフローチャートの例を示す。
【図16】バックアップ・デプロイエージェントのフローチャートの例を示す。
【図17】許容リスト作成部のフローチャートの例を示す。
【図18】イメージデプロイ部のフローチャートの例を示す。
【図19】デプロイイメージ再構築部のフローチャートの例を示す。
【図20】仮想サーバ生成部のフローチャートの例を示す。
【符号の説明】
【0137】
101 ストレージ装置
102 管理サーバ
103 ネットワークスイッチ
104 サーバ装置
105 仮想化部
106 仮想サーバ
107 SVP
108 ディスクイメージ
109 ドライバディスク
110 デプロイ管理部
111 サーバ装置管理テーブル
112 デプロイイメージ管理テーブル
113 仮想サーバ管理テーブル
114 ドライバ管理テーブル

【特許請求の範囲】
【請求項1】
管理コンピュータで実行されるデプロイ方法であって,
イメージ取得元コンピュータのディスクイメージと,前記イメージ取得元コンピュータのハードウェアの情報とを対応付けて記憶装置に保持し,
デプロイ先コンピュータのハードウェアの情報を取得し,
前記デプロイ先コンピュータのハードウェアの情報と前記イメージ取得元コンピュータのハードウェアの情報とを比較し,
前記比較の結果に基づいて,前記ディスクイメージを前記デプロイ先コンピュータにデプロイするかどうかを決定する
ことを特徴とするデプロイ方法。
【請求項2】
請求項1に記載のデプロイ方法であって,
前記比較の結果,それぞれの前記ハードウェアの情報が対応する構成であった場合に,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とするデプロイ方法。
【請求項3】
請求項2に記載のデプロイ方法であって,
前記イメージ取得元コンピュータが有するハードウェアのドライバに関するドライバ情報を保持し,
前記ドライバ情報に基づいて抽出された,前記ハードウェアのドライバが対応しているハードウェアの情報を,許容情報として保持し,
前記比較の結果,それぞれの前記ハードウェアの情報が対応しない構成であった場合に,前記デプロイ先コンピュータの前記対応していないハードウェアが,前記許容情報に含まれるか判定し,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていた場合に,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とするデプロイ方法。
【請求項4】
請求項3に記載のデプロイ方法であって,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,
ドライバが格納されたドライバ格納部から前記対応していないハードウェアのドライバを取得し,
前記取得したドライバを含む前記イメージ取得元コンピュータのディスクイメージを再構築し,
前記再構築したディスクイメージを前記デプロイ先コンピュータバにデプロイする
ことを特徴とするデプロイ方法。
【請求項5】
請求項3に記載のデプロイ方法であって,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,
前記イメージ取得元コンピュータのハードウェアに対応する仮想ハードウェアをエミュレートする仮想化部と,前記仮想ハードウェアを有する仮想コンピュータと,を前記デプロイ先コンピュータに起動する指示を出し,
前記ディスクイメージを前記デプロイ先コンピュータの前記仮想コンピュータにデプロイし,
前記デプロイ先コンピュータのハードウェアの入出力データを前記仮想ハードウェアの入出力データに前記仮想化部により変換する
ことを特徴とするデプロイ方法。
【請求項6】
請求項1〜5のいずれか1項に記載のデプロイ方法であって,
前記ハードウェアは入出力デバイスであることを特徴とするデプロイ方法。
【請求項7】
管理コンピュータであって,
イメージ取得元コンピュータのハードウェアの情報およびデプロイ先コンピュータのハードウェアの情報を取得する構成情報取得部と,
前記イメージ取得元コンピュータのディスクイメージを生成し,前記ディスクイメージと,前記イメージ取得元コンピュータのハードウェアの情報とを対応付けて記憶装置に格納するイメージバックアップ部と,
前記デプロイ先コンピュータのハードウェアの情報と前記イメージ取得元コンピュータのハードウェアの情報とを比較し,前記比較の結果に基づいて,前記ディスクイメージを前記デプロイ先コンピュータにデプロイするかどうかを決定するイメージデプロイ部と,
を有することを特徴とする管理コンピュータ。
【請求項8】
請求項7に記載の管理コンピュータであって,
前記判定の結果,それぞれの前記ハードウェアの情報が対応する構成であった場合に,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とする管理コンピュータ。
【請求項9】
請求項8に記載の管理コンピュータであって,
前記イメージバックアップ部により取得された,前記イメージ取得元コンピュータが有するハードウェアのドライバに関するドライバ情報,に基づいて抽出された,前記ハードウェアのドライバが対応しているハードウェアの情報を,許容情報として抽出する許容情報生成部を有し,
前記イメージデプロイ部は,
前記比較の結果,それぞれの前記ハードウェアの情報が対応しない構成であった場合に,前記デプロイ先コンピュータの前記対応していないハードウェアが,前記許容情報に含まれるか判定し,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていた場合に,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とする管理コンピュータ。
【請求項10】
請求項9に記載の管理コンピュータであって,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,ドライバ格納部から前記対応していないハードウェアのドライバを取得し,該ドライバを含む前記イメージ取得元コンピュータのディスクイメージを再構築するデプロイイメージ再構築部を有し,
前記管理コンピュータの前記イメージデプロイ部は,前記再構築したディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とする管理コンピュータ。
【請求項11】
請求項9に記載の管理コンピュータであって,
前記イメージ取得元コンピュータのハードウェアに対応する仮想ハードウェアをエミュレートし,前記デプロイ先コンピュータの入出力データを前記仮想ハードウェアの入出力データに変換する仮想化部と,前記仮想ハードウェアを有する仮想コンピュータとを,前記デプロイ先コンピュータ上に起動する指示を出す仮想コンピュータ生成部を有し,
前記管理コンピュータの前記イメージデプロイ部は,前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,前記ディスクイメージを前記デプロイ先コンピュータの前記仮想コンピュータにデプロイする
ことを特徴とする管理コンピュータ。
【請求項12】
請求項7〜11のいずれか1項に記載の管理コンピュータであって,
前記ハードウェアは入出力デバイスであることを特徴とする管理コンピュータ。
【請求項13】
コンピュータシステムであって,
管理コンピュータは,
前記イメージ取得元コンピュータのハードウェアの情報および前記デプロイ先コンピュータのハードウェア情報を取得する構成情報取得部と,
前記イメージ取得元コンピュータのディスクイメージを生成し,前記ディスクイメージと,前記イメージ取得元コンピュータのハードウェアの情報とを対応付けて前記記憶装置に格納するイメージバックアップ部と,
前記デプロイ先コンピュータのハードウェアの情報と前記イメージ取得元コンピュータのハードウェアの情報とを比較し,前記比較の結果に基づいて,前記ディスクイメージを前記デプロイ先コンピュータにデプロイするかどうか決定する,イメージデプロイ部と,
を有することを特徴とするコンピュータシステム。
【請求項14】
請求項13に記載のコンピュータシステムであって,
前記比較の結果,それぞれの前記ハードウェアの情報が対応する構成であった場合に,前記管理コンピュータの前記イメージデプロイ部は,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とするコンピュータシステム。
【請求項15】
請求項14に記載のコンピュータシステムであって,
前記管理コンピュータは,
前記イメージバックアップ部により取得された,前記イメージ取得元コンピュータが有するハードウェアのドライバに関するドライバ情報,に基づいて抽出された,前記ハードウェアのドライバが対応しているハードウェアの情報を,許容情報として抽出する許容情報生成部を有し,
前記管理コンピュータの前記イメージデプロイ部は,
前記比較の結果,それぞれの前記ハードウェアの情報が対応しない構成であった場合に,前記デプロイ先コンピュータの前記対応していないハードウェアが,前記許容情報に含まれるか判定し,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていた場合に,前記ディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とするコンピュータシステム。
【請求項16】
請求項15に記載のコンピュータシステムであって,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,ドライバ格納部から前記対応していないハードウェアのドライバを取得し,該ドライバを含む前記イメージ取得元コンピュータのディスクイメージを再構築するデプロイイメージ再構築部を有し,
前記管理コンピュータの前記イメージデプロイ部は,前記再構築したディスクイメージを前記デプロイ先コンピュータにデプロイする
ことを特徴とするコンピュータシステム。
【請求項17】
請求項15に記載のコンピュータシステムであって,
前記デプロイ先コンピュータは,
前記イメージ取得元コンピュータのハードウェアに対応する仮想ハードウェアをエミュレートし,前記デプロイ先コンピュータの入出力データを前記仮想ハードウェアの入出力データ変換する仮想化部と,
前記仮想ハードウェアを有する仮想コンピュータを,を有し,
前記管理コンピュータの前記イメージデプロイ部は,
前記判定の結果,前記対応していないハードウェアが前記許容情報に含まれていない場合に,前記ディスクイメージを前記デプロイ先コンピュータの前記仮想コンピュータにデプロイする
ことを特徴とするコンピュータシステム。
【請求項18】
請求項13〜17のいずれか1項に記載のデプロイシステムであって,
前記ハードウェアは入出力デバイスであることを特徴とするコンピュータシステム。

【図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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate