JP5452336B2 - Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program - Google Patents
Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program Download PDFInfo
- Publication number
- JP5452336B2 JP5452336B2 JP2010096825A JP2010096825A JP5452336B2 JP 5452336 B2 JP5452336 B2 JP 5452336B2 JP 2010096825 A JP2010096825 A JP 2010096825A JP 2010096825 A JP2010096825 A JP 2010096825A JP 5452336 B2 JP5452336 B2 JP 5452336B2
- Authority
- JP
- Japan
- Prior art keywords
- failure
- test target
- simulation
- program
- target system
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本発明は、例えば、周辺機器に関する障害を模擬する周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラムに関するものである。 The present invention relates to, for example, a peripheral device failure simulation system, a peripheral device failure simulation method, and a peripheral device failure simulation program that simulate a failure related to a peripheral device.
制御システムやサーバシステムのような高い可用性と信頼性が求められるコンピュータシステムのソフトウェアは、ハードウェア故障などによる異常事態が発生した際にシステムを安全に停止させたり、待機系のシステムに切り替えたりする必要がある。
このようなシステムにおいては、試験の段階において、異常発生時に上記のような障害処理機能が正常に動作することを十分に確認しておく必要がある。
ところが、ハードウェア故障を発生させるには、ハードウェアを破壊したり、不正動作が起きるように設定を変更したりする必要がある。そのため、費用がかかり、またハードウェア故障の再現性にも問題がある。
そこで、仮想計算機(VM:Virtual Machine)を用いることにより、ソフトウェアのみでハードウェア故障を模擬する方法がある。
Software for computer systems that require high availability and reliability, such as control systems and server systems, can be safely shut down or switched to a standby system when an abnormal situation occurs due to a hardware failure. There is a need.
In such a system, it is necessary to sufficiently confirm that the failure processing function as described above operates normally when an abnormality occurs at the test stage.
However, in order to cause a hardware failure, it is necessary to destroy the hardware or change the setting so that an illegal operation occurs. Therefore, it is expensive and there is a problem in the reproducibility of hardware failure.
Therefore, there is a method of simulating a hardware failure only with software by using a virtual machine (VM).
従来のVMを用いた障害模擬方法では、VMモードで特定のプログラムアドレスが実行された際に内部マシンチェック割込みを発生させ、装置の障害処理機能の正常性を確認していた(例えば、特許文献1)。 In the fault simulation method using the conventional VM, an internal machine check interrupt is generated when a specific program address is executed in the VM mode, and the normality of the fault processing function of the apparatus is confirmed (for example, Patent Documents). 1).
従来のVMを用いた障害模擬方法では、特定のプログラムアドレスが実行された際に内部マシンチェック割込みを発生させることでしか疑似障害を起こせない。つまり、内部マシンチェック割込みを伴わない障害を模擬することができない。
例えば、ディスク装置やネットワーク機器などの周辺機器用のI/OポートやメモリマップトI/Oの操作に対して障害を模擬できない。また、障害発生時にはI/OポートやメモリマップトI/O内に存在するエラービットを参照して障害を起こした周辺機器を特定することができない。また、動作としては正常なもののリトライ等により完了割込みが遅延する障害、無用な完了割込みが起こる障害、逆に必要な完了割込みが起こらない障害を模擬できない。
In the fault simulation method using the conventional VM, a pseudo fault can be caused only by generating an internal machine check interrupt when a specific program address is executed. In other words, it is not possible to simulate a failure without an internal machine check interrupt.
For example, a failure cannot be simulated for an operation of an I / O port or a memory mapped I / O for a peripheral device such as a disk device or a network device. In addition, when a failure occurs, it is impossible to identify the peripheral device that has caused the failure by referring to an error bit existing in the I / O port or the memory mapped I / O. In addition, as a normal operation, a failure in which a completion interrupt is delayed due to a retry or the like, a failure in which an unnecessary completion interrupt occurs, or a failure in which a necessary completion interrupt does not occur cannot be simulated.
本発明は、例えば、I/OポートやメモリマップトI/Oや割込みに関する障害を模擬し、システムの障害処理機能の正常性を確認できるようにすることを目的とする。 An object of the present invention is, for example, to simulate a failure related to an I / O port, a memory-mapped I / O, or an interrupt so that the normality of a failure processing function of the system can be confirmed.
本発明の周辺機器障害模擬システムは、
周辺機器が接続される試験対象システムのプログラムを実行する試験対象実行部と、
前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶する障害模擬定義情報記憶部と、
前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部とを備える。
Peripheral device failure simulation system of the present invention,
A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation definition information storage unit for storing fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device;
A fault simulation setting unit for interrupting the program of the test target system when an access occurs to a predetermined device-corresponding storage area associated with the peripheral device;
A fault simulation execution unit that sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted, and restarts the program of the test target system.
本発明によれば、例えば、I/OポートやメモリマップトI/O(機器対応記憶領域)へのアクセス時に障害を模擬することができる。これにより、システムの障害処理機能の正常性を確認できる。 According to the present invention, for example, a failure can be simulated when accessing an I / O port or a memory-mapped I / O (device-compatible storage area). Thereby, the normality of the failure processing function of the system can be confirmed.
実施の形態1.
仮想計算機によって試験対象システムの周辺機器の障害を模擬する形態について説明する。
A mode of simulating a failure of a peripheral device of a test target system using a virtual computer will be described.
図1は、実施の形態1におけるハードウェア障害模擬システム100の構成図である。
実施の形態1におけるハードウェア障害模擬システム100の構成について、図1に基づいて以下に説明する。
FIG. 1 is a configuration diagram of a hardware failure simulation system 100 according to the first embodiment.
The configuration of the hardware failure simulation system 100 according to the first embodiment will be described below with reference to FIG.
ハードウェア障害模擬システム100(周辺機器障害模擬システムの一例)は、試験対象システム110に接続する周辺機器(例えば、ディスク装置、ネットワーク機器)の障害を模擬する計算機(コンピュータ、装置ともいう)である。
The hardware failure simulation system 100 (an example of a peripheral device failure simulation system) is a computer (also referred to as a computer or a device) that simulates a failure of a peripheral device (for example, a disk device or a network device) connected to the
ハードウェア障害模擬システム100は、CPU141(Central Processing Unit)、入出力メモリ(I/Oポート、メモリマップトI/Oともいう)、メインメモリなどをハードウェア140として備える。
入出力メモリは周辺機器(入出力機器)が使用するデータを記憶したり、CPUと周辺機器間でデータのやりとりをしたりするために使用する。メインメモリは周辺機器が使用するデータやその他のデータ(例えば、プログラムやプログラムで使用するデータ)を記憶する。
以下、入出力メモリを「I/O143」といい、メインメモリを「メモリ142」という。
The hardware failure simulation system 100 includes a CPU 141 (Central Processing Unit), an input / output memory (I / O port, also referred to as memory mapped I / O), a main memory, and the like as
The input / output memory is used for storing data used by the peripheral device (input / output device) and for exchanging data between the CPU and the peripheral device. The main memory stores data used by peripheral devices and other data (for example, programs and data used in programs).
Hereinafter, the input / output memory is referred to as “I /
ハードウェア障害模擬システム100は、VMM130(Virtual Machine Monitor)と試験対象システム110とを実行する。
The hardware failure simulation system 100 executes a VMM 130 (Virtual Machine Monitor) and a
実施の形態において「〜部」として説明するものは「〜処理」、「〜ステップ」、「〜手順」であってもよく、また「〜回路」、「〜装置」、「〜機器」であってもよい。すなわち、「〜部」として説明するものは、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組み合わせのいずれで実装されても構わない。 In the embodiment, what is described as “to part” may be “to process”, “to step”, and “to procedure”, and “to circuit”, “to apparatus”, and “to device”. May be. That is, what is described as “to part” may be implemented by software, hardware, firmware, or a combination thereof.
VMM130は、仮想マシンモニタと呼ばれるソフトウェア(プログラム)を実行する実行部である。仮想マシンモニタは、一台の計算機のリソース(CPU141、メモリ142、I/O143など)を複数台の計算機のリソースとして利用して計算機を仮想化し、仮想化した計算機を動作させる。
VMM130は、ハードウェア障害模擬システム100のリソースを利用して仮想計算機(VM)を実行し、仮想計算機で試験対象システム110を動作させる。仮想計算機で試験対象システム110を動作させることにより、試験対象システム110が動作する現実の計算機を準備しなくても、試験対象システム110の動作を検証することができる。
The VMM 130 is an execution unit that executes software (program) called a virtual machine monitor. The virtual machine monitor uses a computer resource (
The VMM 130 uses a resource of the hardware failure simulation system 100 to execute a virtual machine (VM), and operates the
試験対象システム110(試験対象実行部の一例)は、障害を模擬する対象のシステムである。障害を模擬することにより、実際に障害を発生させなくても、障害が発生した時の試験対象システム110の動作を検証することができる。
試験対象システム110は、OS111(オペレーティングシステム)やアプリケーションプログラム112を有する。
The test target system 110 (an example of a test target execution unit) is a target system that simulates a failure. By simulating the failure, the operation of the
The
仮想計算機では、試験対象システム110の他に障害模擬制御部120が動作する。
障害模擬制御部120は仮想計算機で動作するプログラムである。障害模擬制御部120は仮想計算機に記憶された障害模擬定義情報121をVMM130に出力する。
In the virtual machine, the fault
The failure
障害模擬定義情報121は、模擬する障害に関する情報を含んだデータである。
The failure
例えば、障害模擬定義情報121は、以下のような情報を含む。
障害模擬定義情報121は、周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含む(後述する(1e)「0」ビットセット、(1f)「1」ビットセット)。例えば、障害値記憶領域はメモリ142内の特定領域、I/O143内の特定領域、CPUレジスタである。
障害模擬定義情報121は、障害を模擬する模擬回数を含む(後述する(1i)模擬回数)。
障害模擬定義情報121は、複数の周辺機器のうち特定の周辺機器を障害を模擬する対象機器として示す対象機器特定情報を含む(後述する(1h)模擬条件)。
障害模擬定義情報121は、模擬する周辺機器の割込みを識別する識別子を含む(後述する(2a)割込番号)。
障害模擬定義情報121は、周辺機器の割込みを遅延させる遅延時間を含む(後述する(3c)遅延時間)。
障害模擬定義情報121は、破棄する周辺機器の割込みを識別する識別子を含む(後述する(3a)割込み番号)。
For example, the failure
The fault
The failure
The failure
The failure
The fault
The failure
VMM130は、障害模擬機能として障害模擬設定部131、障害模擬実行部132、アドレス補正処理部133および模擬実行判定部134を備える。
The VMM 130 includes a failure
障害模擬設定部131(障害模擬定義情報記憶部の一例)は、障害模擬定義情報121を記憶する。
The failure simulation setting unit 131 (an example of the failure simulation definition information storage unit) stores the failure
障害模擬設定部131(障害模擬設定部の一例)は、周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに、試験対象システム110のプログラム(OS111、アプリケーションプログラム112)を中断させる設定を行う。例えば、機器対応記憶領域はI/O143またはメモリ142内の特定領域である。
障害模擬設定部131は、周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域(後述する割込み設定領域)に記憶されたときに、試験対象システム110のプログラムを中断させる。例えば、割込み情報記憶領域はI/O143またはメモリ142内の特定領域である。
障害模擬設定部131は、所定の割込み設定により周辺機器の割込みを発生させ、試験対象システム110のプログラムを中断させる設定を行う。
The failure simulation setting unit 131 (an example of the failure simulation setting unit), when access to a predetermined device-corresponding storage area associated with a peripheral device occurs, the program (
The fault
The failure
障害模擬実行部132(障害模擬実行部の一例)は、試験対象システム110のプログラムが中断したときに障害模擬定義情報121に含まれる障害値を障害値記憶領域に設定し、試験対象システム110のプログラムを再開させる。
The failure simulation execution unit 132 (an example of the failure simulation execution unit) sets the failure value included in the failure
障害模擬実行部132は、障害値を障害値記憶領域に設定した回数を模擬実行回数として記憶する。
障害模擬実行部132は、模擬実行回数と模擬回数とを大小比較し、模擬実行回数が模擬回数未満である場合に障害値を障害値記憶領域に設定し、模擬実行回数が模擬回数以上である場合に障害値を障害値記憶領域に設定しない。
The failure
The fault
障害模擬実行部132は、機器対応記憶領域に対して発生したアクセスに対応するアクセス機器(周辺機器)が対象機器特定情報に示される対象機器と同じ周辺機器である場合に障害値を障害値記憶領域に設定する。
障害模擬実行部132は、アクセス機器が対象機器特定情報に示される対象機器と異なる周辺機器である場合に障害値を障害値記憶領域に設定しない。
The failure
The failure
障害模擬実行部132は、周辺機器の割込みが発生して試験対象システム110のプログラムが中断した場合、割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに試験対象システム110のプログラムを中断させる遅延タイマを起動する。
障害模擬実行部132は、試験対象システム110のプログラムを再開させる。
障害模擬実行部132は、遅延タイマにより試験対象システム110のプログラムが中断したときに割込み情報記憶領域に記憶されていた割込み情報を割込み情報記憶領域に設定し、試験対象システム110のプログラムを再開させる。
The failure
The failure
The failure
障害模擬実行部132は、周辺機器の割込みが発生して試験対象システム110のプログラムが中断した場合、割込み情報記憶領域に記憶された割込み情報を消去し、試験対象システム110のプログラムを再開させる。
When the peripheral device interrupt occurs and the program of the
アドレス補正処理部133は、I/O143やメモリ142のアドレスを補正する。
例えば、アドレス補正処理部133は、物理アドレスを仮想アドレスに変換する。
The address
For example, the address
模擬実行判定部134(障害模擬実行部の一例)は、障害模擬実行部132に障害を模擬させるか否かを判定する。
例えば、模擬実行判定部134は、模擬実行回数が模擬回数未満である場合に障害模擬実行部132に障害を模擬させ、模擬実行回数が模擬回数以上である場合に障害模擬実行部132に障害を模擬させない。
また、模擬実行判定部134は、試験対象システム110のプログラムが中断したときに機器対応記憶領域に対して発生したアクセスに対応する周辺機器をアクセス機器として特定する。模擬実行判定部134は、特定したアクセス機器が対象機器特定情報に示される対象機器と同じ周辺機器である場合に障害模擬実行部132に障害を模擬させ、特定したアクセス機器が対象機器特定情報に示される対象機器と異なる周辺機器である場合に障害模擬実行部132に障害を模擬させない。
The simulation execution determination unit 134 (an example of a failure simulation execution unit) determines whether or not the failure
For example, the simulation
In addition, the simulation
図2は、実施の形態1における障害模擬定義情報121を示す図である。
実施の形態1における障害模擬定義情報121について、図2に基づいて以下に説明する。
FIG. 2 is a diagram showing the failure
The failure
障害模擬定義情報121は(1)アクセス障害情報、(2)割込み情報、(3)割込み障害情報を含む。
The fault
(1)アクセス障害情報は、周辺機器用のメモリ(I/O143、メモリ142)にアクセスが発生したときに模擬する障害を示す情報である。
(1)アクセス障害情報は(1a)アクセス対象、(1b)アドレス、(1c)サイズ、(1d)アドレス補正情報、(1e)「0」ビットセット、(1f)「1」ビットセット、(1g)ログ出力フラグ、(1h)模擬条件、(1i)模擬回数を含む。
(1) Access failure information is information indicating a failure to be simulated when an access occurs to a peripheral device memory (I /
(1) Access failure information includes (1a) access target, (1b) address, (1c) size, (1d) address correction information, (1e) “0” bit set, (1f) “1” bit set, (1g ) Log output flag, (1h) simulation condition, and (1i) simulation count.
(1a)アクセス対象は、アクセスを検出する対象のメモリ(I/O143、メモリ142)の種別を示す。
(1b)アドレスは、アクセス領域のアドレスを示す。
(1c)サイズは、アクセス領域のサイズを示す。
(1d)アドレス補正情報は、(1b)アドレスを補正するための情報を示す。例えば、(1b)アドレスが物理アドレスと仮想アドレスとのいずれであるかを示す。また、(1b)アドレスがオフセット値であるか否かを示す。
(1e)「0」ビットセットは、「0」を設定する複数のビット位置を示す。
(1f)「1」ビットセットは、「1」を設定する複数のビット位置を示す。
(1g)ログ出力フラグは、模擬した障害の情報をログとして記録するか否かを示す。
(1h)模擬条件は、障害を模擬する対象の周辺機器を特定する情報を示す。
(1i)模擬回数は、障害を模擬する回数を示す。
(1a) The access target indicates the type of the memory (I /
(1b) The address indicates the address of the access area.
(1c) The size indicates the size of the access area.
(1d) Address correction information indicates information for (1b) address correction. For example, (1b) indicates whether the address is a physical address or a virtual address. Further, (1b) indicates whether the address is an offset value.
(1e) The “0” bit set indicates a plurality of bit positions for setting “0”.
(1f) The “1” bit set indicates a plurality of bit positions for setting “1”.
(1g) The log output flag indicates whether or not simulated fault information is recorded as a log.
(1h) The simulation condition indicates information for specifying a peripheral device to be simulated for a fault.
(1i) The number of simulations indicates the number of times to simulate a failure.
(2)割込み情報は、模擬する割込みを示す情報である。
(2)割込み情報は(2a)割込番号、(2b)ログ出力フラグを含む。
(2) The interrupt information is information indicating a simulated interrupt.
(2) The interrupt information includes (2a) an interrupt number and (2b) a log output flag.
(2a)割込番号は、割込みを模擬する対象の周辺機器に割り当てられた番号を示す。
(2b)ログ出力フラグは、模擬した割込みの情報をログとして記録するか否かを示す。
(2a) The interrupt number indicates a number assigned to a peripheral device to be simulated for an interrupt.
(2b) The log output flag indicates whether or not simulated interrupt information is recorded as a log.
(3)割込み障害情報は、模擬する割込みの障害を示す情報である。
(3)割込み障害情報は(3a)割込番号、(3b)処理内容、(3c)遅延時間、(3d)ログ出力フラグを含む。
(3) The interrupt failure information is information indicating the failure of the simulated interrupt.
(3) Interrupt failure information includes (3a) interrupt number, (3b) processing content, (3c) delay time, and (3d) log output flag.
(3a)割込番号は、障害を模擬する対象の割込みを識別する番号を示す。
(3b)処理内容は、模擬する障害(遅延、破棄)の種別を示す。
(3c)遅延時間は、割込みを遅延させる時間を示す。
(3d)ログ出力フラグは、模擬した障害の情報をログとして記録するか否かを示す。
(3a) The interrupt number indicates a number for identifying a target interrupt that simulates a failure.
(3b) The processing content indicates the type of failure (delay, discard) to be simulated.
(3c) The delay time indicates a time for delaying the interrupt.
(3d) The log output flag indicates whether or not simulated fault information is recorded as a log.
障害模擬定義情報121は模擬する障害毎に用意され、一つの障害模擬定義情報121には(1)アクセス障害情報(2)割込み情報(3)割込み障害情報のいずれか又は組み合わせが設定される。
例えば、一つの障害模擬定義情報121には(1)アクセス障害情報と(2)割込み情報とが設定され、別の障害模擬定義情報121には(3)割込み障害情報が設定される。
The failure
For example, (1) access failure information and (2) interrupt information are set in one failure
図3は、実施の形態1におけるハードウェア障害模擬方法を示すフローチャートである。
実施の形態1におけるハードウェア障害模擬方法について、図3に基づいて以下に説明する。
FIG. 3 is a flowchart illustrating the hardware failure simulation method according to the first embodiment.
A hardware failure simulation method according to the first embodiment will be described below with reference to FIG.
試験対象システム110、VMM130はハードウェア障害模擬システム100のメモリ142にロードされ、起動された状態である。
また、複数の障害模擬定義情報121(図2参照)がユーザにより生成され、試験対象システム110に割り当てられたメモリ142内の領域またはディスク装置(例えば、磁気ディスク装置)に予め記憶されているものとする。
The
Also, a plurality of failure simulation definition information 121 (see FIG. 2) is generated by the user and stored in advance in an area in the
ハードウェア障害模擬システム100のCPU141は、試験対象システム110を動作させるモードとVMM130を動作させるモードとを切り替えながら試験対象システム110およびVMM130を動作させる。
試験対象システム110の動作モードからVMM130の動作モードへ切り替わると試験対象システム110の処理は中断する。
中断した処理は試験対象システム110の動作モードに戻ったときに再開する。
The
When the operation mode of the
The interrupted process is resumed when the
例えば、Intel Architecture Processor(IAプロセッサ)は、仮想化支援機能としてIntel Virtualization Technology(VT)機能を有する。このIntel VT機能を用いることによりVMM130を実装することができる。Intelは登録商標である。
Intel VT機能については非特許文献1に記載されている。
VT機能において、VMM130はVMX root operationモードで動作し、試験対象システム110はVMX non−root operationモードで動作する。
For example, the Intel Architecture Processor (IA processor) has an Intel Virtualization Technology (VT) function as a virtualization support function. The
The Intel VT function is described in
In the VT function, the
試験対象システム110の動作モードからVMM130の動作モードに切り替わるとき(VM exitの発生時)、試験対象システム110のOS111は処理を中断する。このとき、CPU141に設定されている試験対象システム110のOS111のコンテキストはVMM130が管理するメモリ142内の領域に退避される。
そして、VMM130の動作モードから試験対象システム110の動作モードに戻るときに退避しておいたコンテキストがCPU141に設定され、試験対象システム110のOS111は中断されたときの状態から処理を再開する。
コンテキストとは、CPU141の各レジスタに設定されているデータのことである。
When the operation mode of the
Then, the context saved at the time of returning from the operation mode of the
A context is data set in each register of the
S101において、ユーザは、入力装置(キーボード、マウスなど)を用いて障害模擬開始コマンドを試験対象システム110に入力する。このとき、CPU141は試験対象システム110の動作モード状態である。
試験対象システム110のOS111は障害模擬制御部120をアプリケーションプログラムの一つとして起動する。
S101の後、処理はS111に進む。
In S101, the user inputs a failure simulation start command to the
The
After S101, the process proceeds to S111.
S111において、障害模擬制御部120は、複数の障害模擬定義情報121をVMM130の障害模擬設定部131に出力する。
例えば、障害模擬制御部120は、IAプロセッサのVMCALL命令を用いて、障害模擬定義情報121のメモリアドレスを引数にして障害模擬設定部131を呼び出す。VMCALL命令は、VMX non−root operationモードからVMX root operationモードを呼び出す命令である。障害模擬定義情報121のメモリアドレスとは、障害模擬定義情報121が記憶されたメモリ142内の領域を示すアドレスである。
S111の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS112に進む。
In S <b> 111, the failure
For example, the failure
After S111, the operation mode of the
S112において、障害模擬設定部131は障害模擬制御部120から出力された複数の障害模擬定義情報121をVMM130に割り当てられたメモリ142内の領域に記憶する。
S112の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS113に進む。
In S <b> 112, the failure
After S112, the operation mode of the
S113において、障害模擬制御部120は障害模擬開始要求をVMM130の障害模擬設定部131に出力する。
S113の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS121に進む。
In S <b> 113, the failure
After S113, the operation mode of the
S121において、障害模擬設定部131は障害模擬定義情報121を一つ選択し、選択した障害模擬定義情報121に設定されている模擬内容を判定する。
模擬内容が(1)アクセス障害情報である場合、処理はS124に進む。
模擬内容が(2)割込み情報である場合、処理はS122に進む。
模擬内容が(3)割込み障害情報である場合、処理はS126に進む。
In
If the simulated content is (1) access failure information, the process proceeds to S124.
If the simulated content is (2) interrupt information, the process proceeds to S122.
If the simulated content is (3) interrupt failure information, the process proceeds to S126.
但し、障害模擬定義情報121に複数の模擬内容が設定されている場合、模擬内容毎に以下に説明する前処理が実行される。
例えば、障害模擬定義情報121に(1)アクセス障害情報と(2)割込み情報とが設定されている場合、(1)アクセス障害情報に対する前処理(S124、S125)を実行した後、(2)割込み情報に対する前処理(S122、S123)を実行する。
However, when a plurality of simulation contents are set in the failure
For example, when (1) access failure information and (2) interrupt information are set in the failure
また、前処理(S121〜S126)は障害模擬定義情報121毎に実行される。つまり、前処理(S121〜S126)は障害模擬定義情報121の数と同じ回数繰り返される。
Further, the preprocessing (S121 to S126) is executed for each failure
S122において、障害模擬設定部131は、障害模擬定義情報121の(2a)割込番号により特定される周辺機器の割込みを発生させるようにCPU141(例えば、CPUレジスタ)に対して割込み設定を行う。
例えば、割込み設定は、Intel VT機能のVM−entry interruption−information fieldを利用して行う。
In S122, the fault
For example, the interrupt setting is performed using a VM-entry interrupt-information field of the Intel VT function.
割込み設定を行うと、試験対象システム110の動作モードに切り替わったときに試験対象システム110に対して割込みが発生する。試験対象システム110に対して割込みが発生すると、試験対象システム110のOS111が割込みハンドラ(プログラム)を起動する。
When the interrupt setting is performed, an interrupt is generated for the
S122の後、処理はS123に進む。 After S122, the process proceeds to S123.
S123において、障害模擬設定部131は、障害模擬定義情報121の(2b)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬設定部131は割込み設定(S122)の内容をログとして記録する。ログは、ディスク装置に生成したログファイルに直接記録してもよいし、メモリ142に蓄積した後でまとめてログファイルに記録してもよい。
ログの出力が不要な場合、障害模擬設定部131はログを出力しない。
S123の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS131に進む。
In S123, the failure
When log output is required, the failure
When log output is unnecessary, the failure
After S123, the operation mode of the
S131において、S122で設定した割込み設定に従って試験対象システム110に割込みが発生する。
上記のように、割込み設定(S122)を行うことにより、障害模擬定義情報121の(2)割込み情報に指定された割込みを発生させることができる。
In S131, an interrupt is generated in the
As described above, by performing the interrupt setting (S122), it is possible to generate an interrupt specified in (2) interrupt information of the failure
S124において、アドレス補正処理部133は、障害模擬定義情報121の(1d)アドレス補正情報に基づいて(1b)アドレスを補正する。
例えば、(1d)アドレス補正情報に(1b)アドレスが物理アドレスであることを示す値が設定されている場合、アドレス補正処理部133は、(1b)アドレスを仮想アドレスに変換する。
また、(1d)アドレス補正情報に(1b)アドレスがオフセット値であることを示す値が設定されている場合、ハードウェア設定のアドレスに(1b)アドレスをオフセット値として加算し、アドレスを特定する。ハードウェア設定のアドレスは予めメモリ142に記憶されているものとする。
S124の後、処理はS125に進む。
In S124, the address
For example, when a value indicating that (1b) address is a physical address is set in (1d) address correction information, the address
In addition, when (1d) address correction information is set to a value indicating that (1b) the address is an offset value, (1b) the address is added as an offset value to the hardware setting address to identify the address. . It is assumed that the hardware setting address is stored in the
After S124, the process proceeds to S125.
S125において、障害模擬設定部131は、S124で補正されたアドレスにアクセス(読み出し、書き込み)が行われる直前またはアクセスが行われた直後に障害模擬実行部132が呼び出されるように、CPU141にアクセス呼出し設定を行う。
In S125, the failure
例えば、(1a)アクセス対象にI/O143が指定されている場合には以下のようにアクセス呼出し設定を行う。
障害模擬設定部131は、I/O143の(補正後の)アドレスにアクセスが発生したときにVM exitが起動されるような設定をI/Oビットマップを利用して行う。さらに、障害模擬設定部131は、障害模擬実行部132のエントリアドレスをhost RIPに設定する。
このようなアクセス呼出し設定を行うことにより、I/O143の(補正後の)アドレスにアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
For example, (1a) When the I /
The failure
By performing such an access call setting, the failure
また、(1a)アクセス対象にメモリ142が指定されている場合には以下のようにアクセス呼出し設定を行う。
障害模擬設定部131は、メモリ142の(補正後の)アドレスにアクセスが発生したときにデバッグ例外が発生するような設定をデバッグレジスタを利用して行う。さらに、障害模擬設定部131は、Intel VT機能のexceptionビットマップを利用して、デバッグ例外が発生したときに障害模擬実行部132を呼び出すような設定を行う。
このようなアクセス呼出し設定を行うことにより、メモリ142の(補正後の)アドレスにアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
(1a) When the
The failure
By performing such an access call setting, the failure
障害模擬設定部131は、デバッグレジスタを利用してデバッグ例外を発生させる代わりに、メモリ管理ユニット(MMU:Memory Management Unit)を利用してアクセス違反例外(メモリ保護例外ともいう)を発生させてもよい。メモリ管理ユニットを利用することにより、指定したプログラムアドレスやメモリアドレスを含むページ領域にアクセスがあったときにアクセス違反例外を発生させることができる。
例えば、障害模擬設定部131は、試験対象システム110のOS111のページテーブルを書き換えてアクセス違反例外を発生させる。また、ハードウェア障害模擬システム100はOS111のページテーブルの全部もしくは一部のコピーをVMM130のメモリ領域に持ち、障害模擬設定部131はそのコピーを書き換えてアクセス違反例外を発生させる。
障害模擬設定部131は、Intel VT機能のexceptionビットマップを利用して、アクセス違反例外が発生したときに障害模擬実行部132を呼び出すような設定を行う。
The fault
For example, the failure
The failure
I/Oビットマップ、VM exit、host RIP、デバッグレジスタ、exceptionビットマップなどについては、非特許文献1で説明されている。
S125の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS132に進む。
After S125, the operation mode of the
S126において、障害模擬設定部131は、障害模擬定義情報121の(3a)割込番号で特定される周辺機器の割込みが発生したときに障害模擬実行部132が呼び出されるように、CPU141に割込み呼出し設定を行う。
In S126, the failure
例えば、障害模擬設定部131は、Intel VT機能のexternal−interrupt exiting(非特許文献1参照)を利用して、割込み呼出し設定を行う。
この機能を利用した場合、割込みを発生させた周辺機器が(3a)割込番号で特定される周辺機器であるか否かに関わらず、いずれかの周辺機器から割込みが発生したときには障害模擬実行部132が呼び出される。そこで、障害模擬設定部131は、呼び出されたときに、割込みを発生させた周辺機器が(3a)割込番号で特定される周辺機器であるか否かを判定する。
For example, the failure
When this function is used, fault simulation is executed when an interrupt occurs from any peripheral device, regardless of whether the peripheral device that generated the interrupt is (3a) the peripheral device specified by the interrupt number.
S126の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS132に進む。
After S126, the process returns from the operation mode of the
S132において、試験対象システム110は動作を再開する。
上記のように、アクセス呼出し設定(S125)を行うことにより、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
また、割込み呼出し設定(S126)を行うことにより、障害模擬定義情報121の(3)割込み障害情報に指定された割込みが発生したときに、障害模擬実行部132を呼び出すことができる。
In S132, the
As described above, by performing the access call setting (S125), the failure
Further, by performing the interrupt call setting (S126), the fault
(1)アクセス障害情報に指定されたアクセスまたは(3)割込み障害情報に指定された割込みが発生した場合、障害模擬実行部132が呼び出される。
障害模擬実行部132は、(1)アクセス障害情報に指定された障害または(3)割込み障害情報に指定された障害を模擬する(S200:障害模擬実行処理)。
障害模擬実行処理(S200)については後述する。
When (1) access specified in the access failure information or (3) interrupt specified in the interrupt failure information occurs, the failure
The fault
The failure simulation execution process (S200) will be described later.
S141において、ユーザは、入力装置を用いて障害模擬停止コマンドを試験対象システム110に入力する。このとき、CPU141は試験対象システム110の動作モード状態である。
障害模擬制御部120は、障害模擬停止要求をVMM130の障害模擬設定部131に出力する。
S141の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS142に進む。
In S <b> 141, the user inputs a failure simulation stop command to the
The failure
After S141, the operation mode of the
S142において、障害模擬設定部131は、CPU141の設定をクリアして割込み設定(S122)、アクセス呼出し設定(S125)および割込み呼出し設定(S126)を解除する。
S142の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS143に進む。
In S142, the failure
After S142, the operation returns from the operation mode of the
S143において、試験対象システム110は動作を再開され、障害は模擬されない。
In S143, the
図4は、実施の形態1における障害模擬実行処理(S200)を示すフローチャートである。
実施の形態1における障害模擬実行処理(S200)について、図4に基づいて以下に説明する。
FIG. 4 is a flowchart showing fault simulation execution processing (S200) in the first embodiment.
The failure simulation execution process (S200) in the first embodiment will be described below with reference to FIG.
S201において、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスが発生すると、図3で説明したアクセス呼出し設定(S125)によりVMM130の障害模擬実行部132が呼び出される。
また、障害模擬定義情報121の(3)割込み障害情報に指定された割込みが発生すると、図3で説明した割込み呼出し設定(S126)によりVMM130の障害模擬実行部132が呼び出される。
このとき、CPU141は試験対象システム110の動作モードからVMM130の動作モードへ切り替わる。
In S201, when an access specified in (1) access failure information of the failure
Further, when an interrupt specified in (3) interrupt failure information of the failure
At this time, the
S201の後、処理はS211に進む。 After S201, the process proceeds to S211.
S211において、障害模擬実行部132は、(1)アクセス障害情報に指定されたアクセスと(3)割込み障害情報に指定された割込みとのいずれが要因であるかを判定する。
例えば、障害模擬実行部132は、Intel VT機能で使用される所定のメモリ領域を参照して呼出し要因を判定する。
In S211, the failure
For example, the failure
呼出し要因が(1)アクセス障害情報に指定されたアクセスである場合、処理はS221に進む。
呼出し要因が(3)割込み障害情報に指定された割込みである場合、処理は231に進む。但し、発生した割込みが(3)割込み障害情報に指定された割込みと異なる場合、以降の処理は行わず、障害模擬実行処理(S200)は終了する。
If the call factor is (1) access specified in the access failure information, the process proceeds to S221.
If the call factor is an interrupt specified in (3) interrupt failure information, the process proceeds to 231. However, if the generated interrupt is different from the interrupt specified in (3) interrupt failure information, the subsequent processing is not performed and the failure simulation execution processing (S200) ends.
S221において、障害模擬実行部132は、アクセス命令を解析してアクセス情報を取得する。
例えば、障害模擬実行部132は、どの周辺機器に割り当てられたメモリ(I/O143、メモリ142)に対するアクセスであるかを特定する。
また、障害模擬実行部132は、書き込まれる値が設定されている領域(CPUレジスタ、メモリ142)を特定する。
また、障害模擬実行部132は、書き込まれる値を特定する。
S221の後、処理はS222に進む。
In S221, the failure
For example, the failure
Further, the failure
Further, the failure
After S221, the process proceeds to S222.
S222において、障害模擬実行部132は、模擬実行判定部134を呼び出す。
模擬実行判定部134は、障害模擬定義情報121の(1h)模擬条件と(1i)模擬回数とに基づいて、障害を模擬するか否かを判定する。
In S222, the failure
The simulation
例えば、(1h)模擬条件として、I/O143またはメモリ142内の特定のアドレスと、特定の値とが指定されているものとする。
模擬実行判定部134は、指定されたアドレスに指定された値が設定されていれば障害を模擬すると判定し、指定されたアドレスに指定された値が設定されていなければ障害を模擬しないと判定する。
I/O143やメモリ142の第1の領域(例えば、200番地)は複数の周辺機器に共有され、第1の領域に設定されているデータに対応する周辺機器の種別は第2の領域(例えば、100番地)に設定される場合がある。この場合、障害模擬定義情報121の(1)アクセス障害情報に指定された第1の領域にアクセスが発生しても、発生したアクセスが障害を模擬したい周辺機器に対するアクセスであるとは限らない。
ユーザは、障害模擬定義情報121の(1h)模擬条件に、周辺機器の種別が設定される第2の領域のアドレス(100番地)と、障害を模擬したい周辺機器の種別とを指定するとよい。これにより、障害を模擬したい周辺機器に対するアクセスが発生した場合に障害を模擬することができる。
For example, assume that (1h) a specific address and a specific value in the I /
The simulation
The first area (for example, address 200) of the I /
The user may specify in the (1h) simulation condition of the failure
また、模擬実行判定部134は、障害を模擬した回数が(1i)模擬回数に達していなければ障害を模擬すると判定し、障害を模擬した回数が(1i)模擬回数に達していれば障害を模擬しないと判定する。
例えば、模擬実行判定部134は、後述するS224において障害を模擬する度に当該アクセス要因の模擬実行回数をカウント(インクリメント)する。そして、模擬実行判定部134は、模擬実行回数と(1i)模擬回数とを大小比較して障害を模擬するか否かを判定する。
障害発生時に設定されるエラービットが障害処理の後にクリアされる障害がある。そのような障害を模擬する場合、エラービットを毎回設定したいとは限らない。
ユーザは、障害模擬定義情報121の(1i)模擬回数を設定することにより、(1i)模擬回数だけエラービットを設定することができる。
The simulation
For example, the simulation
There is a failure in which an error bit set when a failure occurs is cleared after failure processing. When simulating such a failure, you do not always want to set the error bit.
By setting (1i) the number of simulations in the failure
障害を模擬する場合(YES)、処理はS223に進む。
障害を模擬しない場合(NO)、処理はS225に進む。
If a failure is simulated (YES), the process proceeds to S223.
If the failure is not simulated (NO), the process proceeds to S225.
S223において、障害模擬実行部132は、S221の解析結果に基づいてアクセス命令の内容を実行する。
但し、アクセス命令が実行された後に障害模擬実行部132が呼び出される場合、障害模擬実行部132はアクセス命令の内容を実行しない。
S223の後、処理はS224に進む。
In S223, the failure
However, when the failure
After S223, the process proceeds to S224.
S224において、障害模擬実行部132は、(1e)「0」ビットセットに示されるビットセットにエラービット「0」を設定し、(1f)「1」ビットセットに示されるビットセットにエラービット「1」を設定する。エラービット「0」「1」は当該周辺機器に対する特定の障害の発生を示す。
In S224, the failure
但し、ビットセットにエラービットを設定するとは、ビットセットに対応する特定の領域にエラービットを設定することである。ビットセットに対応する領域に設定されたエラービットは、試験対象システム110の動作モードに戻ったときに試験対象システム110用の所定のビットセットに設定される。例えば、ビットセットに対応する領域とは、VMM130の動作モードに切り替わるときに退避された試験対象システム110のコンテキスト内の所定部分である。
障害模擬実行部132は、ビットセットに対応する領域をS221の解析結果に基づいて特定できるものとする。
However, setting an error bit in a bit set means setting an error bit in a specific area corresponding to the bit set. The error bit set in the area corresponding to the bit set is set to a predetermined bit set for the
It is assumed that the failure
S224の後、処理はS225に進む。 After S224, the process proceeds to S225.
S225において、障害模擬実行部132は、障害模擬定義情報121の(1g)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬実行部132は、模擬した障害の情報をログとして記憶する。障害模擬定義情報121の(1)アクセス障害情報、S224の障害模擬内容、S223のアクセス内容、S221の解析結果などはログとして記録される情報の一例である。
ログの出力が不要な場合、障害模擬実行部132はログを記録しない。
S225の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS226に進む。
In S225, the failure
When log output is necessary, the failure
When the log output is unnecessary, the failure
After S225, the process returns from the operation mode of the
S226において、試験対象システム110のOS111は、S224で設定されたビットセットに基づいて障害を検出し、アプリケーションプログラム112は検出された障害に応じて所定の障害処理を実行する。
ユーザは、障害処理の結果(障害メッセージ、メモリ142の設定値など)を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。
In S226, the
The user can confirm whether or not the failure processing function of the
S231において、障害模擬実行部132は、障害模擬定義情報121の(3b)処理内容に基づいて、割込みの遅延と割込みの破棄とのいずれの障害を模擬するか判定する。
割込みの遅延を模擬する場合、処理はS232に進む。
割込みの破棄を模擬する場合、処理はS233に進む。
In step S <b> 231, the failure
When simulating an interrupt delay, the process proceeds to S232.
When simulating discarding an interrupt, the process proceeds to S233.
S232において、障害模擬実行部132は、I/O143やメモリ142の割込み設定領域の設定値をメモリ142の別領域に退避し、割込み設定領域をクリアする。割込み設定領域とは、発生した割込みの内容を示す値が設定される所定の領域である。
障害模擬実行部132は、障害模擬定義情報121の(3c)遅延時間を設定してハードウェア140のタイマ機能を起動する。
障害模擬実行部132は、ハードウェア140のタイマ割込みが発生したときに障害模擬実行部132が呼び出されるように、CPU141に割込み呼出し設定を行う。例えば、障害模擬実行部132は、S126の障害模擬設定部131と同様に、Intel VT機能のexternal−interrupt exiting(非特許文献1参照)を利用して、割込み呼出し設定を行う。
In S232, the failure
The failure
The failure
I/O143やメモリ142の所定領域はクリアされているため、試験対象システム110の動作モードに戻ったときに試験対象システム110のOS111は割込みを検知せず、割込みハンドラは起動されない。但し、障害模擬実行部132は、(3c)遅延時間の経過時にタイマ割込みにより再び呼び出される。
Since predetermined areas of the I /
S232の後、処理はS234に進む。 After S232, the process proceeds to S234.
S233において、障害模擬実行部132は、I/O143やメモリ142の割込み設定領域をクリアする。
試験対象システム110の動作モードに戻ったときに試験対象システム110のOS111は割込みを検知せず、割込みハンドラは起動されない。
S233の後、処理はS234に進む。
In S233, the failure
When returning to the operation mode of the
After S233, the process proceeds to S234.
S234において、障害模擬実行部132は、障害模擬定義情報121の(3d)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬実行部132は、模擬した障害の情報をログとして記憶する。障害模擬定義情報121の(3)割込み障害情報はログとして記録される情報の一例である。ユーザは、障害模擬定義情報121の(3c)遅延時間に「0」秒を設定することにより、割込みを遅延させずに割込みのログを記録することもできる。
ログの出力が不要な場合、障害模擬実行部132はログを記録しない。
S234の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS235に進む。
In S234, the failure
When log output is necessary, the failure
When the log output is unnecessary, the failure
After S234, the process returns from the operation mode of the
S235において、試験対象システム110のOS111は、S232またはS233で割込み設定領域がクリアされているため割込みを検知せず、割込みハンドラを起動しない。
In S235, the
割込みの破棄(S233)を模擬した場合、割込みが破棄されたことにより試験対象システム110に障害が発生し、試験対象システム110のOS111やアプリケーションプログラム112は所定の障害処理を実行する。ユーザは、障害処理の結果を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。
When simulating the discard of interrupt (S233), a failure occurs in the
割込みの遅延(S232)を模擬した場合、(3c)遅延時間の経過時にタイマ割込みが発生し、VMM130の障害模擬実行部132が呼び出される。
このとき、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS236に進む。
When the interrupt delay (S232) is simulated, (3c) a timer interrupt is generated when the delay time elapses, and the failure
At this time, the operation mode of the
S236において、障害模擬実行部132は、S232でI/O143やメモリ142の割込み設定領域から退避しておいた設置値を割込み設定領域に設定する。
S236の後、VMM130の動作モードから試験対象システム110の動作モードに戻り、処理はS237に進む。
In S236, the failure
After S236, the operation mode of the
S237において、試験対象システム110のOS111は、割込み設定領域の設定値に基づいて(3c)遅延時間前に発生した割込みを検知し、検知した割込みに応じて割込みハンドラを起動する。割込みハンドラは(3c)遅延時間前に発生した割込みに対して所定の割込み処理を実行する。
ユーザは、割込み処理の結果(エラーメッセージ、メモリ142の設定値など)を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。
In S237, the
The user can confirm whether or not the failure processing function of the
以上の障害模擬実行処理(S201〜S237)は、S141(図3参照)でユーザに障害模擬の停止を指定されるまで、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスまたは(3)割込み障害情報に指定された割込みが発生する度に実行される。
The above fault simulation execution processing (S201 to S237) is performed until the user specifies stoppage of fault simulation in S141 (see FIG. 3), or the access specified in (1) access fault information of the fault
障害模擬定義情報121は、障害模擬開始要求(S113)と共に障害模擬制御部120から障害模擬設定部131に出力されても、VMM130のメモリ領域に予め記憶してもよい。
The failure
障害模擬定義情報121に障害模擬の開始条件を付加し、障害模擬定義情報121に指定された開始条件を満たしたときに障害を模擬してもよい。
例えば、ユーザは、(a)無条件(即時)、(b)任意のI/O143、制御レジスタ、MSR(Model Specific Register)などへのアクセスの発生、(c)任意の割込みの発生、(d)任意の時間の経過を開始条件として障害模擬定義情報121に設定する。
また、ユーザは、(e)任意のプログラムアドレスの実行や任意のメモリアドレスへのアクセスの発生を開始条件として障害模擬定義情報121に設定してもよい。
障害模擬実行部132は、障害模擬定義情報121に指定された障害模擬の開始条件に基づいて障害を模擬するか否かを判定し、障害を模擬すると判定した場合に障害を模擬する(S221〜S234)。
障害模擬設定部131が開始条件を判定し、開始条件を満たしたときに割込み設定(S122)や割込み呼出し設定(S125、S126)を行ってもよい。
A failure simulation start condition may be added to the failure
For example, the user can (a) unconditionally (immediately), (b) any I /
The user may set (e) execution of an arbitrary program address or occurrence of access to an arbitrary memory address in the failure
The failure
The failure
障害模擬定義情報121に障害模擬の終了条件を付加し、障害模擬定義情報121に指定された終了条件を満たしたときに障害の模擬を終了してもよい。
例えば、ユーザは開始条件として説明した上記(b)〜(e)を終了条件として障害模擬定義情報121に設定する。
また、ユーザは、(f)障害模擬の実行回数、(g)障害模擬停止要求の発生を終了条件として障害模擬定義情報121に設定してもよい。
障害模擬実行部132は、障害模擬定義情報121に指定された障害模擬の終了条件に基づいて障害の模擬を終了するか否かを判定する。障害の模擬を終了する場合、障害模擬設定部131は障害模擬の設定を解除する(S142)。
The failure simulation termination condition may be added to the failure
For example, the user sets (b) to (e) described above as the start condition in the failure
Further, the user may set the failure
The failure
ユーザは、複数の障害模擬定義情報121それぞれにインデックス番号(識別情報の一例)を付与し、ハードウェア障害模擬システム100に特定の障害模擬定義情報121のインデックス番号を指定してもよい。ハードウェア障害模擬システム100は、ユーザに指定された障害模擬定義情報121だけを処理する。
これにより、ユーザは特定の障害だけをハードウェア障害模擬システム100に模擬させることができる。
The user may assign an index number (an example of identification information) to each of the plurality of failure
As a result, the user can cause the hardware failure simulation system 100 to simulate only a specific failure.
ハードウェア障害模擬システム100は、マルチCPUもしくはマルチコアCPUを用いて複数のCPU141で実行させても構わない。
この場合、一方のCPU141を用いて試験対象システム110とVMM130を実行し、他方のCPU141を用いて障害模擬制御部120を実行させる。
これにより、障害模擬制御部120の影響を試験対象システム110に与えずに、試験対象システム110の障害処理機能を試験することができる。
The hardware failure simulation system 100 may be executed by a plurality of
In this case, the
Thereby, the failure processing function of the
実施の形態1において、例えば、以下のようなハードウェア障害模擬システム100およびハードウェア障害模擬方法について説明した。 In the first embodiment, for example, the following hardware failure simulation system 100 and hardware failure simulation method have been described.
ハードウェア障害模擬システム100は障害模擬定義情報121、障害模擬制御部120、障害模擬設定部131、障害模擬実行部132、アドレス補正処理部133、模擬実行判定部134を備える。
障害模擬定義情報121は、障害の模擬内容を定義した情報である。
障害模擬制御部120は、障害模擬定義情報121を障害模擬設定部131へ送信する。
障害模擬設定部131は、障害模擬定義情報121に従って、障害を模擬すべきI/O143、メモリ142へのアクセスや割込みが発生した場合に障害模擬実行部132を呼び出すように設定を行う。
障害模擬実行部132は、障害模擬定義情報121に従って障害を模擬する。
アドレス補正処理部133は、障害模擬定義情報121に記載された(1b)アドレスを補正する。
模擬実行判定部134は、障害模擬定義情報121に記載された(1i)模擬回数や(1h)模擬条件に従って、障害を模擬するか否かを判定する。
The hardware failure simulation system 100 includes failure
The fault
The failure
The failure
The failure
The address
The simulation
ハードウェア障害模擬システム100は、障害模擬定義情報121に格納された模擬内容に従ってI/O143、メモリ142の障害を模擬する。これにより、ユーザは、内部マシンチェック割込みの有無にかかわらず、I/O143やメモリ142の操作に対するシステムの障害処理機能の正常性を確認することができる。
The hardware failure simulation system 100 simulates a failure in the I /
ハードウェア障害模擬システム100は、障害発生時に各装置に関連するI/O143やメモリ142内に存在するエラービットを模擬しているので、どの装置が障害を起こしたかを特定するところまで障害を模擬できる。これにより、ユーザは、システムの障害処理機能の正常性を確認することができる。
Since the hardware failure simulation system 100 simulates the error bit existing in the I /
ハードウェア障害模擬システム100は、動作としては正常なもののリトライ等により装置からのI/O完了割込みが遅延する他、無用な割込みが起こる、逆に必要なI/O完了割込みが起こらないといった障害の模擬もできる。 The hardware failure simulation system 100 has a failure such that an I / O completion interrupt from the device is delayed due to a retry or the like of a normal operation, an unnecessary interrupt occurs, and a necessary I / O completion interrupt does not occur. Can also be simulated.
ユーザは、障害模擬定義情報121の模擬内容を書き換えるだけで様々な種類の障害模擬を行うことができる。
The user can perform various types of failure simulations simply by rewriting the simulation contents of the failure
ユーザは、障害模擬開始要求を送信してから停止要求を送信するまで、同一の障害を繰り返し模擬できる。 The user can repeatedly simulate the same failure from when the failure simulation start request is transmitted until the stop request is transmitted.
ハードウェア障害模擬システム100は、実際には発生していない割込みをあたかも発生したかのように試験対象システム110に振る舞わせることができる。これにより、ユーザは、ハードウェア障害時にのみ発生するような割込みもハードウェアを改造することなく、ソフトウェアのみで発生させることができる。
The hardware failure simulation system 100 can cause the
ハードウェア障害模擬システム100は、実際に発生した割込みを遅延させて試験対象システム110に伝えること、実際に発生した割込みを発生しなかったことにして試験対象システム110に伝えないことができるようになる。
The hardware failure simulation system 100 can delay the actually generated interrupt to be transmitted to the
ハードウェア障害模擬システム100は、障害を模擬するか否かにかかわらず、I/O143、メモリ142へのアクセスログや割込みの発生ログを取得することができる。
The hardware failure simulation system 100 can acquire an access log to the I /
100 ハードウェア障害模擬システム、110 試験対象システム、111 OS、112 アプリケーションプログラム、120 障害模擬制御部、121 障害模擬定義情報、130 VMM、131 障害模擬設定部、132 障害模擬実行部、133 アドレス補正処理部、134 模擬実行判定部、140 ハードウェア、141 CPU、142 メモリ、143 I/O。 100 hardware fault simulation system, 110 test target system, 111 OS, 112 application program, 120 fault simulation control section, 121 fault simulation definition information, 130 VMM, 131 fault simulation setting section, 132 fault simulation execution section, 133 address correction processing Part, 134 simulation execution determination part, 140 hardware, 141 CPU, 142 memory, 143 I / O.
Claims (12)
前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶する障害模擬定義情報記憶部と、
前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。 A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation definition information storage unit for storing fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device;
A fault simulation setting unit for interrupting the program of the test target system when an access occurs to a predetermined device-corresponding storage area associated with the peripheral device;
A fault simulation execution unit that sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted and restarts the program of the test target system; Peripheral equipment failure simulation system.
前記障害模擬実行部は、前記障害値を前記障害値記憶領域に設定した回数を模擬実行回数として記憶し、前記模擬実行回数と前記模擬回数とを大小比較し、前記模擬実行回数が前記模擬回数未満である場合に前記障害値を前記障害値記憶領域に設定し、前記模擬実行回数が前記模擬回数以上である場合に前記障害値を前記障害値記憶領域に設定しない
ことを特徴とする請求項1記載の周辺機器障害模擬システム。 The failure simulation definition information includes the number of simulations to simulate a failure,
The fault simulation execution unit stores the number of times the fault value is set in the fault value storage area as a simulation execution count, compares the simulation execution count with the simulation count, and the simulation execution count is the simulation count. The failure value is set in the failure value storage area when the number is less than, and the failure value is not set in the failure value storage area when the simulation execution count is equal to or greater than the simulation count. The peripheral device failure simulation system according to 1.
前記障害模擬設定部は、複数の周辺機器に対応付けられた機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させ、
前記障害模擬実行部は、前記試験対象システムのプログラムが中断したときに前記機器対応記憶領域に対して発生したアクセスに対応する周辺機器をアクセス機器として特定し、特定したアクセス機器が前記対象機器特定情報に示される対象機器と同じ周辺機器である場合に前記障害値を前記障害値記憶領域に設定し、特定したアクセス機器が前記対象機器特定情報に示される対象機器と異なる周辺機器である場合に前記障害値を前記障害値記憶領域に設定しない
ことを特徴とする請求項1記載の周辺機器障害模擬システム。 The failure simulation definition information includes target device specifying information indicating a specific peripheral device as a target device among a plurality of peripheral devices,
The failure simulation setting unit interrupts the program of the test target system when an access occurs to a device corresponding storage area associated with a plurality of peripheral devices,
The failure simulation execution unit specifies, as an access device, a peripheral device corresponding to an access that has occurred in the device-compatible storage area when the program of the test target system is interrupted, and the specified access device specifies the target device When the fault device is the same peripheral device as the target device indicated in the information, the fault value is set in the fault value storage area, and the specified access device is a different peripheral device from the target device indicated in the target device specifying information The peripheral device failure simulation system according to claim 1, wherein the failure value is not set in the failure value storage area.
前記障害模擬実行部は、前記周辺機器の割込みが発生して前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする請求項1〜請求項3いずれかに記載の周辺機器障害模擬システム。 The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit deletes the interrupt information stored in the interrupt information storage area when a program of the test target system is interrupted due to an interruption of the peripheral device, and a predetermined delay time has elapsed. The delay timer that interrupts the program of the test target system is started, the program of the test target system is restarted, and the program of the test target system is interrupted by the delay timer and stored in the interrupt information storage area. The peripheral device fault simulation system according to claim 1, wherein the interrupt information is set in the interrupt information storage area and the program of the test target system is restarted.
前記障害模擬実行部は、前記周辺機器の割込みが発生して前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる
ことを特徴とする請求項1〜請求項3いずれかに記載の周辺機器障害模擬システム。 The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area and resumes the program of the test target system when the interrupt of the peripheral device occurs and the program of the test target system is interrupted. The peripheral device failure simulation system according to any one of claims 1 to 3, wherein:
ことを特徴とする請求項4または請求項5記載の周辺機器障害模擬システム。 6. The peripheral device failure simulation system according to claim 4, wherein the failure simulation setting unit generates an interrupt of the peripheral device according to a predetermined interrupt setting, and interrupts the program of the test target system.
障害模擬定義情報記憶部が、前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶し、
障害模擬設定部が、前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。 The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation definition information storage unit stores fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device,
The failure simulation setting unit interrupts the program of the test target system when an access occurs to a predetermined device correspondence storage area associated with the peripheral device,
The fault simulation execution unit sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted, and restarts the program of the test target system. Peripheral device failure simulation method.
前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。 A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation setting unit that interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area;
When the program of the test target system is interrupted, the interrupt information stored in the interrupt information storage area is erased, and when a predetermined delay time elapses, a delay timer that interrupts the program of the test target system is started, The program of the test target system is resumed, and the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted by the delay timer is set in the interrupt information storage area, and the test target A peripheral device failure simulation system comprising a failure simulation execution unit for resuming a system program.
障害模擬設定部が、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。 The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted, and interrupts the program of the test target system when a predetermined delay time has elapsed. A delay timer is started, the program of the test target system is restarted, and the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted by the delay timer is stored in the interrupt information storage area. A peripheral device failure simulation method comprising: setting and restarting the program of the test target system.
前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。 A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation setting unit that interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area;
A peripheral device comprising: a failure simulation execution unit that erases the interrupt information stored in the interrupt information storage area and restarts the program of the test target system when the program of the test target system is interrupted Fault simulation system.
障害模擬設定部が、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。 The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area and restarts the program of the test target system when the program of the test target system is interrupted. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010096825A JP5452336B2 (en) | 2010-04-20 | 2010-04-20 | Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010096825A JP5452336B2 (en) | 2010-04-20 | 2010-04-20 | Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011227700A JP2011227700A (en) | 2011-11-10 |
JP5452336B2 true JP5452336B2 (en) | 2014-03-26 |
Family
ID=45042973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010096825A Expired - Fee Related JP5452336B2 (en) | 2010-04-20 | 2010-04-20 | Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5452336B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5664530B2 (en) * | 2011-11-17 | 2015-02-04 | トヨタ自動車株式会社 | Operation check method of control device and memory protection device |
JP5753508B2 (en) * | 2012-03-15 | 2015-07-22 | 株式会社東芝 | Program verification system and verification method thereof |
JP6045397B2 (en) * | 2013-02-28 | 2016-12-14 | 三菱電機株式会社 | Virtual computer system, fault simulation method and fault simulation program for virtual computer system |
EP2891981B1 (en) * | 2014-01-06 | 2018-07-18 | Fujitsu Limited | Method and computing system allowing a method of injecting hardware faults into an executing application |
-
2010
- 2010-04-20 JP JP2010096825A patent/JP5452336B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011227700A (en) | 2011-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4688862B2 (en) | Providing support for single step functionality of virtual machines in virtual machine environments | |
US10139876B2 (en) | Efficient reboot of an operating system executed in a virtual machine | |
US7594143B2 (en) | Analysis engine for analyzing a computer system condition | |
US8170859B1 (en) | Methods, apparatuses and computer program products for simulating arbitrary unmodified code | |
US9870475B2 (en) | Hardware configuration reporting systems | |
KR101019209B1 (en) | Device of automatically extracting Interface of Embedded Software and Method thereof | |
US8612937B2 (en) | Synchronously debugging a software program using a plurality of virtual machines | |
US20140196040A1 (en) | Virtual machine crash file generation techniques | |
US20220035905A1 (en) | Malware analysis through virtual machine forking | |
RU2005135472A (en) | COMPUTER SECURITY MANAGEMENT, FOR example, IN A VIRTUAL MACHINE OR A REAL OPERATING SYSTEM | |
JP5951879B2 (en) | Report malicious activity on the operating system | |
US20230128809A1 (en) | Efficient fuzz testing of low-level virtual devices | |
KR20220050895A (en) | Data retention technique using memory aperture flush order | |
CA2800271A1 (en) | System test method | |
CN114625616A (en) | Monitoring operation of a processor | |
US10586048B2 (en) | Efficient reboot of an operating system | |
JP5452336B2 (en) | Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program | |
US8145471B2 (en) | Non-destructive simulation of a failure in a virtualization environment | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
US9959225B2 (en) | Computer apparatus and control method of computer apparatus | |
CN111194447A (en) | Monitoring control flow integrity | |
US20240289156A1 (en) | Methods and systems of managing hypervisor efficiency and uptime | |
JP5425445B2 (en) | Processing control system, method and program | |
TWI663544B (en) | Fault tolerant operating metohd and electronic device using the same | |
Misono et al. | DMAFV: testing device drivers against DMA faults |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131122 |
|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5452336 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |