JP2016170577A - フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム - Google Patents

フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2016170577A
JP2016170577A JP2015049202A JP2015049202A JP2016170577A JP 2016170577 A JP2016170577 A JP 2016170577A JP 2015049202 A JP2015049202 A JP 2015049202A JP 2015049202 A JP2015049202 A JP 2015049202A JP 2016170577 A JP2016170577 A JP 2016170577A
Authority
JP
Japan
Prior art keywords
subsystem
cpu
cpu subsystem
synchronization
sub
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
JP2015049202A
Other languages
English (en)
Other versions
JP6540113B2 (ja
Inventor
貴之 加瀬
Takayuki Kase
貴之 加瀬
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 JP2015049202A priority Critical patent/JP6540113B2/ja
Publication of JP2016170577A publication Critical patent/JP2016170577A/ja
Application granted granted Critical
Publication of JP6540113B2 publication Critical patent/JP6540113B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】フォールトトレラントサーバにおけるCPUの同期ずれから二重化への復帰を、無停止で安定的に実現する。【解決手段】フォールトトレラントサーバにおいて、第1のCPUサブシステム12と第2のCPUサブシステム22の同期ずれが発生した場合、第2のCPUサブシステム12の電源をオフオンし、第1のCPUサブシステム12のコンテキストを第2のCPUサブシステム22にコピーし、第1のCPUサブシステム12と第2のCPUサブシステム22をリセットする。同期ずれが解消できない場合、第2のCPUサブシステム22と第2のIOサブシステム23とのインタフェースと、第2のCPUサブシステム22と第1のIOサブシステム13とのインタフェースが正常に動作していることを確認可能な接続状態に変更する。【選択図】図1

Description

本発明は、フォールトトレラントサーバにおける同期化方法に関する。
フォールトトレラントサーバは、そのサーバを構成するハードウェア部品のうちで一つのハードウェア部品が故障した場合でも、システムを停止することなく稼働を続けることが可能なサーバである。フォールトトレラントサーバ(以下において、「FTサーバ」ともいう)は、CPU(Central Processing Unit)、メインメモリ、ハードディスク及びI/O関連機器のすべてが二重に搭載されている。そして、それらの二重化された機器(デバイス)は、同期されている。
デバイスの同期制御は、一般的に、外部からの信号やソフトウェア制御、タイミング調整などの方法により行われる。しかし、例えば、フォールトトレラントサーバを構成するCPUサブシステムなどのように、その一部がブラックボックスとなっているデバイスは、上述の方法では、完全に制御できない部分も存在する。すなわち、CPUサブシステムは、個体差による稀なキャリビレーションミスの発生や、起動時に保持しているレジスタ値を変更できないために、外部環境変化時に同期がとれないことがある。
CPUサブシステムの同期ずれを解消するためには、CPUサブシステムにパワーサイクル(電源をオフ、再度電源をオン)を実施する方法が最も一般的である。
ここで、#0系(主系)と#1系(従系)の2つのCPUサブシステムが同期動作するFTサーバの一般的な同期化処理について、図11のフローチャートを用いて説明する。始めに、FTサーバは、両系(#0系および#1系)のCPUサブシステムを起動する(ステップS910、S920)。次に、FTサーバは、#0系のCPUサブシステムから#1系のCPUサブシステムにコンテキストをコピーする(ステップS930)。ここで、コンテキストとは、メモリやCPUのレジスタの内容である。そして、同期のために両系にリセットをかける(ステップS940)。その結果、同期ずれがない場合(ステップS950にて「No」)、#0系のCPUサブシステムと#1系のCPUサブシステムは、同期化完了となる。
CPUの同期制御は、基準となるクロック信号に対してタイミングの調整を行う。しかし、CPUの仕様によっては、外部からの信号やソフトウェア手続きだけでは完全に制御できない部分も存在し、稀に個体差や環境の変化から期待と異なるレジスタ値設定やクロック間位相差が発生することがある。そのため、同期ずれ発生時(ステップS950にて「Yes」)にFTサーバは、従系のCPUサブシステムを切り離し(ステップS980)、再度組み込む(ステップS960)ことにより従系のCPUサブシステムにパワーサイクルをかける。これにより、もしも従系のCPUサブシステムが期待と異なる状態となっていた場合に同期ずれを解消できる。
しかし、従系ではなく、主系のCPUサブシステムが期待と異なる状態になっていた場合、このFTサーバは、従系のCPUサブシステムの切り離しと、組み込みを行っても、同期ずれを解消することはできない。そして、FTサーバは、従系のCPUサブシステムをN回(Nは、あらかじめ定めた閾値)以上切り離した後(ステップS970にて「Yes」)に、従系(#1系)のCPUサブシステムが故障していると判定する(ステップS990)。したがって、主系のCPUサブシステムが期待と異なる状態になっていた場合に、同期ずれを解消できないままとなる。その結果、フォールトトレラントサーバの安定的な運用ができない。
ここで、関連技術としては、例えば以下の特許文献がある。
特許文献1は、二重化計算機のオンライン稼働時の片系保守における信頼性を向上させると共に、簡潔な構成のI/O(Input/Output)装置の使用を可能とする二重化計算機を開示している。
特許文献2は、オンライン業務中にプロセッサモジュールの処理能力を拡張することができるフォールトトレラントコンピュータを開示している。
特開平09−146853号公報 特開平08−016533号公報
特許文献1に提案されている技術は、復旧系(従系)のIO(Input Output)サブシステムで障害が発生した場合に、そのIOサブシステムを交換後、稼働系(主系)に接続する前に、その復旧系のIOサブシステムを、復旧系のCPUサブシステムに接続して評価を行う。
図11に示す関連技術と特許文献1と2に提案されている技術は、次の点を考慮していない。それら技術は、主系と従系のCPUサブシステムを切り替える前に、従系のCPUサブシステムから各々(主系及び従系の各々)のIOサブシステムへのインタフェースが正常に動作していることを確認することを考慮していない。そのため、例えば従系のCPUサブシステムと主系のIOサブシステムとの間のパスに不良が生じていたりアクセス先に不良がある場合に、主系と従系のCPUサブシステムを切り替えることによって、予期せぬ動作を誘引し、ストール等が発生する虞がある。
したがって、前述した関連技術では、サーバを停止させないで、二重化への復帰を安定的に実現することができない。
そこで、本発明は、フォールトトレラントサーバにおけるCPUの同期ずれを解消する動作において、無停止で、二重化への復帰を安定的に実現することが可能なフォールトトレラントサーバ等の提供を主たる目的とする。
上記の目的を達成すべく、本発明の一態様に係るフォールトトレラントサーバは、以下の構成を備える。
即ち、本発明の一態様に係るフォールトトレラントサーバは、
第1のCPUサブシステムと、第1のIOサブシステムと、前記第1のCPUサブシステムおよび前記第1のIOサブシステムに接続する第1の制御手段とを備えた第1のサブシステムと、
第2のCPUサブシステムと、第2のIOサブシステムと、前記第2のCPUサブシステムおよび前記第2のIOサブシステムに接続する第2の制御手段とを備えた第2のサブシステムとを含み、
前記第1の制御手段と前記第2の制御手段は、
前記第1のサブシステムと前記第2のサブシステムの一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成され、
前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムとの同期ずれが発生した場合、前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかけ、
前記同期ずれが解消できない場合に、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する。
同目的を達成する本発明の一態様に係る同期化方法は、
第1のCPUサブシステムと、第1のIOサブシステムと、前記第1のCPUサブシステムおよび前記第1のIOサブシステムに接続する第1の制御手段とを備えた第1のサブシステムと、
第2のCPUサブシステムと、第2のIOサブシステムと、前記第2のCPUサブシステムおよび前記第2のIOサブシステムに接続する第2の制御手段とを備えた第2のサブシステムとを含み、
前記第1の制御手段と前記第2の制御手段は、
前記第1のサブシステムと前記第2のサブシステムの一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成されるフォールトトレラントサーバにおいて、
前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムとの同期ずれが発生した場合、前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかけ、
前記同期ずれが解消できない場合に、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する。
更に、同目的は、上記構成を有するフォールトトレラントサーバ、或いは、同期化方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
上記の本発明によれば、フォールトトレラントサーバにおけるCPUの同期ずれを解消する動作において、無停止で、二重化への復帰を安定的に実現することができるという効果がある。
本発明の第1の実施形態に係るフォールトトレラントサーバの構成を示すブロック図である。 本発明の第2の実施形態に係るフォールトトレラントサーバの構成を示すブロック図である。 本発明の第2の実施形態に係るフォールトトレラントサーバにおけるサブシステムの接続状態の一例を説明する図である。 本発明の第2の実施形態に係るCPU二重化制御回路およびIO二重化制御回路の構成を示すブロック図である。 本発明の第2の実施形態に係るフォールトトレラントサーバにおけるCPUサブシステムを再同期する処理を説明するフローチャートである。 本発明の第2の実施形態に係るフォールトトレラントサーバにおける従系のCPUサブシステムと、IOサブシステムとのI/F(InterFace)を確認する処理を説明するフローチャートである。 本発明の第2の実施形態に係るフォールトトレラントサーバにおいて、#1系CPUサブシステムと、#1系IOサブシステムとのI/Fを確認する処理を説明するフローチャートである。 本発明の第2の実施形態に係るフォールトトレラントサーバにおいて、#1系CPUサブシステムと、#0系IOサブシステムとのI/Fを確認する処理を説明するフローチャートである。 本発明の第2の実施形態に係るフォールトトレラントサーバにおけるサブシステムの接続状態を説明する図である。 本発明の第2の実施形態に係るフォールトトレラントサーバにおける主系のCPUサブシステムを切り替える処理を説明するフローチャートである。 一般的なフォールトトレラントサーバにおけるCPU再同期化手法を説明するフローチャートである。
次に、本発明を実施する形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るフォールトトレラントサーバの構成を示すブロック図である。
図1を参照すると、本実施形態に係るフォールトトレラントサーバは、第1のサブシステム11と、第2のサブシステム21とを備えている。第1のサブシステム11は、第1のCPUサブシステム12と、第1のIOサブシステム13と、第1の制御部14とを含む。また、第2のサブシステム21は、第2のCPUサブシステム22と、第2のIOサブシステム23と、第2の制御部24とを含む。
第1の制御部14と第2の制御部24は、第1のサブシステム11と第2のサブシステム21の一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成される。
また、第1のCPUサブシステム12が主系、第2のCPUサブシステム22が従系のCPUサブシステムとして動作中に、第1のCPUサブシステム12と前記第2のCPUサブシステム22との同期ずれが発生した場合、第1の制御部14と第2の制御部24は、次のように動作する。
(1)第2のCPUサブシステム22の電源オフ、電源オンを行った後に、第1のCPUサブシステム12のコンテキストを第2のCPUサブシステム22にコピーする。
(2)コピー後に、第1のCPUサブシステム12および前記第2のCPUサブシステム22に対し、同期のためにリセットをかける。
(3)リセット後も同期ずれが解消できない場合に、第2のCPUサブシステム22と第2のIOサブシステム23とのインタフェースと、第2のCPUサブシステム22と第1のIOサブシステム13とのインタフェースが正常に動作していることを確認可能な接続状態に変更する。
以上のように、本実施形態のフォールトトレラントサーバは、CPUサブシステムの系切り替え(主系と従系の切り替え)処理を行う前に、切り替え先のCPUサブシステムと各々のIOサブシステムとのインタフェースの動作を接続状態の変更によって検証する。これによって、切り替え後に動作不良が発生する可能性を排除する。
ところで、第1の制御部14は、第1の同期部31と、第1の接続部32とを含む。そして、第2の制御部24は、第2の同期部41と、第2の接続部42とを含む。第1の制御部14と第2の制御部24は、互いに接続され、相互に通信が可能である。つぎに、これら各部の構成と動作について説明する。
第1同期部31と第2同期部41は、互いに連携して同期ずれの復旧動作を行う。第1の同期部31は、同期ずれの復旧動作時に、第1のCPUサブシステム12のコンテキストを取得し、第2の同期部41に渡すことができる。第2の同期部41は、第1のCPUサブシステム12のコンテキストを第2のCPUサブシステム22にコピーすることができる。
第1の接続部32は、第1のCPUサブシステム12の接続先と、第1のIOサブシステム13の接続先とをそれぞれ決定する、接続状態の設定及び変更機能を有する。たとえば、第1の接続部32は、第1のCPUサブシステム12の接続先として、第1のIOサブシステム13、第2のIOサブシステム23またはそれら2つのIOサブシステムに設定することを可能にする。また、第1の接続部32は、第1のIOサブシステム13の接続先として、第1のCPUサブシステム12または第2のCPUサブシステム22に設定することを可能にする。
第2の接続部42は、第2のCPUサブシステム22の接続先と、第2のIOサブシステム23の接続先とをそれぞれ決定する、接続状態の設定及び変更機能を有する。たとえば、第2の接続部42は、第2のCPUサブシステム22の接続先として、第1のIOサブシステム13、第2のIOサブシステム23またはそれら2つのIOサブシステムに設定することを可能にする。また、第2の接続部42は、第2のIOサブシステム23の接続先として、第1のCPUサブシステム12または第2のCPUサブシステム22に設定することを可能にする。
第1の接続部32と第2の接続部42は、互いに連携して接続状態を制御してもよい。
第1のCPUサブシステム12を主系のCPUサブシステムとして動作中に、第1のCPUサブシステム12と第2のCPUサブシステム22に同期ずれが発生した場合、第1の制御部14と第2の制御部24は、次のように動作する。
最初、第2の同期部41は、第2のCPUサブシステム22に対して電源をオフ、再度電源をオンする。それから、第1の同期部31および第2の同期部41は、第1のCPUサブシステム12のコンテキストを第2のCPUサブシステム22にコピーする。コピー完了後に、第1の同期部31は、第1のCPUサブシステム12に対し、および第2の同期部41を経由して前記第2のCPUサブシステム22に対し、同期のためにリセットを同時にかける。
第1の同期部31および第2の同期部41により同期ずれが解消できない場合に、第1の接続部32および第2の接続部42は、第2のCPUサブシステム22と第2のIOサブシステム23とのインタフェースと、第2のCPUサブシステム22と前記第1のIOサブシステム13とのインタフェースとがそれぞれ正常であるかを確認できるよう接続状態を変更する。
第1の接続部32および第2の接続部42による接続状態の変更に応じて、第2のCPUサブシステム22がそれぞれのインタフェースが正常であることを確認できた場合に、第1の接続部32は、次のように動作する。第1の制御部14の第1の接続部32は、主系のCPUサブシステムを、第1のCPUサブシステム12から第2のCPUサブシステム22に切り替える。
以上、説明したように、第1の実施形態には、フォールトトレラントサーバにおけるCPUの同期ずれを解消する動作において、無停止で、二重化への復帰を安定的に実現することができるという効果がある。その理由は、CPUサブシステムの系切り替え処理を行う前に切り替え先のCPUサブシステムと各々のIOサブシステムとのインタフェースの動作を接続状態の変更によって検証するからである。これによって、切り替え後に動作不良が発生する可能性を排除する。
<第2の実施形態>
次に上述した第1の実施形態に係るフォールトトレラントサーバを基本とする第2の実施形態について説明する。図2は、本発明の第2の実施形態に係るフォールトトレラントサーバの構成を示すブロック図である。ただし、図2に示す構成は、一例であって、本発明は、図2に示すフォールトトレラントサーバに限定されない。
本実施形態に係るフォールトトレラントサーバは、#0系サブシステム101と、#1系サブシステム111とが同期動作し、CPUとIOの二重化を実現している。#0系サブシステム101と、#1系サブシステム111は、一方が主系のサブシステムとして動作し、もう一方が従系のサブシステムとして動作する。
#0系サブシステム101は、#0系CPUサブシステム102と、CPU二重化制御回路105と、IO二重化制御回路106と、#0系IOサブシステム107とを含む。同様に、#1系サブシステム111は、1系CPUサブシステム112と、CPU二重化制御回路115と、IO二重化制御回路116と、#1系IOサブシステム117とを含む。
CPU二重化制御回路105と、IO二重化制御回路106は、第1の実施形態の第1の制御部14の一例である。同様に、CPU二重化制御回路115と、IO二重化制御回路116は、第1の実施形態の第2の制御部24の一例である。
#0系CPUサブシステム102は、CPU104とDIMM103(メモリ、DIMM:Dual Inline Memory Module)とを含み、#1系CPUサブシステム112とクロック単位で同期している。#1系CPUサブシステム112は、CPU114とDIMM113とを含む。
#0系IOサブシステム107は、増設PCIカード108(PCI:Peripheral Components Interconnect)と、オンボードLAN109(LAN:Local Area Network)と、HDD110(HDD:Hard Disk Drive)とを含む。そして、#0系IOサブシステム107は、#1系IOサブシステム117と同期動作している。#1系IOサブシステム117は、増設PCIカード118と、オンボードLAN119と、HDD120とを含む。
これらのサブシステムの要素を同期動作させるため、#0系サブシステム101と#1系サブシステム111は、それぞれ、CPU二重化制御回路105、115と、IO二重化制御回路106、116とを組み込んだチップを搭載している。#0系サブシステム101と#1系サブシステム111は、システムバックプレーン121によって接続されている。
二重化時には、CPU二重化制御回路105、115は、IO二重化制御回路106、116と、図2に示すように接続されている。すなわち、#0系のCPU二重化制御回路105は、#1系のCPU二重化制御回路115と#0系、#1系のIO二重化制御回路106、116とに接続されている。同様に、#1系のCPU二重化制御回路115は、#0系のCPU二重化制御回路105と#0系、#1系のIO二重化制御回路106、116とに接続されている。
しかし、二重化されていない状態では、CPU二重化制御回路105、115の一方と、IO二重化制御回路106、116の一方とが接続可能である。たとえば、図3に示すように、#0系のCPU二重化制御回路105は、#1系のIO二重化制御回路116と接続されて、#1系のCPU二重化制御回路115と、#0系のIO二重化制御回路106とは接続されない。同様に、#1系のCPU二重化制御回路115は、#0系のIO二重化制御回路106と接続されて、#0系のCPU二重化制御回路105と、#1系のIO二重化制御回路116とは接続されない。このような接続方法は、CPU二重化制御回路105、115と、IO二重化制御回路106、116を実装する制御ソフトウェアによって実現される。
図4は、本発明の第2の実施形態に係るCPU二重化制御回路とIO二重化制御回路の構成を示すブロック図である。図4に示すように、CPU二重化制御回路105は、CPU同期部1051と、CPU接続部1052とを含む。CPU二重化制御回路115は、CPU同期部1151と、CPU接続部1152とを含む。また、IO二重化制御回路106は、IO同期部1061と、IO接続部1062とを含む。IO二重化制御回路116は、IO同期部1161と、IO接続部1162とを含む。
CPU同期部1051とCPU同期部1151は、互いに連携して、#0系CPUサブシステム102と#1系CPUサブシステム112との同期ずれの復旧動作を行う。
CPU接続部1052は、#0系CPUサブシステム102の接続先を決定する、接続状態の設定及び変更機能を有する。
CPU接続部1152は、#1系CPUサブシステム112の接続先を決定する、接続状態の設定及び変更機能を有する。
IO同期部1061とIO同期部1161は、互いに連携して、#0系IOサブシステム107と#1系IOサブシステム117とを二重化するための動作を行う。
IO接続部1062は、#0系IOサブシステム107の接続先を決定する、接続状態の設定及び変更機能を有する。
IO接続部1162は、#1系IOサブシステム117の接続先を決定する、接続状態の設定及び変更機能を有する。
本実施形態における処理の流れについて、図5〜8に示すフローチャートを用いて説明する。
図5は、本発明の第2の実施形態に係るフォールトトレラントサーバ(FTサーバ)におけるCPUサブシステムを再同期する処理を説明するフローチャートである。#0系と#1系の2つのCPUサブシステムが同期動作するFTサーバにおいて、初回起動時における主系のCPUサブシステムは、#0系CPUサブシステム102として説明する。
始めに、FTサーバは、両系(#0系および#1系)のCPUサブシステム(#0系CPUサブシステム102および#1系CPUサブシステム112)を起動する(ステップS110、S120)。次に、CPU同期部1051とCPU同期部1151は、#0系CPUサブシステム102から#1系CPUサブシステム112にコンテキストをコピーする(ステップS130)。ここで、コンテキストとは、メモリ(DIMM103)やCPU104のレジスタの内容である。そして、主系である#0系のCPU同期部1051は、同期のために両系(2つのCPUサブシステム)に同時にリセットをかける(ステップS140)。その結果、CPU同期部1051は同期ずれがないと判断した場合(ステップS150にて「No」)、#0系CPUサブシステム102と#1系CPUサブシステム112は、同期化完了となる。
CPUの同期制御は、基準となるクロック信号に対してタイミングの調整を行う。しかし、CPUの仕様によっては、外部からの信号やソフトウェア手続きだけでは完全に制御できない部分も存在し、稀に個体差や環境の変化から期待と異なるレジスタ値設定やクロック間位相差が発生することがある。
そのため、同期ずれ発生時(ステップS150にて「Yes」)に、CPU同期部1151は、従系のCPUサブシステム(#1系CPUサブシステム112)を切り離し(ステップS180)、再度組み込む(ステップS160)。すなわち、従系のCPU同期部1151は、#1系CPUサブシステム112に電源をオフ、再度電源をオンする(パワーサイクルをかける)。これにより、もしも従系のCPUサブシステム(#1系CPUサブシステム112)が期待と異なる状態となっていた場合に同期ずれを解消できる。
しかし、従系ではなく、主系のCPUサブシステム(#0系CPUサブシステム102)が期待と異なる状態になっていた場合、このFTサーバは、従系のCPUサブシステムの切り離しと、組み込みを行っても、同期ずれを解消することはできない。その結果、CPU同期部1151は、従系のCPUサブシステムをN回(Nは、あらかじめ定めた閾値)以上繰り返して切り離す(電源をオフにする)ことになる。N回以上切り離した後(ステップS170にて「Yes」)に、従系のCPUサブシステム(#1系CPUサブシステム112)の電源がオンになり起動する。そして、#1系CPUサブシステム112は、#1系CPUサブシステム112と、IOサブシステム(#0系IOサブシステム107および#1系IOサブシステム117)とのインタフェースの動作を確認する(ステップS190)。この場合、CPU接続部1052、CPU接続部1152、IO接続部1062およびIO接続部1162による接続状態の変更に応じて、#1系CPUサブシステム112は、変更された接続状態での動作を確認する。
上記の各インタフェースで動作が正常であることが確認されると、CPU二重化制御回路1051のCPU接続部1052は、CPU接続部1152およびIO接続部1162と連係して主系のCPUサブシステムを切り替える(ステップS200)。すなわち、主系のCPUサブシステムは、#0系CPUサブシステム102から#1系CPUサブシステム112に切り替わる。これにより、FTサーバは、同期するようになる。
図5におけるS190の従系のCPUサブシステムと各IOサブシステムとのI/Fを確認する処理について、図6のフローチャートを用いて、従系のCPUサブシステムが#1系である場合を例に説明する。
図6は、本発明の第2の実施形態に係るフォールトトレラントサーバにおいて、従系のCPUサブシステムとIOサブシステムとのI/Fを確認する処理を説明するフローチャートである。また、図9は、本発明の第2の実施形態に係るフォールトトレラントサーバにおけるサブシステムの接続状態を説明する図である。図9は、従系のCPUサブシステムとIOサブシステムとのインタフェース(I/F)を確認する処理における#0系CPUサブシステム102、#0系IOサブシステム107、#1系CPUサブシステム112、#1系IOサブシステム117の接続状態を説明する図である。なお、図を簡素化するために二重化回路の記述は、省略している。
図6において、FTサーバの#1系CPUサブシステム112は、始めに、#1系CPUサブシステム112と、#1系IOサブシステム117とのI/Fが正常に動作していることを確認する(ステップS191)。
S191の処理の詳細を、図7を用いて説明する。図7は、本発明の第2の実施形態に係るフォールトトレラントサーバにおいて、#1系CPUサブシステム112と、#1系IOサブシステム117とのI/Fを確認する処理を説明するフローチャートである。
始めに、FTサーバは、従系である#1系CPUサブシステム112を起動する(ステップS310)。次に、CPU同期部1051とCPU同期部1151は、主系である#0系CPUサブシステム102から、従系である#1系CPUサブシステム112にコンテキストをコピーして、両系を一致させる(ステップS320)。S310〜S320において、サブシステムの接続状態は、図9の(a)の状態である。
それから、CPU接続部(1052および1152)と、IO接続部(1062および1162)は、主系のサブシステム(#0系サブシステム101)と、従系のサブシステム(#1系サブシステム111)の動作を分離する(ステップS330)。この状態(図9の(b)の接続状態)において、#0系サブシステム101は、#1系サブシステム111と接続されていないように見える。このとき、同様に、#1系サブシステム111からは、#0系サブシステム101と接続されていないように見える。サブシステムを分離した後は、#0系CPUサブシステム102と#0系IOサブシステム107によって、運用は、継続される。
一方、図9の(b)の接続状態において、#1系CPUサブシステム112は、#1系CPUサブシステム112と#1系IOサブシステム117とのI/Fが正常に動作しているかを確認する(ステップS340)。#1系CPUサブシステム112は、例えば、ダミーのデータを、(CPU接続部1152及びIO接続部1162を経由して)#1系IOサブシステム117に送り、返却される結果が期待値の通りであるかを確認する。S330〜S340において、サブシステムの接続状態は、図9の(b)の状態である。
確認した結果が正常でない場合(図6のS192にて「No」)、#1系サブシステム111は、交換する必要があると#1系CPUサブシステム112によって判断される(ステップS195)。確認した結果が正常である場合(図6のS192にて「Yes」)、#1系CPUサブシステム112は、#1系CPUサブシステム112と、#0系IOサブシステム107とのI/Fが正常に動作しているかを確認する(ステップS193)。
ステップS193での確認処理の詳細について、図8を用いて説明する。図8は、本発明の第2の実施形態に係るフォールトトレラントサーバにおいて、#1系CPUサブシステム112と、#0系IOサブシステム107とのI/Fを確認する処理を説明するフローチャートである。
始めに、CPU接続部1152と、IO接続部1162は、#1系CPUサブシステム112と#1系IOサブシステム117を切り離す(ステップS410)。次に、IO同期部(1061および1161)は、#0系IOサブシステム107から#1系IOサブシステム117に、コンテキストをコピーして、IOを二重化する(ステップS420)。それから、FTサーバは、#1系CPUサブシステム112を起動する(ステップS430)。CPU同期部(1051および1151)は、運用中の#0系CPUサブシステム102のコンテキストを#1系CPUサブシステム112にコピーする(ステップS440)。S410〜S440において、サブシステムの接続状態は、図9の(c)の状態である。
CPU接続部1052とIO接続部1062は、#0系IOサブシステム107を#0系CPUサブシステム102から切り離す(ステップS450)。#0系CPUサブシステム102と#1系IOサブシステム117により、運用は、継続される。ここで、CPU接続部1152とIO接続部1062は、切り離された#0系IOサブシステム107を#1系CPUサブシステム112に組み込む。そして、#1系CPUサブシステム112は、#1系CPUサブシステム112と#0系IOサブシステム107とのI/Fが正常に動作していることを確認する(ステップS460)。S450〜S460において、サブシステムの接続状態は、図9の(d)の状態である。
それから、IO同期部(1061および1161)は、運用中の#1系IOサブシステム117から#0系IOサブシステム107にコンテキストをコピーして二重化を行う(ステップS470)。その後、CPU接続部1152とIO接続部1062は、#0系IOサブシステム107を#1系CPUサブシステム112から切り離す(ステップS480)。S470〜S480において、サブシステムの接続状態は、図9の(e)の状態である。
確認した結果が正常でない場合(図6のS194にて「No」)、CPU接続部1052とIO接続部1162は、#1系IOサブシステム117を#0系CPUサブシステム102から切り離す(ステップS196)。そして、#1系サブシステム111を交換(ステップS195)した後に、FTサーバは、S191から処理する。確認した結果が正常である場合(図6のS194にて「Yes」)、図6に示す従系のCPUサブシステムとIOサブシステムとのI/Fを確認する処理(図5のS190)を終了する。そして、CPU二重化制御回路1051は、主系のCPUサブシステムを、#0系CPUサブシステム102から#1系CPUサブシステム112に切り替える(ステップS200)。
次に、図5におけるS200の主系のCPUサブシステムを切り替える処理について、図10のフローチャートを用いて説明する。
図10は、本発明の第2の実施形態に係るフォールトトレラントサーバにおける主系のCPUサブシステムを切り替える処理を説明するフローチャートである。始めに、FTサーバは、従系のCPUサブシステム(#1系CPUサブシステム112)を起動する(ステップS201)。それから、CPU同期部1051とCPU同期部1151は、主系のCPUサブシステムから、従系のCPUサブシステムにコンテキストをコピーし、両系のコンテキストを一致させる(ステップS202)。すなわち、CPU同期部1051とCPU同期部1151は、#0系CPUサブシステム102から#1系CPUサブシステム112にコンテキストをコピーする。それから、CPU二重化制御回路105は、主系と従系を切り替える(ステップS203)。
次に、FTサーバは、従系となった#0系CPUサブシステム102にパワーサイクルを実施する(ステップS204)。CPU同期部1051とCPU同期部1151は、主系のCPUサブシステムから、従系のCPUサブシステムにコンテキストをコピーし、両系のコンテキストを一致させる(ステップS205)。すなわち、CPU同期部1051とCPU同期部1151は、#1系CPUサブシステム112からと、#0系CPUサブシステム102にコンテキストをコピーする。そして、CPU同期部1151は、同期するために#1系CPUサブシステム112と#0系CPUサブシステム102にリセットをかける(ステップS206)。このようにして、FTサーバは、同期化を完了する。
この手法を用いることにより、主系のCPUサブシステムであった#0系CPUサブシステム102にパワーサイクルをかけることが可能となり、図11を用いて前述した主系のCPUサブシステムが期待と異なる状態になっていた場合にも同期ずれを解消することができる。
以上、説明したように、第2の実施形態には、フォールトトレラントサーバにおけるCPUの同期ずれを解消する動作において、無停止で、二重化への復帰を安定的に実現することができるという効果がある。その理由は、CPUサブシステムの系切り替え処理を行う前に切り替え先のCPUサブシステムとIOサブシステムとの動作を検証することによって、切り替え後に動作不良が発生する可能性を排除するからである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
11 第1のサブシステム
12 第1のCPUサブシステム
13 第1のIOサブシステム
14 第1の制御部
21 第2のサブシステム
22 第2のCPUサブシステム
23 第2のIOサブシステム
24 第2の制御部
31 第1の同期部
32 第1の接続部
41 第2の同期部
42 第2の接続部
101 #0系サブシステム
102 #0系CPUサブシステム
103 DIMM
104 CPU
105 CPU二重化制御回路
106 IO二重化制御回路
107 #0系IOサブシステム
108 増設PCIカード
109 オンボードLAN
110 HDD
111 #1系サブシステム
112 #1系CPUサブシステム
113 DIMM
114 CPU
115 CPU二重化制御回路
116 IO二重化制御回路
117 #1系IOサブシステム
118 増設PCIカード
119 オンボードLAN
120 HDD

Claims (7)

  1. 第1のCPUサブシステムと、第1のIOサブシステムと、前記第1のCPUサブシステムおよび前記第1のIOサブシステムに接続する第1の制御手段とを備えた第1のサブシステムと、
    第2のCPUサブシステムと、第2のIOサブシステムと、前記第2のCPUサブシステムおよび前記第2のIOサブシステムに接続する第2の制御手段とを備えた第2のサブシステムとを含み、
    前記第1の制御手段と前記第2の制御手段は、
    前記第1のサブシステムと前記第2のサブシステムの一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成され、
    前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムとの同期ずれが発生した場合、前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかけ、
    前記同期ずれが解消できない場合に、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する、
    フォールトトレラントサーバ。
  2. 前記第1の制御手段は、第1の同期手段と、第1の接続手段とを備え、
    前記第2の制御手段は、前記第2の同期手段と連係する第2の同期手段と、第2の接続手段とを備え、
    前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムに同期ずれが発生した場合、前記第2の同期手段が前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1および第2の同期手段は、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかけ、
    前記第1および第2の同期手段により同期ずれが解消できない場合に、前記第1の接続手段および前記第2の接続手段は、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する
    請求項1に記載のフォールトトレラントサーバ。
  3. 前記接続手段による接続状態の変更後に、前記第2のCPUサブシステムが前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェース、および、前記第2のCPUサブシステムと前記第1のIOサブシステムとが正常であることを確認した場合に、前記第1の制御手段は、主系のCPUサブシステムを、前記第1のCPUサブシステムから前記第2のCPUサブシステムに切り替える
    請求項2に記載のフォールトトレラントサーバ。
  4. 前記第1の制御手段は、前記第1のCPUサブシステムに対して制御を行うCPU二重化制御回路と、IOサブシステムに対して制御を行うIO二重化制御回路とを含む
    請求項1乃至3の何れか一項に記載のフォールトトレラントサーバ。
  5. 前記第1の制御手段により、主系のCPUサブシステムを、前記第1のCPUサブシステムから前記第2のCPUサブシステムに切り替えた後で、
    前記第1の同期手段が前記第1のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1および第2の同期手段は、前記第2のCPUサブシステムのコンテキストを前記第1のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかける
    請求項1乃至4の何れか一項記載のフォールトトレラントサーバ。
  6. 第1のCPUサブシステムと、第1のIOサブシステムと、前記第1のCPUサブシステムおよび前記第1のIOサブシステムに接続する第1の制御手段とを備えた第1のサブシステムと、
    第2のCPUサブシステムと、第2のIOサブシステムと、前記第2のCPUサブシステムおよび前記第2のIOサブシステムに接続する第2の制御手段とを備えた第2のサブシステムとを含み、
    前記第1の制御手段と前記第2の制御手段は、
    前記第1のサブシステムと前記第2のサブシステムの一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成されるフォールトトレラントサーバにおいて、
    前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムとの同期ずれが発生した場合、前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかけ、
    前記同期ずれが解消できない場合に、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する、
    同期化方法。
  7. 第1のCPUサブシステムと、第1のIOサブシステムと、前記第1のCPUサブシステムおよび前記第1のIOサブシステムに接続する第1の制御手段とを備えた第1のサブシステムと、
    第2のCPUサブシステムと、第2のIOサブシステムと、前記第2のCPUサブシステムおよび前記第2のIOサブシステムに接続する第2の制御手段とを備えた第2のサブシステムとを含み、
    前記第1の制御手段と前記第2の制御手段は、
    前記第1のサブシステムと前記第2のサブシステムの一方を主系、他方を従系とする二重化を制御し、2つのシステム内とシステム間の接続状態を制御するよう構成されるフォールトトレラントサーバに、
    前記第1のCPUサブシステムが主系のCPUサブシステム、前記第2のCPUサブシステムが従系のCPUサブシステムとして動作中に、前記第1のCPUサブシステムと前記第2のCPUサブシステムとの同期ずれが発生した場合、前記第2のCPUサブシステムの電源オフ、電源オンを行った後に、前記第1のCPUサブシステムのコンテキストを前記第2のCPUサブシステムにコピーし、前記第1のCPUサブシステムおよび前記第2のCPUサブシステムに対し、同期のためにリセットをかける同期機能と、
    前記同期機能により前記同期ずれが解消できない場合に、前記第2のCPUサブシステムと前記第2のIOサブシステムとのインタフェースと、前記第2のCPUサブシステムと前記第1のIOサブシステムとのインタフェースが正常に動作していることを確認可能な接続状態に変更する接続機能と
    を、実現させる
    コンピュータ・プログラム。
JP2015049202A 2015-03-12 2015-03-12 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム Active JP6540113B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015049202A JP6540113B2 (ja) 2015-03-12 2015-03-12 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015049202A JP6540113B2 (ja) 2015-03-12 2015-03-12 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2016170577A true JP2016170577A (ja) 2016-09-23
JP6540113B2 JP6540113B2 (ja) 2019-07-10

Family

ID=56983824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015049202A Active JP6540113B2 (ja) 2015-03-12 2015-03-12 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP6540113B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011370A (ja) * 1996-06-19 1998-01-16 Oki Electric Ind Co Ltd 多重化システム
JP2003506788A (ja) * 1999-08-09 2003-02-18 サン・マイクロシステムズ・インコーポレイテッド 冗長システム・コントローラを試験する診断ケージ・モード
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011370A (ja) * 1996-06-19 1998-01-16 Oki Electric Ind Co Ltd 多重化システム
JP2003506788A (ja) * 1999-08-09 2003-02-18 サン・マイクロシステムズ・インコーポレイテッド 冗長システム・コントローラを試験する診断ケージ・モード
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム

Also Published As

Publication number Publication date
JP6540113B2 (ja) 2019-07-10

Similar Documents

Publication Publication Date Title
US9582448B2 (en) Transmission apparatus and control unit
JP2006178616A (ja) フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP6098778B2 (ja) 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
JP4061273B2 (ja) シームレス・クロック
JP2017146833A (ja) 監視装置、フォールトトレラントシステムおよび方法
JP6540113B2 (ja) フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム
JP2009098988A (ja) フォルトトレラントコンピュータシステム
JP2006058960A (ja) 冗長構成のサーバシステムにおける同期化方法及びシステム
JP5176914B2 (ja) 伝送装置及び冗長構成部の系切替え方法
JP6056801B2 (ja) フォールトトレラントサーバ、同期化方法、及びプログラム
JP6394727B1 (ja) 制御装置、制御方法、及び、フォールトトレラント装置
JP7140360B2 (ja) 情報処理装置、情報処理システム、情報処理方法、プログラム
JP5604799B2 (ja) フォールトトレラントコンピュータ
JP5556086B2 (ja) 二重化システム、及び、二重化方法
JP4165499B2 (ja) コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法
JP2011028481A (ja) フォールトトレラントサーバ、プロセッサ切り替え方法およびプロセッサ切り替えプログラム
JP2019016170A (ja) コントローラ装置、及び二重化システムの同期化方法
JP6511738B2 (ja) 冗長システム、冗長化方法および冗長化プログラム
US11914338B2 (en) Redundant automation system and method for operating the redundant automation system
JP2009205630A (ja) フォールトトレラントサーバ、フルバックアップ方法、およびフルバックアッププログラム
JP2839664B2 (ja) 計算機システム
CN113282231B (zh) 存储装置以及相关闪存控制器
JP2024005993A (ja) デジタル出力制御システム
JP6449671B2 (ja) コアi/oフェールオーバー制御システムおよびコアi/oフェールオーバー制御方法
JP2016110173A (ja) フォールトトレラントシステム、稼働系装置、待機系装置、フェイルオーバー方法、および、フェイルオーバープログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190527

R150 Certificate of patent or registration of utility model

Ref document number: 6540113

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150