JP2019149053A - 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム Download PDF

Info

Publication number
JP2019149053A
JP2019149053A JP2018033890A JP2018033890A JP2019149053A JP 2019149053 A JP2019149053 A JP 2019149053A JP 2018033890 A JP2018033890 A JP 2018033890A JP 2018033890 A JP2018033890 A JP 2018033890A JP 2019149053 A JP2019149053 A JP 2019149053A
Authority
JP
Japan
Prior art keywords
control
control command
sci
master
information processing
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.)
Pending
Application number
JP2018033890A
Other languages
English (en)
Inventor
豪 遠藤
Takeshi Endo
豪 遠藤
浩二 成廣
Koji Naruhiro
浩二 成廣
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 JP2018033890A priority Critical patent/JP2019149053A/ja
Priority to US16/248,846 priority patent/US20190266061A1/en
Publication of JP2019149053A publication Critical patent/JP2019149053A/ja
Pending legal-status Critical Current

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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2005Error 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 interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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
    • 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
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • 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
    • 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/2033Failover techniques switching over of hardware resources
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

【課題】マスターが故障した場合に、スレーブが再実行不可の制御コマンドを再実行することを防ぎ、サーバ運用の停止を防ぐこと。【解決手段】マスターのSCIドライバ2cが、スレーブが正常か否かを判定し、スレーブが正常な場合には、マスターのSCIボード制御部2eが制御コマンドをスレーブに転送する。そして、スレーブのSCIボード制御部2eが制御コマンドを受信し、SCIシャーシ制御部2dが本体4に制御コマンドを転送する。【選択図】図4

Description

