US 11,853,584 B1
Generating volume snapshots
John Colgrove, Los Altos, CA (US); Ethan Miller, Santa Cruz, CA (US); John Hayes, Mountain View, CA (US); Cary Sandvig, San Jose, CA (US); Christopher Golden, Emerald Hills, CA (US); and Jianting Cao, Sunnyvale, CA (US)
Assigned to PURE STORAGE, INC., Santa Clara, CA (US)
Filed by PURE STORAGE, INC., Mountain View, CA (US)
Filed on Sep. 26, 2019, as Appl. No. 16/583,457.
Application 16/583,457 is a continuation of application No. 16/276,451, filed on Feb. 14, 2019, abandoned.
Application 16/276,451 is a continuation of application No. 15/484,243, filed on Apr. 11, 2017, granted, now 10,235,093, issued on Mar. 19, 2019.
Application 15/484,243 is a continuation of application No. 14/046,870, filed on Oct. 4, 2013, granted, now 9,646,039, issued on May 19, 2017.
Claims priority of provisional application 61/751,142, filed on Jan. 10, 2013.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/065 (2013.01) [G06F 3/061 (2013.01); G06F 3/0604 (2013.01); G06F 3/0605 (2013.01); G06F 3/067 (2013.01); G06F 3/0608 (2013.01); G06F 3/0611 (2013.01); G06F 3/0614 (2013.01); G06F 3/0619 (2013.01); G06F 3/0626 (2013.01); G06F 3/0641 (2013.01); G06F 3/0644 (2013.01); G06F 3/0665 (2013.01); G06F 3/0671 (2013.01); G06F 3/0683 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/1032 (2013.01); G06F 2212/1044 (2013.01); G06F 2212/154 (2013.01); G06F 2212/163 (2013.01); G06F 2212/261 (2013.01); G06F 2212/263 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A computer system comprising:
one or more storage devices; and
a storage controller, wherein the storage controller is configured to:
generate a writable second logical grouping of data that references a first logical grouping of data in response to receiving a request to take a snapshot of a logical volume mapped to the first logical grouping of data including recording the first logical grouping of data as underlying the second logical grouping of data;
remap the logical volume from the first logical grouping of data to the second logical grouping of data, wherein write requests targeting the logical volume are directed to the second logical grouping of data;
in response to receiving a write request targeting the logical volume after the logical volume was remapped to the second logical grouping of data;
splitting the second logical grouping of data into a first range and a second range, the second range corresponding to one or more blocks targeted by the write request, including storing an indication for lookups to be performed in the second range; and
perform the write request on the second range of the second logical grouping of data.