説明

サーバシステムおよびパッチ処理方法

【課題】サーバの運用形態が混在するシステムに好適なパッチ処理の技術を提供する。
【解決手段】プロセス(150)を実行する運用系サーバ装置(110)および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置(120)が設けられた二重化ユニット(101)と、上記プロセスと同一のプロセス(150)を実行するサーバ装置(130)が設けられた一重化ユニット(102)と、両ユニットの各サーバ装置に接続された保守サーバ装置(140)とを備える。保守サーバ装置は、プロセスを修正するためのパッチデータ(141)を一重化ユニットおよび二重化ユニットへ送信する。待機系サーバ装置は、パッチ処理の成否を運用系サーバ装置へ通知する。運用系サーバ装置は、待機系サーバ装置からの通知の内容を判定し、それがパッチ処理の成功を表すときパッチデータにより自装置のパッチ処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムを修正するためのパッチ(patch)処理が実行されるサーバシステムに関し、特に、サーバ装置の一重化運用及び二重化運用が混在するシステムでのパッチ処理に関する。
【背景技術】
【0002】
従来、コンピュータにインストールされているプログラムを修正する技術としてのパッチ処理が知られている。このパッチ処理が実行されることにより、プログラムの不具合箇所(バグ)あるいは更新すべき箇所が自動修正される。
【0003】
ところで、クライアントサーバシステムには、サーバの一重化運用、すなわち複数のクライアントからの要求を1台のサーバが処理するという運用形態のほか、サーバを二重化するという運用形態がある。二重化運用のサーバシステムでは、常用的に稼動させるサーバに対し、予備としての別個のサーバを待機させる。そして、常用のサーバが障害などによりダウンしたとき、予備のサーバが自動的に代替稼動を開始する。
【0004】
かかる二重化運用におけるパッチ処理に関する技術として、例えば、後述の特許文献1に記載のものがある。特許文献1に記載の技術は、クラスタに送るパッチ処理の修正データが大量である場合に、修正データを分割して伝送すると共に分割数を通知することにより、修正データの伝送エラーによるパッチ処理の失敗を回避しようとするものである。
【特許文献1】特開昭61−117645号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、サーバの用途や利用頻度などによっては、二重化を必要としない場合もあり、現状では、サーバの一重化運用と二重化運用とが混在したシステムも存在する。よって、このようにサーバの運用形態が混在するシステムのためのパッチ処理の提案が望まれている。
【0006】
本発明は、上記課題に鑑みてなされたものであり、サーバの運用形態が混在するシステムに好適なパッチ処理の技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係るサーバシステムは、プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットと、前記一重化ユニットおよび二重化ユニットに接続された保守サーバ装置とを備え、前記保守サーバ装置は、前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信する手段を有する。
【発明の効果】
【0008】
本発明によれば、プロセスのパッチデータを保守サーバ装置が一重化ユニット及び二重化ユニットの各サーバへ配信するよう構成したことにより、サーバの運用形態が混在するシステムにおいてパッチ処理を円滑に行うことができる。
【発明を実施するための最良の形態】
【0009】
以下、本発明の実施形態について図面を用いて詳細に説明する。図1に、実施形態のサーバシステム100の構成を示す。サーバシステム100は、運用系サーバ110および待機系サーバ120によりサーバの二重化運用を行う二重化ユニット101と、単体系サーバ130による一重化運用を行う一重化ユニット102と、両ユニット(101/102)の各サーバ(110/120/130)と通信可能に接続された保守サーバ140とを備える。
【0010】
二重化ユニット101では、運用系サーバ110が常用的に稼動し、待機系サーバ120は、運用系サーバ110の状況を監視しつつ障害発生時の代替稼動を待機する。一方、一重化ユニット102では、常用的に稼動する単体系サーバ130に対する予備のサーバは配備されない。なお、図示の例では各サーバが1つずつであるが、実際の運用では、それぞれ複数存在してよい。
【0011】
運用系サーバ110及び待機系サーバ120並びに単体系サーバ130が実行するプロセス150a/150b/150cは、それぞれ同一の処理内容のプログラムである。
【0012】
保守サーバ140は、プロセス(150)を修正するためのパッチ処理に使用するパッチデータ141を有する。パッチデータ141には、プロセス(150)に記述されている関数プログラムの修正データ、及び、その修正に必要な処理のプログラム等が含まれる。
【0013】
図2に、各サーバ(110/120/130)が実行するパッチ処理について模式的に示す。図示のメインメモリ202におけるプロセス使用領域210は、ハードディスクのような外部メモリ201にあるプロセス(150)の実行に使用する記憶領域を指す。また、このプロセス使用領域210のパッチ適用領域211は、パッチデータ141により得られる修正データの記憶領域を指す。
【0014】
プロセス使用領域210に対しパッチデータ141が適用されると、関数の修正データ、すなわち正しい関数プログラムがパッチ適用領域211に確保される。また、プロセス(150)が対象の関数をコールしたときの呼び出し先がパッチ適用領域211となるよう、プロセス(150)が修正される。そして、パッチ適用領域211の関数にて正常に機能することが確認されると、その関数が外部メモリ201のプロセス(150)に上書きされる。これにより、パッチ処理が正常に終了する。
【0015】
このようにプロセス(150)に対するパッチデータ141の適用処理をメインメモリ202上にて行うことにより、運用系サーバ110及び単体系サーバ130では、サービスを中断することなくパッチ処理を行うことができる。
【0016】
図3に示すフローチャートを参照して、サーバシステム100の動作について説明する。保守サーバ140は、プロセス(150)のパッチデータ141を二重化ユニット101及び一重化ユニット102の各サーバへ送信する(ステップS1_1)。各サーバ(110/120/130)は、保守サーバ140からのパッチデータ141を受信する(ステップS2_1/S3_1/S4_1)。
【0017】
一重化ユニット102の単体系サーバ130は、パッチ処理を開始し、受信したパッチデータ141を自装置のプロセス150aに適用する(ステップS4_2)。プロセス(150)に対するパッチ処理については、図2により説明した通りである。
【0018】
その結果、パッチデータ141の適用が成功した場合(ステップS4_3:Yes)、外部メモリへ上書き処理を行い(ステップS4_4)、パッチ処理が正常に終了した旨を保守サーバ140へ通知する(ステップS4_5)。また、パッチデータ141の適用に失敗した場合は(ステップSS4_3:No)、パッチ処理が適正に実行することができない旨を保守サーバ140へ通知して終了する(ステップS4_5)。
【0019】
一方、二重化ユニット101では、まず、待機系サーバ120が保守サーバ140からのパッチデータ141を自装置のプロセス150bに適用する(ステップS3_2)。そして、適用が失敗した場合は(ステップS3_3:No)、その旨を運用系サーバ110へ通知し(ステップS3_4)、パッチ処理が適正に実行することができない旨を保守サーバ140へ通知する(ステップS3_7)。
【0020】
また、パッチデータ141の適用が成功したとき(ステップS3_3:Yes)、待機系サーバ120は、その旨を運用系サーバ110へ通知する(ステップS3_5)。そして、外部メモリへの上書き処理(ステップS3_6)の後、パッチ処理が正常に終了した旨を保守サーバ140へ通知する(ステップS3_7)。
【0021】
運用系サーバ110は、パッチデータ141の受信後、その適用の成否に関する待機系サーバ120からの通知を待つ。その結果、受けた通知が適用の失敗を表す場合(ステップS2_2:“失敗”)、保守サーバ140からのパッチデータ141を無効化し処理を終了する。
【0022】
また、待機系サーバ120から適用に成功した旨を通知されたとき(ステップS2_2:“成功”)、運用系サーバ110は、自装置のプロセス150aにパッチデータ141を適用し(ステップS2_3)、外部メモリへの上書き処理を行い(ステップS2_4)パッチ処理を終了する。
【0023】
保守サーバ140は、配信したパッチデータ141によるパッチ処理の結果について、単体系サーバ130及び待機系サーバ120から通知を受信すると(ステップS1_2)、その通知内容を保守管理者に報知すべく所定の形式にて画面表示する(ステップS1_3)。これにより、管理者が各ユニットでのパッチ処理の状況を把握することができる。
【0024】
以上説明した実施形態によれば、プロセス(150)のパッチデータ141を保守サーバ140が各サーバ(110/120/130)へ配信するよう構成したことにより、サーバの運用形態が混在するシステムにおいてパッチ処理を円滑に行うことができる。
【0025】
また、二重化ユニット101では、待機系サーバ120でのパッチデータ141の適用結果を利用して、運用系サーバ110のパッチ処理を行うか否かを決定することから、サービス提供中の運用系サーバ110の動作に影響を与え難くすることができる。すなわち、仮に、パッチデータ141に問題があっても、それが待機系サーバ120にて検出されるので、サービスの中断を回避できる。
【0026】
次に、図4に示すフローチャートを参照して、本発明の他の実施形態について説明する。保守サーバ140は、パッチデータ141を待機系サーバ120のみに送信する(ステップS11_1)。これを受信した待機系サーバ120は(ステップS13_1)、前述の実施形態と同様に、自装置のプロセス150bにパッチデータ141を適用する(ステップS13_2)。
【0027】
その結果、パッチデータ141の適用に失敗した場合(ステップS13_3:No)、待機系サーバ120は、その旨を保守サーバ140へ通知する(ステップS13_4)。また、パッチデータ141の適用に成功した場合は(ステップS13_3:Yes)、その旨を保守サーバ140へ通知し(ステップS13_5)、外部メモリの上書き処理を行い(ステップS13_6)パッチ処理を終了する。
【0028】
保守サーバ140は、パッチデータ141の適用結果に関する待機系サーバ120からの通知を受信する(ステップS11_2)。そして、適用に成功した旨の通知を受けたとき(ステップS11_3:“成功”)、保守サーバ140は、二重化ユニット101の運用系サーバ110と、一重化ユニット102の単体系サーバ130とにパッチデータ141を送信する(ステップS11_4)。
【0029】
運用系サーバ110及び単体系サーバ130は、保守サーバ140からのパッチデータ141を受信すると(ステップS12_1、S14_1)、それを自装置のプロセス(150a、150c)に適用し(ステップS12_2、S14_2)、外部メモリへの上書き処理を行う(ステップS12_3、S14_3)。これにより、待機系サーバ120以外のサーバでもパッチ処理が完了する。
【0030】
一方、待機系サーバ120から保守サーバ140への通知内容が「失敗」である場合(ステップS11_3:“失敗”)、保守サーバ140は、今回のパッチデータ141がプロセス(150)に不適である旨のエラー表示を行う(ステップS11_5)。この場合、パッチデータ141は他のサーバ(110、130)へは送信されない。
【0031】
このように本実施形態では、待機系サーバ120での適用結果を利用して、他のサーバ(110、130)、すなわちサービス提供中のサーバ群に対するパッチデータ141の送信可否を判断する。そして、仮に、パッチデータ141がプロセス(150)に不適なものである場合は、サービス提供中のサーバ群へは送信しないことから、サービスに影響を与え難くすることができると共に、システム内でのデータ授受が効率化される。
【図面の簡単な説明】
【0032】
【図1】本発明の実施形態のシステム構成を示すブロック図である。
【図2】実施形態におけるパッチ処理を説明するための説明図である。
【図3】実施形態の動作手順を示すフローチャートである。
【図4】本発明の他の実施形態の動作手順を示すフローチャートである。
【符号の説明】
【0033】
100 サーバシステム
101 二重化ユニット
102 一重化ユニット
110 運用系サーバ
120 待機系サーバ
130 単体系サーバ
140 保守サーバ
141 パッチデータ
150a、150b、150c プロセス
201 外部メモリ
202 メインメモリ
210 プロセス使用領域
211 パッチ適用領域

