WO2010106593A1 - 高信頼性計算機システムおよびその構成方法 - Google Patents

高信頼性計算機システムおよびその構成方法 Download PDF

Info

Publication number
WO2010106593A1
WO2010106593A1 PCT/JP2009/005872 JP2009005872W WO2010106593A1 WO 2010106593 A1 WO2010106593 A1 WO 2010106593A1 JP 2009005872 W JP2009005872 W JP 2009005872W WO 2010106593 A1 WO2010106593 A1 WO 2010106593A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
application
computer
processing unit
storage device
Prior art date
Application number
PCT/JP2009/005872
Other languages
English (en)
French (fr)
Inventor
西山博泰
太田智也
横田大輔
野村賢
新井利明
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/201,579 priority Critical patent/US20120030504A1/en
Priority to CN2009801567219A priority patent/CN102317921A/zh
Publication of WO2010106593A1 publication Critical patent/WO2010106593A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage

Definitions

  • the present invention relates to a technique for configuring a highly reliable computer system for applications that require high reliability.
  • clustering As one of the techniques for realizing such high availability, a system configuration technique called clustering is known in which an active system and a standby system are prepared, and switching from the active system to the standby system occurs when a problem occurs in the active system. .
  • Clustering methods include (a) a method that prevents the active system from holding the processing state, and only switches between the active system and the standby system when a failure in the active system is detected, or (b) the active system and the standby system.
  • a method is known in which the states of these are matched and the processing at the time of failure detection is recovered when a failure is detected. Since it is difficult for the method (a) to give the operating system a state, the method (b) has higher applicability.
  • the I / O state is buffered in the operation system until the synchronization of the memory state is completed, and the I / O state is reflected when the synchronization between the systems is completed.
  • Is a restart point and when a failure is detected, a technique for re-executing the standby system from the restart point is shown (see Non-Patent Document 1).
  • hypervisor virtualizes the entire system (system virtualization) of a hardware system that executes an application and an OS.
  • the present invention has been made in view of the above-described problems of the prior art, and an object of the present invention is to provide a highly reliable computer system capable of speeding up the copying process and a configuration method thereof.
  • the present invention monitors the state of the program of the active computer, detects a synchronization point for performing state synchronization between the active computer and the standby computer, Only information necessary for continuation of subsequent processing is extracted from the storage device of the active computer as information to be copied, and the extracted copy target information is copied from the active computer to the standby computer. Is.
  • (A) is a state diagram which shows the state of the memory under application execution
  • (b) is a state diagram which shows the state of the memory at the time of application termination.
  • (A) is a state diagram showing the state of the memory at the end of the processing phase # 1
  • (b) is a state diagram showing the state of the memory at the end of the processing phase # 2. It is a flowchart for demonstrating the synchronization point determination process in the case of setting the time of process phase switching as a synchronization point.
  • (A) is a state diagram which shows the state of the memory before GC completion
  • (b) is a state diagram which shows the state of the memory after GC completion.
  • an application the end point of an application program (hereinafter referred to as an application) is used as a synchronization point, and information in unnecessary areas (unused areas) is not copied.
  • FIG. 1 is a configuration diagram of a highly reliable computer system showing a first embodiment of the present invention.
  • the high-reliability computer system is composed of an active computer 101 and a standby computer 102.
  • the active computer 101 and the standby computer 102 are connected by a connection network 103 such as a network or a bus. Via the shared external storage device 120.
  • the operational computer 101 includes hardware 104 as operational hardware resources, and includes a system virtualization processor 105, an application execution OS (Operating System) 106, and an application virtualization processor 107 as operational software resources. And an application 108 and a management OS 109.
  • a system virtualization processor 105 includes a system virtualization processor 105, an application execution OS (Operating System) 106, and an application virtualization processor 107 as operational software resources.
  • an application 108 and a management OS 109 includes a management OS 109.
  • the standby computer 102 has basically the same configuration as that of the active computer 101.
  • the standby computer 102 includes hardware 114 as a standby hardware resource, and includes a system virtualization processing unit 115 and an application execution resource as a standby software resource.
  • the system includes an OS 116, an application virtualization processing unit 117, an application 118, and a management OS 119.
  • the hardware 104, 114 includes, for example, an input / output device, a storage device (hereinafter referred to as a memory), a processing device (both not shown), and the like.
  • a memory stores a plurality of programs including a control program and a processing program, and information constituting each software resource.
  • the system virtualization processing unit 105 performs processing by virtualizing the hardware 104 for the application execution OS (Operating System) 106, the application virtualization processing unit 107, the application 108, and the management OS 109.
  • the processing unit 107 virtualizes the application 108 with respect to the application execution OS 106 and executes processing.
  • the system virtualization processing unit 105 monitors the execution state of the application execution OS and the application 108 to detect a synchronization point for state synchronization with the standby computer 102, and at the detected synchronization point, the memory Information to be copied necessary for continuation of processing is extracted, and the extracted information to be copied is transferred to the standby computer 102 via the connection network 103.
  • the system virtualization processing unit 105 includes a state copy processing unit 110 that is a characteristic process of the present invention.
  • the state copy processing unit 110 extracts state information related to the state of the memory used by the OS 106 operating on the system virtualization processing unit 105 and the application virtualization processing unit 107 and the application 108 from the memory as information to be copied.
  • the extracted status information is transferred to the standby computer 102 via the connection network 103, and the standby computer 102 is instructed to copy the status information.
  • the operational computer 101 sends the I / O operation issued from the OS 106 to the system virtualization processing unit 105 to the management OS 109 once, and the management OS 109 performs buffering of the I / O operation.
  • the buffer 201 stores data associated with buffering.
  • the I / O operation buffered by the management OS 109 is reflected from the buffer 201 to the hardware 104 by the system virtualization unit 105 when the copying of the state information from the active computer 101 to the standby computer 102 is completed. .
  • the I / O operations reflected in the hardware 104 are similarly buffered by the active computer 101 and the standby computer 102 by sending external input information to the active computer 101 and the standby computer 102.
  • FIG. 3 shows a processing sequence 301 of the active computer 101 and a processing sequence 302 of the standby computer 102.
  • the active computer 101 detects the synchronization point 303
  • the active computer 101 copies the memory status information 304 to the standby computer 102 at this synchronization point 303.
  • the active computer 101 buffers I / O operations after the synchronization point 303 (305).
  • the standby computer 102 resumes processing from the start point 307 based on the copied state information 304. Will be.
  • the standby computer 102 continues the processing in the active computer 101.
  • FIGS. 4A and 4B show the state of the memory accompanying the execution of the application 108.
  • FIG. FIG. 4A shows the state of the memory during execution of the application 108.
  • the storage area 400 of the memory includes a use area 401 of the OS 106, a use area 402 of the first application (AP # 1), a use area 403 of the second application (AP # 2), and an unused area. 404.
  • FIG. 4B shows a state where the execution of the first application (AP # 1) has been completed (completed).
  • the memory storage area 400 includes a use area 401 of the OS 106, an execution end area 405, a use area 403 of the second application (AP # 2), and an unused area 404.
  • the execution end area 405 is an area corresponding to the use area 402 used by the first application (AP # 1), and is regarded as an unused area.
  • the use of the OS 106 is performed.
  • Information about the area 401, the use area 402 of the first application (AP # 1), the use area 403 and the unused area 404 of the second application (AP # 2) is all from the active computer 101 to the standby computer 102. Will be copied.
  • the end point of the application 108 is set as a synchronization point, and copying of unnecessary area (unused area) information is not performed, thereby speeding up the state information copying process.
  • the processing shown in FIG. 5 is executed by the state copy processing unit 110 in the system virtualization processing unit 105.
  • the processing by the state copy processing unit 110 is activated in response to an appropriate factor in the process of realizing system virtualization.
  • the state copy processing unit 110 starts processing in step 501, and then investigates the operations of the OS 106, the application virtualization processing unit 107, and the application 108 that are operating on the system virtualization processing unit 105. Whether or not the synchronization point is reached is determined based on the execution state of step 108 (step 502). When the execution of the application 108 is finished, the process proceeds to step 503. When the execution of the application is not finished, step The process proceeds to step 509, and the process in this routine ends.
  • step 502 The specific processing content of step 502 is shown in FIG.
  • the state copy processing unit 110 executes determination of synchronization points and calculation of a non-target region set.
  • the state copy processing unit 110 starts processing in step 601 and then determines whether or not the application 108 has ended (step 602). If it is determined in step 602 that the application 108 has ended, the state copy processing unit 110 sets the determination value S to “1”, for example, as a synchronization point, and ends the execution of the application for the non-target area N The execution end area is set (step 603), and then the process proceeds to step 605 to complete the processing in this routine.
  • the execution of the first application (AP # 1) of the applications 108 is completed and the memory storage area 400 is configured as shown in FIG. 4B, the application (AP # 1) is used.
  • the execution end area 405 corresponding to the used area 402 is removed from the copy target and is set as the non-target area N.
  • step 602 determines whether the application 108 has ended. If it is determined in step 602 that the application 108 has not ended, the state copy processing unit 110 sets the determination value S to “0”, for example, as an asynchronous point (step 604). The process proceeds to 605 and the processing in this routine is completed.
  • the state copy processing unit 110 is configured such that the storage area 400 of the memory is as shown in FIG. 4A, and the first application (AP # 1) and the second application (AP # 2) are included. When in the execution state, it is determined that it is not a synchronization point.
  • step 503 the state copy processing unit 110 sets a variable N to a variable R, which is a set of areas used by the OS 106, the application virtualization processing unit 107, and the application 108 operating on the system virtualization processing unit 105. Find a region set that is not to be copied.
  • the memory storage area 400 has four areas. Since it is divided into (the use area 401 of the OS 106, the execution end area 405, the use area 403 of the second application (AP # 2), and the unused area 404), the variable R of the area set is obtained as 4. And the variable N of the non-target region set is obtained as 2. In this case, the non-target area set includes an execution end area 405 and an unused area 404.
  • the state copy processing unit 110 determines whether or not the region set variable R is an empty set (step 504). If the region set variable R is not an empty set, the process proceeds to step 505. Take one element. Subsequently, the state copy processing unit 110 determines whether or not the variable r is included in the variable N of the non-target region set (step 506). If the variable r is included in the variable N of the non-target region set, The control unit of the secondary storage device returns to step 504 and repeats the processing from step 504 to step 506 until the variable R of the area set becomes an empty set.
  • step 506 If it is determined in step 506 that the variable r is not included in the variable N of the non-target region set, the state copy processing unit 110 proceeds to step 507 and determines a region outside the non-target region, that is, a copy target. In order to copy information stored in the usage area 401 of the OS 106 and the usage area 403 of the second application (AP # 2) from the active computer 101 to the standby computer 102 as information to be copied. Execute the process.
  • step 504 If it is determined in step 504 that the variable R of the area set is an empty set, the state copy processing unit 110 assumes that all information to be copied has been copied from the active computer 101 to the standby computer 102, and step 508 is performed. Then, the buffered I / O operation is reflected on the hardware 104, the process proceeds to step 509, and the process in this routine is terminated.
  • the synchronization point is set, and the use area 401 of the OS 106 is stored in the storage area 400 of the memory at this synchronization point.
  • the information stored in the use area 403 of the second application (AP # 2) (information belonging to the application program scheduled to be used after the synchronization point), and the extracted information is a copy target necessary for continuing processing Since the information is copied from the active computer 101 to the standby computer 102, it is possible to speed up the copying process of information necessary for continuation of processing, which contributes to the improvement of the execution performance of the highly reliable computer system. be able to.
  • the synchronization point is used.
  • the execution of the first application (AP # 1) of the applications 108 is completed.
  • the execution of the second application (AP # 2) is completed, the synchronization point is used. It can also be. In this case, only the information stored in the use area 401 of the OS 106 is copied from the active computer 101 to the standby computer 102 as information to be copied that is necessary for continuing the processing.
  • a switching point of processing phases constituting the application 108 is set as a synchronization point, and the other configuration is the same as that of the first embodiment.
  • FIG. 7B shows the state of the memory in phase # 2.
  • the memory storage area 400 shown in FIG. 7A includes an OS use area 411, a use area 412 and an unused area 413 for the application 108.
  • the usage area 412 of the application 108 includes application usage areas 414, 415, and 416 that are used only in the first processing phase # 1. For this reason, when the program shifts to the second processing phase # 2, the application use areas 414, 415, and 416 in the first processing phase # 1 are executed end areas 417, 418, 419, and the use area 412 of the application 108 becomes the application use area 420.
  • the OS use area 411, the application usage area 412 or 420, and the information regarding the unused area 413 are all copied from the active computer 101 to the standby computer 102.
  • the process phase switching point is used as a synchronization point, and information of unnecessary areas (unused areas 413, execution end areas 417, 418, and 419) is not copied, thereby copying state information. Is going to speed up.
  • the processing in the present embodiment is the same as that in the first embodiment except for the synchronization point determination and the non-target region N setting. In this embodiment, the synchronization point determination and the non-target region N setting processing are performed. Only will be described. Further, the processing shown in FIG. 8 is executed by the state copy processing unit 110 in the system virtualization processing unit 105.
  • the state copy processing unit 110 starts processing in step 801, and then monitors the execution state of the application 108 to determine whether or not the processing phase has ended (step 802). For example, when it is determined in step 802 that the processing phase # 1 has ended, the state copy processing unit 110 sets the determination value S to “1”, for example, as a synchronization point, and processes the non-target region N. The execution of the phase is set as the execution end region (step 803), and then the process proceeds to step 805 to complete the processing in this routine.
  • the state copy processing unit 110 excludes the non-target area N excluded from the copy target from the use area 412 of the old process phase (process phase # 1) and the use area 420 of the new process phase (process phase # 2).
  • the process of (execution end areas 417, 418, 419, unused area 413) is executed.
  • step 802 determines whether the processing phase has ended. If it is determined in step 802 that the processing phase has ended, the state copy processing unit 110 sets the determination value S to, for example, “0”, assuming that it is an asynchronous point (step 8004), and then step The process proceeds to 805 to complete the processing in this routine.
  • the processing phase switching point in the application 108 at which the execution of the first processing phase # 1 is completed is set as a synchronization point, and the OS 106 stores the memory 106 in the memory area 400 at this synchronization point. Only the information stored in the use area 411 and the area obtained by removing the execution end areas 417, 418, and 419 from the application use area 420 (information belonging to the processing phase scheduled to be used after the synchronization point) is extracted. Since the information to be copied necessary for continuation of processing is copied from the active computer 101 to the standby computer 102, the copying process of information necessary for continuation of processing can be speeded up, and a highly reliable computer system It is possible to contribute to the improvement of execution performance.
  • the processing phase switching point at which the execution of the first processing phase # 1 in the application 108 is completed is set as the synchronization point, but the processing phase switching point at which the execution of the other processing phases is completed. Can also be used as a synchronization point. In this case, only information belonging to the processing phase scheduled to be used after the synchronization point is copied from the active computer 101 to the standby computer 102 as information to be copied that is necessary for continuing the processing.
  • the point in time when the unused area of the application 108 is determined is set as a synchronization point, and the other configuration is the same as that of the first embodiment.
  • the application virtualization processing unit 107 is an execution system provided with garbage collection (GC)
  • the time when the unused area is determined by garbage collection (GC) is set as the synchronization point. Is.
  • FIG. 9A shows the state of the memory before garbage collection (GC)
  • FIG. 9B shows the state of the memory after garbage collection (GC).
  • the memory storage area 400 shown in FIG. 9A includes an OS use area 421, an application use area 421, and an unused area 423.
  • a plurality of unused data areas 424 exist in the application usage area 421 in a distributed manner.
  • the OS use area 421 and all information regarding the application use area 421 and the unused area 423 are copied from the active computer 101 to the standby computer 102.
  • the time when an unused area is determined by garbage collection (GC) is set as a synchronization point, and information of unnecessary areas (unused area 423 and a plurality of unused data areas 424) is not copied. Therefore, the state information copying process is accelerated.
  • GC garbage collection
  • the state copy processing unit 110 starts processing in step 1001, instructs the application virtualization processing unit 107 to execute garbage collection (GC), and determines whether or not garbage collection (GC) has been completed ( Step 1002).
  • GC garbage collection
  • the application virtualization processing unit 107 uses garbage collection (GC) to collect information on a plurality of unused data areas 424 belonging to the application virtualization usage area 421, and displays the collected information in FIG. ),
  • the application virtualization usage area 425 is stored in the unused data area 426, and the application virtualization usage area 425 stores the unused data area 426 for storing unused data and the data in use.
  • the status copy processing unit 110 is informed that the process is divided into the in-use data area 427 and configured. Notice.
  • the state copy processing unit 110 When the status copy processing unit 110 receives a notification from the application virtualization processing unit 107 that the unused data area 426 has been determined, the state copy processing unit 110 indicates a synchronization point indicating when the unused area has been determined by the completion of garbage collection (GC). For example, the determination value S is set to “1”, and the non-target area N is set as an unused area determined by the completion of garbage collection (GC) (step 1003). Thereafter, the process proceeds to step 1005. The processing in this routine is completed.
  • GC completion of garbage collection
  • the unused data area 426 of the application virtualization usage area 425 is It is removed from the copy target area and is designated as a non-target area N.
  • the state copy processing unit 110 uses information stored in the use area 421 and the in-use data area 427 of the OS 106, which is an area different from the non-target area N, that is, an area to be copied, as an operational computer. Processing for copying from 101 to the standby computer 102 is executed.
  • step 1002 determines whether the garbage collection (GC) has been completed. If it is determined in step 1002 that the garbage collection (GC) has not been completed, the state copy processing unit 110 sets the determination value S to, for example, “0”, assuming that it is an asynchronous point (step 1004). Thereafter, the process proceeds to step 805 to complete the processing in this routine.
  • GC garbage collection
  • a point in time when an unused area is determined by the completion of garbage collection (GC) is set as a synchronization point, and at this synchronization point, the use area 421 of the OS 106 is stored as information stored in the storage area 400 of the memory. And only the information stored in the in-use data area 427 in the application virtualization utilization area 425 is extracted, and the extracted information is used as information to be copied necessary for continuing processing from the active computer 101 to the standby system. Since copying to the computer 102 is performed, it is possible to speed up the copying process of information necessary for continuation of processing, and to contribute to improving the execution performance of the highly reliable computer system.
  • GC garbage collection
  • the OS 106 operating on the system virtualization processing unit 105, the application virtualization processing unit 107, or an API (Application Programming Interface) call from the application 108 is used to indicate a synchronization point and a non-target area.
  • the point designated by is used as a synchronization point, and the state copy process is speeded up by not copying the state of the unused area, and the other configuration is the same as in the first embodiment.
  • information relating to the API is created in advance in the information relating to the execution of the application 108.
  • a point indicating the end of an application or a point indicating a switching point of a processing phase is set as a calling point, and an API 1101 indicating that the calling point is a synchronization point is set in advance.
  • an API 1101 indicating that the calling point is a synchronization point is set in advance.
  • An API 1102 indicating the presence is created in advance by the function “register_unused”.
  • the system virtualization processing unit When the API 1101 and the API 1102 are created in the application 108, when the application 108 becomes the API 1101 in the process of processing, the system virtualization processing unit indicates that the calling point is a synchronization point by an API call. And instructing that the API A 1102 is a non-target area different from the copy target area.
  • the system virtualization processing unit 105 determines that it is a synchronization point by calling an API, and at this synchronization point, from the storage area 400 of the memory, it is excluded from the target indicated by the API ⁇ ⁇ 1102.
  • the storage area 400 of the memory includes the use area 401 of the OS 106 and the use area 403 of the second application (AP # 2). Only the stored information (for example, an application program scheduled to be used after the synchronization point) is extracted, and the extracted information is copied from the active computer 101 to the standby computer 102 as information to be copied that is necessary for continuing the processing. .
  • this API call point in response to an API call from the application 108, this API call point is set as a synchronization point, and at this synchronization point, from the storage area 400 of the memory, the non-target area indicated by the API 1102 Since only the information of different copy target areas is extracted, and the extracted information is copied from the active computer 101 to the standby computer 102 as the copy target information necessary for the processing continuation, information necessary for the processing continuation is obtained. Copy processing can be speeded up, and this contributes to improvement in execution performance of a highly reliable computer system.
  • the present invention is used to improve the performance required for state copying between the active computer 101 and the standby computer 102 in a highly reliable computer system composed of the active computer 101 and the standby computer 102. it can.

Abstract

【課題】 運用系計算機101から待機系計算機102への複写処理を高速化すること。 【解決手段】 状態複写処理部110は、複写対象の情報を運用系計算機101から待機系計算機102へ複写するに際して、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が完了したときを同期点とし、この同期点において、メモリの記憶領域400の中から、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に記憶されている情報のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ転送する。

Description

高信頼性計算機システムおよびその構成方法
本発明は、高い信頼性が求められる用途に対し、高信頼性計算機システムを構成する技術に関する。
金融・公共システム分野などミッションクリティカル用途では、システムに対し高い可用性が求められる。一方、ハードウェア高性能化や仮想化機構を用いた業務の集約によりハードウェア故障などに起因するシステム障害の発生の可能性は、従来と比べ高まっていくものと考えられる。
このような高可用性を実現する手法の1つとして、運用系と待機系を用意し、運用系に問題が生じた時点で運用系から待機系に切り替えるクラスタリングと呼ばれるシステム構成技術が知られている。
クラスタリングの手法としては、(a) 運用系が処理状態を保持しないようにし、運用系の障害を検知した時点で運用系と待機系を切り替えるだけですませる手法や、(b) 運用系と待機系の状態を一致させておき、障害を検知した時点で障害検知時点における処理を回復する手法が知られている。(a)の手法は運用系に状態を持たせることが困難であることから、(b)の手法の方がより高い適用性を持つ。
上記のように、(b)の手法により高信頼化を実現するためには、運用系と待機系の状態を一致させる必要がある。このためには、(1) 特別なハードウェア機構などを利用して2つの系の上で同じ命令列を同時平行して動作させることにより、2つの系の状態を常に一致させる方式や、(2) 運用系のメモリ状態を待機系に定期的にコピーすると共に、運用系と待機系の間のI/O操作をバッファリングしておくことにより、定期的に待機系の実行を再開可能なポイントを構成する方式がある。
(2)の方式について、メモリ状態の同期が完了する迄の間I/O状態を運用系においてバッファリングしておき、システム間の同期が完了した時点でI/O状態を反映させ、このときを再開点とし、障害が検知された場合には、待機系を再開点から再実行させる技術が示されている(非特許文献1参照)。
この技術では、運用系および待機系のシステムについて、OSを含めたソフトウェアをハイパバイザ上で動作させ、ハイパバイザの機能によって、上記のようなシステム間メモリの同期や、I/Oのバッファリングを行う。ハイパバイザはアプリケーションおよびOSを実行するハードウェアシステムをソフトウェアによりシステム全体を仮想化(システム仮想化)する。
Y.Tamura,Kemari: Virtual Machine Synchronaization for Fault Tolerance using DomT,Xen Summit Boston 2008,2008.
システム仮想化のみを利用した従来の高信頼性計算機システムの構成方法では、システム仮想化上で動作しているソフトウェアの動作を考慮していない。そのため、ソフトウェアの実行状況によって未使用と判定されるような領域の情報についても、複写対象の情報となり、状態同期に伴って、未使用領域の情報も複写されることになる。しかも、未使用領域の情報は、冗長であり、高信頼性計算機システムを構成する場合、複写処理が高速化されず、システム性能が低下することになる。
 本発明は、前記従来技術の課題に鑑みて為されたものであり、複写処理を高速化することができる高信頼性計算機システムおよびその構成方法を提供することを目的とするものである。
前記目的を達成するために、本発明は、運用系計算機のプログラムの状態を監視して、運用系計算機と待機系計算機との間で状態同期を行うための同期点を検出するとともに、同期点後の処理継続に必要な情報のみを複写対象の情報として運用系計算機の記憶装置から抽出し、抽出した複写対象の情報を運用系計算機から待機系計算機に複写するようにすることを特徴とするものである。
 本発明によれば、複写処理を高速化することで、高信頼性計算機システムの実行性能を向上させることができる。
本発明の一実施の形態を示す高信頼性計算機システムの構成図である。 I/Oバッファリング処理を説明するための構成図である。 運用系計算機と待機系計算機の処理を説明するためのシーケンス図である。 (a)は、アプリケーション実行中のメモリの状態を示す状態図、(b)は、アプリケーション終了時のメモリの状態を示す状態図である。 アプリケーション終了時を同期点とした場合の高信頼性計算機システムの作用を説明するためのフローチャートである。 アプリケーション終了時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 (a)は、処理フェーズ#1終了時のメモリの状態を示す状態図、(b)は、処理フェーズ#2終了時のメモリの状態を示す状態図である。 処理フェーズ切替時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 (a)は、GC完了前のメモリの状態を示す状態図、(b)は、GC完了後のメモリの状態を示す状態図である。 GC完了時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 同期点・対象外領域を指示するためのAPIの構成を説明するための図である。
以下、本発明の第1実施例を図面に基づいて説明する。本実施例は、アプリケーションプログラム(以下、アプリケーションと称する。)の終了時点を同期点とし、不要な領域(未使用領域)の情報の複写を行わないようにしたものである。
図1は、本発明の第1実施例を示す高信頼性計算機システムの構成図である。高信頼性計算機システムは、運用系計算機101と待機系計算機102から構成され、運用系計算機101と待機系計算機102は、ネットワークあるいはバスなどの結合網103で接続されているとともに、結合網103を介して共有外部記憶装置120に接続されている。
運用系計算機101は、運用系ハードウェア資源として、ハードウェア104を備え、運用系ソフトウェア資源として、システム仮想化処理部105と、アプリケーション実行用OS(Operating  System)106と、アプリケーション仮想化処理部107と、アプリケーション108および管理OS109を備えて構成される。
待機系計算機102は、運用系計算機101と基本的に同様の構成であり、待機系ハードウェア資源として、ハードウェア114を備え、待機系ソフトウェア資源として、システム仮想化処理部115と、アプリケーション実行用OS116と、アプリケーション仮想化処理部117と、アプリケーション118および管理OS119を備えて構成される。
ハードウェア104、114は、例えば、入出力装置と、記憶装置(以下、メモリと称する。)および処理装置(いずれも図示せず)などを備えて構成されている。各メモリには、制御プログラムや処理プログラムを含む複数のプログラムが格納されているともに、各ソフトウェア資源を構成する情報が格納されている。
システム仮想化処理部105は、アプリケーション実行用OS(Operating  System)106と、アプリケーション仮想化処理部107と、アプリケーション108および管理OS109に対して、ハードウェア104を仮想化して処理を実行し、アプリケーション仮想化処理部107は、アプリケーション実行用OS106に対して、アプリケーション108を仮想化して処理を実行する。
例えば、システム仮想化処理部105は、アプリケーション実行用OSとアプリケーション108の実行状態を監視して、待機系計算機102と状態同期を行うための同期点を検出するとともに、検出した同期点において、メモリから処理継続に必要な複写対象の情報を抽出し、抽出した複写対象の情報を結合網103を介して待機系計算機102に転送する。
具体的には、システム仮想化処理部105は、本発明の特徴的な処理である状態複写処理部110を備えている。この状態複写処理部110は、システム仮想化処理部105の上で動作するOS106と、アプリケーション仮想化処理部107およびアプリケーション108の利用するメモリの状態に関する状態情報を複写対象の情報としてメモリから抽出し、抽出した状態情報を、結合網103を介して待機系計算機102へ転送し、待機系計算機102に状態情報の複写を指示する。
一方、運用系計算機101に障害が生じた場合、運用系計算機101による処理から待機系計算機102による処理への切り替えが実行され、待機系計算機102は、運用系計算機101から複写された状態情報を基に動作を実行する。これにより、高信頼性計算機システムとしては、運用系計算機101に障害が生じても、運用系計算機101での処理が待機系計算機102によって継続されることになる。
運用系計算機101から待機系計算機102へ動作を切り替えるためには、状態情報を複写した時点と障害が発生した時点との間で発生したI/O動作を再現する必要がある。
このため、運用系計算機101は、図2に示すように、OS106からシステム仮想化処理部105へ発行されたI/O動作を一度管理OS109へ送り、管理OS109でI/O動作のバッファリングを行い、バッファリングに伴うデータをバッファ201に保持させる。管理OS109でバッファリングされたI/O動作は、運用系計算機101から待機系計算機102への状態情報の複写が完了した時点で、システム仮想化部105によってバッファ201からハードウェア104に反映される。ハードウェア104に反映されたI/O動作については、外部からの入力情報を運用系計算機101と待機系計算機102に送付することで、同様に運用系計算機101と待機系計算機102でバッファリングされる。
このシーケンスを図3に示す。図3は、運用系計算機101の処理シーケンス301と待機系計算機102の処理シーケンス302を示している。まず、運用系計算機101が同期点303を検出したときに、この同期点303において、運用系計算機101は、メモリの状態情報304を待機系計算機102に複写する。この後、運用系計算機101は、同期点303以降のI/O動作をバッファリングする(305)。
次に、運用系計算機101がI/O動作をバッファリングしている過程で、障害が発生した場合は、障害発生点306で運用系計算機101から待機系計算機102への切り替えが実行される。この切り替えが実行されると、待機系計算機102は、障害発生点306に対応した開始点307から、複写された状態情報304を基に処理を継続する。
この際、同期点303から障害発生点306までのI/O動作は状態情報304に反映されていないため、待機系計算機102は、複写された状態情報304を基に開始点307から処理を再開することなる。これにより、高信頼性計算機システムとしては、運用系計算機101に障害が生じても、運用系計算機101での処理が待機系計算機102によって継続されることになる。
次に、アプリケーション108の実行に伴うメモリの状態を図4(a)、(b)に示す。図4(a)は、アプリケーション108実行中におけるメモリの状態を示している。この場合、メモリの記憶領域400は、OS106の利用領域401と、第一のアプリケーション(AP#1)の利用領域402と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404から構成される。
図4(b)は、第一のアプリケーション(AP#1)の実行が終了(完了)した状態を示している。この場合、メモリの記憶領域400は、OS106の利用領域401と、実行終了領域405と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404から構成される。実行終了領域405は、第一のアプリケーション(AP#1)が使用していた利用領域402に対応する領域であって、未使用領域とみなされる。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS106の利用領域401と、第一のアプリケーション(AP#1)の利用領域402と、第二のアプリケーション(AP#2)の利用領域403および未使用領域404に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図4(b)の状態では、未使用領域404と実行終了領域405の内容は、待機系計算機102で処理を継続するためには不要である。このため、第一のアプリケーション(AP#1)の実行が完了したにもかかわらず、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するために不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、アプリケーション108の終了時点を同期点とし、不要な領域(未使用領域)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、アプリケーション108の終了時点を同期点としたときの作用を図5のフローチャートに従って説明する。図5に示す処理は、システム仮想化処理部105における状態複写処理部110によって実行される。状態複写処理部110による処理は、システム仮想化を実現する過程で、適当な要因に対応して起動される。
まず、状態複写処理部110は、ステップ501で処理を開始し、続いて、システム仮想化処理部105上で動作しているOS106、アプリケーション仮想化処理部107、アプリケーション108の動作を調査し、アプリケーション108の実行状態を基に同期点か否かを判別し(ステップ502)、アプリケーション108の実行が終了しているときには、ステップ503の処理に移行し、アプリケーションの実行が終了していないときには、ステップ509の処理に移行し、このルーチンでの処理を終了する。
ステップ502の具体的な処理内容を図6に示す。図6に示す処理では、同期点の判定および対象外領域集合の計算が状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ601で処理を開始し、次に、アプリケーション108が終了したか否かを判定する(ステップ602)。ステップ602で、アプリケーション108が終了したと判定した場合、状態複写処理部110は、同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、アプリケーションの実行を終了した実行終了領域とし(ステップ603)、その後、ステップ605に移行して、このルーチンでの処理を完了する。
この場合、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了し、メモリの記憶領域400が図4(b)に示すように構成された場合、アプリケーション(AP#1)が使用していた使用領域402に対応する実行終了領域405が複写対象から除かれ、対象外領域Nとされる。
一方、ステップ602で、アプリケーション108が終了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ604)、その後、ステップ605に移行して、このルーチンでの処理を完了する。
この場合、状態複写処理部110は、例えば、メモリの記憶領域400が図4(a)に示すように構成され、第一のアプリケーション(AP#1)と第二のアプリケーション(AP#2)が実行状態にあるときには、同期点でないと判別することになる。
同期点の判定処理を終了し、同期点と判定したときには、状態複写処理部110は、図5のステップ503の処理に移行する。ステップ503では、状態複写処理部110は、変数Rにシステム仮想化処理部105上で動作しているOS106、アプリケーション仮想化処理部107、アプリケーション108の利用している領域の集合を、変数Nに複写対象外の領域集合を求める。
例えば、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了し、メモリの記憶領域400が図4(b)に示すように構成された場合、メモリの記憶領域400が4つの領域(OS106の利用領域401と、実行終了領域405と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404)に分割されているので、領域集合の変数Rが4として求められ、対象外領域集合の変数Nが2として求められる。この場合、対象外領域集合は、実行終了領域405と未使用領域404から構成される。
 次に、状態複写処理部110は、領域集合の変数Rが空集合か否かを判定し(ステップ504)、空集合でない場合、ステップ505の処理に移行し、領域集合の変数Rから変数rへ要素を1つ取り出す。続いて、状態複写処理部110は、変数rが対象外領域集合の変数Nに含まれるか否かを判定し(ステップ506)、変数rが対象外領域集合の変数Nに含まれる場合には、ステ副側記憶装置の制御部は、ップ504の処理に戻り、領域集合の変数Rが空集合となるまで、ステップ504からステップ506の処理を繰り返す。
ステップ506で、変数rが対象外領域集合の変数Nに含まれないと判定したときには、状態複写処理部110は、ステップ507に移行して、対象外領域から外れた領域、すなわち、複写対象となる領域である、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に格納された情報を、複写対象の情報として、運用系計算機101から待機系計算機102へ複写するための処理を実行する。
また、ステップ504で、領域集合の変数Rが空集合であると判定したときには、状態複写処理部110は、複写対象の情報を運用系計算機101から待機系計算機102へ全て複写したとして、ステップ508の処理に移行して、バッファリングされていたI/O動作をハードウェア104に反映して、ステップ509の処理に移行し、このルーチンでの処理を終了する。
本実施例によれば、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了したときを同期点とし、この同期点において、メモリの記憶領域400の中から、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に記憶されている情報(同期点後に使用予定のアプリケーションプログラムに属する情報)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本実施例においては、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了したときを同期点としたが、第二のアプリケーション(AP#2)の実行が終了したときを同期点とすることもできる。この場合は、OS106の利用領域401に記憶されている情報のみが処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写されることになる。
次に、本発明の第2実施例を図7に基づいて説明する。本実施例は、アプリケーション108を構成する処理フェーズの切替点を同期点としたものであり、他の構成は、第1実施例と同様である。
まず、アプリケーション108を複数の処理フェーズ#1~#nで構成した場合のメモリの状態として、例えば、第一の処理フェーズ#1におけるメモリの状態を図7(a)に示し、第二の処理フェーズ#2におけるメモリの状態を図7(b)に示す。
図7(a)に示すメモリの記憶領域400は、OS使用領域411と、アプリケーション108の利用領域412および未使用領域413から構成される。アプリケーション108の利用領域412には、第一の処理フェーズ#1のみで利用されるアプリケーション利用領域414、415、416が含まれている。このため、第二の処理フェーズ#2にプログラムが移行すると、第一の処理フェーズ#1におけるアプリケーション利用領域414、415、416は、それぞれ処理フェーズが終了したことを示す実行終了領域417、418、419となり、アプリケーション108の利用領域412はアプリケーション利用領域420となる。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS使用領域411と、アプリケーションの利用領域412または420、および未使用領域413に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図7(b)の状態では、未使用領域413と実行終了領域417、418、419の内容は、待機系計算機102で処理を継続するためには不要である。
このため、第一の処理フェーズ#1の実行が終了したにもかかわらず、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するのに不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、処理フェーズの切替点を同期点とし、不要な領域(未使用領域413、実行終了領域417、418、419)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、処理フェーズの切替点を同期点としたときの作用を図8のフローチャートに従って説明する。なお、本実施例における処理は、同期点の判定と対象外領域Nの設定以外は、第1実施例と同様であるので、本実施例では、同期点の判定と対象外領域Nの設定処理についてのみ説明する。また、図8に示す処理は、システム仮想化処理部105における状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ801で処理を開始し、次に、アプリケーション108の実行状態を監視して、処理フェーズが終了したか否かを判定する(ステップ802)。ステップ802で、例えば、処理フェーズ#1が終了したと判定した場合、状態複写処理部110は、同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、処理フェーズの実行を終了した実行終了領域とし(ステップ803)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
この場合、アプリケーション108のうち第一の処理フェーズ#1の実行が完了し、メモリの記憶領域400が図7(b)に示すように構成された場合、第一の処理フェーズ#1におけるアプリケーション利用領域414、415、416は、それぞれ実行終了領域417、418、419であるとして、複写対象から除かれ、対象外領域Nとされる。
すなわち、状態複写処理部110は、複写対象から外れた対象外領域Nを旧処理フェーズ(処理フェーズ#1)の使用領域412から新処理フェーズ(処理フェーズ#2)の使用領域420を除いた領域(実行終了領域417、418、419、未使用領域413)とする処理を実行する。
一方、ステップ802で、処理フェーズが終了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ8004)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
本実施例によれば、アプリケーション108のうち第一の処理フェーズ#1の実行が終了した、処理フェーズの切替点を同期点とし、この同期点において、メモリの記憶領域400の中から、OS106の利用領域411と、アプリケーション利用領域420から実行終了領域417、418、419を除いた領域に記憶されている情報(同期点後に使用予定の処理フェーズに属する情報)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本実施例においては、アプリケーション108のうち第一の処理フェーズ#1の実行が終了した、処理フェーズの切り替え点を同期点としたが、他の処理フェーズの実行が終了した、処理フェーズの切り替え点を同期点とすることもできる。この場合は、同期点後に使用予定の処理フェーズに属する情報のみが処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写されることになる。
次に、本発明の第3実施例を図面に基づいて説明する。本実施例は、アプリケーション108の未使用領域を確定した時点を同期点としたものであり、他の構成は、第1実施例と同様である。
具体的には、本実施例は、アプリケーション仮想化処理部107がガーベージコレクション(GC)を備えた実行系である場合に、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点としたものである。
図9(a)に、ガーベージコレクション(GC)前のメモリの状態を示し、図9(b)に、ガーベージコレクション(GC)後のメモリの状態を示す。
図9(a)に示すメモリの記憶領域400は、OS使用領域421と、アプリケーションの利用領域421および未使用領域423から構成される。アプリケーションの利用領域421には、複数の未使用データ領域424が分散して存在している。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS使用領域421と、アプリケーションの利用領域421および未使用領域423に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図9(a)の状態では、未使用領域423と複数の未使用データ領域424の内容は、待機系計算機102で処理を継続するためには不要である。
このため、アプリケーション108の利用領域421に属する複数の未使用データ領域424が確定していない状態で、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するのに不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点とし、不要な領域(未使用領域423、複数の未使用データ領域424)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点としたときの作用を図10のフローチャートに従って説明する。なお、本実施例における処理は、ガーベージコレクション(GC)の判定と対象外領域Nの設定以外は、第1実施例と同様であるので、本実施例では、ガーベージコレクション(GC)の判定と対象外領域Nの設定処理についてのみ説明する。また、図10に示す処理は、アプリケーション仮想化処理部107と状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ1001で処理を開始し、アプリケーション仮想化処理部107にガーベージコレクション(GC)の実行を指示し、ガーベージコレクション(GC)が完了したか否かを判定する(ステップ1002)。
このとき、アプリケーション仮想化処理部107は、ガーベージコレクション(GC)を用いて、アプリケーション仮想化利用領域421に属する複数の未使用データ領域424に関する情報を収集し、収集した情報を、図9(b)に示すように、アプリケーション仮想化利用領域425のうち未使用データ領域426内に格納し、アプリケーション仮想化利用領域425を、未使用データを格納する未使用データ領域426と使用中のデータを格納する使用中データ領域427とに分けて構成するための処理を実行し、未使用データ領域426が確定したときに(未使用データの収集が終了したとき)、その旨を状態複写処理部110に通知する。
状態複写処理部110は、アプリケーション仮想化処理部107から、未使用データ領域426が確定した旨の通知を受けたときには、ガーベージコレクション(GC)の完了によって未使用領域が確定した時点を示す同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、ガーベージコレクション(GC)の完了によって確定した未使用領域とし(ステップ1003)、その後、ステップ1005に移行して、このルーチンでの処理を完了する。
ガーベージコレクション(GC)の完了によって未使用領域が確定し、メモリの記憶領域400が図9(b)に示すように構成された場合、アプリケーション仮想化利用領域425のうち未使用データ領域426は、複写対象領域から除かれ、対象外領域Nとされる。
この場合、状態複写処理部110は、対象外領域Nとは異なる領域、すなわち、複写対象となる領域である、OS106の利用領域421と使用中データ領域427に格納された情報を、運用系計算機101から待機系計算機102へ複写するための処理を実行する。
一方、ステップ1002で、ガーベージコレクション(GC)が完了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ1004)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
本実施例によれば、ガーベージコレクション(GC)の完了によって未使用領域が確定した時点を同期点とし、この同期点において、メモリの記憶領域400に記憶されている情報として、OS106の利用領域421と、アプリケーション仮想化利用領域425の中の使用中データ領域427に記憶されている情報のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
 次に、本発明の第4実施例を図面に基づいて説明する。本実施例は、システム仮想化処理部105上で動作するOS106、アプリケーション仮想化処理部107、または、アプリケーション108からのAPI(Application Programming Interface)呼び出しによって、同期点と対象外領域を指示し、APIにより指示された点を同期点とし、未使用領域の状態複写を行わないことで、状態複写処理を高速化するものであり、他の構成は第1実施例と同様である。
具体的には、プログラムを作成するときに、例えば、アプリケーション108のプログラムを作成するときに、図11に示すように、アプリケーション108の実行に関する情報の中にAPIに関する情報を予め作成しておく。
例えば、アプリケーション108のプログラム上の地点のうち、あるアプリケーションの終了を示す地点あるいや処理フェーズの切り替え点を示す地点を呼び出し地点とし、この呼び出し地点が同期点であることを示すAPI 1101を、予め関数「is_sync_point」で作成するとともに、複写対象領域とは異なる対象外領域(状態複写の対象としない領域、例えば、図4(b)の場合には、実行終了領域405、未使用領域404)であることを示すAPI 1102を、予め関数「register_unused」で作成しておく。
アプリケーション108にAPI 1101やAPI 1102が作成されている場合、アプリケーション108は、その処理の過程で、API 1101になったときには、API呼び出しにより、呼び出し地点が同期点であることをシステム仮想化処理部105に指示するとともに、API 1102を複写対象領域とは異なる対象外領域でることを指示する。
これらの指示に応答して、システム仮想化処理部105は、API呼び出しにより、同期点であると判定し、この同期点において、メモリの記憶領域400の中から、API 1102で指示された対象外領域とは異なる複写対象領域の情報として、例えば、メモリの記憶領域400が、図4(b)の場合には、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に記憶されている情報(例えば、同期点後に使用予定のアプリケーションプログラム)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写する。
本実施例によれば、アプリケーション108からAPI呼び出しに応答して、このAPI呼び出し地点を同期点とし、この同期点において、メモリの記憶領域400の中から、API 1102で指示された対象外領域とは異なる複写対象領域の情報のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本発明は、運用系計算機101と待機系計算機102から構成された高信頼性計算機システムにおいて、運用系計算機101と待機系計算機102との間の状態複写に要する性能を向上するために用いることができる。
 101・・・運用系計算機
102・・・待機系計算機
103・・・結合網
104、114・・・ハードウェア
105、115・・・システム仮想化処理部
106、116・・・OS
107、117・・・アプリケーション仮想化処理部
108、118・・・アプリケーション
109、119・・・管理OS
110・・・状態複写処理部

Claims (10)

  1.  入出力装置と記憶装置および処理装置を含む運用系ハードウェア資源と、前記記憶装置に格納されて、前記運用系ハードウェア資源を動作させるための運用系ソフトウェア資源とを有する運用系計算機と、
    前記運用系ハードウェア資源に相当する待機系ハードウェア資源と前記運用系ソフトウェア資源に相当する待機系ソフトウェア資源とを有し、前記運用系計算機と結合網を介して接続された待機系計算機とを備え、
     前記運用系ソフトウェア資源は、複数のプログラムを有し、前記複数のプログラムに対して、前記ハードウェア資源を仮想化するとともに、前記複数のプログラムの状態を監視して、前記記憶装置の情報を処理するシステム仮想化処理部を備え、
     前記システム仮想化処理部は、前記プログラムの実行状態を監視して、前記待機系計算機と状態同期を行うための同期点を検出するとともに、前記検出した同期点において前記記憶装置から処理継続に必要な複写対象の情報を抽出し、前記抽出した複写対象の情報を前記結合網を介して待機系計算機に転送する、計算機システム。
  2.  前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記複数のアプリケーションプログラムの中のいずれかのアプリケーションプログラムの終了点を前記同期点として検出し、前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定のアプリケーションプログラムを抽出する、請求項1に記載の計算機システム。
  3.  前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムを構成する複数の処理フェーズの実行状態を監視して、前記複数の処理フェーズの中のいずれかの処理フェーズの終了点を前記同期点として検出し、前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定の処理フェーズに属する情報を抽出する、請求項1に記載の計算機システム。
  4.  前記運用系ソフトウェア資源は、前記プログラムのうちアプリケーションプログラムを格納する記憶領域の中からガーベージコレクション対象のデータを収集し、前記記憶領域を、前記アプリケーションプログラムで使用するデータを格納する使用中データ格納領域と前記収集したガーベージコレクション対象のデータを格納するための未使用データ格納領域とに分けて構成するアプリケーション仮想化処理部を備え、
    前記システム仮想化処理部は、前記アプリケーション仮想化処理部により、前記記憶領域の中に前記未使用データ格納領域が確定された時点を前記同期点とし、前記記憶装置から前記複写対象の情報として、前記使用中データ格納領域に格納されたデータを抽出する、請求項1に記載の計算機システム。
  5.  前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記各アプリケーションプログラムに記載されたアプリケーション・プログラマブル・インタフェースで指示された同期点を前記同期点として検出し、前記記憶装置から前記複写対象の情報として、アプリケーション・プログラマブル・インタフェースで指示された情報以外の情報であって、前記同期点後に使用予定のアプリケーションプログラムを抽出する、請求項1に記載の計算機システム。
  6.  入出力装置と記憶装置および処理装置を含む運用系ハードウェア資源と、前記記憶装置に格納されて、前記運用系ハードウェア資源を動作させるための運用系ソフトウェア資源とを有する運用系計算機と、
    前記運用系ハードウェア資源に相当する待機系ハードウェア資源と前記運用系ソフトウェア資源に相当する待機系ソフトウェア資源とを有し、前記運用系計算機と結合網を介して接続された待機系計算機とを備え、
     前記運用系ソフトウェア資源は、複数のプログラムを有し、前記複数のプログラムに対して、前記ハードウェア資源を仮想化するとともに、前記複数のプログラムの状態を監視して、前記記憶装置の情報を処理するシステム仮想化処理部を備え、
     前記システム仮想化処理部は、前記プログラムの実行状態を監視して、前記待機系計算機と状態同期を行うための同期点を検出するステップと、
    前記ステップで検出した同期点において前記記憶装置から処理継続に必要な複写対象の情報を抽出するステップと、
    前記ステップで抽出した複写対象の情報を前記結合網を介して待機系計算機に転送するステップを実行する、計算機システムの構成方法。
  7.  前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記複数のアプリケーションプログラムの中のいずれかのアプリケーションプログラムの終了点を前記同期点として検出するステップと、
    前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定のアプリケーションプログラムを抽出するステップを実行する、請求項6に記載の計算機システムの構成方法。
  8. 前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムを構成する複数の処理フェーズの実行状態を監視して、前記複数の処理フェーズの中のいずれかの処理フェーズの終了点を前記同期点として検出するステップと、
    前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定の処理フェーズに属する情報を抽出するステップを実行する、請求項6に記載の計算機システムの構成方法。
  9.  前記運用系ソフトウェア資源は、
    前記プログラムのうちアプリケーションプログラムを格納する記憶領域の中からガーベージコレクション対象のデータを収集し、前記記憶領域を、前記アプリケーションプログラムで使用するデータを格納する使用中データ格納領域と前記収集したガーベージコレクション対象のデータを格納するための未使用データ格納領域とに分けて構成するアプリケーション仮想化処理部を備え、
    前記システム仮想化処理部は、
    前記アプリケーション仮想化処理部により、前記記憶領域の中に前記未使用データ格納領域が確定された時点を前記同期点とするステップと
    前記記憶装置から前記複写対象の情報として、前記使用中データ格納領域に格納されたデータを抽出するステップを実行する、請求項6に記載の計算機システムの構成方法。
  10.  前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記各アプリケーションプログラムに記載されたアプリケーション・プログラマブル・インタフェースで指示された同期点を前記同期点として検出するステップと、
    前記記憶装置から前記複写対象の情報として、アプリケーション・プログラマブル・インタフェースで指示された情報以外の情報であって、前記同期点後に使用予定のアプリケーションプログラムを抽出するステップを実行する、請求項6に記載の計算機システムの構成方法。
PCT/JP2009/005872 2009-03-19 2009-11-05 高信頼性計算機システムおよびその構成方法 WO2010106593A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/201,579 US20120030504A1 (en) 2009-03-19 2009-11-05 High reliability computer system and its configuration method
CN2009801567219A CN102317921A (zh) 2009-03-19 2009-11-05 高可靠性计算机系统及其构成方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009067299A JP5352299B2 (ja) 2009-03-19 2009-03-19 高信頼性計算機システムおよびその構成方法
JP2009-067299 2009-03-19

Publications (1)

Publication Number Publication Date
WO2010106593A1 true WO2010106593A1 (ja) 2010-09-23

Family

ID=42739267

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/005872 WO2010106593A1 (ja) 2009-03-19 2009-11-05 高信頼性計算機システムおよびその構成方法

Country Status (4)

Country Link
US (1) US20120030504A1 (ja)
JP (1) JP5352299B2 (ja)
CN (1) CN102317921A (ja)
WO (1) WO2010106593A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103703427A (zh) * 2011-07-20 2014-04-02 飞思卡尔半导体公司 同步第一处理单元和第二处理单元的处理装置和方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136593B2 (ja) * 2010-05-21 2013-02-06 横河電機株式会社 分析装置
JP6089427B2 (ja) * 2012-03-30 2017-03-08 日本電気株式会社 フォールトトレラントサーバ、デフラグ方法、およびプログラム
US20150227599A1 (en) * 2012-11-30 2015-08-13 Hitachi, Ltd. Management device, management method, and recording medium for storing program
WO2014165976A1 (en) * 2013-04-10 2014-10-16 Berryman Jeremy Multitasking and screen sharing on portable computing devices
CN110603444A (zh) * 2017-06-08 2019-12-20 株式会社岛津制作所 分析系统、控制器以及数据处理装置
JP2020160653A (ja) * 2019-03-26 2020-10-01 日本電気株式会社 情報処理システム、仮想マシン、物理マシン、情報処理方法、及びプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736761A (ja) * 1993-07-21 1995-02-07 Nippon Telegr & Teleph Corp <Ntt> 外部記憶装置のオンライン高信頼複写処理方法
JPH07306796A (ja) * 1994-05-13 1995-11-21 Fuji Electric Co Ltd 二重化制御システムのデータ同期転写方法
JPH08328891A (ja) * 1995-06-02 1996-12-13 Mitsubishi Electric Corp 待機冗長化構成の二重化システム
JPH11259326A (ja) * 1998-03-13 1999-09-24 Ntt Communication Ware Kk ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体
JP2001297011A (ja) * 2000-04-14 2001-10-26 Nec Soft Ltd 無停止ジョブ起動方法及び無停止ジョブ起動システム
JP2002215416A (ja) * 2001-01-19 2002-08-02 Mitsubishi Electric Corp フォールトトレラント計算機システム
JP2003296133A (ja) * 2002-04-05 2003-10-17 Fuji Electric Co Ltd コントローラ
JP2005148910A (ja) * 2003-11-12 2005-06-09 Nec Saitama Ltd データ二重化装置及び方法
JP2006072591A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd 仮想計算機制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US6044475A (en) * 1995-06-16 2000-03-28 Lucent Technologies, Inc. Checkpoint and restoration systems for execution control
US6360331B2 (en) * 1998-04-17 2002-03-19 Microsoft Corporation Method and system for transparently failing over application configuration information in a server cluster
US6421739B1 (en) * 1999-01-30 2002-07-16 Nortel Networks Limited Fault-tolerant java virtual machine
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
WO2007002398A2 (en) * 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
US20070094659A1 (en) * 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
CN101593136B (zh) * 2008-05-30 2012-05-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
US8145945B2 (en) * 2010-01-04 2012-03-27 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736761A (ja) * 1993-07-21 1995-02-07 Nippon Telegr & Teleph Corp <Ntt> 外部記憶装置のオンライン高信頼複写処理方法
JPH07306796A (ja) * 1994-05-13 1995-11-21 Fuji Electric Co Ltd 二重化制御システムのデータ同期転写方法
JPH08328891A (ja) * 1995-06-02 1996-12-13 Mitsubishi Electric Corp 待機冗長化構成の二重化システム
JPH11259326A (ja) * 1998-03-13 1999-09-24 Ntt Communication Ware Kk ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体
JP2001297011A (ja) * 2000-04-14 2001-10-26 Nec Soft Ltd 無停止ジョブ起動方法及び無停止ジョブ起動システム
JP2002215416A (ja) * 2001-01-19 2002-08-02 Mitsubishi Electric Corp フォールトトレラント計算機システム
JP2003296133A (ja) * 2002-04-05 2003-10-17 Fuji Electric Co Ltd コントローラ
JP2005148910A (ja) * 2003-11-12 2005-06-09 Nec Saitama Ltd データ二重化装置及び方法
JP2006072591A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd 仮想計算機制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103703427A (zh) * 2011-07-20 2014-04-02 飞思卡尔半导体公司 同步第一处理单元和第二处理单元的处理装置和方法

Also Published As

Publication number Publication date
CN102317921A (zh) 2012-01-11
US20120030504A1 (en) 2012-02-02
JP5352299B2 (ja) 2013-11-27
JP2010218481A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5352299B2 (ja) 高信頼性計算機システムおよびその構成方法
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US9262212B2 (en) Systems and methods for migrating virtual machines
US9104624B2 (en) Systems, methods, and computer program products for instant recovery of image level backups
EP2955637B1 (en) Method, system and apparatus for generating snapshot
US7523344B2 (en) Method and apparatus for facilitating process migration
US8015431B2 (en) Cluster system and failover method for cluster system
US9594522B2 (en) Backup method and information processing apparatus
JP5032191B2 (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US9489230B1 (en) Handling of virtual machine migration while performing clustering operations
WO2016121830A1 (ja) 仮想ネットワークファンクション管理装置、システム、ヒーリング方法及びプログラム
JP2014503904A (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
US20070288532A1 (en) Method of updating an executable file for a redundant system with old and new files assured
WO2012049794A1 (ja) 分散処理装置及び分散処理システム
CN105471994B (zh) 一种控制方法及装置
CN108469996A (zh) 一种基于自动快照的系统高可用方法
JP5933356B2 (ja) コンピュータシステム
WO2011116672A1 (zh) 为共享代码段打补丁的方法及装置
Ong et al. VCCP: A transparent, coordinated checkpointing system for virtualization-based cluster computing
EP4002811A1 (en) Data synchronization method and apparatus
KR102472878B1 (ko) 가상 머신 환경에서의 블록 커밋 방법 및 그 방법을 수행하는 가상화 시스템
US10613789B1 (en) Analytics engine using consistent replication on distributed sites
JP7000797B2 (ja) 起動管理装置、起動管理システム、起動管理方法、および、起動管理プログラム
JP5544516B2 (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980156721.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09841800

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13201579

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 09841800

Country of ref document: EP

Kind code of ref document: A1