図1は本発明の一実施例による仮想化多重系構成制御のための計算機システムの全体構成図を示す。この計算機システムは、仮想化多重系システム1に、外部ネットワーク802を介して端末9を接続して構成される。仮想化多重系システム1は、複数の計算機ノード100(図示の例では計算機ノード100-A及び100-B)と、これら計算機ノードを接続する内部ネットワーク801より構成される。計算機ノード100-Aと計算機ノード100-B(これらを総じて100と表す)は同じ構成を成す。なお、計算機ノード100-Bの構成内容の詳細な図示は省略されている。FIG. 1 shows an overall configuration diagram of a computer system for virtual multiplex system configuration control according to an embodiment of the present invention. This computer system is configured by connecting a terminal 9 to thevirtualization multiplex system 1 via anexternal network 802. Thevirtual multiplex system 1 includes a plurality of computer nodes 100 (computer nodes 100-A and 100-B in the illustrated example) and aninternal network 801 that connects these computer nodes. The computer node 100-A and the computer node 100-B (which are collectively expressed as 100) have the same configuration. Detailed illustration of the configuration contents of the computer node 100-B is omitted.
 計算機ノード100は物理計算機として、メモリ101、プロセッサ102、記憶装置103、外部通信インタフェース(I/F)104、ノード間通信I/F105を有する。メモリ101内には、ホストオペレーティングシステム(OS)400と、多重系出力制御プログラム300と、ホストOS400上に構築される1または複数の仮想計算機(VM)200-A~200-C(これらを総じて200と表す)が保持される。ホストOS400内には、仮想化プログラム401とデバイス制御プログラム402が保持される。Thecomputer node 100 includes amemory 101, aprocessor 102, astorage device 103, an external communication interface (I / F) 104, and an inter-node communication I /F 105 as physical computers. Thememory 101 includes a host operating system (OS) 400, a multi-systemoutput control program 300, and one or a plurality of virtual machines (VM) 200-A to 200-C constructed on the host OS 400 (collectively, 200). In thehost OS 400, avirtualization program 401 and adevice control program 402 are held.
 計算機ノード100-Aの各VM200は、アプリケーション(AP)211、ゲストOS212、多重系出力制御プログラム300と通信を行う仮想通信I/F213を有する。計算機ノード100-Bの各VM201も同様の構成である。
VM200は、固有のプログラムやオペレーティングシステムが動作することが可能な、仮想化プログラム401により作成された仮想的な実行環境である。複数のVM200が存在する場合に、異なるVM200内で動作するプログラムやオペレーティングシステムは同じでも良いし、異なっていても良い。また、異なるVM200内で動作するプログラムやオペレーティングシステムが互いに直接影響を与え合うことはない。各VM200は仮想化多重系システム1内で一意の識別子を持つ。例えば、図1のVM200-Aは「VM1」、VM200-Bは「VM2」の識別子を有する。
AP211は端末9からの要求を処理する。ゲストOS212は、VM200環境内でAP211を制御し、仮想通信IF213へAP211の処理結果を送信する。仮想通信IF213は、AP211の処理結果をゲストOS212から受け取り多重系出力制御基盤プログラム300へ出力する。EachVM 200 of the computer node 100-A has a virtual communication I /F 213 that communicates with the application (AP) 211, theguest OS 212, and the multi-systemoutput control program 300. EachVM 201 of the computer node 100-B has the same configuration.
 TheVM 200 is a virtual execution environment created by thevirtualization program 401 in which a unique program or operating system can operate. When there are a plurality ofVMs 200, programs and operating systems that operate indifferent VMs 200 may be the same or different. In addition, programs and operating systems operating indifferent VMs 200 do not directly affect each other. EachVM 200 has a unique identifier within thevirtualized multiplexing system 1. For example, the VM 200-A in FIG. 1 has an identifier “VM1”, and the VM 200-B has an identifier “VM2”.
 TheAP 211 processes the request from the terminal 9. Theguest OS 212 controls theAP 211 within theVM 200 environment and transmits the processing result of theAP 211 to the virtual communication IF 213. The virtual communication IF 213 receives the processing result of theAP 211 from theguest OS 212 and outputs it to the multi-system outputcontrol infrastructure program 300.
 本実施例では、計算機ノード100-A内のVM200と、計算機ノード100-B内のVM201とが多重系を構成する。例えば、VM200-AとVM201-Aとが多重構成を成し、VM200-BとVM201-Bとが多重構成を成すが如きである。この場合、いずれのVMが主系でいずれが従系かはVM状態管理テーブルの管理による。これについては、図2以降を参照して後述する。In this embodiment, theVM 200 in the computer node 100-A and theVM 201 in the computer node 100-B constitute a multiplex system. For example, the VM 200-A and the VM 201-A form a multiplex configuration, and the VM 200-B and the VM 201-B form a multiplex configuration. In this case, which VM is the primary system and which is the secondary system depends on the management of the VM state management table. This will be described later with reference to FIG.
 端末9と計算機ノード100は外部ネットワーク802を介して接続される。また仮想化多重系システム1内の計算機ノード100-A、計算機ノード100-Bは内部ネットワーク801を介して接続される。計算機ノード100では、外部ネットワーク802は外部通信I/F104に接続し、内部ネットワーク801はノード間通信I/F105に接続する。The terminal 9 and thecomputer node 100 are connected via anexternal network 802. Further, the computer node 100-A and the computer node 100-B in thevirtual multisystem 1 are connected via aninternal network 801. In thecomputer node 100, theexternal network 802 is connected to the external communication I /F 104, and theinternal network 801 is connected to the inter-node communication I /F 105.
 端末9は、外部ネットワーク802を介して仮想化多重系システム1に要求を送信し、仮想化多重系システム1は要求を処理した結果を端末9に返信する。端末9から送信される要求は、計算機ノード100-Aと計算機ノード100-Bで受信され、両方の計算機ノード内の、多重系を構成するVMで同じ処理が行われる。処理の結果、一方の計算機ノード(例えば主系ノード100-A)のVM200(例えばVM200-A)から正しい処理データを端末9へ返信する。The terminal 9 transmits a request to thevirtual multiplex system 1 via theexternal network 802, and thevirtual multiplex system 1 returns a result of processing the request to the terminal 9. The request transmitted from the terminal 9 is received by the computer node 100-A and the computer node 100-B, and the same processing is performed in the VMs constituting the multiplex system in both computer nodes. As a result of the processing, correct processing data is returned to the terminal 9 from the VM 200 (eg, VM 200-A) of one computer node (eg, the primary node 100-A).
 計算機ノード100の記憶装置103には、ホストOS400、多重系出力制御プログラム(プログラムと各種テーブル情報を含む)300、VM200を構成するAP211、ゲストOS212、仮想通信I/F213が格納される。プロセッサ102は記憶装置103からホストOS400、多重系出力制御プログラム300、VM200の構成物をメモリ101に展開して実行し、さらに外部通信I/F104やノード間通信I/F105からの割込みを処理する。外部通信I/F104は外部ネットワーク802を通じて端末9とのデータの送受信を行う。ノード間通信I/F105は内部ネットワーク801を通じて他の計算機ノード100との間でデータの送受信を行う。Thestorage device 103 of thecomputer node 100 stores ahost OS 400, a multiplex system output control program (including programs and various table information) 300, anAP 211 that configures theVM 200, aguest OS 212, and a virtual communication I /F 213. Theprocessor 102 expands and executes the configuration of thehost OS 400, the multiplex systemoutput control program 300, and theVM 200 from thestorage device 103 to thememory 101, and further processes an interrupt from the external communication I /F 104 or the inter-node communication I /F 105. . The external communication I /F 104 transmits / receives data to / from the terminal 9 through theexternal network 802. The inter-node communication I /F 105 transmits / receives data to / from anothercomputer node 100 through theinternal network 801.
 仮想化プログラム401はVM200を作成、管理するためのプログラムであり、デバイス制御プログラム402は外部通信I/F104、ノード間通信I/F105や記憶装置103等のデバイスにアクセスするためのプログラムである。ホストOS400は仮想化プログラム401やデバイス制御プログラム402を用いて、多重系出力プログラム300やVM200の実行を制御し、外部通信I/F104、ノード間通信I/F105や記憶装置103へのアクセス制御を行う。Thevirtualization program 401 is a program for creating and managing theVM 200, and thedevice control program 402 is a program for accessing devices such as the external communication I /F 104, the inter-node communication I /F 105, and thestorage device 103. Thehost OS 400 uses thevirtualization program 401 and thedevice control program 402 to control the execution of themulti-system output program 300 and theVM 200, and controls access to the external communication I /F 104, the inter-node communication I /F 105, and thestorage device 103. Do.
 多重系出力制御基盤プログラム300は、他の計算機ノード100-B内で動作する多重系出力制御基盤プログラム300´との間で制御情報を交換することにより仮想化多重系システム1内のVM200とVM201との間の主従関係を判断し、制御情報の出力可否を制御する。この機能を実現するために、多重系出力制御基盤プログラム300は、VM状態管理テーブル301、制御情報管理テーブル302、入力情報管理プログラム303、出力情報管理プログラム304、従系情報管理プログラム305、HOST-HOST生死監視プログラム306、VM-HOST生死監視プログラム307、VM状態更新プログラム308から構成される。なお、多重系出力制御基盤プログラム300が持つ管理テーブル301,302、及び各種プログラム303~308の実行処理については、図2~図15を参照して後述する。The multi-system outputcontrol infrastructure program 300 exchanges control information with the multi-system outputcontrol infrastructure program 300 ′ operating in the other computer node 100 -B, so that theVM 200 and theVM 201 in thevirtual multi-system 1 are exchanged. The master-slave relationship between the control information and the control information is controlled. In order to realize this function, the multi-system outputcontrol infrastructure program 300 includes a VM state management table 301, a control information management table 302, an inputinformation management program 303, an outputinformation management program 304, a subordinateinformation management program 305, a HOST- It consists of a HOST life /death monitoring program 306, a VM-HOST life /death monitoring program 307, and a VMstatus update program 308. The execution processes of the management tables 301 and 302 and thevarious programs 303 to 308 included in the multiplex system outputcontrol infrastructure program 300 will be described later with reference to FIGS.
 主系の仮想計算機を持つ計算機ノード100-A内で動作する多重系出力制御基盤プログラム300は、VM200の状態を判断して、VM状態管理テーブル301及び制御情報管理テーブル302の内容を更新する。また、VM-HOST生死監視及びHOST-HOSTの生死監視により障害を検知した場合は、他の計算機ノード100-B内で動作する多重系出力制御基盤プログラム300´へVMの主従関係の切り替え指示を送信して、VMの主従関係の切り替え処理及びVMの生死状態の更新を行う。従系の仮想計算機を持つ計算機ノード100-B内で動作する多重系出力制御基盤プログラム300´は、制御情報管理テーブル302´を更新し、多重系出力制御基盤プログラム300´からの主/従切り替えの指示の受け取り、VM状態管理テーブル301´の書き換えを行う。The multi-system outputcontrol infrastructure program 300 operating in the computer node 100-A having the primary virtual computer determines the state of theVM 200 and updates the contents of the VM state management table 301 and the control information management table 302. In addition, when a failure is detected by the VM-HOST life / death monitoring and the HOST-HOST life / death monitoring, an instruction to switch the master / slave relationship of the VM is sent to the multi-system outputcontrol infrastructure program 300 ′ operating in the other computer node 100-B. This is performed to switch the VM master-slave relationship and update the VM life / death state. The multi-system outputcontrol base program 300 ′ operating in the computer node 100-B having the subordinate virtual computer updates the control information management table 302 ′, and switches between the main / slave from the multi-system outputcontrol base program 300 ′. And the VM state management table 301 ′ is rewritten.
 ここで、本発明の理解をし易くするために、本発明と従来技術の仮想化多重系構成制御の相違について、図21を参照して説明する。
