JP2015056042A - クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム - Google Patents

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

Info

Publication number
JP2015056042A
JP2015056042A JP2013189298A JP2013189298A JP2015056042A JP 2015056042 A JP2015056042 A JP 2015056042A JP 2013189298 A JP2013189298 A JP 2013189298A JP 2013189298 A JP2013189298 A JP 2013189298A JP 2015056042 A JP2015056042 A JP 2015056042A
Authority
JP
Japan
Prior art keywords
bus
failure
server
cluster system
unit
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.)
Granted
Application number
JP2013189298A
Other languages
English (en)
Other versions
JP5790723B2 (ja
Inventor
大介 上石
Daisuke Kamiishi
大介 上石
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2013189298A priority Critical patent/JP5790723B2/ja
Priority to US14/482,020 priority patent/US9501372B2/en
Publication of JP2015056042A publication Critical patent/JP2015056042A/ja
Application granted granted Critical
Publication of JP5790723B2 publication Critical patent/JP5790723B2/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/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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • 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
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities

Abstract

【課題】共有ディスク型クラスタシステムにおいて異常発生時に共有ディスクへのアクセスを迅速に停止する。【解決手段】現用系サーバ10と待機系サーバ20とが共有ディスク30を利用して動作するクラスタシステム1であって、各サーバが、所定のバスを介して入出力されたデータを用いて共有ディスク30へのアクセスを行うディスク入出力部13、23と、現用系サーバに障害が発生した場合にその障害を検出する障害検出部11、21と、障害検出部11、21が障害を検出した場合にバスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することでバスを閉塞させるバス閉塞部12、22とを備えている。【選択図】図1

Description

本発明は、フェイルオーバー機能を有する共有ディスク型クラスタシステムとして用いて好適なクラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラムに関する。
コンピュータの障害発生によるシステムの停止を防止するために、現用系及び待機系の両サーバと共有ディスクを備えた共有ディスク型クラスタシステムが知られている(例えば特許文献1、特許文献2等)。このような共有ディスク型のクラスタシステムでは、両サーバにて作動する業務アプリケーションのデータは、現用系サーバからも待機系サーバからもアクセス可能な共有ディスクに格納される。
そして、現用系サーバに障害が発生した場合、業務アプリケーションの切り替えを行うために、クラスタソフトウェアは待機系サーバで業務アプリケーションを起動する。待機系サーバで起動した業務アプリケーションは、共有ディスクに格納されたデータを使用し、現用系サーバの業務アプリケーションが停止した時点から業務処理を再開する。
共有ディスク型クラスタシステムでは、データを共有ディスクに格納するため、現用系と待機系の両サーバから同時に共有ディスクに書込を行うと、データが破壊されるおそれがある。そのため、通常は現用系サーバからの書込のみを行うように排他制御を行う。
共有ディスク型クラスタシステムにおいてフェイルオーバーを行う場合には、正しく排他制御を行なって障害サーバから共有ディスクへのアクセスを確実に停止する必要がある。共有ディスク型クラスタシステムにおいて、共有ディスクへのアクセスを停止する手法として、主に次の4つの手法が存在するが、それぞれ課題を有している。
1)ディスクのアンマウント
ディスクのアンマウントの場合は、処理に時間がかかり、書込み中のプロセスが存在する場合にはアンマウント処理が失敗する。
2)Fiber Channel(FC)スイッチのポート閉塞
サーバ外のモジュールに接続するため接続時間がかかり、障害の種類によってはFCスイッチに接続できない、という問題がある。
3)OS(Operating System)パニック
HBA(Host Bus Adapter)カードのキャッシュに残っているI/O(入力/出力)データが書き込まれる可能性がある。また、アクセスを停止できたとしても、OSパニックを契機にフェイルオーバーを行うため、高速にフェイルオーバーができない。
4)BMC(Baseboard Management Controller;オンボード・サーバ管理チップ)による停止
BMCがHBAカードに対して、強制的にリセットを掛ける、あるいは電源供給を断つ方式の場合、BMCがビジーであった場合に、共有ディスクへのアクセスを停止するまでに時間がかかり、高速にフェイルオーバーができない。また、OS・ドライバに見えないタイミングで強制的にアクセスを停止させるため、OSパニックとなってしまい、フェイルオーバーに時間がかかってしまう。あるいは、BMCが停止していた場合は、共有ディスクへのアクセスを停止できない、フェイルオーバーもできないといった課題がある。
特開2004−252591号公報 特開2012−173752号公報
上記特許文献1及び特許文献2に記載されているクラスタシステムでは、共有ディスクへのアクセスを停止する手法として、ディスクをアンマウントする手法が採用されている。このため、共有ディスクへのアクセスを停止するまでに時間がかかってしまうという課題があった。
本発明は、上記事情を考慮してなされたものであり、上記課題を解決することができるクラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラムを提供することを目的とする。
上記課題を解決するため、本発明のクラスタシステムは、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムであって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部とを備えることを特徴とする。
また、本発明の情報処理装置は、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムで用いられるサーバであって、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部とを備えることを特徴とする。
また、本発明のクラスタシステムの制御方法は、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御方法であって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、バス閉塞部とを備えていて、前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させることを特徴とする。
また、クラスタシステムの制御プログラムは、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御プログラムであって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、バス閉塞部とを備えていて、前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる過程をコンピュータに実行させることを特徴とする。
本発明によれば、ディスク入出力部にデータ入出力を行うバスで訂正不可能障害を発生させることでバス閉塞を行うので、共有ディスクへのアクセス停止を迅速に行うことができる。
本発明によるクラスタシステムの一実施形態の基本構成例を示したブロック図である。 図1に示したクラスタシステム1の一例として本発明の実施形態の構成例を示したブロック図である。 図2に示したクラスタシステム1aの動作例を説明するための説明図である。 図2に示したクラスタシステム1aの動作例を説明するためのフローチャートである。 図2に示したクラスタシステム1aの動作例を説明するための他のフローチャートである。
以下、図面を参照して本発明の実施の形態について説明する。図1は、本発明によるクラスタシステムの一実施形態の基本構成例を示したブロック図である。図1に示したクラスタシステム1は、現用系サーバ10と、待機系サーバ20と、共有ディスク30とを備えている。このクラスタシステム1は、コンピュータの障害発生によるシステムの停止を防止するために、現用系及び待機系の両サーバ10及び20と共有ディスク30を備えた共有ディスク型クラスタシステムを構成する。クラスタシステム1では、両サーバにて作動する業務アプリケーションのデータは、現用系サーバ10からも待機系サーバ20からもアクセス可能な共有ディスク30に格納される。
現用系サーバ10は、障害検出部11と、バス閉塞部12と、ディスク入出力部13とを備えている。また、待機系サーバ20は、障害検出部21と、バス閉塞部22と、ディスク入出力部23とを備えている。障害検出部21と、バス閉塞部22と、ディスク入出力部23とは、現用系サーバ10が備える、障害検出部11と、バス閉塞部12と、ディスク入出力部13とそれぞれ同一の構成である。
ディスク入出力部13は、所定のバスを介して入出力されたデータを用いて共有ディスク30へのアクセスを行う。また、ディスク入出力部23は、所定のバスを介して入出力されたデータを用いて共有ディスク30へのアクセスを行う。
現用系サーバ10の障害検出部11は、現用系サーバ10に障害が発生した場合にその障害を検出する。また、待機系サーバ20の障害検出部21は、待機系サーバ20に障害が発生した場合にその障害を検出する。ただし、待機系サーバ20の障害検出部21は、現用系サーバ10に障害が発生し、フェイルオーバーによって処理を引き継いでいる場合に、待機系サーバ20の障害検出を行う。障害検出部11と障害検出部21とは互いに連係して動作することで各サーバの障害発生を検出するものであってもよいし、単独で各サーバの障害発生を検出するものであってもよい。
バス閉塞部12は、障害検出部11が現用系サーバ10の障害を検出した場合にディスク入出力部13との間でデータ入出力を行うための所定のバスにおいて、訂正不可能障害を発生させるため、訂正不可能障害発生要求を発行する。例えばディスク入出力部13が有する当該バスの制御装置は、訂正不可能障害発生要求を受けると、訂正不可能障害を発生させ(あるいは訂正不可能な障害が発生したと認識し)、当該バスを閉塞させる。同様に、バス閉塞部22は、障害検出部21が待機系サーバ20の障害を検出した場合にディスク入出力部23との間でデータ入出力を行うための所定のバスにおいて訂正不可能障害を発生させるため訂正不可能障害発生要求を発行する。例えばディスク入出力部23が有する当該バスの制御装置は、訂正不可能障害発生要求を受けると、訂正不可能障害を発生させ(あるいは訂正不可能な障害が発生したと認識し)、当該バスを閉塞させる。
図1に示したクラスタシステム1によれば、意図的に障害を生起し、訂正不可能障害を起こすことでバスを閉塞させている。したがって、共有ディスクへのアクセス停止を迅速に行うことができる。なお、訂正不可能障害発生要求の要求先としては、ディスク入出力部13等に設けられたバスの制御装置であってもよいし、例えば図示していないCPUと組み合わせて使用されるチップセット等と一般に呼ばれる集積回路群内に含まれたものであってもよい。
次に、図2から図5を参照して、図1を参照して説明したクラスタシステム1の詳細な構成例について説明する。図2は、図1に示したクラスタシステム1の構成例としてのクラスタシステム1aを示したブロック図である。
[クラスタシステム1aの構成の説明]
図2に示した本発明の一実施形態であるクラスタシステム1aは、相互に同一のアプリケーションを実行し当該アプリケーションによる他方の処理を引き継ぐことが可能なフェイルオーバー機能を有する現用系サーバ100及び待機系サーバ600を有している。また、クラスタシステム1aは、当該現用系サーバ100及び待機系サーバ600にて共有可能なデータを記憶する共有ディスク700を備える。また、現用系サーバ100及び待機系サーバ600は、ハードウェア(HW)を制御するBMC(オンボード・サーバ管理チップ)と、共有ディスク700へのアクセスを行うディスク入出力装置400とを備える。さらに、クラスタシステム1aは、BIOSが提供するACPI(Advanced Configuration and Power Interface)機能であるACPI BIOS300とオペレーションシステム(OS)200を備える。ここで、BIOS(Basic Input/Output System)は、各サーバの基本的な入出力制御を行うモジュール群(=プログラム群)である。
OS200は、PCIバス(Peripheral Components Interconnect bus)ドライバ210とクラスタソフトウェア220を備えている。PCIバスドライバ210は、障害を検出した際に障害処理を行う障害処理モジュール211と障害処理完了通知モジュール212を備える。クラスタソフトウェア220は、障害検出モジュール221と、フェイルオーバー要求モジュール222と、バス閉塞要求モジュール223を備える。ACPI BIOS300は、バス閉塞を行うバス閉塞モジュール310と、NMI(NonMaskable Interrupt)発行モジュール320を備える。バス閉塞モジュール310はバス閉塞中リスト311を備える。
図2に示した構成において、OS200とACPI BIOS300とは、現用系サーバ100が備える図示していないCPUが実行するソフトウェア(プログラム)である。ディスク入出力装置400とBMC500とは、そのCPU等に所定のバスや信号線を介して接続されたハードウェアである。また、現用系サーバ100には、図示していないCPUや、メモリ、バスの制御装置、NIC(Network Interface Card)等のハードウェアを備えている。なお、図示を省略したが、待機系サーバ600も、現用系サーバ100と同一の構成を備えている。
[クラスタシステム1aの動作の説明]
図2及び図3を参照して、本実施形態の動作について詳細に説明をする。図3は、クラスタシステム1aの動作の流れを示した説明図である。なお、ディスク入出力装置400は、共有ディスク700へのアクセスを行うPCIe(PCI Express(登録商標))カードを備え、本システムではPCIeバス構造をとるものとする。図3を基に、本発明で提案するフェイルオーバーの流れを示す。なお、図3は、左から順に、クラスタソフトウェア220による処理、ACPI BIOS300による処理、PCIバスドライバ210による処理、そして、BMC50のファームウェアによる処理を並べて示している。
(1)クラスタソフトウェア220の障害検出モジュール221が、現用系サーバ100の異常を検出すると、バス閉塞要求モジュール223が、ACPI BIOS300に対して、バス閉塞を要求する(ステップSa1)。ACPI BIOS300のバス閉塞モジュール310は、対象Root Portで訂正不可能障害を起こして、バスを閉塞させる(ステップSb1)。このバス閉塞処理の詳細については後述する。ここで、Root Port(ルートポート)は、PCIeのルートコンプレックス(Root Complex)上に設けられた根幹ポート(根幹となる入出力インターフェース)である。そして、バス閉塞モジュール310は、バスが閉塞したことを確認すると、クラスタソフトウェア220に対して、バス閉塞完了を通知する(ステップSb2)。
(2)また、バス閉塞が動作すると、PCIデバイス(例えばディスク入出力装置400が備えるPCIeカード)が障害を検出し、メッセージシグナル割り込み(MSI)を通知する。そして、PCIバスドライバ210の障害処理モジュール211が、そのMSIの受信(ステップSc1)を契機に、MSIを通知してきたPCIデバイスに対応するI/Oドライバの停止を行う(ステップSc2)。そして、PCIバスドライバ210の障害処理完了通知モジュール212は、I/Oドライバ停止完了をACPI BIOS300のNMI発行モジュール320に通知する(ステップSc3)。ここで、NMI発行モジュール320は、I/Oドライバが停止するまで発行不許可となっていたNMI発行の設定状態をNMI発行許可とする(ステップSb3)。
(3)クラスタソフトウェア220は、バス閉塞完了後(ステップSb2の後)、フェイルオーバー要求モジュール222がNIC経由で待機系にフェイルオーバーを通知する(ステップSa2)。それと共に、クラスタソフトウェア220は、ACPI BIOS300のNMI発行モジュール320にフェイルオーバーリクエスト(あるいはNMI発行リクエストとしてもよい)を発行する(ステップSa3)。ACPI BIOS300は、待機系サーバ600へフェイルオーバーを通知するようBMC500に指示する(ステップSb4〜ステップSd1)。
(4)最後に、ACPI BIOS300のNMI発行モジュール320は、ステップSb3の処理が終了していることを確認し、Non−Maskable interrupt(NMI)を発行して、現用系を停止させる(ステップSb5)。
ここでバス閉塞処理の詳細について説明する。バス閉塞モジュール310はLive Error Recovery(LER)機能を使って、バス閉塞を行う。LER機能は、PCIe port配下で発生した訂正不可能障害をシステム全体へ波及するのを防ぐための機能である。本発明のバス閉塞モジュール310では、本機能を利用し、バス閉塞を行うPCIe portに対して、Unsupported Request(UR)を発行することで訂正不可能障害を起こし、バス閉塞を行う。
バス閉塞モジュール310は、バス閉塞リクエストを受けてバス閉塞をするために、図4に示すように、PCIe Root Portに対して次の初期化処理を行う。すなわち、OS起動後(ステップS11)、バス閉塞を行うためにLER有効化設定を行い(ステップS12)、さらに障害時、MSIにより割り込みが発生するようMSI通知設定を行う(ステップS13)。なお、LER機能については例えばhttp://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon−c5500−c3500−datasheet−vol−1.pdfの項目11.3.2.2.8に記載されている。
バス閉塞モジュール310は、バス閉塞指示を受けると図5に示すような手順で意図的に障害を発生させる。PCIe Root Portで訂正不可能障害を発生させるため、本発明では、PCIデバイスでUnsupported Request(UR)をFATAL Severity(致命的な重大度)として、URを投入することにより訂正不可能障害を発生させる。PCIデバイスは、サポートしないDevice/Function(デバイスや機能)へのPCI Config(PCIコンフィグレーションレジスタ)アクセス要求があると、UR障害を検出する。通常は、OS200又はACPI BIOS300がデバイスサーチを行うと、本エラーを検出してしまうため、エラー検出しないようマスクされている。また、Advisory Non−Fatal Error Logging(非強制非致命的エラー記録)をサポートするPCIデバイスだと、Non−Fatal Severityの障害は、Correctable(訂正可能)通知となり、バス閉塞を発生させることができない。そのため、UR障害をFATAL Severityとして行う必要がある。そこで、バス閉塞モジュール310では、UR SeverityをFATALへ変更(ステップS21)、UR Maskを解除してから(ステップS22)、UR STATUS(ステータス)をクリアして(ステップS23)、URを発生させ(ステップS24)、バス閉塞を引き起こす。
なお図3を参照して説明した流れでは、さらに、バス閉塞モジュール310が、バス閉塞要求を受けた後(ステップSa1)、NMI発行モジュール320に対して、バス閉塞対象の通知を行うことができる(図3では不図示)。NMI発行モジュール320は、通知をうけたバス閉塞対象をバス閉塞中リスト311に記憶する。NMI発行モジュール320は、PCIバスドライバ210の障害処理完了通知モジュール212からI/Oドライバ停止完了通知を受けた場合(ステップSc3)、通知を受けたバス閉塞対象をリスト311から削除する(図3では不図示)。NMI発行モジュール320は、クラスタソフトウェア220のフェイルオーバー要求モジュール222からのフェイルオーバー要求をうけた場合(ステップSa3)、バス閉塞中リスト311が空になるのをまってから、次の処理を行う。すなわち、NMI発行モジュール320は、BMC500に対して、現用系から待機系へのフェイルオーバー通知を行うと共に(ステップSb4〜ステップSd1)、現用系のシステムにNMIを発行する(ステップSb5)。
[クラスタシステム1aの効果の説明]
図2に示したクラスタシステム1aは次の効果を奏する。
第一の効果は、現用系サーバにおいて、BMCといった他制御装置に依らずにバス閉塞を瞬時に行うことで、共有ディスクへのアクセスを停止させ、共有データの保護を行える事にある。これは、本実施形態が、ACPI BIOS300が訂正不可能障害を意図的に起こすことでRoot Portのバス閉塞を行う機構を備えたことによる。
第二の効果は、バス閉塞を行った後、OS上のI/Oドライバの停止を行うことで、安全にシステム停止を行える点にある。これは、本実施形態が、ACPI BIOS300のNMI発行モジュール320に、I/Oドライバの停止処理の完了を待ち、NMI発行タイミングを調停する機構を設けたことによる。
そして、第三の効果は、クラスタソフトウェア220とBMC500双方からフェイルオーバーを通知することで、フェイルオーバー指示の冗長化を行える点にある。これは、本実施形態が、ACPI BIOS300のNMI発行モジュール320から、フェイルオーバー通知を行う機構を備えたことによる。
以上のように、本発明の実施形態によれば、共有ディスク型のクラスタシステムにおいて、ACPI BIOSがHW的にバスを閉塞させると共に、ドライバを停止させることで、瞬時にかつ確実に共有ディスクへのアクセスを停止させることができる。さらに、本発明の実施形態によれば、クラスタソフトウェアとBMC双方から待機系へフェイルオーバーを指示できるようにすることで、確実なフェイルオーバーが可能となる。
なお、本発明のクラスタシステム1aは、サーバが搭載するCPU等の各種ハードウェア資源を用いて、1又は複数のモジュールからなるプログラムを実行することで実現することができる。この場合のプログラムの一部又は全部は、コンピュータ読取可能な記録媒体や通信回線を介して頒布することが可能である。
また、本発明の実施の形態は上記のものに限定されない。例えば、バスの仕様は、意図的に訂正不可能障害を発生させることができるものであればPCIeバス以外のものであってもよい。
なお、特許請求の範囲の記載と上記実施形態における各構成との対応関係は次のとおりである。特許請求の範囲の「ディスク入出力部」と、「ディスク入出力部13」、「ディスク入出力部23」及び「ディスク入出力装置400」とが対応している。特許請求の範囲の「障害検出部」と、「障害検出部11」、「障害検出部21」及び「障害検出モジュール221」とが対応している。特許請求の範囲の「バス閉塞部」と、「バス閉塞部12」、「バス閉塞部22」及び「バス閉塞モジュール310」とが対応している。特許請求の範囲の「入出力制御部」と、図3のステップSc2及びSc3の「I/Oドライバ」とが対応している。特許請求の範囲の「障害割込信号」と、図3のステップSc1の「MSI」とが対応している。特許請求の範囲の「訂正不可能障害発生要求」と、図5のステップS24の「UR」とが対応している。特許請求の範囲の「割込信号発行部」と、「NMI発行モジュール320」とが対応している。特許請求の範囲の「マスク不可割込信号」と、図3のステップSb5の「NMI」とが対応している。特許請求の範囲の「フェイルオーバー通知要求信号」と、図3のステップSb4の「フェイルオーバー通知リクエスト」とが対応している。そして、特許請求の範囲の「基本的な入出力制御を行うモジュール群」と、「ACPI BIOS300」とが対応している。
1、1a クラスタシステム
10、100 現用系サーバ
20、600 待機系サーバ
11、21 障害検出部
12、22 バス閉塞部
13、23 ディスク入出力部
30、700 共有ディスク
200 OS
210 PCIバスドライバ
220 クラスタソフトウェア
221 障害検出モジュール
223 バス閉塞要求モジュール
300 ACPI BIOS
310 バス閉塞モジュール
400 ディスク入出力装置
500 BMC

