JP7489183B2 - 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法 - Google Patents

演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法 Download PDF

Info

Publication number
JP7489183B2
JP7489183B2 JP2019208616A JP2019208616A JP7489183B2 JP 7489183 B2 JP7489183 B2 JP 7489183B2 JP 2019208616 A JP2019208616 A JP 2019208616A JP 2019208616 A JP2019208616 A JP 2019208616A JP 7489183 B2 JP7489183 B2 JP 7489183B2
Authority
JP
Japan
Prior art keywords
construction
server
redundant
state information
time
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
JP2019208616A
Other languages
English (en)
Other versions
JP2021081967A (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.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries 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 Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2019208616A priority Critical patent/JP7489183B2/ja
Priority to DE112020004539.0T priority patent/DE112020004539T5/de
Priority to US17/642,017 priority patent/US11829266B2/en
Priority to PCT/JP2020/042417 priority patent/WO2021100624A1/ja
Priority to CN202080071862.7A priority patent/CN114586015A/zh
Publication of JP2021081967A publication Critical patent/JP2021081967A/ja
Application granted granted Critical
Publication of JP7489183B2 publication Critical patent/JP7489183B2/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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/2035Error 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 without idle spare hardware
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1656Details related to functional adaptations of the enclosure, e.g. to provide protection against EMI, shock, water, or to host detachable peripherals like a mouse or removable expansions units like PCMCIA cards, or to provide access to internal components for maintenance or to removable storage supports like CDs or DVDs, or to mechanically mount accessories
    • G06F1/1658Details related to functional adaptations of the enclosure, e.g. to provide protection against EMI, shock, water, or to host detachable peripherals like a mouse or removable expansions units like PCMCIA cards, or to provide access to internal components for maintenance or to removable storage supports like CDs or DVDs, or to mechanically mount accessories related to the mounting of internal components, e.g. disc drive or any other functional module
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/1438Restarting or rejuvenating
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)

Description