(A)は従来技術による仮想化多重系構成制御を示す。従来技術において、VM1及びVM3上で多重系の主従関係の管理及びVMの生死監視を行っている。端末への情報の出力制御は、VM上の例えばミドルウェアで行っている。図示の例では、ホストOS400側のVM1側が主系、ホストOS400´側のVM3側が従系である。従系のホストOS400´側のVM3は、定期的にヘルスチェック要求(REQ)を主系のVM1へ送信し、VM1からはヘルスチェック応答(ACK)を受信することで、生死の監視を行っている。もし、時間T0に主系のVM1に障害が発生したら、VM1の処理を停止させて、一方、VM3は自らを従系から主系に切り替える。同様に、VM1は自らを主系から従系に切り替える。
この従来技術によれば、VM1及びVM3がVMの生死監視及び出力制御を行っているので、T11,T12、及びT21,T22,T2の時間を要し、更にVM間の系の切り替え処理のためにオーバヘッドが生じる。そのため、主系のVM1で処理した結果(出力情報)を端末に出力する時間が遅れ、更に系の切り替えに伴って出力情報が失われるおそれが生じる。Here, in order to facilitate understanding of the present invention, a difference between the virtual multiplex system configuration control of the present invention and the prior art will be described with reference to FIG.
 (A) shows virtual multiplex system configuration control according to the prior art. In the prior art, management of a master-slave relationship of multiple systems and monitoring of VM life and death are performed on VM1 and VM3. Output control of information to the terminal is performed by, for example, middleware on the VM. In the illustrated example, the VM1 side on thehost OS 400 side is the primary system, and the VM3 side on thehost OS 400 ′ side is the secondary system. The VM3 on thesecondary host OS 400 ′ side periodically sends a health check request (REQ) to the primary VM1 and receives a health check response (ACK) from the VM1 to monitor life and death. Yes. If a failure occurs in theprimary VM 1 at time T0, theVM 1 processing is stopped, while the VM 3 switches itself from the secondary to the primary. Similarly, VM1 switches itself from the main system to the subordinate system.
 According to this prior art, VM1 and VM3 perform VM life / death monitoring and output control, and therefore T11, T12, T21, T22, and T2 are required. Overhead. For this reason, the time for outputting the result (output information) processed by themain VM 1 to the terminal is delayed, and the output information may be lost when the system is switched.
 (B)は本発明による仮想化多重系構成制御を示す。本発明においては、ホストOS400、400´の多重系出力制御基盤プログラムの制御によって多重系の主従管理を行うと共に、ホストOSの制御の下、端末への出力制御を行う。ホストOS400、400´多重系出力制御基盤プログラムは自らに形成されたVM1、VM3の生死を継続的に監視しておき、更にホストOS間でヘルスチェックのやり取りを行う。この場合、もし時間T0に主系のVM1に障害が発生したら、ホストOS400の多重系出力制御基盤プログラムはVM1の処理を停止させ、自らを主系から従系に切り替える。一方、従系のホストOS400´の多重系出力制御基盤プログラムは自らを従系から主系に切り替える。これによれば、全ての処理がホストOS間で行われるため、オーバヘッドが低減でき、VMは多重構成制御に関与する必要がないので、ホストOSは容易にVMの多重系構成を組むことができる。
この仮想化多重系構成制御を行うために、多重系出力制御基盤プログラム300における各種のプログラム及びテーブルが有効に機能する。以下、詳細に説明する。(B) shows virtual multiplex system configuration control according to the present invention. In the present invention, multi-system master / slave management is performed under the control of the multi-system output control infrastructure program of thehost OS 400, 400 ′, and output control to the terminal is performed under the control of the host OS. Thehost OS 400, 400 ′ multi-system output control infrastructure program continuously monitors the life and death of theVM 1 and VM 3 formed in thehost OS 400, and further exchanges health checks between the host OSs. In this case, if a failure occurs in theprimary VM 1 attime T 0, the multi-system output control infrastructure program of thehost OS 400 stops the processing of theVM 1 and switches itself from the primary system to the secondary system. On the other hand, the multiplex system output control infrastructure program of theslave host OS 400 ′ switches itself from the slave system to the master system. According to this, since all the processing is performed between the host OSs, the overhead can be reduced, and the VM does not need to be involved in the multiple configuration control. Therefore, the host OS can easily form a multiplexed system configuration of VMs. .
 In order to perform this virtual multiplex system configuration control, various programs and tables in the multiplex system outputcontrol infrastructure program 300 function effectively. Details will be described below.
 図2は、VM状態管理テーブル301の構成を示す。
VM状態管理テーブル301は、計算機ノード100-A及び100-B内に作成されている全てのVMの生死の状態及び主従関係に関する状態情報を管理する。多重系出力制御基盤プログラム300´内にも同様のVM状態管理テーブルが保持される(図示略)。
VM状態管理テーブルは、計算機ノードごとに異なる状態情報を保持する。即ち計算機ノード100-AのVM状態管理テーブル301はVM100-A、100-B等、複数のVMの状態情報を保持する。一方、計算機ノード100-BのVM状態管理テーブルはVM201-A、201-B等の状態情報を保持する。FIG. 2 shows the configuration of the VM state management table 301.
 The VM state management table 301 manages state information regarding life / death states and master-slave relationships of all VMs created in the computer nodes 100-A and 100-B. A similar VM state management table is also held in the multi-system output control infrastructure program 300 '(not shown).
 The VM state management table holds different state information for each computer node. In other words, the VM state management table 301 of the computer node 100-A holds the state information of a plurality of VMs such as the VMs 100-A and 100-B. On the other hand, the VM state management table of the computer node 100-B holds state information of the VMs 201-A, 201-B and the like.
 VM状態管理テーブル301において、VM識別子311は計算機ノード100-A内でVM200を一意に識別する情報を格納する。ホスト計算機ノード識別子312はVM200が作成されている計算機ノード100-Aの識別情報を格納する。主従状態フラグ313はVM200の主従を識別する情報を格納する。対象のVM200を主系VMとする場合は「M」を格納し、対象のVM200を従系VMとする場合は「S」を格納する。
対のVM識別子314は、VM識別子311のVMの主従関係における相手(即ち計算機ノード100-Bにおける)のVM201を一意に特定する識別子を格納する。対のホスト計算機ノード識別子315には、対のVM識別子314が作成されている計算機ノード100-Bの識別情報を格納する。対のVM生死状態フラグ316には、対のVMの生死状態の情報を格納する。「1」は生、「0」は死を示している。In the VM state management table 301, theVM identifier 311 stores information for uniquely identifying theVM 200 within the computer node 100-A. The hostcomputer node identifier 312 stores identification information of the computer node 100-A in which theVM 200 is created. The master /slave state flag 313 stores information for identifying the master / slave of theVM 200. When thetarget VM 200 is the primary VM, “M” is stored, and when thetarget VM 200 is the secondary VM, “S” is stored.
 The pairedVM identifier 314 stores an identifier that uniquely identifies theVM 201 of the partner (ie, in the computer node 100-B) in the VM master-slave relationship of theVM identifier 311. The paired hostcomputer node identifier 315 stores the identification information of the computer node 100-B in which the pairedVM identifier 314 is created. The paired VM life /death state flag 316 stores information on the life / death state of the paired VM. “1” indicates life and “0” indicates death.
 図3は、制御情報管理テーブル302の構成を示す。
制御情報管理テーブル302は、VMに入力及び出力される制御情報を管理するものであり、VM200-A、200-B等ごとに用意される。例えば、計算機ノード100-AにVM200が2つある場合は、制御情報管理テーブル302は2つ用意される。同様にして、計算機ノード100-BにもVMごとにこの管理テーブルが用意される。FIG. 3 shows the configuration of the control information management table 302.
 The control information management table 302 manages control information input to and output from the VM, and is prepared for each VM 200-A, 200-B, and the like. For example, when the computer node 100-A has twoVMs 200, two control information management tables 302 are prepared. Similarly, this management table is prepared for each VM in the computer node 100-B.
 制御情報管理テーブル302において、VM識別子321は、計算機ノード100内でVMを識別するための情報を格納する。シーケンス番号322は、制御情報を識別する情報を格納する。入力情報323は、端末9から受信した入力情報を格納する。周期時間324は、VMの周期タスクに必要な時間を格納する。出力情報325は、VM200から出力された制御情報を格納する。出力時間326は、VM200が制御情報を出力した時刻(日時分)を格納する。In the control information management table 302, theVM identifier 321 stores information for identifying the VM in thecomputer node 100. Thesequence number 322 stores information for identifying control information. Theinput information 323 stores input information received from the terminal 9. Theperiod time 324 stores the time required for the VM periodic task. Theoutput information 325 stores control information output from theVM 200. Theoutput time 326 stores the time (date and time) when theVM 200 outputs the control information.
 この制御情報管理テーブルにより、各VMから出力される制御情報の欠落を防ぎ、また、主従関係にあるVM間の計算結果(出力制御情報)のずれを補正するために用いることができる。即ち、VM1とVM3は主従関係にあり、両者を管理する制御情報管理テーブルには、同じ入力情報が入力するので、基本的に両者で管理される制御情報は同じになる。しかし、障害や割り込み等のよって、周期時間が乱れて、入力情報に対応する出力情報が予測した時間内に出力されないことがある。この場合、お互いの制御情報管理テーブルを監視して、出力情報の出力の有無及びその出力時間をチェックすることで、各VMから出力される制御情報の欠落を確認し、また、主従関係にあるVM間の計算結果のずれを確認することができる。This control information management table can be used to prevent loss of control information output from each VM and to correct a deviation in calculation results (output control information) between VMs in a master-slave relationship. That is, VM1 and VM3 are in a master-slave relationship, and the same input information is input to the control information management table for managing both, so basically the control information managed by both is the same. However, the cycle time may be disturbed due to a failure or an interrupt, and the output information corresponding to the input information may not be output within the predicted time. In this case, by monitoring the control information management tables of each other and checking whether or not output information is output and its output time, it is confirmed that control information output from each VM is missing, and there is a master-slave relationship. Differences in calculation results between VMs can be confirmed.
 図4は、計算機ノード間通信用のパケットのフォーマット構成を示す。