Claims (8)

  1. 現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムであって、前記各サーバが、
    所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
    前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
    前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部と
    を備えることを特徴とするクラスタシステム。
  2. 前記各サーバがさらに、
    前記バスに対するデータの入出力を制御するものであって、前記バスでの障害発生を通知するための障害割込信号が発行された場合に、前記バスに対するデータ入出力の制御動作を停止する入出力制御部と、
    前記バス閉塞部が前記訂正不可能障害発生要求を発行した場合、前記入出力制御部の前記制御動作の停止を待って、前記現用系サーバを停止させるためのマスク不可割込信号を前記現用系サーバに対して発行する割込信号発行部と
    を備えることを特徴とする請求項1に記載のクラスタシステム。
  3. 前記割込信号発行部が、前記マスク不可割込信号を発行する前に、前記現用系サーバから前記待機系サーバへのフェイルオーバーの通知を要求するフェイルオーバー通知要求信号を発行する
    ことを特徴とする請求項2に記載のクラスタシステム。
  4. 前記各サーバがさらに、通信装置と、オンボード・サーバ管理チップとを備え、
    前記各サーバの前記各通信装置を介して、前記バスの閉塞後に前記現用系サーバから前記待機系サーバへとフェイルオーバーが要求され、
    前記各サーバの前記各オンボード・サーバ管理チップを介して、前記入出力制御部の停止後に前記現用系サーバから前記待機系サーバへとフェイルオーバーが通知される
    ことを特徴とする請求項2または3に記載のクラスタシステム。
  5. 前記バス閉塞部を構成するプログラムが、前記各サーバの基本的な入出力制御を行うモジュール群に含まれている
    ことを特徴とする請求項1から4のいずれか1項に記載のクラスタシステム。
  6. 現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムで用いられるサーバであって、
    所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
    前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
    前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部と
    を備えることを特徴とする情報処理装置。
  7. 現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御方法であって、前記各サーバが、
    所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
    前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
    バス閉塞部と
    を備えていて、
    前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる
    ことを特徴とするクラスタシステムの制御方法。
  8. 現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御プログラムであって、前記各サーバが、
    所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
    前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
    バス閉塞部と
    を備えていて、
    前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる過程を
    コンピュータに実行させることを特徴とするクラスタシステムの制御プログラム。