本発明は、情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
情報処理を行うサーバ(情報処理装置)は、情報処理を行う本体の他に本体の初期化等の制御を行うSVP(Service Processor)を有する。図15は、サーバのハードウェア構成を示す図である。図15に示すように、サーバ91は、SVP−0及びSVP−1で表されるSVP92と、本体4と、スイッチ5とを有する。
SVP92は冗長化されており、例えばSVP−0がマスター(Master)として通常運用時に動作し、SVP−1がスレーブ(Slave)としてマスターが故障した場合に動作する。SVP92は、メモリ21と、CPU(Central Processing Unit)22と、デュアルNIC(Dual Network Interface Card)23と、PCIe(Peripheral Component Interconnect Express)93とを有する。
メモリ21は、本体4を制御する制御プログラムを記憶した不揮発性記憶装置である。CPU22は、メモリ21から制御プログラムを読み出して実行する中央処理装置である。デュアルNIC23は、他のSVP92との二重化通信に用いられる通信装置である。PCIe93は、SVP92と本体4を接続する接続装置である。
マスターからスレーブへの切り替えのために、マスターとスレーブはデュアルNIC23を用いて常時生存監視を行うとともに、マスターはスレーブに本体4の制御情報を転送し、処理の同期を行う。
本体4は、SCI(System Control Interface)41と、MEM42と、CPU43と、IOP(Input Output Processor)44と、スキャンIF45とを有する。SCI41は、SVP92から制御コマンドを受信して本体4を制御するコントローラである。MEM42は、本体4で実行されるプログラムや実行途中結果等を記憶するRAM(Random Access Memory)である。CPU43は、MEM42からプログラムを読み出して実行する中央処理装置である。
IOP(Input Output Processor)44は、本体4の入出力制御を行うプロセッサである。スキャンIF45は、SCI41が受信した制御コマンドを実行する装置である。スキャンIF45は、例えばI2C、JTAG(Joint Test Action Groupの規格に基づく装置)である。
スイッチ5は、本体4に接続するSVP92をSVP−0とSVP−1の間で切り替える。図15は、SVP−0が本体4に接続されている場合を示す。
図16は、制御プログラムの機能構成を示す図である。図16に示すように、制御プログラム94には、アプリ9aと、SCIサービス9bと、SCIドライバ9cとが含まれる。アプリ9aは、本体4を制御するアプリケーションである。SCIサービス9bは、SCI41と通信するためのSCI制御を管理するアプリケーションである。SCIドライバ9cは、SCI制御を行うドライバである。なお、アプリ9aとSCIサービス9bはアプリケーション層で動作し、SCIドライバ9cは、カーネル層で動作する。
SCIサービス9bは、デュアルNIC23を用いて他のSVP92と通信することで相互に監視を行う。マスターが故障した場合には、スレーブの制御プログラム94は、マスターの制御プログラム94との通信が切れることで生存監視により故障を検出し、マスターの制御プログラム94に代わって本体4の制御を行う。また、マスターのSCIサービス9bは、スレーブのSCIサービス9bに本体4の制御情報を転送することで処理の同期を行う。
制御プログラム94は、制御コマンドを制御シーケンス単位でまとめたハードウェアマクロを実行することで本体4を制御する。図17は、ハードウェアマクロ実行までの流れを示す図である。図17に示すように、ハードウェアマクロ6にはマクロ番号が与えられ、アプリ9aはマクロ番号でハードウェアマクロ6の実行を指示する。
SCIサービス9bは、ハードウェアマクロ6に含まれる制御コマンドを指定してSCIドライバ9cに実行を指示する。図17において、例えばアプリ9aによりマクロ番号aのマクロの実行が指示されると、SCIサービス9bは、制御コマンド#1〜#iの実行を制御コマンド単位でSCIドライバ9cに指示する。SCIドライバ9cは、制御コマンドをPCIパケットに変換し、PCIe93を介してSCI41に転送する。
図18は、マクロ番号による同期を説明するための図である。図18に示すように、マスターのSCIサービス9bは、故障時に備え、実行するハードウェアマクロ6のマクロ番号を、デュアルNIC23を用いてスレーブのSCIサービス9bに転送する。スレーブのSCIサービス9bはマクロ番号を受信すると、実行中のハードウェアマクロ6のマクロ番号としてキャッシュする。マスターの故障が検出されると、スレーブのSCIサービス9bは、キャッシュしたマクロ番号を用いて本体4の制御を引き継ぐ。
なお、ドメイン動的再構成処理を行う稼動系のサービスプロセッサがドメイン動的再構成処理を実行中に故障したときに、待機系のサービスプロセッサが稼動系に切り替わって、該実行中のドメイン動的再構成処理を引き継いで実行する技術がある。ここで、ドメイン動的再構成とは、複数のシステムボードからなるドメインを動的に再構成することである。
また、情報処理装置の処理の実行を管理する管理装置が別の管理装置に変更された場合に、情報処理装置の処理を続行させる技術がある。この技術では、情報処理装置は、複数の処理ステップを含む処理シーケンスを実行する。管理装置は、情報処理装置に処理ステップを所定の順で実行させることで、処理シーケンスの実行を管理する。管理装置が処理シーケンスの実行管理を別の管理装置から引き継いだとき、管理装置の情報取得手段は、処理シーケンスの進行状態を示す状態情報を情報処理装置から取得する。管理装置の制御手段は、情報取得手段によって取得された状態情報に基づいて、処理シーケンスの未実行の処理ステップの実行を情報処理装置に継続させる。
国際公開第2008/111137号 国際公開第2012/023200号
図19は、マクロ番号による同期で発生する問題を説明するための図である。制御コマンドの中には、ハードウェアをリセットするコマンドが存在し、再実行することで不具合が発生するコマンドが含まれる。ハードウェアマクロ6の中で再実行不可の制御コマンドを実行した後でハードウェアマクロ6に含まれる残りの制御コマンドを実行中にマスターが故障したとする。すると、スレーブはキャッシュしたマクロ番号を用いてハードウェアマクロ6の先頭の制御コマンドから実行するため、再実行不可の制御コマンドが再度実行され、サーバ91の運用を継続することができないという問題がある。
図19では、制御コマンド#2が再実行不可の制御コマンドであるとし、制御コマンド#2の実行後にマスターが故障すると、制御コマンド#2はスレーブによって再実行される。
本発明は、1つの側面では、SVP切り替え時に、再実行不可の制御コマンドが再実行されることを防ぎ、サーバ運用の停止を防ぐことを目的とする。
1つの態様では、情報処理装置は、情報処理を行う本体装置と該本体装置を制御する複数の制御装置とを備える。前記本体装置を制御するマスターとして動作する第1の制御装置は、判定部と第1の転送部とを有する。前記判定部は、前記第1の制御装置に異常が発生するとマスターの機能を引き継ぐスレーブとして動作する第2の制御装置が正常であるか否かを判定する。前記第1の転送部は、前記判定部が前記第2の制御装置を正常であると判定した場合、前記第2の制御装置に前記本体装置の制御に用いられる制御コマンドを転送する。前記第2の制御装置は、前記第1の転送部が転送した制御コマンドを受信する受信部と、前記受信部が受信した制御コマンドを前記本体装置に転送する第2の転送部とを有する。
1つの側面では、本発明は、SVP切り替え時に、再実行不可の制御コマンドが再実行されることを防ぎ、サーバ運用の停止を防ぐことができる。
図1は、実施例に係るサーバのハードウェア構成を示す図である。 図2は、制御プログラムの機能構成を示す図である。 図3は、制御コマンドの実行の流れを説明するための図である。 図4は、カーネル層の特徴を説明するための図である。 図5は、通常運用時の制御コマンドの流れを示す図である。 図6は、通常運用時の制御コマンドの実行の流れを示すシーケンス図である。 図7は、マクロ番号の転送に用いられるパケットのデータ構造の一例を示す図である。 図8は、DMA転送される制御コマンドパケットのデータ構造の一例を示す図である。 図9は、CPUへの割り込みの要因を示す図である。 図10は、マスター故障時の制御コマンドの流れを示す図である。 図11は、マスター故障時の制御コマンドの実行の流れを示すシーケンス図である。 図12は、スレーブ故障時の制御コマンドの流れを示す図である。 図13は、スレーブ故障時の制御コマンドの実行の流れを示すシーケンス図である。 図14は、CPLDが有するレジスタを示す図である。 図15は、サーバのハードウェア構成を示す図である。 図16は、制御プログラムの機能構成を示す図である。 図17は、ハードウェアマクロ実行までの流れを示す図である。 図18は、マクロ番号による同期を説明するための図である。 図19は、マクロ番号による同期で発生する問題を説明するための図である。
以下に、本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るサーバのハードウェア構成について説明する。図1は、実施例に係るサーバのハードウェア構成を示す図である。図1に示すように、サーバ1は、2台のSVP2と、PCIeスイッチ3と、本体4と、スイッチ5とを有する。
2台のSVP2のうち1台はマスターとして通常運用時に動作し、他の1台はスレーブとしてマスターが故障した場合に動作する。SVP2は、メモリ21と、CPU22と、デュアルNIC23と、シャーシPCIe24と、ボードPCIe25と、CPLD(Complex Programmable Logic Device)26とを有する。
メモリ21は、本体4を制御する制御プログラムを記憶した不揮発性記憶装置である。CPU22は、メモリ21から制御プログラムを読み出して実行する中央処理装置である。なお、制御プログラムは、HDD(Hard Disc Drive)からRAMに読み出され、RAMから読み出されて実行されてもよい。また、制御プログラムは、例えばDVDに記憶され、DVDから読み出されてSVP2にインストールされてもよい。あるいは、制御プログラムは、ネットワークで接続された他のサーバのHDDから読み出されてSVP2にインストールされてもよい。
デュアルNIC23は、他のSVP2との二重化通信に用いられる通信装置である。シャーシPCIe24は、SVP2と本体4をPCIe接続する。ボードPCIe25は、他のSVP2のボードPCIe25とPCIeスイッチ3を介してPCIe接続する。CPLD26は、スイッチ5を操作して本体4をいずれかのSVP2に接続する。
PCIeスイッチ3は、2つのボードPCIe25を接続するスイッチである。PCIeスイッチ3は、2つのNT(Non Transparent)ポート31を有する。一方のNTポート31は一方のボードPCIe25と接続し、他方のNTポート31は他方のボードPCIe25と接続する。PCIeスイッチ3を介した通信は、デュアルNIC23を介した通信よりも高速である。
本体4は、SCI41と、MEM42と、CPU43と、IOP44と、スキャンIF45とを有する。SCI41は、SVP2から制御コマンドを受信して本体4を制御するコントローラである。MEM42は、本体4で実行されるプログラムや実行途中結果等を記憶するRAMである。CPU43は、MEM42からプログラムを読み出して実行する中央処理装置である。
IOP44は、本体4の入出力制御を行うプロセッサである。スキャンIF45は、SCI41が受信した制御コマンドを実行する装置である。スキャンIF45は、例えばI2C、JTAGである。
なお、ここでは、説明の便宜上MEM42、CPU43及びIOP44を1つだけ示したが、本体4は、複数のMEM42、CPU43及びIOP44を有してよい。
スイッチ5は、本体4に接続するSVP2を2つのSVP2の間で切り替える。図1は、左のSVP2が本体4に接続されている場合を示す。
次に、SVP2で実行される制御プログラムの機能構成について説明する。図2は、制御プログラムの機能構成を示す図である。図2に示すように、制御プログラム7に含まれるモジュールのうちアプリケーション層で実行されるモジュールには、制御プロセス2aとSCIサービス2bがあり、カーネル層で実行されるモジュールには、SCIドライバ2cとSCIシャーシ制御部2dとSCIボード制御部2eとがある。
制御プロセス2aは、本体4を制御するアプリ9aのプロセスである。SCIサービス2bは、SCI41と通信するためのSCI制御を管理するアプリケーションである。SCIサービス2bは、ハードマクロ部3aと、制御コマンド部3bと、デュアル同期部3cとを有する。
ハードマクロ部3aは、制御プロセス2aにより指定されたハードウェアマクロ6を実行する。制御コマンド部3bは、ハードウェアマクロ6に含まれる制御コマンドをSCIドライバ2cに渡す。デュアル同期部3cは、デュアルNIC23を用いて他のSVP2と通信する。
SCIサービス2bは、マスターで動作する場合、故障時に備え、実行するハードウェアマクロ6のマクロ番号をデュアルNIC23を用いてスレーブのSCIサービス2bに転送する。スレーブのSCIサービス2bは、マクロ番号を受信すると、実行中のハードウェアマクロ6のマクロ番号としてキャッシュする。また、スレーブのSCIサービス2bは、ハードウェアマクロ6を実行中のマスターが故障すると、キャッシュしたマクロ番号に基づいて、スレーブのSCIドライバ2cが本体4に転送した制御コマンドの次の制御コマンドから最後の制御コマンドまで順にSCIドライバ2cに渡す。
SCIドライバ2cは、SCI制御を行うドライバである。SCIドライバ2cは、マスターで動作する場合、スレーブが故障していないときは、スレーブに制御コマンドを転送する。SCIドライバ2cは、スレーブに制御コマンドを転送する場合には、SCIボード制御部2eを用いる。SCIボード制御部2eは、制御コマンドを、ボードPCIe25を用いてスレーブに転送する。
SCIドライバ2cは、マスターで動作する場合、スレーブが故障しているときは、本体4に制御コマンドを転送する。SCIドライバ2cは、本体4に制御コマンドを転送する場合には、SCIシャーシ制御部2dを用いる。SCIシャーシ制御部2dは、制御コマンドをシャーシPCIe24を用いてSCI41に転送する。
SCIドライバ2cは、スレーブで動作する場合、マスターが故障していないときは、SCIボード制御部2eを介してマスターから制御コマンドを受け取り、SCIシャーシ制御部2dを介して本体4に制御コマンドを転送する。SCIボード制御部2eは、マスターが転送した制御コマンドをボードPCIe25から受信する。SCIシャーシ制御部2dは、マスターから転送された制御コマンドをSCIドライバ2cを介してSCIボード制御部2eから受け取り、シャーシPCIe24を用いてSCI41に転送する。
SCIドライバ2cは、スレーブで動作する場合、ハードウェアマクロ6を実行中のマスターが故障したときは、マスターへ遷移し、自装置のSCIサービス2bから制御コマンドを受け取り、SCIシャーシ制御部2dを介して本体4に制御コマンドを転送する。
図3は、制御コマンドの実行の流れを説明するための図である。マスター及びスレーブが正常である通常運用時は、実線で示すように、マスターのSCIドライバ2cが、マスターのSCIサービス2bから制御コマンドコードを受信し(t1)、SCIボード制御部2eでスレーブへ制御コマンドを転送する(t2)。ここで、制御コマンドコードは制御コマンドを識別する番号である。そして、スレーブは、マスターから制御コマンドコードを受信し(t3)、スレーブのSCIドライバ2cが、SCIシャーシ制御部2dでSCI41へ制御コマンドを転送する(t4)。
また、マスターが故障した場合には、破線で示すように、マスターはスレーブに遷移すし(t5)、スレーブはマスターへ遷移する(t6)。また、スレーブで異常が発生した場合には、一点鎖線で示すように、スレーブはマスターへ異常を通知し(t7)、マスターのSCIドライバ2cはSCIシャーシ制御部2dでSCI41へ制御コマンドを転送する(t8)。なお、スレーブに続いてマスターでも異常が発生すると、マスターのSCIドライバ2cはSCI制御を中止する(t9)。
図4は、カーネル層の特徴を説明するための図である。図4に示すように、マスターでは、SCIドライバ2cは、制御コマンドの実行を検出すると(ステップS21)、スレーブが故障であるか否かを判定する(ステップS22)。そして、スレーブが故障していない場合には、SCIボード制御部2eが、ボードPCIe25へ制御コマンドをDMA(Direct Memory Access)転送する(ステップS23)。一方、スレーブが故障している場合には、SCIシャーシ制御部2dが、シャーシPCIe24へ制御コマンドをDMA転送する(ステップS24)。
また、スレーブでは、SCIドライバ2cは、制御コマンドの実行を検出すると(ステップS31)、マスターが故障であるか否かを判定する(ステップS32)。そして、マスターが故障していない場合には、SCIドライバ2cは、コマンド待ちをし(ステップS33)、ステップS31へ戻る。一方、マスターが故障している場合には、SCIシャーシ制御部2dが、シャーシPCIe24へ制御コマンドをDMA転送する(ステップS35)。また、SCIボード制御部2eは、ボードPCIe25からDMA転送を受信する(ステップS34)と、SCIドライバ2cを介してSCIシャーシ制御部2dへ制御コマンドを渡す。そして、SCIシャーシ制御部2dは、シャーシPCIe24へ制御コマンドをDMA転送する(ステップS35)。
次に、通常運用時の制御コマンドの流れについて説明する。図5は、通常運用時の制御コマンドの流れを示す図である。制御コマンドの流れは太い矢印で示される。図5に示すように、マスターのSCIドライバ2cは、制御コマンドをボードPCIe25へ渡す。ボードPCIe25は、PCIeスイッチ3へ制御コマンドを転送する。PCIeスイッチ3は、スレーブのボードPCIe25へ制御コマンドを転送する。スレーブのボードPCIe25は、SCIボード制御部2eへ制御コマンドを渡す。SCIボード制御部2eは、SCIドライバ2cへ制御コマンドを渡す。SCIドライバ2cは、シャーシPCIe24へ制御コマンドを渡す。シャーシPCIe24は、SCI4141へ制御コマンドを転送する。
図6は、通常運用時の制御コマンドの実行の流れを示すシーケンス図である。図6に示すように、マスターの制御プロセス2aは、ハードウェアマクロ6を実行する(ステップS41)。そして、マスターのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をデュアルNIC23を用いてスレーブに転送する(ステップS42)。スレーブのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をキャッシュする(ステップS43)。
そして、マスターのSCIサービス2bは、ハードウェアマクロ6に定義された順に制御コマンドをSCIドライバ2cをコールすることで実行する(ステップS44)。マスターのSCIドライバ2cは、制御コマンドを含む制御コマンドパケットをボードPCIe25からスレーブへ転送する(ステップS45)。
スレーブのSCIボード制御部2eは、SCI割り込みにより割り込みを検出し(ステップS46)、制御コマンドパケットから制御コマンドを抽出する(ステップS47)。そして、スレーブのSCIボード制御部2eは、制御コマンドをキャッシュし(ステップS48)、制御コマンドをSCIドライバコールで本体4へ転送する(ステップS49)。スレーブのSCIドライバ2cは、シャーシPCIe24から本体4へ制御コマンドを転送する(ステップS50)。
このように、通常運用時に、マスターのSCIドライバ2cは、スレーブに制御コマンドを転送し、スレーブのSCIドライバ2cが本体4へ制御コマンドを転送する。したがって、マスターが故障した場合に、スレーブは、次に本体4へ転送する制御コマンドを特定することができ、再実行不可の制御コマンドの再実行を防ぐことができる。
図7は、マクロ番号の転送に用いられるパケットのデータ構造の一例を示す図である。図7に示すように、パケットには、TCP(Transmission Control Protocol)/IP(Internet Protocol)ヘッダと、実行制御プロセス番号と、実行マクロ情報とが含まれる。実行制御プロセス番号は、ハードウェアマクロ6を実行する制御プロセス2aの番号である。複数の制御プロセス2aが同時に実行されている場合があり、スレーブは、実行制御プロセス番号を用いて制御プロセス2aを特定する。実行マクロ情報は、ハードウェアマクロ6のマクロ番号及びマクロパラメータ情報である。
図8は、DMA転送される制御コマンドパケットのデータ構造の一例を示す図である。図8に示すように、DMA転送される制御コマンドパケットには、DMAヘッダと、対象ユニットと、コマンド種と、コマンドデータとが含まれる。対象ユニットは、制御コマンドの実行対象のユニットを識別するコードである。コマンド種は、制御コマンドを識別するコード、及び、制御コマンドがI2CのコマンドであるかJTAGのコマンドであるかを識別するコードである。コマンドデータは、制御コマンドのデータである。
図9は、CPU22への割り込みの要因を示す図である。図9に示すように、割り込み要因には、SCI割り込みとシステム割込みがある。SCI割り込みは、DMA関連の完了を示す割り込みである。システム割り込みは、SCI異常及びSVP異常を示す割り込みである。
次に、マスター故障時の制御コマンドの流れについて説明する。図10は、マスター故障時の制御コマンドの流れを示す図である。図10に示すように、スレーブの制御プロセス2aは、SCIサービス2bにハードウェアマクロ6の実行を指示する。SCIサービス2bは、指示されたハードウェアマクロ6に含まれる制御コマンドを先頭から順にSCIドライバ2cに渡す。SCIドライバ2cは、シャーシPCIe24に制御コマンドを渡す。シャーシPCIe24は、SCI41に制御コマンドを転送する。
図11は、マスター故障時の制御コマンドの実行の流れを示すシーケンス図である。なお、図11では、マスターがハードウェアマクロ実行中に故障した場合を示す。図11に示すように、マスターの制御プロセス2aは、ハードウェアマクロ6を実行する(ステップS61)。そして、マスターのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をデュアルNIC23を用いてスレーブに転送する(ステップS62)。スレーブのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をキャッシュする(ステップS63)。
そして、マスターのSCIサービス2bは、ハードウェアマクロ6に定義された順に制御コマンドをSCIドライバ2cをコールすることで実行する(ステップS64)。マスターのSCIドライバ2cは、制御コマンドを含む制御コマンドパケットをボードPCIe25からスレーブへ転送する(ステップS65)。そして、ステップ64とステップ65を繰り返すうちに、マスターが故障する。
すると、スレーブがマスターの故障を検出する。なお、スレーブは、デュアルNIC23を用いた生存監視によりマスターの故障を検出する。あるいは、スレーブは、次の制御コマンドが転送されない、制御コマンドの実行完了通知に対する応答がない等によりマスターの故障を検出する。
マスターの故障が検出されると、スレーブのSCIサービス2bは、キャッシュしたマクロ番号から実行中のハードウェアマクロ6を特定する(ステップS66)。そして、スレーブのSCIサービス2bは、SCIシャーシ制御部2dが転送した制御コマンドをキャッシュから取得し(ステップS67)、取得した制御コマンドの次の制御コマンドを本体4へ転送するためにSCIドライバ2cをコールする(ステップS68)。コールされたSCIドライバ2cは、シャーシPCIe24から本体4へ制御コマンドを転送する(ステップS69)。
このように、マスターが故障すると、スレーブのSCIサービス2bは、SCIボード制御部2eから受け取った制御コマンドをキャッシュから取得し、取得した制御コマンドの次の制御コマンドから本体4へ転送する。したがって、スレーブは、再実行不可の制御コマンドの再実行を防ぐことができる。
次に、スレーブ故障時の制御コマンドの流れについて説明する。図12は、スレーブ故障時の制御コマンドの流れを示す図である。図12に示すように、マスターのSCIドライバ2cは、シャーシPCIe24に制御コマンドを渡す。シャーシPCIe24は、SCI41に制御コマンドを転送する。
図13は、スレーブ故障時の制御コマンドの実行の流れを示すシーケンス図である。なお、図13では、マスターがハードウェアマクロ実行中にスレーブが故障した場合を示す。図13に示すように、マスターの制御プロセス2aは、ハードウェアマクロ6を実行する(ステップS71)。そして、マスターのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をデュアルNIC23を用いてスレーブに転送する(ステップS72)。スレーブのSCIサービス2bは、ハードウェアマクロ6のマクロ番号をキャッシュする(ステップS73)。
そして、マスターのSCIサービス2bは、ハードウェアマクロ6に定義された順に制御コマンドをSCIドライバ2cをコールすることで実行する(ステップS74)。マスターのSCIドライバ2cは、制御コマンドを含む制御コマンドパケットをボードPCIe25からスレーブへ転送する(ステップS75)。そして、ステップ74とステップ75を繰り返すうちに、スレーブが故障する。
すると、マスターがスレーブの故障を検出する。なお、マスターは、デュアルNIC23を用いた生存監視によりスレーブの故障を検出する。あるいは、マスターは、制御コマンドの実行完了通知がない等によりスレーブの故障を検出する。
スレーブの故障が検出されると、マスターのSCIサービス2bは、制御コマンドを本体4へ転送するために切り替えを実行する(ステップS76)。すると、マスターのSCIドライバ2cは、CPLD26でスレーブからマスターへシャーシPCIe24を切り替える(ステップS77)。そして、マスターのSCIドライバ2cは、ボードPCIe25からシャーシPCIe24へ切り替える(ステップS78)。
そして、マスターのSCIサービス2bは、制御コマンドを本体4へ転送するためSCIドライバ2cをコールする(ステップS79)。すると、マスターのSCIドライバ2cは、シャーシPCIe24から本体4へ制御コマンドを転送する(ステップS80)。
このように、スレーブが故障すると、マスターのSCIドライバ2cがシャーシPCIe24から本体4へ制御コマンドを転送するので、サーバ1は、運用を継続することできる。
図14は、CPLD26が有するレジスタを示す図である。図14に示すように、CPLD26は、PCIセレクトレジスタとステータスレジスタを有する。PCIセレクトレジスタは、スイッチ5の接続を切り替えるために用いられる。PCIセレクトレジスタが0に設定されると、シャーシPCIe24が選択され、マスターから制御コマンドが本体4へ転送され、PCIセレクトレジスタが1に設定されると、ボードPCIe25が選択され、スレーブから制御コマンドが本体4へ転送される。ステータスレジスタは、SVP2が正常か否かを示す。
上述してきたように、実施例では、マスターのSCIドライバ2cがスレーブが正常か否かを判定し、スレーブが正常な場合には、マスターのSCIボード制御部2eが制御コマンドをスレーブに転送する。そして、スレーブのSCIボード制御部2eが制御コマンドを受信し、SCIシャーシ制御部2dが本体4に制御コマンドを転送する。したがって、マスターが故障した場合に、スレーブは、次に本体4に転送する制御コマンドを特定することができ、再実行不可の制御コマンドが再実行されることを防ぐことができる。このため、サーバ1は、運用を継続することできる。
また、実施例では、スレーブが正常でない場合には、マスターのSCIシャーシ制御部2dが制御コマンドを本体4に転送するので、スレーブが故障した場合にも本体4を制御することができる。
また、実施例では、マスターが故障すると、スレーブのSCIシャーシ制御部2dは、本体4に転送済みの次の制御コマンドから本体4に制御コマンドを転送するので、再実行不可の制御コマンドが再実行されることを防ぐことができる。
また、実施例では、CPLD26が本体4に接続されるSVP2をマスターとスレーブとの間で切り替え、本体4に接続されるSVP2に対応してSCIドライバ2cがSCIボード制御部2e又はSCIシャーシ制御部2dを用いて制御コマンドを転送する。したがって、本体4は確実に制御コマンドを受信することができる。
また、実施例では、SCIボード制御部2eは、PCIeスイッチ3を介してスレーブへ制御コマンドを転送するので、高速に制御コマンドを転送することができる。
なお、実施例では、本体4と2つのSVP2の一方との接続をCPLD26を用いて切り替える場合について説明したが、他のデバイスを用いて当該接続を切り替えてもよい。また、実施例では、PCIeを用いてマスターとスレーブの間の通信を行う場合について説明したが、他の通信デバイスを用いてマスターとスレーブの間の通信を行ってもよい。また、実施例では、本体4の制御にSCI41を用いる場合について説明したが、他のコントローラを用いて本体4を制御してもよい。
1,91 サーバ
2,92 SVP
2a 制御プロセス
2b,9b SCIサービス
2c,9c SCIドライバ
2d SCIシャーシ制御部
2e SCIボード制御部
3 PCIeスイッチ
3a ハードマクロ部
3b 制御コマンド部
3c デュアル同期部
4 本体
5 スイッチ
6 ハードウェアマクロ
7,94 制御プログラム
9a アプリ
21 メモリ
22 CPU
23 デュアルNIC
24 シャーシPCIe
25 ボードPCIe
26 CPLD
31 NTポート
41 SCI
42 MEM
43 CPU
44 IOP
45 スキャンIF
93 PCIe

