Concurrent remote IO processing for synchronous replication
US-10936451-B2 · Mar 2, 2021 · US
US12061812B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12061812-B2 |
| Application number | US-202218072080-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 30, 2022 |
| Priority date | Nov 30, 2022 |
| Publication date | Aug 13, 2024 |
| Grant date | Aug 13, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Unmap extents transmitted in delta sets are used to unmap LBAs on remote replicas of asynchronously replicated storage objects. A host server sends a SCSI unmap command to a production storage array to unmap a range of logical block addresses. In response, the production storage array creates an unmap extent that identifies the local and remote replicas, starting LBA, and number of LBAs to be unmapped. At the end of each asynchronous replication cycle, unmap extents and updated data are sent to a disaster recovery storage array in a delta set that preserves chronological ordering. The disaster recovery storage array receives the delta set and discards cached data corresponding to the unmapped LBAs indicated in the unmap extents and de-allocates the backend storage space. Integrating unmap extents with updated data in delta sets maintains point-in-time consistency and is more efficient than sending zero data.
Opening claim text (preview).
What is claimed is: 1. A method comprising: a first storage array receiving an unmap command from a host server, wherein the unmap command indicates a range of logical block addresses of a local replica of an asynchronously replicated storage object for which a remote replica exists on a second storage array; and replicating effects of the unmap command on the local replica to the remote replica without sending zero data or the unmap command by: creating, in metadata slots of the first storage array, an unmap extent corresponding to the unmap command, wherein the unmap extent identifies the range of logical block addresses as being free space; and transmitting, with extents of replication data and in at least one delta set with chronological ordering, the unmap extent from the first storage array to the second storage array, prompting replication of the unmap extent in metadata slots of the second storage array, wherein the replication of the unmap extent in the metadata slots of the second storage array unmaps the logical block addresses of the remote replica by identifying the range of logical block addresses as being free space. 2. The method of claim 1 further comprising writing the unmap extent to a metadata slots portion of shared memory allocated for unmap extents. 3. The method of claim 2 further comprising adding the unmap extent and updated cache slot data to a delta set associated with a replication cycle. 4. The method of claim 3 further comprising the first storage array discarding data in cache slots corresponding to the logical block addresses. 5. The method of claim 4 further comprising the second storage array discarding data in cache slots corresponding to the logical block addresses responsive to receipt of the unmap extent. 6. The method of claim 5 further comprising the first storage array de-allocating backend tracks corresponding to the logical block addresses from storage. 7. The method of claim 6 further comprising the second storage array de-allocating backend tracks corresponding to the logical block addresses from storage responsive to receipt of the unmap extent. 8. An apparatus comprising: a first storage array comprising at least one compute node that manages access to a first array of drives, wherein the first storage array is configured to be responsive to receipt of an unmap command from a host server indicating a range of logical block addresses of a local replica of an asynchronously replicated storage object for which a remote replica exists on a second storage array to: create, in metadata slots of the first storage array, an unmap extent corresponding to the unmap command, wherein the unmap extent identifies the range of logical block addresses as being free space; and transmit, with extents of replication data and in at least one delta set with chronological ordering, the unmap extent from the first storage array to the second storage array, prompting replication of the unmap extent in metadata slots of the second storage array, wherein the replication of the unmap extent in the metadata slots of the second storage array unmaps the logical block addresses of the remote replica by identifying the range of logical block addresses as being free space, thereby replicating effects of the unmap command on the local replica to the remote replica without sending zero data or the unmap command. 9. The apparatus of claim 8 further comprising the first storage array configured to write the unmap extent to a metadata slots portion of shared memory allocated for unmap extents. 10. The apparatus of claim 9 further comprising the first storage array configured to add the unmap extent and updated cache slot data to a delta set associated with a replication cycle. 11. The apparatus of claim 10 further comprising the first storage array configured to discard data in cache slots corresponding to the logical block addresses. 12. The apparatus of claim 11 further comprising the second storage array configured to discard data in cache slots corresponding to the logical block addresses responsive to receipt of the unmap extent. 13. The apparatus of claim 12 further comprising the first storage array configured to de-allocate backend tracks corresponding to the logical block addresses from storage. 14. The apparatus of claim 13 further comprising the second storage array configured to de-allocate backend tracks corresponding to the logical block addresses from storage responsive to receipt of the unmap extent. 15. A non-transitory computer-readable storage medium storing instructions that when executed by compute nodes in a storage system perform a method comprising: receiving an unmap command by a first storage array from a host server, wherein the unmap command indicates a range of logical block addresses of a local replica of an asynchronously replicated storage object for which a remote replica exists on a second storage array; and replicating effects of the unmap command on the local replica to the remote replica without sending zero data or the unmap command by: creating, in metadata slots of the first storage array, an unmap extent corresponding to the unmap command, wherein the unmap extent identifies the range of logical block addresses as being free space; and transmitting, with extents of replication data and in at least one delta set with chronological ordering, the unmap extent from the first storage array to the second storage array, prompting replication of the unmap extent in metadata slots of the second storage array, wherein the replication of the unmap extent in metadata slots of the second storage array unmaps the logical block addresses of the remote replica by identifying the range of logical block addresses as being free space. 16. The non-transitory computer-readable storage medium of claim 15 in which the method further comprises writing the unmap extent to a metadata slots portion of shared memory of the first storage array allocated for unmap extents. 17. The non-transitory computer-readable storage medium of claim 16 in which the method further comprises adding the unmap extent and updated cache slot data to a delta set associated with a replication cycle. 18. The non-transitory computer-readable storage medium of claim 17 in which the method further comprises the first storage array discarding data in cache slots corresponding to the logical block addresses. 19. The non-transitory computer-readable storage medium of claim 18 in which the method further comprises the second storage array discarding data in cache slots corresponding to the logical block addresses responsive to receipt of the unmap extent. 20. The non-transitory computer-readable storage medium of claim 19 in which the method further comprises the first storage array de-allocating backend tracks corresponding to the logical block addresses from storage and the second storage array de-allocating backend tracks corresponding to the logical block addresses from storage responsive to receipt of the unmap extent.
by allocating resources to storage systems · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.