計算機ノード間通信のパケット40のフォーマットは、異なる計算機ノード100-Aと100-Bの多重系出力制御基盤プログラム300と300´の間で送受信される通信データのフォーマットであり、主系の計算結果の送信や、主従の切り替えの用途に用いられる。
計算機ノード識別子401は送信先の計算機ノード100を特定する識別子を格納し、VM識別子402は送信先のVMを特定する識別子を格納する。シーケンス番号403、出力情報404は、制御情報管理テーブル302のシーケンス番号321とその最新の行にある出力情報をそれぞれに格納する。
出力情報404は空の場合もある。何故なら、出力情報404があれば、その送信は主系の出力情報の送信のための通信であり、出力情報404がなければ主従の切り替えのための通信だと判断するためである。FIG. 4 shows a format structure of a packet for communication between computer nodes.
 The format of the packet 40 for communication between computer nodes is a format of communication data transmitted / received between the multiple system outputcontrol infrastructure programs 300 and 300 ′ of the different computer nodes 100-A and 100-B. Is used for the transmission of the master and the switching of the master-slave.
 Thecomputer node identifier 401 stores an identifier that identifies thedestination computer node 100, and theVM identifier 402 stores an identifier that identifies the destination VM. Thesequence number 403 and theoutput information 404 respectively store thesequence number 321 of the control information management table 302 and the output information in the latest row.
 Theoutput information 404 may be empty. This is because if theoutput information 404 is present, the transmission is a communication for transmission of the main system output information, and if there is nooutput information 404, it is determined that the communication is a communication for switching between the master and the slave.
 図14は、VM状態更新通信用のパケットのフォーマット構成を示す。
VM状態更新通信パケット70は、異なる計算機ノード100-A、100-Bの多重系出力制御基盤プログラムの間で送受信される通信データであり、VM状態管理テーブル301の対のVM生死状態フラグを更新するために用いられる。
計算機ノード識別子701は送信先の計算機ノード100を特定する識別子を格納し、VM識別子702は送信先のVMを特定する識別子を格納する。生死状態703は、更新したいVMの状態を格納する。VMが生きている場合は「1」、死んでいる場合は「0」を格納する。FIG. 14 shows a format structure of a packet for VM state update communication.
 The VM state update communication packet 70 is communication data transmitted / received between the multiplex system output control infrastructure programs of different computer nodes 100-A and 100-B, and updates the paired VM life / death state flag in the VM state management table 301. Used to do.
 Thecomputer node identifier 701 stores an identifier that identifies thedestination computer node 100, and theVM identifier 702 stores an identifier that identifies the destination VM. The life /death state 703 stores the state of the VM to be updated. When the VM is alive, “1” is stored, and when the VM is dead, “0” is stored.
 図5は、仮想通信I/F213の処理の概要を示す。
仮想通信I/F213は、多重系出力制御基盤プログラム300とVMの間を接続するインタフェースである。制御情報管理テーブル302に格納された入力情報322を受け取る。受け取られた入力情報は、VM200上のアプリケーション211で処理され、その処理結果として制御情報500を生成する。仮想通信I/F213は、制御情報500を受け取って多重系出力制御基盤プログラム300へ出力する。その制御情報500は、制御情報管理テーブル302の出力情報325に格納される。なお、他のVMの仮想通知ンI/Fも同様の動作を行う。FIG. 5 shows an outline of processing of the virtual communication I /F 213.
 The virtual communication I /F 213 is an interface that connects between the multiplex outputcontrol infrastructure program 300 and the VM. Theinput information 322 stored in the control information management table 302 is received. The received input information is processed by theapplication 211 on theVM 200, and the control information 500 is generated as a result of the processing. The virtual communication I /F 213 receives the control information 500 and outputs it to the multi-system outputcontrol infrastructure program 300. The control information 500 is stored in theoutput information 325 of the control information management table 302. Note that the virtual notification interface of other VMs performs the same operation.
 図6は、仮想化多重系システム1の全体処理のフローチャートを示す。
仮想化多重系システム1の全体処理は、多重系出力制御基盤プログラム300の起動処理及び、入力情報管理プログラム303、出力情報管理プログラム304、従系情報管理プログラム305、VM-HOST生死監視プログラム306、HOST-HOST生死監視プログラム307の各プログラムの実行により行われる。
ホストOS400及びプロセッサ102は、記憶装置103に当初格納されている、多重系出力制御基盤プログラム300及びVM200をロードして計算機ノード100のメモリ101内に展開して、多重系制御基盤プログラム300の処理を開始する。FIG. 6 shows a flowchart of the overall processing of thevirtual multiplex system 1.
 The overall processing of thevirtualized multisystem 1 includes the start processing of the multisystem outputcontrol infrastructure program 300, the inputinformation management program 303, the outputinformation management program 304, the subordinateinformation management program 305, the VM-HOST life /death monitoring program 306, This is performed by executing each program of the HOST-HOST life /death monitoring program 307.
 Thehost OS 400 and theprocessor 102 load the multi-system outputcontrol infrastructure program 300 and theVM 200 initially stored in thestorage device 103, expand them in thememory 101 of thecomputer node 100, and process the multi-systemcontrol infrastructure program 300. To start.
 多重系出力制御基盤プログラム300は処理が開始されると、記憶装置103に格納された、VM状態管理テーブル301と制御情報管理テーブル302をメモリ101内に読込み(S601)、各VM200を起動する(S602)。多重系出力制御基盤プログラム300は、各VM200を起動した後、各プログラム303~307を立ち上げる(S603)。
以下、各プログラムの処理動作について説明する。When the processing is started, the multi-system outputcontrol infrastructure program 300 reads the VM state management table 301 and the control information management table 302 stored in thestorage device 103 into the memory 101 (S601), and activates each VM 200 ( S602). The multiplex system outputcontrol infrastructure program 300 activates eachVM 200 and then activates eachprogram 303 to 307 (S603).
 The processing operation of each program will be described below.
 図7は、入力情報管理プログラム303の処理フローチャートを示す。
多重系出力制御基盤プログラム300は処理が開始されると、各VM200を立ち上げて入力情報管理プログラム303を立ち上げる。入力情報管理プログラム303は処理を開始すると、端末9から入力情報を受信するまで待機している(S701)。そして入力情報を取得すると(S702)、制御情報管理テーブル302のシーケンス番号322に新たなシーケンス番号を追加して(S703)、追加した当該シーケンス番号の行に、端末9から出力された入力情報を入力情報323に格納する(S704)。FIG. 7 shows a processing flowchart of the inputinformation management program 303.
 When the processing is started, the multiplex system outputcontrol infrastructure program 300 starts up eachVM 200 and starts up the inputinformation management program 303. When starting the processing, the inputinformation management program 303 stands by until input information is received from the terminal 9 (S701). When the input information is acquired (S702), a new sequence number is added to thesequence number 322 of the control information management table 302 (S703), and the input information output from the terminal 9 is added to the added row of the sequence number. It is stored in the input information 323 (S704).
 図8は、出力情報管理プログラム304の処理フローチャートである。
多重系出力制御基盤プログラム300は処理が開始されると、各VM200を立ち上げて出力情報管理プログラム304を立ち上げる。出力情報管理プログラム304は処理を開始すると、各VMの周期処理時間を取得して、制御情報管理テーブル302の周期時間324に格納する(S800)。ただし、端末9からの入力情報に周期時間が格納されていた場合は、周期時間324の取得した周期時間を上書きすることで、周期時間を外部の入力からも決めることができる。FIG. 8 is a processing flowchart of the outputinformation management program 304.
 When the processing is started, the multiplex system outputcontrol infrastructure program 300 starts up eachVM 200 and starts up the outputinformation management program 304. When starting the process, the outputinformation management program 304 acquires the period processing time of each VM and stores it in theperiod time 324 of the control information management table 302 (S800). However, when the cycle time is stored in the input information from the terminal 9, the cycle time can be determined from an external input by overwriting the acquired cycle time of thecycle time 324.
 制御情報管理テーブル302を検索して、入力情報323は存在するが出力情報325が未だ無いものについてその入力情報323をシーケンス順に選択して、各VM200へマルチキャストで転送する(S801)。入力情報を転送した後は、周期時間324だけ待機して次の入力情報を同様にしてVM200へ転送する。これによりホストOSは各VMの同期をとることができる。つまり主従系それぞれの出力情報の差は最大で1つに抑えることができる。The control information management table 302 is searched, and theinput information 323 is selected in sequence order for theinput information 323 that exists but theoutput information 325 does not exist, and is transferred to eachVM 200 by multicast (S801). After the input information is transferred, the next input information is similarly transferred to theVM 200 after waiting for thecycle time 324. As a result, the host OS can synchronize the VMs. That is, the difference in output information between the master and slave systems can be suppressed to one at maximum.
 その後、周期時間内にあるVM200からの出力情報を受信した場合(S802の結果が「有」)、VM状態管理テーブル301の主従フラグ313を参照して、出力したVM200の主従の状態を判定する(S803)。