【特許請求の範囲】
【請求項1】
プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットと、前記一重化ユニットおよび二重化ユニットに接続された保守サーバ装置とを備え、
前記保守サーバ装置は、前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信する手段を有することを特徴とするサーバシステム。
【請求項2】
前記待機系サーバ装置は、前記パッチデータによるパッチ処理の成否を前記運用系サーバ装置へ通知する手段を有し、
前記運用系サーバ装置は、前記待機系サーバ装置からの通知の内容を判定する手段を有し、前記通知がパッチ処理の成功を表すとき前記パッチデータにより自装置のパッチ処理を実行することを特徴とする請求項1記載のサーバシステム。
【請求項3】
前記待機系サーバ装置は、前記パッチデータによるパッチ処理の成否を前記保守サーバ装置へ通知する手段を有し、
前記保守サーバ装置は、前記待機系サーバ装置からの通知の内容を判定する手段を有し、前記通知がパッチ処理の成功を表すとき前記運用系サーバ装置および前記一重化ユニットのサーバ装置へ前記パッチデータを送信することを特徴とする請求項1記載のサーバシステム。
【請求項4】
前記各サーバ装置は、自装置のメインメモリに記憶した前記プロセスを前記パッチデータを適用して実行し、前記パッチデータの適用が成功したとき自装置の外部メモリにおける前記プロセスの部分を前記パッチデータにより上書きすることを特徴とする請求項1乃至3のいずれか1項に記載のサーバシステム。
【請求項5】
プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットとに接続された保守サーバ装置が、
前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信することを特徴とするパッチ処理方法。
【請求項6】
前記待機系サーバ装置が、前記パッチデータによるパッチ処理の成否を前記運用系サーバ装置へ通知し、
前記運用系サーバ装置が、前記待機系サーバ装置からの通知の内容を判定し、前記通知がパッチ処理の成功を表すとき前記パッチデータにより自装置のパッチ処理を実行することを特徴とする請求項5記載のパッチ処理方法。
【請求項7】
前記待機系サーバ装置が、前記パッチデータによるパッチ処理の成否を前記保守サーバ装置へ通知し、
前記保守サーバ装置が、前記待機系サーバ装置からの通知の内容を判定し、前記通知がパッチ処理の成功を表すとき前記運用系サーバ装置および前記一重化ユニットのサーバ装置へ前記パッチデータを送信することを特徴とする請求項5記載のパッチ処理方法。
【請求項8】
前記各サーバ装置が、自装置のメインメモリに記憶した前記プロセスを前記パッチデータを適用して実行し、前記パッチデータの適用が成功したとき自装置の外部メモリにおける前記プロセスの部分を前記パッチデータにより上書きすることを特徴とする請求項5乃至7のいずれか1項に記載のパッチ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate