Patent ID: 7975115

Claim:
A method of managing snapshot data in a storage controller, comprising: at a first point-in-time, receiving a command to create a snapshot, wherein the entire snapshot is created directly from a master volume, wherein creating the snapshot comprises: allocating a first set of memory addresses for storage of preserved data in association with the snapshot, the preserved data initially comprising data of the master volume at the first point-in-time, wherein the preserved data is only directly writeable by the storage controller and not by a host, wherein the first set of memory addresses are alterable by a copy on write operation; and allocating a second set of memory addresses for storage of write data in association with the snapshot, wherein the second set of memory addresses are host writeable receiving a command to write data to the snapshot; determining whether the command is controller initiated or host initiated; in the event that the write command is controller initiated, writing data to a block range in the first set of memory addresses; and in the event that the write command is host initiated, writing data to a block range in the second set of memory addresses.