本開示は、冗長化システムに関し、特に冗長化構成の構築に関する。
従来から、発電プラント、鉄道システム、船舶、自動車、工場のオートメーション等においては、それらの運転を制御するために分散型制御システム(DCS)が使用されている。分散型制御システムは制御装置を分散配置し、ネットワークで接続することで機能分散を図ったシステムである。そして、高い信頼性と稼働率が求められる場合には、各制御装置は、同一の機能を有する2以上の装置(ハードウェア)を用いて例えば二重化など冗長化される(例えば特許文献1参照)。
このような冗長化された制御装置のいずれかが故障した場合、故障した制御装置を冗長化構成から切り離し、新たな制御装置と交換するなどして復旧される。例えば特許文献2には、情報処理を二重化するフォールトトレラント(FT)サーバにおいて、情報処理の二重化を開始する前に、稼働中のサブシステムの情報処理を停止させずに、そのメモリに記憶されている全てのデータを新たに追加するサブシステムのメモリにコピーする全コピー処理をした後、この全コピー処理中に内容が変更されたデータを稼働中のサブシステムの情報処理を停止して同様にコピーすることが開示されている。
特開2016-177716号公報 特許第5880608号公報
しかしながら、例えば発電プラント用の制御装置(冗長化システム)である場合、制御演算が数十から数百ミリ秒などのわずかな時間停止するだけでも停電や事故などの重大な状況を引き起こしかねない。特許文献2は、二重化処理の開始にあたって全コピー処理中に生じた変更差分のコピーのために稼働中の制御装置を一時的に停止しており、演算処理の停止が許容できない発電プラント用の制御装置などの演算装置の冗長化構成の構築に適用するのに懸念が残る。
上述の事情に鑑みて、本発明の少なくとも一実施形態は、稼働中の自装置の演算処理を停止することなく他の演算装置との冗長化構成を構築することが可能な演算装置を提供することを目的とする。
本発明の少なくとも一実施形態に係る演算装置は、
冗長化システムを構成する演算装置であって、
自装置の稼働中に前記冗長化システムに新たに加わる他の演算装置を検知するよう構成された検知部と、
前記他の演算装置との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部と、を備え、
前記構築処理部は、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信する第1送信部と、
規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行する第2送信部と、を有する。
本発明の少なくとも一実施形態に係る冗長化システムは、
所望の演算処理をコンピュータに実現させるための第1プログラムを仮想OS上で動作させるよう構成された第1サーバと、
前記第1サーバと冗長化される、前記第1プログラムを仮想OS上で動作させるよう構成された第2サーバと、を備え、
前記第1サーバおよび前記第2サーバの各々の前記第1プログラムは互いの状態が一致するようにしながら動作するように構成されると共に、
前記第1サーバおよび前記第2サーバは、それぞれ、請求項1~6のいずれか1項に記載の演算装置の機能をコンピュータに実現させるための第2プログラムが動作するよう構成されている。
本発明の少なくとも一実施形態に係るプログラムは、
コンピュータに、
稼働中に前記冗長化システムに新たに加わる他の演算装置を検知するよう構成された検知部と、
前記他の演算装置との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部であって、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信する第1送信部と、
規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行する第2送信部と、を有する構築処理部を実現させるためのプログラムである。
本発明の少なくとも一実施形態に係る冗長化構成の構築方法は、
稼働中に冗長化システムに新たに加わる他の演算装置を検知するステップと、
前記他の演算装置との冗長化構成を構築するための構築処理を実行するステップと、を備え、
前記構築処理を実行するステップは、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信するステップと、
規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行するステップと、を有する。
本発明の少なくとも一実施形態によれば、稼働中の自装置の演算処理を停止することなく他の演算装置との冗長化構成を構築することが可能な演算装置が提供される。
本発明の一実施形態に係る冗長化システムの構成を概略的に示す図である。 本発明の一実施形態に係る演算装置の構成を示すブロック図である。 本発明の一実施形態に係る冗長化システムの構成を示す図である。 本発明の一実施形態に係る冗長化構成の構築方法を示す図であり、稼働側装置の処理に対応するフローを示す。 本発明の一実施形態に係る冗長化構成の構築方法を示す図であり、起動側装置の処理に対応するフローを示す。
以下、添付図面を参照して本発明の幾つかの実施形態について説明する。ただし、実施形態として記載されている又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
例えば、「ある方向に」、「ある方向に沿って」、「平行」、「直交」、「中心」、「同心」或いは「同軸」等の相対的或いは絶対的な配置を表す表現は、厳密にそのような配置を表すのみならず、公差、若しくは、同じ機能が得られる程度の角度や距離をもって相対的に変位している状態も表すものとする。
例えば、「同一」、「等しい」及び「均質」等の物事が等しい状態であることを表す表現は、厳密に等しい状態を表すのみならず、公差、若しくは、同じ機能が得られる程度の差が存在している状態も表すものとする。
例えば、四角形状や円筒形状等の形状を表す表現は、幾何学的に厳密な意味での四角形状や円筒形状等の形状を表すのみならず、同じ効果が得られる範囲で、凹凸部や面取り部等を含む形状も表すものとする。
一方、一の構成要素を「備える」、「具える」、「具備する」、「含む」、又は、「有する」という表現は、他の構成要素の存在を除外する排他的な表現ではない。
図1は、本発明の一実施形態に係る冗長化システム1の構成を概略的に示す図である。
図1に示すように、冗長化システム1は、冗長化された複数の演算装置3の各々を用いて冗長化処理を行いながら稼働するシステム(装置)である。すなわち、冗長化システム1を構成する複数の演算装置3の各々は、冗長化構成が構築された後は、例えば外部から入力されるデータ(入力データD)に対して同期などしながら同一の処理を実行するなどして、互いのメモリの内容(後述する状態情報M)を一致させながら稼働を続ける。このため、例えば現用系などとなる稼働系に障害が発生した場合には待機系に切り替えて演算処理を継続するなど、いずれかの演算装置3に障害が発生しても、他の演算装置3により演算処理を継続することが可能となる。
より詳細には、図1に示すように、各演算装置3(3a、3b)は、演算処理を行うプロセッサ31(図1ではCPU)と、プロセッサ31に内部バスなどで接続されたRAMなどのメモリ32(メインメモリ)と、外部との入出力を行うための入出力インターフェース部33と、他の演算装置3との冗長化処理を行うための例えばFPGAなどで構成されるデバイスである冗長化処理部34と、を備えている。この冗長化処理部34は、他の演算装置3の備える冗長化処理部34と通信線35により接続されることで上記の冗長化処理を実行する。そして、各演算装置3は、他の演算装置3と冗長化された状態で、メモリ32にロードされたプログラムの命令に従ってプロセッサ31が動作(データの演算など)し、冗長化システム1が行うべき各種の演算を実行するよう構成される。
図1に示す実施形態では、冗長化システム1は、発電プラントなどとなるプラント8の制御を実行する例えば分散制御システム(DCS:Distributed Control System)を構成する制御装置である。この制御装置は、各々が上記の演算装置3となる2台のCPUモジュール(コントローラ)を備えており、二重化(冗長化)されている。このCPUモジュールは、例えば制御装置の全体の演算機能を担っている。また、冗長化処理部34は、後述する冗長化構成の構築処理を実行すると共に、冗長化構成の構築後には、通信線35により接続された他の演算装置3と同期して制御演算(演算処理。以下同様)を行うようになっている。この構築処理の完了後の同期処理としては周知な手法などで良く、いずれの手法にも限定されない。
例えば同一の稼働系の演算装置3に入力された入力データDを、通信線35を介して待機系の演算装置3に入力することで同期を行っても良い。あるいは、複数の演算装置3に同一の入力データが入力されると共に、この入力データDに対して同一の命令(演算)を同期して実行するための情報を通信線により交換しても良い。複数の演算装置3が同一のクロックに従って動作することにより、各々に入力された入力データDに対して同一の命令(演算)を同期して実行しても良い。この際の出力は、稼働系の演算装置3から出力されても良いし、多数決回路により最終出力を出力されても良い。その他の手法を用いても良い。
そして、冗長化システム1は、プラント8に設置された各種の計測器(フィールド機器81)によって計測される温度、流量、圧力など計測データやイベントデータなどとなるプラント8の状態データを収集すると共に、収集した1以上の状態データを処理すべき入力データDとして各種の演算を実行し、その演算結果Drをダンパ、制御弁(CV)などの操作端(フィールド機器81)に送信することにより、プラント8の自動制御を実行する。
なお、プラント8の制御装置(冗長化システム1)は、通常、図示しない通信ネットワークを介して中央操作室に設置されたイーサネット(登録商標)などのLAN(Local Area Network)に接続されており、プラント8の操作及び監視を行う機能を提供するオペレータステーション(OPS)といった、上記のLANに接続されたコンピュータ機器との通信が可能に構成される。そして、冗長化システム1は、上記の通信ネットワーク(不図示)を介した通信を行うための例えばLANカードなどのインターフェース部(不図示)を用いて、その演算結果Drや入力データDなどの例えばOPSへの送信や、OPSなどからの操作命令の受信などが可能となっている。冗長化システム1は、PLC(Programable Logic Controller)であっても良い。
ただし、図1に示す実施形態に本発明は限定されない。他の幾つかの実施形態では、演算装置3は、冗長化処理部34を有していなくても良い。例えば、冗長化システム1を構成する複数の演算装置3にそれぞれ同一の入力データDが入力されてそれぞれが同一の処理を行うことで、同期せずに運転されても良い。なお、この場合には、後述する構築処理は、入力データDが流れるネットワークなどを用いて行っても良い。
このような冗長化システム1において、例えば障害が発生した演算装置3は再起動や交換などされる。再起動の場合にはメモリ32の内容が初期化される。また、交換の場合には、新しい演算装置3や修理後の演算装置3が、稼働中の演算装置3に接続されるなどする。このような復帰(追加)が行われる際には、冗長化システム1に新たに追加(接続)される演算装置3のメモリが初期化された状態にあるなど、稼働中の演算装置3のメモリの内容とは異なっている。よって、冗長化処理を開始するためには、稼働中の演算装置3と新たに追加される演算装置3との間で冗長化構成を構築する必要がある。
この際、冗長化システム1が発電プラント用の制御装置である場合には、制御演算が数十から数百ミリ秒などのわずかな時間停止するだけでも停電や事故などの重大な状況を引き起こす可能性があるため、制御演算を停止させずに冗長化システム1を復旧させる必要がある。そこで、演算装置3は、冗長化処理を開始する前に、以下に説明するようにして冗長化構成を構築する。
以下、冗長化システム1を構成する演算装置3が有する冗長化構成を構築するための構成について、図2~図3を用いて詳細に説明する。
図2は、本発明の一実施形態に係る演算装置3の構成を示すブロック図である。図3は、本発明の一実施形態に係る冗長化システム1の構成を示す図である。
図2に示すように、演算装置3は、検知部4と、構築処理部5と、を備える。これらの構成(機能部)は、演算装置3が備える上記のプロセッサ31やメモリ32を用いて実行するプログラム(冗長化構築プログラム)で実現されても良いし、上記の冗長化処理部34で実行されるロジック回路またはプログラムで実現されても良い。
なお、以下では、冗長化システム1を構成するいずれかの演算装置3が障害などにより冗長化システム1から一旦切り離されている状態において、操作端などの制御対象に対する制御演算を実行可能に稼働している演算装置3(以下、稼働側装置3a)と、冗長化システム1に新たに加わろうとするメモリ32が初期化状態の他の演算装置3(以下、起動側装置3b)とで、冗長化構成を構築する場合を例に説明する。つまり、上記の演算装置3の構成は、稼働側装置3aおよび起動側装置3bの両方が備えることが可能であるが、稼働側装置3aが備える場合を例に説明する。ここでいう演算装置3(3a、3b)は、CPUモジュールなどのハードウェア装置や、後述する模擬装置(図3参照)といったサーバ上で動作するタスク(プロセス)などとなる。
検知部4と、自装置が稼働中に冗長化システム1に新たに冗長化システム1に加わる他の演算装置3を検知するよう構成された機能部である。例えば、検知部4は、通信線35(図1)に接続された起動側装置3bから、この通信線35を介して要求Rなどを受信することによって、上記の検知を行っても良い。
構築処理部5は、起動側装置3bとの冗長化構成を構築(冗長化を組む)するための構築処理を実行するよう構成された機能部である。この構築処理は、稼働側装置3aが起動側装置3bに対して、冗長化構成の構築に必要な自装置の状態情報Mを送信し、両装置の状態情報Mが一致するようにするための処理である。この状態情報Mは、稼働側装置3aのメモリ32における、冗長化構成の構築のために起動側装置3bにコピーする必要がある情報が格納された領域の内容(データ)であり、メモリ32の少なくとも一部の領域に格納されたデータである。この構築処理によって、稼働側装置3aの状態情報Mが起動側装置3bのメモリ32にコピーされることで、両装置のメモリ32の内容が必要な範囲で一致するようにされる。
より詳述には、構築処理部5は、上記の構築処理を実行するための構成(機能部)として、この構築処理の開始時における上記の状態情報Mである構築開始状態情報Maを特定し、起動側装置3bに送信する初期内容送信部51(第1送信部)と、例えば周期的などの規定タイミングが到来する度に規定の完了条件Cが満たされるまで、状態情報Mに生じた変更差分Mdを起動側装置3bに繰返し送信する差分反復送信部52(第2送信部)と、を有する。完了条件Cは、上記の構築処理を終了させる条件であり、差分反復送信部52は完了条件Cが満たされたと判定すると処理を終了する。
すなわち、稼働側装置3aは、上記の構築処理の実行中でも、冗長化システム1が実行する必要がある制御演算を停止させることなく、例えば例えば数十ミリ秒などの周期で制御演算を実行している。また、この制御演算の周期は、構築開始状態情報Maの送信時間および起動側装置3bへの展開(反映)よりも短い。このため、構築開始状態情報Maが特定された後から構築開始状態情報Maの起動側装置3bへのコピーが完了するまでの間に行われた稼働側装置3aの制御演算によって、稼働側装置3aの状態情報は変化し得るので、上記のコピーの完了時に両装置の状態情報M(メモリの内容)には差異が生じ得る。
よって、差分反復送信部52は、例えば構築開始状態情報Maの送信後などから規定タイミングが到来する度に、その直前の規定タイミングの到来時からの変更差分Mdを特定し、特定された変更差分Mdを起動側装置3bに送信する。そして、この処理を規定の完了条件Cが満たされるまで、繰返し行う。なお、上記の規定タイミングの到来時において、構築開始状態情報Maの送信後の最初には、その際の稼働側装置3aの状態情報Mと構築開始状態情報Maとの差分(変更差分Md)が特定されて、送信される。
上記の完了条件Cは、1以上の条件を含んでも良い。例えば、次に説明するような各条件のうちの少なくとも1つを含んでも良い。具体的には、完了条件Cは、変更差分Mdのデータサイズに基づいて定められた条件(第1条件)を含んでも良い。より具体的には、この第1条件は、構築開始状態情報Maのデータサイズに対する変更差分Mdのデータサイズの割合が任意の閾値以下との条件であっても良い。あるいは、第1条件は、変更差分Mdのデータサイズが任意の閾値以下との条件であっても良い。また、完了条件Cは、この両方の第1条件を含んでも良い。これによって、変更差分Mdが例えば数%程度などになった場合に構築処理を完了させることが可能となる。
あるいは、完了条件Cは、処理経過時間が規定時間(規定時間)以上との第2条件を含んでも良い。この処理経過時間は、構築処理の開始や構築開始状態情報Maの特定後、差分反復送信部52による処理の開始後などからの経過時間であっても良い。つまり、例えば予め定めた数分、数十分、数時間などの規定時間の経過後に、稼働側装置3aと起動側装置3bとの状態情報Mが一致したとみなす。これによって、稼働側装置3aと起動側装置3bとの状態情報Mが完全に一致した状態にならない場合に陥ったとしても、構築処理正常に完了させ、冗長化処理に移行するこが可能となる。
そして、構築処理の完了後には、稼働側装置3aおよび起動側装置3bは冗長化処理を行う。例えば、上記の構築処理が、起動側装置3bおよび稼働側装置3aの状態情報Mが完全に一致した状態で完了するように構成されている場合には、同一の入力データDが各演算装置3にそれぞれ入力されることで、その入力データDに対する制御演算を同期(クロック同期など)して実行させても良いし、あるいは、入力データDに対する処理のタイムラグを許容しつつ、状態情報Mが一致するようするなど非同期に実行させても良い。
あるいは、上記の構築処理が、起動側装置3bおよび稼働側装置3aの状態情報Mが完全に一致させない状態でも完了するように構成されている場合には、起動側装置3bに対してその不一致を生じさせることになった入力データDを入力した後、上述したようなタイムラグを許容した冗長化処理を行っても良い。状態情報Mが完全に一致するような場合には、制御演算を同期して実行するようにしても良い。このようにして、冗長化システム1の運転が継続される。
図2に示す実施形態では、稼働側装置3aにおいて上記の構築処理部5は、上記の検知部4に接続されており、検知した旨が入力されると、構築処理を開始するようになっている。具体的には、初期内容送信部51による構築開始状態情報Maの起動側装置3bへの送信がなされた後、差分反復送信部52による変更差分Mdの特定および起動側装置3bへの送信が繰返しなされるようになっている。そして、差分反復送信部52は、完了条件Cが満たされると処理を終了するようになっている。
また、起動側装置3bは、冗長化構成の構築の要求Rを送信する要求部42と、稼働側装置3aから受信した構築開始状態情報Maあるいは変更差分Mdを自装置の状態情報Mに展開(コピー)するメモリ展開部54と、を備えている。要求部42から送信された要求Rは、稼働側装置3aの検知部4によって受信されるようになっている。また、メモリ展開部54は、稼働側装置3aの差分反復送信部52から送信された構築開始状態情報Maおよび変更差分Mdを、自装置のメモリ32の適切な領域にコピーするようになっている。
なお、各演算装置3は、稼働側装置3aおよび起動側装置3bにもなり得るので、稼働側装置3aおよび起動側装置3bの両方の構成(機能部)を有している。
また、稼働側装置3aおよび起動側装置3bは、入力データDに対して制御演算を実行する演算処理部6を備えている。そして、演算処理部6は、上記の検知部4、構築処理部5、要求部42、メモリ展開部54、通知部7(後述)など構築処理に関連する機能部とは関連なく、無関係に、入力データDの取得、制御演算の実行、および演算結果Drの出力を行うことが可能に構成されている。
ただし、本実施形態に本発明は限定されない。他の幾つかの実施形態では、冗長化システム1を構成する各演算装置3には同一の入力データDが入力されるように構成されていなくても良い。例えば、稼働系の演算装置3が入力データDを演算処理した後、これによって生じた状態情報Mの変更差分Mdを、通信線35を介して待機系の演算装置3に送信することで、稼働系および待機系の演算装置3のメモリの内容を一致させても良い。また、冗長化システム1は、複数の演算装置3がいずれも稼働系として並列に動作し、障害が発生した場合に残りの演算装置3で処理を継続するものであっても良い。
上記の構成によれば、稼働中の制御装置は、冗長化構成を構築する新たな演算装置3を検知すると、最初に自装置の状態情報M(メモリ32の内容)をこの新たな演算装置3に送信(コピー)する。そして、これにより両装置の状態情報Mを一致させようとするが、この一致がなされるまでの間に自装置による演算処理の実行によって生じた状態情報Mの変化分(変更差分)については、規定の完了条件Cが満たされるまで繰り返し送信することで、冗長化構成の構築を行う。
これによって、稼働中の演算装置3は、冗長化構成の構築処理の実行中においても稼働状態にある自装置での演算処理を停止せずに継続して実行しつつ、新たに加わる他の演算装置3との冗長化構成を構築することができる。例えば、発電プラントの制御装置は、制御演算が数十から数百ミリ秒などのわずかな時間停止するだけでも停電や事故などの重大な状況を引き起こしかねないが、上記の構成によれば、制御演算のわずかな時間の停止も生じさせることなく、冗長化構成を構築することができる。
幾つかの実施形態では、図2に示すように、上述した演算装置3は、予め定められるなどした許容時間内に上記の完了条件Cが満たされない場合に通知(失敗通知Nfの出力を実行)するよう構成された通知部7を、さらに備えても良い。そして、上述した差分反復送信部52は、この許容時間内に完了条件Cが満たされない場合に上記の構築処理を中止する(後述する図4のS46cでnoの場合)。この失敗通知Nfは、例えば起動側装置3bや管理者等に通知されても良い。
図2に示す実施形態では、完了条件Cは上記の第1条件を含み、第2条件を含んでいない。この完了条件Cの下で、上記の許容時間内に第1条件が満たされない場合に上記の失敗通知Nfを実行するようになっている。具体的には、通知部7は、管理端末などのディスプレイ83に接続されており、上記の失敗通知Nfをディスプレイ83に出力する。上記の失敗通知Nfは音で行われても良い。管理者は、この失敗通知Nfにより構築処理が中止されたことを認識し、例えば発電プラントが一定の出力で運転されている場合など、冗長化構成の構築するタイミングを変更することができ、冗長化構成の構築をより確実に成功させるように図ることが可能となる。
上記の構成によれば、冗長化構成の構築処理は、許容時間内に完了条件を満たさない場合には中止され、その旨が管理者等に通知される。これによって、起動側の冗長化が構築されないまま長時間が経過するような事態を防止することができる。
ただし、本実施形態に本発明は限定されない。他の幾つかの実施形態では、差分反復送信部52は、上記の許容時間内に完了条件Cが満たされない場合に構築処理を中止しなくても良い(後述する図4のS46cでyesの場合)。例えば、冗長化処理がクロック同期などの状態情報Mの完全な一致を必須としない場合などには、変更差分Mdの特定と送信を続けることで、冗長化処理として、起動側装置3bの状態情報Mを稼働側装置3aのものと一致させるように動作を継続しても良い。冗長化構成の構築処理を中止するか否かは、これを定めた設定により自動的に判断されても良いし、失敗通知Nfに応じて入力される管理者からの中止または継続の指示に従って判断しても良い。
また、幾つかの実施形態では、図3に示すように、上記の冗長化システム1は、冗長化(図3では二重化)された複数のサーバ2(データサーバなどのコンピュータ)の仮想OS21上でそれぞれ動作する、上記の演算処理部6に対応するプログラム(制御プログラム)が冗長化処理を実行するように構成されても良い。つまり、長期間にわたって安定供給されるような例えばフォールトトレラントサーバ(FT)サーバなどのサーバ2上に仮想OS21を置き、例えばDCSの備える制御装置をソフトウェアのタスク(プロセス)として実現しても良い。
すなわち、幾つかの実施形態では、冗長化システム1は、DCSの制御装置の制御演算など、所望の演算処理をコンピュータに実現させるための第1プログラム(制御プログラムなど)を仮想OS21上で動作させるよう構成された第1サーバ2aと、この第1サーバ2aと冗長化される、上記の第1プログラムを仮想OS21上で動作させるよう構成された第2サーバ2bと、を備える。そして、第1サーバ2aおよび第2サーバ2bの各々の第1プログラムは互いの状態が一致するようにしながら動作するように構成される。また、第1サーバ2aおよび第2サーバ2bは、それぞれ、上述した演算装置の機能をコンピュータに実現させるための第2プログラム(冗長化構築プログラム)が動作するよう構成されている。
図3に示す実施形態では、例えばDCSを構成する制御装置と同一の機能を実現する制御プログラム(模擬装置P)が二重化された2台のサーバ2の各々の仮想OS21上で動作している。より詳細には、複数の制御装置で構成されるDCSのうちの、4台の制御装置に対応する4つの模擬装置が、二重化された第1サーバ2aおよび第2サーバ2bの各サーバ2の仮想OS21上でそれぞれ動作するようになっている。この模擬装置Pは、上述した制御プログラムと、冗長化処理を行うための冗長化処理プログラムと、冗長化構築プログラムとを含んで構成されている。そして、両方のサーバ2の対応する模擬装置Pが、それぞれ、プラント8などからの入力データDに対して制御演算を実行するなどしつつ、模擬装置Pに割り当てられた各サーバ2の有するメモリ32の領域の内容(状態情報M)を一致させるようにして稼働し続ける。また、模擬装置Pの有する冗長化構築プログラムが制御プログラムのタスクとは関連なく動作しており、冗長化構成を構築は冗長化構築プログラムによってなされるようになっている。
なお、図3では、第1サーバ2aが稼働系(現用系)であり、第2サーバ2bが待機系となっている。そして、第1サーバ2a上の模擬装置のうちの一つ(3-A)が、例えば部分的なメモリ故障などにより異常が生じた結果、第2サーバ2b上の対応する模擬装置(3-B)への切替が生じた状況が示されている。よって、その後は、第2サーバ2bの待機系の制御装置(3-B)が稼働することで、DCSが停止することなく処理を継続する。また、図3における第1サーバ2aと第2サーバ2bとを接続する通信線2Lは、両方のサーバ2を通信可能に直接接続する物であっても良いし、フィールド機器81あるいはOPS(既出)が接続される通信ネットワークであっても良い。
ただし、本実施形態に本発明は限定されない。例えば、図3に示す実施形態では1台のサーバ2上に4つの模擬装置が動作しているが、その数は1以上であれば良い。また、例えば、模擬装置は、制御プログラムによって個別に実現され、冗長化処理プログラムおよび冗長化構築プログラムは、共通機能として動作しても良い。つまり、この共通機能は、図3の4つの模擬装置とは別に1つ設けられていても良い。このようにすれば、状態情報Mを4つの模擬装置の割り当て領域の全てとして一括して処理することが可能となり、簡易化を図ることが可能となる。また、冗長化処理においても同様である。
上記の構成によれば、第1サーバ2aと第2サーバ2bとがハードウェア的に冗長化されている。また、その各々のサーバ2上で動作する、例えばDCSなどの制御装置の機能など所望の演算処理を行う第1プログラムが、互いの状態(メモリ32の割り当てられた領域の内容)が一致するようにしながら仮想OS21上で動作する。換言すれば、第1プログラム間で冗長化処理が行われるようになっている。また、この第1サーバ2aおよび第2サーバ2bには、上述した演算装置3が有する各機能(検知部4、構築処理部5など)を実現するための第2プログラムが動作するようになっている。
つまり、長期間にわたって安定供給されるようなFTサーバなどのサーバ上に仮想OS21を置き、例えばDCSの備える制御装置をソフトウェアのタスク(プロセス)として実現する。これと共に、このような冗長化システムにおいて、上述した冗長化構成の構築のための第2プログラムを動作させる。これによって、長期間にわたって安定供給されるような高性能なサーバ2を用いてハードウェアを冗長化しつつ、仮想OS21を用いてハードウェアの違いを吸収するようにしているので、従来のDCSにおける専用部品の生産中止といった懸念を解消しつつ、サーバ2のハードウェアの仕様が変更されるような場合でもその影響を第1プログラムや第2プログラムが受けないようにすることができる。また、サーバ2上で、従来ハードウェアとして分散していた複数の機能の一部をまとめて動作するようにすれば、DCSにおける分散数を減らすことが可能となり、コストの低減をさらに図ることができる。
以下、上述した構成を備える演算装置3の処理に対応する冗長化構成の構築方法について、図4~図5を用いて説明する。
図4~図5は、本発明の一実施形態に係る冗長化構成の構築方法を示す図である。図4は、稼働側装置3aの処理に対応するフローである。図5は、起動側装置3bの処理に対応するフローである。
図4に示すように、冗長化構成の構築方法は、稼働中に冗長化システム1に新たに加わる他の演算装置3(上記の起動側装置3b)を検知する検知ステップ(図4のS41)と、起動側装置3bとの冗長化構成を構築するための上述した構築処理を実行する構築処理実行ステップ(図4のS42~S48)と、を備える。つまり、この構築処理実行ステップは、構築処理の開始時における構築開始状態情報Maを特定し、起動側装置3bに送信する第1送信ステップ(図4のS42)と、規定タイミングが到来する度に規定の完了条件Cが満たされるまで、上述したように変更差分Mdの特定および起動側装置3bへの送信を繰り返し実行する第2送信ステップ(図4のS43~S47)と、を有する。
上記の検知ステップ、構築処理実行ステップは、それぞれ、既に説明した検知部4、構築処理部5が実行する処理内容と同様であるため、詳細は省略する。
また、幾つかの実施形態では、冗長化構成の構築方法は、予め定められるなどした許容時間内に完了条件Cが満たされない場合に通知する通知ステップを、さらに備えても良い。この場合、第2送信ステップは、上記の許容時間内に完了条件Cが満たされない場合に構築処理を中止しても良い。上記の通知ステップは、既に説明した通知部7が実行する処理内容と同様であるため、詳細は省略する。
図4~図5に示す実施形態では、通信線35(図2)あるいは通信線2L(図3)で接続された稼働側装置3aおよび起動側装置3bがそれぞれ通信可能になった後(例えばリンクアップ後)、稼働側装置3aは、起動側装置3bから要求R(起動接続要求)が受信されるのを待機し、図4のステップS41においてこの要求Rを受信すると、ステップS42において構築開始状態情報Ma(本実施形態では全メモリの内容)を起動側装置3bに送信する。その後、ステップS43において、ステップS42で送信したデータに対する受信確認(データ展開正常通知Na)の受信を待機する。
そして、ステップS44において受信確認を受信すると、ステップS45において変更差分Mdを特定する。また、ステップS46において完了条件Cが満たされているかを確認し、満たされていない場合にはステップS47に進み(S46aを経由)、特定された変更差分Mdを起動側装置3bに送信する。送信が完了するとステップS43に戻り、送信した変更差分Mdに対する起動側装置3bからの受信確認を待機する。このようなステップS45、S46、S47を経て再度S43に戻るループは、ステップS46において完了条件Cが満たされるまで繰返し行われる。
なお、上記のステップS43の受信確認の待機には受信タイムアウトを設定しても良い。図4に示す実施形態では、受信タイムアウトが発生すると、ステップS44aにおいてリトライ回数が閾値を超過しているかを確認し、超過していない場合には、ステップS44bにおいて、待機中の受信確認に対応する同一のデータを再度送信した後、再度、ステップS43に戻りその受信確認を待機するようになっている。また、ステップS44aにおいてリトライ回数が閾値を超過している場合には、ステップS44cにおいてその旨(送信リトライオーバメッセージMr)をディスプレイなどに表示させるようになっている。ステップS44dのように、起動側装置3bに失敗を通知しても良い。
また、上記のステップS46において完了条件Cが満たされていない場合において、図4のステップS46aで示すように、上記の許容時間が超過していないかを確認し、超過していない場合に、上述のステップS47を実行しても良い。逆に、ステップS46aにおいて許容時間が超過している場合には、ステップS46bにおいてその旨(復旧タイムアウトメッセージMt)をディスプレイ83に出力して表示させても良い。その後は、ステップS44dのように起動側装置3bに失敗通知Nfを送信し、上記のステップS44dを経て構築処理を中止しても良い。あるいは、ステップS46cで示すように、この許容時間の超過を許容する場合には、蒸気のステップS48を経て冗長化構成の構築処理を完了させて、冗長化処理に移行するなどしても良い。
他方、図5には、上記の図4に対応する起動側装置3bの処理が示されている。具体的には、図5のステップS51において上記の要求R(起動接続要求)を送信した後、ステップS52において稼働側装置3aからデータ(ここでは構築開始状態情報Ma)の受信を待機する。そして、ステップS52bにおいて稼働側装置3aから送信されたデータを受信すると、ステップS53に移る。
ステップS53では、ステップS52bにおける受信データが完了通知Nc(図4のS48参照)ではなく、構築開始状態情報Maである場合には、ステップS54(図5ではS53aを経由)において受信データ(構築開始状態情報Ma)を自装置のメモリ32に展開(コピー)する。そして、これが完了すると、ステップS54bにおいて、受信確認(データ展開正常通知Na)を稼働側装置3aに送信した後、ステップS52に戻り、次に稼働側装置3aから送信されデータの受信を待機する。すなわち、これ以降(2ループ目以降)は、稼働側装置3aから変更差分Mdが送信されてくることが通常は期待され、変更差分Mdの受信を待機する。そして、変更差分Mdが受信された場合には、上記と同様にメモリ32への展開後(S54およびS54b)にステップS52に戻ることを、ステップS53での完了通知Ncを受信まで繰り返す。
その後、ステップS53で、ステップS52bで受信したデータが完了通知Ncである場合には、処理を終了する。すなわち、稼働側装置3aとの冗長構成の構築が正常に完了したので、その後は、冗長化システム1を構成する演算装置3としての冗長化処理を実行する。
なお、稼働側装置3aが許容時間の超過を許容しない場合(図4のS46c、S44d)には、図5のステップS52bで起動側装置3bが受信するデータが失敗通知Nfである場合がある。よって、図5に示すように、ステップS53aにおいて受信データが失敗通知Nfであるかを確認し、失敗通知Nfではない場合に上記のステップS54に移動しても良い。図5に示す実施形態では、受信データが失敗通知Nfであった場合には、ステップS53bにおいてその旨(冗長化構成の構築の失敗メッセージMf)をディスプレイ83などに表示させ、稼働側装置3aとの冗長化構成の構築処理を中断し、異常終了するようになっている。また、起動側装置3bにおいても上記の許容時間を監視しても良い。例えば、ステップS52aで示すようにデータ受信待ち(S52)の受信タイムアウトを監視し、受信タイムアウトが発生した場合において上記の許容時間を超過している場合には、その旨(復旧タイムアウトメッセージMt)をディスプレイ83に表示した後(S52e、S52f)、処理を終了するようにしても良い。
本発明は上述した実施形態に限定されることはなく、上述した実施形態に変形を加えた形態や、これらの形態を適宜組み合わせた形態も含む。
図4~図5に示すフローはあくまで一例であり、本実施形態に本発明は限定されず、他のフローにより上記の冗長化構成の構築方法を行っても良い。
<付記>
(1)本発明の少なくとも一実施形態に係る演算装置(3)は、
冗長化システム(1)を構成する演算装置(3)であって、
自装置の稼働中に前記冗長化システム(1)に新たに加わる他の演算装置(3)を検知するよう構成された検知部(4)と、
前記他の演算装置(3)との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部(5)と、を備え、
前記構築処理部(5)は、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報(M)である構築開始状態情報(Ma)を特定し、前記他の演算装置(3)に送信する第1送信部と、
規定タイミングが到来する度に規定の完了条件(C)が満たされるまで、前記構築開始状態情報(Ma)の特定後に行われる自装置の演算処理によって生じる前記状態情報(M)の、前記構築開始状態情報(Ma)の特定時または直前の到来時からの変更差分(Md)の特定および前記他の演算装置(3)への送信を繰り返し実行する第2送信部と、を有する。
上記(1)の構成によれば、稼働中の演算装置(3)は、冗長化構成を構築する新たな演算装置(3)を検知すると、最初に自装置の状態情報(M)(メモリ32の内容。以下同様)をこの新たな演算装置(3)に送信(コピー)する。そして、これにより両装置の状態情報(M)を一致させようとするが、この一致がなされるまでの間に自装置による演算処理の実行によって生じた状態情報(M)の変化分(変更差分Md)については、規定の完了条件(C)が満たされるまで繰り返し送信することで、冗長化構成の構築を行う。
これによって、稼働中の演算装置(3)は、冗長化構成の構築処理の実行中においても自装置での演算処理(制御演算などの情報処理)を停止せずに継続して実行しつつ、新たに加わる他の演算装置(3)との冗長化構成を構築することができる。例えば、発電プラント(8)の制御装置は、制御演算が数十から数百ミリ秒などのわずかな時間停止するだけでも停電や事故などの重大な状況を引き起こしかねないが、演算処理(制御演算)のわずかな時間の停止も生じさせることなく、冗長化構成を構築することができる。
(2)幾つかの実施形態では、上記(1)の構成において、
前記構築処理の実行の有無とは関連なく、前記冗長化システム(1)に入力される入力データ(D)に対して前記演算処理を実行する演算処理部(6)を、さらに備える。
上記(2)の構成によれば、稼働中の演算装置(3)は、冗長化構成の構築処理の実行中においても稼働状態にある自装置での演算処理を停止することなく、稼働を続けることができる。
(3)幾つかの実施形態では、上記(1)~(2)の構成において、
前記完了条件(C)は、前記変更差分(Md)のデータサイズに基づいて定められた第1条件(Ca)を含む。
上記(3)の構成によれば、冗長化構成の構築処理は、変更差分(Md)のデータサイズが例えば予め定めた閾値以下である場合や、構築開始状態情報(Ma)のデータサイズに対する変更差分(Md)のデータサイズの割合が予め定めた閾値以下である場合など、変更差分(Md)のデータサイズに基づいて定められた条件を含む。これによって、自演算装置(3)と他の演算装置(3)との状態情報(M)が、例えばクロックを完全同期させた冗長化運転や、ある程度の差異を許容して行う冗長化運転など、冗長化構成の構築処理の完了後に各演算装置(3)が行う冗長化処理の種類に応じて必要とされる程度まで、状態情報(M)を適切に一致させることができる。
(4)幾つかの実施形態では、上記(3)の構成において、
前記第1条件(Ca)は、前記構築開始状態情報(Ma)のデータサイズに対する前記変更差分(Md)のデータサイズの割合が閾値以下である。
上記(4)の構成によれば、冗長化構成の構築処理は、構築開始状態情報(Ma)のデータサイズに対する変更差分(Md)のデータサイズが第1閾値以下となった場合に完了される。これによって、冗長化構成の構築処理の完了後に各演算装置(3)が行う冗長化処理の種類に応じて必要とされる程度まで、状態情報(M)を適切に一致させることができる。
(5)幾つかの実施形態では、上記(1)~(4)の構成において、
前記完了条件(C)は、処理経過時間が規定時間以上であることを定めた第2条件(Cb)を含む。
上記(5)の構成によれば、冗長化構成の構築処理は、例えば冗長化構成の構築処理の経過時間や、第2送信部の処理の経過時間などとなる処理経過時間が規定時間以上となった場合に完了される。つまり、例えば規定時間の経過後に、自演算装置(3)と他の演算装置(3)との状態情報(M)が一致したとみなす。これによって、両装置の状態情報(M)が完全に一致した状態にならない場合に陥ったとしても、構築処理を正常に完了させ、冗長化処理に移行するこができる。
(6)幾つかの実施形態では、上記(1)~(5)の構成において、
許容時間内に前記完了条件(C)が満たされない場合に通知するよう構成された通知部(7)を、さらに備え、
前記第2送信部は、前記許容時間内に前記完了条件(C)が満たされない場合に前記構築処理を中止する。
上記(6)の構成によれば、冗長化構成の構築処理は、許容時間内に完了条件(C)を満たさない場合には中止され、その旨が管理者等に通知される。これによって、起動側の冗長化が構築されないまま長時間が経過するような事態を防止することができる。
(7)本発明の少なくとも一実施形態に係る冗長化システム(1)は、
所望の演算処理をコンピュータに実現させるための第1プログラム(例えば図3の模擬装置Pに含まれる制御プログラムなど。以下同様)を仮想OS(21)上で動作させるよう構成された第1サーバ(2a)と、
前記第1サーバ(2a)と冗長化される、前記第1プログラム(P)を仮想OS(21)上で動作させるよう構成された第2サーバ(2b)と、を備え、
前記第1サーバ(2a)および前記第2サーバ(2b)の各々の前記第1プログラム(P)は互いの状態が一致するようにしながら動作するように構成されると共に、
前記第1サーバ(2a)および前記第2サーバ(2b)は、それぞれ、上記(1)~(6)のいずれかに記載の演算装置(3)の機能をコンピュータに実現させるための第2プログラム(図3の模擬装置Pに含まれる冗長化構築プログラム)が動作するよう構成されている。
上記(7)の構成によれば、第1サーバ(2a)と第2サーバ(2b)とがハードウェア的に冗長化されている。また、その各々のサーバ(2)上で動作する、例えばDCSなどの制御装置の機能など所望の演算処理を行う第1プログラム(P)が、互いの状態(メモリ(32)の割り当てられた領域の内容)が一致するようにしながら仮想OS(21)上で動作する。換言すれば、第1プログラム(P)間で冗長化処理が行われるようになっている。また、この第1サーバ(2a)および第2サーバ(2b)には、上述した演算装置(3)が有する各機能(検知部4、構築処理部5など)を実現するための第2プログラムが動作するようになっている。
つまり、長期間にわたって安定供給されるようなFTサーバ(2)などのサーバ(2)上に仮想OS(21)を置き、例えばDCSの備える制御装置をソフトウェアのタスク(プロセス)として実現する。これと共に、このような冗長化システム(1)において、上述した冗長化構成の構築のための第2プログラムを動作させる。
ここで、現状のDCSは、コントローラ(CPUモジュール)を複数の制御盤に分散させる構成となっているため、コストが高止まりしている。また、コントローラに搭載される専用の電子部品がEOL(End Of Life)など生産中止となることで、分散制御システムの長期安定供給への懸念もある。しかしながら、上記の構成によれば、長期間にわたって安定供給されるような高性能なサーバ(2)を用いてハードウェアを冗長化しつつ、仮想OS(21)を用いてハードウェアの違いを吸収するようにしているので、従来のDCSにおける専用部品の生産中止といった懸念を解消しつつ、サーバ(2)のハードウェアの仕様が変更されるような場合でもその影響を第1プログラム(P)や第2プログラムが受けないようにすることができる。また、サーバ(2)上で、従来ハードウェアとして分散していた複数の機能の一部をまとめて動作するようにすれば、DCSにおける分散数を減らすことが可能となり、コストの低減をさらに図ることができる。
(8)本発明の少なくとも一実施形態に係るプログラムは、
コンピュータに、
稼働中に前記冗長化システム(1)に新たに加わる他の演算装置(3)を検知するよう構成された検知部(4)と、
前記他の演算装置(3)との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部(5)であって、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報(M)である構築開始状態情報(Ma)を特定し、前記他の演算装置(3)に送信する第1送信部と、
規定タイミングが到来する度に規定の完了条件(C)が満たされるまで、前記構築開始状態情報(Ma)の特定後に行われる自装置の演算処理によって生じる前記状態情報(M)の、前記構築開始状態情報(Ma)の特定時または直前の到来時からの変更差分(Md)の特定および前記他の演算装置(3)への送信を繰り返し実行する第2送信部と、を有する構築処理部(5)を実現させるためのプログラムである。
上記(8)の構成によれば上記(1)と同様の効果を奏する。
(9)本発明の少なくとも一実施形態に係る冗長化構成の構築方法は、
稼働中に冗長化システム(1)に新たに加わる他の演算装置(3)を検知するステップと、
前記他の演算装置(3)との冗長化構成を構築するための構築処理を実行するステップと、を備え、
前記構築処理を実行するステップは、
前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報(M)である構築開始状態情報(Ma)を特定し、前記他の演算装置(3)に送信するステップと、
規定タイミングが到来する度に規定の完了条件(C)が満たされるまで、前記構築開始状態情報(Ma)の特定後に行われる自装置の演算処理によって生じる前記状態情報(M)の、前記構築開始状態情報(Ma)の特定時または直前の到来時からの変更差分(Md)の特定および前記他の演算装置(3)への送信を繰り返し実行するステップと、を有する。
上記(9)の構成によれば上記(1)と同様の効果を奏する。
1 冗長化システム
2 サーバ
2a 第1サーバ
2b 第2サーバ
2L 通信線
21 仮想OS
3 演算装置
3a 稼働側装置
3b 起動側装置
31 プロセッサ
32 メモリ
33 入出力インターフェース部
34 冗長化処理部
35 通信線
4 検知部
42 要求部
5 構築処理部
51 初期内容送信部
52 差分反復送信部
54 メモリ展開部
6 演算処理部
7 通知部
8 プラント
81 フィールド機器
83 ディスプレイ
D 入力データ
Dr 演算結果
R 要求
C 完了条件
Ca 第1条件
Cb 第2条件
M 状態情報
Ma 構築開始状態情報
Md 変更差分
Na データ展開正常通知(受信確認)
Nc 完了通知
Nf 失敗通知
Mr 送信リトライオーバメッセージ
Mt 復旧タイムアウトメッセージ
Mf 冗長化構成の構築の失敗メッセージ
P 模擬装置

