Patent ID: 7921258

Claim:
At least one non-transitory computer-readable medium having computer-executable instructions, which when executed perform steps, comprising: maintaining backup data that corresponds to preserved data for a contents of a storage device, wherein the preserved data corresponds to a first state; receiving a write request directed towards changing the contents of the storage device; filtering the write request to distinguish the write request from among other write requests that are not written as backup change data, including performance caching write data that is excluded from being written as backup change data as a result of said filtering; writing backup change data corresponding to the write request to a nonvolatile storage that is separate from the storage device, while allowing the write request to proceed to change the contents of the storage device to a second state; and restoring a receiving storage device to correspond to the storage device in the second state, including by reading the backup change data in the nonvolatile storage and reading the maintained backup data; wherein a performance cache is maintained on the nonvolatile storage and a change backup section of the nonvolatile storage maintains the backup change data, wherein if it is determined that the change backup section has insufficient space for the write request to be backed up as a change in the change backup section, a size of the performance cache is shrunk and a size of the change backup section is grown to accommodate the write request.