JP4710688B2 - 冗長システムのファイル更新方法 - Google Patents

冗長システムのファイル更新方法 Download PDF

Info

Publication number
JP4710688B2
JP4710688B2 JP2006088608A JP2006088608A JP4710688B2 JP 4710688 B2 JP4710688 B2 JP 4710688B2 JP 2006088608 A JP2006088608 A JP 2006088608A JP 2006088608 A JP2006088608 A JP 2006088608A JP 4710688 B2 JP4710688 B2 JP 4710688B2
Authority
JP
Japan
Prior art keywords
file
memory area
update
old
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006088608A
Other languages
English (en)
Other versions
JP2007264979A (ja
Inventor
雄介 山崎
友岳 小池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006088608A priority Critical patent/JP4710688B2/ja
Priority to CN2007100024222A priority patent/CN101046758B/zh
Priority to US11/727,885 priority patent/US20070288532A1/en
Publication of JP2007264979A publication Critical patent/JP2007264979A/ja
Application granted granted Critical
Publication of JP4710688B2 publication Critical patent/JP4710688B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Description

本発明は冗長システムのファイル更新方法に関し、例えば、コールサーバのような高い信頼性が求められるシステムにおいて、提供中のサービスを継続させたまま、そのサービスを提供している実行プログラムなどのファイルの更新を行う場合に適用し得るものである。
一般に、コールサーバなどの高い信頼性を求められるシステムにおいては、信頼性を維持するために、図2に示すように、ACT系(運用系)サーバA001とSBY系(待機系)サーバS001を有する2重の冗長システムを採用している。
各サーバA001、S001は、他系とのインターフェース部(ネットワークインタフェースカード;NIC)A007、S007やハードディスクA008、S008などを有するハードウェアA006、S006と、後述するソフトウェアを連携させるための汎用的なOSを備える。図2においては、汎用的なOSに関し、カーネルA005、S005のみが記載されている。
各サーバA001、S001は、ソフトウェアとして、サービスプロセスA002、S002、再開制御部A003、S003、及び、系構成管理部A004、S004などを有している。なお、共有メモリA009、S009は、RAMなどの半導体メモリなどで構成されているハードウェアであるが、上述したソフトウェアの部分が利用するものであるので、ソフトウェア部分と同様な階層で示している。
系構成管理部A004、S004は冗長構成の状態管理及び障害監視を行うものである。再開制御部A003、S003は、サービスプロセスA002、S002の起動制御や監視などの管理を行う。サービスプロセスA002、S002は、サービス(例えば、呼処理サービス)に必要なメモリエリアA010、S010を保持し、サービスを実施するものである。サービスに必要なメモリエリアA010、S010は、ハードウェアやソフトウェアにおける障害時においても救済されなければならず、ACTサーバA001及びSBYサーバS001間の同期対象メモリエリアとなる。
ここでの同期対象メモリエリアとは、SBYサーバS001に切り替わったときにも、ACTサーバA001と同一サービスを提供できるように、ACTサーバA001が有しているデータと同値のデータをSBYサーバS001が格納できるようにするための、各系でのメモリエリアをいう。なお、呼制御データを一致させると共に、一元管理する技術については、特許文献1に記載されている。
図2におけるサービスプロセスA002、S002は、ハードディスクA008、S008に格納されている実行ファイルに基づいて生成されるものである。
例えば、サービスプロセスA002、S002の生成の元となる実行ファイルなどのソフトウェアは、その運用中にバグが発見されて書き直されることが多い。以下では、図2に示すような冗長システムにおいて、ファイル更新を行う従来の方法を、図3のシーケンス図を参照しながら説明する。
一般に、冗長システムでは、まず、SBY系から新ファイルを配置し、ACT系は旧ファイルのままにしておく。その後、系切替えをすることで、新ファイルでのサービスを開始するが、新ファイルにおいて障害が発生した場合も、再び、系切替えを行うことで、すばやく、旧ファイルにロールバックすることができる。このような方式により、サービスプロセスのファイル更新を行う場合のシーケンスを図3に示している。
図3では記載されていないが、ACT系サーバA001が旧サービスプロセスA002にてサービスを提供している間に、例えば、オペレータは、SBY系サーバS001のハードディスクS008上に展開されている実行ファイルを新しい実行ファイルに更新する。
このような状態で、例えば、オペレータがACT系サーバA001に対して系切替えを指示操作し(この操作は、新ファイルに切り替えるための系切替えであることを明確にしたものであっても良い)、このとき、ACT系の系構成管理部A004は、SBY系の系構成管理部S004へ系切替えを指示する(P100)。
SBY系において、再開制御部S003は、系構成管理部S004から再開要求が与えられると(P101)、今までのサービスプロセス(旧サービスプロセス)S002を終了させ(P102)、更新された新実行ファイルをハードディスクS008からワーキングメモリ上にロードし、新サービスプロセスを生成する(P103)。その後、再開制御部S003によって、新サービスプロセスS002を適用し得るように再開処理が行われる(P104、P105)。なお、再開とは、その新サービスプロセスS002を動作し得る状態に立ち上げることを言う。
ACT系サーバA001においては、SBY系サーバS001に系切替えを指示したときには(上述したP101)、直ちに、又は、所定時間経過に、自己をSBY系に移行する。そのため、SBY系の再開処理中の期間では、サービスは中断する。新サービスプロセスS002についての再開処理が終了し、再開制御部S003がそのことを認識すると(P106)、系構成管理部S004に再開完了を通知し(P107)、これにより、今までSBY系であったサーバS001が、新サービスプロセスに対応したACT系として動作を開始する。
このような状態では、系切替えの開始前でACT系であったサーバA001は、旧サービスプロセスを搭載し、系切替えの開始前でSBY系であったサーバS001は、新サービスプロセスを搭載した状態となり、両系のサーバA001、S001は非同期状態になる。
系切替えの開始前でACT系であった現時点でSBY系のサーバA001は、他系のサーバS001からのACT系に切り替わった旨の通知などの到来により、自系も、新サービスプロセスに対応する状態への切替え動作を行い(P108〜P115)、これにより、新サービスプロセスに対応したSBY系の状態に移行し、両系が再び同期状態となる。
系切替え後の再開処理(P105)においては、新サービスプロセスにおいて旧サービスプロセスが使用していた同期対象メモリエリアS010を引き継ぐ必要がある。例えば、新サービスプロセスと旧サービスプロセスとで、いわゆるオブジェクト指向言語におけるクラスやインスタンスの定義やクラス間の関係などの構造体が異なることが多く、このような構造体の相違に応じ、同期対象メモリエリアS010を新サービスプロセスが利用するには、型変換処理が必要となる。
サービスプロセスが使用する同期対象メモリエリアS010は、その領域の種類などにより、セグメントに分けて管理されている。型変換処理は、それぞれのセグメントにより異なる処理になるため、セグメント毎に実行する必要がある。
特開2001−345850号公報
従来のファイル更新方法では、系切替え後に、新サービスプロセスを立ち上げ、その新サービスプロセスの再開処理の中で型変換処理を実施する。型変換処理は、メモリの管理セグメント毎に実施する必要があるため、セグメントの数だけ呼び出す必要がある。コールサーバのような大規模なシステムを構築する場合、そのセグメント数は膨大であるため、型変換処理を含んだ再開処理に時間がかかり、ファイル更新中のサービス中断時間が長くなるという課題があった。
また、SBY系において、旧サービスプロセスで使用していた同期対象メモリエリアは型変換処理により上書きされてしまう。そのため、型変換処理が開始された以降で再開処理に失敗して旧ファイルにロールバックするには、SBY系においてロールバックできず、他系(旧ACT系)への系切替え処理を伴い、旧ファイルでのサービス復旧完了までに時間がかかるという課題があった。
そのため、提供中のサービスを継続させたまま、そのサービスを提供している実行プログラムなどのファイル更新を短時間に行うことが可能な冗長システムのファイル更新方法が求められている。また、ファイル更新時においてロールバックが必要となっても迅速にロールバックさせることができる冗長システムのファイル更新方法が求められている。
第1の本発明の冗長システムのファイル更新方法は、ACT系サーバ及びSBY系サーバがそれぞれ、サービスの処理が記述されたファイルと、冗長構成の状態管理及び障害監視を行う系構成管理部と、上記ファイルの起動制御や監視などの管理を行う再開制御部と、系切替え時のデータの一致を確保するように同値データでなる同期情報を格納する共有メモリ上の同期対象メモリエリアとを有する冗長システムにおいて、上記SBY系サーバにおけるファイル更新時に、上記SBY系サーバは、更新前のファイルに対応した旧の上記同期対象メモリエリアに加え、更新後のファイルに対応した新たな同期対象メモリエリアを別途確保し、上記SBY系サーバの上記系構成管理部は、上記新たな同期対象メモリエリアが確保されている間に、上記ACT系サーバから更新前のファイル用の同期情報が到来したときに、その同期情報を旧の上記同期対象メモリエリアに格納すると共に、生成された更新後のファイルに与え、この生成された更新後のファイルは、更新前のファイル用の同期情報が与えられると直ちに、当該同期情報について上記新たな同期対象メモリエリアに適応させる型変換の要否を判定し、型変換が必要と判定された場合には、当該同期情報を上記新たな同期対象メモリエリアに適応させる型変換を行うことを特徴とする。
ここで、上記SBY系サーバの上記系構成管理部は、ファイル更新時に、ファイル更新が完了するまで、更新前のファイルを残存させ、ファイル更新が完了する前にロールバックが必要となったときに、上記SBY系サーバの上記系構成管理部は、旧の上記同期対象メモリエリアを利用する残存されている上記更新前のファイルを再開させることが好ましい。
本発明によれば、サービスを提供している実行プログラムなどのファイル更新を短時間に行うことができる。また、本発明によれば、ファイル更新時においてロールバックが必要となると迅速にロールバックさせることができる。
(A)実施形態
以下、本発明による冗長システムのファイル更新方法の一実施形態を、図面を参照しながら詳述する。
この実施形態の基本的な概念は以下の通りである。ACT系が旧ファイルにてサービスを提供している間に、SBY系において、旧ファイルと新ファイルを並行して実行する。さらに、ACT系の同期対象メモリエリアでのデータ遷移を契機にイベントドリブンで行われる旧メモリエリア間のデータ同期に並行して、新メモリエリアへの型変換処理も系切替え前に行う。これにより、系切替え後の再開処理において、型変換処理が不要になり、新ファイルでのサービス開始を迅速に行うことができる。さらに、新ファイルが、旧メモリエリアと新メモリエリアを区別して割り付け、新メモリエリアへの型変換処理が行われても旧メモリエリアを保存させる。これにより、再開失敗時に自系にてメモリを救済して旧ファイルへのロールバックが可能となる。
図1は、この実施形態の冗長システムの、SBY系サーバがファイル更新のための系切替えを実行中の状態における機能ブロック図を示しており、上述した図2との同一、対応部分には同一符号を付して示している。
この実施形態の冗長システムも、ACT系サーバA001とSBY系サーバS001を有する。これらサーバA001、S001は、図示は省略するが、他の情報処理装置と同様に、CPU、メモリ(ROM、RAMなど)、通信部、ハードディスクなどを備えて構成されているが、上述した状態におけるハードウェア及びソフトウェアの機能を階層的に整理して示すと、図1で表すことができる。
なお、通常の運用状態では、この実施形態の冗長システムも、上述した図2のように表すことができる。
図1において、各サーバA001、S001は、他系とのインターフェース部A007、S007やハードディスクA008、S008などを有するハードウェアA006、S006と、後述するソフトウェアを連携させるための汎用的なOS(図1ではカーネルA005、S005のみ記載)を備える。
各サーバA001、S001は、ソフトウェアとして、サービスプロセス(図1においては旧サービスプロセスと表記している)A002、S002、再開制御部A003、S003、及び、系構成管理部A004、S004などを有している。共有メモリA009、S009は、RAMなどの半導体メモリなどで構成されているハードウェアであるが、ソフトウェアの部分が利用するものであるので、ソフトウェア部分と同様な階層で示している。共有メモリA009、S009内には、両系の同値のデータ(例えば、インスタンス)を格納するための同期対象メモリエリア(図1では旧メモリエリアと表記している)A010、S010が設けられている。
なお、再開制御部A003、S003や系構成管理部A004、S004は、ファイル更新機能に関し、従来とは異なる処理を実行する(後述する図4参照)。
ファイル更新が実行される前であれば、以上の構成要素によって冗長システムが成り立っているが、SBY系サーバS001がファイル更新のための系切替えを実行している途中状態においては、SBY系サーバS001は、ファイル更新によるサービスプロセス(図1においては新サービスプロセスと表記している)S011と、新サービスプロセスS011が同期処理で利用する同期対象メモリエリア(図1では新メモリエリアと表記している)S012とが生成されている。
図4は、実施形態の冗長システムにおけるファイル更新方法を示すシーケンス図であり、従来に係る図3と対応するものである。
図4では省略しているが、ACT系サーバA001が旧サービスプロセスA002にてサービスを提供している間に、例えば、オペレータは、SBY系サーバS001のハードディスクS008上に展開されている実行ファイルを新しい実行ファイルに更新する。
このような状態で、例えば、オペレータがSBY系サーバS001に対して新ファイル取込みを指示操作すると、SBY系の系構成管理部S004は再開制御部S003にプロセス生成要求を発行し(P200)、これにより、再開制御部S003は、ACT系としての新サービスプロセスS011を生成する(P201)。なお、SBY系サーバS001の系構成管理部S004が、ハードディスクS008上に新しい実行ファイルが展開されたことを認識することにより、自動的に上述したステップP200の処理を行うようにしても良い。
この実施形態の場合、ACT系としての新サービスプロセスS011は、サービスの提供処理を行うサービスプロセス本体部分と、生成された直後の処理を行う生成直後処理部分と、初めて系切替えが指示されたときの再開処理を行う再開処理部分とからなる(P202、P203)。
生成直後処理部分は、新メモリエリアS012を生成させ、使用中の旧メモリエリアS010に関し、新メモリエリアS012を利用して型変換を実施する処理と、ACT系から到来してバッファリング中の同期情報の型変換を実施する処理と、バッファリング中の同期情報がなくなった以降に行うACT系から到来した同期情報の型変換を実施する処理とでなる(後述する図6参照)。なお、図4において、「イベントドリブン同期状態」とは、バッファリング中の同期情報がなくなった以降に行うACT系から到来した同期情報の型変換を実施している状態を言う。
以上のように、新サービスプロセスS011が生成された状態では、旧サービスプロセスS002と並行して実行される。また、SBY系の共有メモリS109上には、旧サービスプロセスS002が使用する旧メモリエリアS010に加えて、新サービスプロセスS011が使用する新メモリエリアS012が確保される。
新サービスプロセスS011は、イベントドリブン同期状態になったことを、例えば、系構成管理部S004を介してオペレータに通知するものであっても良い(通知は、例えばディスプレイへの表示であっても良く、LEDなどの点灯などであっても良い)。また、新サービスプロセスS011は、イベントドリブン同期状態になったことを、例えば、系構成管理部S004を介してACT系に通知するものであっても良い。
例えば、オペレータが、イベントドリブン同期状態になったことを通知によって認識すると、又は、SBY系サーバS001に対して系切替えを指示操作したときから十分な時間が経過してイベントドリブン同期状態になったことを認識すると、ACT系サーバA001に対して系切替えを指示操作し、このとき、ACT系の系構成管理部A004は、SBY系の系構成管理部S004へ系切替えを指示する(P204)。なお、ACT系の系構成管理部A004は、イベントドリブン同期状態の通知によって、SBY系の系構成管理部S004へ系切替えを指示するようにしても良い。
ACT系サーバA001は、系切替えを指示した後に、自系をSBY系に移行させる(P205)。なお、この際に移行されたSBY系は、旧サービスプロセスA002に係るSBY系である。
以上のように、この実施形態の場合、ACT系サーバA001が旧ファイル(旧サービスプロセスA002)にてサービスを提供している間に、SBY系サーバS001は、旧サービスプロセスS002に並行して新サービスプロセスS011を生成し、サービスプロセスS002で使用しているメモリセグメントに関し、新サービスプロセスS011に適応するように型変換処理を行う。さらに、ACT系サーバA001が旧ファイル(旧サービスプロセスA002)にてサービスを提供している間に、通常行われている旧メモリエリアA010、S010における両系の同期に加えて、同期要求があったセグメントに関して新メモリエリアS012への型変換処理も並行して行う。
すなわち、ACT系サーバA001がSBY系サーバS001に系切替えを指示したときには、型変換処理は既に終了している。
SBY系において、再開制御部S003は、系構成管理部S004から再開要求が与えられると(P206)、今までのサービスプロセス(旧サービスプロセス)S002を終了させ(P207)、新サービスプロセスS011に再開処理を指示する(P208)。新サービスプロセスS011は、型変換処理を除く再開処理を実行し(P209)、再開処理が完了したときに再開制御部S003を介してその旨を系構成管理部S004に通知し(P210、P211)、系構成管理部S004は、自系を、新サービスプロセスS011を使用するACT系にする(P212)。このACT系と動作し得る状態になった瞬間に、旧サービスプロセスS002や旧メモリエリアS010がワーキングメモリ上から消失する。
上述した図1に示す機能ブロック図の状態は、新サービスプロセスS011が生成されたとき(P201)から、新サービスプロセスS011を使用するACT系になる(P212)直前までの状態である。
SBY系サーバS001が、新サービスプロセスS011を使用するACT系になった状態では、両系のサーバA001、S001は非同期状態になる。
系切替えの開始前でACT系であった現時点でSBY系のサーバA001は、他系のサーバS001からのACT系に切り替わった旨の通知などの到来により、自系も、新サービスプロセスに対応する状態への切替え動作を行う(P213〜P221)。なお、この切替え動作の開始前において、オペレータは、サーバA001のハードディスクA008上に展開されている実行ファイルを新しい実行ファイルに更新しておく。
すなわち、サーバA001の切替え動作では、まず、サーバA001の系構成管理部A004は再開制御部A003を介して旧サービスプロセスA002を終了させる(P213、P214)。また、サーバA001の系構成管理部A004は再開制御部A003を介して新サービスプロセス(SBY系用の新サービスプロセス)を生成させる(P215〜P217)。さらに、系構成管理部A004は、その生成完了の通知を受領した後に(P218、P219)、新たなACT系になったサーバS001側から、同期対象メモリエリア(新メモリエリア)S012のデータの全ての値を取り込んで格納し(P220)、自系を新サービスプロセスを適用するSBY系の状態にする(P221)。
以上のようにして、更新されたファイル(新サービスプロセス)を適用する同期状態が確立する。
上述したように、新サービスプロセスS011が生成され、新サービスプロセスS011及び旧サービスプロセスS002が並行して実行される状態では、新メモリエリアS112及び旧メモリエリアS010がSBY系の共有メモリS109上に確保されている。図5は、新旧サービスプロセスのメモリ割り付けの状態を示している。
ACT系旧サービスプロセスA002は、ACT系共有メモリA009上に、旧メモリエリアA010を割り付けている。同様に、SBY系旧サービスプロセスS002は、SBY系共有メモリS009上に、旧メモリエリアS010を割り付けている。さらに、SBY系においては、新サービスプロセスS011がSBY系共有メモリS009上に、旧メモリエリアS010と新メモリエリアS012の両方を、新サービスプロセスにおける仮想空間内の異なる領域に割り付けている。
新サービスプロセスS011は、旧メモリエリアS010上のセグメントを、新メモリエリアS012の情報へ型変換する記述を含んでいる。
図6は、SBY系の系構成管理部S004及び新サービスプロセスS011による同期情報の処理の流れを示すシーケンス図である。図6に示す処理部分は、図4のステップP202及びP203に対応し、ステップP202及びP203における同期情報の処理部分を詳細に示したものである。
ACT系で同期対象セグメントにおいてデータ遷移が起こると、ACT系の系構成管理部A004から同期情報が送信され、SBY系の系構成管理部S004がこれを受信する。このとき、受信する同期情報は、同期対象セグメントのアドレスとサイズ、及び、書き込むべき実際のデータなどである。これら3つの情報を用いて、メモリエリア(旧メモリエリア)S010へ同期データを書き込むことによりメモリ同期がとれる。
このような同期状態でサービスプロセスのファイル更新が実行される。SBY系において、再開制御部S003により、新サービスプロセスS011が生成されると、新サービスプロセスS011では、サービスで使用中の全メモリセグメントに対する型変換処理を実施する(P300)。
この型変換処理中も、SBY系の系構成管理部S004は、ACT系からの同期情報を受信し、旧メモリエリアS010に書き込む(P301)。しかし、新サービスプロセスS011では、使用中の全メモリセグメントの型変換処理を行っているので、同期情報の処理が行えないため、この処理中では、系構成管理部S004は受信した同期情報をバッファリングしておく(P302)。
新サービスプロセスS011では、使用中の全メモリセグメントの型変換処理が終わると、系構成管理部S004によってバッファリングされている同期情報を新メモリエリアS012に反映する(P303)。新サービスプロセスS011は、異なる領域に旧メモリエリアS010と新メモリエリアS012を割り付けているため、既に同期が取られている旧メモリエリアS010のセグメントのアドレス、サイズを受信し、旧メモリエリアS010から新メモリエリアS012上の当該セグメントに同期情報を反映させることができる。
新サービスプロセスS011によって、バッファリングされている全ての同期情報の処理が完了したことを契機に、系構成管理部S004は、受信した同期情報を旧メモリエリアS010に書き込むと(P304)、直ちに、バッファを介さずに新サービスプロセスS011に転送するようになる(P305)。新サービスプロセスS011は、この同期情報を受信すると、直ちに旧メモリエリアS010から新メモリエリアS012に型変換処理を実行するため、旧メモリエリアS010の同期と並行して新メモリエリアS012への型変換を実現する(P306)。
以上のような同期情報の処理に関して、図7に、SBY系の系構成管理部S004の処理フローチャートを示し、図8に、新サービスプロセスS011の処理フローチャートを示している。
SBY系の系構成管理部S004は、ACT系からの同期情報を待ち受けており(P400)、同期情報を受信すると(P401)、旧メモリエリアS010に同期データを書き込む(P402)。その後、新サービスプロセスS011が生成されているか否かを判別し(P403)、生成されていなければ、同期情報の待ち受け状態に戻る。新サービスプロセスS011が生成されていれば、同期情報をバッファリングする状態にあるか否かを示すフラグの状態を判別する(P404)。フラグが、同期情報をバッファリングする状態にあることを示していると(立っていないと)、受信した同期情報をバッファリングした後(P405)、同期情報の待ち受け状態に戻る。フラグが、同期情報をバッファリングする状態にないことを示していると(立っていると)、受信した同期情報を新サービスプロセスS011に送信した後(P406)、同期情報の待ち受け状態に戻る。
新サービスプロセスS011は、旧メモリエリアS010の使用中の全てのメモリセグメントの型変換処理を実施する(P500)。次に、バッファリングされている同期情報を新メモリエリアS012に反映する(P501)。その後、上述したフラグを立てる(P502)。なお、フラグは初期状態では立てられてなく、バッファリングされた同期情報を処理することを表している。
その後、新サービスプロセスS011は、同期情報の受信待ちの状態に移行し(P503)、系構成管理部S004から同期情報を受信すると(P504)、同期対象セグメントの型変換処理を呼び出し、新メモリエリアS012に反映して同期情報の受信待ちの状態に戻る。
次に、系切替え後の再開処理に失敗した際に旧ファイルへロールバックする場合を説明する。
図9は、再開処理失敗時におけるSBY系の新旧サービスプロセスでのメモリ割り付け状態の変化を示している。
新サービスプロセスS011の生成から系切替えまでの間は、図5を用いて説明したように、また、図9(A)に示すように、SBY系において、新サービスプロセスS011では、旧メモリエリアS010と新メモリエリアS012を新サービスプロセスS011における仮想空間内の異なる領域にマッピングしている。
ACT系から系切替え指示を受けると、SBY系では、新サービスプロセスS011の再開処理が開始される。再開処理では、新サービスプロセスS011がサービスを開始するために、スレッドの生成やメモリの救済判定などの初期設定が行われる。新サービスプロセスS011では、新メモリエリアS012を旧メモリエリアS010とは異なる領域に割り付けているため、図9(B)に示すように、再開処理中も、旧メモリエリアS010は影響を受けることなく保存されている。
この新サービスプロセスS011の再開処理に失敗した場合、新サービスプロセスS011は終了され、旧サービスプロセスS002にてサービスを開始するために旧サービスプロセスS002の再開処理が行われる。このとき、旧サービスプロセスS002においては、図9(c)に示すように、保存されている旧メモリエリアS010を、図9(A)の「系切替え前」の状態と同様にマッピングすることにより、旧メモリエリアS010のメモリ救済が可能となる。
図9の例では、新サービスプロセスS011の再開処理時に旧サービスプロセスS002を終了させているが、旧サービスプロセスS002を維持している場合も、上記と同様に動作する。
次に、ファイル更新時におけるバージョン管理方法を説明する図である。
ファイル更新において、メモリエリア内の構造体の構成が変更になった場合など、旧メモリエリアS010から新メモリエリアS012へ型変換する処理は、新ファイルのプログラム(サービスプログラム)内に実装される。一方、このファイル更新実施時点までの全ての旧ファイルのバージョンから移行することは、全ての旧ファイルのバージョンと新ファイルのバージョンにおけるメモリ内の構造上の相違点を把握する必要があり、その型変換処理を実装することは事実上不可能である。
このため、型変換処理を旧ファイルのバージョン情報を元に制限する。すなわち、新ファイルプログラムによりメモリ変換可能対象である当該バージョンの旧ファイルからのみ旧ファイルから新ファイルへメモリの引き継ぎを行う。旧ファイルのバージョンが新ファイルにおける変換対象外のバージョンであった場合には、旧メモリは破棄される。また、メモリ引継ぎを実施可能なバージョンからのファイル更新であった場合でも、メモリセグメント毎に型変換が必要であるか、型変換は不要であり、旧メモリエリアからコピーするかの決定が可能である。
図10は、新ファイルプログラム(新サービスプログラムS011)が旧ファイルのバージョン情報を内蔵するバージョン認証プログラムによって収集し(P600)、認証後(P601)、内蔵するメモリエリア変換プログラムによって、メモリ変換を実施している(P602)処理のイメージ図である。
図11は、新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すフローチャートである。
旧ファイルのバージョン情報431baは、その旧プログラムファイルのビルド時にユニークな情報として書き込まれ、プログラムがロードされたときに、共有メモリ(図1参照)上に展開されることにより、新ファイルプログラム431aから参照可能となる。
新ファイルプログラムの旧ファイルバージョン認証プログラム431aaは、予めビルド時に、オブジェクト変換を許容する変換許容バージョン情報431aaaを保持しておく。
新ファイルプログラムがロードされたとき(サービスプログラムが生成されたとき)、旧メモリ変換処理を実施する前に、共有メモリに保持された旧ファイルバージョン情報431baを収集し(P700)、変換許容バージョン情報431aaaと照らし合わせることによって認証を実施する(P701)。
この認証により、新ファイルのプログラムで旧ファイルメモリエリアから型変換することが可能であるかどうかの判断することが可能となり、メモリエリア変換プログラム431abがメモリセグメント毎に呼び出され、型変換処理が動作する(P702)。
この型変換処理では、型変換が不要なメモリセグメントは旧メモリエリアから新メモリエリアへコピーされる。コピー処理の場合、型変換と異なり、要求単位に実施するのではなく、メモリ変換を実施していない残りのセグメント全てを新ファイルの再開処理直前で実行する。この複数のセグメントを一括してコピーする場合、カーネル内で実施されるため小さなセグメント毎に実施することに比べ高速に行われる。
型変換処理の実行後においては、呼救済処理も実行される(P703)。なお、図4や図6のシーケンス図を用いた説明における「型変換」の用語には、このような呼救済処理も含まれる。
旧ファイルバージョン情報431baが変換許容バージョン情報431aaaにふくまれておらず、バージョンの認証が失敗したときには、旧メモリエリアを破棄し、新メモリエリアを初期化し、再開の指示(図4参照)を待ってファイル更新再開を実施する(P704)。
上記実施形態の冗長システム及びそのファイル更新方法によれば、以下のような効果を奏することができる。
上記実施形態によれば、旧メモリエリアの同期と並行して新メモリエリアへの型変換をリアルタイムに行うため、系切替え後の再開処理において時間のかかる型変換処理が不要になり、新サービスプロセスによってサービスを開始するまでの時間を短縮することができる。
また、上記実施形態のファイル更新では、新旧メモリエリア、新旧サービスプロセス、及び、プログラム内の新旧動作が分離しており、旧サービスプロセスに必要な旧メモリエリアの同期には影響がないため、ファイル更新動作中にACT系で障害が発生した場合には、ACT系と同期状態にあるSBY系の旧メモリエリア及び旧サービスプロセスを利用して迅速にサービスの復旧ができるため、信頼性を確保したまま、ファイル更新を実施することができる。
さらに、上記実施形態によれば、ファイル更新時の新サービスプロセス再開処理に失敗した場合にも、旧サービスプロセスが保存されている旧メモリエリアをマッピングすることにより、自系にてメモリを救済してロールバックすることができ、他系の状態によらず、安全、迅速な旧ファイル(旧サービスプロセス)でのサービス復旧が可能となる。
さらにまた、上記実施形態によれば、上述したようなファイルバージョン管理を用いることによって、ファイル更新過程が異なるシステム環境において、新ファイルが認識していない旧ファイルバージョンからのファイル更新を要求された場合、的確に呼救済を伴わないファイル更新へ移行し得る。
また、上記実施形態によれば、メモリエリアが複数のメモリセグメントに分かれているようなシステムの場合、メモリセグメント毎に、型変換/コピー処理の分岐を行うことが可能となる。これにより、型変換が不要なメモリセグメントについては、旧メモリエリアから単純にコピーすることが可能となり、処理の高速化を実現できる。
(B)他の実施形態
本発明は、冗長構成を備え、実行ファイルの更新中においてもサービスの継続性が求められるような、高い信頼性が求められるシステムに適用することで、ファイル更新が与えるシステムへの影響度を小さくし、ファイル更新時においてもシステムの信碩性を維持できる。
実施形態の冗長システムの、SBY系サーバがファイル更新のための系切替えを実行中の状態における機能ブロック図である。 従来の冗長システムの機能ブロック図である。 従来の冗長システムにおけるファイル更新処理を示すシーケンス図である。 実施形態の冗長システムにおけるファイル更新方法を示すシーケンス図である。 実施形態の新旧サービスプロセスのメモリ割り付けの状態を示す説明図である。 実施形態の冗長システムにおけるファイル更新処理を示すシーケンス図である。 実施形態のSBY系の系構成管理部における同期情報処理を示すフローチャートである。 実施形態のSBY系の新サービスプロセスにおける同期情報処理を示すフローチャートである。 実施形態の再開処理失敗時におけるSBY系の新旧サービスプロセスでのメモリ割り付け状態の変化を示す説明図である。 実施形態の新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すイメージ図である。 実施形態の新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すフローチャートである。
符号の説明
A001…ACT系サーバ、A002…サービスプロセス(旧サービスプロセス)、A003…再開制御部、A004…系構成管理部、A009…共有メモリ、A010…同期対象メモリエリア(旧メモリエリア)、
S001…SBY系サーバ、S002…サービスプロセス(旧サービスプロセス)、S003…再開制御部、S004…系構成管理部、S009…共有メモリ、S010…同期対象メモリエリア(旧メモリエリア)、S011…新サービスプロセス、S012…新同期対象メモリエリア(新メモリエリア)S012。

Claims (5)

  1. ACT系サーバ及びSBY系サーバがそれぞれ、サービスの処理が記述されたファイルと、冗長構成の状態管理及び障害監視を行う系構成管理部と、上記ファイルの起動制御や監視などの管理を行う再開制御部と、系切替え時のデータの一致を確保するように同値データでなる同期情報を格納する共有メモリ上の同期対象メモリエリアとを有する冗長システムにおいて、
    上記SBY系サーバにおけるファイル更新時に、上記SBY系サーバは、更新前のファイルに対応した旧の上記同期対象メモリエリアに加え、更新後のファイルに対応した新たな同期対象メモリエリアを別途確保し、
    上記SBY系サーバの上記系構成管理部は、上記新たな同期対象メモリエリアが確保されている間に、上記ACT系サーバから更新前のファイル用の同期情報が到来したときに、その同期情報を旧の上記同期対象メモリエリアに格納すると共に、生成された更新後のファイルに与え、
    この生成された更新後のファイルは、更新前のファイル用の同期情報が与えられると直ちに、当該同期情報について上記新たな同期対象メモリエリアに適応させる型変換の要否を判定し、型変換が必要と判定された場合には、当該同期情報を上記新たな同期対象メモリエリアに適応させる型変換を行う
    ことを特徴とする冗長システムのファイル更新方法。
  2. 上記SBY系サーバの上記系構成管理部は、ファイル更新時に、ファイル更新が完了するまで、更新前のファイルを残存させ、
    ファイル更新が完了する前にロールバックが必要となったときに、上記SBY系サーバの上記系構成管理部は、旧の上記同期対象メモリエリアを利用する残存されている上記更新前のファイルを再開させる
    ことを特徴とする請求項1に記載の冗長システムのファイル更新方法。
  3. 記SBY系サーバにおけるファイル更新時に、上記SBY系サーバの上記系構成管理部は、
    更新後のファイルを再開させる前に、
    上記更新後のファイルに、上記同期対象メモリエリアに格納されている更新前のファイルの同期情報に基づき、上記更新後のファイルがそれに適応できるようにする型変換を行う
    ことを特徴とする請求項1又は2に記載の冗長システムのファイル更新方法。
  4. 上記更新後のファイルは、上記型変換の要否をメモリセグメント毎に判断することを特徴とする請求項1〜3のいずれかに記載の冗長システムのファイル更新方法。
  5. 上記更新後のファイルから上記更新前のファイルのバージョン情報を認識し、上記更新前のファイルのバージョンが、上記更新後のファイルが対象としてバージョンのときに、旧の上記同期対象メモリエリアに係るメモリ救済を行うことを特徴とする請求項1〜4のいずれかに記載の冗長システムのファイル更新方法。
JP2006088608A 2006-03-28 2006-03-28 冗長システムのファイル更新方法 Active JP4710688B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006088608A JP4710688B2 (ja) 2006-03-28 2006-03-28 冗長システムのファイル更新方法
CN2007100024222A CN101046758B (zh) 2006-03-28 2007-01-17 冗余***的文件更新方法
US11/727,885 US20070288532A1 (en) 2006-03-28 2007-03-28 Method of updating an executable file for a redundant system with old and new files assured

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006088608A JP4710688B2 (ja) 2006-03-28 2006-03-28 冗長システムのファイル更新方法

Publications (2)

Publication Number Publication Date
JP2007264979A JP2007264979A (ja) 2007-10-11
JP4710688B2 true JP4710688B2 (ja) 2011-06-29

Family

ID=38637913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006088608A Active JP4710688B2 (ja) 2006-03-28 2006-03-28 冗長システムのファイル更新方法

Country Status (3)

Country Link
US (1) US20070288532A1 (ja)
JP (1) JP4710688B2 (ja)
CN (1) CN101046758B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5098700B2 (ja) * 2008-03-03 2012-12-12 沖電気工業株式会社 情報通信システムのファイル交換装置およびファイル交換方法
JP5481845B2 (ja) * 2008-12-04 2014-04-23 日本電気株式会社 情報処理システム、サービス提供方法、装置及びプログラム
JP5293141B2 (ja) * 2008-12-16 2013-09-18 日本電気株式会社 冗長システム
JP2011253242A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd 二重化システム、現用装置、待機装置及びデータ更新方法
EP2583178A1 (de) * 2010-08-19 2013-04-24 Siemens Aktiengesellschaft Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode
JP5845571B2 (ja) * 2010-11-30 2016-01-20 富士通株式会社 計算システムおよび計算システム管理方法
JP5501259B2 (ja) * 2011-01-25 2014-05-21 三菱電機株式会社 データファイル管理装置
JP5449229B2 (ja) * 2011-02-17 2014-03-19 日本電信電話株式会社 呼救済システム及び呼救済方法
JP6314528B2 (ja) * 2014-02-20 2018-04-25 富士通株式会社 情報処理装置及び更新方法
JP2017126139A (ja) * 2016-01-13 2017-07-20 アツミ電氣株式会社 警備センターシステム及び警備センターシステムの動作方法
US10474475B2 (en) * 2016-03-02 2019-11-12 Western Digital Technologies, Inc. Non-intrusive restart of a task manager
CN107360218B (zh) * 2017-06-22 2020-06-02 浙江力石科技股份有限公司 面向智慧旅游的大数据一体化并行存储调度方法及***
CN110412907A (zh) * 2019-06-11 2019-11-05 武汉欣叶电子科技有限公司 一种香氛发生器、车载香氛控制***及方法
CN111666091B (zh) * 2020-06-12 2023-08-29 成都极米科技股份有限公司 ***更新方法、装置、电子设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353106A (ja) * 1999-06-11 2000-12-19 Nec Commun Syst Ltd データ引き継ぎ装置および方法
JP2001142762A (ja) * 1999-11-12 2001-05-25 Nec Corp 二重化データベースのデータ連携装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191069A (ja) * 1997-12-26 1999-07-13 Fujitsu Ltd 二重化装置のファイル更新方法
JPH11203157A (ja) * 1998-01-13 1999-07-30 Fujitsu Ltd 冗長装置
JP3601777B2 (ja) * 2000-06-02 2004-12-15 日本電気株式会社 コールエージェント用呼制御データの集中管理方法及びシステム
US7305672B2 (en) * 2004-01-06 2007-12-04 International Business Machines Corporation Dynamic software update system, method and program product
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353106A (ja) * 1999-06-11 2000-12-19 Nec Commun Syst Ltd データ引き継ぎ装置および方法
JP2001142762A (ja) * 1999-11-12 2001-05-25 Nec Corp 二重化データベースのデータ連携装置

Also Published As

Publication number Publication date
JP2007264979A (ja) 2007-10-11
US20070288532A1 (en) 2007-12-13
CN101046758B (zh) 2010-12-08
CN101046758A (zh) 2007-10-03

Similar Documents

Publication Publication Date Title
JP4710688B2 (ja) 冗長システムのファイル更新方法
JP5564956B2 (ja) 情報処理装置及び情報処理装置のファームウェア更新方法
JP5413515B2 (ja) 仮想計算機のデータ複製方法、情報処理装置及びプログラム
US8862843B2 (en) Storage system, backup storage apparatus, and backup control method
JP5012017B2 (ja) 組込装置および制御方法
JP4359609B2 (ja) 計算機システム、システムソフトウェア更新方法及び第1サーバ装置
CN110874261B (zh) 可用性***、方法和存储有程序的存储介质
US7882388B2 (en) Dual independent non volatile memory systems
GB2506177A (en) Method of migrating an operating system executing an application
JP2006252437A (ja) パッチ適用方式及びパッチ適用方法
JP5285045B2 (ja) 仮想環境における故障復旧方法及びサーバ及びプログラム
JP2009217488A (ja) 運行管理システムおよびそのリモート保守方法
JP5683088B2 (ja) 復旧システム、復旧方法及びバックアップ制御システム
WO2011158367A1 (ja) 実行中のプログラムの更新技術
JP6954693B2 (ja) フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム
WO2020241032A1 (ja) フォールトトレラントシステム、サーバ、フォールトトレラントシステムの運用方法、サーバの運用方法、及びサーバの運用方法のプログラム
JP2007087269A (ja) ソフトウェア更新システム、更新方法、及び、プログラム
JP2009098715A (ja) 冗長システム装置並びに冗長システム装置におけるジョブの実行方法及び実行プログラム
JP2017004444A (ja) 情報システム、コンピュータ、方法、およびプログラム
JP6149624B2 (ja) ファームウェア実行装置、ファームウェア実行方法、コンピュータ・プログラム、および、コンピュータ装置
JP2015153128A (ja) 呼処理制御装置及びそのソフトウェア更新方法、呼処理システム、並びにコンピュータ・プログラム
JP6364773B2 (ja) 情報処理装置、情報処理システム、メモリレプリケーション方法、並びにコンピュータ・プログラム
WO2023112112A1 (ja) 冗長化システムのアップデート方法、冗長化システム及びアップデート制御装置
US20240070035A1 (en) Information processing system and backup method
US20230185567A1 (en) In-service software upgrade with active service monitoring

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110307

R150 Certificate of patent or registration of utility model

Ref document number: 4710688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140401

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140401

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350