Method, device and computer program product for managing application system
By obtaining the snapshot information of the application system, it is determined whether there is a public snapshot between the second application system and the third application system, which optimizes the data synchronization process, solves the problem of low synchronization efficiency in the existing technology, and achieves more efficient failover. Prepare.
Patent Information
- Application Number
- CN201910697356.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-07-30
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2039-07-30
AI Technical Summary
The prior art is inefficient when synchronizing data between multiple application systems, resulting in complex and time-consuming preparation for failover operations.
By obtaining the snapshot information of each application system, it is determined whether there is a common snapshot between the second application system and the third application system, and based on this, it is decided whether to perform a complete copy or incremental transmission to synchronize the data.
It improves the efficiency of data synchronization, reduces the complexity and time of preparation before failover, and avoids the high overhead caused by complete copying.
Smart Images

Figure CN112307013B_ABST
Abstract
Description
Technical Field
[0001] Implementations of the present disclosure relate to application systems, and more particularly, to methods, devices, and computer program products for managing application systems in an application environment. Background Art
[0002] With the advancement of computer technology, various application systems have been able to provide users with increasingly higher data storage capabilities, and data access speeds have also been greatly improved. While data storage capacity has increased, users have also placed increasingly higher demands on data reliability. Currently, technical solutions have been developed to serve users based on multiple application systems. One application system can be in an active state while another application system is in a standby state. This allows the active application system to take over the work if it fails or is under a high workload. This process is called failover.
[0003] To ensure the availability and reliability of application systems, data synchronization is required across multiple application systems. Therefore, how to perform data synchronization with higher efficiency has become a research hotspot. Summary of the Invention
[0004] Therefore, it is expected that a technical solution for managing application systems in a more efficient manner can be developed and implemented. It is expected that the technical solution can be compatible with existing application systems and can manage application systems in a more efficient manner by modifying various configurations of existing application systems.
[0005] According to a first aspect of the present disclosure, a method for managing application systems in an application environment is provided, wherein the application environment includes a first application system, a second application system, and a third application system. In the method, first snapshot information of a first set of snapshots of the first application system is obtained, and the first application system is in an active state. Second snapshot information of a second set of snapshots of the second application system is obtained, and the second application system is in a standby state. Based on the first snapshot information and the second snapshot information, it is determined whether there are common snapshots between the second application system and the third application system. Based on whether there are common snapshots between the second application system and the third application system, data is synchronized to the third application system.
[0006] According to a second aspect of the present disclosure, a device for managing application systems in an application environment is provided, wherein the application environment includes a first application system, a second application system, and a third application system. The device includes: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, cause the device to perform an action. The action includes: obtaining first snapshot information of a first set of snapshots of the first application system, the first application system being in an active state; obtaining second snapshot information of a second set of snapshots of the second application system, the second application system being in a standby state; determining whether a common snapshot exists between the second application system and the third application system based on the first snapshot information and the second snapshot information; and synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system.
[0007] According to a third aspect of the present disclosure, there is provided a computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine-executable instructions for executing the method according to the first aspect of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The features, advantages and other aspects of the various implementations of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings, which illustrate several implementations of the present disclosure in an illustrative and non-limiting manner. In the accompanying drawings:
[0009] Figure 1 A schematic diagram schematically illustrates an application environment in which exemplary implementations of the present disclosure may be implemented;
[0010] Figure 2 A block diagram schematically illustrating the states of multiple application systems;
[0011] Figure 3 A block diagram schematically illustrates an application system for managing an application environment according to an exemplary implementation of the present disclosure;
[0012] Figure 4 A flowchart schematically illustrates a method for managing an application system in an application environment according to an exemplary implementation of the present disclosure;
[0013] Figure 5 A flowchart of a method for managing an application system based on snapshot information of the application system according to an exemplary implementation of the present disclosure is schematically shown;
[0014] Figure 6 A block diagram schematically illustrates data synchronization between a second application system and a third application system based on incremental transmission according to an exemplary implementation of the present disclosure;
[0015] Figure 7 A block diagram schematically illustrates data synchronization between a second application system and a third application system based on full copy according to an exemplary implementation of the present disclosure;
[0016] Figure 8 A block diagram schematically illustrates an application environment for performing failover according to an exemplary implementation of the present disclosure; and
[0017] Figure 9 A block diagram schematically illustrates a device for managing an application system in an application environment according to an exemplary implementation of the present disclosure. DETAILED DESCRIPTION
[0018] The following describes preferred implementations of the present disclosure in more detail with reference to the accompanying drawings. Although preferred implementations of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the implementations described herein. Rather, these implementations are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0019] As used herein, the term "including" and its variations represent open inclusion, i.e., "including but not limited to." Unless otherwise stated, the term "or" means "and / or." The term "based on" means "based at least in part on." The terms "an example implementation" and "an implementation" mean "at least one example implementation." The term "another implementation" means "at least one additional implementation." The terms "first," "second," etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0020] Figure 1 Schematically illustrates an application environment 100 in which exemplary implementations of the present disclosure may be implemented. Figure 1As shown, the application environment 100 may include a first application system 110, a second application system 120, and a third application system 130. Here, the first application system 110 is in an active state, serving access requests from a client 150. A synchronous replication 140 connection exists between the first application system 110 and the second application system 120. The storage system 122 in the second application system 120 is synchronized with the storage system 112 in the first application system 110 via the synchronous replication 140 connection. The second application system 120 is in a standby state, taking over the work of the first application system 110 when the first application system 110 fails or is overloaded. An asynchronous replication 142 connection exists between the third application system 130 and the first application system 110. The third application system 130 will operate as a backup system.
[0021] During the operation of the first application system 110, the client 150 can access data in the storage system 112. To implement asynchronous replication between the first application system 110 and the third application system 130, snapshots can be generated periodically or as instructed, and the snapshots can be transmitted to the third application system 130. For example, in the first application system 110, a snapshot 114 can be generated at time point T0. The first application system 110 can transmit the snapshot 114 to the third application system 130 via the asynchronous replication 142 connection, so that the third application system 130 includes the snapshot 134. The storage system 132 can then be recovered using the snapshot 134. If the third application system 130 already includes the snapshot 134, the first application system 110 can also send the snapshot 114 to the second application system 120, so that the second application system 120 includes the snapshot 124. At this point, the contents of the snapshots 114 in the first application system 110, the snapshots 124 in the second application system 120, and the snapshots 134 in the third application system 130 are identical.
[0022] At different time points during the operation of each application system in the application environment, another snapshot can be generated, which will be referred to below. Figure 2 Provide a description. Figure 2A block diagram 200 schematically illustrates the status of multiple application systems. In the first application system 110, a snapshot 210 may be generated at time T1. The first application system 110 may then transmit this snapshot 210 to the third application system 130 via an asynchronous replication connection 142, so that the third application system 130 includes the snapshot 230. Subsequently, the third application system 130 may use the snapshot 230 to restore the storage system to generate an updated storage system. If the third application system 130 already includes the snapshot 230, the first application system 110 may also send the snapshot 210 to the second application system 120, so that the second application system 120 includes the snapshot 220. At this point, the contents of the snapshots 114, 124, and 134 are identical, and the contents of the snapshots 210, 220, and 230 are identical.
[0023] At a later point in time, after each application system in the application environment has been successfully started and is operating normally, a new snapshot can be generated in the first application system 110 to replace the older snapshot. Under normal operation, each application system will have two snapshots. However, connections between application systems may fail, which may result in inconsistencies in the number and versions of snapshots in each application system.
[0024] At this point, if a failover operation needs to be performed from the first application system 110 to the second application system 120, it is necessary to determine whether the storage system 122 in the second application system 120 is consistent with the storage system 132 in the third application system 130. If they are inconsistent, a synchronization operation must be performed between the second application system 120 and the third application system 130. For example, a full copy operation can be performed between the second application system 120 and the third application system 130. It will be appreciated that a full copy operation incurs significant time and bandwidth overhead, significantly delaying the progress of the failover operation. In this case, it is desirable to minimize the amount of data to be copied to reduce transmission volume and thereby improve the performance of the failover operation.
[0025] In order to solve the above-mentioned defects, the implementation of the present disclosure provides a method, device and computer program product for managing application systems in an application environment 100. According to the exemplary implementation of the present disclosure, the concept of a common snapshot is proposed, and snapshots with the same content can be called common snapshots. In other words, if the contents of the snapshots included in two application systems are the same, it is considered that there is a common snapshot between the two application systems. If the contents of the snapshots included in the two application systems are different, it is considered that there is no common snapshot between the two application systems. In the following, we will refer to Figure 3 DETAILED DESCRIPTION Further details regarding exemplary implementations of the present disclosure are described.
[0026] Figure 3 Schematically shows a block diagram 300 for managing an application system in an application environment 100 according to an exemplary implementation of the present disclosure. Figure 3 As shown, a first set of snapshots 310 for the first application system 110 can be determined. The number of snapshots in the first set of snapshots 310 can be 0, 1, or 2. First snapshot information 312 for the first set of snapshots 310 can be determined. This snapshot information 312 can include, for example, the number of snapshots in the first set of snapshots 310 and version information of the snapshots. Similarly, a second set of snapshots 320 for the second application system 120 can be determined, and second snapshot information 322 for the second set of snapshots 320 can be determined. By comparing the first snapshot information 312 and the second snapshot information 322, it can be determined whether there are common snapshots between the second application system 120 and the third application system 130.
[0027] It will be appreciated that, because a synchronous replication connection exists between the first application system 110 and the second application system 120, the first application system 110 may have various information about the second application system 120. Using the exemplary implementation of the present disclosure, it is possible to determine whether a common snapshot exists between the second application system 120 and the third application system 130 without accessing the third application system 130. If a common snapshot exists, it is not necessary to perform a full copy between the second application system 120 and the third application system 130. In this way, before executing a full copy, it is possible to first determine whether a full copy is necessary, and only perform a full copy if no common snapshot exists between the two application systems. In this way, the efficiency of data synchronization can be greatly improved, and the complexity of preparatory work before failover can be reduced.
[0028] Furthermore, using the exemplary implementations of the present disclosure, data can be synchronized with the third application system 130 based on whether a common snapshot exists between the second application system 120 and the third application system 130. If a common snapshot exists, only the data outside the common snapshot can be transferred. This avoids the overhead of performing a full copy between the two application systems.
[0029] In the following, we will refer to Figure 4 Describes more details about the management application system. Figure 4A flowchart schematically illustrates a method 400 for managing application systems in an application environment according to an exemplary implementation of the present disclosure. According to an exemplary implementation of the present disclosure, a method for managing application systems in an application environment 100 is provided. Application environment 100 includes a first application system 110, a second application system 120, and a third application system 130. First application system 110 can be in an active state, second application system 120 can be in a standby state, and third application system 130 can be in a backup state.
[0030] At block 410, first snapshot information 312 of the first set of snapshots 310 of the first application system 110 may be obtained. According to an exemplary implementation of the present disclosure, method 400 may be executed at the first application system 110, thereby conveniently obtaining the first snapshot information 312. When the first application system 110 is in different states, the first set of snapshots 310 may include zero, one, or two snapshots.
[0031] At block 420, second snapshot information 322 of the second set of snapshots 320 of the second application system 120 may be obtained. It will be appreciated that, because a synchronous replication 140 connection exists between the first application system 110 and the second application system 120, the first application system 110 can obtain the second snapshot information 322 of the second set of snapshots 320 in the second application system 120 without requiring additional communication. When the second application system 120 is in different states, the second set of snapshots 320 may include zero, one, or two snapshots.
[0032] At block 430, based on first snapshot information 312 and second snapshot information 312, it may be determined whether a common snapshot exists between second application system 120 and third application system 130. The determination of whether a common snapshot exists may be based on the number of snapshots indicating each application system included in the snapshot information.
[0033] According to an exemplary implementation of the present disclosure, the number of common snapshots between the first group of snapshots 310 and the second group of snapshots 320 may be determined first based on the first snapshot information 312 and the second snapshot information 322 .
[0034] According to an exemplary implementation of the present disclosure, if the first snapshot information 312 and the second snapshot information 322 do not have the same version (that is, the number of public snapshots between the first application system 110 and the second application system 120 is 0), then there is no need to check the version information of the snapshot in the third application system 130 at this time, and it can be determined that there is no public snapshot between the second application system 120 and the third application system 130.
[0035] It will be appreciated that a synchronous replication 140 connection exists between the first application system 110 and the second application system 120. Therefore, based on existing communication mechanisms within the application environment, the first application system 110 can be aware of the second snapshot information 322 of the second set of snapshots 320 in the second application system 120. In this way, it can be determined that no common snapshots exist between the second application system 120 and the third application system 130 without additional communication. Furthermore, subsequent data synchronization processes can be performed based on full copies.
[0036] According to exemplary implementations of the present disclosure, snapshot information may be represented in different data structures. For example, the first snapshot information 312 and the second snapshot information 322 may be shown in Table 1 and Table 2 below, respectively.
[0037] Table 1 First snapshot information
[0038] Serial number The version number of the snapshot 1 V0005 2 V0006
[0039] Table 2 Second snapshot information
[0040] Serial number The version number of the snapshot 1 V0005 2 V0006
[0041] Comparing the snapshot information shown in Table 1 and Table 2 shows that both first and second snapshot groups 310 and 320 include snapshots with versions V0005 and V0006. At this point, the number of common snapshots between first and second snapshot groups 310 and 320 is two. Therefore, it can be determined that at least one common snapshot exists between second application system 120 and third application system 130.
[0042] It will be understood that after the snapshot in the first application system 110 has been synchronized to the third application system 130, the snapshot will be synchronized to the second application system 120. Therefore, when all three application systems are in normal operation, the synchronous replication 140 connection and the asynchronous replication 142 connection are both in normal state. There will be two snapshots in the third application system 130, and the contents of these two snapshots are respectively the same as the contents of the two snapshots in the second application system 120. Using the exemplary implementation of the present disclosure, without having to check the snapshot version in the third application system 130, the common snapshot between the first application system 110 and the second application system 120 can be determined. In this way, the existence of a common snapshot between the second application system 120 and the third application system 130 can be determined without increasing additional communication. Further, subsequent data synchronization operations can be performed based on incremental transmission.
[0043] According to an exemplary implementation of the present disclosure, if the number of common snapshots between first application system 110 and second application system 120 is determined to be 1, it is not possible to directly determine whether common snapshots exist between second application system 120 and third application system 130. Instead, it is necessary to obtain third snapshot information of a third group of snapshots for third application system 130 and, based on second snapshot information 322 and the third snapshot information, determine whether common snapshots exist between second application system 120 and third application system 130.
[0044] By comparing the versions of the snapshots in the second snapshot information 322 and the third snapshot information, it can be determined whether there is a common snapshot between the second application system 120 and the third application system 130. If the second snapshot information 322 and the third snapshot information include snapshots with the same version number, it can be determined that the two systems have a common snapshot. This situation may occur during the startup phase of the application system, and will be returned to in the following. Figure 1 At time T0, a snapshot 114 of the first application system 110 is generated. This snapshot 114 has been transferred to the third application system 130 to form snapshot 134. This snapshot 114 has also been transferred to the second application system 120 to form snapshot 124. At this point, snapshot 124 in the second application system 120 and the snapshot in the third application system 130 have the same version. Therefore, snapshot 124 in the second application system 120 and snapshot 134 in the third application system 130 are common snapshots.
[0045] According to the exemplary implementation of the present disclosure, a situation may arise where no common snapshot exists between the second application system 120 and the third application system 130. In this case, snapshot information of a set of snapshots in the third application system 130 can be queried via the asynchronous replication 142 connection. Furthermore, the snapshot versions in the second application system 120 and the third application system 130 can be compared to determine whether they are identical.
[0046] According to an exemplary implementation of the present disclosure, if it is determined that at least a portion of the second snapshot information matches at least a portion of the third snapshot information, it is determined that a common snapshot exists between the second application system and the third application system. According to an exemplary implementation of the present disclosure, if it is determined that the second snapshot information does not match the third snapshot information, it is determined that no common snapshot exists between the second application system and the third application system. Whether the two application systems include a common snapshot is determined by comparing whether there is a snapshot with the same version number in the snapshot information of the second application system 120 and the third application system 130. If the second snapshot information and the third snapshot information do not include a snapshot with the same version number (that is, there is a matching portion), it can be determined that no common snapshot exists between the two systems.
[0047] return Figure 4 At block 440, data may be synchronized with the third application system 130 based on whether a common snapshot exists between the second application system 120 and the third application system 130. According to an exemplary implementation of the present disclosure, if it is determined that at least one common snapshot exists between the second application system 120 and the third application system 130, data is synchronized with the third application system 130 based on the at least one common snapshot.
[0048] In the following, we will refer to Figure 5 Describes more details about the methods for managing application systems. Specifically, Figure 5 A flowchart of a method 500 for managing an application system based on snapshot information of the application system according to an exemplary implementation of the present disclosure is schematically shown. At block 510, first snapshot information 312 and second snapshot information 322 may be compared to determine the number of common snapshots between the first set of snapshots 310 and the second set of snapshots 320. For example, corresponding snapshot versions may be obtained from the snapshot information, and the number of common snapshots between the first set of snapshots 310 and the second set of snapshots 320 may be determined by comparing the snapshot versions. At block 520, different operations may be performed based on the determined number of common snapshots.
[0049] As indicated by the arrow to the left of block 520, if the number of common snapshots determined between first application system 110 and second application system 120 is 2, method 500 may proceed to block 550, where it may be determined that common snapshots exist between second application system 120 and third application system 130. As indicated by the arrow below block 520, if the number of common snapshots determined between first application system 110 and second application system 120 is 1, method 500 may proceed to block 530. At this point, the second snapshot information and the third snapshot information need to be further compared.
[0050] At block 540, if the second snapshot information matches the third snapshot information (i.e., the snapshot information includes a snapshot with the same version number), method 500 may proceed to block 550 and determine that a common snapshot exists between second application system 120 and third application system 130. If a common snapshot exists, data may be synchronized with third application system 130 based on the common snapshot at block 570. At block 540, if the second snapshot information does not match the third snapshot information (i.e., the snapshot information does not include a snapshot with the same version number), method 500 may proceed to block 560 and determine that a common snapshot does not exist between second application system 120 and third application system 130. If a common snapshot does not exist, data may be synchronized with third application system 130 based on a full copy at block 580. Subsequently, if data has already been synchronized based on the operations in blocks 570 or 580, method 500 proceeds to block 590, at which point failover may be performed from first application system 110 to second application system 120.
[0051] In the following, we will refer to Figure 6 Describes more details about synchronizing data based on a common snapshot. Figure 6 Schematically shows a block diagram 600 of performing data synchronization between the second application system 120 and the third application system 130 based on incremental transmission according to an exemplary implementation of the present disclosure. Figure 6 As shown, assuming that it has been determined that the snapshot 610 in the second application system 120 and the snapshot 620 in the third application system 130 are common snapshots, the difference between the second application system 120 and the latest version snapshot 610 can be determined so as to synchronize the difference to the third application system 130.
[0052] In this exemplary implementation, an asynchronous replication connection can be established between the second application system 120 and the third application system 130, and the differential data can be synchronized from the second application system 120 to the third application system 130 via incremental transmission 630. It will be appreciated that because asynchronous replication has low network bandwidth requirements, the asynchronous connection between the second application system 120 and the third application system 130 can be established over an existing IP network.
[0053] It will be appreciated that since two public snapshots may exist, when synchronizing data with the third application system 130 based on at least one public snapshot, the latest version of the at least one public snapshot can be determined first. The latest snapshot can be determined by querying the version number in the snapshot information. Performing data synchronization based on the latest version of the snapshot can minimize the bandwidth required during incremental transmission.
[0054] According to an exemplary implementation of the present disclosure, if it is determined that there is no common snapshot between the second application system 120 and the third application system 130, data needs to be synchronized to the third application system 130 based on a full copy. Figure 7 Describes more details about synchronizing data based on a common snapshot. Figure 7 A block diagram 700 schematically illustrates performing data synchronization between the second application system 120 and the third application system 130 based on full copy according to an exemplary implementation of the present disclosure.
[0055] At this point, since there is no common snapshot between the second application system 120 and the third application system 130, all data in the storage system 122 needs to be copied to the third application system 130. In this case, an asynchronous replication connection can be established between the second application system 120 and the third application system 130, and data can be synchronized to the third application system 130 using a full copy 710. Specifically, a snapshot of the storage system 122 can be generated at the second application system 120 and transmitted to the third application system 130. After receiving the snapshot, the third application system 130 can use it to update the storage system 132 at the third application system 130.
[0056] It will be appreciated that during the operation of the first application system 110, it may be under a high workload, resulting in a decrease in the speed of providing services to clients. To prevent the situation from worsening, a planned failover can be performed from the first application system 110 to the second application system 120. Before performing the failover, the method 400 described above can be executed to determine how to perform data synchronization. An asynchronous replication connection can be established between the third application system 130 and the second application system 120 to provide a communication channel for data synchronization. After the failover, the second application system 120 will become active.
[0057] According to an exemplary implementation of the present disclosure, method 400 may be executed when it is detected that the workload of the first application system 110 is higher than a predetermined threshold. It will be understood that a higher workload may be a condition that triggers a planned failover. At this time, the service interface of the client 150 will not be immediately switched from the first application system 110 to the second application system 120, but preparations for the failover may be performed first. During the preparation period, the above-mentioned steps may be executed. Figure 4 In this way, it is possible to first determine whether a common snapshot exists between the second application system 120 and the third application system 130, thereby avoiding the situation where a full copy is performed between the second application system 120 and the third application system 130 as much as possible.
[0058] After data synchronization has been completed, the third application system 130 has completed all preparations for failover and can perform failover from the first application system 110 to the second application system 120. During the failover operation, the interface of the application environment's external services will be switched from the first application system 110 to the second application system 120, so that the second application system 120 is in an active state. Specifically, Figure 8 A block diagram 800 schematically illustrates an application environment for performing failover according to an exemplary implementation of the present disclosure.
[0059] like Figure 8 As shown, before the failover, snapshots 114 and 116 exist in the first application system 110, snapshots 810 and 812 exist in the second application system 120, and snapshots 820 and 822 exist in the third application system 130. Assume that snapshots 810 and 820 are public snapshots, snapshots 812 and 822 are public snapshots, and snapshots 812 and 822 are snapshots of the latest versions. At this point, an asynchronous replication 830 connection can be established between the second application system 120 and the third application system 130, and data can be synchronized to the third application system 130 based on incremental transmission. Failover can then be performed, and the first application system 110 can be deactivated, while the second application system 120 can be activated. At this point, the client 150 will access the data in the storage system 122 through the second application system 120.
[0060] Using the exemplary implementation described above, the information already available at first application system 110 can be leveraged to determine how to perform subsequent data synchronization. On the one hand, it can accurately determine whether a common snapshot exists between second application system 120 and third application system 130, thus avoiding the various overheads incurred by potential full copies. On the other hand, additional data communication is only required when the information at first application system 110 is insufficient to make a determination, thereby reducing various data transmission overheads within the application environment.
[0061] See above for Figures 2 to 8An example of the method according to the present disclosure is described in detail, and the implementation of the corresponding device will be described below. According to the exemplary implementation of the present disclosure, a device for managing application systems in an application environment is provided. The application environment includes a first application system, a second application system, and a third application system. The device includes: a first acquisition module, configured to obtain first snapshot information of a first group of snapshots of the first application system, and the first application system is in an active state; a second module, configured to obtain second snapshot information of a second group of snapshots of the second application system, and the second application system is in a standby state; a determination module, configured to determine whether there is a common snapshot between the second application system and the third application system based on the first snapshot information and the second snapshot information; and a synchronization module, configured to synchronize data to the third application system based on whether there is a common snapshot between the second application system and the third application system.
[0062] According to an exemplary implementation of the present disclosure, the determination module is further configured to determine that no common snapshot exists between the second application system and the third application system in response to determining that the first snapshot information does not match the second snapshot information.
[0063] According to an exemplary implementation of the present disclosure, the determination module further includes: a quantity determination module, configured to determine the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; and a common snapshot determination module, configured to determine that there is at least one common snapshot between the second application system and the third application system in response to determining that the number is 2.
[0064] According to an exemplary implementation of the present disclosure, the determination module further includes: a quantity determination module, configured to determine the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; a common snapshot determination module, configured to: in response to determining that the number is 1, obtain the third snapshot information of the third group of snapshots of the third application system; and based on the second snapshot information and the third snapshot information, determine whether there is a common snapshot between the second application system and the third application system.
[0065] According to an exemplary implementation of the present disclosure, the public snapshot determination module further includes at least any one of the following: a first determination module, configured to determine that a public snapshot exists between the second application system and the third application system in response to determining that at least a portion of the second snapshot information matches at least a portion of the third snapshot information; and a second determination module, configured to determine that no public snapshot exists between the second application system and the third application system in response to determining that the second snapshot information does not match the third snapshot information.
[0066] According to an exemplary implementation of the present disclosure, the synchronization module further includes: an incremental transmission module configured to synchronize data to the third application system based on the at least one common snapshot in response to determining that there is at least one common snapshot between the second application system and the third application system.
[0067] According to an exemplary implementation of the present disclosure, the incremental transmission module further includes: a version determination module, configured to determine the latest version snapshot in at least one public snapshot; a difference determination module, configured to determine the difference between the storage system in the second application system and the latest version snapshot; and a transmission module, configured to synchronize the difference to a third application system.
[0068] According to an exemplary implementation of the present disclosure, the synchronization module includes a copy module configured to synchronize data to the third application system based on a full copy in response to determining that no common snapshot exists between the second application system and the third application system.
[0069] According to an exemplary implementation of the present disclosure, the system further includes a detection module configured to start the first acquisition module in response to detecting that the workload of the first application system is higher than a predetermined threshold.
[0070] According to an exemplary implementation of the present disclosure, it further includes: a failover module configured to perform failover from the first application system to the second application system, so that the second application system is in an activated state.
[0071] Figure 9 A block diagram of a device 900 for managing a storage system according to an exemplary implementation of the present disclosure is schematically shown. As shown, the device 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 902 or loaded from a storage unit 908 into a random access memory (RAM) 903. Various programs and data required for the operation of the device 900 can also be stored in the RAM 903. The CPU 901, ROM 902, and RAM 903 are connected to each other via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.
[0072] Various components in the device 900 are connected to the I / O interface 905, including an input unit 906, such as a keyboard, a mouse, etc.; an output unit 907, such as various types of displays, speakers, etc.; a storage unit 908, such as a magnetic disk, an optical disk, etc.; and a communication unit 909, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 909 allows the device 900 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.
[0073] The various processes and procedures described above, such as methods 400 and 500, may be performed by the processing unit 901. For example, in some implementations, methods 400 and 500 may be implemented as computer software programs that are tangibly embodied in a machine-readable medium, such as the storage unit 908. In some implementations, part or all of the computer program may be loaded and / or installed onto the device 900 via the ROM 902 and / or the communication unit 909. When the computer program is loaded into the RAM 903 and executed by the CPU 901, one or more steps of the methods 400 and 500 described above may be performed. Alternatively, in other implementations, the CPU 901 may be configured in any other suitable manner to implement the above-described processes / methods.
[0074] According to an exemplary implementation of the present disclosure, a device for managing application systems in an application environment is provided, wherein the application environment includes a first application system, a second application system, and a third application system. The device includes: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, cause the device to perform an action. The action includes: obtaining first snapshot information of a first set of snapshots of the first application system, the first application system being in an active state; obtaining second snapshot information of a second set of snapshots of the second application system, the second application system being in a standby state; and determining, based on the first snapshot information and the second snapshot information, whether there is a common snapshot between the second application system and the third application system; and synchronizing data to the third application system based on whether there is a common snapshot between the second application system and the third application system.
[0075] According to an exemplary implementation of the present disclosure, based on the first snapshot information and the second snapshot information, determining whether there is a common snapshot between the second application system and the third application system includes: in response to determining that the first snapshot information and the second snapshot information do not match, determining that there is no common snapshot between the second application system and the third application system.
[0076] According to an exemplary implementation of the present disclosure, determining whether there are common snapshots between the second application system and the third application system based on the first snapshot information and the second snapshot information includes: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; and in response to determining that the number is 2, determining that there is at least one common snapshot between the second application system and the third application system.
[0077] According to an exemplary implementation of the present disclosure, determining whether there are common snapshots between the second application system and the third application system based on the first snapshot information and the second snapshot information includes: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; in response to determining that the number is 1, obtaining third snapshot information of the third group of snapshots of the third application system; and determining whether there are common snapshots between the second application system and the third application system based on the second snapshot information and the third snapshot information.
[0078] According to an exemplary implementation of the present disclosure, determining whether there is a common snapshot between the second application system and the third application system based on the second snapshot information and the third snapshot information includes at least any one of the following: in response to determining that at least a portion of the second snapshot information matches at least a portion of the third snapshot information, determining that there is a common snapshot between the second application system and the third application system; and in response to determining that the second snapshot information does not match the third snapshot information, determining that there is no common snapshot between the second application system and the third application system.
[0079] According to an exemplary implementation of the present disclosure, synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system includes: in response to determining that at least one common snapshot exists between the second application system and the third application system, synchronizing data to the third application system based on the at least one common snapshot.
[0080] According to an exemplary implementation of the present disclosure, synchronizing data to a third application system based on at least one public snapshot includes: determining a latest version snapshot in the at least one public snapshot;
[0081] Determine the difference between the storage system in the second application system and the latest version snapshot; and synchronize the difference to the third application system.
[0082] According to an exemplary implementation of the present disclosure, synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system includes: in response to determining that no common snapshot exists between the second application system and the third application system, synchronizing data to the third application system based on a full copy.
[0083] According to an exemplary implementation of the present disclosure, the action further includes: executing an action in response to detecting that the workload of the first application system is higher than a predetermined threshold.
[0084] According to an exemplary implementation of the present disclosure, the action further includes: performing a failover from the first application system to the second application system, so that the second application system is in an activated state.
[0085] According to an exemplary implementation of the present disclosure, a computer program product is provided, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for performing a method according to the present disclosure.
[0086] According to an exemplary implementation of the present disclosure, a computer-readable medium is provided, wherein machine-executable instructions are stored on the computer-readable medium, and when the machine-executable instructions are executed by at least one processor, the at least one processor implements the method according to the present disclosure.
[0087] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.
[0088] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.
[0089] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.
[0090] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some implementations, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions, which may be executed by the computer-readable program instructions to implement various aspects of the present disclosure.
[0091] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products implemented according to the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0092] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0093] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0094] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple implementations of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part for a module, program segment or instruction, and a part for a module, program segment or instruction comprises one or more executable instructions for realizing the logical function of the specification. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0095] While various implementations of the present disclosure have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is selected to best explain the principles of the implementations, their practical applications, or improvements to existing technologies, or to enable others skilled in the art to understand the implementations disclosed herein.
Claims
1. A method for managing an application system in an application environment, wherein the application environment includes a first application system, a second application system, and a third application system, wherein the second application system takes over the work of the first application system when the first application system is overloaded, and the third application system operates as a backup system, the method comprising: Performing synchronous replication from the first application system to the second application system; Execute asynchronous replication from the first application system to the third application system; Acquire first snapshot information about a first group of snapshots of the first application system, including version information of snapshots in the first group of snapshots of the first application system, wherein the first group of snapshots of the first application system includes at most two snapshots stored in the first application system and previously transmitted from the first application system to the third application system, and the first application system is in an activated state; Acquire second snapshot information about a second group of snapshots of the second application system, including version information of snapshots in the second group of snapshots of the second application system, wherein the second group of snapshots of the second application system includes at most two snapshots stored in the second application system, and the second application system is in a standby state; By comparing the first snapshot information and the second snapshot information, determining whether there is at least one common snapshot between the second application system and the third application system, wherein in response to determining that there is at least one common snapshot between the first application system and the second application system, it is determined that there is at least one common snapshot between the second application system and the third application system; as well as Based on whether there is at least one common snapshot between the second application system and the third application system, data is synchronized to the third application system.
2. The method according to claim 1, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: In response to determining that the first snapshot information does not match the second snapshot information, it is determined that no common snapshot exists between the second application system and the third application system.
3. The method according to claim 1, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; as well as In response to determining that the number is 2, it is determined that at least one common snapshot exists between the second application system and the third application system.
4. The method according to claim 1, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; In response to determining that the number is 1, Acquire third snapshot information of a third group of snapshots of the third application system, including version information of the snapshots in the third group of snapshots of the third application system; as well as By comparing the second snapshot information with the third snapshot information, it is determined whether there is a common snapshot between the second application system and the third application system.
5. The method according to claim 4, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises at least one of the following: In response to determining that at least a portion of the second snapshot information matches at least a portion of the third snapshot information, determining that a common snapshot exists between the second application system and the third application system; and In response to determining that the second snapshot information does not match the third snapshot information, it is determined that no common snapshot exists between the second application system and the third application system.
6. The method according to claim 1, wherein synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system comprises: In response to determining that at least one common snapshot exists between the second application system and the third application system, data is synchronized to the third application system based on the at least one common snapshot.
7. The method according to claim 6, wherein synchronizing data to the third application system based on the at least one public snapshot comprises: determining a latest version snapshot of the at least one public snapshot; Determine the difference between the storage system in the second application system and the latest version snapshot; as well as The difference part is synchronized to the third application system.
8. The method according to claim 1, wherein synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system comprises: In response to determining that no common snapshot exists between the second application system and the third application system, data is synchronized with the third application system based on a full copy.
9. The method according to claim 1, further comprising: In response to detecting that the workload of the first application system is higher than a predetermined threshold, the method is executed.
10. The method according to claim 9, further comprising: Perform a failover from the first application system to the second application system so that the second application system is in an activated state.
11. A device for managing application systems in an application environment, the application environment comprising a first application system, a second application system and a third application system, the second application system taking over the work of the first application system when the first application system is overloaded, and the third application system operating as a backup system, the device comprising: at least one processor; Volatile memory; as well as a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions, when executed by the at least one processor, causing the device to perform actions, the actions comprising: Performing synchronous replication from the first application system to the second application system; Execute asynchronous replication from the first application system to the third application system; Acquire first snapshot information about a first group of snapshots of the first application system, including version information of snapshots in the first group of snapshots of the first application system, wherein the first group of snapshots of the first application system includes at most two snapshots stored in the first application system and previously transmitted from the first application system to the third application system, and the first application system is in an activated state; Acquire second snapshot information about a second group of snapshots of the second application system, including version information of snapshots in the second group of snapshots of the second application system, wherein the second group of snapshots of the second application system includes at most two snapshots stored in the second application system, and the second application system is in a standby state; By comparing the first snapshot information and the second snapshot information, determining whether there is at least one common snapshot between the second application system and the third application system, wherein in response to determining that there is at least one common snapshot between the first application system and the second application system, it is determined that there is at least one common snapshot between the second application system and the third application system; and Based on whether there is at least one common snapshot between the second application system and the third application system, data is synchronized to the third application system.
12. The device according to claim 11, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: In response to determining that the first snapshot information does not match the second snapshot information, it is determined that no common snapshot exists between the second application system and the third application system.
13. The device according to claim 11, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; as well as In response to determining that the number is 2, it is determined that at least one common snapshot exists between the second application system and the third application system.
14. The device according to claim 11, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises: determining the number of common snapshots between the first group of snapshots and the second group of snapshots based on the first snapshot information and the second snapshot information; In response to determining that the number is 1, Acquire third snapshot information of a third group of snapshots of the third application system, including version information of the snapshots in the third group of snapshots of the third application system; as well as By comparing the second snapshot information with the third snapshot information, it is determined whether there is a common snapshot between the second application system and the third application system.
15. The device according to claim 14, wherein determining whether there is a common snapshot between the second application system and the third application system further comprises at least any one of the following: In response to determining that at least a portion of the second snapshot information matches at least a portion of the third snapshot information, determining that a common snapshot exists between the second application system and the third application system; and In response to determining that the second snapshot information does not match the third snapshot information, it is determined that no common snapshot exists between the second application system and the third application system.
16. The device according to claim 11, wherein synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system comprises: In response to determining that at least one common snapshot exists between the second application system and the third application system, data is synchronized to the third application system based on the at least one common snapshot.
17. The device according to claim 16, wherein synchronizing data to the third application system based on the at least one public snapshot comprises: determining a latest version snapshot of the at least one public snapshot; Determine the difference between the storage system in the second application system and the latest version snapshot; as well as The difference part is synchronized to the third application system.
18. The device according to claim 11, wherein synchronizing data to the third application system based on whether a common snapshot exists between the second application system and the third application system comprises: In response to determining that no common snapshot exists between the second application system and the third application system, data is synchronized with the third application system based on a full copy.
19. The apparatus of claim 11, wherein the actions further comprise: In response to detecting that the workload of the first application system is higher than a predetermined threshold, the action is performed.
20. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions for performing the method according to any one of claims 1-10.
Citation Information
Patent Citations
Recovery of file system data in file servers mirrored file system volumes
US20040153736A1
Service resiliency within on-premise products
US20080046552A1
Methods and devices for multi-level data protection in a storage system
US20170185497A1
Moving a consistency group having a replication relationship
US20170315874A1
Synchronization storage solution after an offline event
US20180307568A1