JP2013189298A 2013-09-12 2013-09-12 クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム Active JP5790723B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013189298A JP5790723B2 (ja) 2013-09-12 2013-09-12 クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム
US14/482,020 US9501372B2 (en) 2013-09-12 2014-09-10 Cluster system including closing a bus using an uncorrectable fault upon a fault detection in an active server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013189298A JP5790723B2 (ja) 2013-09-12 2013-09-12 クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015056042A true JP2015056042A (ja) 2015-03-23
JP5790723B2 JP5790723B2 (ja) 2015-10-07

Family

ID=52626748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013189298A Active JP5790723B2 (ja) 2013-09-12 2013-09-12 クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム

Country Status (2)

Country Link
US (1) US9501372B2 (ja)
JP (1) JP5790723B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645901B2 (en) * 2014-03-17 2017-05-09 Primaryio, Inc. Accelerating application write while maintaining high availability in shared storage clusters
US10133488B2 (en) 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
JP2016177642A (ja) * 2015-03-20 2016-10-06 株式会社リコー 情報処理装置、情報処理システム、プログラム及び画像処理システム
US10089028B2 (en) * 2016-05-27 2018-10-02 Dell Products L.P. Remote secure drive discovery and access
US11403001B2 (en) * 2020-04-30 2022-08-02 EMC IP Holding Company, LLC System and method for storage system node fencing
US11836100B1 (en) * 2022-06-16 2023-12-05 Dell Products L.P. Redundant baseboard management controller (BMC) system and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348335A (ja) * 2003-05-21 2004-12-09 Nec System Technologies Ltd 障害検出方法及び情報処理システム
JP2006189963A (ja) * 2004-12-28 2006-07-20 Hitachi Ltd ストレージアクセス制御方法、クラスタシステム、パス接続スイッチおよびストレージアクセス制御プログラム
JP2009205428A (ja) * 2008-02-27 2009-09-10 Nec Saitama Ltd 冗長構成の情報処理システム、ホストユニット切替え正常化方法、及びそのプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19939567B4 (de) * 1999-08-20 2007-07-19 Pilz Gmbh & Co. Kg Vorrichtung zum Steuern von sicherheitskritischen Prozessen
DE60318468T2 (de) * 2002-10-07 2008-05-21 Fujitsu Siemens Computers, Inc., Sunnyvale Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem
JP4256693B2 (ja) 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
US7401254B2 (en) * 2003-04-23 2008-07-15 Dot Hill Systems Corporation Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis
US7551552B2 (en) * 2003-10-17 2009-06-23 Microsoft Corporation Method for providing guaranteed distributed failure notification
JP4728896B2 (ja) * 2006-07-13 2011-07-20 エヌイーシーコンピュータテクノ株式会社 コンピュータシステム
JP4513852B2 (ja) * 2007-11-07 2010-07-28 日本電気株式会社 Pciバス障害リカバリ方法及びプログラム
JP2012173752A (ja) 2011-02-17 2012-09-10 Nec Corp クラスタシステム、データ記録方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348335A (ja) * 2003-05-21 2004-12-09 Nec System Technologies Ltd 障害検出方法及び情報処理システム
JP2006189963A (ja) * 2004-12-28 2006-07-20 Hitachi Ltd ストレージアクセス制御方法、クラスタシステム、パス接続スイッチおよびストレージアクセス制御プログラム
JP2009205428A (ja) * 2008-02-27 2009-09-10 Nec Saitama Ltd 冗長構成の情報処理システム、ホストユニット切替え正常化方法、及びそのプログラム