Claims (7)

  1. 情報処理を行う本体装置と該本体装置を制御する複数の制御装置を備えた情報処理装置において、
    前記本体装置を制御するマスターとして動作する第1の制御装置は、
    前記第1の制御装置に異常が発生するとマスターの機能を引き継ぐスレーブとして動作する第2の制御装置が正常であるか否かを判定する判定部と、
    前記判定部が前記第2の制御装置を正常であると判定した場合、前記第2の制御装置に前記本体装置の制御に用いられる制御コマンドを転送する第1の転送部とを有し、
    前記第2の制御装置は、
    前記第1の転送部が転送した制御コマンドを受信する受信部と、
    前記受信部が受信した制御コマンドを前記本体装置に転送する第2の転送部と
    を有することを特徴とする情報処理装置。
  2. 前記第1の制御装置は、
    前記判定部が前記第2の制御装置を正常でないと判定した場合、前記制御コマンドを前記本体装置に転送する第3の転送部を
    さらに有することを特徴とする請求項1記載の情報処理装置。
  3. 前記本体装置は、制御コマンドにより制御され、
    前記第2の転送部は、前記第1の制御装置に異常が発生すると、前記本体装置に転送した制御コマンド以後の制御コマンドを前記本体装置に転送することを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記第1の制御装置は、
    前記本体装置との接続を、前記第1の制御装置と前記第2の制御装置との間で切り替える切替部と、
    前記切替部による切り替えに対応して前記第3の転送部又は前記第1の転送部により制御コマンドを転送する選択転送部と
    をさらに有することを特徴とする請求項2記載の情報処理装置。
  5. 前記第1の転送部は、専用の通信経路を介して前記第2の制御装置に制御コマンドを転送することを特徴とする請求項1〜4のいずれか1つ記載の情報処理装置。
  6. 情報処理を行う本体装置と該本体装置を制御する複数の制御装置とを備えた情報処理装置の制御方法おいて、
    前記本体装置を制御するマスターとして動作する第1の制御装置は、
    前記第1の制御装置に異常が発生するとマスターの機能を引き継ぐスレーブとして動作する第2の制御装置が正常であるか否かを判定し、
    前記第2の制御装置を正常であると判定した場合、前記第2の制御装置に前記本体装置の制御に用いられる制御コマンドを転送し、
    前記第2の制御装置は、
    前記第1の制御装置が転送した制御コマンドを受信し、
    受信した制御コマンドを前記本体装置に転送する
    ことを特徴とする情報処理装置の制御方法。
  7. 情報処理を行う本体装置を制御する複数の制御装置のそれぞれで実行される情報処理装置の制御プログラムおいて、
    前記本体装置を制御するマスターとして動作する第1の制御装置が有するコンピュータに、
    前記第1の制御装置に異常が発生するとマスターの機能を引き継ぐスレーブとして動作する第2の制御装置が正常であるか否かを判定し、
    前記第2の制御装置を正常であると判定した場合、前記第2の制御装置に前記本体装置の制御に用いられる制御コマンドを転送する処理を実行させ、
    前記第2の制御装置が有するコンピュータに、
    前記第1の制御装置が転送した制御コマンドを受信し、
    受信した制御コマンドを前記本体装置に転送する処理を実行させることを特徴とする情報処理装置の制御プログラム。
JP2018033890A 2018-02-27 2018-02-27 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム Pending JP2019149053A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018033890A JP2019149053A (ja) 2018-02-27 2018-02-27 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
US16/248,846 US20190266061A1 (en) 2018-02-27 2019-01-16 Information processing apparatus, control method for information processing apparatus, and computer-readable recording medium having stored therein control program for information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018033890A JP2019149053A (ja) 2018-02-27 2018-02-27 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Publications (1)

Publication Number Publication Date
JP2019149053A true JP2019149053A (ja) 2019-09-05

Family

ID=67685150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018033890A Pending JP2019149053A (ja) 2018-02-27 2018-02-27 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Country Status (2)

Country Link
US (1) US20190266061A1 (ja)
JP (1) JP2019149053A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4085305A4 (en) * 2020-01-01 2024-05-08 Selec Controls Private Ltd MODULAR AND CONFIGURABLE ELECTRICAL EQUIPMENT GROUP

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
US20080126854A1 (en) * 2006-09-27 2008-05-29 Anderson Gary D Redundant service processor failover protocol
EP2608046A1 (en) * 2010-08-18 2013-06-26 Fujitsu Limited Computer management device, computer management system, and computer system
JP6468079B2 (ja) * 2015-06-01 2019-02-13 富士通株式会社 制御システム及び同システムの処理方法

