JP6278602B2 - 高可用性システム - Google Patents
高可用性システム Download PDFInfo
- Publication number
- JP6278602B2 JP6278602B2 JP2013043108A JP2013043108A JP6278602B2 JP 6278602 B2 JP6278602 B2 JP 6278602B2 JP 2013043108 A JP2013043108 A JP 2013043108A JP 2013043108 A JP2013043108 A JP 2013043108A JP 6278602 B2 JP6278602 B2 JP 6278602B2
- Authority
- JP
- Japan
- Prior art keywords
- standby
- active
- switching
- abnormality
- activation
- 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.)
- Expired - Fee Related
Links
Images
Description
図1は、この発明の実施の形態1による高可用性システムのハードウェア構成及びソフトウェア構成を含む構成図である。
図1に示す高可用性システムは、2個のCPU101,201を備えたマルチコアプロセッサに多重系システムを構築する例である。システム系A100は、CPU101、OS(オペレーティングシステム)102、CPU間通信部103、アプリケーションプログラム104、異常検出処理部105、IOアクセス制御部106から構成され、システム系B200は、CPU201、OS202、CPU間通信部203、アプリケーションプログラム204、異常検出処理部205、IOアクセス制御部206から構成されている。また、高可用性システムは、これらシステム系A100とシステム系B200とが共通して用いるIOデバイス1、不揮発メモリ2、メモリ3、通信路4を備えている。
(1)2重系システムの起動
電源オンなど、システム起動トリガを検出すると、システム系A100のCPU101は不揮発メモリ2にアクセスし、系起動情報の取得を行う。図4は、不揮発メモリ2の構成例を示している。不揮発メモリ2内には系A起動情報21と系B起動情報22が格納されている。システム系A100は系A起動情報21を取得し、系起動情報判定(ステップST1)を行い、運用系起動か待機系起動かを判定する。システム系A100の系起動情報が運用系起動である場合、システム系A100は、OSロード(ステップST2)を行う。一方、システム系A100の系起動情報が待機系起動である場合、システム系A100は待機系として起動し、運用系として起動する系からの「待機系動作開始通知」受信待ち(ステップST18)に遷移する。
以下は、システム系A100が運用系で起動し、システム系B200が待機系で起動する例で説明する。
なお、運用系であるシステム系A100が待機系であるシステム系B200のOS202を展開するタイミングはシステム系A100が通常動作(ステップST6)状態に限らず、システム系A100のOS102をロードするOSロード(ステップST2)において、システム系B200のOS202のロードを同時に行い「待機系動作開始通知」を行ってもよい。運用系であるシステム系A100の処理負荷が低いタイミングに行うことが望ましく、運用系の処理遅延やレイテンシの低下を小さくすることができる。
システム系A100の異常検出処理部105、システム系B200の異常検出処理部205は、それぞれ自身の系内の再起動が必要なソフトウェア要因による異常を検出する機能を有する。以下に具体的な検出方法を記載する。
・例外などCPU101,201のエラー検出情報を取得する。
・チェックサムを利用したメモリ内容の監視を行い、メモリ破壊、データの書き込み失敗の検出を行う。
・アプリケーションプログラム104,204で周期的に動作する処理が一定周期以内に動作しているか監視し、処理遅延の検出を行う。
・系A用メモリ31,系B用メモリ32の特定の領域に確認用データを格納し、その領域が期待しない値に書き換わらないか監視する。メモリ破壊、スタックオーバフローの検出を行う。
・OS102,202のスケジューリング情報を参照し、スケジューリングのキュー操作から一定時間以上同一キューがRUN状態になっていないか、周期動作する処理が周期的にRUN状態に遷移しているかを監視する。
通信路4を介したCPU101とCPU201間でCPU間通信部103,203と共有メモリ33を利用し、システム系A100は周期的に共有メモリ33の稼働情報を更新する(ステップST401)。CPU間通信部103,203でシステム系B200へ稼働情報更新通知を送出する(ステップST402)。システム系B200ではシステム系A100からのCPU間通信を受信し、共有メモリ33の稼働内容が期待する値に更新されているか確認する(ステップST405)ことでシステム系A100が正常動作を行っているかを監視する。また、システム系B200も同様に、周期的に共有メモリ33の稼働情報を更新(ステップST406)し、CPU間通信でシステム系A100に稼働情報更新通知(ステップST403)を送出する。システム系B200から稼働情報更新通知(ステップST403)を受信したシステム系A100では共有メモリ33の稼働内容が期待する値に更新されているか確認(ステップST404)することでシステム系B200が正常動作を行っているか監視する。共有メモリ33の内容が期待する値に更新されていない場合や周期的に稼働情報更新通知が通知されない場合、監視対象の系が異常な状態であると判断する。
・異常検出による系の切換え
[システム系A100の異常検出処理部105による異常検出]
図6は運用系で異常検出した場合のシーケンスの例を示す図である。運用系であるシステム系A100の異常検出処理部105で動作継続不可能な異常を検出(ステップST12)した場合、通信路4を介したCPU101とCPU201間の通信にCPU間通信部103,203を使用し「系切換通知」をシステム系B200へ送出する(ステップST13)。システム系A100は、不揮発メモリ2に格納されているシステム系A100の系起動情報を「待機系起動」に更新(ステップST14)し、IOアクセス制御部106の制御情報をアクセス不可に更新し、再起動する。システム系A100は再起動後、システム系A100の系起動情報判定(ステップST1)を行い、待機系起動し、待機状態へ遷移する。
図7は待機系で異常検出した場合のシーケンスの例を示す図である。待機系であるシステム系B200の異常検出処理部205でシステム系A100の動作継続不可能な異常を検出(ステップST23)した場合、通信路4を介し、CPU間通信部103,203を使用し、システム系B200からシステム系A100へ「系切換要求」を通知(ステップST25)し、異常検出による系の切換えを要求する。
システム系A100では「系切換要求」を受信(ステップST11)すると、CPU間通信部103,203を使用して「系切換通知」をシステム系B200へ通知し、システム系A100の異常検出処理部105で異常検出した時と同様に、システム系A100の系起動情報更新(ステップST14)を行い、IOアクセス制御部106の制御情報をアクセス不可に更新し、再起動後、待機系として起動する。
システム系B200で「系切換通知」受信後は、システム系A100の異常検出処理部105で異常検出時した場合と同じ処理を行う。
待機系であるシステム系B200の異常検出処理部205で、システム系A100の動作継続不可能な異常を検出(ステップST701)し、システム系A100へ「系切換要求」を送信(ステップST25)後、図示しないタイマを設定し、タイマカウントダウン(ステップST702)を行う。タイムアウト検出するまでにシステム系A100から系切換通知を受信すれば図7で示したように動作する。一方、システム系A100から系切換通知が無く、タイマのタイムアウトを検出(ステップST703)した場合、システム系A100は応答できる状態にないと判断し、システム系B200が自発的に系の切換えを行う。このときシステム系B200は、システム系B200の系起動情報を運用系起動に更新(ステップST17)すると共に、システム系A100の系起動情報を待機系起動に更新(ステップST704)し、また、IOアクセス制御部206の制御情報をアクセス許可に更新し、システム系A100を再起動させ、システム系B200を運用系に切換える。
システムのソフトウェアのアップデートによる、システムの再起動時やメモリリークなどを防止するために周期的にシステムを再起動する場合においても異常検出時と同様にCPU間通信部103,203を使用し「系切換通知」を待機系起動している系へ通知し、待機系へ切換えを行う。
システム系B200が運用系へ切換った後、使用済のシステム系A100は再起動し、システム系A100の系起動情報判定(ステップST1)を行い、待機系として起動する。システム系B200は通常動作(ステップST6)を開始後、待機系であるシステム系A100のOS展開完了状態を判定(ステップST7)し、未完了である場合、システム系B200がシステム系A100のOS102を系A用メモリ31へロード(ステップST8)する。IOデバイス1へのアクセスは2重系システムの起動で記載した方法と同様に、運用系であるシステム系B200の動作に影響が小さくなるようにスケジューリングしアクセスを行う。展開完了後、待機系であるシステム系A100に待機系動作開始通知(ステップST9)を通知し、待機系としてのシステム系A100の動作を開始する。
なお、システム系A100が系A用メモリ31へOS102をロードする方法も可能である。また、図5で示したように、システム系B200が待機系で異常であった場合、待機系として再起動を行うようにしてもよい。
システム起動時、または系切換り後、運用系が待機系のOSをロードする際、通常動作を行っている運用系動作への影響が小さくなるようにIOへのアクセスをスケジューリングする。例えば待機系で使用するために連続した時間IOへアクセスする必要がある場合、処理を分割し、周期的にIOアクセスを中断させ、IOアクセススケジューリングを実施することで運用系からのIOデバイス1へのアクセスを可能にし、運用系の動作が待機系の処理により長時間待ち状態になることを防止する。また、運用系が使用するIOデバイス1へのアクセスと待機系が使用するIOデバイス1へのアクセス処理が同時に発生した場合は、運用系のIOアクセスを優先するスケジューリングを行い、運用系の動作への影響を小さくする。
以下、IOアクセススケジューリング部107,207で行うスケジューリングの方法について説明する。
(6)2重系システムの終了
運用系として動作しているシステム系B200が通常動作中にシステムシャットダウンを検出(ステップST10)した場合、CPU間通信を使用し、待機系であるシステム系A100へシャットダウン通知を通知(ステップST15)する。その後、システム系B200はシステムシャットダウン(ステップST16)を行う。
システム系A100はシャットダウン通知を受信(ステップST22)すると、システム系B200と同様に、システムのシャットダウン(ステップST16)を行い、処理を終了する。
系切換えが必要な要因が発生し、待機系に切換り通常動作が開始するまでに必要な時間は系切換え時間とIOデバイス初期化時間のみであり、システムのダウンタイムを大幅に短縮する効果が得られる。また、運用系と待機系が循環動作可能な構成であるため、切換えが必要になった系を再起動し待機系として再利用することで、常にバックアップの系が備わった状態を構築でき、前述のダウンタイム短縮の効果を繰り返し得ることができるため、システム全体として可用性を向上させる効果が得られる。
ハードウェアを多重化することなく、既存のマルチコア技術を使用し多重系システムを実現しているため、システムのサイズや、部品点数への影響は無く、コストへの影響もない。そのため、マルチコアプロセッサを搭載した既存システムへの導入や、また近年組込み機器において用いられることが多いSoC(System−on−a−chip)やSiP(System In Package)を使用したシステムにもハードウェアを変更することなく導入が可能であるという効果がある。
図13はこの発明の実施の形態2における高可用性システムのハードウェア構成およびソフトウェア構成を含む構成図である。図13は、4個のCPU101a〜101c,201を搭載するシステムを例に、システム系A100aに3個のCPU101a〜101c、システム系B200aに1個のCPU201を割り当てた構成の例を表わしている。
2重系システムの起動方法、障害の検出方法、系の切換方法、系の再起動、IOアクセススケジューリング方法、2重系システムの終了については実施の形態1と同様であるため、ここでの説明は省略する。
実施の形態3における図面上の構成は図1と同様であるため、図1を用いて説明する。図1の構成において、運用系として動作しているシステム系A100で系切換えが必要な事象が発生した場合、待機系として動作しているシステム系B200へ切換え、IOデバイス1の初期化を行う。この時、システム系A100で発生した系切換えが必要になった要因をCPU間通信と共有メモリ33を使用してシステム系B200へ通知する。システム系B200では系切換えの要因に応じて初期化が必要なIOデバイス1の初期化(図2におけるステップST5)のみ行い、系切換えの要因と関連なく、正常に動作していたIOデバイス1は切換ったシステム系B200で引き継いで動作を行う。即ち、実施の形態3の系切換手段は、系の切換要因に従い、初期化を行う必要のない周辺ハードウェアは切換前の状態を継続して使用し、その周辺ハードウェアは初期化を行わない。
Claims (6)
- 複数の演算CPUを有するマルチコアプロセッサと、前記複数の演算CPUが共通して用いる周辺ハードウェアとを搭載した装置を用いた高可用性システムであって、
前記複数の演算CPUを運用系と待機系に分割して多重系システムを構築すると共に、前記周辺ハードウェアは、前記運用系と前記待機系のそれぞれの起動情報を格納するための起動情報格納部を有し、
前記運用系と前記待機系のそれぞれは、
前記起動情報に従って前記運用系と前記待機系とを運用可能状態とする起動手段と、
前記運用系の稼働状態の監視を行い、当該運用系の異常を検出する異常検出手段と、
前記運用系の異常が検出された場合は、前記待機系を前記運用系として系切換を行うと共に、前記起動情報を当該系切換に対応して更新する系切換手段と、
前記運用系から前記待機系に切換った場合に、前記待機系としての再起動を行う再起動手段とを備え、
前記待機系は運用可能状態の後にスリープ状態に移行し、かつ、当該スリープ状態移行後、周期的に前記異常検出手段が起動し監視を行い、
前記運用系の前記異常検出手段は、系内監視を行うことで、前記運用系の稼働状態の監視を行い、
前記待機系の前記異常検出手段は、前記演算CPU間の通信を利用した系間監視を行うことで、前記運用系の稼働状態の監視を行う
ことを特徴とする高可用性システム。 - 前記系切換手段は、前記異常が検出された場合以外に、所定の系切換要求に基づいて系切換を行うことを特徴とする請求項1記載の高可用性システム。
- 前記運用系の前記起動手段は、前記待機系の起動処理を行う際、前記運用系の通常動作を優先することを特徴とする請求項1または請求項2記載の高可用性システム。
- 前記待機系の前記起動手段は、当該待機系の起動処理を行う際、前記運用系の通常動作を優先することを特徴とする請求項1から請求項3のうちのいずれか1項記載の高可用性システム。
- 前記運用系と前記待機系とで前記複数のCPUの分割比率を不均一として、CPUの分割比率が高い系を前記運用系とし、当該運用系の異常による系切換が発生した場合は前記再起動を行い、当該再起動完了後、再度前記CPUの分割比率の高い系を運用系とする系切換を行うことを特徴とする請求項1から請求項4のうちのいずれか1項記載の高可用性システム。
- 前記系切換手段は、系の切換要因に従い、初期化を行う必要のない周辺ハードウェアは切換前の状態を継続して使用し、当該周辺ハードウェアを初期化の対象から除くことを特徴とする請求項1から請求項5のうちのいずれか1項記載の高可用性システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013043108A JP6278602B2 (ja) | 2013-03-05 | 2013-03-05 | 高可用性システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013043108A JP6278602B2 (ja) | 2013-03-05 | 2013-03-05 | 高可用性システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014170477A JP2014170477A (ja) | 2014-09-18 |
JP6278602B2 true JP6278602B2 (ja) | 2018-02-14 |
Family
ID=51692812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013043108A Expired - Fee Related JP6278602B2 (ja) | 2013-03-05 | 2013-03-05 | 高可用性システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6278602B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6468079B2 (ja) | 2015-06-01 | 2019-02-13 | 富士通株式会社 | 制御システム及び同システムの処理方法 |
WO2017170674A1 (ja) * | 2016-03-31 | 2017-10-05 | セイコーエプソン株式会社 | 原料供給装置、原料供給装置の原料供給方法、シート製造装置 |
JP6623191B2 (ja) * | 2017-03-28 | 2019-12-18 | 日立オートモティブシステムズ株式会社 | 車載用制御装置 |
CN110399145A (zh) * | 2018-04-24 | 2019-11-01 | 宏碁股份有限公司 | 电脑系统、其更新方法及电脑程序产品 |
JP6925570B1 (ja) * | 2020-09-25 | 2021-08-25 | 三菱電機株式会社 | 冗長化システム、制御方法及びプログラムセット |
WO2023281766A1 (ja) * | 2021-07-09 | 2023-01-12 | 株式会社デンソー | 自動車用コンピュータの制御方法、及び車両用電子制御装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2785992B2 (ja) * | 1990-02-13 | 1998-08-13 | 富士通株式会社 | サーバプログラムの管理処理方式 |
JPH04239831A (ja) * | 1991-01-24 | 1992-08-27 | Okayama Nippon Denki Software Kk | 相互プロセッサバックアップ方式 |
JPH04268643A (ja) * | 1991-02-22 | 1992-09-24 | Nec Corp | 情報処理システム |
JPH07219799A (ja) * | 1993-12-09 | 1995-08-18 | Mitsubishi Electric Corp | 待機冗長システムおよび状態遷移順序決定方法 |
JP2830857B2 (ja) * | 1996-09-09 | 1998-12-02 | 三菱電機株式会社 | データストレージシステム及びデータストレージ管理方法 |
JP2007257259A (ja) * | 2006-03-23 | 2007-10-04 | Nec Corp | 情報処理装置、記憶領域クリーンアップ方法およびプログラム |
JP2008077388A (ja) * | 2006-09-21 | 2008-04-03 | Nec Corp | マルチプロセッサ制御システム、方法、およびプログラム |
-
2013
- 2013-03-05 JP JP2013043108A patent/JP6278602B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014170477A (ja) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6278602B2 (ja) | 高可用性システム | |
JP5405320B2 (ja) | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム | |
US8321693B2 (en) | Parallel processing method and system, for instance for supporting embedded cluster platforms, computer program product therefor | |
JP4938080B2 (ja) | マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路 | |
JP6438353B2 (ja) | 半導体装置及び診断テスト方法 | |
TWI390410B (zh) | 不須執行電力開啟自我測試之操作系統傳送及啟動 | |
US7721148B2 (en) | Method and apparatus for redirection of machine check interrupts in multithreaded systems | |
JP6089349B2 (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
JP2007299404A (ja) | 高速ブートウェークアップを実行するシステム | |
CN111095205A (zh) | 用于片上系统的预启动环境的多核框架 | |
JP2008293245A (ja) | フェイルオーバ方法、計算機システム、管理サーバ及び予備サーバの設定方法 | |
US20190332425A1 (en) | Multithread framework for use in pre-boot environment of a system-on-chip | |
US9311142B2 (en) | Controlling memory access conflict of threads on multi-core processor with set of highest priority processor cores based on a threshold value of issued-instruction efficiency | |
CN101876926A (zh) | 一种非对称结构的软件三机热备容错方法 | |
WO2008101386A1 (fr) | Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux | |
JP2007334403A (ja) | 計算機システム障害対応方式及び計算機システム障害対応方法 | |
US8108719B2 (en) | Information processing device and failure concealing method therefor | |
JP5035227B2 (ja) | 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム | |
US9880888B2 (en) | Executing an operating system in a multiprocessor computer system | |
US8522060B2 (en) | Computer system, method for controlling the same, and program | |
JP3690666B2 (ja) | マルチコンピュータシステム | |
US20130305251A1 (en) | Scheduling method and scheduling system | |
JP5970846B2 (ja) | 計算機システム及び計算機システムの制御方法 | |
JP6459298B2 (ja) | 情報処理システムおよびその制御方法およびその制御プログラム | |
JP5502789B2 (ja) | マルチプロセッサ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170620 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170810 |
|
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: 20171219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180116 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6278602 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |