Method, electronic device, program product for data replication
By prioritizing replication sessions and dynamically allocating bandwidth, the lack of flexibility in existing data replication methods is addressed, enabling priority replication of critical data and efficient resource utilization, thus ensuring flexibility in data protection and business continuity.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DELL PROD LP
- Filing Date
- 2025-01-06
- Publication Date
- 2026-07-07
AI Technical Summary
Existing data replication methods lack flexibility and cannot distinguish the importance of data between replication sessions, resulting in low resource utilization efficiency and difficulty in meeting different replication requirements. In particular, when data changes suddenly increase, it may lead to data loss and system downtime.
The total replication bandwidth is determined based on multiple replication sessions and compared with the replication link bandwidth. Replication sessions are prioritized based on factors such as user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority. Bandwidth allocation is dynamically adjusted to prioritize the replication of important data.
It enables priority replication of critical data, reduces data replication losses, enhances overall data protection, improves resource utilization efficiency, and ensures business continuity during disasters.
Smart Images

Figure CN122348949A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of this disclosure relate to the field of computers, and more specifically, to methods, electronic devices, and products for data copying. Background Technology
[0002] With the exponential growth of data, diversified data processing, and the development and support of hybrid cloud environments, high-performance hardware, intelligent software, and flexible scalability architecture are needed to provide storage solutions to meet diverse data storage needs.
[0003] Cloud-based storage services enable businesses and individuals to seamlessly migrate and manage data between local and cloud environments. They also support cloud backup and disaster recovery of data copies and can dynamically increase storage capacity according to growing needs without frequent hardware replacements, reducing operating and maintenance costs. Summary of the Invention
[0004] Embodiments of this disclosure provide a method, electronic device, and program product for data copying.
[0005] According to a first aspect of this disclosure, a method for data replication is provided. The method includes determining a total replication bandwidth based on multiple replication sessions, wherein the multiple replication sessions are used to replicate data. The method further includes comparing the total replication bandwidth with the replication link bandwidth. The method also includes, when the total replication bandwidth is greater than the replication link bandwidth, prioritizing the multiple replication sessions based on one or more of the following: user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority; and performing data replication based on the prioritized multiple replication sessions.
[0006] According to a second aspect of this disclosure, an electronic device for data replication is provided. The device includes at least one processor and a memory coupled to the at least one processor and having instructions stored thereon. When executed by the at least one processor, the instructions cause the electronic device to perform actions, including determining a total replication bandwidth based on multiple replication sessions, wherein the multiple replication sessions are used to replicate data. The method further includes comparing the total replication bandwidth with the replication link bandwidth. The actions also include prioritizing the multiple replication sessions based on one or more of the following when the total replication bandwidth is greater than the replication link bandwidth: user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority; and performing data replication based on the prioritized multiple replication sessions.
[0007] According to a third aspect of this disclosure, a computer program product is provided, which is tangibly stored on a non-volatile computer-readable medium and includes machine-executable instructions that, when executed, cause a machine to perform the steps of the method implemented in the first aspect of this disclosure. Attached Figure Description
[0008] The above and other objects, features and advantages of this disclosure will become clearer from a more detailed description of exemplary embodiments of this disclosure taken in conjunction with the accompanying drawings, in which the same reference numerals generally represent the same elements.
[0009] Figure 1 The illustration shows a schematic diagram of a system for data copying in which the devices and / or methods of embodiments of the present disclosure may be implemented according to embodiments of the present disclosure;
[0010] Figure 2 A flowchart illustrating a method for data copying according to an embodiment of the present disclosure is shown;
[0011] Figure 3 A flowchart illustrating the replication bandwidth allocation process according to some embodiments of this disclosure is shown;
[0012] Figure 4 A schematic diagram illustrates the replication bandwidth allocation process for sorted replication sessions;
[0013] Figure 5 The figure illustrates experimental results regarding total lost RPO according to an embodiment of the present disclosure;
[0014] Figure 6 The figure illustrates experimental results regarding total synchronization data according to an embodiment of this disclosure;
[0015] Figure 7 The figure illustrates experimental results regarding total bandwidth according to an embodiment of the present disclosure;
[0016] Figure 8 The figure illustrates experimental results regarding the total number of synchronization wheels according to an embodiment of the present disclosure;
[0017] Figure 9 The illustration shows experimental results regarding the total I / O of the front-end host on the source site according to an embodiment of this disclosure.
[0018] Figure 10 The figure illustrates another experimental result graph regarding the total lost RPO according to an embodiment of the present disclosure;
[0019] Figure 11 The figure illustrates another experimental result diagram regarding total synchronization data according to an embodiment of the present disclosure;
[0020] Figure 12 The figure illustrates another experimental result graph regarding the total bandwidth according to an embodiment of the present disclosure;
[0021] Figure 13 The figure illustrates another experimental result diagram regarding the total number of synchronization wheels according to an embodiment of the present disclosure;
[0022] Figure 14 The figure illustrates another experimental result graph regarding the total I / O of the front-end host on the source site according to an embodiment of the present disclosure;
[0023] Figure 15 Another experimental result diagram regarding the total lost RPO according to an embodiment of this disclosure;
[0024] Figure 16 The figure illustrates another experimental result diagram regarding total synchronization data according to an embodiment of the present disclosure;
[0025] Figure 17 The illustration shows another experimental result graph regarding the total bandwidth according to an embodiment of the present disclosure;
[0026] Figure 18 The illustration shows another experimental result diagram regarding the total number of synchronization wheels according to an embodiment of the present disclosure;
[0027] Figure 19 The illustration shows another experimental result graph regarding the total I / O of the front-end host on the source site according to an embodiment of this disclosure; and
[0028] Figure 20 A schematic block diagram of an example device that can be used to implement embodiments of the present disclosure is shown. Detailed Implementation
[0029] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0030] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0031] In some scenarios, each replication session uses similar bandwidth or nearly the same speed to replicate data. This replication method lacks control flexibility. It fails to differentiate the importance of data between replication sessions in the system and lacks the flexibility and selectivity to meet different replication requirements. This situation limits the user's ability to develop effective data protection strategies.
[0032] In some scenarios, the maximum acceptable recovery point objective (RPO) is set to a fixed time interval. This makes ensuring that the RPO is met challenging, especially when different sessions replicate data with the same bandwidth without considering different data protection requirements and I / O.
[0033] In some scenarios, critical replication sessions are not prioritized, making important data more vulnerable during disasters. In others, backup systems lack the awareness to coordinate and allocate bandwidth for each session, leading to inefficient resource utilization and difficulty in meeting Recovery Point Objectives (RPOs). Still others, backup systems may not account for data changes in source objects, especially with sudden increases in data changes, potentially delaying replication and causing significant data loss during a disaster. Excessive replication time can also lead to lost RPOs, resource exhaustion, and system downtime.
[0034] To this end, this disclosure proposes a method for data replication, which includes determining a total replication bandwidth based on multiple replication sessions, wherein the multiple replication sessions can be used to replicate the data. The total replication bandwidth can then be compared with the replication link bandwidth. When the total replication bandwidth is greater than the replication link bandwidth, the multiple replication sessions can be prioritized based on multiple factors (such as user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, Loss Recovery Point Objective (RPO) priority, etc.), and finally, data replication can be performed based on the prioritized multiple replication sessions. By using the method of embodiments of this disclosure, important data can be prioritized for replication, minimizing data replication losses and enhancing overall data protection.
[0035] The basic principles and several exemplary embodiments of this disclosure will now be described in detail with reference to the accompanying drawings. Figure 1 The illustration shows a schematic diagram of a data copying process 100 in which the apparatus and / or methods of embodiments of the present disclosure may be implemented. It should be understood that... Figure 1 The number and arrangement of objects, components, and elements shown are merely examples; the diagram may include different numbers and arrangements of components, elements, nodes, objects, and various additional elements.
[0036] like Figure 1As shown, users can create one or more replication sessions between the source data center or source site 102 and the target data center or remote site 104, and can select and define data replication strategies and parameters, such as selecting synchronous replication mode or asynchronous replication mode. As an example, the source data center or source site 102 can be the primary storage node storing the original data, used to handle business requests from an enterprise or company. The source data center 102 can generate replication sessions and select the dataset to be replicated. According to embodiments of this disclosure, the target data center or remote site 104 can receive data replicated from the source data center 102 for backup, disaster recovery, and subsequent business expansion.
[0037] In some embodiments, the source data center 102 can then transfer data blocks to the target data center 104 via replication link 106 based on a data replication strategy. For example, according to some embodiments of this disclosure, in synchronous mode, data can be written simultaneously at both the source data center 102 and the target data center 104, thereby ensuring real-time consistency. In asynchronous mode, data is first written to the source data center 102 and then transferred in batches to the target data center 104.
[0038] In some scenarios, the total replication bandwidth of the multiple replication sessions to be replicated may be far greater than the actual bandwidth of replication link 106, making it impossible to complete the replication of multiple sessions within the specified time. Therefore, the method implemented according to this disclosure can prioritize these total replication bandwidths based on multiple factors.
[0039] According to embodiments of this invention, these factors may include, but are not limited to, user-defined priorities, differential data priorities, data change rate priorities, replication progress priorities, replication session start time priorities, Lost Recovery Point Objective (RPO) priorities, etc. Subsequently, the data is replicated based on multiple ordered replication sessions, thereby achieving priority replication of important data, meeting the flexibility and selectivity of different replication requirements, efficient resource utilization, and ultimately achieving adaptive priority-based replication bandwidth allocation.
[0040] According to embodiments of this disclosure, the source data center 102 or the target data center 104 can be any computing device with processing computing resources or storage resources. For example, the computing device may have common capabilities such as receiving and sending data requests, real-time data analysis, local data storage, and real-time network connectivity. Computing devices typically include various types of devices. Examples of computing devices may include, but are not limited to: database servers, rack servers, server clusters, desktop computers, laptop computers, etc., and this disclosure does not impose any limitations thereon.
[0041] The above combination Figure 1A block diagram depicts an environment in which some embodiments of this disclosure can be implemented. The following is in conjunction with... Figure 2 A flowchart describing a method 200 for data copying according to embodiments of the present disclosure is provided. Method 200 can be performed in... Figure 1 Execute at data center 102 or target data center 104.
[0042] At block 202, the total replication bandwidth is determined based on multiple replication sessions. According to embodiments of this disclosure, source data center 102 can determine the total replication bandwidth to be replicated based on factors such as the total bandwidth required by multiple replication sessions currently created with target data center 104 for replicating data, the amount of data to be transferred, etc. For example, in some embodiments, each session can determine the required replication bandwidth based on the amount of data to be transferred and the replication time, and the total bandwidth can be the sum of the bandwidths required by these sessions. According to some embodiments of this disclosure, the total replication bandwidth can be the sum of the bandwidths of each session, with the bandwidth of each session determined by the amount of data and the replication time.
[0043] At box 204, the total replication bandwidth is compared with the replication link bandwidth. According to embodiments of this disclosure, the source data center 102 may compare the total replication bandwidth to be replicated with the total replication link bandwidth of replication link 106.
[0044] At box 206, in response to the total replication bandwidth being greater than the replication link bandwidth, multiple replication sessions are prioritized based on multiple factors. According to some embodiments of this disclosure, when the source data center 102 determines that the total replication bandwidth is greater than the replication link bandwidth, the source data center 102 may prioritize the current replication sessions based on multiple factors affecting replication. These factors may include, but are not limited to, user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, Lost Recovery Point Objective (RPO) priority, etc.
[0045] At box 208, data replication is performed based on multiple ordered replication sessions, and bandwidth is allocated to the sessions. In some embodiments, bandwidth can be allocated to multiple replication sessions based on order to control the replication rate. According to some embodiments of this disclosure, the source data center 102 can prioritize bandwidth allocation to higher-priority replication sessions based on order to meet RPO. This prioritizes the replication of important data, minimizes data replication loss, and enhances overall data protection.
[0046] Figure 3A flowchart illustrating replication bandwidth allocation according to some embodiments of this disclosure is shown. The adaptive replication bandwidth allocation method 300 implemented by this disclosure can prioritize sessions based on various factors so that higher-priority replication sessions complete as much data replication as possible, while potential RPO loss occurs in lower-priority replication sessions. In embodiments of this disclosure, replication sessions can copy critical data from the primary storage device to remote devices or replica sites located in different geographical locations. When the primary site or primary storage device fails or data is lost, the replica site can quickly take over, ensuring uninterrupted service.
[0047] The process can begin at box 302. According to embodiments of this disclosure, the inspection process can be a periodic operation used to check the progress, status, and synchronization requirements of all current replication sessions in the replication system.
[0048] At box 304, the status of all replication sessions can be obtained, such as checking the current status of all replication sessions to identify which replication sessions are currently synchronizing, which are in a waiting state, or are about to enter the synchronization phase. In some embodiments, for each asynchronous replication session, when a new replication cycle begins, it copies the difference data generated in the previous cycle to the remote. All sessions that are synchronizing or about to synchronize share the same replication link, which may limit the maximum replication bandwidth for all sessions.
[0049] As an example, Total_Replication_BW, representing the total bandwidth requirement for all replication sessions, could be...
[0050]
[0051] Among them, Replication_BW i This is the bandwidth required for the i-th replication session. Replication_Link_BW is the maximum bandwidth of the entire replication link between the source and remote sites (assuming this is a dedicated replication network). N is the total number of replication sessions.
[0052] At box 306, you can filter all sessions that are currently synchronizing and those that are about to begin synchronizing at the current inspection time. In some embodiments, you can filter from all sessions to identify those that are currently synchronizing and those that are scheduled to synchronize at the current time.
[0053] At box 308, the total replication bandwidth required for all synchronization sessions without losing the RPO can be calculated. In some embodiments, the bandwidth required for each session that needs to be synchronized can be calculated, and it can be ensured that these sessions complete replication while meeting the RPO requirements. The RPO limit means that the data for each session should be synchronized within a specified time, therefore the bandwidth allocation should meet the specified time requirements.
[0054] As an example, the bandwidth Replication_BW required by the i-th replication session without losing RPO is... i It can be represented as:
[0055]
[0056] The amount of data to be copied at the beginning of the replication cycle is Data_to_Replicate. i Replication_Duration i The time required to complete the replication for the i-th replication session.
[0057] In some embodiments, the initial bandwidth of each replication session at the start of a replication cycle can be expressed as:
[0058]
[0059] RPO i Let be the recovery point target for the i-th session, representing the maximum allowable time for data loss (e.g., minutes or hours).
[0060] In some embodiments, the bandwidth of each replication session after the replication cycle begins can be expressed as:
[0061]
[0062] Left_Data_to_Replicate i Left_Sync_Time represents the amount of data that has not yet been replicated to the remote site. i This is the remaining synchronization time.
[0063] Therefore, the total replication bandwidth Total_Replication_BW for all sessions can be expressed as:
[0064]
[0065] At box 310, it can be determined whether the required total bandwidth Total_Replication_BW is greater than the replication link bandwidth. In some embodiments, if the required total bandwidth Total_Replication_BW is less than or equal to the replication link bandwidth Replication_Link_BW (Total_Replication_BW≤Replication_Link_BW), it means that the replication link can replicate all session data without losing RPO.
[0066] According to an embodiment of this disclosure, at block 318, for each session, the bandwidth required to copy the remaining differential data within the current period without losing RPO can be obtained, and the bandwidth is set to the rate at which the session copies data before the next check.
[0067] In some embodiments, if the required total bandwidth Total_Replication_BW is greater than the replication link bandwidth Replication_Link_BW (Total_Replication_BW > Replication_Link_BW), it indicates that some sessions may not be able to replicate their difference data within the RPO time length.
[0068] In box 312, you can organize or sort the replication sessions. For example, you can sort them based on priority, urgency (i.e., how long the session is away from the RPO target) or other business-related priorities.
[0069] Specifically, the sessions can be sorted before allocating replication bandwidth to all replication sessions. According to embodiments of this disclosure, six sub-scores can be determined for each synchronization session or session about to be synchronized.
[0070] For example, in some embodiments, sub-score 1 can be a user-defined priority. For instance, a user can set their expected priority for all sessions. This can be high, medium, or low. A higher priority indicates that the user expects better data protection and a lower likelihood of losing their RPO. For example, sub-score 1 can be represented as...
[0071]
[0072] In some embodiments, sub-score 2 can be a difference data priority. For example, in some embodiments, all synchronization sessions or replication sessions about to be synchronized are sorted from least to most initial difference data for the current replication cycle. The session with the least difference data will have sort ID 1, the next replication session with more difference data will have sort ID 2, and so on. Replication sessions with the same difference data will have the same sort.
[0073] For example, the sub-score2 can be represented as
[0074] score2 = log(rank) i )+1,i=1,2,...,N (7)
[0075] Where N is the number of sessions.
[0076] In some embodiments, sub-score 3 can be a data change rate priority. During data replication, the host or primary site can write new data to the source volume, forming the difference data to be replicated in the next replication cycle. In some embodiments, sessions with higher write bandwidth in the source volume can have a higher priority to complete the current replication cycle, so that the large amount of difference to be replicated in the next cycle can be replicated without delay.
[0077] According to embodiments of this disclosure, all synchronization sessions or sessions about to be synchronized can be sorted from low to high based on the average write IO rate during the current replication cycle. The session with the lowest average write IO rate is sorted as ID 1, the next session with a higher write IO rate is sorted as ID 2, and so on. Sessions with the same host IO rate are sorted in the same way.
[0078] For example, the sub-score 3 can be represented as
[0079] score3 = log(rank) i )+1,i=1,2,...,N (8)
[0080] In some embodiments, sub-score 4 can be replication progress priority. According to embodiments of this disclosure, different replication sessions can have different replication start times, and therefore, sessions can have different replication progress when acquiring session status and calculating replication bandwidth allocation. Some sessions may have just begun their new replication cycle, while others are about to complete their current cycle. Sessions about to complete their current cycle will have a higher priority in bandwidth allocation.
[0081] Sort all synchronizing sessions or sessions about to be synchronized from lowest to highest replication progress in the current replication cycle. The session with the lowest replication progress is assigned ID 1, the next session with higher progress is assigned ID 2, and so on. Sessions with the same replication progress will have the same order.
[0082] For example, the sub-score 4 can be represented as
[0083] score4 = log(rank) i )+1,i=1,2,...,N (9)
[0084] In some embodiments, sub-score 5 can be the start time of the current replication cycle or the replication session start time priority. In some embodiments, sessions that start the current replication cycle earlier may have higher priority in bandwidth allocation. This can prevent resource shortages for sessions that start earlier but score lower in other aspects.
[0085] For example, all synchronization sessions or sessions about to be synchronized can be sorted by the start time of the current replication cycle. The session with the latest start time is sorted as ID 1, the next session with an earlier start time is sorted as ID 2, and so on. Sessions with the same start time are sorted the same.
[0086] For example, the sub-score 5 can be represented as
[0087] score5 = log(rank) i )+1,i=1,2,...,N (10)
[0088] In some embodiments, sub-score 6 may be the lost RPO count or RPO priority for the current replication cycle.
[0089] According to embodiments of this disclosure, lower-ranked sessions have lower replication bandwidth and are expected to lose RPOs, but should not lose them indefinitely. Therefore, if a session with lower replication bandwidth is selected, it can be allocated bandwidth with higher priority to complete replication in the next cycle once an RPO is lost. When it completes data replication, its lost RPO count can be reset to 0.
[0090] This prevents low-priority sessions from failing to complete replication tasks for extended periods (failing to meet the Rate of Return (RPO)). By dynamically adjusting priorities, it can be ensured that these sessions, even if their RPO is not met, can obtain bandwidth resources in a timely manner in the next replication cycle to complete data synchronization.
[0091] In some embodiments, all synchronization sessions or sessions about to be synchronized can be sorted in ascending order of the lost RPO count for the current replication cycle. The session with the lowest lost RPO count is sorted as ID 1, the next session with a higher lost RPO count is sorted as ID 2, and so on. Sessions with the same lost RPO count will have the same sorting.
[0092] For example, the sub-score 6 can be represented as
[0093]
[0094] According to embodiments of this disclosure, the product of these six scores can be calculated as the total score for each session, and then the sessions are sorted in descending order of the total score. Replication bandwidth allocation will depend on this order.
[0095] For example, the total score of the i-th replication session (Total_Score) i It can be represented as:
[0096] Total_Score i =Score1*Score2*Score3*Score4*Score5*Score6 (12)
[0097] In some embodiments, sessions with the same total score can be sorted by sub-scores. For example, the order of sub-score sorting could be score 3, score 1, score 5, score 4, score 2.
[0098] According to embodiments of this disclosure, the first sub-score compared can be score 3. Sessions with a higher score of 3 will receive priority access to more bandwidth. If scores of 3 are the same, the comparison will continue to score 1, and so on.
[0099] Finally, if the scores are still the same, the session RPO will be compared. The session with the smaller RPO will have higher priority. If the sessions have the same RPO, they will have the same priority and share bandwidth on an average basis.
[0100] At box 314, bandwidth can be calculated and allocated. For example, bandwidth can be recalculated and allocated for each session based on the sorting results. In some embodiments, more urgent sessions can be prioritized to avoid losing RPO. Specific steps regarding allocation will be described in [reference needed]. Figure 4 Please provide a detailed explanation.
[0101] At box 316, new replication bandwidth can be set for these replication sessions. For example, in some embodiments, new bandwidth is allocated to these sessions based on calculations, thereby ensuring that high-priority sessions receive sufficient bandwidth resources. At box 320, the next check can be waited for. Once the new bandwidth allocation is complete, the next check cycle can be waited for again to reassess synchronization needs.
[0102] Figure 4 This diagram illustrates the replication bandwidth allocation process 400 for sorted replication sessions. At each checkpoint j, if no loss of RPO occurs, the total replication bandwidth Total_Replication_BW can be calculated. j (Refer to formula (5)). If the total replication bandwidth is Total_Replication_BW jIf the bandwidth is greater than the replication link bandwidth (Replication_Link_BW), it means that these sessions require more bandwidth than the replication link bandwidth to replicate data without losing the Recovery Point Objective (RPO). In other words, some sessions may not be able to complete data replication within the RPO time.
[0103] This situation arises when some sessions have too much changed data that needs to be replicated within the RPO timeframe. If all sessions share replication bandwidth equally, these sessions may not be able to complete data replication within their RPO timeframe, resulting in a lost RPO. Therefore, replication bandwidth can be allocated according to the order of session scores, and the bandwidth can be set to the rate at which data is replicated before the next check.
[0104] At box 402, the allocation process can begin. At box 404, sessions can be iterated over, sorted in descending order by total score. At box 406, the total bandwidth can be set as the replication link bandwidth. At box 408, it can be determined whether the replication bandwidth of sessions without lost RPO is less than the total bandwidth.
[0105] For example, starting with the session with the highest total score, if its required replication bandwidth (calculated according to formula (4)) without losing RPO is less than the maximum allocable bandwidth, at box 418, its replication bandwidth for the next check interval can be set to that value. Meanwhile, at box 420, the bandwidth allocated to this session is subtracted from the maximum allocable replication bandwidth. At box 422, the process can switch to the next session, and then repeat the above steps until all sessions have been traversed at box 424, ending at box 426.
[0106] In some embodiments, if the replication bandwidth required to achieve an RPO without losing the maximum allocable replication bandwidth is greater than the maximum allocable replication bandwidth, the bandwidth expected by the session cannot be allocated. Subsequent sessions starting from this session may experience RPO loss. Taking into account the priority determined by their total score, the remaining allocable replication bandwidth can be allocated among these sessions proportionally according to their ranking.
[0107] For example, in box 410, each session sorting ID can be assigned in reverse order from the current session to the last session, starting from 1. In box 412, the sum of the sorting IDs for all sessions can be calculated. In box 414, the replication bandwidth is determined as session sorting ID / sum of all session sorting IDs * total bandwidth. In box 416, the new bandwidth is set for the session, thus allocating new replication bandwidth to the current session. In box 422, the process can switch to the next session and repeat the above steps until all sessions have been traversed in box 424, ending in box 426.
[0108] For example, specifically, in one embodiment, there can be 5 sessions S1, S2, S3, S4, and S5. When sorted in descending order of total score, their order can be S3, S2, S5, S4, and S1. The bandwidth for each session to copy the remaining differential data without losing RPO is B3, B2, B5, B5, and B1, respectively.
[0109] After allocating bandwidth B3 to session S3 and B2 to session S2, the remaining available bandwidth BW available Insufficient for session S5. Therefore, for sessions S5, S4, and S1, they are assigned sort IDs starting from 1 in reverse order (i.e., S1: 1, S4: 2, S5: 3). For example, in some embodiments, the replication bandwidth allocation can be S1: 1 / 6 * BW. available S4: 2 / 6*BW available S5: 3 / 6*BW available .
[0110] Additionally or alternatively, in some embodiments, if the total replication bandwidth Total_Replication_BW j If the replication link bandwidth is less than or equal to the replication link bandwidth (Replication_Link_BW), it means that the replication link bandwidth is sufficient for all sessions to replicate data without losing the Replication Point Objective (RPO). In this case, the replication rate of the session can be updated using the replication rate required for the session to complete the remaining difference data within the remaining replication time (calculated by formula (4)).
[0111] According to embodiments of this disclosure, the efficiency of the implementation of this disclosure can be evaluated using multiple evaluation parameters. In some embodiments, evaluation parameter 1 may be the percentage reduction in lost RPO, which can be expressed as...
[0112]
[0113] It represents the percentage reduction in the lost RPO window between the previous method and the method implemented in this disclosure during the testing period. The higher the value, the less lost RPO window.
[0114] In some embodiments, evaluation parameter 2 can be the percentage reduction in cumulative host I / O, which can be expressed as:
[0115]
[0116] It represents the percentage reduction in cumulative front-end host I / O between the method implemented in this disclosure and the method prior to the test period. The higher the value, the less cumulative host I / O needs to be tracked and replicated in the next RPO window.
[0117] In some embodiments, evaluation parameter 3 can be the percentage increase in synchronized data, which can be expressed as:
[0118]
[0119] It represents the percentage increase in the amount of synchronized data between the previous method and the method implemented in this disclosure during the testing period. The higher the value, the more data is synchronized.
[0120] In some embodiments, evaluation parameter 4 can be the percentage increase in synchronization bandwidth utilization, which can be expressed as:
[0121]
[0122] It represents the percentage increase in replication bandwidth utilization between the previous method and the method implemented in this disclosure during the testing period. The higher the value, the higher the replication bandwidth utilization.
[0123] In some embodiments, evaluation parameter 5 can be the percentage increase in the number of synchronization rounds, which can be expressed as:
[0124]
[0125] It represents the percentage increase in the number of synchronization rounds between the previous method and the method implemented in this disclosure during the testing period. The higher the value, the more replication synchronization rounds are completed.
[0126] According to embodiments of this disclosure Figures 5 to 9 This illustrates a scenario where the total bandwidth required for the session exceeds the link bandwidth. Figure 5 The illustration shows experimental results 500 regarding the total loss RPO according to an embodiment of this disclosure. In the following experimental scenario, the experimental parameters can be 1000 replication sessions, a replication RPO of 5 minutes, a duration of 120 minutes, and the allocated total bandwidth can be greater than / less than / equal to the replication link bandwidth.
[0127] like Figure 5 As shown, in scenarios where the total session bandwidth requirement exceeds the link bandwidth, method 504 implemented according to this disclosure has a lower RPO (Recovery Point Error) for data loss, while the previous method 205 has a higher RPO for data loss over time. The lower the RPO for data loss, the less pressure the system faces in handling RPO events, and the smaller the time window for data loss.
[0128] Figure 6 The illustration shows experimental results 600 regarding total synchronization data according to an embodiment of the present disclosure. This is used to explore total synchronization data. Figure 6 In this case, the total session bandwidth required 602 is greater than the replication link bandwidth 604. The total synchronization data 606 of the adaptive method implemented in this disclosure is always greater than that of the previous method 608, and it gets closer to the link bandwidth over time. The more data replicated, the less data will be lost in the event of a disaster.
[0129] Figure 7 The illustration shows experimental results 700 regarding total bandwidth according to an embodiment of this disclosure. Total bandwidth usage measures the replication link bandwidth used by the replication session. The adaptive replication bandwidth 702 implemented according to this disclosure uses bandwidth almost equal to the replication link bandwidth, but the fixed replication bandwidth 704 has some issues with its bandwidth usage, and the usage drops to zero. Therefore, the closer to the link bandwidth, the higher the bandwidth usage.
[0130] Figure 8 The illustration shows experimental results 800 regarding the total number of synchronization rounds according to an embodiment of the present disclosure. In this total number of synchronization rounds diagram, the adaptive number of synchronization rounds 802 implemented according to the present disclosure is always higher than that of the fixed method 804. The more cycles that are synchronized, the more consistent the data will be, and the more consistent the data recovery will be in the event of a disaster.
[0131] Figure 9 The illustration shows experimental results 900 regarding the total host I / O on the source site according to an embodiment of the present disclosure. The host I / O total data implemented by the adaptive method 904 according to an embodiment of the present disclosure is smoother and more controllable than that of the fixed method 902, and the average value on the timeline is lower than that of the fixed method 902. The smoother, more controllable line indicates that fewer resources can be used to track and replicate the cumulative host I / O for the next RPO window without failure.
[0132] Figures 10 to 14 This illustrates the case where the total bandwidth required for the session is less than the link bandwidth. Figure 10 The illustration shows another experimental result 1000 regarding the total lost RPO according to an embodiment of the present disclosure. The adaptive method implemented according to the present disclosure is equivalent to the fixed method 1002, with no lost RPO on the timeline. They exhibit consistent performance in this situation without any degradation.
[0133] Figure 11 The illustration shows another experimental result 1100 regarding the total synchronization data according to an embodiment of the present disclosure. The total synchronization data of the adaptive method 1102 implemented according to the present disclosure is almost equal to that of the fixed method 1104. Both exhibit consistent performance in this situation without any degradation. Figure 12 The illustration shows another experimental result 1200 regarding the total bandwidth according to an embodiment of the present disclosure. The adaptive method 1202 implemented according to the present disclosure uses less bandwidth than the replication link bandwidth, but the bandwidth used by method 1204 has some problems; it drops to zero usage and uses almost only the total replication link bandwidth of the timeline, while the actual bandwidth required by the session is less than the replication link bandwidth. Therefore, the adaptive replication bandwidth method implemented according to the present disclosure will free up more idle bandwidth for system use.
[0134] Figure 13The illustration shows another experimental result 1300 regarding the total number of synchronization rounds according to an embodiment of the present disclosure. In this diagram of the total number of synchronization rounds, the number of synchronization rounds for the adaptive method 1302 implemented according to the present disclosure is equal to that for the fixed method 1304 on the timeline (there may be some lag due to the purpose of freeing up more idle bandwidth in the new solution). They exhibit consistent performance in this situation without any degradation.
[0135] Figure 14 The illustration shows another experimental result 1400 regarding the total amount of front-end host I / O on the source site according to an embodiment of the present disclosure. The total cumulative host I / O data of the adaptive method implemented according to an embodiment of the present disclosure is equal to that of the fixed method 1402, and they have consistent performance for this scenario without any degradation.
[0136] Figures 15 to 19 This shows the case where the total bandwidth required for the session equals the link bandwidth. Figure 15 The illustration shows another experimental result 1000 regarding the total lost RPO according to an embodiment of the present disclosure. Compared to the fixed RPO method 1502, which has a large number of lost RPOs on the timeline, the adaptive replication bandwidth method 1504 implemented according to an embodiment of the present disclosure has no lost RPOs because in some cases, link bandwidth with some idle time slots cannot be fully utilized, resulting in some sessions having lost RPO events. The fewer the lost RPOs, the less pressure the system needs to handle lost RPO events, and the smaller the time window for data loss.
[0137] Figure 16 The illustration shows another experimental result 1600 regarding total synchronization data according to an embodiment of the present disclosure. The total synchronization data of the adaptive replication bandwidth method 1602 implemented according to an embodiment of the present disclosure is always greater than that of the fixed replication bandwidth method 1604 and is closer to the link bandwidth on the timeline. The more data is replicated, the less data is lost in a disaster event.
[0138] Figure 17 The illustration shows another experimental result 1700 regarding total bandwidth according to an embodiment of the present disclosure. The total bandwidth utilization of the replication session is measured using the bandwidth of the replication link. The adaptive method 1702 implemented according to an embodiment of the present disclosure uses bandwidth almost equal to the replication link bandwidth, but the fixed replication bandwidth method 1704 has some problems, as its bandwidth usage drops to zero. Therefore, the closer the bandwidth is to the link bandwidth, the higher the bandwidth utilization.
[0139] Figure 18The illustration shows another experimental result 1800 regarding the total number of synchronization rounds according to an embodiment of the present disclosure. In this full synchronization round number diagram, the number of synchronization rounds for the adaptive method 1802 implemented according to an embodiment of the present disclosure is always higher than that for the fixed replication bandwidth method 1804. The more cycles that are synchronized, the more consistent the data will be, and the more consistent the data recovery will be in the event of a disaster.
[0140] Figure 19 The illustration shows another experimental result 1900 regarding the total amount of front-end host I / O on the source site according to an embodiment of the present disclosure. The total cumulative host I / O data of the adaptive method 1904 implemented according to an embodiment of the present disclosure is almost equal to that of the fixed replication bandwidth method 1902, and they exhibit consistent performance for this scenario without any degradation.
[0141] Based on the above experimental data, the following table can be determined.
[0142]
[0143] The above data confirms that, overall, the adaptive replication bandwidth solution implemented according to some embodiments of this disclosure exhibits consistently positive performance improvements across various replication performance metrics. The method implemented according to embodiments of this disclosure shows a 100.00% improvement in reducing the number of lost RPO events; an 18.97% improvement in reducing cumulative host I / O within the RPO window; a 28.02% improvement in increasing the amount of synchronized data; and a 30.60% improvement in synchronization bandwidth utilization.
[0144] The method implemented according to embodiments of this disclosure represents a 27.95% improvement in increasing the number of synchronization rounds. Generally, the method implemented according to embodiments of this disclosure can provide a solution for guaranteeing services for critical replication operations. Providing the proactive ability to adaptively set replication bandwidth at each replicated storage object will ensure maximum consistency of their critical replicated data throughout their lifecycle. Furthermore, it expands the scope of a service provider's ability to set adaptive protection rules on storage objects based on the content consumed. This will also ensure the reception of expected performance.
[0145] Finally, as the need for data protection in cloud services grows, replication becomes more important, and the methods implemented according to embodiments of this disclosure can provide protection as a service. The methods implemented according to embodiments of this disclosure allow for the management and control of performance predictability and consistency within devices.
[0146] Figure 20 A schematic block diagram of an example device 2000 that can be used to implement embodiments of the present disclosure is shown. Figure 1The terminal device in the diagram can be implemented using device 2000. As shown, device 2000 includes a central processing unit (CPU) 2001, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 2002 or loaded from storage unit 2008 into random access memory (RAM) 2003. RAM 2003 can also store various programs and data required for the operation of device 2000. CPU 2001, ROM 2002, and RAM 2003 are interconnected via bus 2004. Input / output (I / O) interface 2005 is also connected to bus 2004.
[0147] Multiple components in device 2000 are connected to I / O interface 2005, including: input unit 2006, such as keyboard, mouse, etc.; output unit 20020, such as various types of monitors, speakers, etc.; storage page 2008, such as disk, optical disk, etc.; and communication unit 2009, such as network card, modem, wireless communication transceiver, etc. Communication unit 2009 allows device 2000 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0148] The various processes and handling described above, such as method 200, can be executed by processing unit 2001. For example, in some embodiments, method 200 can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 2008. In some embodiments, part or all of the computer program can be loaded and / or installed on device 2000 via ROM 2002 and / or communication unit 2009. When the computer program is loaded into RAM 2003 and executed by CPU 2001, one or more actions of method 200 described above can be performed.
[0149] This disclosure can be a method, apparatus, system, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.
[0150] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0151] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0152] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status 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++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving 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., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.
[0153] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0154] 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 apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0155] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be 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 perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0156] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0157] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical applications, or technical improvements to the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for data replication, comprising: The total replication bandwidth is determined based on multiple replication sessions, wherein the multiple replication sessions are used to replicate data; Compare the total replication bandwidth with the replication link bandwidth; In response to the total replication bandwidth being greater than the replication link bandwidth, the multiple replication sessions are prioritized based on one or more of the following: user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority. as well as The data replication is performed based on the ordered plurality of replication sessions.
2. The method of claim 1, wherein prioritizing the plurality of replication sessions comprises: The multiple replication sessions are prioritized and scored based on user-defined priorities; The user-defined priority includes at least a first user-defined priority, a second user-defined priority, and a third user-defined priority; The replication session with the first user-defined priority has a higher first user-defined priority score than the replication session with the second user-defined priority. and The user-defined priority score of a replication session with the second user-defined priority is higher than that of a replication session with the third user-defined priority.
3. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The multiple replication sessions are prioritized and scored based on the difference data priority. The difference data refers to the portion of data that changes in the plurality of replication sessions relative to the previous replication cycle during the data replication process, and the difference data priority includes at least a first difference data priority and a second difference data priority. The difference data of the plurality of replication sessions having the first difference data priority is less than the difference data of the plurality of replication sessions having the second difference data priority; and The difference data priority score of the plurality of replication sessions having the first difference data priority is less than the difference data priority score of the plurality of replication sessions having the second difference data priority.
4. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The multiple replication sessions are prioritized and scored based on data change rate priority. The data change rate represents the data write rate in the data replication, and the data change rate priority includes at least a first data change rate priority and a second data change rate priority. The data write rate of the plurality of replication sessions having the first data change rate priority is less than the data write rate of the plurality of replication sessions having the second data change rate priority; and The data change rate priority score of the plurality of replication sessions having the first data change rate priority is lower than the data change rate priority score of the plurality of replication sessions having the second data change rate priority.
5. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The multiple replication sessions are prioritized and scored based on replication progress priority. The replication progress represents the degree of completion in the data replication process, and the replication progress priority includes at least a first replication progress priority and a second replication progress priority. The data replication completion rate of the plurality of replication sessions with the first replication progress priority is less than that of the plurality of replication sessions with the second replication progress priority; and The replication progress priority score of the plurality of replication sessions having the first replication progress priority is less than the replication progress priority score of the plurality of replication sessions having the second replication progress priority.
6. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The multiple replication sessions are prioritized and scored based on their replication session start time priority. Wherein the replication session start time represents the time when replication begins in the data replication, and the multiple replication session start time priorities include at least the first replication session start time priority and the second replication session start time priority; The replication session start time of the plurality of replication sessions having the first replication session start time priority is later than the replication session start time of the plurality of replication sessions having the second replication session start time priority; and The replication session start time priority score of the plurality of replication sessions having the first replication session start time priority is less than the replication session start time priority score of the plurality of replication sessions having the second replication session start time priority.
7. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The multiple replication sessions are prioritized and scored based on the Lost Recovery Point Objective (RPO) priority. Wherein the Loss RPO represents the maximum time window during the data replication process that allows for data loss, and the Loss RPO priority includes at least a first Loss RPO priority and a second Loss RPO priority; The lost RPO count of the plurality of replication sessions having the first lost RPO priority is less than the lost RPO count of the plurality of replication sessions having the second lost RPO priority. and The lost RPO priority score of the plurality of replication sessions having the first lost RPO priority is less than the lost RPO priority score of the plurality of replication sessions having the second lost RPO priority.
8. The method of claim 1, wherein prioritizing the plurality of replication sessions further comprises: The total priority score for the plurality of replication sessions is determined based on one or more of the following: user-defined priority score, differential data priority score, data change rate priority score, replication progress priority score, replication session start time priority score, and lost RPO priority score.
9. The method according to claim 8, further comprising: In response to the total replication bandwidth being greater than the replication link bandwidth, the plurality of replication sessions are sorted in descending order based on the total priority score; as well as The replication link bandwidth is allocated based on the ranking of each of the plurality of replication sessions in descending order.
10. An electronic device, comprising: At least one processor; as well as A memory, coupled to at least one processor and having instructions stored thereon, the instructions causing the electronic device to perform actions when executed by the at least one processor, the actions including: The total replication bandwidth is determined based on multiple replication sessions, wherein the multiple replication sessions are used to replicate data; Compare the total replication bandwidth with the replication link bandwidth; In response to the total replication bandwidth being greater than the replication link bandwidth, the plurality of replication sessions are prioritized based on one or more of the following: user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority; and The data replication is performed based on the ordered plurality of replication sessions.
11. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions comprises: The multiple replication sessions are prioritized and scored based on user-defined priorities; The user-defined priority includes at least a first user-defined priority, a second user-defined priority, and a third user-defined priority; The replication session with the first user-defined priority has a higher first user-defined priority score than the replication session with the second user-defined priority. and The user-defined priority score of a replication session with the second user-defined priority is higher than that of a replication session with the third user-defined priority.
12. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The multiple replication sessions are prioritized and scored based on the difference data priority. The difference data refers to the portion of data that changes in the plurality of replication sessions relative to the previous replication cycle during the data replication process, and the difference data priority includes at least a first difference data priority and a second difference data priority. The difference data of the plurality of replication sessions having the first difference data priority is less than the difference data of the plurality of replication sessions having the second difference data priority; and The difference data priority score of the plurality of replication sessions having the first difference data priority is less than the difference data priority score of the plurality of replication sessions having the second difference data priority.
13. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The multiple replication sessions are prioritized and scored based on data change rate priority. The data change rate represents the data write rate in the data replication, and the data change rate priority includes at least a first data change rate priority and a second data change rate priority. The data write rate of the plurality of replication sessions having the first data change rate priority is less than the data write rate of the plurality of replication sessions having the second data change rate priority; and The data change rate priority score of the plurality of replication sessions having the first data change rate priority is lower than the data change rate priority score of the plurality of replication sessions having the second data change rate priority.
14. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The multiple replication sessions are prioritized and scored based on replication progress priority. The replication progress represents the degree of completion in the data replication process, and the replication progress priority includes at least a first replication progress priority and a second replication progress priority. The data replication completion rate of the plurality of replication sessions with the first replication progress priority is less than that of the plurality of replication sessions with the second replication progress priority; and The replication progress priority score of the plurality of replication sessions having the first replication progress priority is less than the replication progress priority score of the plurality of replication sessions having the second replication progress priority.
15. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The multiple replication sessions are prioritized and scored based on their replication session start time priority. Wherein the replication session start time represents the time when replication begins in the data replication, and the multiple replication session start time priorities include at least the first replication session start time priority and the second replication session start time priority; The replication session start time of the plurality of replication sessions having the first replication session start time priority is later than the replication session start time of the plurality of replication sessions having the second replication session start time priority; and The replication session start time priority score of the plurality of replication sessions having the first replication session start time priority is less than the replication session start time priority score of the plurality of replication sessions having the second replication session start time priority.
16. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The multiple replication sessions are prioritized and scored based on the Lost Recovery Point Objective (RPO) priority. Wherein the Loss RPO represents the maximum time window during the data replication process that allows for data loss, and the Loss RPO priority includes at least a first Loss RPO priority and a second Loss RPO priority; The lost RPO count of the plurality of replication sessions having the first lost RPO priority is less than the lost RPO count of the plurality of replication sessions having the second lost RPO priority. and The lost RPO priority score of the plurality of replication sessions having the first lost RPO priority is less than the lost RPO priority score of the plurality of replication sessions having the second lost RPO priority.
17. The electronic device of claim 10, wherein prioritizing the plurality of copy sessions further comprises: The total priority score for the plurality of replication sessions is determined based on one or more of the following: user-defined priority score, differential data priority score, data change rate priority score, replication progress priority score, replication session start time priority score, and lost RPO priority score.
18. The electronic device of claim 17, further comprising: In response to the total replication bandwidth being greater than the replication link bandwidth, the plurality of replication sessions are sorted in descending order based on the total priority score; as well as The replication link bandwidth is allocated based on the ranking of each of the plurality of replication sessions in descending order.
19. A computer program product tangibly stored on a computer-readable medium and comprising computer-executable instructions, which, when executed by a device, cause the device to perform a method, the method comprising: The total replication bandwidth is determined based on multiple replication sessions, wherein the multiple replication sessions are used to replicate data; Compare the total replication bandwidth with the replication link bandwidth; In response to the total replication bandwidth being greater than the replication link bandwidth, the multiple replication sessions are prioritized based on one or more of the following: user-defined priority, differential data priority, data change rate priority, replication progress priority, replication session start time priority, and Loss Recovery Point Objective (RPO) priority. as well as Data replication is performed based on the ordered plurality of replication sessions.
20. The computer program product of claim 19, wherein prioritizing the plurality of copy sessions comprises: The multiple replication sessions are prioritized and scored based on user-defined priorities; The user-defined priority includes at least a first user-defined priority, a second user-defined priority, and a third user-defined priority; The replication session with the first user-defined priority has a higher first user-defined priority score than the replication session with the second user-defined priority. and The user-defined priority score of a replication session with the second user-defined priority is higher than that of a replication session with the third user-defined priority.