S803の結果が主系の場合、VMから受信した出力情報を制御情報管理テーブル302の出力情報325に書き込み(S804)、出力情報を受信した時間を出力時間326に書き込む(S805)。Thereafter, when output information from theVM 200 within the cycle time is received (the result of S802 is “Yes”), the master / slave state of theoutput VM 200 is determined with reference to the master /slave flag 313 of the VM state management table 301. (S803).
 When the result of S803 is the primary system, the output information received from the VM is written to theoutput information 325 of the control information management table 302 (S804), and the time when the output information is received is written to the output time 326 (S805).
 その後、主系の計算結果を出力するためにパケット40を生成する(S806)。パケット40の生成は、パケットの各フィールドに識別子や情報を格納することで行われる。即ち、図4に示すように、パケット40の計算機ノード識別子401にはVM状態管理テーブル301にある対のホスト計算機ノード識別子315を格納し、VM識別子402には対のVM識別子314を格納する。また、シーケンス番号403には追記した制御情報管理テーブル302のシーケンス番号322を、出力情報404には出力情報325を格納する(S806)。パケット40の生成が完了すると、そのパケットを他の多重系出力制御基盤プログラム300´へ送信する(S807)。その後、追記した出力情報325を外部通信I/F104へ出力する(S808)。Thereafter, a packet 40 is generated in order to output the calculation result of the main system (S806). The packet 40 is generated by storing an identifier and information in each field of the packet. That is, as shown in FIG. 4, the paired hostcomputer node identifier 315 in the VM state management table 301 is stored in thecomputer node identifier 401 of the packet 40, and the pairedVM identifier 314 is stored in theVM identifier 402. Further, thesequence number 322 of the added control information management table 302 is stored in thesequence number 403, and theoutput information 325 is stored in the output information 404 (S806). When the generation of the packet 40 is completed, the packet is transmitted to another multiplex system outputcontrol infrastructure program 300 ′ (S807). Thereafter, the addedoutput information 325 is output to the external communication I / F 104 (S808).
 上記S803の結果が従系の場合、主系から受信したデータと整合性を取るために、制御情報管理テーブル302の出力情報325に既に出力情報が書き込まれているか調べる(S810)。その結果、出力情報325に書き込まれている場合(S810の結果が「有」)、出力情報325とVMから受信した出力情報を比較する(S811)。比較の結果、一致した場合(S811の結果が「一致」)、特に何もしない。一方、比較の結果一致しない場合(S811の結果が「不一致」)、VMの整合性がとれていないためフェイルセイフ処理を実行する(S812)。フェイルセイフ処理は、VMを停止してもいいし、リセットして再び主従の関係に参加して処理するようにしてもよい。If the result of S803 is a subordinate system, in order to maintain consistency with the data received from the main system, it is checked whether output information has already been written in theoutput information 325 of the control information management table 302 (S810). As a result, when it is written in the output information 325 (the result of S810 is “Yes”), theoutput information 325 is compared with the output information received from the VM (S811). If they match as a result of the comparison (the result of S811 is “match”), nothing is done. On the other hand, if they do not match as a result of the comparison (the result of S811 is “mismatch”), the VM is not consistent, and fail-safe processing is executed (S812). In the fail-safe process, the VM may be stopped, or may be reset and participate in the master-slave relationship again.
 上記S810の確認の結果、出力情報325に書き込まれていない場合(S810の結果が「無」)、制御情報管理テーブル302の出力情報325にVMからの出力情報を書き込み(S813)、出力情報を受信した時間を出力時間325に書き込む(S814)。この状態は従系の計算処理が主系より速い場合に起こる。
上記S802の処理の結果、VM200からの出力情報を周期時間内に受信できなかった場合(S802の結果が「無」)、系切替用パケットの生成処理(S1205(図12))へ処理を移す。
ただし、処理S806、S807、S810,S811,S812は主従系の整合性を取るために必要であり、主従系の整合性を必要としなければこれらの処理は無くてもよい。As a result of the confirmation in S810, if theoutput information 325 is not written (the result of S810 is “No”), the output information from the VM is written in theoutput information 325 of the control information management table 302 (S813), and the output information is The received time is written in the output time 325 (S814). This situation occurs when the slave computation is faster than the master.
 If the output information from theVM 200 cannot be received within the period time as a result of the process of S802 (the result of S802 is “No”), the process proceeds to the system switching packet generation process (S1205 (FIG. 12)). .
 However, the processes S806, S807, S810, S811, and S812 are necessary for achieving master-slave consistency, and these processes may be omitted if master-slave consistency is not required.
 図9は、従系情報管理プログラム305の処理フローチャートである。
多重系出力制御基盤プログラム300は処理が開始されると、各VM200を立ち上げて従系情報管理プログラム305を立ち上げる。従系情報管理プログラム305は、多重系出力制御基盤プログラム300´から送信されたパケット40を受信すると(S901)、そのパケットから出力情報404を取得する(S902)。そして、出力情報404にデータが格納されているかを判断する(S903)。判断の結果、出力情報404にデータが格納されている場合(S903の結果が「有」)は、主系で計算した結果の制御情報を受信したので、従系の計算結果の検証・追記処理を行う(S904)(この処理は図10参照して詳述する)。一方、受信したパケットの出力情報404にデータが格納されていない場合(S903の結果が「無」)は、主系で障害が発生したため送信されたパケットであり、主従の切り替え処理を行う(S905)。(この処理は図11参照して詳述する)
なお、主従の整合性を取る必要がなければ、S903は必ず「無」になるので、処理S904は必要ではない。FIG. 9 is a process flowchart of the subordinateinformation management program 305.
 When the processing is started, the multi-system outputcontrol infrastructure program 300 starts up eachVM 200 and starts up the sub systeminformation management program 305. When the secondaryinformation management program 305 receives the packet 40 transmitted from the multi-system outputcontrol infrastructure program 300 ′ (S 901), the secondaryinformation management program 305 acquires theoutput information 404 from the packet (S 902). Then, it is determined whether data is stored in the output information 404 (S903). As a result of the determination, when data is stored in the output information 404 (the result of S903 is “Yes”), the control information of the result calculated in the main system has been received. (S904) (This process will be described in detail with reference to FIG. 10). On the other hand, when no data is stored in theoutput information 404 of the received packet (the result of S903 is “No”), the packet is transmitted because a failure has occurred in the master system, and the master-slave switching process is performed (S905). ). (This process will be described in detail with reference to FIG. 11).
 Note that if there is no need to maintain master-slave consistency, S903 is always “None”, so the process S904 is not necessary.
 図10は、制御情報の検証・追記処理S904の詳細を示すフローチャートである。
