JP7327235B2 - フォールトトレラントシステム - Google Patents
フォールトトレラントシステム Download PDFInfo
- Publication number
- JP7327235B2 JP7327235B2 JP2020053258A JP2020053258A JP7327235B2 JP 7327235 B2 JP7327235 B2 JP 7327235B2 JP 2020053258 A JP2020053258 A JP 2020053258A JP 2020053258 A JP2020053258 A JP 2020053258A JP 7327235 B2 JP7327235 B2 JP 7327235B2
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- primary
- synchronization information
- machine
- bytecode
- 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
Links
- 238000012545 processing Methods 0.000 claims description 117
- 230000000903 blocking effect Effects 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000000034 method Methods 0.000 description 54
- 230000006854 communication Effects 0.000 description 45
- 238000004891 communication Methods 0.000 description 44
- 230000015654 memory Effects 0.000 description 29
- 230000004044 response Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 12
- 238000001152 differential interference contrast microscopy Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 2
- 239000010979 ruby Substances 0.000 description 2
- 229910001750 ruby Inorganic materials 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Description
図1に示されるように、比較例に係るフォールトトレラントシステム9は、プライマリマシン800と、セカンダリマシン900とを備える。プライマリマシン800及びセカンダリマシン900は、ネットワーク300を介して通信可能に接続される。プライマリマシン800とセカンダリマシン900とは、両方とも同じ処理を実行する。プライマリマシン800に障害が発生した場合、セカンダリマシン900が処理を引き継ぐ。このようにすることで、フォールトトレラントシステム9全体として、処理が継続される。
図2に示されるように、本開示の一実施形態に係るフォールトトレラントシステム1は、プライマリマシン100と、セカンダリマシン200とを備える。プライマリマシン100とセカンダリマシン200とは、ネットワーク300を介して通信可能に接続される。プライマリマシン100とセカンダリマシン200とは、両方とも同じ処理を実行する。プライマリマシン100に障害が発生した場合、セカンダリマシン200が処理を引き継ぐ。このようにすることで、フォールトトレラントシステム1全体として、処理が継続される。
ハードウェア140は、CPU(Central Processing Unit)142と、メモリ144と、NIC(Network Interface Controller)146とを備える。ハードウェア240は、CPU242と、メモリ244と、NIC246とを備える。ハードウェア140及び240は、区別されない場合、単にハードウェアと称される。
プライマリVM120は、プライマリOS130上で動作する。セカンダリVM220は、セカンダリOS230上で動作する。プライマリVM120及びセカンダリVM220は、VMと総称される。プライマリOS130及びセカンダリOS230は、OSと総称される。つまり、VMは、OS上で動作する。OS及びVMの機能は、CPUを含むハードウェアによって実現される。
ここで、mrubyのプログラムとして、外部から文字列を取得し、取得した文字列に別の文字列を連結し、連結した文字列を外部に出力するプログラムが例として説明される。2つの文字列は、X及びYと表されるとする。このプログラムは、以下の4つのバイトコードにコンパイルされ得る。コードA、B、C及びDはそれぞれ1命令に対応する。
コードA:VMは、第1レジスタに文字列定数「X」を代入する。
コードB:VMは、外部から入力されたデータとして文字列を取得し、第2レジスタに代入する。本プログラム例において、文字列として「Y」が取得される。
コードC:VMは、第1レジスタの文字列と第2レジスタの文字列とを連結し、連結した文字列を第1レジスタに代入する。
コードD:VMは、第1レジスタの文字列を外部に出力する。
プライマリマシン100の障害が発生した場合、プライマリVM120は、バイトコードの実行等の制御処理を正常に実行できなくなることがある。フォールトトレラントシステム1は、バイトコードの実行等の制御処理を、プライマリマシン100のプライマリVM120からセカンダリマシン200のセカンダリVM220に切り替える。フォールトトレラントシステム1は、セカンダリマシン200だけが動作するシングル運転の状態となる。シングル運転の状態において、プライマリVM120の動作を代替するセカンダリVM220は、プライマリVM120との同期処理を停止する。
セカンダリマシン200の障害が発生した場合、フォールトトレラントシステム1は、プライマリマシン100だけが動作するシングル運転の状態となる。シングル運転の状態において、プライマリVM120は、セカンダリVM220との同期処理を停止する。
バイトコードは、実行中に外部割り込みを受け付ける命令と、実行中に外部割り込みを受け付けない命令とに分類される。実行中に外部割り込みを受け付ける命令は、処理の実行に応じた外部割り込みが発生する命令に対応し、割り込み命令又は第1命令とも称される。実行中に外部割り込みを受け付けない命令は、処理の実行に応じた外部割り込みが発生しない命令に対応し、非割り込み命令又は第2命令とも称される。上述した、バイトコードを特定する情報は、バイトコードが割り込み命令に該当するか非割り込み命令に該当するかを特定してもよい。
NICは、ネットワーク300からのデータの受信を完了した場合、又は、ネットワーク300へのデータの送信を完了した場合に、外部割り込みを発行する。OSは、外部割り込みを受け付けると、他の処理を中断して、NICで受信したデータをNICから読み出したり、NICに送信させるデータをNICに書き込んだりする。
S51:VMは、ネットワーク送受信に関する命令に対応するバイトコードの実行を開始する。
S52:VMは、OSのネットワーク送受信に関する命令(システムコール)を実行し、完了するまで待つ。
S53:OSは、NICとの間でデータを送受信し、NICから外部割り込みを受信する。外部割り込みは、NICが外部からデータを受信した場合、又は、NICが外部にデータを送信した場合に発生する。
S54:OSは、VMとの間でデータを送受信し、VMに外部割り込みを通知する。
S55:VMは、外部割り込みによってネットワーク送受信命令の処理が完了したことを把握し、システムコールから復帰する。また、プライマリVM120は、外部割り込みを受けた場合に、外部割り込みを同期情報生成部124に出力し、同期情報生成部124で外部割り込みに関する情報を含む同期情報を生成し、セカンダリVM220に送信する。
S56:VMは、送受信したデータに対して必要な処理を実行し、ネットワーク送受信に関する命令に対応するバイトコードの実行を終了する。
ハードウェアは、タイマーを更に備えるとする。タイマーは、設定された時間に応じて外部割り込みを発行する。タイマーは、一定の周期で外部割り込みを発行するように設定されてよい。タイマーは、1回毎に設定される時間に応じて外部割り込みを発行してもよい。
S61:VMは、タイマー処理に関する命令に対応するバイトコードの実行を開始する。
S62:VMは、OSのタイマー命令(システムコール)を実行し、完了するまで待つ。
S63:OSは、タイマーに待ち時間(インターバル)を設定する。
S64:OSは、タイマーに設定された時間が経過した後にタイマーが発行する外部割り込みを受信する。
S65:OSは、VMに外部割り込みを通知する。
S66:VMは、外部割り込みによってタイマー処理が完了したことを把握し、システムコールから復帰する。また、プライマリVM120は、外部割り込みを受けた場合に、外部割り込みを同期情報生成部124に出力し、同期情報生成部124で外部割り込みに関する情報を含む同期情報を生成し、セカンダリVM220に送信する。
S67:VMは、タイマーに対して必要な処理を実行し、タイマー処理に関する命令に対応するバイトコードの実行を終了する。
以下、他のいくつかの実施形態が説明される。
プライマリVM120及びセカンダリVM220は、外部との間での入出力を伴う動作に対応するバイトコードを実行する場合に、同期情報を送受信してもよい。この場合、プライマリVM120及びセカンダリVM220は、外部との間で入出力が実行されるタイミングのみ、互いに処理を同期させる。
プライマリVM120とセカンダリVM220との間における同期情報の送受信は、例えばイーサネット(登録商標)によって実行されてよい。この場合、プライマリマシン100及びセカンダリマシン200それぞれにIPアドレスが割り当てられる必要がある。
以下、TCP/IP通信の継続の方法の一例が説明される。図2及び図3で例示したように、プライマリマシン100及びセカンダリマシン200はそれぞれ、必須ではないが、ネットワーク処理部150及び250を更に備える。ネットワーク処理部150及び250は、区別されない場合、単にネットワーク処理部と称される。
セカンダリマシン200は、セカンダリVM220として、第1セカンダリVM220Aから第NセカンダリVM220Nまでを備える。第1セカンダリVM220Aから第NセカンダリVM220Nまでは、それぞれ第1アプリケーション210Aから第Nアプリケーション210Nまでの処理を実行する。セカンダリマシン200は、ネットワーク処理部250を、セカンダリVM220から切り離した構成として備える。
100 プライマリマシン(110:アプリケーション、110A~110N:第1~第Nアプリケーション、120:プライマリVM、120A~120N:第1~第NプライマリVM、122:割り込み遮断部、124:同期情報生成部、130:プライマリOS)
140 ハードウェア(142:CPU、144:メモリ、146:NIC)
150 ネットワーク処理部(152:ネットワークプロトコルスタック、154:外部通信用仮想NIC、156:同期通信用仮想NIC、158:仮想L2SW)
200 セカンダリマシン(210:アプリケーション、210A~210N:第1~第Nアプリケーション、220:セカンダリVM、220A~220N:第1~第NセカンダリVM、222:割り込み遮断部、224:同期実行部、230:セカンダリOS)
240 ハードウェア(242:CPU、244:メモリ、246:NIC)
250 ネットワーク処理部
300 ネットワーク
500 外部機器
Claims (8)
- プライマリOS上で動作するプライマリバーチャルマシンであって、バイトコードを実行し、実行したバイトコードに関する情報に基づく同期情報を出力する同期情報生成部と、前記プライマリOSに入力される第1の割り込みを遮断する第1割り込み遮断部とを有するプライマリバーチャルマシンと、
セカンダリOS上で動作するセカンダリバーチャルマシンであって、前記同期情報に基づいて前記バイトコードを実行する同期実行部と、前記セカンダリOSに入力される第2の割り込みを遮断する第2割り込み遮断部とを有するセカンダリバーチャルマシンと
を備え、
前記同期情報生成部は、前記第1の割り込みを取得した場合、前記第1の割り込みに基づいて前記バイトコードを実行し、
前記第1割り込み遮断部は、前記バイトコードに含まれる、前記第1の割り込みを受け付ける命令の実行中に入力された前記第1の割り込みを前記同期情報生成部に出力する、
フォールトトレラントシステム。 - 前記第2割り込み遮断部は、
前記プライマリバーチャルマシンにおいて、前記第1の割り込みに基づいて前記バイトコードが実行される場合に前記第2の割り込みを捨て、
前記プライマリバーチャルマシンにおいて、前記第1の割り込みに基づいて前記バイトコードが実行されない場合に、前記第2の割り込みを前記同期実行部に出力する、
請求項1に記載のフォールトトレラントシステム。 - 前記バイトコードは、実行中に前記割り込みを受け付ける第1命令と実行中に前記割り込みを受け付けない第2命令とを含み、
前記第1割り込み遮断部は、前記同期情報生成部が前記第1命令を実行中に入力された前記割り込みを前記同期情報生成部に出力し、前記同期情報生成部が前記第2命令を実行中に入力された前記割り込みを前記同期情報生成部に出力しない、請求項1又は2に記載のフォールトトレラントシステム。 - 前記割り込みは、前記第1命令で受け付けられる第1割り込みと、前記第1命令で受け付けられない第2割り込みとを含み、
前記第1割り込み遮断部は、前記同期情報生成部が実行中の命令にかかわらず前記第2割り込みを遮断し、前記同期情報生成部が前記第2命令を実行中に前記第1割り込みを遮断する、請求項3に記載のフォールトトレラントシステム。 - 前記同期情報は、前記同期情報生成部が実行したバイトコードを特定する情報を含む、請求項1から4までのいずれか一項に記載のフォールトトレラントシステム。
- 前記バイトコードは、外部からデータを取得する入力命令を含み、
前記同期情報生成部は、前記入力命令を実行して取得したデータに関する情報を、前記同期情報として出力する、請求項1から5までのいずれか一項に記載のフォールトトレラントシステム。 - 前記割り込みは、タイマー処理を含む、請求項1から6までのいずれか一項に記載のフォールトトレラントシステム。
- 前記割り込みは、ネットワーク送受信処理を含む、請求項1から7までのいずれか一項に記載のフォールトトレラントシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020053258A JP7327235B2 (ja) | 2020-03-24 | 2020-03-24 | フォールトトレラントシステム |
US17/166,499 US11663150B2 (en) | 2020-03-24 | 2021-02-03 | Fault tolerant system |
CN202110176279.9A CN113448773A (zh) | 2020-03-24 | 2021-02-09 | 容错系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020053258A JP7327235B2 (ja) | 2020-03-24 | 2020-03-24 | フォールトトレラントシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021152802A JP2021152802A (ja) | 2021-09-30 |
JP7327235B2 true JP7327235B2 (ja) | 2023-08-16 |
Family
ID=77808801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020053258A Active JP7327235B2 (ja) | 2020-03-24 | 2020-03-24 | フォールトトレラントシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11663150B2 (ja) |
JP (1) | JP7327235B2 (ja) |
CN (1) | CN113448773A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024052311A (ja) * | 2022-09-30 | 2024-04-11 | 横河電機株式会社 | プライマリマシン及びフォールトトレラントシステム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010026932A (ja) | 2008-07-23 | 2010-02-04 | Toshiba Corp | 高可用システム及び実行状態制御方法 |
JP2014059749A (ja) | 2012-09-18 | 2014-04-03 | Yokogawa Electric Corp | フォールトトレラントシステム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127121B2 (en) * | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US6895460B2 (en) * | 2002-07-19 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Synchronization of asynchronous emulated interrupts |
US7257811B2 (en) * | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US7418584B1 (en) * | 2004-05-11 | 2008-08-26 | Advanced Micro Devices, Inc. | Executing system management mode code as virtual machine guest |
US8230410B2 (en) * | 2009-10-26 | 2012-07-24 | International Business Machines Corporation | Utilizing a bidding model in a microparallel processor architecture to allocate additional registers and execution units for short to intermediate stretches of code identified as opportunities for microparallelization |
US9081596B2 (en) * | 2010-03-16 | 2015-07-14 | Panasonic Intellectual Property Management Co., Ltd. | Information processing device, virtual machine creation method, and application distribution system |
US8924501B2 (en) * | 2011-11-30 | 2014-12-30 | Red Hat Israel, Ltd. | Application-driven shared device queue polling |
US10713195B2 (en) * | 2016-01-15 | 2020-07-14 | Intel Corporation | Interrupts between virtual machines |
US10248595B2 (en) * | 2017-08-10 | 2019-04-02 | Infineon Technologies Ag | Virtual machine monitor interrupt support for computer processing unit (CPU) |
JP2019114097A (ja) * | 2017-12-25 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2020
- 2020-03-24 JP JP2020053258A patent/JP7327235B2/ja active Active
-
2021
- 2021-02-03 US US17/166,499 patent/US11663150B2/en active Active
- 2021-02-09 CN CN202110176279.9A patent/CN113448773A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010026932A (ja) | 2008-07-23 | 2010-02-04 | Toshiba Corp | 高可用システム及び実行状態制御方法 |
JP2014059749A (ja) | 2012-09-18 | 2014-04-03 | Yokogawa Electric Corp | フォールトトレラントシステム |
Also Published As
Publication number | Publication date |
---|---|
US11663150B2 (en) | 2023-05-30 |
US20210303492A1 (en) | 2021-09-30 |
JP2021152802A (ja) | 2021-09-30 |
CN113448773A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3573546B2 (ja) | 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置 | |
US8893122B2 (en) | Virtual computer system and a method of controlling a virtual computer system on movement of a virtual computer | |
JP6413813B2 (ja) | 電子機器、制御装置及びプログラム | |
JP2006285810A (ja) | クラスタ構成コンピュータシステム及びその系リセット方法 | |
JP6299640B2 (ja) | 通信装置 | |
JP7327235B2 (ja) | フォールトトレラントシステム | |
US20220255831A1 (en) | Method and apparatus for detecting link status | |
JP4964666B2 (ja) | 冗長化された通信経路を切り替える計算機、プログラム及び方法 | |
US9426022B2 (en) | SEA failover mechanism with minimized packet losses | |
JP2003296133A (ja) | コントローラ | |
US9558149B2 (en) | Dual system | |
JP2000222376A (ja) | 計算機システムとその運用方法 | |
JP4259390B2 (ja) | 並列演算処理装置 | |
JP2018077594A (ja) | 仮想マシン管理装置、システム、仮想マシン移動方法及びプログラム | |
JP2019028869A (ja) | パケット処理機能移行システム、サーバ、パケット処理機能移行方法、及びプログラム | |
EP4345626A1 (en) | Primary machine and fault-tolerant system | |
JP2021048505A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2012080378A (ja) | プロトコル試験装置、プロトコル試験方法およびプロトコル試験プログラム | |
JP2013145460A (ja) | 情報処理装置、情報処理装置の制御方法、制御プログラム、記録媒体 | |
JP2012003313A (ja) | コンピュータシステム及びその制御方法 | |
JP6658093B2 (ja) | 情報処理システム及びプログラム | |
Fujimoto et al. | NIDP: Low-Latency Networking without Application Customization in Virtual Machine | |
JP6402657B2 (ja) | ハングアップ監視装置及びパケット転送装置 | |
JP2020127138A (ja) | 障害通知システム、障害通知方法、障害通知装置および障害通知プログラム | |
JP5669193B2 (ja) | 情報処理装置、データ転送方法、及び情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230405 |
|
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: 20230704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230717 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7327235 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |