(57)【要約】【課題】  フェイルオーバクラスタシステムにおいて、ＯＳのバージョンアップを簡単に行えるようにする。【解決手段】  ユーザが、記憶媒体４をノード１に装着し、プログラムのインストールを指示すると、インストールプログラム１２は、フェイルオーバプログラム１１に対してハートビート通信の停止を要求する。ノード１は、システムが正常に稼働している状態で、自発的にハートビート通信を停止させる。ノード２のフェイルオーバプログラム２１は、ハートビート通信停止を検知すると、フェイルオーバを開始し、ノード１の業務サービスを引き継ぐ。ノード２がフェイルオーバ実行中に、記憶媒体４に記憶されているプログラムがノード１にインストールされる。インストール完了後、ノード１は、ノード２にフェイルバック要求を送信し、業務サービスを再開する。【選択図】        図１
2005148922.tif 000002
【特許請求の範囲】
【請求項１】
互いにフェイルオーバ対象となっている第１のコンピュータ及び第２のコンピュータを備え、前記第１のコンピュータと前記第２のコンピュータとの間で行われるハートビート信号の通信状態に基づいて、フェイルオーバを実行させるフェイルオーバクラスタシステムであって、
前記第１のコンピュータは、
ＯＳの構成変更プログラムをインストールするための準備を行うインストールプログラムから前記構成変更プログラムをインストールする前に発行されるハートビート通信停止要求に基づいて、前記ハートビート信号の通信を自発的に停止させることにより、前記第２のコンピュータによるフェイルオーバを発動させる第１のフェイルオーバプログラムと、
前記第２のコンピュータから前記ハートビート信号の停止に基づいた再起動信号を受信した場合は、前記ＯＳを再起動させることによりインストーラプログラムを起動させて前記構成変更プログラムをインストールさせるインストール制御プログラムとを備え、
さらに、前記第１のフェイルオーバプログラムは、前記構成変更プログラムのインストールが完了した場合は、前記第２のコンピュータにフェイルバックを要求するようになっており、
前記第２のコンピュータは、
前記第１のコンピュータとの間の前記ハートビート信号の通信が停止した場合は、前記フェイルオーバを実行する第２のフェイルオーバプログラムと、
前記第１のコンピュータとの間の前記ハートビート信号の通信が停止した場合は、前記再起動信号を前記第１のコンピュータに送信させる再起動要求プログラムとを備え、
さらに、前記第２のフェイルオーバプログラムは、前記第１のコンピュータから前記フェイルバックが要求された場合は、前記フェイルオーバの実行を停止させるものであることを特徴とするフェイルオーバクラスタシステム。
【請求項２】
互いにフェイルオーバ対象となっている第１のコンピュータ及び第２のコンピュータを備えたフェイルオーバクラスタシステムであって、
前記第２のコンピュータは、前記第１のコンピュータの処理停止状態を検知した場合に、前記第１のコンピュータにインストール許可信号を送信し、
前記第１のコンピュータは、前記第２のコンピュータから前記インストール許可信号を受信した場合に、所定のプログラムをインストールすることを特徴とするフェイルオーバクラスタシステム。
【請求項３】
前記インストール許可信号は、前記第２のコンピュータによるフェイルオーバの実行と関連付けられている請求項２に記載のフェイルオーバクラスタシステム。
【請求項４】
前記第１のコンピュータは、前記所定のプログラムのインストールを完了した場合、前記第２のコンピュータにフェイルバックを要求する請求項３に記載のフェイルオーバクラスタシステム。
【請求項５】
前記第１のコンピュータ及び前記第２のコンピュータは、両者の間で行われる死活確認信号の通信状態に基づいてフェイルオーバ実行の可否を判定するようになっており、
前記第１のコンピュータは、前記所定のプログラムをインストールする前に、前記死活確認信号の通信を自発的に停止させることにより、前記処理停止状態を実現させる請求項４に記載のフェイルオーバクラスタシステム。
【請求項６】
前記第１のコンピュータは、前記所定のプログラムをインストールするための準備を行うインストール準備部からの要求に基づいて、前記所定のプログラムをインストールする前に、前記死活確認信号の通信を自発的に停止させることにより、前記処理停止状態を実現させ、
さらに、前記第１のコンピュータは、前記第２のコンピュータから前記死活確認信号の通信停止に基づいて前記インストール許可信号が送信された場合に、インストール実行部を起動させて前記所定のプログラムをインストールするものである請求項５に記載のフェイルオーバクラスタシステム。
【請求項７】
前記所定のプログラム及び前記インストール実行部は、プログラム記憶媒体にそれぞれ記憶されており、
前記インストール準備部は、前記プログラム記憶媒体に基づいて起動するように前記第１のコンピュータの起動方法を通常の設定から変更させると共に、前記死活確認信号の通信を自発的に停止させるように要求を発行し、
前記死活確認信号の通信停止に基づいて前記第２のコンピュータから前記第１のコンピュータに送信される前記インストール許可信号は、前記第１のコンピュータの再起動を要求する信号であり、
前記インストール実行部は、前記第１のコンピュータの再起動により起動すると、前記所定のプログラムを前記第１のコンピュータにインストールし、前記所定のプログラムのインストールが完了した場合は、前記第１のコンピュータの起動方法を前記通常の設定に変更させるものである請求項６に記載のフェイルオーバクラスタシステム。
【請求項８】
他のコンピュータと互いにフェイルオーバ対象となり、前記他のコンピュータと共にフェイルオーバクラスタシステムを構成するコンピュータであって、
所定のプログラムをインストールするための準備を行うインストール準備プログラムから、前記所定のプログラムをインストールする前に発行される要求に基づいて、死活確認信号の通信を自発的に停止させることにより、前記他のコンピュータによるフェイルオーバの発動を促すフェイルオーバ制御部と、
前記他のコンピュータから前記死活確認信号の通信停止に基づいて応答信号が送信された場合は、インストール実行プログラムを起動させて前記所定のプログラムをインストールさせるインストール制御部と、
を備えたことを特徴とするコンピュータ。
【請求項９】
他のコンピュータと互いにフェイルオーバ対象となり、前記他のコンピュータと共にフェイルオーバクラスタシステムを構成するコンピュータであって、
所定のプログラムをインストールするための準備を行うインストール準備プログラムからフェイルオーバ実行要求が発行された場合に、前記他のコンピュータによるフェイルオーバの発動を促すフェイルオーバ制御部と、
前記他のコンピュータによる前記フェイルオーバが実行された後で、前記所定のプログラムをインストールさせるインストール制御部と、を備えたことを特徴とするコンピュータ。
【請求項１０】
互いにフェイルオーバ対象となっている第１のコンピュータ及び第２のコンピュータを備えたフェイルオーバクラスタシステムを用いて前記第１のコンピュータに所定のプログラムをインストールさせる方法であって、
前記第２のコンピュータは、
前記第１のコンピュータが処理停止状態になったか否かを検知するステップと、
前記処理停止状態を検知した場合は、前記第１のコンピュータにインストール許可信号を送信するステップとを実行し、
前記第１のコンピュータは、
前記所定のプログラムをインストールする前に、前記処理停止状態を発生させるステップと、
前記第２のコンピュータから前記インストール許可信号を受信した場合は、前記所定のプログラムをインストールするステップとを実行することを特徴とするフェイルオーバクラスタシステムを用いたプログラムのインストール方法。
【請求項１１】
他のコンピュータと互いにフェイルオーバ対象となり、前記他のコンピュータと共にフェイルオーバクラスタシステムを構成するコンピュータを制御するコンピュータプログラムであって、
所定のプログラムをインストールするための準備を行うインストール準備プログラムから、前記所定のプログラムをインストールする前に発行される要求に基づいて、死活確認信号の通信を自発的に停止させることにより、前記他のコンピュータによるフェイルオーバの発動を促すフェイルオーバ制御部と、
前記他のコンピュータから前記死活確認信号の通信停止に基づいて応答信号が送信された場合は、インストール実行プログラムを起動させて前記所定のプログラムをインストールさせるインストール制御部と、
を前記コンピュータ上に実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェイルオーバクラスタシステム及びフェイルオーバクラスタシステムを用いたプログラムのインストール方法に関する。
【背景技術】
【０００２】
クラスタシステムとは、複数のコンピュータ（ノードとも呼ぶ）を粗結合させて１つのまとまりを構成したものである。クラスタシステムとしては、例えば、負荷分散型やフェイルオーバ型等が知られている。フェイルオーバクラスタシステムとは、複数のコンピュータによってシステムを冗長化したものである。フェイルオーバシステムでは、一方のコンピュータが停止した場合に、他方のコンピュータが業務を引き継ぎ、クライアントコンピュータに対する業務アプリケーションサービスの継続性を保証している。一方のコンピュータと他方のコンピュータとは、ＬＡＮ等の通信回線（インターコネクト）を介して接続されており、互いの間でハートビート通信を行うことにより、相手方コンピュータの停止を監視する。
【０００３】
ハートビート通信とは、フェイルオーバの関係に立つ複数のコンピュータ間で、コンピュータ機能が停止していないことを示すための信号をやり取りし、互いの機能停止を監視する技術である。ハートビート通信が行われている間は、相手方コンピュータが正常に稼働しているものと判断され、フェイルオーバ（業務の引き継ぎ）は行われない。逆に、ハートビート通信が途切れた場合は、相手方コンピュータがシステムダウンしたものと判断され、相手方コンピュータで提供されていた業務アプリケーションを自機で引き継ぐようになっている。業務アプリケーションを利用するクライアントコンピュータからは、フェイルオーバクラスタ全体が１つのコンピュータのように見える。従って、現用系コンピュータから待機系コンピュータに処理が切り替わった場合でも、クライアントコンピュータは、どのコンピュータから業務アプリケーションサービスが提供されているかを意識することはない。ここで、自機の稼働状況を何ら考慮せずにフェイルオーバを実行すると、フェイルオーバを実行するコンピュータ自体が過負荷になり、応答性等が低下する可能性がある。そこで、業務引継先コンピュータの稼働状況に応じて、業務アプリケーションの優先度を変更するようにした技術も知られている（特許文献１）。
【０００４】
ところで、ソフトウェア技術等は進展著しいため、クラスタを構成するコンピュータのソフトウェア環境は、適宜改善される必要がある。例えば、セキュリティ性の向上やファイル共有サービスの改善等を行うために、コンピュータのＯＳ（Operating System）は、適宜アップデートされる。また、ＯＳ以外のアプリケーションプログラムやデバイスドライバ、ファームウェア等のソフトウェアも、環境変化に応じて適宜変更される。
【０００５】
これらＯＳ等のアップデートまたはバージョンアップを行う場合、コンピュータを計画的に停止させた状態で、管理者が新しいＯＳを手動でインストールし、インストールが完了した後で、コンピュータを再起動させる。
【特許文献１】特開平１１−３５３２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
フェイルオーバクラスタシステムを構成するコンピュータのＯＳ等をバージョンアップ（またはバージョンダウン）する場合、プログラムによっては再起動を必要とする場合がある。コンピュータの再起動は、コンピュータの停止を伴うため、業務アプリケーション提供サービスが一時的に中断する。コンピュータが停止すると、ハートビート通信が途切れるため、他のコンピュータによるフェイルオーバが実行される。しかし、ハートビート通信の遮断からフェイルオーバの実行までには、所定のタイムラグが生じる。
【０００７】
従って、コンピュータの再起動を伴うバージョンアップを行う場合、管理者は、まず手動操作によって、フェイルオーバ先のコンピュータにフェイルオーバを実行させる。これにより、業務アプリケーション提供サービスは、フェイルオーバ先コンピュータに引き継がれる。そして、フェイルオーバ元のコンピュータは、業務アプリケーション提供サービスを停止する。管理者は、フェイルオーバ元のコンピュータに新しいソフトウェアをインストールする。
【０００８】
このように、コンピュータに新しいソフトウェアをインストールする場合、特に、コンピュータの再起動を伴うインストール作業を行う場合には、管理者が手動操作によってフェイルオーバを発動させる必要がある。従って、管理者は、フェイルオーバクラスタシステムについて熟知していなければ、新しいソフトウェアをインストールすることができず、使い勝手が低いという問題がある。即ち、インストーラによって新しいソフトウェアを自動的にインストールすることが可能であるのに対し、コンピュータ側の準備を整えるには、例えば、熟練した管理者による手動操作を必要とする。
【０００９】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的の一つは、プログラムのインストール作業を簡単に行うことができるようにしたフェイルオーバクラスタシステム及びフェイルオーバクラスタシステムを用いたプログラムのインストール方法を提供することにある。本発明の目的の一つは、比較的簡易な構成で、プログラムのインストール作業を自動化できるようにしたフェイルオーバクラスタシステム及びフェイルオーバクラスタシステムを用いたプログラムのインストール方法を提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明に従うフェイルオーバクラスタシステムは、互いにフェイルオーバ対象となっている第１のコンピュータ及び第２のコンピュータを備えたフェイルオーバクラスタシステムであって、第２のコンピュータは、第１のコンピュータの処理停止状態を検知した場合に、第１のコンピュータにインストール許可信号を送信し、第１のコンピュータは、第２のコンピュータからインストール許可信号を受信した場合に、所定のプログラムをインストールする。
【００１１】
例えば、第１のコンピュータと第２のコンピュータとの間で、ハートビート通信を行わせることにより、ハートビート通信が所定時間以上途絶えた場合に、相手方コンピュータの処理停止状態を検知することができる。第２のコンピュータは、第１のコンピュータの処理停止状態を検知すると、フェイルオーバを実行する。また、第２のコンピュータは、第１のコンピュータの処理停止状態を検知すると、第１のコンピュータにインストール許可信号を送信する。インストール許可信号は、第２のコンピュータによって第１のコンピュータの処理停止状態が検知されたことを示す信号であり、第２のコンピュータによるフェイルオーバの実行と関連付けられている。従って、第１のコンピュータが、所定のプログラムのインストールに先立って、自発的かつ擬似的に、処理停止状態を発生させれば、第２のコンピュータによるフェイルオーバを発動させてから、所定のプログラムのインストールを行うことができる。自発的かつ擬似的な処理停止状態とは、第１のコンピュータが正常に稼働しているにも拘わらず、第２のコンピュータに対して、処理が停止しているかのように見せかける状態である。具体的には、例えば、死活確認信号を自発的に停止させることにより、擬似的な処理停止状態を発生させることができる。
【００１２】
そして、第１のコンピュータは、所定のプログラムのインストールを完了した場合に、第２のコンピュータにフェイルバックを要求することができる。これにより、第１のコンピュータは、クライアントコンピュータに対するサービス提供を再開する。なお、クライアントコンピュータからは、フェイルオーバクラスタシステム全体が１つのコンピュータのように見えるため、実際にいずれのコンピュータによってサービスが提供されているかをクライアントコンピュータが意識することはない。
【発明を実施するための最良の形態】
【００１３】
以下、図１〜図１０に基づき、本発明の実施形態を説明する。
本発明に従うフェイルオーバクラスタシステムは、互いにフェイルオーバ対象となっている第１のコンピュータ及び第２のコンピュータを備え、第１のコンピュータと第２のコンピュータとの間で行われるハートビート信号の通信状態に基づいて、フェイルオーバを実行させるフェイルオーバクラスタシステムであって、第１のコンピュータは、ＯＳの構成変更プログラムをインストールするための準備を行うインストールプログラムから構成変更プログラムをインストールする前に発行されるハートビート通信停止要求に基づいて、ハートビート信号の通信を自発的に停止させることにより、第２のコンピュータによるフェイルオーバを発動させる第１のフェイルオーバプログラムと、第２のコンピュータからハートビート信号の停止に基づいた再起動信号を受信した場合は、ＯＳを再起動させることによりインストーラプログラムを起動させて構成変更プログラムをインストールさせるインストール制御プログラムとを備え、さらに、第１のフェイルオーバプログラムは、構成変更プログラムのインストールが完了した場合は、第２のコンピュータにフェイルバックを要求するようになっている。そして、第２のコンピュータは、第１のコンピュータとの間のハートビート信号の通信が停止した場合は、フェイルオーバを実行する第２のフェイルオーバプログラムと、第１のコンピュータとの間のハートビート信号の通信が停止した場合は、再起動信号を第１のコンピュータに送信させる再起動要求プログラムとを備え、さらに、第２のフェイルオーバプログラムは、第１のコンピュータからフェイルバックが要求された場合は、フェイルオーバの実行を停止させるようになっている。
【００１４】
第１のコンピュータ及び第２のコンピュータ（ノード）は、例えば、ファイル共有サービス等の業務アプリケーションをクライアントコンピュータに対して提供する。第１のコンピュータ及び第２のコンピュータは、例えば、ＬＡＮ（Local Area Network）等の通信ネットワークを介して双方向通信可能に接続される。第１のコンピュータ及び第２のコンピュータは、例えば、ディスク記憶装置や半導体メモリ記憶装置等の記憶装置（記憶資源）をそれぞれ備えている。各コンピュータと記憶装置とは、例えば、ＳＡＮ（Storage Area Network）等の通信ネットワークを介して接続される。
【００１５】
第１，第２のコンピュータは、互いにフェイルオーバの対象となっている。即ち、第１のコンピュータが停止した場合は、第２のコンピュータが第１のコンピュータの業務を引き継ぐ。逆に、第２のコンピュータが停止した場合は、第１のコンピュータが第２のコンピュータの業務を引き継ぐ。第１及び第２のコンピュータ間でサービスを引き継ぐ場合、引き継ぐべきデータは、例えば、共有ディスク上に記憶される。第１及び第２のコンピュータは、この共有ディスクを共有することにより、フェイルオーバを実行できるようになっている。なお、第１のコンピュータの記憶装置の内容と第２のコンピュータの記憶装置の内容とを同期（ミラーリング）させることにより、サービスを受け継ぐように構成してもよい。
【００１６】
相手のコンピュータが停止したか否かは、ハートビート信号の通信状態により検出される。例えば、ハートビート通信が所定時間以上中断した場合には、相手のコンピュータが停止したものと判断され、第１のフェイルオーバプログラムまたは第２のフェイルオーバプログラムにより、フェイルオーバが実行される。
【００１７】
第１のコンピュータのＯＳをバージョンアップ（アップデート）する場合、インストール作業に先立って、インストールプログラムは、ハートビート通信停止要求を第１のフェイルオーバプログラムに要求する。この要求を受けた第１のフェイルオーバプログラムは、ハートビート通信を自発的に停止させる。ここで、ハートビート通信を自発的に停止させるとは、システムダウンによって結果的にハートビート通信が停止する通常の場合とは異なり、コンピュータが正常に稼働している状況下で積極的にハートビート通信を停止させることを意味する。これにより、第２のコンピュータでは、第１のコンピュータが機能を停止したものと判断される。なお、第１のコンピュータのＯＳをバージョンダウン（ＯＳを従前の構成に戻すこと）する場合にも適用できる。
【００１８】
第１のコンピュータがハートビート通信を自発的に停止させると、第２のフェイルオーバプログラムは、フェイルオーバを実行し、第１のコンピュータが提供していたサービスを第２のコンピュータが引き継ぐ。また、第１のコンピュータがハートビート通信を自発的に停止させると、第２のコンピュータの再起動要求プログラムは、第１のコンピュータに対して再起動信号を送信する。再起動信号は、第２のコンピュータがハートビート通信の停止を検出した場合に送信される。ハートビート通信の停止は、第２のフェイルオーバプログラムによるフェイルオーバの実行を促す。従って、再起動信号は、第２のコンピュータによりフェイルオーバが実行または実行予定であることを示す。第１のコンピュータのインストール制御プログラムは、第２のコンピュータから再起動信号を受信すると、インストーラプログラムを起動させて構成変更プログラムをインストールする。ＯＳのバージョンアップ等に際して再起動が必要となる場合でも、第２のコンピュータによりフェイルオーバが実行されるため、クライアントコンピュータに対するサービスは継続される。あるいは、比較的短いサービス停止期間を経て、第２のコンピュータによるサービス提供が行われる。
【００１９】
第１のコンピュータのＯＳのバージョンアップが完了すると、第１のフェイルオーバプログラムは、第２のコンピュータに対してフェイルバックを要求する。このフェイルバック要求を受けて、第２のフェイルオーバプログラムはフェイルオーバを停止する。これにより、クライアントコンピュータに対するサービスは、再び第１のコンピュータから提供される。
【００２０】
ここで、例えば、ＯＳの構成変更プログラム、インストールプログラム及びインストーラプログラムは、それぞれ同一の記憶媒体に記憶させることができる。そして、例えば、記憶媒体から読み出したインストールプログラムを第１のコンピュータのメモリにコピーし、第１のコンピュータ上で実行させることができる。
【実施例１】
【００２１】
図１〜図８に基づいて、本発明の第１実施例を説明する。図１は、本実施例によるフェイルオーバクラスタシステムの全体概要を示す機能ブロック図である。フェイルオーバクラスタシステムは、それぞれ後述するように、複数のノード１，２と、各ノード１，２により共用される共有ディスク３とに大別される。
【００２２】
「第１のコンピュータ」としてのノード１は、例えば、ＣＰＵ（Central Processing Unit）や各種メモリ、入出力回路、通信インターフェース等を備えたコンピュータシステムとして構成されており、具体的には、サーバマシンとして構成される。ノード１は、サービス提供用の通信ネットワークＣＮ１，ＣＮ２を介して、複数のクライアントコンピュータ（不図示）に接続されている。ノード１は、通信ネットワークＣＮ３を介して、ノード２と接続されている。通信ネットワークＣＮ１〜ＣＮ３は、例えば、ＬＡＮ等の通信ネットワークとしてそれぞれ構成されている。ＣＮ１，ＣＮ２は外部ＬＡＮ、ＣＮ３は内部ＬＡＮと呼ぶこともできる。また、ノード１は、通信ネットワークＣＮ４を介して共有ディスク３に接続されている。通信ネットワークＣＮ４は、例えば、ＳＡＮ等の通信ネットワークとして構成されている。
【００２３】
ノード１は、フェイルオーバプログラム１１と、インストールプログラム１２と、ＢＩＯＳ１３と、通信メモリ１４と、ＯＳ１５と、ＩＯＰ（Input Output Processor）１６と、業務アプリケーションプログラム（業務アプリケーションと略記）１７とを備える。また、ノード１は、記憶媒体４からコンピュータプログラム（以下、プログラムと略記）等を読み出すための媒体インターフェース（不図示）を備えている。後述のように、ノード１は、記憶媒体４に記憶されているプログラムによって、ＯＳ１５をバージョンアップするようになっている。なお、記憶媒体４としては、例えば、ハードディスク、CD−ROM，CD-R、DVD−ROM、DVD−RAM、光磁気ディスク等の各種ディスク型記憶媒体や半導体メモリ等の記憶媒体等を用いることができる。さらに、有形の記憶媒体に限らず、通信媒体を用いてノード１のＯＳ１５をバージョンアップすることも可能である。
【００２４】
ノード１とノード２とは、通信回線ＣＮ３を介して、ハートビート通信を行う。ハートビート通信は、サーバの死活を監視する方法であり、複数の方法がある。第１の方法は、ノード１からノード２へ定期的にハートビート信号を一方的に送信する。第２の方法は、ノード２からの問合せ信号に応じて、ノード１が応答を返す。いずれの場合も、ノード１からのハートビート信号が所定時間以上途絶えた場合、ノード２は、ノード１に機能停止（例えば、電源異常、メモリ障害、ＯＳのパニック等によるサーバダウン）が発生したものと判断し、フェイルオーバを実行する。これにより、ノード１から提供されていた業務アプリケーションサービスは、ノード２により引き継がれる。ハートビート通信が途絶えた場合に直ちにフェイルオーバを実行することも可能であるが、通常の場合は、ノード１の高負荷による一時的なハートビート信号の送信遅れ等を考慮して、障害発生と判定されるまでの時間に猶予を設ける。本実施例では、第２のハートビート通信方法、即ち、ノード２からの呼びかけに対してノード１が応答を返す方法を例示する。なお、例えば、「ping」のような単純な信号をやり取りするだけでもハートビート通信による死活監視を行うことはできる。これ以外に、例えば、コンピュータのステータス情報（ＣＰＵやメモリ等のリソース消費状態、ファイルアクセス要求数等）を両ノード１，２間で交換しながら、ハートビート通信を行うこともできる。
【００２５】
「第２のコンピュータ」としてのノード２は、ノード１と同様に、コンピュータシステムとして構成されている。ノード２は、通信ネットワークＣＮ１，ＣＮ２を介して複数のクライアントコンピュータに接続されている。ノード２は、通信ネットワークＣＮ３を介してノード１に接続されていると共に、通信ネットワークＣＮ５を介して共有ディスク３に接続されている。ノード２は、ノード１と同様に、フェイルオーバプログラム２１と、インストールプログラム２２と、ＢＩＯＳ２３と、通信メモリ２４と、ＯＳ２５と、ＩＯＰ２６と、業務アプリケーション２７と、図示せぬ入出力回路等を備えている。ノード２は、ノード１が提供する業務アプリケーションサービス（以下、業務サービス）から見れば、ノード１のバックアップ（待機系サーバ）である。逆に、ノード１は、ノード２が提供する業務サービスから見れば、ノード２のバックアップである。即ち、各ノード１，２は、それぞれ個別に業務サービスを提供することができ、互いにフェイルオーバの対象となっている。
【００２６】
共有ディスク３は、物理的な記憶領域の上に設定された論理的な記憶領域（Logical Unit）である。共有ディスク３は、各ノード１，２により共有される。共有ディスク３には、ノード１サービス情報Ｄ１及びノード２サービス情報Ｄ２が記憶されている。これらのサービス情報Ｄ１，Ｄ２は、フェイルオーバを実行するために用いられる。即ち、ノード１サービス情報Ｄ１には、ノード１の業務サービスをノード２が引き継ぐために必要な情報が格納されており、ノード２サービス情報Ｄ２には、ノード２の業務サービスをノード１が引き継ぐために必要な情報が格納されている。より具体的には、ノード２がノード１の業務サービスを引き継ぐ場合、ノード１サービス情報Ｄ１を有するファイルシステムは、ノード１からアンマウントされ、ノード２にマウントされる。業務サービスとしては、例えば、顧客管理、商品管理、預貯金管理、ビデオ配信等の種々の業務を挙げることができる。
【００２７】
次に、図２を参照して、ノード１の機能構成を説明する。なお、図２及び図３中では、説明の便宜上、業務アプリケーション１７，２７を省略している。
【００２８】
「フェイルオーバ制御部」に該当するフェイルオーバプログラム１１は、ハートビート送受信機能１１１と、ハートビート送信停止受付機能１１２と、フェイルオーバ機能１１３と、フェイルバック機能１１４と、サービス停止機能１１５とを備える。ハートビート送受信機能１１１は、ノード１の有するＬＡＮインターフェース（不図示）から通信ネットワークＣＮ３を介して、ノード２との間でハートビート通信を行わせるためのプログラムモジュールである。ハートビート送信停止受付機能１１２は、インストールプログラム１２から発行されたハートビート送信停止要求を受け付け、ハートビート通信を意図的に、自発的に停止させるためのプログラムモジュールである。
【００２９】
フェイルオーバ機能１１３は、ハートビート通信が所定時間以上途絶えると起動し、フェイルオーバ元であるノード２の提供する業務サービスを引き継いで実行するためのプログラムモジュールである。フェイルオーバ機能１１３は、業務サービス提供に使用するデータ（ファイルシステム）Ｄ２やＩＰアドレス等を引き継いで、クライアントコンピュータに業務サービスを提供する。フェイルバック機能１１４は、ノード２により代行して実行されているノード１の業務サービスを、ノード１に取り戻すためのプログラムモジュールである。フェイルバック機能１１４は、ＯＳ１５のバージョンアップが完了した場合に起動され、ノード２のフェイルオーバ機能２１３に対して、フェイルオーバの停止を要求するようになっている。これにより、ノード２により使用されていたファイルシステム（ノード１サービス情報Ｄ１）はノード２からアンマウントされ、再びノード１にマウントされる。サービス停止機能１１５は、ノード１で提供する業務サービスを停止させるためのプログラムモジュールである。
【００３０】
「インストール準備プログラム」または「インストール準備部」に該当するインストールプログラム１２は、起動方法書込み機能１２１と、ハートビート送信停止要求機能１２２とを備えている。起動方法書込み機能１２１には、ノード１の起動方法を通信メモリ１４内に書き込ませるためのプログラムモジュールである。起動方法書込み機能１２１は、通信メモリ１４内に起動方法指示フラグ１４１を書き込む。ハートビート送信停止要求機能１２２は、フェイルオーバプログラム１１に対してハートビート送信の停止を要求するためのプログラムモジュールである。ここで、インストールプログラム１２は、ノード１の記憶装置（ローカルディスクやＲＯＭ等）に予め記憶させておくことができる。または、インストールプログラム１２を記憶媒体４に記憶させておき、記憶媒体４からノード１にコピーして使用することもできる。
【００３１】
ＢＩＯＳ（Basic Input/Output System）１３は、起動先変更機能１３１を備える。起動先変更機能１３１は、通信メモリ１４に書き込まれた起動方法指示フラグ１４１に基づいて、ＯＳ１５の起動先を変更するためのプログラムモジュールである。ＢＩＯＳ１３は、ＩＯＰ１６と共に「インストール制御部」を構成する。なお、ＢＩＯＳ１３と、通信メモリ１４と、ＩＯＰ１６とによって「インストール制御部」が構成されていると考えることもできる。
【００３２】
通信メモリ１４は、ＩＯＰ１６とＯＳ１５とが通信するために用いられるメモリであり、例えば、フラッシュメモリ、FeRAM（Ferroelectric Random Access Memory）、MRAM（Magnetoresistive Random Access Memory）、相変化メモリ（Ovonic Unified Memory）等のような不揮発メモリとして構成される。本実施例において、通信メモリ１４には、起動方法指示フラグ１４１と、診断指示フラグ１４２とが書き込まれる。起動方法指示フラグ１４１は、ＯＳ１５のバージョンアップ前に、インストールプログラム１２の起動方法書込み機能１２１により設定される情報である。起動方法指示フラグ１４１には、ＯＳを記憶媒体４から起動させるか、あるいは、通常のシステムディスクから起動させるかについて示される。診断指示フラグ１４２は、記憶媒体４に記憶されている診断プログラム４３により設定される情報である。診断指示フラグ１４２には、バージョンアップ後に診断プログラム４３を実行するか否かが指示される。
【００３３】
ＯＳ１５は、本実施例に関連する構成として、診断プログラム実行機能１５１と、停止受付機能１５２とを備える。診断プログラム実行機能１５１は、記憶媒体４に記憶されている診断プログラム４３を実行させるためのものである。停止受付機能１５２は、ＩＯＰ１６からの要求に基づいてＯＳ１５の作動を停止させるためのものである。
【００３４】
ＩＯＰ１６は、入出力を制御するためのプログラムである。ＩＯＰ１６は、他ノード再起動要求機能１６１と、再起動受付機能１６２とを有する。他ノード再起動要求機能１６１は、フェイルオーバ対象となっている相手方ノード（ノード１から見る場合はノード２）に対して、再起動を要求するためのプログラムモジュールである。再起動受付機能１６２は、相手方ノードからの再起動要求に応じてＯＳ１５を再起動させるためのプログラムモジュールである。
【００３５】
ここで、図２に示す各構成の関係について簡単に説明する。通信メモリ１４は、ハードウエアである。その他のフェイルオーバプログラム１１、インストールプログラム１２、ＢＩＯＳ１３、ＯＳ１５及びＩＯＰ１６は、それぞれソフトウェアである。そして、フェイルオーバプログラム１１及びインストールプログラム１２は、ＯＳ１５上で実行されるアプリケーションプログラムとして構成される（業務アプリケーション１７もアプリケーションプログラムとして構成される）。また、ＢＩＯＳ１３及びＩＯＰ１６は、ＯＳ１５の下層で実行されるファームウェアとして構成される。従って、ＢＩＯＳ１３及びＩＯＰ１６は、ＯＳ１５が停止している場合でも、実行することができる。
【００３６】
図３には、ノード２の機能構成が示されている。ノード２は、図２と共に述べたノード１と同様の構成を備えている。即ち、フェイルオーバプログラム２１は、ハートビート送受信機能２１１と、ハートビート送信停止受付機能２１２と、フェイルオーバ機能２１３と、フェイルバック機能２１４と、サービス停止機能２１５とを備える。インストールプログラム２２１は、起動方法書込み機能２２１と、ハートビート送信停止要求機能２２２とを備える。ＢＩＯＳ２３は、起動先変更機能２３１を備える。通信メモリ２４には、起動方法指示フラグ２４１及び診断指示フラグ２４２がそれぞれ記憶される。ＯＳ２５は、診断プログラム実行機能２５１と、停止受付機能２５２とを備える。ＩＯＰ２６は、他ノード再起動要求機能２６１と、再起動受付機能２６２とを備える。これら各機能の内容は、ノード１で述べたものと同じである。
【００３７】
ノード１のＯＳ１５をバージョンアップさせる場合にノード１で実行される機能と、ノード２のＯＳ２５をバージョンアップさせる場合にノード２で実行される機能とは、同一である。逆に、ノード１のＯＳ１５をバージョンアップさせる場合にノード２で実行される機能と、ノード２のＯＳ２５をバージョンアップさせる場合にノード１で実行される機能とは同一である。即ち、図２，図３に示したノード１，２の構成には、自身のＯＳをバージョンアップさせる場合に実行される機能と、相手方ノードのＯＳをバージョンアップさせる場合に実行される機能との両方が含まれている。従って、ノード１のＯＳ１５をバージョンアップさせる場合は、ノード１に含まれる各機能のうち関連する機能だけが実行される。
【００３８】
図４は、記憶媒体４の記憶内容を模式化して示す説明図である。記憶媒体４には、ＯＳインストーラプログラム（以下、インストーラ）４１と、ＯＳファイル４２と、診断プログラム４３とが予めそれぞれ記憶されている。
【００３９】
「インストール実行部」または「インストール実行プログラム」に該当するインストーラ４１は、ＯＳファイル４２をノード１にインストールさせるものである。「所定のプログラム」または「ＯＳの構成変更プログラム」に該当するＯＳファイル４２は、ＯＳ１５の機能を改善等するためのプログラムである。診断プログラム４３は、ＯＳ１５のバージョンアップ後に、所定のテストを行うためのプログラムである。なお、インストールプログラム１２を記憶媒体４に記憶させておくこともできる。また、通常の場合、ＯＳファイル４２は、ＯＳ構成を新しい構成にアップデートさせるプログラムである。但し、これに限らず、ＯＳファイル４２は、ＯＳ構成を古い構成に戻すプログラムでもよい。
【００４０】
図５〜図８に基づいて、本実施例の動作を説明する。まず、図５は、フェイルオーバクラスタシステムを利用してＯＳのバージョンアップを方法の全体概要を示すフローチャートである。なお、以下に述べる各ノード１，２間での通信は、通信ネットワークＣＮ３を介して行われる。
【００４１】
まず最初に、管理者は、ノード１に記憶媒体４を装着し、ノード１のユーザインターフェース（不図示）を介して、ノード１に新しいＯＳファイル４２のインストールを指示する（Ｓ１）。管理者からインストール指示が与えられると、インストールプログラム１２の起動方法書込み機能１２１は、通信メモリ１４の起動方法指示フラグ１４１に、「記憶媒体４から起動させる」という内容を設定する（Ｓ２）。次に、インストールプログラム１２のハートビート送信停止要求機能１２２は、フェイルオーバプログラム１１に、ハートビート通信の停止を要求する。インストールプログラム１２からの要求に応じて、フェイルオーバプログラム１１のハートビート送信停止受付機能１１２は、ノード２との間のハートビート通信を自発的に停止させる（Ｓ３）。
【００４２】
ノード２のフェイルオーバプログラム２１は、ノード１との間のハートビート通信を常に監視している。所定時間以上ハートビート通信が途絶えた場合、ノード２のフェイルオーバプログラム２１は、ハートビート通信の停止を検知し、ノード１の機能が停止したものと判断する（Ｓ４）。ノード２のＩＯＰ２６は、ノード１に対して再起動を要求する（Ｓ５）。ノード１のＩＯＰ１６は、ノード２からの再起動要求を受信すると、ＯＳ１５を停止させる（Ｓ６）。ＯＳ１５の停止に伴って、業務アプリケーション１７のサービス提供も停止する。ノード１のＯＳ１５が停止すると、ノード１のＩＯＰ１６からノード２のＩＯＰ２６に向けてＯＳ停止が報告される（Ｓ７）。ノード２のＩＯＰ２６がノード１のＯＳ停止を確認すると、ノード２のフェイルオーバプログラム２１は、ノード１サービス情報Ｄ１に基づいて、フェイルオーバを実行する（Ｓ８）。ノード２は、ノード１から各種資源（ファイルシステムやＩＰアドレス等）を引き継ぎ、ノード１で提供されていた業務サービスをノード２から提供する。これらのＳ１〜Ｓ８は、フェイルオーバ実行段階を構成する。より詳しく見ると、フェイルオーバ実行段階は、インストール準備段階（Ｓ１，Ｓ２）と、ハートビート停止段階（Ｓ３，Ｓ４）と、フェイルオーバ段階（Ｓ５〜Ｓ８）とから構成されている。
【００４３】
次に、ノード１では、ＯＳファイル４２がインストールされる。ノード１のＢＩＯＳ１３は、通信メモリ１４の起動方法指示フラグ１４１を参照し、記憶媒体４からの起動を行わせる。これにより、記憶媒体４に記憶されているインストーラ４１が起動する。インストーラ４１は、ＯＳファイル４２をノード１にインストールさせる（Ｓ９）。ＯＳファイル４２がインストールされ、ＯＳ１５のバージョンアップが完了すると、ＢＩＯＳ１３は、ＯＳ１５を起動させる（Ｓ１０）。
【００４４】
ＯＳ１５が再起動することにより、フェイルオーバプログラム１１によるハートビート通信が再開される（Ｓ１１）。また、ＯＳ１５は、通信メモリ１４の診断指示フラグ１４２を参照し、診断プログラム４３の実行が指示されているか否かを確認する。診断プログラム４３の実行が指示されている場合、ＯＳ１５は、記憶媒体４から診断プログラム４３を読み出し、診断プログラム４３を実行させる（Ｓ１２）。この診断プログラム４３は、ＯＳファイル４２のインストール後にＯＳ１５が正常に動作するか否かを診断するためのプログラムである。なお、ハートビート通信の再開（Ｓ１１）と診断プログラムの実行（Ｓ１２）とは、順序を入れ替えてもよい。これらのＳ９〜Ｓ１２は、プログラムインストール段階を構成する。より詳しく見ると、プログラムインストール段階は、インストール実行段階（Ｓ９，Ｓ１０）と、ハートビート通信再開段階（Ｓ１１）と、診断プログラム実行段階（Ｓ１２）とから構成されている。
【００４５】
次に、フェイルオーバプログラム１１のフェイルバック機能１１４は、ノード２のフェイルオーバプログラム２１に対して、フェイルバックを要求する（Ｓ１３）。ノード２のフェイルオーバプログラム２１は、ノード１からのフェイルバック要求に応じて、フェイルオーバを停止する（Ｓ１４）。ノード２のフェイルオーバプログラム２１は、フェイルオーバを停止すると、フェイルオーバ停止の報告（業務サービスの提供停止報告）をノード１に行う（Ｓ１５）。ノード１のフェイルオーバプログラム１１は、ノード２での業務サービスの停止を確認した後、業務アプリケーション１７による業務サービスを再開させる（Ｓ１６）。これらのＳ１３〜Ｓ１６は、フェイルバック段階を構成する。
【００４６】
次に、図６〜図８を参照して、各段階毎の動作の詳細を説明する。まず、図６は、フェイルオーバ実行段階の具体的処理を示す。
【００４７】
ノード１のフェイルオーバプログラム１１とノード２のフェイルオーバプログラム２１との間では、ハートビート通信が行われている。ユーザ（管理者）は、適当な頃合いを見計らって、ＯＳファイル４２のインストールをノード１に指示する（Ｓ２１）。インストールプログラム１２は、ユーザからの指示により起動する（Ｓ２２）。インストールプログラム１２の起動方法書込み機能１２１は、通信メモリ１４の起動方法指示フラグ１４１に「記憶媒体４から起動する」旨を設定する（Ｓ２３）。次に、インストールプログラム１２のハートビート送信停止要求機能１２２は、フェイルオーバプログラム１１に向けてハートビート送信停止要求を発行する（Ｓ２４）。
【００４８】
そして、フェイルオーバプログラム１１のハートビート送信停止受付機能１１２が、インストールプログラム１２からのハートビート送信停止要求を受け付けると、フェイルオーバプログラム１１のハートビート送受信機能１１１は、ハートビート通信を停止させる（Ｓ２５）。
【００４９】
ハートビート通信が途絶えてから所定時間が経過すると、ノード２のフェイルオーバプログラム２１は、ハートビート通信の停止を検出する（Ｓ２６）。フェイルオーバプログラム２１のフェイルオーバ機能２１３は、ＩＯＰ２６に対して、ノード１の再起動を要求するように指示する（Ｓ２７）。ＩＯＰ２６の他ノード再起動要求機能２６１は、ノード１のＩＯＰ１６に対して、ノード１の再起動を要求する（Ｓ２８）。この再起動要求信号は、以下に述べるようにＯＳ１５のバージョンアップを許可する信号であり、「インストール許可信号」に該当する。
【００５０】
ノード１のＩＯＰ１６（再起動受付機能１６２）が、ノード２のＩＯＰ２６から再起動要求を受け付けると（Ｓ２９）、ＩＯＰ１６は、ＯＳ１５に対して作動停止を要求する（Ｓ３０）。ＯＳ１５は、ＩＯＰ１６からの停止要求を受けて、停止シーケンスを開始する共に（Ｓ３１）、ＯＳ１５が停止した旨をＩＯＰ１６に報告する（Ｓ３２）。ＩＯＰ１６は、ＯＳ１５からの停止報告を受けると、ＯＳ１５が停止した旨をノード２のＩＯＰ２６に通知する（Ｓ３３）。なお、本実施例では、ＯＳ１５の停止と業務サービスの停止とをほぼ同時に実行しているが、これに限らず、先に業務サービスを停止させ、次にＯＳ１５を停止させてもよい。ノード１が業務サービスを停止させることにより、ノード２でのフェイルオーバが可能となるためである。
【００５１】
ノード２のＩＯＰ２６は、ノード１からのＯＳ停止報告を受信すると（Ｓ３４）、フェイルオーバプログラム２１に対してフェイルオーバの実行を要求する（Ｓ３５）。フェイルオーバプログラム２１のフェイルオーバ機能２１３は、ＩＯＰ２６からの要求に応じてフェイルオーバを実行する（Ｓ３６）。ノード２のフェイルオーバ機能２１３は、共有ディスク３に記憶されているノード１サービス情報Ｄ１を参照し、ノード１で行われていた業務サービスを代行する（Ｓ３７）。
【００５２】
次に、図７は、プログラムインストール段階を示すフローチャートである。ノード１のＩＯＰ１６は、ノード２に向けてＯＳ停止を報告した後（Ｓ３３）、ＢＩＯＳ１３に起動を指示する（Ｓ３８）。
【００５３】
ＢＩＯＳ１３は、ＩＯＰ１６からの起動要求に応じて起動し（Ｓ３９）、通信メモリ１４の起動方法指示フラグ１４１を参照する（Ｓ４０）。起動方法指示フラグ１４１には、前記Ｓ２３において、インストールプログラム１２により「記憶媒体４から起動」する旨が記されている。そこで、ＢＩＯＳ１３は、記憶媒体４にアクセスし、インストーラ４１を起動させる（Ｓ４１）。
【００５４】
インストーラ４１は、記憶媒体４に記憶されているＯＳファイル４２のインストールを開始する（Ｓ４２）。ＯＳファイル４２のインストールが完了すると（Ｓ４３）、インストーラ４１は、通信メモリ１４の起動方法指示フラグ１４１に「システムディスクから起動」する旨を設定する（Ｓ４４）。また、インストーラ４１は、通信メモリ１４の診断指示フラグ１４２に「診断プログラム４３を実行」する旨を設定する（Ｓ４５）。インストーラ４１は、起動方法指示フラグ１４１及び診断指示フラグ１４２を設定した後、ＢＩＯＳ１３に再起動を要求する（Ｓ４６）。
【００５５】
ＢＩＯＳ１３は、インストーラ４１から再起動を要求されると起動し（Ｓ４７）、通信メモリ１４の起動方法指示フラグ１４１を参照する（Ｓ４８）。起動方法指示フラグ１４１では、前記Ｓ４４において「システムディスクから起動」する旨が設定されているので、ＢＩＯＳ１３はシステムディスクからＯＳ１５を起動させる（Ｓ４９）。
【００５６】
これにより、ＯＳファイル４２のインストールによりバージョンアップされたＯＳ１５が起動する（Ｓ５０）。ＯＳ１５は、通信メモリ１４の診断指示フラグ１４２を参照して、診断プログラム４３の実行が指示されていることを確認した後、診断指示フラグ１４２をリセットする（Ｓ５１）。ＯＳ１５は、起動を完了すると（Ｓ５２）、診断プログラム実行機能１５１によって、記憶媒体４に記憶されている診断プログラム４３を実行する（Ｓ５３）。診断プログラム４３を実行した結果、何も異常が無ければ診断処理は完了する（Ｓ５４）。もしもＯＳ１５に異常が発見された場合は、管理者に通知される。エラー通知を受けた管理者は、ＯＳファイル４２の再インストールや別のパッチプログラムのインストール作業等を行う。なお、ＯＳ１５が再起動すると、ノード１は、ノード２との間のハートビート通信を再開する。また、ＯＳ１５が再起動した後も、ノード２では、ノード１の業務サービスが代行されている（Ｓ３７）。
【００５７】
図８は、フェイルバック段階の具体的処理を示すフローチャートである。ＯＳ１５は、診断プログラム４３による診断処理を完了すると（Ｓ５４）、フェイルオーバプログラム１１に対してフェイルバックを指示する（Ｓ５５）。フェイルオーバプログラム１１のフェイルバック機能１１４は、ノード２のフェイルオーバプログラム２１に対し、フェイルバックを要求する（Ｓ５６）。
【００５８】
ノード２のフェイルオーバプログラム２１は、サービス停止機能１１５により、フェイルオーバを終了し、代行していた業務サービスを停止させる（Ｓ５７）。そして、フェイルオーバプログラム２１のサービス停止機能１１５は、ノード１に向けてフェイルオーバを停止させた旨を報告する（Ｓ５８）。
【００５９】
ノード１のフェイルオーバプログラム１１は、ノード２からのサービス停止報告を受けると、共有ディスク３のノード２サービス情報Ｄ２を参照して、業務サービスを再開させる（Ｓ５９）。
【００６０】
もしもノード１とノード２とで共通のバージョンアップを行う場合は、ノード１の場合で述べたと同様の方法に従って、ノード２のＯＳ２５がバージョンアップされる。
【００６１】
本実施例は、以上詳細に述べた通り構成されるもので、以下の効果を奏する。まず、ノード２が、ノード１の処理停止状態（ハートビート通信の停止）を検出して、ノード２からノード１にインストール許可信号（再起動信号）を送信した場合に、ノード１は、インストーラ４１を起動させてＯＳファイル４２のインストールを開始する。従って、ノード２からの指示をトリガにしてノード１のインストール作業を開始することができ、ノード１とノード２とを連携させて、ノード１に所定のプログラム（ＯＳファイル４２）をインストールさせることができる。
【００６２】
また、インストール許可信号は、ノード２によるフェイルオーバの実行開始と関連付けられており、ノード２からノード１に再起動を指示した後で（Ｓ２７）ノード２によるフェイルオーバが実行されるため（Ｓ３６）、ノード２でのフェイルオーバ実行とノード１でのインストール作業とを連携させることができ、業務サービスの不要な中断を招くことなく、ノード１のインストール作業を行うことができる。
【００６３】
また、ユーザは、最初にＯＳファイル４２のインストールを指示するだけでよく、フェイルオーバを手動操作で実行する必要がない。即ち、フェイルオーバクラスタシステムに不慣れなユーザであっても、業務サービスの継続性を維持しつつ、簡単にＯＳ１５のバージョンアップを行うことができ、使い勝手が向上する。
【００６４】
さらに、インストール作業に先立って、システムが正常に稼働している状態で自発的に、ハートビート通信を停止させるため、特別なコマンドや信号等を用いることなく、既存の構成を利用して、ノード２にフェイルオーバを促すことができ、ノード２によるフェイルオーバ実行中にノード１のインストール作業を行うことができる。
【００６５】
また、インストール準備を行うインストールプログラム１２と、実際のインストール作業を行うインストーラ４１とによって、ＯＳファイル４２のインストール作業を分担するため、インストールプログラム１２によりハートビート通信を停止させてノード２にフェイルオーバの実行を促すことができ、ノード２によるフェイルオーバ実行中にインストーラ４１によってＯＳファイル４２のインストールを行わせることができる。
【００６６】
さらに、インストール準備を行うインストールプログラム１２は、ハートビート通信の停止を要求すると共に、不揮発性の通信メモリ１４の起動方法指示フラグ１４１に「記憶媒体４からの起動」を設定する。また、インストーラ４１は、インストール完了後に、起動方法指示フラグ１４１を「システムディスクから起動」に変更する。従って、ノード１の既存構成を殆ど変更することなく、インストールプログラム１２及びインストーラ４１によって、フェイルオーバ実行後のインストール作業を行わせることができる。従って、本実施例を実現するために必要な追加コストを低減することができる。
【００６７】
次に、図９に基づいて、第１実施例の第１変形例を説明する。この変形例では、ノード１で提供中の業務サービスに区切りがついた時点で、ハートビート通信を自発的に停止させるようになっている。
【００６８】
図９に示すフローチャートは、図６中のＳ２５の詳細を示す。フェイルオーバプログラム１１のハートビート送信停止受付機能１１２が、インストールプログラム１２からのハートビート送信停止要求を受け付けると（S61:YES）、フェイルオーバプログラム１１は、現在業務サービスを提供しているか否かを判断する（Ｓ６２）。業務サービスを提供していない場合は（S62:NO）、直ちにハートビート通信を停止させる。業務サービスを提供している場合は（S62:YES）、サービス待ちキューの新規サービス要求の受付を停止させ（Ｓ６４）、Ｓ６２に戻る。待ちキュー内の全てのサービス要求が処理されると、Ｓ６２で「YES」と判断され、ハートビート通信が停止される（Ｓ６３）。
【００６９】
図１０は、第１実施例の第２変形例に係わるフェイルオーバクラスタシステムの全体動作の概要を示すフローチャートである。この変形例では、ノード１とノード２とを緩やかに連携させ、ノード２におけるフェイルオーバの実行を確認せずに、ノード１におけるインストール作業を行わせる。
【００７０】
ユーザがノード１にインストール指示を行うと（Ｓ７１）、インストールプログラム１２は、通信メモリ１４の起動方法指示フラグ１４１に「記憶媒体４から起動」するように設定する（Ｓ７２）。インストールプログラム１２がハートビート送信停止要求をフェイルオーバプログラム１１に送信すると、フェイルオーバプログラム１１は、ＯＳ１５が正常に稼働しているにも拘わらずハートビート通信を自発的に停止させる（Ｓ７３）。
【００７１】
ノード２は、ハートビート通信の停止を検出すると（Ｓ７４）、フェイルオーバを開始する（Ｓ７６）。一方、ノード１においては、ハートビート通信を停止させた後で、業務サービスを停止させる（Ｓ７５）。ここで、重要な点は、ノード１における業務サービスの停止（Ｓ７５）が行われた後で、ノード２によるフェイルオーバを開始させるように、両者のタイミングを調節することにある。具体的には、ハートビート通信を停止させてからノード２によるハートビート通信停止が検出されるまでの時間ｔ１と、ノード２においてフェイルオーバが実行されるまでの時間ｔ２と、幾分かの余裕時間（通信遅延時間等）とを考慮して、ノード１における業務サービス停止時期を設定する。これにより、ノード２からの応答信号を得ることなく、即ち、ハートビート通信の停止がノード２に認識されフェイルオーバの実行シーケンスが開始されることを意味する応答信号（第１実施例の再起動信号である）を得ることなく、ノード２によるフェイルオーバ実行後にＯＳ１５のバージョンアップを行うことができる。
【００７２】
即ち、ノード１では、ノード２によるフェイルオーバが実行されたと思われる時期に、ＯＳ１５を停止し（Ｓ７７）、ＯＳファイル４２をインストールする（Ｓ７８）。以下は、図５で述べたと同様に、ノード１は、ＯＳ１５を再起動し（Ｓ７９）、ハートビート通信を再開させ（Ｓ８０）、診断プログラム４３を実行する（Ｓ８１）。そして、ノード１は、ノード２にフェイルバックを要求する（Ｓ８２）。ノード２がフェイルオーバを終了させてサービス停止報告を行うと（Ｓ８３，Ｓ８４）、ノード１は、業務サービスを再開する（Ｓ８５）。
【００７３】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、前記実施例では、ノード１及びノード２の２つのノードからクラスタを構成する場合を説明したが、３つ以上のノードから構成されるクラスタにも本発明を適用することができる。この場合は、あるノードのフェイルオーバを行うフェイルオーバ先ノードの優先順位を予め設定すればよい。優先度の高いノードがノード２の役割を果たす。
また、ＯＳのバージョンアップ（アップデート）を例に挙げて説明したが、これに限らず、ＯＳのバージョンダウンを行う場合にも適用できる。その他、ノードの再起動を伴う各種プログラムのインストールにも適用することができる。
さらに、フェイルオーバを中心に説明したが、クラスタ内で負荷分散を行っている場合も本発明は適用できる。即ち、ノード１及びノード２のそれぞれが固有の業務サービスを提供している場合でも、本発明により、フェイルオーバを発動させた状態でプログラムのインストールを行うことができる。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施例に係わるフェイルオーバクラスタシステムの全体概要を示す機能ブロック図である。
【図２】ノード１の機能構成を示す説明図である。
【図３】ノード２の機能構成を示す説明図である。
【図４】記憶媒体の記憶構造を示す説明図である。
【図５】フェイルオーバを実行させてＯＳのバージョンアップを行う場合の全体概要を示すフローチャートである。
【図６】図５中のフェイルオーバ実行段階の詳細を示すフローチャートである。
【図７】図５中のプログラムインストール段階の詳細を示すフローチャートである。
【図８】図５中のフェイルバック段階の詳細を示すフローチャートである。
【図９】第１の変形例に係わるハートビート送信停止処理を示すフローチャートである。
【図１０】第２の変形例に係わる全体動作の概要を示すフローチャートである。
【符号の説明】
【００７５】
１…ノード、２…ノード、３…共有ディスク、４…記憶媒体、１１…フェイルオーバプログラム、１２…インストールプログラム、１３…ＢＩＯＳ、１４…通信メモリ、１５…ＯＳ、１６…ＩＯＰ、１７…業務アプリケーションプログラム、２１…フェイルオーバプログラム、２２…インストールプログラム、２３…ＢＩＯＳ、２４…通信メモリ、２５…ＯＳ、２６…ＩＯＰ、２７…業務アプリケーションプログラム、４１…ＯＳインストーラ、４２…ＯＳファイル、４３…診断プログラム、１１１…ハートビート送受信機能、１１２…ハートビート送信停止受付機能、１１３…フェイルオーバ機能、１１４…フェイルバック機能、１２１…起動方法書込み機能、１２２…ハートビート送信停止要求機能、１３１…起動先変更機能、１４１…起動方法指示フラグ、１４２…診断指示フラグ、１５１…診断プログラム実行機能、１５２…停止受付機能、１６１…他ノード再起動要求機能、１６２…再起動受付機能、２１１…ハートビート送受信機能、２１２…ハートビート送信停止受付機能、２１３…フェイルオーバ機能、２１４…フェイルバック機能、２２１…起動方法書込み機能、２２２…ハートビート送信停止要求機能、２３１…起動先変更機能、２４１…起動方法指示フラグ、２４２…診断指示フラグ、２５１…診断プログラム実行機能、２５２…停止受付機能、２６１…他ノード再起動要求機能、２６２…再起動受付機能、ＣＮ１〜ＣＮ５…通信ネットワーク
【図１】
2005148922.tif 000003
【図２】
2005148922.tif 000004
【図３】
2005148922.tif 000005
【図４】
2005148922.tif 000006
【図５】
2005148922.tif 000007
【図６】
2005148922.tif 000008
【図７】
2005148922.tif 000009
【図８】
2005148922.tif 000010
【図９】
2005148922.tif 000011
【図１０】
2005148922.tif 000012