Claims (8)

  1. 分散型制御システムに適用される冗長化システムを構成する演算装置であって、
    自装置の稼働中に前記冗長化システムに新たに加わる他の演算装置を検知するよう構成された検知部と、
    前記他の演算装置との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部と、
    前記構築処理の実行の有無とは関連なく、前記冗長化システムに入力される入力データに対して演算処理を実行する演算処理部を備え、
    前記構築処理部は、
    前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信する第1送信部と、
    規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の前記演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行する第2送信部と、
    を有する演算装置。
  2. 前記完了条件は、前記変更差分のデータサイズに基づいて定められた第1条件を含む請求項1に記載の演算装置。
  3. 前記第1条件は、前記構築開始状態情報のデータサイズに対する前記変更差分のデータサイズの割合が閾値以下である請求項に記載の演算装置。
  4. 前記完了条件は、処理経過時間が規定時間以上であることを定めた第2条件を含む請求項1~のいずれか1項に記載の演算装置。
  5. 許容時間内に前記完了条件が満たされない場合に通知するよう構成された通知部を、さらに備え、
    前記第2送信部は、前記許容時間内に前記完了条件が満たされない場合に前記構築処理を中止する請求項1~のいずれか1項に記載の演算装置。
  6. 所望の演算処理をコンピュータに実現させるための第1プログラムを仮想OS上で動作させるよう構成された第1サーバと、
    前記第1サーバと冗長化される、前記第1プログラムを仮想OS上で動作させるよう構成された第2サーバと、を備え、
    前記第1サーバおよび前記第2サーバの各々の前記第1プログラムは互いの状態が一致するようにしながら動作するように構成されると共に、
    前記第1サーバおよび前記第2サーバは、それぞれ、請求項1に記載の演算装置の機能をコンピュータに実現させるための第2プログラムが動作するよう構成されている冗長化システム。
  7. コンピュータに、
    分散型制御システムに適用される冗長化システムの稼働中に前記冗長化システムに新たに加わる他の演算装置を検知するよう構成された検知部と、
    前記他の演算装置との冗長化構成を構築するための構築処理を実行するよう構成された構築処理部と、
    前記構築処理の実行の有無とは関連なく、前記冗長化システムに入力される入力データに対して演算処理を実行する演算処理部とを実現させ、
    前記構築処理部では、
    前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信する第1送信部と、
    規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行する第2送信部と、を実現させるためのプログラム。
  8. 分散型制御システムに適用される冗長化システムの稼働中に前記冗長化システムに新たに加わる他の演算装置を検知するステップと、
    前記他の演算装置との冗長化構成を構築するための構築処理を実行するステップと、
    前記構築処理の実行の有無とは関連なく、前記冗長化システムに入力される入力データに対して演算処理を実行するステップと、を備え、
    前記構築処理を実行するステップは、
    前記構築処理の開始時における、前記冗長化構成の構築に必要な自装置の状態情報である構築開始状態情報を特定し、前記他の演算装置に送信するステップと、
    規定タイミングが到来する度に規定の完了条件が満たされるまで、前記構築開始状態情報の特定後に行われる自装置の演算処理によって生じる前記状態情報の、前記構築開始状態情報の特定時または直前の到来時からの変更差分の特定および前記他の演算装置への送信を繰り返し実行するステップと、を有する冗長化構成の構築方法。
