JP6468079B2 - 制御システム及び同システムの処理方法 - Google Patents

制御システム及び同システムの処理方法 Download PDF

Info

Publication number
JP6468079B2
JP6468079B2 JP2015111316A JP2015111316A JP6468079B2 JP 6468079 B2 JP6468079 B2 JP 6468079B2 JP 2015111316 A JP2015111316 A JP 2015111316A JP 2015111316 A JP2015111316 A JP 2015111316A JP 6468079 B2 JP6468079 B2 JP 6468079B2
Authority
JP
Japan
Prior art keywords
control device
sequence
storage unit
standby
standby system
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
JP2015111316A
Other languages
English (en)
Other versions
JP2016224760A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015111316A priority Critical patent/JP6468079B2/ja
Priority to US15/164,293 priority patent/US10025682B2/en
Publication of JP2016224760A publication Critical patent/JP2016224760A/ja
Application granted granted Critical
Publication of JP6468079B2 publication Critical patent/JP6468079B2/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/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
    • 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
    • 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/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/2043Error 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 a common memory address space
    • 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/2046Error 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 persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、制御システム及び同システムの処理方法に関する。
図28に示すような情報処理システム、例えばサーバ100では、サーバ100の制御及び監視を行なう制御装置の一例として、Service Processor(SP;サービスプロセッサ)200と呼ばれるボード(モジュール)が搭載されることがある。
SP200は、Central Processing Unit(CPU)200aやメモリ200b等をそなえることができる。SP200は、高可用性を保つために冗長化され、運用系及び待機系に役割が分けられることがある。なお、冗長化されたSP200(図28の例ではSP200−1(SP#0)及びSP200−2(SP#1))は、Local Area network(LAN)等のネットワークにより相互に通信可能に接続され、データ等をLAN経由で他系のSP200へ送信することができる。
運用系SP200(例えばSP200−1)は、例えばComplex Programmable Logic Device(CPLD)200e等の論理回路に設けられたInter-Integrated Circuit(I2C)コントローラ200gにより、バススイッチ200hを介してSystem Board(SB;システムボード)300等の各種ハードウェアの制御や監視等を行なう。
なお、SB300は、情報処理装置の一例であり、サーバ100本体のOperating System(OS)を実行するCPU300aやメモリ300b等を実装することができる。図28の例では、サーバ100にはn個(nは自然数)のSB300−1〜300−nがそなえられ、運用系SP200−1はSB300−1〜300−nの各々について制御を行なう。
待機系SP200(例えば200−2)は、例えば自系のSPボード内のハードウェアの監視や運用系SP200−1の監視を行なう。運用系SP200−1がハードウェアの故障やファームウェアの障害等でダウンした場合、待機系SP200−2が運用系に切り替わることで、サーバ100内の制御や監視を継続して行なうことができる。
サーバ100本体の電源投入等の制御は運用系SP200−1が行なうが、電源投入シーケンス処理中等に運用系SP200−1がダウンし、運用系が待機系SP200−2に切り替わった場合、待機系SP200−2が処理を引き継ぎ、実行中の電源投入シーケンス処理の続きを実行することになる。このため、どのタイミングで運用系SP200−1がダウンしても対応できるように、運用系SP200−1と待機系SP200−2とはLAN経由で制御に係るデータの同期を行なっている。
なお、関連する技術として、二重化された制御装置の両系からアクセスできる共用の不揮発メモリを設け、運用系は動作時の情報を共用メモリに書き込むことで、待機系の電源をオフにする手法等が知られている(例えば特許文献1参照)。
特開平10−207855号公報 特開2013−125493号公報 特表2013−531822号公報 特開2008−242701号公報 国際公開第2012/023200号パンフレット
待機系SP200−2は、サーバ100等の製品本体(SB300等)の制御を行なっていないため、製品全体の消費電力を低減するために待機系SP200−2をサスペンドすることが考えられる。
なお、サスペンドとは、SP200がそなえるCPU200aの処理内容をメモリ200bに格納(退避)しCPU200aの動作を停止させる(電源をオフにする)ことである。SP200のサスペンド状態では、CPU200aのほか、LANの制御を行なうLANコントローラ200c等についても動作を停止させることができ、製品全体の消費電力を低減することができる。
しかし、待機系SP200−2は、例えば下記の(a)〜(e)に示す処理を行なうため、待機系SP200−2をサスペンド状態に移行させた場合、これらの処理が実行されず、運用系SP200−1が故障した場合にはシステムの制御や監視等が行なえなくなる可能性がある。
(a)データ同期
待機系SP200−2は、電源投入シーケンス処理中に運用系SP200−1が停止した場合に待機系SP200−2が処理の続きを引き継ぐために、運用系SP200−1との間でLAN経由で制御に係るデータの同期を行なう。
(b)運用系SP200−1(他系SP200)の生存監視
待機系SP200−2は、運用系SP200−1が動作していることをLAN経由で監視し、運用系SP200−1の動作が停止した場合は、待機系SP200−2が運用系に切り替わり、製品本体(SB300)の制御を行なう。
(c)待機系SP200−2(自系SP200)の生存監視
待機系SP200−2は、CPLD200eに設けられたWatchdog Timer(ウォッチドッグタイマ)200f等を用いて、待機系SP200−2の生存監視を行なう。例えば待機系SP200−2は、Real Time Clock(RTC)200dからの周期的な割り込みをトリガとしてウォッチドッグタイマ200fを定期的にリセットする。ウォッチドッグタイマ200fは、リセットが滞りタイマのカウント値が所定値(所定時間)に達すると、待機系SP200−2を再起動する(例えばCPU200aへ再起動を指示する信号を出力する)ため、リセットにより再起動を抑止する。
(d)待機系SP200−2(自系SP200)のハードウェア監視
待機系SP200−2は、待機系SP200−2の電源(電圧)や温度等を定期的に読み出すこと等により、待機系SP200−2内のハードウェアの監視を行なう。
(e)運用系SP200−1からの切り替え指示の待ち受け
運用系SP200−1がハードウェアの異常を検出した場合やユーザからの指示があった場合、待機系SP200−2は速やかに運用系/待機系の切り替えを行なうことが好ましい。
このように、サーバ100本体(SB300等)の制御を行なうSP200では、待機系SP200−2で行なわれる複数の処理があり、これらの処理を行ないつつ、待機系SP200−2を効率良くサスペンド化することが困難であるという課題がある。
1つの側面では、本発明は、複数の制御装置をそなえる制御システムにおける消費電力を削減することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
1つの態様では、本件の制御システムは、対象装置に対して複数の処理を所定の実行順序で実行する、冗長化された第1の制御装置及び第2の制御装置と、前記第1の制御装置と前記第2の制御装置との間に介設された転送記憶部と、をそなえる。前記第1の制御装置は、前記複数の処理の実行に用いる情報を記憶する第1の記憶部をそなえる。また、前記第1の制御装置は、前記複数の処理のうちの実行対象の処理の状態を示す状態情報を、前記第1の記憶部及び前記転送記憶部にそれぞれ反映し、前記第2の制御装置に対して前記第2の制御装置の動作を開始させる開始通知を送信する。さらに、前記第2の制御装置は、前記複数の処理の実行に用いる情報を記憶する第2の記憶部をそなえる。また、前記第2の制御装置は、前記第2の制御装置の動作が停止した状態で前記第1の制御装置から前記開始通知を受信すると、前記第2の制御装置の動作を開始するとともに、前記転送記憶部から前記状態情報を読み出して、読み出した前記状態情報を前記第2の記憶部に反映する。
1つの側面では、複数の制御装置をそなえる制御システムにおける消費電力を削減することができる。
一実施形態に係るサーバの構成例を示す図である。 SPのハードウェア構成例を示す図である。 図1に示すSPの機能構成例を示す図である。 シーケンステーブルのデータ構造の一例を示す図である。 シーケンス管理キューのデータ構造の一例を示す図である。 データ転送キューのデータ構造の一例を示す図である。 シーケンス処理部によるシーケンス管理キューの同期手法の一例を示す図である。 シーケンス処理部によるシーケンス管理キューの同期手法の一例を示す図である。 シーケンス処理部によるシーケンス管理キューの同期手法の一例を示す図である。 シーケンス処理部によるシーケンス管理キューの同期手法の一例を示す図である。 運用系SPに障害が発生した場合の運用系/待機系の切替処理の一例を示す図である。 運用系SPに障害が発生した場合の運用系/待機系の切替処理の一例を示す図である。 運用系SPに障害が発生した場合の運用系/待機系の切替処理の一例を示す図である。 運用系SPに障害が発生した場合の運用系/待機系の切替処理の一例を示す図である。 運用系SPに障害が発生した場合の運用系/待機系の切替処理の一例を示す図である。 運用系SPのシーケンス処理部によるシーケンス登録処理の動作例を示すフローチャートである。 待機系SPのシーケンス処理部によるデータ同期処理の動作例を示すフローチャートである。 運用系SP及び待機系SPにおけるシーケンス登録時の動作例を示すシーケンス図である。 運用系SP及び待機系SPにおけるシーケンス登録時の動作例を示すシーケンス図である。 運用系SP及び待機系SPにおけるシーケンス登録時の動作例を示すシーケンス図である。 運用系SPのシーケンス処理部によるシーケンス更新処理の動作例を示すフローチャートである。 運用系SPのシーケンス処理部によるシーケンス完了処理の動作例を示すフローチャートである。 待機系SPによる他系SPの生存監視処理の動作例を示すフローチャートである。 待機系SPによる運用系の切替処理の動作例を示すフローチャートである。 運用系SPに異常が発生した場合の運用系SP及び待機系SPの動作例を示すシーケンス図である。 待機系SPによる他系SPの生存監視処理の動作例を示すフローチャートである。 運用系SPに異常が発生した場合の運用系SP及び待機系SPの動作例を示すシーケンス図である。 複数のSPを搭載するサーバの構成例を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1−1〕情報処理システムについて
図1に例示するように、一実施形態に係るサーバ1は、複数(図1の例では2つ)のサービスプロセッサ(SP)2−1及び2−2、1つ以上(図1の例ではn個)のシステムボード(SB)3−1〜3−n、及びElectrically Erasable Programmable Read-Only Memory(EEPROM)4をそなえることができる。なお、以下の説明においてSP2−1及び2−2を区別しない場合には単にSP2と表記し、SB3−1〜3−nを区別しない場合には単にSB3と表記する。
サーバ1は、情報処理システムの一例であり、1つ以上のSB3によりユーザへ種々のサービスを提供することができる。
SP2は、サーバ1の制御や監視を行なうことができる。SP2は、高可用性を保つために冗長化されている。以下、運用系として機能するSP2がSP2−1であり、待機系として機能するSP2がSP2−2であるものとする。なお、以下の説明において、SP2−1を#0系のSP#0、SP2−2を#1系のSP#1と表記する場合がある。
運用系SP2−1は、例えばSB3等の各種ハードウェアの制御や監視等を行なう。図1の例では、運用系SP2−1は、n個のSB3−1〜3−nの各々を含む製品本体、例えばサーバ1を格納するラック全体について制御や監視等を行なう。
SB3を含む製品本体の制御や監視には、電源投入や電源切断等のシーケンス処理の実行が含まれてよい。シーケンスは、電源投入等の制御の実行単位であり、1つのシーケンス処理では制御対象のモジュールの初期化やレジスタへの値の設定等の複数の処理(ステップ)が所定の実行順序で実行される。
このように、運用系SP2−1は、制御を行なう対象装置としてのSB3に対して複数の処理を所定の実行順序で実行する第1の制御装置の一例である。
待機系SP2−2は、例えば自系のSPボード内のハードウェアの監視や運用系SP2−1の監視を行なうことができる。運用系SP2−1がハードウェアの故障やファームウェアの障害等でダウンした場合、待機系SP2−2が運用系に切り替わることで、サーバ1内の制御や監視を継続して行なうことができる。
このように、待機系SP2−2は、第1の制御装置の一例としての運用系SP2−1を監視し、所定の切替条件に応じて、SB3に対する複数の処理の実行を運用系SP2−1から引き継ぐ第2の制御装置の一例である。
SB3は、情報処理装置の一例であり、サーバ1本体のOSを実行するCPU3aやメモリ3b等を実装することができる。一実施形態において、SB3は、SP2による制御対象である対象装置の一例である。
EEPROM4は、不揮発性メモリの一例である。EEPROM4は、運用系SP2−1及び待機系SP2−2にそれぞれ接続され、これらのSP2間でデータ同期を行なうためのキューとして用いられる。
このように、EEPROM4は、SP2−1とSP2−2との間に介設された転送記憶部の一例である。なお、EEPROM4は、複数のSP2からアクセス可能とするため、SP2の数(図1の場合2つ)と同数のポート(この場合デュアルポート)をそなえることが好ましい。
以下、サーバ1におけるSP2の詳細について説明する。
〔1−2〕SPのハードウェア構成例
まず、図1及び図2を参照して、図1に示すSP2のハードウェア構成例について説明する。図2はSP2のハードウェア構成例を示す図である。図1に示すように、SP2は、例示的に、CPU2a、メモリ2b、LANコントローラ20a、RTC20b、CPLD20c、バススイッチ20f、及びGeneral Purpose Input/Output(GPIO;汎用入出力)20gをそなえることができる。これらに加えて、図2に示すように、SP2は、例示的に、記憶部2c、インタフェース部2d、及び入出力部2eをそなえることができる。
図1及び図2に示すCPU2aは、種々の制御や演算を行なう演算処理装置(プロセッサ)の一例である。CPU2aは、SP2内の各ブロックとバスで相互に通信可能に接続されてもよい。なお、演算処理装置としては、CPU2aに代えて、電子回路、例えばMicro Processing Unit(MPU)、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)等の集積回路(IC)が用いられてもよい。
メモリ2bは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ2bとしては、例えばRandom Access Memory(RAM)等の揮発性メモリが挙げられる。
図2に示す記憶部2cは、種々のデータやプログラム等を格納するハードウェアの一例である。記憶部2cとしては、例えばHard Disk Drive(HDD)等の磁気ディスク装置、Solid State Drive(SSD)等の半導体ドライブ装置、フラッシュメモリやRead Only Memory(ROM)等の不揮発性メモリ等の各種記憶装置が挙げられる。
例えば記憶部2cは、SP2の各種機能の全部若しくは一部を実現する制御プログラム20を格納することができる。CPU2aは、例えば記憶部2cに格納された制御プログラム20をメモリ2bに展開して実行することにより、SP2の機能を実現することができる。
インタフェース部2dは、他系のSP2、SB3、及びEEPROM4等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えばインタフェース部2dは、図1に示す後述するLANコントローラ20a、バススイッチ20f、及びGPIO20g等をそなえることができる。なお、制御プログラム20は、図示しないネットワークからインタフェース部2dを介してSP2にダウンロードされてもよい。
また、SP2は、EEPROM4へのアクセスを行なうこともできるため、インタフェース部2dは、さらにCPU2aからEEPROM4へアクセスするためのインタフェースをそなえてもよい。
さらに、インタフェース部2dは、記録媒体2fに記録されたデータやプログラムを読み出す読取部をそなえてもよい。読取部は、コンピュータ読取可能な記録媒体2fを接続又は挿入可能な接続端子又は装置を含んでよい。読取部としては、例えばUniversal Serial Bus(USB)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体2fには制御プログラム20が格納されてもよい。
記録媒体2fとしては、例えばフレキシブルディスク、CD、DVD、ブルーレイディスク等の光ディスクや、USBメモリやSDカード等のフラッシュメモリ等の非一時的な記録媒体が挙げられる。なお、CDとしては、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
入出力部2eは、マウス、キーボード、操作ボタン等の入力部、並びにディスプレイ等の出力部の少なくとも一部を含むことができる。例えば入力部は、オペレータ等による設定の登録や変更、システムのモード選択(切替)等の各種操作やデータの入力等の作業に用いられてもよく、出力部は、オペレータ等による設定の確認や各種通知等の出力に用いられてもよい。
図1に示すLANコントローラ20aは、他系のSP2との間のLAN接続及び通信の制御等を行なう通信インタフェースの一例である。LANコントローラ20aは、例えばLANケーブルを挿抜可能なアダプタ又は無線アンテナを有し、他系のSP2とLANケーブル又は無線LANによって接続されてもよい。
RTC20bは、クロックジェネレータ等によって時刻を管理することができる。一実施形態に係るRTC20bは、周期的に又は設定された時刻にCPU2aへ割り込みを発生させるように設定されている。
CPLD20cは、集積回路の一例であり、ウォッチドッグタイマ20d及びI2Cコントローラ20eとしての機能をそなえることができる。
ウォッチドッグタイマ20dは、計時を行なうタイマの一例であり、カウント値が所定値(所定時間)に達すると、例えばCPU2aへ再起動を指示する信号を出力する等によって、SP2を再起動することができる。ウォッチドッグタイマ20dのカウント値は、CPU2aによってリセットされてよい。
I2Cコントローラ20eは、I2Cバスを介して接続されたI2Cデバイスから監視に用いる情報を取得することができる。I2Cデバイスとしては、例えばSB3や自系SP2の電源、温度センサ、ファン等の各種デバイスが挙げられる。
バススイッチ20fは、SB3との間の接続及び通信の制御等を行なう通信インタフェースの一例である。バススイッチ20fは、例えば複数のSB3の各々と制御及び監視を行なうためのケーブル又はバス等によって接続されてもよい。バススイッチ20fは、例えば運用系SP2に対してはSB3への接続を許容し、待機系SP2に対してはSB3への経路(パス)を閉じてもよい。
GPIO20gは、他系SP2との間の接続及び通信の制御等を行なう通信インタフェースの一例である。一実施形態に係るGPIO20gは、CPU2aからの指示に応じて、待機系SP2のサスペンド/レジューム処理を制御することができる。
GPIO20gは、例えば4本の信号線(ケーブル又はバス)10a〜10dを介して他系SP2のGPIO20gと接続される。一例として、図1に示すように、信号線10a及び10cはSP#0からSP#1への通信に用いられる信号線であり、それぞれWakeup信号(0_1_Wakeup)及びACK信号(0_1_ACK)が出力(設定)される。また、信号線10b及び10dはSP#1からSP#0への通信に用いられる信号線であり、それぞれWakeup信号(1_0_Wakeup)及びACK信号(1_0_ACK)が出力(設定)される。
運用系SP2から待機系SP2へのWakeup信号は、待機系SP2がサスペンドしてもよいか否かを表す。一例として、待機系SP2がサスペンド可能な場合、運用系SP2のCPU2aは、GPIO20gを制御してWakeup信号(運用系から待機系;信号線10a又は10c)の出力レベルを例えばLowに設定する。一方、サスペンド状態の待機系SPをレジューム(再開)する場合は、運用系SP2のCPU2aは、GPIO20gを制御してWakeup信号の出力レベルを例えばHighに設定する。
なお、運用系SP2のGPIO20gからのWakeup信号の変化を待機系SP2のCPU2aがGPIO20g経由で認識した場合、待機系SP2のCPU2aは、GPIO20gを制御してACK信号(待機系から運用系;信号線10b又は10d)の出力レベルをWakeup信号に合わせて、Low又はHighに設定する。
上述したSP2のハードウェア構成は例示である。従って、SP2内でのハードウェアの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
〔1−3〕SP及びEEPROMを含む制御システムについて
次に、一実施形態に係るSP2及びEEPROM4を含む制御システムの処理の一例について簡単に説明する。
一実施形態に係るSP2は、GPIO20gをそなえることにより、運用系SP2が待機系SP2をサスペンド/レジュームさせることができる。
例えば、待機系SP2は、サスペンド状態に移行する場合、CPU2aの処理内容をメモリ2bへ退避(格納)し、LANコントローラ20a等のコンポーネントを停止させるとともに、CPU2a自身も停止することができる。
また、待機系SP2は、レジュームする場合、割り込みにより動作を開始したCPU2aがメモリ2bから処理内容を読み出すとともに、停止させたLANコントローラ20a等のコンポーネントを起動することができる。
しかし、上述したように、図28に示す待機系SP200−2では、上記(a)〜(e)に示す処理を行なうため、待機系SP200−2をサスペンド状態に移行させた場合、これらの処理が実行されない。
そこで、一実施形態に係る制御システムでは、待機系SP2をサスペンドさせるものの、例えば以下の(A)〜(E)の処理を行なうときにレジュームさせるように制御することができる。
(A)データ同期(EEPROM4上のデータ転送キュー40(図3参照)がFullの場合)
(B)運用系SP2(他系SP2)の生存監視
(C)待機系SP2(自系SP2)の生存監視
(D)待機系SP2(自系SP2)のハードウェア(電圧/温度等)監視
(E)運用系SP2(他系SP2)との運用系/待機系の切替処理
上記の処理を行なうために、待機系SP2は、例示的に、サスペンド中に以下の(i)〜(iii)に示す契機でレジュームすることができる。
(i)GPIO20gのWakeup信号(input)からの割り込み(レジューム要因:運用系SP2からのWakeup指示)
運用系SP2がGPIO20gのWakeup信号(運用系から待機系)の出力レベルを変更すると、出力レベルの変化を契機に待機系SP2のGPIO20gから待機系SP2のCPU2aに割り込みが上がる。CPU2aは割り込みを契機に動作を開始(再開)し、待機系SP2のレジュームを行なう。このとき、待機系SP2は、レジューム後にEEPROM4上のデータ転送キュー40からデータを取得するデータ同期(上記(A)参照)を行なうことができる。データ転送キュー40を含むデータ同期の手法については後述する。
また、待機系SP2は、上記(E)の処理(運用系SP2からの切り替え指示に応じた切替処理)についても、運用系SP2からのWakeup指示を契機に所定の切替条件を判断することによって実現することができる。換言すれば、待機系SP2は、サスペンド状態で運用系SP2からの切り替え指示を待ち受けることができる。
(ii)RTC20bからの割り込み(レジューム要因:周期的な(スケジュールされた)アラーム)
待機系SP2は、自系SP2のハードウェア(電圧/温度等)監視の周期又は次回の監視までの時間(若しくは次回の監視の時刻)をRTC20bに設定することができる。これにより、指定した間隔又はタイミングでRTC20bから待機系SP2のCPU2aに割り込みが上がる。CPU2aは割り込みを契機に動作を開始(再開)し、待機系SP2のレジュームを行ない、ハードウェア監視を実行する。このとき、待機系SP2は、自系SP2及び他系SP2の生存監視も行なうことができる。なお、待機系SP2は、これらの監視を完了すると、再びサスペンド状態に移行することができる。
このように、待機系SP2は、RTC20bによる割り込みを契機に上記(B)〜(D)の処理を行なうことができる。このため、CPU2aは、サスペンド状態に移行する際に、予めハードウェア等の監視の周期又は時間等をRTC20bに設定し、割り込みを発生させるようにすることが好ましい。このときCPU2aがRTC20bに設定する周期又は時間等は、自系SP2及び他系SP2の生存監視の実行周期、並びに、自系SP2のハードウェア監視の実行周期(ウォッチドッグタイマ20dのタイムアウト時間よりも短い周期)のうちの最も短い周期と同様又はそれ未満であることが好ましい。
(iii)ウォッチドッグタイマ20dからの割り込み(レジューム要因:ウォッチドッグタイムアウト)
待機系SP2のCPU2aは、上記(ii)におけるRTC20bからの割り込みを契機に自系SP2の生存監視を行なうことができる。このとき待機系SP2のCPU2aは、ウォッチドッグタイマ20dのリセットを行なうことができるが、CPU2aのハングアップ等によりウォッチドッグタイマ20dのリセットが滞ると、ウォッチドッグタイマ20dがタイムアウトすることになる。この場合、ウォッチドッグタイマ20dからCPU2aに割り込み(例えばNon-Maskable Interrupt(NMI)割り込み)が上がり、待機系SP2では、CPU2aが割り込みを契機にレジュームして自系SP2の再起動を行なう。
なお、待機系SP2が上記(iii)に示す契機でレジュームするのは、CPU2aのハングアップ等の発生により、上記(C)に示す自系SP2の生存監視が失敗(自系SP2に異常が発生)したことを意味する。換言すれば、待機系SP2が正常に動作している場合、サスペンド中の待機系SP2がレジュームする契機は、上記(i)又は(ii)に示す場合となる。
ここまで、待機系SP2の処理について説明したが、運用系SP2は、SB3の制御及び監視に加えて、自系SP2のハードウェア監視を行なうことができる(上記(D)参照)。この場合、運用系SP2は、待機系SP2と同様に、RTC20bに対して監視を行なう周期又は時間等を設定し、RTC20bからの割り込みを契機に当該監視を行なうことができる。また、運用系SP2は、さらに自系SP2及び他系SP2の生存監視を行なってもよい(上記(B)及び(C)参照)。
〔1−4〕制御システムの機能構成例
次に、図3を参照して、一実施形態に係る制御システムの機能構成例について説明する。図3は、図1に示すSP2の機能構成の一例を示している。なお、SP2−1及び2−2は、いずれも運用系/待機系として機能することが可能であるため、運用系/待機系の機能は、SP2−1及び2−2の双方がそなえてもよい。
図3に示すように、SP2は、例示的に、監視処理部21、二重化処理部22、及びシーケンス処理部23をそなえることができる。これらの機能は、CPU2aが実行する制御プログラム20により実現されてもよい。
監視処理部21は、サーバ1を含む製品全体のハードウェアの監視を行なうことができる。監視処理部21による監視は、例えばRTC20bからの割り込みによりレジュームしたときに実行される。一例として、監視処理部21は、自ボード監視部21a及びサーバ監視部21bをそなえることができる。
自ボード監視部21aは、自系SP2内のハードウェアの監視を行なうことができる。例えば自ボード監視部21aは、I2Cバスに接続されたデバイスやCPU2aに接続されたデバイスから監視に用いる情報、例えば電圧や温度等の情報を取得することによって監視を行なうことができる。なお、自ボード監視部21aは、SP2が運用系及び待機系のいずれの場合にも動作することができる。
運用系SP2の自ボード監視部21aは、自系SP2(運用系SP2)内のハードウェアの異常を検出すると、例えばシーケンス処理部23を通じて運用系/待機系を切り替えるための通知を行なうことができる。通知を行ない、待機系SP2で運用系への切替処理が完了すると、SP2(自ボード監視部21a)はサーバ1から自系SP2の切り離し、例えばシャットダウン(縮退)を実行してもよい。なお、待機系SP2の自ボード監視部21aは、自系SP2(待機系SP2)内のハードウェアの異常を検出すると、他系SP2(運用系SP2)へ通知を行ない、シャットダウンを実行してもよい。
サーバ監視部21bは、SB3を含む製品本体の電源(電圧)、温度(吸気温度やCPU3aの温度等)、ファン回転数、記憶装置(HDD等)等のハードウェアの監視を、I2Cコントローラ20eを用いて行なうことができる。なお、サーバ監視部21bは、SP2が運用系の場合に動作することができる。
サーバ監視部21bは、SB3内のハードウェアの異常(電圧異常、温度異常、HDDアクセス異常等)を検出すると、サーバ1から等がSB3の切り離し、例えばSB3のシャットダウン(縮退)を実行してもよい。
二重化処理部22は、運用系及び待機系のSP2間でのデータ転送や、自系SP2及び他系SP2の生存監視等、制御システムにおけるSP2の冗長化に係る種々の処理を行なうことができる。一例として、二重化処理部22は、自系監視部22a、他系監視部22b、及びデータ転送部22cをそなえることができる。
自系監視部22aは、自系SP2の生存監視を行なうことができる。この生存監視は、例えば自系監視部22aがウォッチドッグタイマ20dをリセットし、自系SP2の再起動を抑止することにより行なわれる。ウォッチドッグタイマ20dを正常にリセットできた場合(再起動を抑止できた場合)、自系SP2の生存が確認できた(監視結果が正常である)といえる。
他系監視部22bは、他系SP2の生存監視を行なうことができる。この生存監視は、例えば自系SP2のCPU2aが他系SP2のCPU2aに対してLANを介して生存確認の通知を行ない、規定時間内に応答を受信したか否かを判断することにより行なわれる。一例として、規定時間内に応答が返ってきた場合、CPU2aは他系SP2の生存が確認できた(監視結果が正常である)と判断することができる。なお、この生存監視にはハートビート通信等が用いられてもよい。
なお、自系監視部22a及び他系監視部22bによる監視は、それぞれ例えばRTC20bからの割り込みによりレジュームしたときに実行される。なお、自系監視部22a及び他系監視部22bは、SP2が待機系の場合に動作することができるが、SP2が運用系の場合にも動作してもよい。
データ転送部22cは、LAN経由で運用系SP2及び待機系SP2間でのデータ転送を行なうことができる。例えばデータ転送部22cは、二重化の制御に係る同期データや、シーケンス処理部23による実行中のシーケンスに関するデータを転送することができる。これにより、運用系SP2と待機系SP2とを同期することができ、運用系SP2に異常が発生した場合でも待機系SP2が運用系SP2の処理を正しく引き継ぐことができる。
なお、データ転送部22cによるデータの転送は、例えば後述するシーケンス処理部23においてシーケンス処理が行なわれたとき(データが更新されたとき)であって、待機系SP2がデータを受信できる状態であるとき(動作中)に行なうことができる。
シーケンス処理部23は、SB3を含む製品本体の電源投入や電源切断等の複数の制御シーケンスの実行を管理することができる。一例として、シーケンス処理部23は、シーケンステーブル23a、シーケンス管理キュー23b、他系データ転送部23c、及びシーケンス管理部23dをそなえることができる。
シーケンステーブル23aは、電源投入や電源切断等のシーケンス(種別)ごとに、当該シーケンスで実行される複数の処理(ステップ)定義するテーブルである。シーケンス処理部23は、電源投入等のシーケンスを実行する場合にシーケンステーブル23aを参照し、何の処理をどの順番で実行するかを認識することができる。なお、シーケンステーブル23aは、制御を行なうシーケンス種別ごとにそなえられる。
図4にシーケンステーブル23aのデータ構造の一例を示す。図4に示すように、シーケンステーブル23aには、ヘッダ部と複数(例えばM+1個;Mは自然数)のデータ部#0〜#Mとが含まれる。なお、データ部の数は、当該シーケンスにおいて実行される処理の数に相当する。
ヘッダ部には、例えば実行するシーケンスの処理の数を示すシーケンスステップ数が設定されてよい。
各データ部には、例えばシーケンスステップ番号、シーケンス処理実行関数の関数ポインタ、運用系SP2切替後の再開ポイント、及びパラメータが設定されてよい。
シーケンスステップ番号はシーケンスのステップに割り振られたユニークな番号である。なお、シーケンスステップ番号は他のデータ部のシーケンスステップ番号と連番でなくてもよい。
シーケンス処理実行関数の関数ポインタは、シーケンス処理の各ステップの処理を実行する関数(機能モジュール)の関数ポインタを表す情報である。関数ポインタで指定される関数はステップの処理内容を含んでおり、シーケンス処理部23は、この関数を呼び出すことで当該ステップの処理を実行することができる。
運用系SP2切替後の再開ポイントは、運用系SP2が切り替わった場合に、新たに運用系になったSP2が中断されたシーケンスのどのステップから処理を再開するかを表す情報である。再開ポイントには、再開するステップのシーケンスステップ番号が格納されている。
換言すれば、シーケンステーブル23aは、複数の処理(ステップ)の各々について、当該処理が実行中に中断された場合の再開ポイントを示す再開情報の一例である。
中断されたシーケンスを再開する場合、中断されたステップによっては、当該ステップをやり直す(ステップを再実行する)のではなく、リカバリ処理を行なうことが好ましい場合がある。このため、リカバリ処理を行なう場合に再開するステップを再開ポイントに設定することができる。なお、リカバリ処理を行なわず、中断されたステップと同じステップを再度実行すればよい場合、再開ポイントには例えば“−1”が設定されてもよい。
例えば電源投入等の制御シーケンスを実行中の場合、SP2は、処理を継続するためにシーケンスステップの再実行を行なうことができる。一方、ハードウェアへの制御を行なっている最中に運用系が切り替わった場合、処理の継続が困難な場合があるため、SP2は、電源切断等のリカバリ処理を行なうことができる。なお、リカバリ処理では、1つ以上前のステップからシーケンスをやり直したり、中断したステップの前に他のステップを実行するといった処理が行なわれる。
パラメータは、シーケンス処理実行関数を呼び出す際に関数に渡すパラメータを表す情報である。
以上のように、シーケンステーブル23aは、シーケンスの各ステップの処理と切替時の再開ポイントとを定義することができる。これにより、シーケンス処理部23は、各ステップの実行中に切り替えが発生した場合のリカバリ処理の要否とリカバリ処理の内容とを取得することができる。
シーケンス管理キュー23bは、シーケンス処理部23が実行中のシーケンス処理に用いられるデータを管理する情報であり、例えばキュー構造で管理される。
図5にシーケンス管理キュー23bのデータ構造の一例を示す。図5に示すように、シーケンス管理キュー23bには、ヘッダ部と複数(例えばN+1個;Nは自然数)のデータ部#0〜#Nとが含まれる。
ヘッダ部には、キューの先頭エントリ及び末尾エントリのインデックス(データ部のインデックス)が設定されてよい。
先頭エントリインデックスは、キューの先頭(HEAD)のインデックスを表し、末尾エントリインデックスは、キューの末尾(TAIL)のインデックスを表す。シーケンス処理部23は、キューを処理する(実行する)際に先頭エントリインデックスを参照してキューを読み出すことができ、新たにキューを格納する際に末尾エントリインデックスを参照して格納先を判定することができる。
各データ部には、実行するシーケンスの状態を表すシーケンスデータ(状態情報)の一例として、シーケンス状態、シーケンスID、シーケンス種別、シーケンスステップ番号、及び制御対象ハードウェア情報が設定されてよい。
シーケンス状態はシーケンスの状態を表す情報である。シーケンス状態には、以下の状態が含まれてよい。
・INVALID:無効(シーケンス実行前の状態)
・RUNNING:シーケンス実行中
・HOLD:シーケンス保留中(先行するシーケンスの処理完了を待っている状態)
・SUSPENDED:シーケンス中断中(二重化切替を実施するために運用系SP2で実行中のシーケンス処理を中断している最中の場合)
・STOP:シーケンス停止中(シーケンス中断処理が完了した場合。SUSPENDEDから遷移する)
・CANCELED:シーケンスキャンセル(後続処理により先行処理がキャンセルされた場合。例えば先行する電源投入のシーケンスの後に電源切断のシーケンスがシーケンス管理キュー23bに登録された場合、先行する電源投入の処理がキャンセルされる)
シーケンスIDはシーケンス処理の識別情報の一例である。IDは実行中の他のシーケンスと重複しないように割り当てられる。
シーケンス種別はシーケンス処理で行なう処理の種別を表す情報である。シーケンス種別には、電源の投入、切断、リセット等が含まれてよい。
シーケンスステップ番号は、シーケンス処理がどこまで進んだかを表す情報であり、当該シーケンスについて最後に実行されたシーケンスステップ番号が設定される。シーケンス実行中に運用系SP2が待機系に切り替わった場合、切替後の運用系SP2は、このシーケンスステップ番号が示すシーケンステーブル23aのエントリに設定された、運用系SP2切替後の再開ポイントからシーケンス処理を再開することができる。
制御対象ハードウェア情報は、このデータ部に設定されているシーケンス処理が対象としているハードウェアを表す情報である。制御対象ハードウェア情報には例えば制御対象のSB3のユニークな識別情報等が設定される。
なお、上述したシーケンステーブル23a及びシーケンス管理キュー23bは、それぞれメモリ2bの記憶領域の少なくとも一部を用いて記憶・管理されてよい。このように、メモリ2bは、シーケンスにおける複数の処理(ステップ)の実行に用いる情報を記憶する記憶部の一例である。
以上のように、シーケンス種別及びシーケンスIDを含むシーケンス管理キュー23bは、複数の処理(ステップ)のうちの実行対象の処理の状態を示す状態情報の一例である。
他系データ転送部23cは、他系SP2との間でシーケンス管理キュー23bの情報を送受信することができる。例えば運用系SP2の他系データ転送部23cは、待機系SP2がレジュームしているとき(動作中)に、シーケンス管理キュー23bの情報をLAN経由で待機系SP2へ転送することができる。このとき他系データ転送部23cは、シーケンス管理キュー23bに登録されたキューを二重化処理部22のデータ転送部22cへ出力し、データ転送部22cに待機系SP2へ当該キューを転送させることができる。
また、待機系SP2の他系データ転送部23cは、運用系SP2からシーケンス管理キュー23bの情報を受信すると、受信した情報をシーケンス管理キュー23bへ登録することができる。なお、シーケンス管理キュー23bへのアクセスはシーケンス管理部23dを介してもよい。
シーケンス管理部23dは、シーケンスの管理を行なうことができる。例えば運用系SP2のシーケンス管理部23dは、シーケンス処理部23によるシーケンスの実行に応じてシーケンス管理キュー23bを更新することができる。
ここで、一実施形態においては待機系SP2のサスペンドが許容されているが、待機系SP2がサスペンド状態である場合、LANコントローラ20aも停止するため、他系データ転送部23cは、シーケンス管理キュー23bの情報をLAN経由で待機系SP2へ転送することができない。また、二重化処理部22においても、冗長化に係る同期データをLAN経由で待機系SP2へ転送することができない。
そこで、一実施形態に係るシーケンス管理部23dは、待機系SP2がサスペンドしている場合、データ転送キュー40経由で、待機系SP2へデータを転送することができる。
データ転送キュー40は、待機系SP2がサスペンドしている場合に、SP2間でデータ同期を行なうための情報であり、例えばEEPROM4の記憶領域の少なくとも一部を用いて記憶され、キュー構造で管理される。データ転送キュー40にエンキューされたデータは、例えば待機系SP2がレジュームしたタイミングで待機系SP2のシーケンス処理部23(シーケンス管理部23d)によりデキューされ、待機系SP2のシーケンス管理キュー23bに反映される。
図6にデータ転送キュー40のデータ構造の一例を示す。図6に示すように、データ転送キュー40には、ヘッダ部と複数(例えばi+1個;iは自然数)のデータ部#0〜#iとが含まれる。
ヘッダ部には、キューの先頭エントリ及び末尾エントリのインデックス(データ部のインデックス)が設定されてよい。
各データ部には、運用系SP2から待機系SP2へ転送される情報の一例として、転送データ種別及び転送データが設定されてよい。
転送データ種別は、待機系SP2に転送するデータの種別を表す情報である。転送データ種別には以下の種別が含まれてよい。
・シーケンスキュー
・二重化同期データ
転送データは待機系SP2に転送するデータである。例えば転送データ種別がシーケンスキューである場合、転送データには転送するシーケンスキュー(シーケンス管理キュー23bにおける1つ以上のデータ部)そのものが設定されてもよいし、シーケンスキューにおける更新部分の差分データが設定されてもよい。
差分データには、シーケンスID、シーケンス管理キュー23bにおける更新部分のオフセット(当該データ部の先頭からのオフセット)、及び更新後のデータが含まれてよい。
一例として、運用系SP2において、シーケンスID“3”のシーケンスキューのシーケンスステップ番号が“4”から“5”に更新された場合であって、シーケンスステップ番号がデータ部の先頭から12バイト目である場合、差分データは以下のようになる。
・シーケンスID:3
・オフセット:12
・データ:5
なお、シーケンスの完了によって運用系SP2のシーケンス管理キュー23bからシーケンスキューが削除された場合、シーケンスキューの削除を示す転送データ(差分データ)が設定されてよい。この転送データには、例えば削除するシーケンスキューのシーケンスIDと、それぞれに“−1”が設定されたオフセット及びデータとが含まれてよい。
また、例えば転送データ種別が二重化同期データである場合、転送データには、LAN経由で転送されるものと同様のデータ(例えばファイル)が設定されてよい。
シーケンス管理部23dは、上述のように待機系SP2のサスペンド中にデータ転送キュー40へシーケンス管理キュー23bのデータを格納することができるが、このとき、データ転送キュー40に空きがなくなる(FULLになる)場合がある。この場合、シーケンス管理部23dは、GPIO20gにWakeup信号をHighに設定させ、待機系SP2をレジュームさせることができる。
Wakeup信号によりレジュームした待機系SP2のシーケンス管理部23dは、データ転送キュー40にキューイングされた全てのデータを待機系SP2のシーケンス管理キュー23bへ反映して同期を完了する。同期が完了すると、待機系SP2のシーケンス管理部23dは、GPIO20gにACK信号をHighに設定させ、運用系SP2へ応答を返す。
ACK応答を受けた運用系SP2のシーケンス管理部23dは、再度待機系SP2をサスペンドさせるために、GPIO20gにWakeup信号をLowに設定させる。これを受けた待機系SP2は、GPIO20gにACK信号をLowに設定させ、サスペンド状態に移行する。
このように、待機系SP2がサスペンド中にデータ転送キュー40の空きがなくなっても、運用系SP2はデータ転送キュー40にキューイングされたデータを取り込ませる間だけ待機系SP2をレジュームさせることができる。これにより、待機系SP2を効率的にサスペンドさせることができ、消費電力を削減することができる。
〔1−4−1〕シーケンス管理キューの同期手法の説明
次に、図7〜図10を参照して、運用系及び待機系のSP2のシーケンス処理部23によるシーケンス管理キュー23bの同期手法の一例について説明する。なお、図7〜図10では、説明の簡略化のため、SP2内にシーケンス管理キュー23bのみを図示している。
図7に例示するように、運用系及び待機系両系のSP2が動作中の場合、運用系SP2は、データ転送キュー40を使用せず、LAN経由で待機系SP2とシーケンス管理キュー23bの同期を行なう。
待機系SP2がサスペンド状態に移行した場合、LAN経由でシーケンス管理キュー23bを同期できないため、運用系SP2は、図8に例示するように、シーケンス管理キュー23bの更新箇所のデータをデータ転送キュー40に格納する。一例として、図8に示す運用系SP2のシーケンス処理部23は、シーケンスID“3”のシーケンスステップ番号を“4”から“5”に更新した場合、以下の転送データをデータ転送キュー40の空きエントリ(例えばHEAD)に格納する。
・転送データ種別:シーケンスキュー
・転送データ:
シーケンスID:3
オフセット:12
データ:5
運用系SP2から待機系SP2へのGPIO20gのWakeup指示等により、待機系SP2がレジュームした直後は、図9に例示するように、直前までサスペンドしていた待機系SP2と、運用系SP2との間でシーケンス管理キュー23bの同期が行なわれていない。一例として、図9に示すように、シーケンスID“3”のシーケンスステップ番号は待機系SP2では“4”、運用系SP2では“6”になっている。また、シーケンスID“4”のシーケンスステップ番号は待機系SP2では“10”、運用系SP2では“11”になっている。なお、図9の例では、データ転送キュー40の空きがなくなり、運用系SP2が待機系SP2へWakeup信号(High)を出力した場合を示している。
このため、待機系SP2のシーケンス処理部23(シーケンス管理部23d)は、レジュームした後、データ転送キュー40のデータをHEADから順に読み出し、待機系SP2のシーケンス管理キュー23bに反映する。
待機系SP2がデータ転送キュー40にキューイングされたデータをシーケンス管理キュー23bに全て(格納順に)反映すると、図10に例示するように、運用系及び待機系のSP2のシーケンス管理キュー23bの同期が完了する。図10の例では、シーケンスID“3”のシーケンスステップ番号が待機系SP2でも運用系SP2と同じ“6”になっており、シーケンスID“4”のシーケンスステップ番号が待機系SP2でも運用系SP2と同じ“11”になっている。なお、同期完了後、待機系SP2から運用系SP2へGPIO20gのACK応答(High)が行なわれる。
なお、図9の例では、データ転送キュー40にシーケンスID“3”のエントリが2つキューイングされている(データ“5”のシーケンス情報及びデータ“6”のシーケンス情報)。例えばシーケンス管理部23dは、データ転送キュー40にシーケンス情報を登録する際に、データ転送キュー40からシーケンスIDに基づきエントリを検索し、同一のシーケンスIDを持つエントリが存在する場合、当該エントリにシーケンス情報を反映(上書き)してもよい。これにより、データ転送キュー40の記憶領域の利用効率を向上させることができる。
〔1−4−2〕運用系/待機系の切替処理の説明
次に、図11〜図15を参照して、運用系SP2に障害が発生した場合の運用系/待機系の切替処理の一例について、シーケンス管理キュー23b及びデータ転送キュー40の状態に着目して説明する。なお、図11〜図15では、説明の簡略化のため、SP2内にシーケンス管理キュー23bのみを図示している。
以下、図11に例示するように、待機系SP2がサスペンド状態のときに、運用系SP2の自ボード監視部21aが自系SP2の故障を検出した場合について説明する。この場合、自ボード監視部21aは、シーケンス処理部23に対して自系SP2の故障(待機系への切り替え)を通知することができる。
自ボード監視部21aから故障の通知を受けたシーケンス処理部23(シーケンス管理部23d)は、実行中のシーケンスを停止させるために、図12に例示するように、シーケンス管理キュー23bの実行中のシーケンスに対してシーケンス状態をSUSPENDEDに変更する。また、シーケンス処理部23は、変更内容をデータ転送キュー40にもエンキューする。一例として、図12に示す運用系SP2のシーケンス処理部23は、シーケンス管理キュー23bにおけるシーケンスID“3”のシーケンス状態をRUNNINGからSUSPENDEDに更新し、以下の転送データをデータ転送キュー40の空きエントリ(TAILの次のエントリ)に格納する。
・転送データ種別:シーケンスキュー
・転送データ:
シーケンスID:3
オフセット:0
データ:SUSPENDED
運用系SP2のシーケンス処理部23は、図13に例示するように、電源投入等のシーケンス処理が中断できた場合、シーケンス状態をSUSPENDEDからSTOPに変更し、変更内容をデータ転送キュー40にも反映する。このとき、シーケンス処理部23は、待機系SP2へのWakeup指示を行ない、待機系SP2をレジュームさせる。
待機系SP2のシーケンス処理部23は、レジューム後、図14に例示するように、データ転送キュー40内のデータを待機系SP2のシーケンス管理キュー23bに反映し、同期が完了する。
同期が完了すると、図15に例示するように、運用系SP2と待機系SP2とが切り替わり、切替後の運用系SP2によりシーケンス処理が再開される。なお、運用系SP2と待機系SP2との切り替えでは、待機系SP2(切替後の運用系SP2)は、バススイッチ20fをオンに切り替えて、待機系SP2からSB3等へアクセスできるように設定することができる。バススイッチ20fの設定は、シーケンス処理の開始前(例えば同期の完了前又は完了後)に行なわれることが好ましい。
また、切替後の運用系SP2は、シーケンス管理キュー23bのシーケンスステップ番号を参照することで、対応するシーケンステーブル23aの再開ポイントからシーケンス処理の再開を行なうことができる。
なお、切替前の運用系SP2は、上述した切替処理が完了すると、OSのシャットダウン等を行ない停止状態となる(図15参照)。
〔1−5〕動作例
次に、上述の如く構成されたSP2及びEEPROM4を含む制御システムの動作例を、図16〜図27を参照して説明する。
〔1−5−1〕シーケンスの登録・更新・完了〜同期処理の動作例
はじめに、図16〜図22を参照して、制御システムによるシーケンスの登録・更新・完了〜同期処理の動作例について説明する。
図16は運用系SP2のシーケンス処理部23によるシーケンス登録処理の動作例を示すフローチャートであり、図17は待機系SP2のシーケンス処理部23によるデータ同期処理の動作例を示すフローチャートである。図21及び図22は、それぞれ運用系SP2のシーケンス処理部23によるシーケンス更新処理及びシーケンス完了処理の動作例を示すフローチャートである。また、図18〜図20は、運用系SP2及び待機系SP2におけるシーケンス登録時の動作例を示すシーケンス図である。
図16に示すように、シーケンス管理部23dは、SB3等に対するシーケンスの実行条件を確認し(ステップS1;図18の処理T1)、シーケンスが実行条件を満たすか否かを判定する(ステップS2)。実行条件としては、例えば実行しようとするシーケンスを無効にする(打ち消す)後続のシーケンス(例えば電源投入のシーケンスの後に電源切断のシーケンス)が存在しないこと等が挙げられる。
シーケンスが実行条件を満たさない場合(ステップS2のNoルート)、運用系SP2の処理が終了する。一方、シーケンスが実行条件を満たす場合(ステップS2のYesルート;図18の処理T2)、シーケンス管理部23dは、シーケンス管理キュー23bがFullであるか否かを判定する(ステップS3)。
シーケンス管理キュー23bがFullである場合(ステップS3のYesルート)、これ以上シーケンスを登録できないため、処理が終了する。一方、シーケンス管理キュー23bがFullではない場合(ステップS3のNoルート;図18の処理T3)、シーケンス管理部23dは、シーケンス管理キュー23bへシーケンス情報をエンキューし(ステップS4;図18の処理T4)、処理がステップS5に移行する。
ステップS5では、シーケンス管理部23dは、待機系SP2からのGPIO20gのACK信号がLowであるか否かを判定する。ACK信号がLowではない(Highである)場合(ステップS5のNoルート)、待機系SP2は動作中(レジュームしている)可能性があるため、データ転送部22cがLAN経由で待機系SP2にデータを転送し(ステップS6)、運用系SP2の処理が終了する。
一方、ACK信号がLowである場合(ステップS5のYesルート;図18の処理T5)、待機系SP2はサスペンドしている可能性がある。そこで、シーケンス管理部23dは、待機系SP2に同期させるデータをデータ転送キュー40に格納するために、データ転送キュー40がFullであるか否かを判定する(ステップS7)。
データ転送キュー40がFullではない場合(ステップS7のNoルート;図18の処理T6)、シーケンス管理部23dは、データをデータ転送キュー40へエンキューし(ステップS12;図18の処理T7)、運用系SP2の処理が終了する。
一方、データ転送キュー40がFullである場合(ステップS7のYesルート;図19の処理T11)、これ以上データ転送キュー40にデータを格納することができない。そこで、シーケンス管理部23dは、待機系SP2をレジュームさせ、データ転送キュー40のデータを取得させるために、待機系SP2へのGPIO20gのWakeup信号をHighに設定する(ステップS8;図19の処理T12)。
このとき、待機系SP2は、図17に示すように、運用系SP2からGPIO20gのWakeup信号(High)を受信し(ステップS21)、レジューム処理を行なう(図19の処理T13)。そして、待機系SP2のシーケンス管理部23dは、データ転送キュー40にエントリがあるか否かを判定する(ステップS22)。
データ転送キュー40にエントリがある場合(ステップS22のYesルート)、シーケンス管理部23dは、データ転送キュー40からデータをデキューする(ステップS23;図19の処理T15)。そして、シーケンス管理部23dは、デキューしたデータをシーケンス管理キュー23bに反映し(ステップS24;図19の処理T16)、処理がステップS22に移行する(データ転送キュー40にエントリがある場合、図19の処理T15及びT16がループする)。
一方、ステップS22においてデータ転送キュー40にエントリがない場合(ステップS22のNoルート)、シーケンス管理部23dは運用系SP2へのGPIO20gのACK信号をHighに設定することで(ステップS25;図19の処理T17)、運用系SP2に処理の完了を通知する。
図16に戻り、運用系SP2は、待機系SP2からのGPIO20gのACK信号がHighに変化するのを待ち受ける(ステップS9及びS10;図19の処理T14)。規定時間内にGPIO20gのACK信号がHighに変化した場合(ステップS10のYesルート)、運用系SP2は、待機系SP2に依頼する処理がない場合には待機系SP2をサスペンドさせるために、待機系SP2へのWakeup信号をLowに設定する(ステップS11;図19の処理T18)。そして、運用系SP2のシーケンス管理部23dは、データ転送キュー40へシーケンス情報をエンキューし(ステップS12;図19の処理T19)、運用系SP2の処理が完了する。
このとき、待機系SP2は、図17に示すように、運用系SP2からのGPIO20gのWakeup信号がLowに変化するのを待ち受け(ステップS26)、Wakeup信号がLowに変化すると、運用系SP2へのGPIO20gのACK信号をLowに設定する(ステップS27;図19の処理T20)。
そして、待機系SP2は、サスペンド処理を実行し(ステップS28;図19の処理T21)、待機系SP2の処理が完了する。
また、図16に戻り、ステップS10において、規定時間内にGPIO20gのACK信号がHighに変化しない場合もある(ステップS10のNoルート)。このような場合としては、図20の処理T31に示すように、待機系SP2がレジューム処理等でハングアップした場合が挙げられる。このとき、運用系SP2では、ACK信号(Low)受信待ちのタイムアウトを検出する(図20の処理T32)。
この場合、運用系SP2は、待機系SP2への同期処理を行なえないため、図16に示すように、サーバ1の構成情報等に対して待機系SP2をエラー(エラー状態)に設定する(ステップS13;図20の処理T33)。また、運用系SP2のシーケンス管理部23dは、データ転送キュー40内のエントリを全てクリアし(ステップS14;図20の処理T34)、データ転送キュー40へシーケンス情報をエンキューし(ステップS12;図20の処理T35)、運用系SP2の処理が完了する。なお、この場合、SP2の冗長構成は解除され、運用系SP2単体で処理を継続する。
以上の処理により、運用系SP2及び待機系SP2によるシーケンスの同期が行なわれる。なお、図16〜図20の例ではシーケンス登録時の処理について説明したが、シーケンス管理キュー23bのシーケンス情報を更新する場合や、シーケンスが完了した場合(シーケンス情報を削除する場合)についても基本的に同様である。
例えば図21に示すように、シーケンス情報の更新では、運用系SP2のシーケンス管理部23dは、シーケンス管理キュー23b内のエントリを検索し(ステップS31)、シーケンス管理キュー23b内の更新対象のエントリのデータを更新する(ステップS32)。
その他の処理(ステップS5〜S11、S13、S14)は図16と基本的に同様であるが、データ転送キュー40へエンキューする際に(図16のステップS12に対応)、シーケンス管理部23dは、例えば差分データをデータ転送キュー40へエンキューすることができる(ステップS33)。
また、図22に示すように、シーケンスが完了した場合、運用系SP2のシーケンス管理部23dは、シーケンス管理キュー23b内のエントリを検索し(ステップS41)、シーケンス管理キュー23b内の削除対象のエントリをデキューする(ステップS42)。
その他の処理(ステップS5〜S11、S13、S14)は図16と基本的に同様であるが、データ転送キュー40へエンキューする際に(図16のステップS12に対応)、シーケンス管理部23dは、例えばシーケンス情報を削除することを示すデータ(差分データ)をデータ転送キュー40へエンキューすることができる(ステップS43)。
〔1−5−2〕運用系/待機系の切替処理の動作例
次に、図23〜図27を参照して、制御システムによる運用系/待機系の切替処理の動作例について説明する。
図23及び図26は待機系SP2による他系SP2の生存監視処理の動作例を示すフローチャートであり、図24は待機系SP2による運用系の切替処理の動作例を示すフローチャートである。また、図25及び図27は、運用系SP2に異常が発生した場合の運用系SP2及び待機系SP2の動作例を示すシーケンス図である。
図23に示すように、待機系SP2は、RTC20bからの割り込みを受信すると(ステップS51;図25の処理T41)、レジューム処理を実行する(ステップS52;図25の処理T42)。
次いで、待機系SP2の他系監視部22bは、運用系SP2に例えばLAN経由で生存確認通知を行ない(ステップS53;図25の処理T43)、規定時間内にレスポンスを受信したか否かを判定する(ステップS54)。
規定時間内にレスポンスを受信した場合(ステップS54のYesルート;図25の処理T44)、シーケンス管理部23dは、データ転送キュー40が空であるか否かを判定する(ステップS55)。
データ転送キュー40が空でない場合(ステップS55のNoルート)、シーケンス管理部23dは、データ転送キュー40からデータを読み出す(ステップS56;図25の処理T45)。そして、シーケンス管理部23dは、読み出したデータをシーケンス管理キュー23bに反映して運用系SP2と同期し(ステップS57)、処理がステップS58に移行する。
ステップS58では、待機系SP2は、例えば指定時間後に割り込むようにRTC20bを設定し(図25の処理T46)、サスペンド処理を実行し(ステップS59;図25の処理T47)、処理がステップS51に移行する。
なお、ステップS55において、データ転送キュー40が空である場合(ステップS55のYesルート)、処理がステップS58に移行する。
また、ステップS54において、待機系SP2は規定時間内に運用系SP2からのレスポンスを受信しない場合もある(ステップS54のNoルート)。このような場合としては、図25の処理T48に示すように、運用系SP2がハングアップした場合が挙げられる。このとき、待機系SP2は、生存確認(図25の処理T43)に対する運用系SP2からのレスポンス受信待ちのタイムアウトを検出し(図25の処理T49)、運用系/待機系の切替処理に移行することができる(図25の処理T50)。
切替処理では、図24に示すように、待機系SP2は、待機系SP2からSB3等へアクセスできるようにバススイッチ20fを切り替え(ステップS61;図25の処理T51)、データ転送キュー40が空であるか否かを判定する(ステップS62)。
データ転送キュー40が空でない場合(ステップS62のNoルート)、シーケンス管理部23dは、データ転送キュー40からデータを読み出す(ステップS63;図25の処理T52)。そして、シーケンス管理部23dは、読み出したデータをシーケンス管理キュー23bに反映して運用系SP2と同期し(ステップS64)、処理がステップS65に移行する。
なお、ステップS62において、データ転送キュー40が空である場合(ステップS62のYesルート)、処理がステップS65に移行する。
ステップS65では、待機系SP2のシーケンス管理部23dは、例えばシーケンス管理キュー23bを確認し(ステップS65)、シーケンス処理が実行中であるか否かを判定する(ステップS66)。シーケンス処理が実行中でなければ(ステップS66のNoルート)、運用系SP2から引き継ぐ実行中のシーケンスが存在しないため、切替処理が完了する。
一方、シーケンス処理が実行中であれば(ステップS66のYesルート)、シーケンス管理部23dは、シーケンス管理キュー23bからシーケンスステップ番号を取得し(ステップS67)、シーケンステーブル23aから再開ポイントを取得する(ステップS68)。
そして、シーケンス管理部23dは、リカバリ処理を行なうか否かを再開ポイントに基づいて判定する(ステップS69)。例えば再開ポイントがステップS67で取得したシーケンスステップ番号(中断された処理のステップ番号)よりも前である場合、シーケンス管理部23dはリカバリ処理を行なうと判定し(ステップS69のYesルート)、シーケンスのリカバリ処理を実行する(ステップS70;図25の処理T53)。また、シーケンス管理部23dは、新たな運用系SP2としてシーケンス処理を継続し(ステップS71;図25の処理T54)、待機系SP2(新たな運用系SP2)の処理が完了する。
なお、再開ポイントが中断された処理と同じ処理である場合、シーケンス管理部23dはリカバリ処理を行なわないと判定し(ステップS69のNoルート)、シーケンスステップの再実行を行ない(ステップS72)、処理がステップS71に移行する。
以上の処理により、運用系SP2及び待機系SP2による運用系/待機系の切り替えが行なわれる。なお、図23〜図25に示す例は運用系SP2がハングアップした場合の処理である。
以下、他の例として、運用系SP2の自ボード監視部21aで故障が検出された場合における運用系SP2及び待機系SP2による動作例を説明する。
例えば図27に示すように、運用系SP2の自ボード監視部21aが自系SP2のハードウェアの故障を検出すると(処理T61)、故障をシーケンス処理部23へ通知する。シーケンス処理部23(シーケンス管理部23d)は、実行中のシーケンス処理を中断し(処理T62)、中断したシーケンスに係るデータ(シーケンス情報)をデータ転送キュー40に設定する(処理T63)。また、運用系SP2は、運用系を切り替えるため、GPIO20gのWakeup信号をHighに設定し(処理T64)、待機系SP2のレジュームが完了するのを待つ(処理T66)。
図26に示すように、待機系SP2は、GPIO20gのWakeup信号からの割り込み(High)を受信すると(ステップS81)、割り込みを契機にレジューム処理を行なう(ステップS82;図27の処理T65)。
次いで、待機系SP2のシーケンス管理部23dは、データ転送キュー40が空であるか否かを判定する(ステップS83)。データ転送キュー40が空ではない場合(ステップS83のNoルート)、シーケンス管理部23dは、データ転送キュー40からデータを読み出す(ステップS84;図27の処理T67)。そして、シーケンス管理部23dは、読み出したデータをシーケンス管理キュー23bに反映して運用系SP2と同期し(ステップS85)、処理がステップS86に移行する。
なお、ステップS83において、データ転送キュー40が空である場合(ステップS83のYesルート)、処理がステップS86に移行する。
ステップS86では、待機系SP2は、GPIO20gのACK信号をHighに設定する(図27の処理T68)。
ACK信号により待機系SP2のレジューム完了を認識した運用系SP2は、運用系切り替え指示を待機系SP2へ送信する(図27の処理T69)。
待機系SP2では、切り替え指示の受信待ちをしており(ステップS87及びS88)、規定時間内に運用系から切り替え指示を受信すると(ステップS88のYesルート)、処理が図24の運用系切替処理に移行する。例えば図27のシーケンス図において、待機系SP2が運用系への切り替えを開始し(処理T70)、バススイッチの切り替えを行ない(処理T71)、SB3へのアクセス権を取得する。そして、シーケンス処理部23は、同期したシーケンス管理キュー23bを用いてシーケンスリカバリ処理(又はシーケンスステップの再実行)を行ない(処理T72)、シーケンス処理を継続する(処理T73)。
一方、規定時間内に運用系から切り替え指示を受信しない場合(ステップS88のNoルート)、待機系SP2は、GPIO20gのWakeup信号からの割り込み(Low)を待ち受ける。Wakeup信号からの割り込み(Low)を受信すると(ステップS89)、待機系SP2は、運用系SP2へのGPIO20gのACK信号をLowに設定し(ステップS90)、サスペンド処理を行なう(ステップS91)。これにより、待機系SP2はサスペンド状態に移行し、待機系SP2の処理が完了する。
なお、ステップS88のNoルートにおいて、例えば運用系SP2がハングアップしたことにより、規定時間内に運用系から切り替え指示を受信できなかったという場合も考えられる。この場合、上述のように図26に示す処理では切替処理が実行されないものの、待機系SP2は、図23を参照して説明したように、運用系SP2のハングアップを検出できるため、適切に切替処理を行なうことができる。
図23〜図27を参照して説明したように、待機系SP2は、動作が停止したサスペンド状態において、所定のタイミングで動作を開始し、運用系SP2の監視を行なうともに、運用系SP2の異常を検出すると、SB3等に対するシーケンス(複数の処理(ステップ))の実行を、運用系SP2から引き継ぐことができる。なお、所定のタイミングとしては、例えばGPIO20gのWakeup信号(High)やRTC20bからの割り込みが発生したタイミングが挙げられる。
以上のように、一実施形態に係るサーバ1によれば、運用系SP2は、シーケンスの実行対象のステップの状態を示す状態情報を、メモリ2b及びEEPROM4にそれぞれ反映することができる。また、運用系SP2は、待機系SP2に対して待機系SP2の動作を開始させる開始通知を送信することができる。さらに、待機系SP2は、動作が停止した状態で運用系SP2から開始通知を受信すると、その動作を開始するとともに、EEPROM4から状態情報を読み出して、読み出した状態情報をメモリ2bに反映することができる。
このように、制御システムには、運用系/待機系の両SP2からアクセスできるデータ同期用のEEPROM4と、待機系SP2のサスペンド/レジューム制御用のGPIO20gとが追加されている。これにより、待機系SP2が動作を停止(サスペンド)している場合でも、運用系SP2はEEPROM4にデータを格納でき、GPIO20gによる開始通知により待機系SP2を起動(レジューム)させることでEEPROM4内のデータを待機系SP2に同期させることができる。
従って、SP2が冗長構成の組み込みシステムにおける待機系SP2のサスペンドを行なうことができ、待機系SP2の消費電力を低減することができる。
また、サスペンドしていた待機系SP2は、運用系に切り替わった後に速やかに電源投入等のシーケンス処理の引き継ぎ及びリカバリ処理を行なうことができ、待機系SP2がサスペンドしない場合と比較して、同等の時間で運用系/待機系の切り替えを行なうことができる。従って、待機系SP2がサスペンドすることに起因してシステムの性能が低下することを抑制できる。
さらに、GPIO20g間は信号線を介して接続されており、Wakeup信号を受信した待機系SP2では、CPU2aに割り込みが発生する。従って、待機系SP2においてCPU2a等のコンポーネントを停止させるサスペンドを行なうことができ、運用系SP2の所望のタイミングで待機系SP2をレジュームさせることができる。
〔2〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、サーバ1は2つのSP2をそなえるものとしたが、これに限定されるものではなく、任意の数のSP2をそなえることができる。
また、図3に示すSP2の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
〔3〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
対象装置に対して複数の処理を所定の実行順序で実行する、冗長化された第1の制御装置及び第2の制御装置と、
前記第1の制御装置と前記第2の制御装置との間に介設された転送記憶部と、をそなえ、
前記第1の制御装置は、
前記複数の処理の実行に用いる情報を記憶する第1の記憶部をそなえ、
前記複数の処理のうちの実行対象の処理の状態を示す状態情報を、前記第1の記憶部及び前記転送記憶部にそれぞれ反映し、
前記第2の制御装置に対して前記第2の制御装置の動作を開始させる開始通知を送信し、
前記第2の制御装置は、
前記複数の処理の実行に用いる情報を記憶する第2の記憶部をそなえ、
前記第2の制御装置の動作が停止した状態で前記第1の制御装置から前記開始通知を受信すると、前記第2の制御装置の動作を開始するとともに、前記転送記憶部から前記状態情報を読み出して、読み出した前記状態情報を前記第2の記憶部に反映する
ことを特徴とする、制御システム。
(付記2)
前記第2の制御装置は、
前記第2の制御装置の動作が停止した状態において、所定のタイミングで前記動作を開始し、前記第1の制御装置の監視を行なうともに、前記第1の制御装置の異常を検出すると、前記対象装置に対する前記複数の処理の実行を、前記第1の制御装置から引き継ぐ
ことを特徴とする、付記1記載の制御システム。
(付記3)
前記第1及び第2の記憶部は、それぞれ、前記複数の処理の各々について、当該処理が実行中に中断された場合の再開ポイントを示す再開情報を記憶し、
前記第2の制御装置は、
前記第1の制御装置の監視において前記第1の制御装置の異常を検出すると、前記第2の記憶部に格納された前記状態情報と前記再開情報とに基づいて、前記第1の制御装置による実行中に中断された処理に対応する再開ポイントの処理を実行する
ことを特徴とする、付記2記載の制御システム。
(付記4)
前記第2の制御装置は、
前記第1の制御装置の監視において前記第1の制御装置の異常を検出しない場合、前記第2の制御装置の動作を停止させる
ことを特徴とする、付記2又は付記3記載の制御システム。
(付記5)
前記第1の制御装置は、
前記転送記憶部の空き記憶領域が所定の閾値未満の場合、前記第2の制御装置に対して前記開始通知を送信し、
前記第2の制御装置は、
前記開始通知に応じて前記転送記憶部から読み出した前記状態情報を前記第2の記憶部に反映すると、前記第1の制御装置に対して応答を送信し、
前記第1の制御装置は、
前記第1の制御装置から前記応答を受信すると、前記第2の制御装置に対して前記第2の制御装置の動作を停止させる停止通知を送信する
ことを特徴とする、付記1〜4のいずれか1項記載の制御システム。
(付記6)
前記第1の制御装置は、
前記第1の制御装置と前記第2の制御装置とを接続する信号線を介して前記開始通知を送信し、
前記第2の制御装置は、
プロセッサをそなえ、
前記開始通知を受信すると前記プロセッサに割り込みを発生させる
ことを特徴とする、付記1〜5のいずれか1項記載の制御システム。
(付記7)
対象装置に対して複数の処理を所定の実行順序で実行する、冗長化された第1の制御装置及び第2の制御装置と、前記第1の制御装置と前記第2の制御装置との間に介設された転送記憶部と、をそなえる制御システムの処理方法であって、
前記第1の制御装置は、
前記複数の処理のうちの実行対象の処理の状態を示す状態情報を、前記複数の処理の実行に用いる情報を記憶する第1の記憶部、及び、前記転送記憶部にそれぞれ反映し、
前記第2の制御装置に対して前記第2の制御装置の動作を開始させる開始通知を送信し、
前記第2の制御装置は、
前記第2の制御装置の動作が停止した状態で前記第1の制御装置から前記開始通知を受信すると、前記第2の制御装置の動作を開始し、
前記転送記憶部から前記状態情報を読み出して、読み出した前記状態情報を、前記複数の処理の実行に用いる情報を記憶する第2の記憶部に反映する
ことを特徴とする、処理方法。
(付記8)
前記第2の制御装置は、
前記第2の制御装置の動作が停止した状態において、所定のタイミングで前記動作を開始し、
前記第1の制御装置の監視を行ない、
前記第1の制御装置の異常を検出すると、前記対象装置に対する前記複数の処理の実行を、前記第1の制御装置から引き継ぐ
ことを特徴とする、付記7記載の処理方法。
(付記9)
前記第1及び第2の記憶部は、それぞれ、前記複数の処理の各々について、当該処理が実行中に中断された場合の再開ポイントを示す再開情報を記憶し、
前記第2の制御装置は、
前記第1の制御装置の監視において前記第1の制御装置の異常を検出すると、前記第2の記憶部に格納された前記状態情報と前記再開情報とに基づいて、前記第1の制御装置による実行中に中断された処理に対応する再開ポイントの処理を実行する
ことを特徴とする、付記8記載の処理方法。
(付記10)
前記第2の制御装置は、
前記第1の制御装置の監視において前記第1の制御装置の異常を検出しない場合、前記第2の制御装置の動作を停止させる
ことを特徴とする、付記8又は付記9記載の処理方法。
(付記11)
前記第1の制御装置は、
前記転送記憶部の空き記憶領域が所定の閾値未満の場合、前記第2の制御装置に対して前記開始通知を送信し、
前記第2の制御装置は、
前記開始通知に応じて前記転送記憶部から読み出した前記状態情報を前記第2の記憶部に反映すると、前記第1の制御装置に対して応答を送信し、
前記第1の制御装置は、
前記第1の制御装置から前記応答を受信すると、前記第2の制御装置に対して前記第2の制御装置の動作を停止させる停止通知を送信する
ことを特徴とする、付記7〜10のいずれか1項記載の処理方法。
(付記12)
前記第1の制御装置は、
前記第1の制御装置と前記第2の制御装置とを接続する信号線を介して前記開始通知を送信し、
前記第2の制御装置は、
前記開始通知を受信すると、前記第2の制御装置がそなえるプロセッサに割り込みを発生させる
ことを特徴とする、付記7〜11のいずれか1項記載の処理方法。
1 サーバ
2,2−1,2−2 サービスプロセッサ
2a,3a CPU
2b,3b メモリ
2c 記憶部
2d インタフェース部
2e 入出力部
2f 記録媒体
3 システムボード
4 EEPROM
10a〜10d 信号線
20 制御プログラム
20a LANコントローラ
20b リアルタイムクロック
20c CPLD
20d ウォッチドッグタイマ
20e I2Cコントローラ
20f バススイッチ
20g GPIO
21 監視処理部
21a 自ボード監視部
21b サーバ監視部
22 二重化処理部
22a 自系監視部
22b 他系監視部
22c データ転送部
23 シーケンス処理部
23a シーケンステーブル
23b シーケンス管理キュー
23c 他系データ転送部
23d シーケンス管理部
40 データ転送キュー

Claims (7)

  1. 対象装置に対して複数の処理を所定の実行順序で実行する、冗長化された第1の制御装置及び第2の制御装置と、
    前記第1の制御装置と前記第2の制御装置との間に介設された転送記憶部と、をそなえ、
    前記第1の制御装置は、
    前記複数の処理の実行に用いる情報を記憶する第1の記憶部をそなえ、
    前記複数の処理のうちの実行対象の処理の状態を示す状態情報を、前記第1の記憶部及び前記転送記憶部にそれぞれ反映し、
    前記第2の制御装置に対して前記第2の制御装置の動作を開始させる開始通知を送信し、
    前記第2の制御装置は、
    前記複数の処理の実行に用いる情報を記憶する第2の記憶部をそなえ、
    前記第2の制御装置の動作が停止した状態で前記第1の制御装置から前記開始通知を受信すると、前記第2の制御装置の動作を開始するとともに、前記転送記憶部から前記状態情報を読み出して、読み出した前記状態情報を前記第2の記憶部に反映する
    ことを特徴とする、制御システム。
  2. 前記第2の制御装置は、
    前記第2の制御装置の動作が停止した状態において、所定のタイミングで前記動作を開始し、前記第1の制御装置の監視を行なうともに、前記第1の制御装置の異常を検出すると、前記対象装置に対する前記複数の処理の実行を、前記第1の制御装置から引き継ぐ
    ことを特徴とする、請求項1記載の制御システム。
  3. 前記第1及び第2の記憶部は、それぞれ、前記複数の処理の各々について、当該処理が実行中に中断された場合の再開ポイントを示す再開情報を記憶し、
    前記第2の制御装置は、
    前記第1の制御装置の監視において前記第1の制御装置の異常を検出すると、前記第2の記憶部に格納された前記状態情報と前記再開情報とに基づいて、前記第1の制御装置による実行中に中断された処理に対応する再開ポイントの処理を実行する
    ことを特徴とする、請求項2記載の制御システム。
  4. 前記第2の制御装置は、
    前記第1の制御装置の監視において前記第1の制御装置の異常を検出しない場合、前記第2の制御装置の動作を停止させる
    ことを特徴とする、請求項2又は請求項3記載の制御システム。
  5. 前記第1の制御装置は、
    前記転送記憶部の空き記憶領域が所定の閾値未満の場合、前記第2の制御装置に対して前記開始通知を送信し、
    前記第2の制御装置は、
    前記開始通知に応じて前記転送記憶部から読み出した前記状態情報を前記第2の記憶部に反映すると、前記第1の制御装置に対して応答を送信し、
    前記第1の制御装置は、
    前記第1の制御装置から前記応答を受信すると、前記第2の制御装置に対して前記第2の制御装置の動作を停止させる停止通知を送信する
    ことを特徴とする、請求項1〜4のいずれか1項記載の制御システム。
  6. 前記第1の制御装置は、
    前記第1の制御装置と前記第2の制御装置とを接続する信号線を介して前記開始通知を送信し、
    前記第2の制御装置は、
    プロセッサをそなえ、
    前記開始通知を受信すると前記プロセッサに割り込みを発生させる
    ことを特徴とする、請求項1〜5のいずれか1項記載の制御システム。
  7. 対象装置に対して複数の処理を所定の実行順序で実行する、冗長化された第1の制御装置及び第2の制御装置と、前記第1の制御装置と前記第2の制御装置との間に介設された転送記憶部と、をそなえる制御システムの処理方法であって、
    前記第1の制御装置は、
    前記複数の処理のうちの実行対象の処理の状態を示す状態情報を、前記複数の処理の実行に用いる情報を記憶する第1の記憶部、及び、前記転送記憶部にそれぞれ反映し、
    前記第2の制御装置に対して前記第2の制御装置の動作を開始させる開始通知を送信し、
    前記第2の制御装置は、
    前記第2の制御装置の動作が停止した状態で前記第1の制御装置から前記開始通知を受信すると、前記第2の制御装置の動作を開始し、
    前記転送記憶部から前記状態情報を読み出して、読み出した前記状態情報を、前記複数の処理の実行に用いる情報を記憶する第2の記憶部に反映する
    ことを特徴とする、処理方法。
JP2015111316A 2015-06-01 2015-06-01 制御システム及び同システムの処理方法 Active JP6468079B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015111316A JP6468079B2 (ja) 2015-06-01 2015-06-01 制御システム及び同システムの処理方法
US15/164,293 US10025682B2 (en) 2015-06-01 2016-05-25 Control system and processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015111316A JP6468079B2 (ja) 2015-06-01 2015-06-01 制御システム及び同システムの処理方法

Publications (2)

Publication Number Publication Date
JP2016224760A JP2016224760A (ja) 2016-12-28
JP6468079B2 true JP6468079B2 (ja) 2019-02-13

Family

ID=57398525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015111316A Active JP6468079B2 (ja) 2015-06-01 2015-06-01 制御システム及び同システムの処理方法

Country Status (2)

Country Link
US (1) US10025682B2 (ja)
JP (1) JP6468079B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018095179A1 (zh) * 2016-11-24 2018-05-31 天地融科技股份有限公司 一种数据传输方法及终端
CN110709785B (zh) * 2017-07-14 2023-08-04 大金工业株式会社 设备控制系统
CN108319529A (zh) * 2018-01-22 2018-07-24 济南浪潮高新科技投资发展有限公司 监控cpu的启动过程的方法及系统、cpld
JP2019149053A (ja) * 2018-02-27 2019-09-05 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
JP2020115109A (ja) * 2019-01-18 2020-07-30 Necプラットフォームズ株式会社 電源異常検出装置および電源異常検出方法
US11403158B2 (en) * 2020-07-23 2022-08-02 Fisher Controls International Llc Discrete logic safety systems for smart process control devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01159740A (ja) * 1987-12-17 1989-06-22 Yokogawa Electric Corp 二重化計算機システム
JP3537281B2 (ja) 1997-01-17 2004-06-14 株式会社日立製作所 共有ディスク型多重系システム
US6408399B1 (en) * 1999-02-24 2002-06-18 Lucent Technologies Inc. High reliability multiple processing and control system utilizing shared components
US6625750B1 (en) * 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
JP5077225B2 (ja) * 2006-02-27 2012-11-21 富士通株式会社 情報処理装置及び処理実行方法
JP2008242701A (ja) 2007-03-27 2008-10-09 Seiko Epson Corp データ転送制御装置及び電子機器
CN101790225A (zh) 2010-03-16 2010-07-28 华为终端有限公司 上网模块电源管理的方法和装置
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
WO2012023200A1 (ja) 2010-08-20 2012-02-23 富士通株式会社 情報処理システム、管理装置、および情報処理装置の管理方法
US20130074065A1 (en) * 2011-09-21 2013-03-21 Ibm Corporation Maintaining Consistency of Storage in a Mirrored Virtual Environment
JP5445572B2 (ja) 2011-12-16 2014-03-19 日本電気株式会社 コンピュータシステム、待機電力削減方法、及びプログラム
US20150234720A1 (en) * 2012-09-27 2015-08-20 Nec Corporation Standby system device, active system device, and load dispersion method
JP6278602B2 (ja) 2013-03-05 2018-02-14 三菱電機株式会社 高可用性システム

Also Published As

Publication number Publication date
US20160350193A1 (en) 2016-12-01
JP2016224760A (ja) 2016-12-28
US10025682B2 (en) 2018-07-17

Similar Documents

Publication Publication Date Title
JP6468079B2 (ja) 制御システム及び同システムの処理方法
US10102170B2 (en) System and method for providing input/output functionality by an I/O complex switch
US9582373B2 (en) Methods and systems to hot-swap a virtual machine
US9176834B2 (en) Tolerating failures using concurrency in a cluster
US9235484B2 (en) Cluster system
US8788879B2 (en) Non-volatile memory for checkpoint storage
JP6064237B2 (ja) メモリデータを移行するための方法、コンピュータ、および装置
US20130024855A1 (en) Check-point Based High Availability: Network Packet Buffering in Hardware
US10809997B2 (en) Information processing apparatus and program update control method
US10725883B2 (en) Externally triggered maintenance of state information of virtual machines for high availablity operations
US20170199760A1 (en) Multi-transactional system using transactional memory logs
US10725804B2 (en) Self triggered maintenance of state information of virtual machines for high availability operations
JP2011158995A (ja) コンピュータ装置及びそのbiosアップデート方法
US20160055030A1 (en) Information processing device, information processing method, and computer program product
JP6451522B2 (ja) 情報システム、コンピュータ、方法、およびプログラム
US20170054597A1 (en) Multi-computer system, manager, and computer-readable recording medium having stored therein a managing program
EP2691853B1 (en) Supervisor system resuming control
JP5970846B2 (ja) 計算機システム及び計算機システムの制御方法
JP6424134B2 (ja) 計算機システム及び計算機システムの制御方法
JP5342699B2 (ja) 仮想計算機制御装置、仮想計算機制御システム、仮想計算機制御装置の仮想計算機制御方法および仮想計算機制御プログラム
US20100011241A1 (en) Information processing apparatus and domain dynamic reconfiguration processing method
JP2019057267A (ja) 情報処理装置
JP5562454B1 (ja) 冗長システム用サーバ
JP2015052963A (ja) ストレージ装置の試験装置、試験方法、および試験プログラム
JP2013054585A (ja) 画像形成装置制御方法および画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181231

R150 Certificate of patent or registration of utility model

Ref document number: 6468079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150