The present invention relates to a technology of configuring a high reliability computer system for uses requiring high reliability.
Mission-critical uses such as financial and public system fields require high availability of systems. On the other hand, the possibility of system failure occurrence attributable to, for example, hardware faults, due to achievement of high hardware performance and aggregation of businesses using a virtualization mechanism is assumed to increase more than before.
As one means for realizing such high availability, there is a known system configuration technique called “clustering” whereby an online system and a standby system are prepared and the online system is switched to the standby system when a problem occurs in the online system.
As clustering methods, the following methods are known: (a) a method of preventing the online system from maintaining a processing status and only switching from the online system to the standby system when detecting a failure of the online system; and (b) a method of making the status of the operation system correspond with the status of the standby system and recovering processing executed at the time of a failure detection when detecting the failure. Since it is difficult to make the online system retain the status by the method (a), the method (b) has higher applicability.
In order to realize high reliability by the method (b) as described above, it is necessary to make the status of the online system correspond with that of the standby system. For this purpose, there are the following methods: (1) a method of making the status of the two systems always correspond with each other by operating the same command sequence on the two systems simultaneously and in parallel by using, for example, a special hardware mechanism; and (2) a method of periodically copying the status of a memory for the online system to the standby system and buffering I/O operations between the online system and the standby system, thereby periodically configuring a point where the execution of the standby system can be resumed.
Regarding the method (2), there is a technique of buffering the I/O status on the online system until the completion of synchronization of the memory status, reflecting the I/O status at the time of completion of synchronization between the systems, setting this point in time as a restart point, and rerunning the standby system from the restart point when detecting a failure (see Non-patent Literature 1).
This technique allows the online system and the standby system to operate software including an OS on a hypervisor and perform, by the functions of the hypervisor, memory synchronization between the systems as described above and I/O buffering. The hypervisor virtualizes the entire hardware system for executing applications and the OS by means of software (system virtualization).
With the method for configuring the conventional high reliability computer system which uses only the system virtualization, no consideration is given to the operation of software operating on the system virtualization. Accordingly, information of an area which might be judged to be unused depending on the software execution status will also be considered as copy target information and the information of the unused area will also be copied along with the status synchronization. Furthermore, the information of the unused area is redundant; and when configuring the high reliability computer system, the speed of the copy processing will not be increased and the system performance will degrade.
The present invention was devised in light of the above-described problems of the conventional technology and it is an object of the invention to provide a high reliability computer system and its configuration method capable of increasing the speed of copy processing.
In order to achieve the above-described object, the present invention is characterized in that it monitors the status of programs of an online computer and detects a synchronous point for performing status synchronization between the online computer and a standby computer, extracts only information to continue the processing after the synchronous point as copy target information from a storage device of the online computer, and copies the extracted copy target information from the online computer to the standby computer.
According to the present invention, the execution performance of the high reliability computer system can be enhanced by increasing the speed of the copy processing.
a) is a status diagram showing the status of a memory during execution of applications and
a) is a status diagram showing the status of the memory at the time of termination of a processing phase #1 and
a) is a status diagram showing the status of the memory before GC completion and
A first embodiment of the present invention will be explained with reference to the relevant drawings. This embodiment is designed so that a termination point of an application program (hereinafter referred to as the “application”) is set as a synchronous point, thereby preventing copying of information of an unnecessary area (unused area).
The online computer 101 is equipped with hardware 104 as an online-system hardware resource as well as, as online-system software resources, a system virtualization processing unit 105, an application execution OS (Operating System) 106, an application virtualization processing unit 107, applications 108, and an management OS 109.
The standby computer 102 has basically the same configuration as that of the online computer 101 and is equipped with hardware 114 as a standby-system hardware resource as well as, as standby-system software resources, a system virtualization processing unit 115, an application execution OS 116, an application virtualization processing unit 117, applications 118, and a management OS 119.
The hardware 104, 114 includes, for example, input/output devices, a storage device (hereinafter referred to as the “memory”), and a processing unit (any of which is not shown in the drawing). Each memory stores a plurality of programs including control programs and processing programs and also stores information constituting each software resource.
The system virtualization processing unit 105 virtualizes the hardware 104 and executes processing on the application execution OS (Operating System) 106, the application virtualization processing unit 107, the applications 108, and the management OS 109; and the application virtualization processing unit 107 virtualizes the applications 108 and executes processing on the application execution OS 106.
For example, the system virtualization processing unit 105 monitors an execution status of the application execution OS and the applications 108 and detects a synchronous point for performing status synchronization with the standby computer 102; extracts copy target information necessary to continue the processing from the memory at the detected synchronous point; and transfers the extracted copy target information via the coupling network 103 to the standby computer 102.
Specifically speaking, the system virtualization processing unit 105 includes a status copy processing unit 110 which is characteristic processing of the present invention. This status copy processing unit 110 extracts status information about the status of the memory used by the OS 106, the application virtualization processing unit 107, and the applications 108, which operate on the system virtualization processing unit 105, as copy target information, transfers the extracted status information via the coupling network 103 to the standby computer 102, and gives instruction to the standby computer 102 to copy the status information.
Meanwhile, if a failure occurs in the online computer 101, processing by the online computer 101 is switched to processing by the standby computer 102; and the standby computer 102 executes operation based on the status information copied from the online computer 101. As a result, with respect to the high reliability computer system, even if a failure occurs in the online computer 101, the processing by the online computer 101 is continued by the standby computer 102.
In order to switch the operation from the online computer 101 to the standby computer 102, it is necessary to reproduce the I/O operation which occurred between the point in time of copying the status information and the point in time of the failure occurrence.
Therefore, as shown in
This sequence is shown in
Next, if a failure occurs in the process of buffering of the I/O operation by the online computer 101, switching from the online computer 101 to the standby computer 102 is executed at a failure occurrence point 306. If this switching is executed, the standby computer 102 continues the processing based on the copied status information 304 at a start point 307 corresponding to the failure occurrence point 306.
When this happens, the I/O operation after the synchronous point 303 until the failure occurrence point 306 is not reflected in the status information 304, so that the standby computer 102 resumes the processing based on the copied status information 304 at the start point 307. As a result, with respect to the high reliability computer system, even if a failure occurs in the online computer 101, the processing at the online computer 101 will be continued by the standby computer 102.
Next, the status of the memory in association with the execution of the applications 108 is shown in
b) shows a state where the execution of the first application (AP #1) is terminated (completed). In this case, the storage area 400 of the memory is constituted from the use area 401 of the OS 106, an execution terminated area 405, the use area 403 of the second application (AP #2), and the unused area 404. The execution terminated area 405 is an area corresponding to the use area 402, which was used by the first application (AP #1), and is considered as an unused area.
Now, if all pieces of information in the storage area 400 of the memory are copied from the online computer 101 to the standby computer 102 without considering the status of the applications 108 as in a conventional high reliability computer system, all the pieces of information about the use area 401 of the OS 106, the use area 402 of the first application (AP #1), the use area 403 of the second application (AP #2), and the unused area 404 will be copied from the online computer 101 to the standby computer 102.
In this case, the content of the unused area 404 and the execution terminated area 405 is not necessary in order to continue the processing at the standby computer 102 in the status shown in
Therefore, in this embodiment, the termination point of an application 108 is set as the synchronous point and information of an unnecessary area (unused area) is not copied, thereby increasing the processing for copying the status information.
Next, actions performed when setting the termination point of the application 108 as the synchronous point will be explained with reference to a flowchart in
Firstly, the status copy processing unit 110 starts processing in step 501; then examines the operation of the OS 106, the application virtualization processing unit 107, and the applications 108, which operate on the system virtualization processing unit 105; and judges whether it is a synchronous point or not, based on the execution status of the applications 108 (step 502). If the execution of an application 108 is terminated, the status copy processing unit 110 proceeds to processing in step 503; and if the execution of the application is not terminated, the status copy processing unit 110 proceeds to processing in step 509 and then terminates the processing in this routine.
The specific processing content in step 502 is shown in
Firstly, the status copy processing unit 110 starts processing in step 601 and then judges whether the application 108 has been terminated or not (step 602). If it is determined in step 602 that the application 108 has been terminated, the status copy processing unit 110 recognizes that point in time as a synchronous point, sets a judged value S as, for example, “1,” and sets a non-target area N as an execution terminated area for which the execution of the application has been terminated (step 603); and then the status copy processing unit 110 proceeds to step 605 and terminates the processing in this routine.
In this case, if the execution of the first application (AP #1), from among the applications 108, is terminated and the storage area 400 of the memory is configured as shown in
On the other hand, if it is determined in step 602 that the application 108 has not been terminated, the status copy processing unit 110 recognizes that point in time as a asynchronous point, and sets the judged value S as, for example, “0” (step 604); and then proceeds to step 605 and terminates the processing in this routine.
In this case, for example, if the storage area 400 of the memory is configured as shown in
If the synchronous point judgment processing is terminated and it is determined that it is the synchronous point, the status copy processing unit 110 proceeds processing in step 503 in
For example, if the execution of the first application (AP #1), from among the applications 108, is terminated and the storage area 400 of the memory is configured as shown in
Next, the status copy processing unit 110 judges whether the variable R for the set of areas is an empty set or not (step 504). If the variable R for the set of areas is not an empty set, the status copy processing unit 110 proceeds to processing in step 505 and takes out one element from the variable R for the set of areas to variable r. Subsequently, the status copy processing unit 110 judges whether the variable r is included in the variable N for the set of non-target areas or not (step 506); and if the variable r is included in the variable N for the set of non-target areas, the status copy processing unit 110 returns to the processing in step 504 and repeats the processing from step 504 to step 506 until the variable R for the set of areas becomes an empty set.
If it is determined in step 506 that the variable r is not included in the variable N for the set of non-target areas, the status copy processing unit 110 proceeds to step 507 and executes processing for copying information stored in the use area 401 of the OS 106 and the use area 403 of the second application (AP #2), which are areas excluded from the non-target areas, that is, copy target areas, as copy target information from the online computer 101 to the standby computer 102.
Furthermore, if it is determined in step 504 that the variable R for the set of areas is an empty set, the status copy processing unit 110 recognizes that all pieces of the copy target information have been copied from the online computer 101 to the standby computer 102; proceeds to processing in step 508; reflects the buffered I/O operation in the hardware 104; proceeds to processing in step 509; and then terminates the processing in this routine.
According to this embodiment, the point in time when the execution of the first application (AP #1), from among the applications 108, is terminated is set as a synchronous point; only the information stored in the use area 401 of the OS 106 and the use area 403 of the second application (AP #2) (information belonging to the application program to be used after the synchronous point), from among the storage area 400 of the memory, is extracted at this synchronous point; and the extracted information is copied, as the copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102. As a result, it is possible to increase the speed of the processing for copying the necessary information to continue the processing and it is also possible to contribute to enhancement of the execution performance of the high reliability computer system.
In this embodiment, the point in time when the execution of the first application (AP #1), from among the applications 108, is terminated is set as the synchronous point; however, the point in time when the execution of the second application (AP #2) is terminated can be also set as the synchronous point. In this case, only information stored in the use area 401 of the OS 106 is copied, as the copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102.
Next, a second embodiment of the present invention will be explained with reference to
Firstly, as the status of the memory when the applications 108 are constituted from a plurality of processing phases #1 to #n, for example, the status of the memory at the first processing phase #1 is shown in
The storage area 400 of the memory shown in
If all pieces of information in the storage area 400 of the memory are copied from the online computer 101 to the standby computer 102 without considering the status of the applications 108 as in the conventional high reliability computer system, all pieces of information about the OS use area 411 and the use area 412 or 420 and unused area 413 of the applications will be copied from the online computer 101 to the standby computer 102.
In this case in the status shown in
Therefore, if all the piece of the information in the storage area 400 of the memory are copied from the online computer 101 to the standby computer 102 regardless of the termination of the execution of the first processing phase #1, the unnecessary information to continue the processing at the standby computer 102 will also be copied, so that an excessive amount of time will be required to copy the status information and the processing speed will decrease.
So, in this embodiment, the switching point of the processing phases is set as the synchronous point and the information of the unnecessary areas (the unused area 413 and the execution terminated areas 417, 418, 419) is not copied, thereby increasing the processing for copying the status information.
Next, actions performed when the switching point of the processing phases is set as the synchronous point will be explained with reference to a flowchart in
Firstly, the status copy processing unit 110 starts processing in step 801 and then monitors the execution status of the applications 108 and judges whether a processing phase has terminated or not (step 802). If it is determined in step 802 that, for example, the processing phase #1 has terminated, the status copy processing unit 110 recognizes that point in time as a synchronous point, sets a judged value S as, for example, “1” and sets the non-target area N as an execution terminated area for which the execution of the processing phase is terminated (step 803); and then the status copy processing unit 110 proceeds to step 805 and then terminates the processing in this routine.
In this case, if the execution of the first processing phase #1, from among the applications 108, is completed and the storage area 400 of the memory is configured as shown in
Specifically speaking, the status copy processing unit 110 executes processing for setting areas (the execution terminated areas 417, 418, 419 and the unused area 413), which are obtained by excluding the use area 420 of the new processing phase (the processing phase #2) from the use area 412 of the old processing phase (the processing phase #1), as the non-target area N excluded from the copy targets.
On the other hand, if it is determined in step 802 that the processing phase has not been terminated, the status copy processing unit 110 recognizes that point in time as an asynchronous point, and sets the judged value S as, for example, “0” (step 8004), and then proceeds to step 805 and terminates the processing in this routine.
According to this embodiment, the switching point of the processing phases when the execution of the first processing phase #1, from among the applications 108, is terminated is set as the synchronous point; only the information (information belonging to the processing phase to be used after the synchronous point) stored in the use area 411 of the OS 106 and the area, which is obtained by excluding the execution terminated areas 417, 418, 419 from the application use area 420, is extracted from the storage area 400 of the memory at this synchronization point; and the extracted information is copied, as the copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102. As a result, it is possible to increase the speed of the processing for copying the necessary information to continue the processing and it is also possible to contribute to enhancement of the execution performance of the high reliability computer system.
According to this embodiment, the switching point of the processing phases when the execution of the first processing phase #1, from among the applications 108, is terminated is set as the synchronous point; however, it is possible to set a switching point of the processing phases when the execution of another processing phase is terminated, as the synchronous point. In this case, only information belonging to the processing phase to be used after the synchronous point will be copied, as the copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102.
Next, a third embodiment of the present invention will be explained with reference to the relevant drawings. This embodiment is designed so that a point in time when an unused area of the applications 108 is determined is set as a synchronous point; and other elements of the configuration are similar to those of the first embodiment.
Specifically speaking, this embodiment is designed so that when the application virtualization processing unit 107 is an execution system equipped with garbage collection (GC), a point in time when an unused area is determined by the garbage collection (GC) is set as the synchronous point.
a) shows the status of the memory before the garbage collection (GC) and
The storage area 400 of the memory shown in
Now, if all pieces of information in the storage area 400 of the memory are copied from the online computer 101 to the standby computer 102 without considering the status of the applications 108 as in the conventional high reliability computer system, all pieces of information about the OS use area 421 and the use area 421 and unused area 423 of the applications will be copied from the online computer 101 to the standby computer 102.
In this case in the status shown in
So, if all the pieces of information in the storage area 400 of the memory are copied from the online computer 101 to the standby computer 102 in a state where the plurality of unused data areas 424 belonging to the use area 421 of the applications 108 are not determined, unnecessary information to continue the processing at the standby computer 102 will also be copied, so that an excessive amount of time will be required to copy the status information and the processing speed will decrease.
Therefore, this embodiment is designed so that a point in time when the unused area is determined by the garbage collection (GC) is set as the synchronous point and information of the unnecessary areas (the unused area 423 and the plurality of unused data areas 424) is not copied, thereby increasing the speed of the processing for copying the status information.
Next, actions performed when the point in time when the unused area is determined by the garbage collection (GC) is set as the synchronous point will be explained with reference to a flowchart in
Firstly, the status copy processing unit 110 starts processing in step 1001, gives instruction to the application virtualization processing unit 107 to execute the garbage collection (GC), and judges whether the garbage collection (GC) is completed or not (step 1002).
At that time, the application virtualization processing unit 107 executes processing, by using the garbage collection (GC), for collecting information about the plurality of unused data areas 424 belonging to the application virtualization use area 421, storing the collected information in an unused data area 426 of the application virtualization use area 425 as shown in
When the status copy processing unit 110 receives notice from the application virtualization processing unit 107 to report that the unused data area 426 is determined, it recognizes that point in time when the unused area is determined by the completion of the garbage collection (GC), as the synchronous point, sets the judged value S as, for example, “1,” and sets the non-target area N as the unused area determined by the completion of the garbage collection (GC) (step 1003); and then the status copy processing unit 110 proceeds to step 1005 and then terminates the processing in this routine.
If the unused area is determined by the completion of the garbage collection (GC) and the storage area 400 of the memory is configured as shown in
In this case, the status copy processing unit 110 executes processing for copying information stored in the use area 421 of the OS 106 and the in-use data area 427, which are different from the non-target area N, that is, which are the copy targets, from the online computer 101 to the standby computer 102.
On the other hand, if it is determined in step 1002 that the garbage collection (GC) is not completed, the status copy processing unit 110 recognizes that point in time as an asynchronous point and sets the judged value S as, for example, “0” (step 1004), and then proceeds to step 805 and terminates the processing in this routine.
According to this embodiment, the point in time when the unused area is determined by the completion of the garbage collection (GC) is set as the synchronous point; only the information stored in the use area 421 of the OS 106 and the in-use data area 427 in the application virtualization use area 425 is extracted as information stored in the storage area 400 of the memory at this synchronization point; and the extracted information is copied, as the copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102. As a result, it is possible to increase the speed of the processing for copying the necessary information to continue the processing and it is also possible to contribute to enhancement of the execution performance of the high reliability computer system.
Next, a fourth embodiment of the present invention will be explained with reference to the relevant drawings. This embodiment is designed so that a synchronous point and a non-target area are designated by an API (Application Programming Interface) cell from the OS 106, the application virtualization processing unit 107, or the applications 108, which operate on the system virtualization processing unit 105, a point in time designated by the API is set as the synchronous point, and the status copying of an unused area is not performed, thereby increasing the speed of the status copy processing; and other elements of the configuration are similar to those of the first embodiment.
Specifically speaking, when creating a program, for example, when creating a program for the applications 108, information about the API is created in advance in information about the execution of the application 108 as shown in
For example, an API 1101 indicating that a point in time indicative of termination of a certain application or a point in time indicative of a switching point of processing phases, from among points in time in the program for the application 108, is set as a call point and this call point is a synchronous point, is created in advance, using a function “is_sync_point”; and an API 1102 indicating a non-target area (area that is not a target of the status copying, for example, the execution terminated area 405 and the unused area 404 in the case of
If the API 1101 and the API 1102 are created in the applications 108 and when the application 108 reaches the API 1101 during the process of its processing, instruction is given as triggered by the API call to the system virtualization processing unit 105 to set the call point as the synchronous point and also designate the API 1102 as the non-target area which is different from the copy target area.
In response to these instructions, the system virtualization processing unit 105 determines based on the API call that it is the synchronous point; and if, for example, the storage area 400 of the memory is as shown in
According to this embodiment, in response to the API call from the application 108, this API call point is set as the synchronous point; only information of the copy target area, which is different from the non-target area designated by the API 1102, is extracted from the storage area 400 of the memory at this synchronous point; and the extracted information is copied, as copy target information necessary to continue the processing, from the online computer 101 to the standby computer 102. Therefore, it is possible to increase the speed of the processing for copying the necessary information to continue the processing and it is also possible to contribute to enhancement of the execution performance of the high reliability computer system.
The present invention can be used for the high reliability computer system composed of the online computer 101 and the standby computer 102 in order to enhance the performance required to copy the status between the online computer 101 and the standby computer 102.
Number | Date | Country | Kind |
---|---|---|---|
2009-067299 | Mar 2009 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2009/005872 | 11/5/2009 | WO | 00 | 10/24/2011 |