JP2019208616A 2019-11-19 2019-11-19 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法 Active JP7489183B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019208616A JP7489183B2 (ja) 2019-11-19 2019-11-19 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法
DE112020004539.0T DE112020004539T5 (de) 2019-11-19 2020-11-13 Rechenvorrichtung, redundantes system, programm und verfahren zum konstruieren einer redundanten konfiguration
US17/642,017 US11829266B2 (en) 2019-11-19 2020-11-13 Computing device, redundant system, program, and method for constructing redundant configuration
PCT/JP2020/042417 WO2021100624A1 (ja) 2019-11-19 2020-11-13 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法
CN202080071862.7A CN114586015A (zh) 2019-11-19 2020-11-13 运算装置、冗余化***及程序以及冗余化结构的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019208616A JP7489183B2 (ja) 2019-11-19 2019-11-19 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法

Publications (2)

Publication Number Publication Date
JP2021081967A JP2021081967A (ja) 2021-05-27
JP7489183B2 true JP7489183B2 (ja) 2024-05-23

Family

ID=75965245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019208616A Active JP7489183B2 (ja) 2019-11-19 2019-11-19 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法

Country Status (5)

Country Link
US (1) US11829266B2 (ja)
JP (1) JP7489183B2 (ja)
CN (1) CN114586015A (ja)
DE (1) DE112020004539T5 (ja)
WO (1) WO2021100624A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116414556B (zh) * 2022-12-05 2024-01-30 上海交通大学 基于冗余算力的异构嵌入式设备电力分配***及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102686A (ja) 2006-10-18 2008-05-01 Yokogawa Electric Corp フィールド制御装置
JP2008210183A (ja) 2007-02-27 2008-09-11 Yokogawa Electric Corp 冗長化制御システム
JP2011159101A (ja) 2010-02-01 2011-08-18 Nec Corp 情報処理装置、メモリ管理方法、およびメモリ管理プログラム
JP2012208964A (ja) 2012-08-03 2012-10-25 Hitachi Ltd 計算機システム、データ一致化方法およびデータ一致化処理プログラム
US20120331333A1 (en) 2010-03-15 2012-12-27 Hitachi, Ltd. Stream Data Processing Failure Recovery Method and Device
JP2016197281A (ja) 2015-04-02 2016-11-24 富士通株式会社 サービス冗長化方法、情報処理装置、及びプログラム
JP2018165915A (ja) 2017-03-28 2018-10-25 日本電気株式会社 コンピュータシステム、及びメモリコピー方法
US20210073089A1 (en) 2019-09-05 2021-03-11 EMC IP Holding Company LLC Techniques for providing intersite high availability of data nodes in a virtual cluster

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128258A (ja) * 1995-10-27 1997-05-16 Hitachi Ltd コンピュータシステムの再同期リセット処理方法
JP5561334B2 (ja) 2012-09-27 2014-07-30 日本電気株式会社 データ転送装置
JP6123388B2 (ja) 2013-03-15 2017-05-10 日本電気株式会社 フォールトトレラントサーバ
JP5880608B2 (ja) 2014-03-24 2016-03-09 日本電気株式会社 フォールトトレラントサーバ
JP6299640B2 (ja) 2015-03-23 2018-03-28 横河電機株式会社 通信装置
JP2020021341A (ja) 2018-08-02 2020-02-06 三菱日立パワーシステムズ株式会社 冗長化システム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102686A (ja) 2006-10-18 2008-05-01 Yokogawa Electric Corp フィールド制御装置
JP2008210183A (ja) 2007-02-27 2008-09-11 Yokogawa Electric Corp 冗長化制御システム
JP2011159101A (ja) 2010-02-01 2011-08-18 Nec Corp 情報処理装置、メモリ管理方法、およびメモリ管理プログラム
US20120331333A1 (en) 2010-03-15 2012-12-27 Hitachi, Ltd. Stream Data Processing Failure Recovery Method and Device
JP2012208964A (ja) 2012-08-03 2012-10-25 Hitachi Ltd 計算機システム、データ一致化方法およびデータ一致化処理プログラム
JP2016197281A (ja) 2015-04-02 2016-11-24 富士通株式会社 サービス冗長化方法、情報処理装置、及びプログラム
JP2018165915A (ja) 2017-03-28 2018-10-25 日本電気株式会社 コンピュータシステム、及びメモリコピー方法
US20210073089A1 (en) 2019-09-05 2021-03-11 EMC IP Holding Company LLC Techniques for providing intersite high availability of data nodes in a virtual cluster