Also Published As

Publication number Publication date
JP5790723B2 (ja) 2015-10-07
US20150074448A1 (en) 2015-03-12
US9501372B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
JP5790723B2 (ja) クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム
WO2020151722A1 (zh) 故障处理方法、相关设备及计算机存储介质
US8037364B2 (en) Forced management module failover by BMC impeachment consensus
JP6098778B2 (ja) 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US8775867B2 (en) Method and system for using a standby server to improve redundancy in a dual-node data storage system
WO2017158666A1 (ja) 計算機システム、計算機システムのエラー処理方法
US10114688B2 (en) System and method for peripheral bus device failure management
US20120266027A1 (en) Storage apparatus and method of controlling the same
US9575855B2 (en) Storage apparatus and failure location identifying method
US20160253285A1 (en) Method And System of Synchronizing Processors To The Same Computational Point
US8683258B2 (en) Fast I/O failure detection and cluster wide failover
JP3329986B2 (ja) マルチプロセッサシステム
JP6540202B2 (ja) 情報処理システム、制御装置および制御プログラム
US9665447B2 (en) Fault-tolerant failsafe computer system using COTS components
JP4218538B2 (ja) コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
CN109491842B (zh) 用于故障安全计算系统的模块扩展的信号配对
US20040123165A1 (en) Peer power control
US8689059B2 (en) System and method for handling system failure
US9645737B2 (en) Information processing apparatus, control device, and control method
US11403001B2 (en) System and method for storage system node fencing
US9311212B2 (en) Task based voting for fault-tolerant fail safe computer systems
US20150089273A1 (en) Computer system, control method for computer system and coupling module
Lee et al. NCU-HA: A lightweight HA system for kernel-based virtual machine
JP2004013723A (ja) 共有メモリを使ったクラスタ構成を採用した情報処理システムの障害処理装置と方法
WO2016203565A1 (ja) 計算機システムおよび制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150720

R150 Certificate of patent or registration of utility model

Ref document number: 5790723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150