Working Principle
This section describes how HyperClone works.
Basic Concepts
Concept |
Description |
---|---|
Redirect-On-Write (ROW) |
When data is changed, the storage system writes new data to a new location and directs the pointer of the modified data block to the new location. Old data serves as the snapshot data. |
Pair |
A source LUN and a target LUN form a clone pair. A pair is a mirror relationship between the source and target LUNs. A source LUN can form multiple clone pairs with different target LUNs, while a target LUN can be added to only one clone pair. |
Synchronization |
This operation copies data from the source LUN to the target LUN. |
Reverse synchronization |
This operation restores data from the target LUN to the source LUN. |
DiffCopy |
This operation copies the differential data between the source and target LUNs. |
Consistency group |
It is a collection of pairs carrying associated services. |
Protected object |
For customers, the protected objects are LUNs or protection groups, such as LUNs or protection groups configured with HyperReplication for data backup and disaster recovery.
How to distinguish a protection group and a LUN group: A LUN group applies to mapping scenarios in which the LUN group can be directly mapped to a host or host group. You can group LUNs for different hosts or applications. A protection group applies to data protection of consistency groups. You can plan data protection policies for different applications and components in the applications. In addition, you can enable the LUNs used by multiple applications in the same protection scenario to be protected in a unified manner. For example, you can group the LUNs to form a LUN group, map the LUN group to a host or host group, and create a protection group for the LUN group to implement unified data protection of the LUNs used by multiple applications in the same protection scenario. |
Overall Principle
HyperClone provides a full copy of the source LUN's data at the synchronization start time. Hosts can read and write the target LUN immediately, without waiting for the copy process to complete. The source and target LUNs are physically isolated, and operations on them will not affect each other. In the event of data corruption on the source LUN, you can restore the data from the target LUN. Writes to the source and target LUNs are recorded in the differential bitmap, which will be used for incremental synchronization. The following parts describe how HyperClone synchronizes and restores data, and processes read and write operations.
Synchronization
When a clone pair starts synchronization, the storage system generates an instant snapshot for the source LUN, and then synchronizes the snapshot data to the target LUN. Any subsequent write operations are recorded in a differential bitmap. When synchronization is performed again, the system checks the differential bitmap and only synchronizes the differential data to the target LUN.
The data written to the target LUN between two synchronizations will be overwritten. To retain the existing data on the target LUN, you can create a snapshot for it before synchronization.
Figure 1-1 illustrates the synchronization principle.
Reverse Synchronization
If the source LUN is damaged, data on the target LUN can be reversely synchronized to the source LUN. Both full and incremental reverse synchronizations are supported. When reverse synchronization starts, the system generates a snapshot for the target LUN and synchronizes the snapshot data to the source LUN. For incremental reverse synchronization, the system compares the data of the source and target LUNs, and only synchronizes the differential data.
Figure 1-2 illustrates the reverse synchronization principle.
Read and Write
Read and write I/Os are processed differently depending on whether HyperClone is synchronizing data.
- When HyperClone is not synchronizing data, the source and target LUNs are independent of each other, and the host reads and writes the source or target LUN directly.
When the HyperClone status is Unsynchronized or Normal, it is not synchronizing data.
Figure 1-3 illustrates the processing of reads and writes when HyperClone is not synchronizing data.
- When HyperClone is synchronizing data:
- The host reads and writes the source LUN directly.
- For read operations on the target LUN, if the requested data is found on the target LUN (the data has been synchronized), the host reads the data from the target LUN. If the requested data is not found on the target LUN (the data has not been synchronized), the host reads the data from the snapshot of the source LUN.
For write operations on the target LUN, if a data block has been synchronized before the new data is written, the system overwrites this block. If a data block has not been synchronized, the system writes the new data to this block and stops synchronizing the source LUN's data to it. This ensures that the target LUN can be read and written before the synchronization is complete.
When the HyperClone status is Synchronizing, Sync paused, FullCopy reverse syncing, DiffCopy reverse syncing, FullCopy reverse paused, or DiffCopy reverse sync paused, it is synchronizing data.
Figure 1-4 illustrates the processing of reads and writes when HyperClone is synchronizing data.