Also Published As

Publication number Publication date
WO2021100624A1 (ja) 2021-05-27
DE112020004539T5 (de) 2022-07-14
CN114586015A (zh) 2022-06-03
JP2021081967A (ja) 2021-05-27
US11829266B2 (en) 2023-11-28
US20220350706A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
JP2532317B2 (ja) プロセス制御システムにおける汎用入出力冗長方式のバックアップ方法
JP5243384B2 (ja) アプリケーションステーションで利用される冗長マネージャ
US7877627B1 (en) Multiple redundant computer system combining fault diagnostics and majority voting with dissimilar redundancy technology
EP3285168B1 (en) Disaster tolerance method and apparatus in active-active cluster system
JP2791965B2 (ja) プロセス制御システムにおいて一次データベースと二次データベースの両端相互検証を実行する方法
JPH04314138A (ja) プロセス制御装置のフェイルオーバ方法
JPH0511820A (ja) 主制御器と少くとも一対のスレーブ入力/出力プロセツサを有するプロセス制御装置の一対の入力/出力プロセツサの同期を維持する方法
CN101609421B (zh) 运算处理装置的多重控制***及多重控制方法
JP3882783B2 (ja) プログラマブルコントローラ及びcpuユニット並びに通信ユニット及び通信ユニットの制御方法
US9690678B2 (en) Fault tolerant systems and method of using the same
EP0478287B1 (en) A method for guaranteeing data stored in a primary and secondary data base in a process control system
JP7489183B2 (ja) 演算装置、冗長化システムおよびプログラム、ならびに冗長化構成の構築方法
US10386832B2 (en) Redundant control system for an actuator and method for redundant control thereof
WO2013111240A1 (ja) 二重化制御システムおよびその制御方法
US9003067B2 (en) Network and method for operating the network
JPH07306794A (ja) 分散システム及び分散システムの高信頼化方法
JP6066748B2 (ja) システム管理装置およびシステム
TWI434159B (zh) 雙重系統控制裝置
JP2009075719A (ja) 冗長構成装置及びその自己診断方法
JP4788597B2 (ja) プログラマブルコントローラ二重化システム
JP2013254333A (ja) 多重系制御システム及びその制御方法
JP2004078425A (ja) 二重化制御システムの二重化切換方法
JP2015207239A (ja) 制御システム、制御装置およびプログラム
KR20010063096A (ko) 이중화된 데이터 채널을 갖는 동시 쓰기 방식을 적용한결함 허용 제어 시스템
JPH02157945A (ja) 同期2重化電力制御用ディジタルコントローラ

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20220118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240110

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: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240513

R150 Certificate of patent or registration of utility model

Ref document number: 7489183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150