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 |
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.
|