図1Aは、本発明における実施例1のサーバシステムの全体図を示している。管理サーバ101は、NW-SW104を介して、現用サーバ102および予備サーバ103と接続されている。現用サーバ102は業務サービスを提供しており、予備サーバ103は現用サーバ102において障害が発生した際に、代わって業務サービスを提供するためのサーバである。管理サーバ101は、現用サーバ102と予備サーバ103を監視する。特に本実施例のサーバシステムは、現用サーバ102において発生する障害通知を監視し、現用サーバにおいて障害が発生したと確認した際に、予備サーバ103において業務サービスを提供することで、ビジネス継続性を高めることを主目的とする。
現用サーバ102はストレージ装置122を内蔵し、予備サーバ103はストレージ装置132を内蔵しており、夫々のストレージ装置122および132には、OSや業務サービスを提供するためのミドルウェアやアプリケーションがインストールされている。管理サーバ101はストレージ装置112を内蔵している。ストレージ装置112には、業務サービスを提供する上で必要なソフトウェアがインストールされたディスクイメージ121が格納されている。
ディスクイメージ121の内容は、後で図面を用いて説明するが、業務サービスを提供する個々の現用サーバのディスクイメージ、または個々のサーバの固有情報が抜けたディスクイメージ、または共通に利用するソフトウェアのみがインストールされているだけのディスクイメージ、などがある。
現用サーバ102において、障害が発生した際には、障害が発生した現用サーバ102が提供する業務サービスと同様のディスクイメージ121を予備サーバ103へ配信することで、業務サービスを継続することが可能になる。ディスクイメージ121を配信する際、障害が発生した現用サーバ102と全く同じディスクイメージ121を配信することで、配信作業のみを行うことで業務サービスの継続を図ることが出来る。ただし、現用サーバの台数分だけディスクイメージ121を準備する必要があり、ストレージ容量も膨大になる。
それに対し、固有情報が抜けたディスクイメージを利用することで、配信後に固有情報を設定する作業が増えるものの、ディスクイメージ121を業務サービスごとに共通化することが出来る。これにより、ディスクイメージ121を保存するために必要なストレージ容量も削減することが可能になる。更に、共通に利用するソフトウェアのみがインストールされているだけのディスクイメージ121を利用することで、システム内でディスクイメージ121を共有することが可能になる。ただし、ディスクイメージを配信した後に、必要なソフトウェアをインストールしたり、OSやソフトウェアごとの固有情報を設定する作業が増えるため、若干フェイルオーバーの高速性が低下するが、従来のようになにもインストールされていないサーバへインストール作業を実施するよりも遥かに作業量や作業時間の面で優位である。
特に、本実施例では、予め予備サーバ103へディスクイメージを配信しておくことで、フェイルオーバー完了までの時間を短縮するため、再インストールは出来るだけ回避すべきである。そのため、共通分のみがインストールされているディスクイメージ121を予備サーバへ予め配信しておくことで、再インストールを回避し、より高速にフェイルオーバーを実現することが可能である。上記のような高速フェイルオーバーを実現するためのプログラム群が制御プログラム110である。また、管理テーブル群111には、現用サーバ102や予備サーバ103に関する情報テーブルやディスクイメージ121に関する情報テーブル、また業務サービスに関する情報テーブルが格納されている。これら制御プログラム110、管理テーブル111は後に詳述される。
図1Bはディスクイメージの一例を模式的に示した図である。同図におけるディスクイメージ140には、アプリケーション・ミドルウェアであるP.P. (Program Product)142、OS143、ハードウェア(アーキテクチャ)情報144が含まれている。また、P.P.142、OS143内には、固有情報141として設定値145、146が含まれている。このディスクイメージとは、一般的にサーバに接続されたストレージ装置に格納されたデータを採取したファイルである。このディスクイメージを元のサーバへリストアすることで、ディスクイメージを採取したときの状態へサーバを復旧することが出来る。また、同じハードウェア構成のサーバへリストアすることで、OSやP.P.がインストールおよび設定された状態で複製することが出来る。
ただし、図1Bに示すOS143やP.P.142は、各ハードウェアに固有な情報(MACアドレスなど)や、ソフトウェア固有の設定値(ライセンス、ホスト名、IPアドレスなど)を保持しているため、単純にディスクイメージを複製配信しただけでは、業務を提供するシステムへ組み込めないケースが存在する。そのため、サーバ毎に適切な設定を実施する必要がある。種々の実施例で利用されるディスクイメージは、OSやP.P.を内包する場合と、しない場合があり、また、ハードウェアやソフトウェアに関する設定値について、保持している場合と、しない場合があることは上述の通りである。
図2は、本実施例のシステムの高速フェイルオーバー方法について概略を図解したものである。なお、図2他における丸内数字の表示は、本明細書中にあっては、括弧内数字で表示している点に留意されたい。まず、業務サービスの優先順位や稼動実績などから予め予備サーバ103へディスクイメージ121を配信しておく。ただし、予め配信しておくことは必須ではない。ライセンス数の上限値を超える場合など、予め配信しておくことが困難なケースも存在するためである。現用サーバ102では、業務A202が提供されている。(1)障害通知211を管理サーバ101が受け取る。(2)予備サーバ103へ配信されているディスクイメージを確認し、再配信または再設定が必要か否かを判定する。(3)-1(要の場合)予備サーバ103は配信済みのディスクイメージが業務B203などの別業務のディスクイメージだった場合には再配信が必要となるため、業務A202のディスクイメージを配信する。(3)-2(否の場合)予備サーバには既に業務A202のディスクイメージが配信されているため、すぐに電源Onをすることが可能な状態である。(4)前段階までに予備サーバ103には業務A202のディスクイメージが配信されているため、予備サーバ103を本番業務LANへ参加させ、業務サービスを継続させる。上の概略に示した通り、予め配信しておいたディスクイメージ121が目的のディスクイメージだった場合には、高速なフェイルオーバーを提供することが可能である。また、再配信とまではいかなくても、再設定のみで予備サーバの設定を完了することが出来れば、同様に高速なフェイルオーバーを提供することが可能である。本実施例では、再配信を回避し再設定にて目的のサーバを構築する方法について言及している。つまり、再設定にて当初の目的を達成できる許容範囲設定についても後述する。(2)のタイミングでは、残った予備サーバをどのような構成で保持するかを判定し、必要に応じて、予備サーバへ再配信または再設定を行う。
図3は、本実施例のシステムにおける管理サーバ101の一構成例を述示している。演算を処理する中央処理部(Central Processing Unit、CPU)301、CPU301で演算するプログラムや処理を格納する記憶領域であるメモリ302、IPネットワークを介して通信を行うためのNIC(Network Interface Card)304、プログラムやデータを格納し保存する記憶領域であるストレージ装置112から構成されている。先に述べたように、サーバの構成は通常の計算機の構成である。
メモリ302には、制御プログラム群110および管理テーブル群111が格納されている。制御プログラム110(図15参照)は、障害通知受信プログラム310(図16参照)、ネットワーク設定変更プログラム311(図17参照)、配信指示プログラム312(図18参照)、配信実行プログラム313(図19参照)、テスト実行プログラム314(図20参照)から構成される。
管理テーブル群111は、サーバのハードウェア情報管理テーブル321(図6参照)、ディスクイメージに格納されているソフトウェアに関するテーブル322(図7参照)、ディスクイメージが内包するハードウェアに関する情報テーブル(図8参照)、業務提供サーバ管理テーブル324(図9、図10、図11参照)、業務とネットワークに関するテーブル325(図12参照)、業務の優先順位に関するテーブル326(図13参照)、ストレージサブシステムのセキュリティ設定テーブル327(図24参照)、障害通知管理テーブル328(図14参照)、差分データ管理テーブル329(図30参照)、ライセンス管理テーブル330(図31参照)から構成される。これらの詳細は、後で対応する図面を用いて説明される。管理サーバ101が受信する障害通知は、管理対象である現用サーバ102や予備サーバ103が持つハードウェアおよびソフトウェアによる監視機構によって実現される。
図4は、現用サーバ102の構成を述べている。現用サーバ102は、演算を処理するCPU401、CPU401で演算するプログラムや処理を格納する記憶領域であるメモリ402、IPネットワークを介して通信を行うためのNIC403、電源制御を管理サーバ101から実行するためのBMC(Baseboard Management Controller)404から構成されている。現用サーバ102の電源OnまたはOffについてBMC404を介して実行することが可能である。現用サーバ102と管理サーバ101は、NW−SW104を介して接続されている。NIC403を介して、現用サーバ102で稼動する監視プログラム(記載しない)が管理サーバ101と通信を行い、障害を通知する。前述の監視プログラムによって、現用サーバ102の設定や負荷や障害などの状態を監視することが可能である。NIC403は、管理用に設けられることもあり、業務で利用するためのNICは別途設置されることが一般的である。また、BMC404を介しても管理サーバ101とネットワーク的に接続されており、ハードウェア的な障害を通知したり、電源Onや強制的な電源Offをハードウェア的に実施することが可能である。
図5は、予備サーバ103の構成を述べている。予備サーバ103は、演算を処理するCPU501、CPU501で演算するプログラムや処理を格納する記憶領域であるメモリ502、IPネットワークを介して通信を行うためのNIC503、電源制御を管理サーバ101から実行するためのBMC504から構成されている。予備サーバ103の電源OnまたはOffについてBMC504を介して実行することが可能である。予備サーバ103と管理サーバ101は、NW−SW104を介して接続されている。NIC503を介して、予備サーバ103で稼動する監視プログラム(記載しない)が管理サーバ101と通信を行い、障害を通知する。前述の監視プログラムによって、予備サーバ103の設定や負荷や障害などの状態を監視することが可能である。NIC503は、管理用に設けられることもあり、業務で利用するためのNICは別途設置されることが一般的である。また、BMC504を介しても管理サーバ101とネットワーク的に接続されており、ハードウェア的な障害を通知したり、電源Onや強制的な電源Offをハードウェア的に実施することが可能である。予め予備サーバ103へディスクイメージを配信しておくことで、定期的または不定期に予備サーバ103を起動して、動作確認プログラムを実行したり、パッチをあてるなどのメンテナンスを実施することが出来る。
図6は、管理サーバ101のメモリ302に記憶された管理テーブル111の一つである、サーバのハードウェア構成情報管理テーブル321を詳述している。本テーブルには、各サーバに内蔵または接続されているハードウェアに関する情報が集約されている。同図において、カラム601はサーバ識別子を格納しており、本識別子によって各サーバを一意に識別する。
カラム602にはCPUアーキテクチャ、即ち処理部としてのCPUの種別が格納されている。基本的に、CPUアーキテクチャ(種別)が異なるサーバとOSブート用のディスクイメージを共有することは困難である。そのため、ディスクイメージ配信を行う場合は、なんらかの方法でCPUアーキテクチャを判別しなければ、異なるCPUアーキテクチャ(処理部の種別)のディスクイメージを配信しかねないことになるため、これを回避するためにも重要なファクタである。
カラム603には、UUID(Universal Unique IDentifier)が格納されている。UUIDは、本来、全宇宙規模で識別子が重複しないように形式が規定されている。そのため、サーバ毎に保持した場合、確実なユニーク性を保証する識別子となりえる。そのため、カラム601に格納されているサーバ識別子の候補であり、広範囲に渡ったサーバ管理には非常に有効である。ただし、カラム601には、システム管理者がサーバを識別したい識別子を使用すれば良く、また管理する対象となるサーバ間で重複することがなければ問題ないため、UUIDを使うことが望ましいものの必須とはならない。例えば、ホスト名やIPアドレス、MACアドレス(Media Access Control アドレス)、WWN(World Wide Name)などが候補として考えられる。
カラム604〜606は、HBA(Host Bus Adaptor)に関する情報を格納している。カラム604には、HBAの枚数を格納している。これにより、サーバに内蔵しているHBA枚数を把握することが可能になり、図8で詳述するディスクイメージが内包するハードウェアと照会し、組み込むべきデバイスドライバが必要十分か検証することが可能になる。
カラム605には、HBAの持つWWNを格納している。WWNは、実施例2のSAN環境において図24に示すストレージサブシステムのセキュリティ設定において、サーバ側を識別する識別子となる。そのため、SAN環境が前提のシステムにおいては、サーバ識別子としての役割を担う場合もある。
カラム606には、HBAのデバイスドライバ種別を格納している。同時に、デバイスドライバのインストール場所も記載しておくことで、デバイスドライバ種別が異なるデバイスを内蔵する場合でも、必要なデバイスドライバをどこへインストールすれば良いかが明らかになり、自動的にデバイスドライバを組み込むことが可能になる。実施例2にて詳述するが、HBAに関するカラム群は、SAN環境において重要な役割を担う。
カラム607〜609は、NICに関する情報を格納している。カラム607は、NICの枚数を格納している。カラム604と同様に、組み込むべきデバイスドライバが必要十分か検証することが可能になる。また、業務に必要なIP情報(IPアドレス、サブネットマスク、デフォルトゲートウェイなど)を割り当てる際に、NIC枚数が十分か検証することが可能となる。足りない場合は、同一NICに複数のIP情報を割り当てることになるが、運用や性能の面で問題になる場合、回避する必要があるため、判断材料として活用することが出来る。
カラム608には、NICの持つMACアドレスを格納している。MACアドレスは、一般的に一意の識別子であるため、サーバ識別子としての役割を担う場合もある。
カラム609には、NICのデバイスドライバ種別を格納している。同時に、デバイスドライバのインストール場所も記載しておくことで、デバイスドライバ種別が異なるデバイスを内蔵する場合でも、必要なデバイスドライバをどこへインストールすれば良いかが明らかになり、自動的にデバイスドライバを組み込むことが可能になる。
カラム610からカラム612は、ストレージに関する情報を格納している。ディスクイメージ配信を行う場合、ストレージ環境の整合性が取れていることが非常に重要である。
カラム610には、サーバとストレージ装置の接続I/F(インタフェース)が格納されている。接続インターフェースが異なる場合、デバイスドライバの入れ替えが必須となるため、ディスクイメージ配信を実施する際に、配信したディスクイメージが正しく動作するために必要な作業が行われているかを検証することが可能になる。
カラム611には、ストレージ装置のストレージ容量が格納されている。もし配信するディスクイメージの容量が、カラム611に格納されている値を上回る場合、ディスクイメージが入りきらず、正しく動作することが出来ない。逆に、ディスクイメージの容量が小さい場合、動作させることは可能であることが多いため、管理ポリシーによっては問題視しない運用も有り得る。
カラム612は、OSをboot(OS起動、OSブート)するストレージ装置か、データを格納するためのストレージ装置か、を格納している。データ用ストレージ装置をSAN環境などの外付けストレージ装置へ置くことは一般的であり、フェイルオーバー時にSAN環境に存在するデータディスクを引き継ぐ必要がある場合もある。なお、SAN環境に接続するケースについては、実施例2にて詳述する。
本テーブルは、上述のようにSAN構成へも適用可能である。また、本テーブルは、記載しないがメモリ容量を追記し、業務に必要な性能を満たすサーバを検索し選択することに利用することも出来る。これにより、用途に合致した性能を持つサーバをフェイルオーバー時に選択することが可能になる。本テーブルの情報は、サーバから自動収集することも可能であるが、管理者によって入力される場合もある。ただし、カラム612については、初期設定値をbootに設定し変更しない運用も考えられるが、一般的には管理者によって手入力される。また、カラム601については、本テーブルで使用される各カラムのいずれか、または複数カラムを組み合わせたものを指定することで入力を省略することが出来る。また、昇順などで自動的に割り振っても良い。
次に、図7は、管理サーバ101中の管理テーブル111中の、ディスクイメージに格納されているソフトウェアに関するテーブル322の一構成例を示している。本テーブルには、ディスクイメージに格納(インストール)されているソフトウェアや固有設定情報、および既インストールシステムに対して追加インストールすることが許容されるP.P.およびバージョンに関する情報が集められている。
カラム701には、業務識別子が格納されている。業務Aの第1サーバ、第2サーバといった個々をサーバレベルまで特定する記述方法(751から754)、業務Aで共通化されたソフトウェアのインストールを示し、業務レベルまでを特定する記述方法(755、756)、システムで共通化されたソフトウェアのインストールを示し、共通環境レベルを特定する記述方法(757、758)などが考えられる。
カラム702には、ディスクイメージ名が格納されている。ディスクイメージ名は、各ディスクイメージを特定するための識別子である。ここでディスクイメージの内容について言及する。業務識別子701にて述べた通り、目的に応じて格納する内容や種類を変えることが望ましい。例として、以下に三通りのディスクイメージについて述べる。(1)OS+ミドルウェアやアプリケーション+固有情報、(2)OS+ミドルウェアやアプリケーション(固有情報は抜かれた状態)、(3)OS(ミドルウェアやアプリケーションは未インストール、固有情報は抜かれた状態)。(1)の長所は、配信のみで業務を開始できることである。
また、予備サーバへ配信されたディスクイメージが故障した現用サーバと(1)のレベルで全く同一であれば起動だけでフェイルオーバーを実現することが出来るため、非常に高速である。(2)の長所は、配信後、固有情報の設定のみで業務を開始できることである。(1)と比較すると、固有情報を設定する時間がかかるため、サーバ起動のみでフェイルオーバーを実現できる(1)よりも、やや時間がかかる。ただし、ソフトウェアライセンスという観点から優位な場合が多い。 現在のソフトウェアのライセンス体系を鑑みると、(1)の方法ではライセンスが必要なケースが多い。しかし、(2)のケースではバックアップしたディスクイメージ扱いとなり、ライセンス料が課せられるケースの方が稀だと考えられる。(3)の長所は、配信後に、必要なP.P.のインストールや固有情報の設定が必要になるため、(1)や(2)に比べて高速なフェイルオーバーは実現できない。ただし、なにもインストールされていないサーバへインストールするよりも遥かに高速なフェイルオーバーを実現可能である。また、(2)で言及したライセンス料の問題について、(3)は最も優位である。インストールすらしていないP.P.については、ライセンス数がオーバーすることもない。予備用のライセンスを、本番サーバ数で頭割りしている計算になり、安価に高可用システムを構築することが出来る。例えば、ライセンス管理は、後で説明するライセンス管理テーブル330(図31参照)によって実現する。ディスクイメージの管理という観点からみると、(3)は共通部分が最も多いためディスクイメージの総数が少なくて済む。それに対し、(2)は固有部分が増えるため、個別化が進みディスクイメージの総数は増える。更に、(1)は各サーバで固有のディスクイメージとなるため(2)よりもディスクイメージの総数は増える。
カラム703には、OS種別を格納している。SP(サービスパック)やパッチ情報を含めることで、追加インストールするP.P.の前提条件に合致しているかを検証することが容易になる。また、セキュリティの観点からも、サーバのメンテナンスが簡単になるというメリットがある。テーブル内には特定のOSを記載しているが、その他のOSについても同様に記述することが可能であり、また実施例の効果を得ることが出来る。
カラム704には、OSが対応するCPUアーキテクチャが格納されている。CPUアーキテクチャが異なるディスクイメージを配信しても、正常にOSは起動することは出来ず、業務も提供することは不可能である。CPUアーキテクチャなどのハードウェア構成が異なるディスクイメージをサーバへ配信することを抑止することに利用することが可能である。テーブル内に記載している特定のCPUアーキテクチャ以外についても同様に記述することが可能であり、また本実施例の効果を得ることが出来る。
カラム705には、ホスト名を格納している。アプリケーションによっては、ホスト名でサーバを識別することがあるため、一般的に管理者がホスト名を付与する。ただし、管理者が与える付与規則に従って自動付与しても構わない。
カラム706には、OSのパスワードが格納されている。
カラム707には、IP情報が格納されている。IP情報には、IPアドレス、サブネットマスク、デフォルトゲートウェイなどがある。IPアドレスについては、範囲を指定することで、その時点で使用されていないIPアドレスを利用することで、IPアドレス資源の有効活用を図ることが可能である。しかし、IPアドレスは、管理者やアプリケーションによっては、サーバを識別する識別子となる可能性がある。よって、管理者によって明示的に指定される場合がある。
カラム708には、P.P.名が格納されている。業務を提供するために必要なミドルウェアやアプリケーション、夫々のバージョン情報などが格納されている。このカラムを参照することで、各業務において必要となるP.P.について情報を得ることが出来る。
カラム709には、P.P.の固有情報が格納されている。各P.P.で使用するIPアドレス(論理IPアドレス)やポート番号などである。ポート番号は、重複するとソフトウェアが起動しなかったり、起動しても正常に動作できない場合があるため、重複を避けるためにも各P.P.で使用する値を記載しておくことで、トラブルを回避することが出来る。また、追加インストールに必要なコストを記載しておくことで、追加インストールと固有情報設定で対応するか、ディスクイメージの再配信で対応するかを判定することが可能になる。P.P.のインストール場所や環境変数を記載することで、必要な設定の確実な実施や他のP.P.が期待するインストール場所へ的確にP.P.をインストールすることが可能になる。
カラム710には、他のP.P.と共存する条件を格納している。同一サーバにおいて、共存可能なP.P.やバージョンを記載したり、JRE(Java(登録商標) Runtime Environment)といった動作環境に関する制限事項を記載する。これにより、別の業務がインストールされている予備サーバであったとしても、追記インストールと固有情報設定によって再配信なしでフェイルオーバーするか、再配信してフェイルオーバーするかを選択することが可能になる。
カラム711には、配信コストを格納している。本実施例は、高速フェイルオーバーを意図している。そのため、フェイルオーバー先を、いかに高速に準備出来るかが重要である。そのため、再配信に要する時間をディスクイメージ(業務)ごとに認識し、P.P.追加インストールにかかる時間(カラム709に格納)とを併せて鑑みることで、低コストな方法を選択する必要がある。
本テーブルは、ディスクイメージに内包されるソフトウェア情報を記載していることから、CPUアーキテクチャなどのハードウェア構成が異なるサーバへディスクイメージを配信することを抑止したり、既に配信されているディスクイメージと配信したい業務との差分を追加インストールや設定変更などで吸収したりするために利用される。
本テーブルは、カラム703、カラム704、カラム705、カラム707は、ディスクイメージを採取するサーバからエージェントプログラムやOSの情報取得コマンドなどから収集可能である。管理者が入力することも可能である。他のカラムについては、管理者が入力するか、ディスクイメージ採取やP.P.インストールのタイミングで同時収集することで入力される。カラム710については、管理者が入力することが多いと考えられるが、インターネットまたはイントラネットのサーバからP.P.ごとの情報を収集し、その情報を元に記載しても構わない。
図8は、図3のディスクイメージが内包するハードウェアに関する情報テーブル323を詳述している。ディスクイメージを採取したときのサーバのハードウェア構成であり、ディスクイメージが正常動作するために必要なハードウェア構成とも言い換えることが出来る。具体的には、図6と比較することで、ディスクイメージが適用可能なハードウェア構成と配信先サーバのハードウェア構成が合致または許容範囲内にあるか判定することが可能になる。
カラム801には、ディスクイメージ名が格納されている。カラム802には、CPUアーキテクチャが格納されている。
カラム803には、UUIDが格納されている。UUIDが異なることで、ディスクイメージ配信後にOSやソフトウェアが正常動作しないことは少ないが、中にはハードウェア識別子によって動作するプラットフォームを特定しているケースがあるため、その場合は、サーバ仮想化技術を使用するなどして、UUIDを仮想的に一致させる必要がある。
カラム804からカラム809には、図6のカラム604からカラム609と同様に、HBAやNICといったI/Oデバイスに関するハードウェア情報が格納されている。
カラム810からカラム811は、図6のカラム610からカラム611と同様に、ストレージ装置に関するハードウェア情報が格納されている。
特に、カラム811に格納されているストレージ容量には注意する必要がある。図6カラム611の値が少ない(ストレージ容量がディスクイメージ容量よりも少ない)場合には、ディスクイメージを格納出来ないため、正常にフェイルオーバーすることが出来ない。
本テーブルは、エージェントプログラムまたはOSの情報取得コマンドなどから採取可能であり、自動生成することが可能である。
図9は、図3の業務提供サーバ管理テーブル324を詳述している。特に、現用サーバに障害が発生する前の状態を示している。本テーブルには、サーバの種別(現用または予備)や提供している業務、配信されているディスクイメージ、配信に関するステータス、障害に関するステータス、業務ステータス、フェイルオーバー時に予備サーバが満たすべき条件、データディスクの有無と識別子が格納されている。これにより、サーバの状態を把握し、障害が発生した場合に対処が可能になる。
カラム901には、サーバ識別子が格納されている。カラム902には、サーバの種別(現用サーバまたは予備サーバであること)が格納されている。
カラム903には、業務の識別子が格納されている。現用サーバであれば現在提供している業務、予備サーバであれば予め配信されている業務の識別子が格納されている。障害発生時には、現用サーバの本カラム903を参照し、必要な業務を確認し、予備サーバの本カラム903を参照し、必要な業務が配信されているか否かを判定する。
カラム904には、ディスクイメージ名が格納されている。カラム905には、配信ステータスが格納されている。配信ステータスとは、ディスクイメージが配信されているか否か、また固有情報が設定されているか否かを格納している。
カラム906には、障害ステータスが格納されている。現用サーバの障害情報が格納されている。記載はしないが、スタンバイ状態の予備サーバを監視し、予備サーバの障害ステータスを格納することで、予備サーバ障害への対応が可能になる。例えば、予備サーバにて、定期または不定期にチェックプログラムを実行し、障害がないかを確認し、障害発生時には予備サーバの優先順位や稼動状態などによって、予備サーバへのディスクイメージの配信構成を再構成することが可能になり、可用性を向上することが出来る。
カラム907には、業務ステータスが格納されている。現用サーバについては業務提供中か否か(ダウン)、予備サーバについてはどのようなスタンバイ状態(ホットスタンバイ、コールドスタンバイなど)なのかやフェイルオーバー発生中などを格納する。予備サーバがホットスタンバイで待機している場合、予備サーバの配信構成を再構成する際には、シャットダウンしてから再配信または再設定することが望ましい。コールドスタンバイで待機している場合、すぐに再配信が可能であり、再設定する場合は電源をOnする必要がある。予備サーバのディスクイメージの配信構成について、再構成を可能性にする情報である。
カラム908には、フェイルオーバー時に一致している必要のある範囲を格納している。例えば、カラム951やカラム952ではP.P.やOS、アーキテクチャが一致している必要があると指定しているため、もし予備サーバに予め配信されているディスクイメージが固有情報の異なるディスクイメージであっても固有情報を再設定することで対応可能となり、再配信するよりも低コストでフェイルオーバーを実現することが可能である。カラム953のように、ディスクイメージ名を指定されている場合、予め同ディスクイメージが予備サーバへ配信されていなければ、再配信となる。本テーブルは、管理者が運用ポリシーに基づき、入力して作成する必要がある。
この一致範囲(カラム908)の自由度について、詳述する。
ディスクイメージ :同一業務を持つディスクイメージからの固有情報設定変更さえも許さないため、自由度はない。確実に動作が保証出来るディスクイメージおよび設定を使用することで、可用性は向上する。
P.P. :異なるディスクイメージではあるが、固有情報を設定変更することで対応可能なため、自由度は高い。設定変更のみでフェイルオーバー用のサーバを準備出来るため、高速フェイルオーバーのニーズにも向いている。
OS :異なるディスクイメージで、かつ異なるP.P.がインストールされていても、ディスクイメージに格納されているソフトウェアに関するテーブルの他P.P.共存条件(図7カラム710参照)で許容されるP.P.であれば、必要なP.P.を追加インストールし設定することで使用することが可能なため、更に自由度は高い。P.P.固有設定に格納されているコストを評価すると、再配信の方が高速にフェイルオーバー先を準備出来る可能性があるため、準備コストの評価が重要になる(図7参照)。
アーキテクチャ :業務を提供するためには、P.P.を含めて特定する必要があるため、アーキテクチャ単体で許容という指定は意味がない。ただし、アーキテクチャやOSが異なっていても、特定のP.P.さえインストールされていれば、提供可能な業務も存在する。つまり、アーキテクチャやOSを指定せず、P.P.のみが指定されている場合には、フェイルオーバー先の候補を広げた指定が出来るため、資源の有効活用が可能となる。
図10は、図3の業務提供サーバ管理テーブル324を詳述している。特に、現用サーバに障害が発生し、切り替えが発生している状態を示している。テーブルの構成は、図9と同じであるため、各カラムについては図9を参照されたい。具体的には、カラム9*とカラム10*が対応づいている。カラム1053に格納されているサーバ3に障害が発生したケースについて述べる。シナリオは、サーバ3で障害が発生し、予備サーバであるサーバ4へフェイルオーバーをする、というものである。太枠にて囲んだ領域1055が、変更対象である。
カラム1006に格納されている障害ステータスが、カラム1053について障害発生と変更されている。また、同カラムのカラム1054についてB−1切り替え発生と変更されており、業務B−1にて障害が発生していることを示している。
カラム1005に格納されている配信ステータスが、カラム1054について配信中に変更されている。これは、障害が発生した業務において、カラム1008の条件がディスクイメージ一致を示しているにも関らず、図9カラム903を参照すると配信されていたディスクイメージが異なる業務であったため、再配信が必要であったことに起因する。
カラム1007に格納される業務ステータスが、カラム1053についてダウンと変更されている。これは、業務が提供されていないことを示している。また、カラム1054についてフェイルオーバー中と変更されており、切り替え準備が進行していることを示している。
図11は、図3の業務提供サーバ管理テーブル324を詳述している。特に、切り替えが完了した状態を示している。テーブルの構成は、図9と同じであるため、各カラムについては図9を参照されたい。先と同様、具体的には、カラム9*とカラム11*が対応づいている。
カラム1103に格納されている業務のカラム1154については、障害が発生した現用サーバで提供していた業務を引き継いでいる。配信ステータスを格納しているカラム1105のカラム1153については、情報がリセットされている。復帰させるためには、サーバの交換と再インストール(配信)が必要である。カラム1154については、配信と固有情報設定が完了したことが記載されている。業務ステータスを格納するカラム1107のカラム1154については、業務提供中が格納されており、業務を提供していることを示している。
以上説明した図9、図10、図11については、図15以降のフローチャートを用いた説明の際にも詳述する。
図12は、図3の業務とネットワークに関するテーブル325を詳述している。本テーブルは、業務を提供しているサーバが属しているネットワークに関する設定を管理するテーブルである。
カラム1201には、業務識別子が格納されている。カラム1202には、VLAN(Virtual Local Area Network)識別子が格納されている。カラム1203には、業務を提供するサーバの持つMACアドレスが格納されている。カラム1204には、業務が使用する通信プロトコルが格納されている。
カラム1205には、NW−SWごとに一意な識別子であるブリッジ識別子が格納されている。カラム1206には、NW−SW内のポートごとに一意な識別子であるポート識別子が格納されている。カラム1207には、IP情報が格納されている。
本テーブルによって、カラム1251から1253では、業務を提供するサーバとNW−SWおよびネットワークに関する設定が管理されている。
カラム1255から1256では、各業務とNW−SWおよびネットワークに関する設定が管理されている。IP情報が格納されているカラム1206やカラム1207に関して、業務ごとに使用するポート識別子やIP情報の範囲を指定することで、ポートやIPアドレスなどが既に埋まっている場合、空いているものを使用することが可能になる。これにより、フェイルオーバー時により柔軟に設定値を変更できるだけでなく、ディスクイメージ指定で配信した場合(既に固有情報も設定済み)に設定情報が重複すると業務を継続提供することが出来ない危険性があるが、これを回避することが出来る。
カラム1257には、業務に属さない予備サーバが属するネットワークグループに関する設定が管理されている。ディスクイメージを配信したり、設定を変更する際に、業務ネットワークに接続して実施することは、セキュリティや業務ネットワークの帯域保証の都合上許されないため、このようなプール状態のサーバが属するネットワークグループを確保する必要がある。
図13は、図3の業務の優先順位に関するテーブル326を詳述している。業務に優先順位をつけることで、予備サーバへ予め配信してくディスクイメージを決定することが出来る。また、優先順位が低い業務をフェイルオーバーさせていたが、更に優先順位が高い業務に障害が発生した場合に、後から障害が発生した高優先順位の業務を救いたいことがある。このような運用ポリシーを可能にするテーブルである。
カラム1301には、業務識別子を格納している。カラム1302には、優先順位の初期値を格納している。これにより、優先順位が動的に変更された場合にも、管理者の望むタイミングで元へ戻すことが可能である。
カラム1303には、現在の優先順位が格納されている。これは、既に予備サーバへ切り替わったサーバが存在する場合、そのサーバは障害再発生確率は低いと考え、他のサーバの切り替え優先順位を上げたいというニーズに対応するためである。より障害発生リスクの高いサーバのディスクイメージを予備サーバへ配信しておくことで、高速なフェイルオーバーを高確率で実現することが可能になる。
図14は、図3の障害通知管理テーブル328を詳述している。障害通知ごとに、対応を変えたい場合や業務の優先順位と組み合わせるなど、運用形態に自由度を持たせることが可能になる。
カラム1401には、通知識別子が格納されている。カラム1402には、障害情報および障害を示す閾値や障害と見なす値の範囲が格納されている。カラム1403には、優先順位やフェイルオーバーを発生させる閾値(障害通知回数など)が格納されている。
これにより、障害通知の中にも至急フェイルオーバーにて対応すべきものと、様子を見つつ、頻発するようであれば、フェイルオーバーで対応するといった対応の自由度を高めることが可能になる。また、通知には性能障害を加えることで、性能障害が発生した場合に、より性能の高いサーバを調達し、切り替えるといった運用が可能になる。例えば、データセンタなどの様々な性能のサーバを保持し提供する環境では、性能障害が発生した場合に、スタンバイするサーバをアップグレードし、より高性能なサーバへ切り替えを実施する運用やサービスが想定される。その場合、予めデータセンタとの契約が必要になると想定されるが、オンデマンドで必要な性能を持ったサーバを調達することで出来るため、利用者はシステムコストを削減することが可能になる。
図15は、本実施例におけるディスクイメージ配信方式のフェイルオーバーを実現する管理サーバ302の制御プログラム110の処理フローを示している。
ステップ1501で、障害通知受信プログラム310が障害通知を受信し、障害通知の発生原因であるサーバを切り離すか否か判定する。切り離す場合、ステップ1502へ進む。ステップ1502で、ネットワーク設定変更プログラム311を起動し、障害が発生した現用サーバ102を業務ネットワークから切り離す。
ステップ1503で、配信指示プログラム312を起動し、再配信または再設定の要否を判定した後、必要に応じて配信実行プログラム312などを起動し、再配信および再設定を実行する。
ステップ1504で、テスト実行プログラム314を起動し、設定確認や動作確認を実施し、正しく再配信または再設定が実施されているか否かを判定する。正しいと判定した場合、次のステップへ進む。誤っていると判定した場合、ステップ1503へ戻り、再配信または再設定を実行する。本ステップは、運用上必要ないと管理者が判断する場合や、予めテスト済みのディスクイメージを配信した場合など、割愛可能な場合もある。
ステップ1505で、ネットワーク設定変更プログラム311を起動し、予備サーバを業務ネットワークへ参加させる。その後、管理テーブル群111を更新する。
図16は、図3の障害通知受信プログラム310の処理フローを示している。障害通知受信プログラムは、フェイルオーバーするか否かを判定する機構も持つ。
ステップ1601で、障害通知を受信する。この通知には、障害が発生した現用サーバ102を識別するサーバ識別子となる値が格納されている。また、障害内容と障害状態を表す値が含まれている。通知は、1度で行うことが望ましいが、ネットワーク負荷などを考慮して、複数回に分けても構わない。また、障害が発生したサーバが予備サーバ103でスタンバイ継続が困難な場合は、業務提供サーバ管理テーブル324(図9から図11参照)へ障害発生の旨を記載し、フェイルオーバー先として選択しない。
ステップ1602で、障害通知管理テーブル328を参照する。
ステップ1603で、障害発生の現用サーバをフェイルオーバーするか否かを判定する。フェイルオーバーしない場合は、ステップ1604へ進む。フェイルオーバーする場合は、ステップ1605へ進む。
ステップ1604で、障害通知管理テーブル328を更新し、障害通知を待つ最初のステップへ戻る。
ステップ1605で、業務提供サーバ管理テーブル324の中の障害ステータスを更新し、処理を完了する。
図17は、図3のネットワーク設定変更プログラム311の処理フローを示している。
ステップ1701で、現用サーバ102を業務ネットワーク構成から切り離す、または予備サーバ103を業務ネットワーク構成へ追加するかを判定する。切り離す場合はステップ1702へ、追加する場合はステップ1703へ進む。
ステップ1702で、障害が発生した現用サーバを業務ネットワーク構成から切り離す。切り離す場合、予備のネットワークグループへ追加することになる(図12カラム1257参照)。
ステップ1703で予備サーバ103を業務ネットワーク構成へ追加する。追加する場合、予備のネットワークグループから障害が発生した現用サーバ102が属していた業務ネットワークグループへ追加される(図12参照)。
図18Aは、図3の配信指示プログラム312の処理フローを示している。入力情報として、障害が発生した現用サーバが通知される。
ステップ1801で、業務提供サーバ管理テーブル324を参照する(図9参照)。まず、カラム907を参照し、スタンバイ状態の予備サーバの有無を確認し、存在しない場合は、スタンバイ状態の予備サーバがない旨を通知し、全体の処理を終了する。スタンバイ状態の予備サーバ103が存在する場合、業務(カラム903)を参照し、障害が発生した現用サーバ102と同一のディスクイメージが配信されている、または同じ業務のディスクイメージが配信されている、または同じ共通基盤のディスクイメージが配信されている予備サーバの有無を確認する。
同一ディスクイメージが配信されている場合は、ステップ1805からステップ1807へ進む。同じ業務または同じ共通基盤のディスクイメージが配信されている場合は、ステップ1803へ進み、必要な固有情報設定や必要なP.P.に関する情報を収集し、ステップ1805からステップ1806へ進む。なお、ステップ1805での判定の詳細は、後で図18Bを用いて詳述する。
その他の場合は、再配信またはP.P.の追加インストールと固有情報設定が必要なケースである。カラム908を参照し、一致条件を参照する。また、予備サーバについて、サーバ識別子(カラム901)を参照する。一致条件に従い、続くステップにて必要な情報を収集する。
ステップ1802で、ディスクイメージが内包するハードウェアに関する情報テーブル323を参照する(図8参照)。障害が発生した現用サーバ102のディスクイメージが内包するハードウェア情報(CPUアーキテクチャ(カラム802)、HBA枚数(カラム804)、NIC枚数(カラム808)、ストレージ容量(カラム811))を参照し、次に予備サーバに関してハードウェア情報を参照する。CPUアーキテクチャを問わず、特定のサービスを提供さえすれば良い場合には、CPUアーキテクチャ(カラム802)が一致しなくても良い。動作実績を重視し、同一のディスクイメージ利用またはCPUアーキテクチャ利用を運用ポリシーとする場合、目的のCPUアーキテクチャを持った予備サーバが存在しないときには、その旨を通知し全体の処理を終了する。また、HBA枚数(カラム804)やNIC枚数(カラム808)、ストレージ容量(カラム611)については、予備サーバ103が現用サーバ102と同数またはそれ以上を保持していれば問題ない。問題ないことを判定するステップは、ステップ1805だが、必要な情報としてステップ1803にて、サーバのハードウェア情報管理テーブル321(図6参照)から、予備サーバ103に関するハードウェア情報を参照する。
CPUアーキテクチャが一致しなくても、業務サービスレベルで一致すれば良い場合は、業務提供サーバ管理テーブル324(図9参照)の一致範囲(カラム908)にて、その旨を指定する。この場合、ディスクイメージに格納されているソフトウェアに関するテーブル322(図7参照)に指定されているホスト名(カラム705)やIP情報(カラム707)、P.P.固有設定(カラム709)を参照し、予備サーバ103へ再設定する。再設定はステップ1806にて実施する。
ステップ1804で、ディスクイメージに格納されているソフトウェアに関するテーブル322(図7参照)を参照し、障害が発生した現用サーバ102の保持するソフトウェア情報を参照する。予備サーバ103に配信されているディスクイメージが業務レベルで一致する場合は、ホスト名(カラム705)やOSパスワード(カラム706)、IP情報(カラム707)、P.P.固有情報(カラム709)を参照し、ステップ1806にて再設定を実施する。共通基盤レベルでディスクイメージが一致する場合は、上記に加えて必要P.P.のインストールを実施した上で、P.P.固有情報(カラム709)を設定する。予備サーバ103が、障害が発生した現用サーバ102の業務を引き継げる状態にセットアップが完了した時点で、ステップ1807へ進む。
ステップ1807で、予備サーバの電源をOnし、ステップ1808へ進む。
ステップ1808で、業務の優先順位に関するテーブル326を参照する(図13参照)。
ステップ1809で、優先順位の高い業務が予備サーバへ配信された状態を維持できているか否かを判定し、出来ている場合はステップ1813へ進み、出来ていない場合はステップ1810へ進む。
ステップ1810で、配信実行プログラム313を起動し、必要な再配信または再設定を実施し予備サーバ103を再構成する。
ステップ1811で、再構成した予備サーバ103の電源をOnする。
ステップ1812で、テスト実行プログラム314を起動し、設定内容の確認や動作確認を実施し、正しく配信または設定が実行されたか否かを判定する。正しく実行された場合は、ステップ1813へ進み、誤っている場合はステップ1810へ戻り、誤り具合によって再配信または再設定する。
ステップ1813にて、業務の優先順位に関するテーブル326を更新し、処理を終了する。
予め配信しておくディスクイメージの選定方法について詳述する。
管理者が設定した業務の優先順位に応じて、優先順位の高い業務を配信しておく。
稼動実績に応じて、障害が発生しやすい業務を配信しておく。
稼動実績に応じて、障害が発生しやすいハードウェア特徴(アーキテクチャ、パーツ、ベンダなど)を持つサーバで稼動している業務を配信しておく。
ライセンスが足りない場合、異なるディスクイメージを配信する。ライセンスが足りないソフトウェアを含むディスクイメージは優先順位を下げる。
ライセンスが足りない場合、共通的なディスクイメージを配信する。ライセンスが足りないソフトウェア以外で構成されるディスクイメージを配信する。
過去の負荷変動や障害履歴から、ハードユースされている業務を配信しておく。
障害が発生したサーバと同種のハードウェアで稼動する業務を配信しておく。
障害が発生してフェイルオーバーし、予備サーバで稼動中のサーバの障害再発生確率は、周りの現用サーバよりも低いと考え、フェイルオーバーしたサーバと同一のディスクイメージは配信する優先順位を下げる。
メモリエラーやハードディスクのエラー通知など、すぐには障害ではないものの障害予兆が検出されているサーバまたは業務のディスクイメージを優先的に配信する。
予備サーバに電力消費量が少ないサーバを用意し、電力消費量が多いサーバがもしくは閾値を超える、または超えることが予期されるサーバで稼動している業務のディスクイメージを配信しておく。
などが挙げられる。
予め配信しておくディスクイメージを更新する頻度について詳述する。
定期的な見直し
繁忙期は頻繁に見直す
などが挙げられる。
予め配信しておくディスクイメージを更新する契機について詳述する。
フェイルオーバーが発生し予備サーバが使用された場合
動作テストなどで予備サーバにハードウェアおよびソフトウェア上の不具合が発見された場合
稼働時間などの使用量閾値通知
負荷変動による閾値通知
システムが更新された場合
などが挙げられる。
続いて、先のステップ1805における、障害発生時の現用サーバをすぐ引き継げる予備サーバが存在するか否かの判定処理(判定部)について図18Bを用いて詳述する。
まず、ステップ1821で、障害が発生した現用サーバ102へ配信されているディスクイメージ名と予備サーバ103へ配信されているディスクイメージ名が一致するか否かを判定する。一致する場合は、ステップ1836へ進み、「変更不要」として処理を完了する。一致しない場合はステップ1822へ進む。
ステップ1822で、予備サーバ103へ配信及び格納されているP.P.と、障害が発生した現用サーバ102で提供していた業務が担っていたP.P.と一致するか否かを判定する。一致する場合は、ステップ1827に進む。一致しない場合は、ステップ1833へ進む。
ステップ1827で、ハードウェアやOSが許容設定の範囲内か否かを判定する。範囲内である場合は、ステップ1828へ進み、「設定値を再設定」を設定し終了する。範囲内でない場合は、ステップ1837へ進む。
ステップ1837で、ハードウェアが許容設定の範囲内であるか否かを判定する。範囲内である場合は、ステップ1824へ進む。範囲内でない場合は、ステップ1826へ進み、「処理を中止」を設定する。「処理を中止」を設定される場合は、フェイルオーバーが不可である条件であることを指している。つまり、要件を満たす予備サーバ103が準備されていないことになる。この場合、管理サーバ101はGUIへの表示やメール通知、ポケベル通知などで利用者へフェイルオーバーが出来ない旨を理由とともに知らせる機能があれば、ユーザは必要なハードウェアやソフトウェア(ライセンスを含む)を準備することが出きるため、復旧作業を迅速に実施することが出来る。
ステップ1833で、予備サーバ103へ配信されているP.P.が許容設定の範囲内であるか否かを判定する。範囲内である場合は、ステップ1834へ進む。範囲内でない場合は、ステップ1823へ進む。
ステップ1834で、予備サーバ103へ配信されているP.P.やOSに設定されている設定値が、障害が発生した現用サーバ102と一致するか否かを判定する。このとき、設定値とはホスト名やIPアドレス、ライセンスのキーなどを指す。一致する場合は、ステップ1836へ進み、「変更不要」を設定し処理を終了する。一致しない場合は、ステップ1835へ進み、「設定値を再設定」を設定し処理を終了する。
ステップ1823で、予備サーバ103へ配信されているOSが障害が発生した現用サーバ102へ配信されているOSと一致するか否かを判定する。
一致する場合は、ステップ1829へ進む。一致しない場合は、ステップ1824へ進む。
ステップ1829で、コストを評価する。コストとは、OS設定値の再設定や必要P.P.のインストールや設定に必要な時間や手間を指しており、本実施例では特に時間について詳述する。OS設定値を再設定する時間や追加インストールやP.P.設定に必要な時間については、図7のカラム709に格納されている。必要なコストを算出し、カラム711に格納されている「ディスクイメージ全体を再配信するために必要なコスト」と比較する。本発明が目的とする、高速なフェイルオーバーを実現するためには、このコストが低い方を選択することが重要である。
追加インストールの方が低コストである場合は、ステップ1830へ進み、「追加インストールと再設定」を設定し、処理を終了する。追加インストールの方が低コストでない場合は、ステップ1824へ進む。
ステップ1824で、予備サーバ103と障害が発生した現用サーバ102のハードウェア情報が一致するか否かを判定する。CPUアーキテクチャやメモリ搭載量だけでなく、I/Oデバイスの数や種類も比較する。一致する場合は、ステップ1831へ進み、「合致するディスクイメージを再配信」を設定し、処理を終了する。一致しない場合は、ステップ1825へ進む。
ステップ1825で、予備サーバ102のハードウェア構成が許容設定の範囲内であるか否かを判定する。
範囲内である場合、ステップ1832へ進み、「同一業務を提供するディスクイメージを再配信」を設定し、処理を終了する。ステップ1831で設定する値との違いは、ステップ1831で設定された値によって再配信するディスクイメージは、障害が発生した現用サーバ102で使用されているディスクイメージと同じディスクイメージである。それに対し、ステップ1832で設定される値によって再配信されるディスクイメージは、ハードウェア構成が異なっていることからCPUアーキテクチャが異なるものの同一業務を提供できるディスクイメージであったり、接続デバイスの性能が異なるものの同一業務を提供できるディスクイメージであったりする。
図19は、図3の配信実行プログラム313の処理フローを示している。
本プログラムは、配信または設定を実行するプログラムであり、実行の要否は前段プログラムによって決定されている。入力は、再配信または再設定の指定、対象となるサーバと業務またはディスクイメージの指定である。
ステップ1901で、ディスクイメージに格納されているソフトウェアに関するテーブル322を参照(図7参照)し、配信や設定時に必要な値を取得する。
ステップ1902で、再配信か否かを判断し、再配信の場合はステップ1903へ進み、再配信でない(再設定)場合はステップ1904へ進む。
ステップ1903で、指定された業務のディスクイメージを予備サーバ103へ配信し、ステップ1904へ進む。
ステップ1904で、再設定か否かを判断し、再設定の場合はステップ1905へ進み、再設定でない場合は処理を完了する。ステップ1905で、固有情報を再設定する。P.P.の追加インストールが必要な場合、インストール後に固有情報を設定する。本ステップ完了後、処理を終了する。
図20は、図3のテスト実行プログラム314の処理フローを示している。
本プログラムは、固有設定が設定すべき値になっているか検査したり、動作が正しいことを検査することを目的としている。本実施例では、設定値が正しいことを検査するプログラムについて詳述する。
ステップ2001で、サーバおよびP.P.の固有情報設定値を取得する。情報取得方法は、エージェントプログラムをサーバのOS上で稼動させて取得する方法やCIM(Common Information Model)を利用した情報取得方法などがあるが、いかなる方法でも構わない。
ステップ2002で、ディスクイメージに格納されているソフトウェアに関するテーブル322を参照(図7参照)する。
ステップ2003で、ステップ2001とステップ2002で取得または参照した値を比較した後、正誤を判定し処理を終了する。
動作を検証するテストプログラムの場合、業務に即した入力を与え、正常に処理を行った後、正しい結果を出力できるか、処理ログや出力結果を評価する、といった流れになる。
業務参加前、または配信や設定が完了した時点で、テストプログラムを用いて検証を行うことで、予備サーバへフェイルオーバーしたものの、正しく動作せず、ビジネス継続に悪影響を及ぼすことを回避することが出来る。
本実施例の利点として、コールドスタンバイだけでなく、ホットスタンバイで待機することで、従来のように障害発生時にディスクイメージ配信を開始する方式に比べて、更に高速なフェイルオーバーを実現することが可能な点が挙げられる。予め配信しておくこと、そして、予備サーバの構成を状況に応じて再構成する柔軟さによって、実現される。
なお、以上詳述した本実施例において、固有情報である設定値が格納されていないディスクイメージを使う場合は、共通化できるサーバがn台存在する場合に、ディスクイメージを保存するために必要なストレージ容量をほぼ1/nにすることが出来る。増えるデータは、設定情報である。n台分の設定情報は、非常に小さなストレージ容量しか必要としない(数バイトから数キロバイト)ため、設定情報が増えたとしても、ディスクイメージ(数ギガバイトから数十ギガバイト)を共通化する効果は大きい。具体的には、100台の同一業務提供サーバが現用サーバとして稼動していた場合、1台あたり10ギガバイトのディスクイメージを擁していたとすると、設定値を固定で持った場合には1000ギガバイト(1テラバイト)のストレージ容量が必要である。共通化した場合、10ギガバイトだけでよくなり、99%のストレージ容量削減が可能である。
また、予備サーバへ、共通化したディスクイメージを配信しておいた場合、多くの現用サーバがフェイルオーバー先として選択することが出来る。設定値を予め設定した場合は、なにも変更をしない状態では1台の現用サーバのフェイルオーバー先にしか成り得ない。しかし、固有情報である設定値を障害発生時に設定または変更することで、複数の現用サーバのフェイルオーバー先となることが可能である。例えば、優先順位の高い現用サーバの設定値を、予備サーバへ設定しておく。障害が他のサーバ(ただし、同一業務)で障害が発生した場合、再配信をすると数十分かかるところを、数十秒の設定変更でフェイルオーバーを実施することが可能になる。再配信にかかる時間を30分、再設定にかかる時間を60秒とすれば、96.7%の高速化を図ることが可能である。
さて、現用サーバが複数存在し、障害が予備サーバ台数を上回って発生する場合、優先順位に基づき、救済する現用サーバおよび業務を選択することができる。同様に、予備サーバが複数ある場合、適切な予備サーバを選択する必要がある。障害発生の現用サーバに格納されているディスクイメージと同じディスクイメージを持つ予備サーバが存在する場合は、同じディスクイメージを格納する予備サーバを選択する。
特に、上記条件を満たす予備サーバが複数台、存在する場合は、現用サーバで提供している業務が優先するパラメータを記載した優先順位テーブルに基づき、予備サーバを選択する。予備サーバの性能に関して範囲指定することで、必要以上の性能を要求することを防止することが出来る。これにより、後から高い性能を必要とする現用サーバで障害が発生したとしても、必要な性能を備えた予備サーバが余っている可能性を高めることが出来る。また、性能の高い予備サーバを譲るために必要な再配信も防ぐことが出来るため、他のサーバを停止させて再配信するような事態も防止出来る効果がある。また、予備サーバ選択の優先順位は、予備サーバ側の状況を反映しても良い。例えば、稼動実績に基づいて選択することで「連続稼動させない」という稼動ポリシーを適用することができ、また逆に「連続稼動=信頼性が高い」と考えて「稼動を集中させる」という稼動ポリシーを適用することも可能である。また、「隣り合う予備サーバは出来るだけ稼動させない=離れた予備サーバから稼動させる」稼動ポリシーによって発熱を分散させたり、電力消費の局所化を防止し電力供給量の上限までで稼動させるといった運用が可能になる。優先順位を評価した結果、評価が同一の場合は、どれを選択しても良い。例えば、シリアル番号が最若番のものを選択する方法もある。また、前記のように配置や電力、発熱などに注目した制御も可能である。
上記条件を満たす予備サーバが存在しない場合は、満たす要件を探っていく。例えば、全ての予備サーバのコストを算出したあと、最もコストの低い予備サーバを抽出する。つまり、再配信が必要か否かの判定と同じ動作をしながら、予備サーバを準備するコストが最低の予備サーバを選択する。場合によっては、フェイルオーバーを中止し、ユーザへその旨を通知またはログへ記録するなどのユーザ通知処理を実施する。