受信したパケット40に格納されているシーケンス番号402を取得し(S1001)、その番号と同じシーケンス番号を制御情報管理テーブル302から検索して、その行に出力情報325が格納されているか調べる。確認の結果、制御情報管理テーブル302に出力情報325が存在する場合(S1002の結果「有」)は、従系の計算が主系よりも進んでいることになる。その場合主系の制御情報が正しいと仮定しているため、出力情報325と受信した出力情報404を比較して一致した場合(S1003の結果が「一致」)、それ以上何も処理しないで終了する(S1004)。一方、比較結果が不一致の場合(S1003の結果が「不一致」)、従系の出力結果の整合性が取れていないため、リトライ処理等のフェイルセイフ処理S1005を行う。FIG. 10 is a flowchart showing details of the control information verification / addition processing S904.
 Thesequence number 402 stored in the received packet 40 is acquired (S1001), the same sequence number as that number is searched from the control information management table 302, and it is checked whether theoutput information 325 is stored in that row. As a result of the confirmation, when theoutput information 325 exists in the control information management table 302 (result of “Yes” in S1002), the slave calculation is more advanced than the master system. In this case, since it is assumed that the main system control information is correct, theoutput information 325 and the receivedoutput information 404 are compared and matched (the result of S1003 is “match”), and the process ends without further processing. (S1004). On the other hand, if the comparison result does not match (the result of S1003 is “mismatch”), the consistency of the output result of the slave is not satisfied, and therefore fail-safe processing S1005 such as retry processing is performed.
 上記S1002の処理において、受信したパケット40に格納されているシーケンス番号402に出力情報325が存在しない場合(S1002の結果「無」)は、主系の計算が従系よりも進んでいることになる。その場合は、受信した出力情報404を出力情報325に格納して(S1006)、処理を終了する(S1007)。
なお、従系の整合性を取る必要がなければ、制御情報の検証、追記処理S904は必要ではない。In the process of S1002, when theoutput information 325 does not exist in thesequence number 402 stored in the received packet 40 (result of S1002 is “No”), the calculation of the main system is more advanced than the subordinate system. Become. In that case, the receivedoutput information 404 is stored in the output information 325 (S1006), and the process is terminated (S1007).
 If it is not necessary to maintain the consistency of the subordinate system, the control information verification / addition processing S904 is not necessary.
 図11は、主従切替処理S905の詳細を示すフローチャートである。
この処理は、主系で障害が起きたため、主系と従系を切り替え、従系の計算結果の出力を行う処理である。
受信したパケット40からシーケンス番号403(nとする)を取得する(S1101)。そして、制御情報管理テーブル302を検索して、受信したシーケンス番号403と同じシーケンス番号322の行に出力情報325が格納されているかを確認する(S1102)。その結果、同じシーケンス番号322の行に出力情報325が格納されている場合(S1102の結果が「有」)、その格納されている制御情報を外部通信I/F104に送信する(S1103)。
従系の制御情報管理テーブルに先に計算して格納した出力情報がない場合(S1102の結果が「無」)。VM状態管理テーブルの主従更新フラグを「M」に更新して(S1107)、処理を終了する(S1108)。FIG. 11 is a flowchart showing details of the master-slave switching process S905.
 This process is a process for switching the primary system and the secondary system and outputting the calculation result of the secondary system because a failure has occurred in the primary system.
 A sequence number 403 (assumed to be n) is acquired from the received packet 40 (S1101). Then, the control information management table 302 is searched to check whether theoutput information 325 is stored in the row having thesame sequence number 322 as the received sequence number 403 (S1102). As a result, when theoutput information 325 is stored in the row of the same sequence number 322 (the result of S1102 is “Yes”), the stored control information is transmitted to the external communication I / F 104 (S1103).
 When there is no output information previously calculated and stored in the secondary control information management table (the result of S1102 is “none”). The master-slave update flag in the VM state management table is updated to “M” (S1107), and the process ends (S1108).
 図12は、VM-HOST生死監視プログラムの処理フローチャートである。
多重系出力制御基盤プログラム300は処理を開始すると、各VM200を立ち上げてVM-HOST生死監視プログラム306を立ち上げる。VM生死監視用のパケットを各VM200に送信して(S1201)、生死監視時間内に「生死監視」に対して応答が有るかを確認する(S1202)。ここで、VM生死監視用のパケットは、宛先のVM識別子と生死確認のための指令コードを有する。確認の結果、生死監視時間内に「生死監視」に関する応答があった場合(S1202の結果が「有」)、特に何もせず、生死監視を続ける。FIG. 12 is a process flowchart of the VM-HOST life and death monitoring program.
 When the multi-system outputcontrol infrastructure program 300 starts processing, eachVM 200 is started and the VM-HOST life /death monitoring program 306 is started. The VM life / death monitoring packet is transmitted to each VM 200 (S1201), and it is confirmed whether there is a response to the “life monitoring” within the life / death monitoring time (S1202). Here, the VM life / death monitoring packet has a destination VM identifier and a command code for confirmation of life / death. As a result of the confirmation, if there is a response related to “life / death monitoring” within the life / death monitoring time (the result of S1202 is “Yes”), nothing is done and life / death monitoring is continued.
 一方、生死監視時間内に「生死監視」に関する応答がない場合(S1202の結果が「無」)、VM状態管理テーブル301の主従フラグ313を参照して、応答しないVM200の主従の状態を判定する。応答しないVM200が主系の場合(S1203の結果が「主」)、対のVMの生死状態を調べるために、VM状態管理テーブル301の対のVM生死状態フラグ316を参照する(S1204)。対のVMが死んでいた場合(S1204の結果が「死」)、主系及び従系のVM両方に障害が起きたと判断して、フェイルセイフ処理を行う(S1209)。On the other hand, when there is no response regarding “life monitoring” within the life / death monitoring time (the result of S1202 is “no”), the master /slave flag 313 of the VM state management table 301 is referred to and the state of the master / slave of theVM 200 not responding is determined. . When theVM 200 that does not respond is the main system (the result of S1203 is “main”), the pair's VM life /death state flag 316 of the VM state management table 301 is referred to in order to examine the life / death state of the pair of VMs (S1204). If the paired VM is dead (the result of S1204 is “dead”), it is determined that a failure has occurred in both the primary and secondary VMs, and a fail-safe process is performed (S1209).
 一方、VM状態管理テーブル301の対のVM生死状態フラグ316を参照の結果、対のVMが生きている場合(S1204の結果が「生」)、系切替用のパケット40を生成する(S1205)。ここで、系切替用のパケット40は、VM状態管理テーブルにある対のホスト計算機ノード識別子315を計算機ノード識別子401に格納し、対のVM識別子314をVM識別子402に格納し、最新の制御情報管理テーブルのシーケンス番号322をシーケンス番号403に格納する。生成された系切替用パケット40は他の計算機ノード100-Bの多重系出力制御基盤プログラム300´へ送信される(S1206)。
その後、VM状態管理テーブル301の主従フラグ313を「S」に更新し(S1207)、フェイルセイイフ処理S1208を実行する。On the other hand, as a result of referring to the paired VM life /death state flag 316 in the VM state management table 301, if the paired VM is alive (result of S1204 is “live”), the system switching packet 40 is generated (S1205). . Here, the system switching packet 40 stores the paired hostcomputer node identifier 315 in the VM state management table in thecomputer node identifier 401, stores the pairedVM identifier 314 in theVM identifier 402, and stores the latest control information. Thesequence number 322 of the management table is stored in thesequence number 403. The generated system switching packet 40 is transmitted to the multiplex system output control infrastructure program 300 'of the other computer node 100-B (S1206).
 Thereafter, the master-slave flag 313 of the VM state management table 301 is updated to “S” (S1207), and the fail-safe process S1208 is executed.
 上記S1203において応答しないVM200が従系の場合(S1203の結果が「従」)、VM状態更新パケット70(図14)を生成する(S1210)。対となるVMのVM状態管理テーブル300の対のVM生死状態フラグ316を更新するため、VM状態管理テーブル300から通知先の対のホスト計算機ノード識別子315と対のVM識別子314を取得し、VM状態更新パケット70の対応する箇所に格納する。その後、VM状態更新パケット70は、他の計算機ノード100-Bの多重系出力制御基盤プログラム300´送信され(S1211)、フェイルセイイフ処理を実行する(S1212)。When theVM 200 that does not respond in S1203 is a slave (the result of S1203 is “slave”), a VM state update packet 70 (FIG. 14) is generated (S1210). In order to update the pair VM live /dead state flag 316 of the VM state management table 300 of the paired VM, the hostcomputer node identifier 315 of the notification destination pair and theVM identifier 314 of the pair are acquired from the VM state management table 300, and the VM Store in the corresponding location of the status update packet 70. Thereafter, the VM state update packet 70 is transmitted to the multi-system outputcontrol infrastructure program 300 ′ of the other computer node 100-B (S1211), and the fail-safe process is executed (S1212).
 図13は、HOST-HOST生死監視プログラムの処理フローチャートである。
