(57)【要約】本発明は、ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を実行するようにセットアップされた複数のコンピュータ（１，２，３，４）配列の操作方法と、コンピュータ（１，２，３，４）の間を仲介し、コンピュータ（１，２，３，４）を監視する付加的な監視用コンピュータ（５）と、定期的に監視を受けるコンピュータ（１，２，３，４）の状態、に関する。本発明は、ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）がその重要度に応じて重み（Ｌ２Ｋ，ＳＬ）を割り当てられ、コンピュータ（１，２，３，４）の障害において、監視時点に障害の起きたすべてのコンピュータ（１，２，３，４）と、それによって影響を受けたすべてのソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の、障害に関する情報を収集し、障害により影響を受けたソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を、他のコンピュータ（１，２，３，４）に転送する転送シナリオが、ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の重み（Ｌ２Ｋ，ＳＬ）を利用して決定されることを特徴とする方法である。
2007520003.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を実施するようにセットアップされた複数のコンピュータ（１，２，３，４）の配列と、前記コンピュータ（１，２，３，４）を監視し、前記コンピュータ（１，２，３，４）を仲介する付加的な監視用コンピュータ（５）から成る設備と、定期的に監視される前記コンピュータ（１，２，３，４）の状態、の操作方法であって、
前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、その重要度に応じた重み（Ｌ２Ｋ，ＳＬ）を割り当てられ、かつ、コンピュータ（１，２，３，４）の障害が発生した際に
監視時点で障害が発生したすべての前記コンピュータ（１，２，３，４）と、それにより影響を受けたすべてのソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の障害、に関する情報収集を行い、
前記障害により影響を受けた前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を、他のコンピュータ（１，２，３，４）に転送する転送シナリオが、前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の前記重み（Ｌ２Ｋ，ＳＬ）を利用して決定される、ことを特徴とする操作方法。
【請求項２】
前記転送シナリオを決定する際、多様な選択可能なシナリオが、先ず第一に決定され、その後、これらのシナリオが、前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の前記重み（Ｌ２Ｋ，ＳＬ）を利用して査定される、ことを特徴とする請求項１に記載の方法。
【請求項３】
コンピュータ（１，２，３，４）の障害により影響を受けたソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、そのコンピュータが利用可能である場合に、十分な自由容量を有する予備のコンピュータ（４）に転送される、ことを特徴とする請求項１に記載の方法。
【請求項４】
転送シナリオを決定する前記プロセスが、障害を発生したコンピュータ（１，２，３，４）からソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を転送する自由領域を生成するために、能動的なソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が終了されることを包含する、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記重み（Ｌ２Ｋ，ＳＬ）が、複数の属性を利用して効果を奏される、第一の属性（強制終了ライセンス）は、自由容量を生成するために、他の能動的なソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を終了させる権限の割合を特定し、第二の属性（終了期限）は、障害の発生したコンピュータ（１，２，３，４）から転送を行うため、他のソフトウェアの同意による終了要求についての抵抗の割合を特定する、ことを特徴とする請求項４に記載の方法。
【請求項６】
全体的に最適化された転送シナリオを決定するために、前記コンピュータ配列において能動的であり、前記障害により影響を受けた、前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の前記属性が、考慮されている、ことを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
選択可能なシナリオの中から最適な転送シナリオが決定される前に、まず最初に、前記選択可能な転送シナリオを、あらかじめ定められた判定基準に従って並び替える、ことを特徴とする請求項６に記載の方法。
【請求項８】
前記選択可能な転送シナリオから最適な転送シナリオを決定するために、グリーディ(greedy)アルゴリズムが利用される、ことを特徴とする請求項６又は７に記載の方法。
【請求項９】
前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、それぞれオペレーションシステムとアプリケーションを有する、ことを特徴とする請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
配列が、請求項１乃至９いずれか一項に記載の方法を実行するように設定されていることを特徴とする、アプリケーションを実行する複数のコンピュータ（１，２，３，４）と、前記コンピュータ（１，２，３，４）の監視を行う監視用コンピュータの配列。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアユニットを実行するようセットアップされた、複数のコンピュータの配列を操作する方法と、コンピュータ群を監視しコンピュータ間を仲介するための付加的な監視用コンピュータの準備と、かつ、定期的に監視されるコンピュータの状態、に関する。
【背景技術】
【０００２】
この型式のコンピュータ配列は既知のものであり、とりわけ、サーバファームの用語の下に知られる。サーバファームは、通常、以下にコンピュータとして参照し、その上において、同一の又は異なる、サービス又はアプリケーションの稼働する、同一の多数のサーバを包含する。すべてのサーバは、サービス及びアプリケーションを独立で実行するため、一つのサーバにおける処理の失敗は、サーバファームの残りの部分に直接の影響を及ぼさない。ユーザからの照会は、定義済のルールに則り、サーバファームすべてに分配される。これは、監視用コンピュータのタスクである。重み付けを実装する機構は、それぞれの処理容量に応じた個々のサーバの利用を確実なものにする。
【０００３】
一つのサーバの障害は、それによってサービスとアプリケーションはほとんど影響を受けないので、比較的問題とされないものである。
コンピュータの個々は比較的小さく安価な装置であるため、コスト的な見地より、コンピュータの障害発生後、影響を受けるソフトウェアユニット、すなわち、サービス群及びアプリケーション群を、例えば、正常なオペレーションを復旧する目的で、移転させるような、一又はそれ以上の待機系コンピュータを用意することは問題にはならない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、サーバファームは、しばしば何百ものコンピュータを包含することがある。このような、いわゆるブレードサーバの場合、コンピュータがプラグインカードの形で収容及び接続されているため、外部の複雑な配線の必要はない。しかしながら、このような設計についての問題は、例えば、電力供給ユニットの故障時、複数のコンピュータに影響を及ぼし、従って、複数のコンピュータが同時に障害を起こすことである。経済的な理由によって、すべての場合において、障害のために実際に必要とされるのと同数の待機系コンピュータを備えることは不可能である。従って、すべての場合に、コンピュータ配列の完全な操作を確実なものとすることはできない。
【０００５】
ソフトウェアユニットがコンピュータの障害に起因して障害を起こした場合、ソフトウェアユニットを待機系コンピュータに移転させる、すなわち、そこでソフトウェアユニットを再起動させる、ことが既知のものとして実践されている。もし、複数台のコンピュータが障害を起こせば、それに従い、複数のソフトウェアユニットが影響を受ける。その後、ソフトウェアユニットを再起動が可能なように、それぞれのソフトウェアユニットに対し、待機系コンピュータ又は待機系コンピュータ内の十分大きな自由領域を発見する試みが為される。これは、競合した状態を導く、すなわち、冗長性操作を危険にさらす。
【０００６】
上記現状に基づいて、本発明の課題は、コンピュータ配列において実行されるソフトウェアユニットの選択可能な中から最良の可用性を確保する、複数のコンピュータの配列の操作方法を特定することである。このような場合、個々のコンピュータ障害と複数台のコンピュータ障害の双方への考慮し、意図して行なうべきである。
【課題を解決するための手段】
【０００７】
この課題は、ソフトウェアユニットがその重要度に応じて重みを割り当てられ、コンピュータの障害時には以下の段階的な方法が実行される、ことを特徴とする最初に記載した型式の方法により解決される。
【０００８】
監視時点において障害の発生したすべてのコンピュータと、それにより影響を受けたすべてのソフトウェアユニットに関する情報を収集する。
【０００９】
障害により影響を受けたソフトウェアユニットを他のコンピュータに転送する転送シナリオが、ソフトウェアユニットの重みを利用して決定される。
【００１０】
本発明に従った方法により、ある状況の下で、十分な自由領域を有するコンピュータがすべてのソフトウェアユニットを見つけることができない、ことが導かれる。どのソフトウェアユニットがどのコンピュータに対して転送されたのか、特定する移行シナリオが、検索される。その重要度に応じたソフトウェアユニットの重みは、全体を考慮した際、最適解を構成するような移転シナリオが決定される、という利点をもたらし、そのため、重要度の低いソフトウェアユニットは再起動されないので、より重要なソフトウェアユニットを他のコンピュータに転送することが望ましい。
【００１１】
本発明の方法の決定的な利点は、他のコンピュータへのソフトウェアユニットの転送が、個別のソフトウェアユニットに関して決定されるのではなく、むしろ、全体の操作をなるべく小さく分割するために、そのソフトウェアユニットを有するサーバファームが全体として考慮されることである。また、個別のコンピュータ障害を考慮に入れることができるだけでなく、むしろ、同時に障害の発生した複数台のコンピュータと、それに伴って障害を発生したソフトウェアユニットが同時に決定された移転シナリオに含まれている、ということも利点である。
【００１２】
本発明による方法の一つの有益な改良は、選択可能な複数の移転シナリオが第一に決定され、その後、これらのシナリオが、ソフトウェアユニットの重みを利用して査定される、ことである。全体的なシナリオの評価は、どちらが全体的に最適化されたシナリオであるか見分けるのに利用することが可能である。
【００１３】
本発明の一つの発展形においては、移転シナリオを決定するプロセスが、障害の発生したコンピュータからソフトウェアユニットを転送するための自由容量を生成するために、能動的なソフトウェアユニットが、他のコンピュータ中で終了されている、という事実を含む。この場合、より重要度が高く、障害の起こった一つのコンピュータ内ではかつて能動的であった、ソフトウェアユニットを転送するための容量を生成するために、重要度の低い能動的なソフトウェアユニットは終了される、という利点がある。
【００１４】
望ましい一つの改良は、重みが、複数の属性、第一の属性は”強制終了ライセンス”で、利用可能容量を生成するために、他の能動的なソフトウェアユニットを終了させる権限の割合を特定するものであり、第二の属性は”終了期限”で、障害が発生したコンピュータから転送されるように、他のソフトウェアパッケージによる終了要求に対する抵抗の割合を特定するもの、を利用して、効果の発生をされることである。第一の属性は、どちらの障害発生したソフトウェアユニットが、待機系コンピュータに転送される、つまり、そこでリスタートされる、のが望ましいか、決定するのに利用される。第二の属性は、現在障害の発生しているコンピュータ上でかつて能動的であった、ソフトウェアパッケージを転送する領域を生成するために、どの能動的なソフトウェアパッケージが終了したか、を発見するために用いられる。
【００１５】
この場合、障害発生したソフトウェアユニット移転する際、コンピュータ配列の挙動が、属性を適正に割り当てた管理者により管理される、ことが好ましい。
【００１６】
本願の範囲内で、ソフトウェアユニットは、サービス、アプリケーション、又は、オペレーションシステム及びサービス及び／又はアプリケーションからのパッケージ、であることを想定している。最後に記載し、“イメージ“として参照するパッケージは、とりわけ、ブレードサーバを有する大規模なサーバファーム中で利用される。サーバファーム内でサーバを起動する際、中央メモリからイメージが搭載され、サーバ中で実行される。同一のアプリケーションを利用して開始するように二次サーバが構成されるような場合、イメージの写しは、単に二次サーバ中に搭載され、そこで実行される。このようにして、環境設定の複雑性は最低限なものとされる。
【００１７】
本発明の更に有益な改良は、従属的な請求項にて特定される。
【００１８】
本発明を、典型的な実施例を用いて、より詳細に以下説明する。
【発明を実施するための最良の形態】
【００１９】
図１は、複数台のコンピュータ１，２，３，４と監視用コンピュータ５を有する配列を、図解したものである。コンピュータ１，２，３及び４は、データの相互交換用に設定される接続は持たない。しかしながら、それらは配線６によって監視用コンピュータ５に接続されている。所定の動作を行うよう実装され、配線６を利用するこれらの接続は、コンピュータ１，２，３及び４を監視し、必要があれば、これらのコンピュータの順番列を仲介するために用いられる。
【００２０】
図示した例において、オペレーションシステムＯＳ１とアプリケーションＡ１は、コンピュータ１内で能動的である。能動的とは、オペレーションシステムとアプリケーションが、通常の操作状態にあることを意味する。オペレーションシステムＯＳ２とアプリケーションＡ２は、コンピュータ２において、能動的である。加えて、二つのサービスＤ１とＤ２が、コンピュータ２上で動作中である。三つのサービスＤ３，Ｄ４，Ｄ５だけでなく、オペレーションシステムＯＳ３と二つのアプリケーションＡ３とＡ４もまた、コンピュータ３中で能動的となっている。コンピュータ４は、操作状態に示すように、オペレーションシステム、アプリケーション、サービスのいずれも能動的ではない、待機系コンピュータである。
【００２１】
監視用コンピュータ５は、それらが通常の操作状態であるか、それとも障害の状態が存在するか、を決定するために（図２参照）、規則的な時間間隔Ｔで、コンピュータ１，２，３の状態を監視する。コンピュータ４は、監視用コンピュータ５が待機系コンピュータとしてその状態を検知可能であるため、監視する必要がない。監視は、監視用コンピュータ５が、コンピュータ１，２，３及び４に照会し、その後、反応が送り返されるかどうかを確認するため待機する、方法で環境設定されることを想定する。しかしながら、操作状態の自動監視を行い、もし通常操作状態からの逸脱があれば、障害メッセージを監視用コンピュータ５に伝達する検出器は、コンピュータ１，２，３及び４に備えることも想定される。両者の監視型式は、組み合わせる、すなわち、コンピュータ１，２，３及び４は障害レポートを自動的に伝達するが、同時に、監視用コンピュータ５からの参照に応答する、ことも想定される。
【００２２】
本発明の記載が、”コンピュータ”による要求又はレポートの、受領又は伝達を参照するならば、これは、能動的なオペレーションシステム、アプリケーション又はサービスそれぞれによる、ソフトウェアを用いた情報処理と、ハードウェアを用いた情報処理の両方を包含する。
【００２３】
コンピュータ１，２及び３は、異種のオペレーションシステムを用いた操作をすることも想定される。監視用コンピュータ５がすべてのコンピュータ１，２，３及び４と通信できるように、配線６によるメッセージ又は命令伝達は、同じ標準に従って機能させることは、確実にされなければならない。
【００２４】
ここで記載する実施形態においては、コンピュータ１，２及び３は、図４に図示されるように、規則的な時間間隔Ｔで確認される（ステップ１１）。ステップ１２において障害が確立されない場合には、処理は、新規の確認が実行される時点まで待機する。障害が検出された場合、影響を受けたソフトウェアユニットに関する情報が収集される（ステップ１４）。シナリオ例では、コンピュータ１及び３が、障害を発生したと仮定している。この障害は、監視用コンピュータ５によって検出される。ステップ１４において、その後、障害により影響を受けている、ソフトウェアユニットに関する情報が、収集される。この場合、サービスＤ３，Ｄ４及びＤ５だけでなく、アプリケーションＡ１，Ａ３及びＡ４もまた障害による影響を受ける、ことが確立される。加えて、利用可能容量は、その後に又は並列に実施されるステップ１５において決定される。当該の場合においては、コンピュータ４は、待機系コンピュータとして利用可能である。後者における利用可能容量が十分でない場合には、転送されるアプリケーションＡ１，Ａ３及びＡ４とサービスＤ３，Ｄ４及びＤ５の重要性と比較して、コンピュータ２内で能動的なアプリケーションＡ２とサービスＤ１及びＤ２の重要度を確認する必要がある。
【００２５】
転送されるべきソフトウェアユニットと利用可能容量が決定された後、障害により影響を受けたソフトウェアユニットを他のコンピュータに転送するための選択可能なシナリオが実行される（ステップ１６）。全体的に最適化されたシナリオは、多様に選択可能なシナリオの中から選択されるべきである。この場合、全体的に最適化とは、障害を起こしているソフトウェアユニットの他のコンピュータへの転送における利害が考慮されることと、いまだ能動的な状態にあるソフトウェアユニットの操作をできる限り完全に保持すること、の両方を意味する。
【００２６】
主に、二つの状況が生じる。第一の状況は、障害が発生したすべてのソフトウェアユニットを転送できるよう、十分な自由容量が、利用可能であることである。別の状況は、待機系コンピュータの数よりも障害の発生したコンピュータの数が多い場合である。故に、転送シナリオを決定する副次的方法において、障害を発生したどのソフトウェアユニットが待機系コンピュータに転送されるか決定することが、第一に必要となる。保持される障害の発生したソフトウェアユニットの重要度の調査が行われ、それらが別のコンピュータに転送されるか否かが決定され、ソフトウェアユニットとはこのコンピュータで現在動作中であり強制終了されるべきものである。障害の発生したすべてのソフトウェアユニットに対する、新しいコンピュータが見つけられない場合においては、障害の発生したソフトウェアユニットのうち最も重要度の低いソフトウェアユニットが決定され、転送シナリオを決定するプロセス全体が最初から開始される。
【００２７】
選択可能な転送シナリオを生成する際、ソフトウェアユニットがアプリケーション又はサービスを意味するものとして解されているかどうか、又は、ソフトウェアユニットがイメージと一致しているかどうか、を考慮することも必要になる。第一の場合については、アプリケーション又はサービスを、他のアプリケーション又はサービスがその内部で既に能動的であり、適切なオペレーションシステムを利用しているコンピュータに転送可能である。第二の場合においては、イメージがオペレーションシステムを有し、一台のコンピュータに対しては唯一のイメージのみ存在可能であるので、完全に自由なコンピュータが利用可能である。
【００２８】
アプリケーションとサービスを転送する一つの選択可能なシナリオは、図２中に示された表において図解される。二つの属性、”強制終了ライセンス”（Ｌ２Ｋ）と”終了期限”（ＳＬ）は、アプリケーションＡ１．．Ａ４とサービスＤ１．．Ｄ５に対して割り当てられる。第一の属性Ｌ２Ｋは、自由容量を生成するために、監視用コンピュータ５により他の能動的なソフトウェアユニットを終了させる権限の割合である。第二の属性ＳＬは、障害の発生したコンピュータから転送するために、他のソフトウェアパッケージによる終了要求に抵抗する割合である。したがって、アプリケーションが終了され、他のアプリケーションを転送するための十分な容量を備えたかどうかの事実は、転送されるアプリケーションの属性”終了ライセンス”と、いまだ動作中であるが終了される予定のアプリケーションの属性”終了期限”に依存している。同様のことが、サービスの場合にも当てはまる。記載した属性は、既に触れたサービスにも同様に割り当てられる。
【００２９】
図１に記載したシナリオに戻り、コンピュータ１及び３が障害を発生し、コンピュータ４は待機系コンピュータとして利用可能で、アプリケーションＡ２と二つのサービスＤ１及びＤ２はコンピュータ２において既に能動的であることに従い、図２における表に示された最適なシナリオを得る。表中に入力される値は、１が最低値であり５が最高値であるとして、解される。値が高ければ高いほど、各アプリケーション又は各サービスの重要度は高くなる。このシナリオ例によると、アプリケーションＡ４とＡ１は、待機系コンピュータ４中で再起動され、すなわち後者によって為されると推量される。アプリケーションＡ３に対する十分な自由容量は、もはやコンピュータ４には存在しない。しかしながら、属性Ｌ２Ｋは、アプリケーションＡ２の属性ＳＬの値よりも大きな値４を持つ。これらの値を比較することにより、アプリケーションＡ３がコンピュータ２中で再起動できるよう、アプリケーションＡ２が終了されるべきことが導かれる。
【００３０】
サービスＤ１及びＤ２は、コンピュータ２上で動作を継続することができる。コンピュータ３中のサービスＤ３は、コンピュータ２中で再起動される。サービスＤ４及びＤ５は、もはやコンピュータ２及び４中にいかなる容量も持たない。それらは、属性”強制終了ライセンス”に関して非常に小さな値を有し、サービスＤ４及びＤ５に対する自由容量を生成するために、どのサービス又はアプリケーションも終了されないという結果を伴う。従って、これらのサービスは、他のコンピュータに転送することができない。
【００３１】
図３において、各アプリケーション又は各サービスに対する転送は考慮されず、むしろ、転送の場合について、イメージ全体のみを転送することができる。イメージＩ１は、障害発生前にコンピュータ１中で能動的であったと同様の、オペレーションシステムＯＳ１とアプリケーションＡ１を包含する。イメージＩ２は、コンピュータ２上で動いているオペレーションシステムＯＳ２、アプリケーションＡ２、及びサービスＤ１とＤ２、を包含する。イメージＩ３は、障害発生前にコンピュータ３中で能動的であったオペレーションシステムＯＳ３、アプリケーションＡ３及びＡ４とサービスＤ４及びＤ５、を包含する。今度は、イメージに属性Ｌ２ＫとＳＫが割り当てられる。
【００３２】
図３に図示されたシナリオ例によると、イメージＩ１はコンピュータ４中で再起動され、イメージＩ２はコンピュータ２中で能動的なままとどまり、イメージＩ３に対しては自由なコンピュータは発見することができない。イメージＩ２は、コンピュータ２中でイメージＩ３を再起動するために、終了することが可能であるが、イメージＩ２の”終了期限”属性の値よりも、値２を有するイメージＩ３の”強制終了ライセンス”属性は小さい。従って、イメージＩ３は、自由容量を生成するために、イメージＩ２を終了させる権限を有しない。
【００３３】
従って、ステップ１７において、シナリオは、選択可能なシナリオを伴って、すべての能動的なアプリケーションと、障害により影響を受けたすべてのソフトウェアユニットの属性を連結することにより査定される。ステップ１８において、記載した状況における属性を利用した重みに基づき、最適なシナリオが選択される。ステップ１９において、最適に決定された転送シナリオが実施され、ソフトウェアユニットは終了され、新たに決定されたコンピュータ中で障害を受けたソフトウェアユニットは再起動され、結果、転送の効果を奏する。この安定状態に達した後、コンピュータの状態を確認しながら、本方法が最初から開始される。
【００３４】
シナリオを生成するための境界条件が、定義済の規則を補完する。転送シナリオを形成する役割を果たす規則を、以下に記載する。
【００３５】
イメージは、一つのサーバ上のみでしか同時に動作せず、サーバは、唯一のイメージのみしか同時に受信しない。
【００３６】
遊休状態、又は消灯状態の、いずれかの待機系コンピュータは、障害を発生したソフトウェアユニットを転送することに、第一に利用される。
【００３７】
待機系コンピュータが十分に利用できない場合、それらの属性値に依存したイメージを受信するため、能動的なコンピュータが停止される。それに従い、障害の発生したサービス又はアプリケーションを転送するために、アプリケーション又はサービスも終了される。
【００３８】
転送シナリオを決定するための副次的方法は、選択された転送シナリオが、能動的なコンピュータに対し最小限の影響しか与えないように、同時に、選択された転送シナリオは、できるだけ多くの障害を受けたソフトウェアユニットを転送可能であるという条件を満たすような、方法で操作を行う。
【００３９】
すべての重要なソフトウェアユニットは、先ず第一に、記載の規則及び同様に記載した属性に従って、他のコンピュータに転送される。もし、要求をすべて満たす転送シナリオが選択できないのであれば、障害の発生したソフトウェアユニットは、転送シナリオの決定から除外される。
【００４０】
一つのソフトウェアユニットに対して、唯一の転送だけが存在する。終了されるソフトウェアユニットは、それらから他の能動的なソフトウェアユニットを終了させることはできない。それらは、しばしば転送の犠牲となるため、低位の優先権を有するコンピュータにはドミノ効果は存在しない。
【００４１】
転送シナリオが、引き続き計算可能であるように、定義時点でのコンピュータ状態の考慮が為される。これは、定義済の時間間隔によって繰り返し行われる。すべてのコンピュータ障害は、障害発生したコンピュータの数がある特定の時点で固定され、転送シナリオ決定の最中に変化を生じないよう、単一の決定要素中で同時に取り扱われる。もし、転送シナリオの計算中に、更なるコンピュータ障害が起こるのであれば、次の監視時点まで、これらの障害は考慮されることがない。
【００４２】
展開した方法において、高い能力を備えるコンピュータを、そのようなコンピュータに対し十分な重要性を持たないソフトウェアユニットで”浪費する”ことを避けるために、コンピュータとコンピュータのハードウェアの所有権を、考慮に入れることが可能である。コンピュータの所有権を考慮することは、サーバファームで操作される自身のサーバを所有することが、サーバファームにおいては消費者に対しての慣習であるため、重要である。これは必然的に、そのようなコンピュータが、異種のソフトウェアユニットを転送するためのコンピュータとして利用できないというだけでなく、むしろ、単にこの消費者によって利用され得るのみである、という結果に終わる。
【００４３】
コンピュータの所有権は、第三の属性”サーバグループ”を利用して考慮される。転送シナリオは、同一の”サーバグループ”に属するコンピュータを利用して、唯一に決定される。コンピュータのハードウェアの型式は、”サーバクラス”属性を利用して、考慮される。障害の発生したコンピュータが、転送で考慮されるコンピュータのハードウェアに一致すればするだけ、このコンピュータの親和性は大きくなる。”適切な”とは、以下に説明する通り、整数と文字列の比較を考慮して、定義される。
【００４４】
一つの実際上の実装においては、属性は、文字列又は整数の形で蓄えられる。個別の属性を比較した場合、演算子’＜，＜＝，＞，＞＝，＝＝，／＝’が用いられる。文字列に対しては、演算子’＝＝’のみが許容される。これらの設定を基に、コンピュータとソフトウェアユニットのすべてが、上記に特定された演算子を利用して比較可能である。それにより、最適な転送シナリオが、決定可能となる。
【００４５】
この方法では、すべてのコンピュータとすべてのソフトウェアユニットが、それらが転送に対する潜在的な宛先であるかどうか決定するために、調査される。これは、勿論、必要な場合のみ、即ち、コンピュータの障害が発生し、他のコンピュータへの転送が可能である場合のみ実行される。
【００４６】
主要なタスクは、動作中のコンピュータ又はソフトウェアユニット内で見られる、停止している正しいコンピュータ又はソフトウェアユニットを発見することである。このシナリオの決定は、冗長なプロセスであると想定される。何百ものコンピュータＳを有する巨大なサーバファームが待機系コンピュータを一切備えていない場合ならば、障害の発生したコンピュータ数が小さな数Ｆである場合、転送シナリオを決定するときに考慮されるべき変形の数は、以下の式で算出される。
【数１】
2007520003.tif 000003
【００４７】
２０台のコンピュータを有するサーバラックに対しては、５台のコンピュータが障害を起こしたときの順列の数は、３，０００よりも大きい。もし更に２０台のコンピュータを有する二次サーバラックが追加されれば、順列の数は５０，０００通りを超える。
【００４８】
この膨大な数の選択可能な転送シナリオの中から最適な転送シナリオを見つけるために、特別な計算方法を利用する必要がある。各転送シナリオの全体的な影響の考慮を、確実に行うものとする。その効果は、上記記載の属性に依存する。
【００４９】
選択可能な転送シナリオの計算を行う一方、同時に、システム全体への効果が継続的に有益に計算され、予測される。既に調査が行われた転送シナリオよりも、システム全体上に更に小さな影響をもたらすことが可能なシナリオのみが、詳細に決定される。これは、最も影響の小さい解を最初に取り扱うことを確実にするために、一種の順列の並び替えを必要とする。
【００５０】
これは、決定プロセスの高速化に対し、重要な意義をもたらす。決定プロセスは、もし能動的なソフトウェアユニット上でいかなる効果を及ぼす転送シナリオも見つからないのであれば、予め終了される。計算の最中は、いわゆるグリーディ(greedy)アルゴリズムが用いられることが、望ましい。
【００５１】
記載した概念は、できるだけ多くのソフトウェアユニットが転送されるにも関わらず、できる限りコンピュータとソフトウェアユニット（動作している）への影響が少ない、転送シナリオを見つけることができる。
【００５２】
本発明による方法は、仮想サーバにもまた利用可能である。仮想サーバは、あたかも複数の物理サーバであるかのように操作可能な配列と、”論理的な”サーバに細分化された、一又はそれ以上のサーバにより形成される。この目的に用いられるソフトウェアは、例えば、ＶｍＷａｒｅとして参照される。
【００５３】
本発明の対応する典型的な実施形態では、巨大なＬＩＮＵＸサーバは、ＶｍＷａｒｅにより多数のＷＩＮＤＯＷＳ（登録商標）エミュレーションを稼働させる。個別のオペレーションシステムは、複数の物理サーバを伴う場合のように、全く同様の方法で監視されており、適当である場合には、他の仮想サーバに転送される。移行操作の前に、先ず最初にコンピュータを再起動するような方法で、システムを環境設定することもまた可能である。これは、とりわけ仮想コンピュータにおいて有益である。もし、ＶｍＷａｒｅサーバを十分利用できない場合には、”通常の”移動経路を補うか、又は、障害の発生した又は過負荷の仮想サーバを移動するために、重要性のより低いイメージが置換され、ＶｍＷａｒｅが代わりに起動される。
【図面の簡単な説明】
【００５４】
【図１】本発明による方法が適用される、複数台のコンピュータと監視用コンピュータを有する配列を示す図である。
【図２】第一の転送シナリオの対応表である。
【図３】第二の転送シナリオの対応表である。
【図４】本発明による方法の、一つの典型的な実施例のフローチャートである。
【符号の説明】
【００５５】
１，２，３，４                  コンピュータ
５                              監視用コンピュータ
６                              配線
１１．．１９                     方法のステップ
ＯＳ１，ＯＳ２，ＯＳ３          オペレーションシステム
Ａ１，Ａ２，Ａ３，Ａ４          アプリケーション
Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５    サービス
【図１】
2007520003.tif 000004
【図２】
2007520003.tif 000005
【図３】
2007520003.tif 000006
【図４】
2007520003.tif 000007
【手続補正書】
【提出日】平成18年3月6日(2006.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
多様なソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を実行するよう設定された複数のコンピュータ（１，２，３，４）と、前記コンピュータ（１，２，３，４）の監視と前記コンピュータ（１，２，３，４）間の仲介を行う、追加された監視用コンピュータ、の配列と、前記コンピュータ（１，２，３，４）が定期的に監視される状態、を有するサーバファームの操作方法であって、
前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、その重要度に応じた重み（Ｌ２Ｋ，ＳＬ）を割り当てられ、かつ、コンピュータ（１，２，３，４）障害が発生した際に、
監視時点で、どの前記コンピュータ（１，２，３，４）が故障し、それによりどのソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が影響を受けたかの情報収集を行い、
前記障害により影響を受けた前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を他のコンピュータ（１，２，３，４）に転送する、多様な、即ち、少なくとも二つの、選択可能な転送シナリオが決定され、転送シナリオは、それぞれ、どのコンピュータ（１，２，３，４）に、どのソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が転送されたかを表示し、
これらの転送シナリオは、前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の前記重み（Ｌ２Ｋ，ＳＬ）を利用して査定され、
転送シナリオが、前記査定の結果に基づいて選択され、
選択された前記転送シナリオが実行される、
ことを特徴とするサーバファームの操作方法。
【請求項２】
コンピュータ（１，２，３，４）の障害により影響を受けたソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、そのコンピュータが利用可能である場合に、十分な自由容量を有する予備のコンピュータ（４）に転送される、ことを特徴とする請求項１に記載の方法。
【請求項３】
転送シナリオを決定する前記プロセスが、障害を発生したコンピュータ（１，２，３，４）からソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を転送する自由領域を生成するために、能動的なソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が終了されることを包含する、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記重み（Ｌ２Ｋ，ＳＬ）が、複数の属性を利用して効果を奏され、第一の属性（強制終了ライセンス）は、自由容量を生成するために、他の能動的なソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）を終了させる権限の割合を特定し、第二の属性（終了期限）は、障害の発生したコンピュータ（１，２，３，４）から転送を行うため、他のソフトウェアの同意による終了要求についての抵抗の割合を特定する、ことを特徴とする請求項３に記載の方法。
【請求項５】
全体的に最適化された転送シナリオを決定されるために、前記コンピュータ配列において能動的であり、前記障害により影響を受けた、前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）の前記属性が、考慮されている、ことを特徴とする請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
選択可能なシナリオの中から最適な転送シナリオが決定される前に、前記選択可能な転送シナリオを、まず最初にあらかじめ定められた判定基準に従って並び替えた、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記選択可能な転送シナリオから最適な転送シナリオを決定するために、グリーディ(greedy)アルゴリズムが利用される、ことを特徴とする請求項５又は６に記載の方法。
【請求項８】
前記ソフトウェアユニット（Ａ１．．Ａ４，Ｄ１．．Ｄ５）が、それぞれオペレーションシステムとアプリケーションを有する、ことを特徴とする請求項１乃至７いずれか一項に記載の方法。
【請求項９】
配列が、請求項１乃至８いずれか一項に記載の方法を実行するように設定されている、ことを特徴とする、アプリケーションを実行する複数のコンピュータ（１，２，３，４）と、前記コンピュータ（１，２，３，４）の監視を行う監視用コンピュータの配列。
【国際調査報告】
2007520003.tif 000008
2007520003.tif 000009
2007520003.tif 000010
2007520003.tif 000011
2007520003.tif 000012
2007520003.tif 000013
2007520003.tif 000014