Data replication within a flash storage array

US10656864B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10656864-B2
Application numberUS-201414220908-A
CountryUS
Kind codeB2
Filing dateMar 20, 2014
Priority dateMar 20, 2014
Publication dateMay 19, 2020
Grant dateMay 19, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system and method for performing replication using mediums. A snapshot ‘S’ is selected for replication, and the anchor medium ‘M’ of S is identified. The replica storage array ‘R’ to which M is being replicated determines a list of medium extents which are available. R sends this list to an original storage array ‘O’ and O generates a list of medium extents which need to be sent to R. Only those medium extents corresponding to M which R does not already have will be sent from O to R. Also, R can obtain medium extents from other source storage arrays during the replication process.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: a first storage array configured to: responsive to a request to replicate a snapshot of a volume from a first storage array to a second storage array, identify a group of data corresponding to the snapshot; during replication of the group of data from the first storage array to the second storage array, determine that a non-replicated region of the group is a duplicate of a replicated region of the group; and in response to the first storage array determining that the non-replicated region is a duplicate of the replicated region stored on the second storage array, send, from the first storage array to the second storage array, a reference to the non-replicated region instead of sending data for the non-replicated region, the reference including an address where the non-replicated region is stored on the first storage array; maintain a second list of regions which are already stored on the second storage array and which map to a region of the group of data; and a second storage array configured to, responsive to detecting the request to replicate the snapshot of the volume from the first storage array to the second storage array: identify a plurality of regions stored on the second storage array which correspond to groups of data that originated on the first storage array; and send a first list of the plurality of regions to the first storage array; wherein the first storage array is remote from the second storage array. 2. The system as recited in claim 1 , wherein the first storage array is further configured to: receive the first list from the second storage array; for each region of the first list: determine if the region maps to any region of the group of data; and store the region in the second list responsive to determining the region maps to a given region of the group of data. 3. The system as recited in claim 2 , wherein the first storage array is further configured to add a first region to the second list responsive to sending the first region to the second storage array and receiving an acknowledgement from the second storage array that the second storage array has received the first region. 4. The system as recited in claim 3 , wherein the first storage array is further configured to add a second region to the second list responsive to receiving an acknowledgement from the second storage array that the second storage array has received the second region from a third storage array. 5. The system as recited in claim 3 , wherein the first storage array is further configured to generate a third list of duplicate regions of the group of data that are mapped to each other, wherein the third list is generated by traversing a medium mapping table for each region of the group of data. 6. The system as recited in claim 5 , wherein the first storage array is further configured to: maintain a fourth list of mappings, wherein each entry of the fourth list maps a physical location to a region of the group of data that has already been sent to the second storage array; and prior to sending data corresponding to a given physical location to the second storage array, check the fourth list for a match to the given physical location. 7. A method comprising: responsive to a request to replicate a snapshot of a volume from a first storage array to a second storage array: identifying a group of data corresponding to the snapshot; during replication of the group of data from the first storage array to the second storage array, determining that a non-replicated region of the group is a duplicate of a replicated region of the group; in response to the first storage array determining that the non-replicated region is a duplicate of the replicated region stored on the second storage array, sending, from the first storage array to the second storage array, a reference to the non-replicated region instead of sending data for the non-replicated region, the reference including an address where the non-replicated region is stored on the first storage array; identifying a plurality of regions stored on the second storage array which correspond to groups of data that originated on the first storage array; sending a first list of the plurality of regions from the second storage array to the first storage array; maintaining a second list of regions which are already stored on the second storage array and which map to a region of the group of data, wherein the second list is maintained on the first storage array; and wherein the first storage array is remote from the second storage array. 8. The method as recited in claim 7 , further comprising: receiving the first list from the second storage array; for each region of the first list: determining if the region maps to any region of the group of data; and storing the region in the second list responsive to determining the region maps to a given region of the group of data. 9. The method as recited in claim 8 , further comprising adding a first region to the second list responsive to sending the first region to the second storage array and receiving an acknowledgement from the second storage array that the second storage array has received the first region. 10. The method as recited in claim 9 , further comprising adding a second region to the second list responsive to receiving an acknowledgement from the second storage array that the second storage array has received the second region from a third storage array. 11. The method as recited in claim 9 , further comprising generating a third list of duplicate regions of the group of data that are mapped to each other, wherein the third list is generated by traversing a medium mapping table for each region of the group of data. 12. The method as recited in claim 11 , further comprising: maintaining a fourth list of mappings, wherein each entry of the fourth list maps a physical location to a region of the group of data that has already been sent to the second storage array; and prior to sending data corresponding to a given physical location to the second storage array, checking the fourth list for a match to the given physical location. 13. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to: responsive to a request to replicate a snapshot of a volume from a first storage array to a second storage array: identify a group of data corresponding to the snapshot; during replication of the group of data from the first storage array to the second storage array, determine that a non-replicated region of the group is a duplicate of a replicated region of the group; in response to the first storage array determining that the non-replicated region is a duplicate of the replicated region stored on the second storage array, send, from the first storage array to the second storage array, a reference to the non-replicated region instead of sending data for the non-replicated region, the reference including an address where the non-replicated region is stored on the first storage array; identify a plurality of regions stored on the second storage array which correspond to groups of data that originated on the first storage array; send a first list of the plurality of regions from the second storage array to the first storage array; maintain a second list of regions which are already stored on the second storage array and which map to a region of the group of data, wherein the second list is maintained on the first storage array; and wherein the first storage array is remote from the second storage array.

Assignees

Inventors

Classifications

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • Plurality of storage devices · CPC title

  • De-duplication techniques · CPC title

  • G06F3/065Primary

    Replication mechanisms · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10656864B2 cover?
A system and method for performing replication using mediums. A snapshot ‘S’ is selected for replication, and the anchor medium ‘M’ of S is identified. The replica storage array ‘R’ to which M is being replicated determines a list of medium extents which are available. R sends this list to an original storage array ‘O’ and O generates a list of medium extents which need to be sent to R. Only th…
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/065. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 19 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).