多重系出力制御基盤プログラム300は処理を開始すると、各VMを立ち上げHOST-HOST生死監視プログラム306を立ち上げる。そして、生死監視用のパケットを他の計算機ノード100-Bの多重系出力制御基盤プログラム300´へ送信する(S1301)。ここで、VM生死監視用のパケットは、ホスト計算機ノード識別子と、宛先のVM識別子と、生死確認のための指令コードを有する。生死監視時間内に「生死監視」に対する応答を受信した場合(S1302の結果が「有」)、特に何もせず、生死監視を続ける。一方、生死監視時間内に「生死監視」に対する応答を受信しない場合(S1302の結果が「無」)、VM状態管理テーブル301の主従フラグ313を全て「M」に更新する(S1303)。その後、他の計算機ノード100-Bの多重系出力制御基盤プログラム300´はフェイルセイフ処理を実行する。FIG. 13 is a process flowchart of the HOST-HOST life and death monitoring program.
 When the multi-system outputcontrol infrastructure program 300 starts processing, each VM is started up and the HOST-HOST life /death monitoring program 306 is started up. Then, the packet for life and death monitoring is transmitted to the multiplex system outputcontrol infrastructure program 300 ′ of the other computer node 100-B (S1301). Here, the VM life / death monitoring packet has a host computer node identifier, a destination VM identifier, and a command code for confirmation of life / death. If a response to “life / death monitoring” is received within the life / death monitoring time (the result of S1302 is “Yes”), nothing is done and life / death monitoring is continued. On the other hand, if a response to “life / death monitoring” is not received within the life / death monitoring time (the result of S1302 is “none”), all the master-slave flags 313 of the VM state management table 301 are updated to “M” (S1303). Thereafter, the multi-system outputcontrol infrastructure program 300 ′ of the other computer node 100-B executes fail-safe processing.
 図15は、VM状態更新プログラムのフローチャートである。
多重系出力制御基盤プログラム300は処理を開始すると、各VM200を立ち上げてVM状態更新プログラム308を立ち上げる。他の計算機ノード100-Bの多重系出力制御基盤プログラム300´からVM状態更新パケットを受信すると(S1501)、VM状態更新パケットから生死状態703を取得する(S1502)。そして、VM状態管理テーブル301のVM生死状態フラグ316を生死状態703に更新する(S1503)。
なお、以上の処理動作は、他の計算機ノード100-Bの多重系出力制御基盤プログラム300´が有する同種のプログラムも同様に実行される。FIG. 15 is a flowchart of the VM state update program.
 When the multi-system outputcontrol infrastructure program 300 starts processing, theVM 200 is started up and the VMstate update program 308 is started up. When a VM state update packet is received from the multiplex system output control infrastructure program 300 'of another computer node 100-B (S1501), a life /death state 703 is acquired from the VM state update packet (S1502). Then, the VM life /death state flag 316 of the VM state management table 301 is updated to the life / death state 703 (S1503).
 It should be noted that the above processing operation is executed in the same manner for the same type of program that the multi-system output control infrastructure program 300 'of the other computer node 100-B has.
 実施例1は、外部の端末9からの情報が外部通信I/F104、104´を介して、主系及び従系の両方の計算機ノードに入力される例であった。これに対して、実施例2は外部の端末9からの入力情報は主系の計算機ノード100-Aのみに入力され、主系の計算機ノード100-Aから従系の計算機ノード100-Bへ入力情報の同期を行う例である。
なお、入力情報の同期以外の処理は、実施例1と同様であるので、その説明を省略する。また、図16以降で、実施例1における図面の同じ部分には同じ符号を付してある。The first embodiment is an example in which information from the external terminal 9 is input to both the primary and secondary computer nodes via the external communication I /Fs 104 and 104 ′. On the other hand, in the second embodiment, the input information from the external terminal 9 is input only to the primary computer node 100-A, and is input from the primary computer node 100-A to the secondary computer node 100-B. This is an example of synchronizing information.
 Since processing other than the synchronization of input information is the same as that in the first embodiment, the description thereof is omitted. In FIG. 16 and subsequent figures, the same reference numerals are given to the same parts of the drawings in the first embodiment.
 図16は、仮想化環境多重制御の計算機システムの全体構成を示す。
図1に示す計算機システムに比べて異なる点は、入力情報同期管理テーブル161と入力同期管理プログラム162が追加されたことである。この入力情報同期管理テーブル161は、主系及び従系を構成する計算機ノードの多重系出力制御基盤プログラムに存在する。FIG. 16 shows the overall configuration of a virtual environment multiplex control computer system.
 The difference from the computer system shown in FIG. 1 is that an input information synchronization management table 161 and an inputsynchronization management program 162 are added. This input information synchronization management table 161 exists in the multi-system output control infrastructure program of the computer nodes constituting the primary system and the secondary system.
 図17に示すように、入力情報同期管理テーブル161において、VM識別子1711は、計算機ノード100内でVMを識別するための識別子を格納する。シーケンス番号1712には、同期する入力情報を識別する。入力情報1713には、VM状態管理テーブル301からVM識別子が「M」の場合、端末9から受信した入力情報を格納する。「S」の場合は、入力情報管理プログラム303の実行(図19参照)によって送信される、主系のVMを制御する計算機ノード(例えば計算機ノード100-A)からの入力情報を格納する。同期送信状態1714は、主系のVMを制御する計算機ノードの場合は、従系へ送信した後に送信済みを表す「1」を格納する。従系のVMを制御する計算機ノードの場合は、主系からの受信をもって「1」を格納する。同期受信状態1715は、主系のVMを制御する計算機ノードの場合は、従系からの受信をもって、受信済みを表す「1」を格納する。17, in the input information synchronization management table 161, theVM identifier 1711 stores an identifier for identifying the VM in thecomputer node 100. Thesequence number 1712 identifies input information to be synchronized. Theinput information 1713 stores the input information received from the terminal 9 when the VM identifier is “M” from the VM state management table 301. In the case of “S”, the input information from the computer node (for example, computer node 100-A) that controls the main VM transmitted by executing the input information management program 303 (see FIG. 19) is stored. In the case of a computer node that controls the primary VM, thesynchronous transmission state 1714 stores “1” indicating transmission completion after transmission to the slave. In the case of a computer node that controls a subordinate VM, “1” is stored upon reception from the main system. In the case of a computer node that controls the primary VM, thesynchronous reception state 1715 stores “1” indicating that it has been received upon reception from the secondary.
 従系のVMを制御する計算機ノードの場合は、入力同期管理プログラム162によって処理されるが、主系への送信をもって「1」を格納する。同期送信状態1714と同期受信状態1715で、主系と従系の入力情報同期管理テーブル161の状態を一致させる。そのため、主系異常時でも従系が別途処理を要せずに入力情報同期管理テーブル161の状態を引き継ぐことができる。In the case of a computer node that controls a subordinate VM, processing is performed by the inputsynchronization management program 162, but “1” is stored by transmission to the main system. In thesynchronous transmission state 1714 and thesynchronous reception state 1715, the states of the primary and secondary input information synchronization management tables 161 are matched. Therefore, even when the main system is abnormal, the sub system can take over the state of the input information synchronization management table 161 without requiring a separate process.
 図18は、入力同期用計算機ノード間通信用のパケット180のフォーマット構成を示す。