Also Published As

Publication number Publication date
US20190266061A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
CN110312999B (zh) 基于软件配置/策略分发的PCIe盘阵列的动态划分
US9678842B2 (en) PCIE switch-based server system, switching method and device
JP4529767B2 (ja) クラスタ構成コンピュータシステム及びその系リセット方法
JP2006072591A (ja) 仮想計算機制御方法
JPH0619743B2 (ja) コンピユータ・ネツトワークにおける適用業務セッションの保存方法、制御方法及び保存装置
JPH0616276B2 (ja) 通信セツシヨン回復方法
JPH06250983A (ja) 負荷平衡または非同期データ移動のためのコンピュータ・システム及び方法
JP2006195821A (ja) 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JPH06202978A (ja) 論理経路スケジューリング装置及び実行方法
JP3988146B2 (ja) マルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラム
WO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP5549733B2 (ja) 計算機管理装置、計算機管理システム及び計算機システム
JP2019149053A (ja) 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
JP4456084B2 (ja) 制御装置およびそのファームウェア活性交換制御方法
WO2015139327A1 (zh) 失效切换方法、装置和系统
CN114968873B (zh) 一种pcie数据交换装置和切换数据通路的方法
TWI669605B (zh) 虛擬機器群組的容錯方法及其容錯系統
JP7304250B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US8069364B2 (en) Method to recover from logical path failures
US20080271024A1 (en) Information processing apparatus, information processing system and information processing method for processing tasks in parallel
US7110928B1 (en) Apparatuses and methods for modeling shared bus systems
JPH0769882B2 (ja) クロスコール機能を有する入出力制御システム及びそのシステムにおける動的構成変更方法
JPS6061850A (ja) コンピユ−タシステム
JP4193754B2 (ja) データ二重化方法とプログラム
JP2006243852A (ja) 通信装置及びメモリ装置