このパケット180は、主系と従系間の入力同期させるために計算機ノード間で通信される。送信元計算機ノード識別子1811は送信元の計算機ノード識別子を格納し、送信元VM識別子1812は送信元のVM識別子を格納する。計算機ノード識別子1813は受信元の計算機ノード識別子を格納し、VM識別子1814は受信元のVM識別子を格納する。シーケンス番号1815と入力情報1816について、主系では外部の端末9からの情報を格納する。一方、従系では主系から受信した情報をコピーして格納する。FIG. 18 shows a format configuration of a packet 180 for communication between computer nodes for input synchronization.
 This packet 180 is communicated between computer nodes in order to synchronize input between the master and slave systems. The transmission sourcecomputer node identifier 1811 stores the transmission source computer node identifier, and the transmissionsource VM identifier 1812 stores the transmission source VM identifier. Thecomputer node identifier 1813 stores a reception source computer node identifier, and theVM identifier 1814 stores a reception source VM identifier. As for thesequence number 1815 and theinput information 1816, information from the external terminal 9 is stored in the main system. On the other hand, in the slave system, information received from the master system is copied and stored.
 次に、図19を参照して、入力情報管理プログラム303の処理について説明する。
多重系出力制御基盤プログラム300は処理が開始されると、各VMを立ち上げて入力情報管理プログラム303を立ち上げる。入力情報管理プログラム303は、端末9から入力情報を受信するまで待機する(S1901)。端末9からの入力情報を取得した場合(S1902)、入力情報を処理するVMが主系か従系かを確認する(S1903)。Next, processing of the inputinformation management program 303 will be described with reference to FIG.
 When the processing is started, the multiplex system outputcontrol infrastructure program 300 starts up each VM and starts up the inputinformation management program 303. The inputinformation management program 303 stands by until input information is received from the terminal 9 (S1901). When the input information from the terminal 9 is acquired (S1902), it is confirmed whether the VM that processes the input information is the primary system or the secondary system (S1903).
 確認の結果、従系の場合、端末9からの入力情報を受信するまで待機する(S1901)。一方、主系の場合は、入力情報同期管理テーブル161のシーケンス番号1612に新たなシーケンス番号を追加する(S1911)。その後、追加したシーケンス番号の行に、端末9から出力された入力情報を入力情報同期管理テーブル161の入力情報1713に格納する(S1912)。そして、従系のVMを制御する計算機ノードへ送信するため、入力同期用計算機ノード間通信用パケット180を作成する(S1913)。従系のVMを制御する計算機ノードへパケット180を送信する(S1914)。そして同期送信状態1614に「1」を格納し、送信済み状態とする(S1915)。As a result of the confirmation, in the case of the slave, it waits until it receives the input information from the terminal 9 (S1901). On the other hand, in the case of the main system, a new sequence number is added to the sequence number 1612 of the input information synchronization management table 161 (S1911). Thereafter, the input information output from the terminal 9 is stored in theinput information 1713 of the input information synchronization management table 161 in the added sequence number row (S1912). Then, in order to transmit to the computer node that controls the subordinate VM, the communication packet 180 for communication between computer nodes for input synchronization is created (S1913). The packet 180 is transmitted to the computer node that controls the subordinate VM (S1914). Then, “1” is stored in the synchronous transmission state 1614, and the transmission is completed (S1915).
 その後、従系のVMを制御する計算機ノードからパケット180を受信すると(S1916)、入力情報同期管理テーブル161の同期受信状態1615に「1」を格納し、受信済み状態とする(S1917)。更にシーケンス番号1612を制御情報管理テーブル302のシーケンス番号322に格納し(S1918)、入力情報1613を同じく入力情報323に格納する(S1919)。これで、入力情報の管理処理を完了する。Thereafter, when the packet 180 is received from the computer node that controls the subordinate VM (S1916), "1" is stored in the synchronous reception state 1615 of the input information synchronization management table 161, and the reception state is set (S1917). Further, the sequence number 1612 is stored in thesequence number 322 of the control information management table 302 (S1918), and the input information 1613 is also stored in the input information 323 (S1919). This completes the input information management process.
 次に、図20を参照して、入力同期管理プログラム162の処理について説明する。
多重系出力制御基盤プログラム300は処理が開始されると、各VMを立ち上げて入力同期管理プログラム162を立ち上げる。入力同期管理プログラム162は、他計算機ノード100-B(の多重系出力制御基盤プログラム)から入力同期用計算機ノード間通信用のパケット180を受信するまで待機する(S2011)。他計算機ノード100-Bから入力情報を取得すると(S2012)、VM識別子1714が主系か確認する(S2013)。確認の結果主系の場合、他計算機ノードからの入力同期用計算機ノード間通信用のパケット180を受信するまで待機する(S2011)。Next, processing of the inputsynchronization management program 162 will be described with reference to FIG.
 When the processing is started, the multiplex system outputcontrol infrastructure program 300 starts up each VM and starts up the inputsynchronization management program 162. The inputsynchronization management program 162 stands by until it receives the packet 180 for communication between input synchronization computer nodes from the other computer node 100-B (its multiple system output control infrastructure program) (S2011). When the input information is acquired from the other computer node 100-B (S2012), it is confirmed whether theVM identifier 1714 is the primary system (S2013). In the case of the main system as a result of the confirmation, it waits until it receives a packet 180 for communication between computer nodes for input synchronization from another computer node (S2011).
 一方、確認の結果従系の場合は、パケット180のシーケンス番号1815を入力情報同期管理テーブル161のシーケンス番号1712に格納する(S2031)。その後、追加したシーケンス番号の行に、パケット180の入力情報1816を入力情報1713に格納する(S2032)。同期送信状態1714には「1」を格納し、送信元VM識別子1712のVMを制御する計算機ノードから送信してきたことを示す。受信完了したことを送信元の計算機ノードへ知らせるためにパケット180を送り返す(S2035)。送り返したことを示すため、入力情報同期管理テーブル161の同期受信状態1715に「1」を格納する。格納したシーケンス番号1712を制御情報管理テーブル302のシーケンス番号322に格納する(S2037)。入力情報1613を制御情報管理テーブル302の入力情報323に格納する(S2038)。以上で、入力同期管理の処理を完了する。On the other hand, in the case of the slave as a result of the confirmation, thesequence number 1815 of the packet 180 is stored in thesequence number 1712 of the input information synchronization management table 161 (S2031). Thereafter, theinput information 1816 of the packet 180 is stored in theinput information 1713 in the row of the added sequence number (S2032). “1” is stored in thesynchronous transmission state 1714, indicating that transmission has been made from the computer node that controls the VM of the transmissionsource VM identifier 1712. The packet 180 is sent back to notify the transmission source computer node that the reception has been completed (S2035). In order to indicate that the data has been sent back, “1” is stored in thesynchronous reception state 1715 of the input information synchronization management table 161. The storedsequence number 1712 is stored in thesequence number 322 of the control information management table 302 (S2037). The input information 1613 is stored in theinput information 323 of the control information management table 302 (S2038). This completes the input synchronization management process.