Incrementally restoring a mass storage device to a prior state
First Claim
1. In a computer system that includes a mass storage device that stores a plurality of data blocks, a method of updating the data blocks while enabling a previous state of the mass storage device to be accessible, comprising the acts of:
- receiving a write request that is to overwrite an existing data block in the mass storage device with a new data block;
prior to executing the write request, storing a copy of the existing data block in a preservation memory associated with the computer system, wherein the preservation memory includes a sequence of data blocks that have been overwritten in the mass storage device, the sequence of data blocks enabling corrupted data on the mass storage device to be incrementally restored in reverse chronological order;
associating a time stamp with the copy of the data block in the preservation memory; and
executing the write request, such that the existing data block stored in the mass storage device is overwritten with the new data block.
10 Assignments
0 Petitions
Accused Products
Abstract
Restoring a mass storage device, including the corresponding data blocks stored thereon, to a state in which it existed at a prior instant in time to minimize the data loss caused by data blocks becoming corrupt or lost. After a mirrored or backup copy has been made, data blocks that are to be overwritten in response to a write request are stored in a preservation memory prior to being overwritten. The data blocks stored in the preservation memory are time-stamped to designate the chronological order by which the data blocks were overwritten. If data becomes corrupted, the data blocks of the preservation memory are applied to the corrupted data in reverse chronological order until such time that a valid, non-corrupted set of data is obtained. In this manner, data more recent than that associated with the full mirrored or backup copy can be reconstructed.
262 Citations
30 Claims
-
1. In a computer system that includes a mass storage device that stores a plurality of data blocks, a method of updating the data blocks while enabling a previous state of the mass storage device to be accessible, comprising the acts of:
-
receiving a write request that is to overwrite an existing data block in the mass storage device with a new data block;
prior to executing the write request, storing a copy of the existing data block in a preservation memory associated with the computer system, wherein the preservation memory includes a sequence of data blocks that have been overwritten in the mass storage device, the sequence of data blocks enabling corrupted data on the mass storage device to be incrementally restored in reverse chronological order;
associating a time stamp with the copy of the data block in the preservation memory; and
executing the write request, such that the existing data block stored in the mass storage device is overwritten with the new data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer system that includes a mass storage device that stores a plurality of data blocks, a method of restoring the data blocks of the mass storage device to a previous state, comprising the acts of:
-
iteratively performing the acts of;
receiving a write request that is to overwrite an existing data block in the mass storage device with a new data block;
prior to executing the write request, storing a copy of the existing data block in a preservation memory associated with the computer system and associating a time stamp with the copy of the data block in the preservation memory; and
executing the write request, such that the existing data block stored in the mass storage device is overwritten with the new data block;
experiencing a data corruption event whereby at least one of the plurality of data blocks stored in the mass storage device becomes corrupted; and
restoring the data blocks of the mass storage device to a previous state by incrementally applying the copies of the existing data blocks from the preservation memory to the plurality of data blocks of the mass storage device in reverse chronological order until the previous state is obtained. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. In a computer system that includes a mass storage device that stores a plurality of data blocks, a method of establishing a virtual device that enables access to the plurality of data blocks as the data blocks existed at the mass storage device at a previous point in time, comprising the acts of:
-
storing a current version of the plurality of data blocks in the mass storage device;
maintaining, at a preservation memory associated with the computer system, copies of previous versions of data blocks that have since been overwritten at the mass storage device in response to write requests, the previous versions of the data blocks being associated with time stamps specifying a chronological order in which the data blocks were overwritten, wherein the previous versions of the data blocks enable plurality of data blocks in the mass storage device to be restored incrementally in reverse chronological order when a data corruption event occurs; and
providing access to the current version and the copies of the previous version through a virtual device, wherein the virtual device, in response to read request specifying a particular data block as it existed at the previous point in time, determines whether to access the current version of the data block from the mass storage device or the previous version of the data block from the preservation memory. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A computer system that provides access to data blocks as the data blocks existed at a previous point in time, comprising:
-
a mass storage device that stores a plurality of data blocks that can be overwritten in response to a write request;
a preservation memory that receives and stores a copies of the data blocks that are to be overwritten prior to the write request being processed and that associates a time stamp with each said copy of a data block, wherein the copies of the data blocks enable the plurality of data blocks in the mass storage device to be incrementally restored in reverse chronological order when a data corruption event occurs; and
a virtual device that provides access to a current version of the data blocks stored at the mass storage device and the copies of the data blocks at the preservation memory, wherein the virtual device, in response to read request specifying a particular data block as it existed at the previous point in time, determines whether to access a current version of the specified data block from the mass storage device or a copy of the specified data block from the preservation memory. - View Dependent Claims (26, 27, 28, 29)
-
-
30. In a computer system that includes a mass storage device that stores a plurality of data blocks, a method of updating the data blocks while enabling a previous state of the mass storage device to be accessible, comprising the acts of:
-
receiving a write request that is to overwrite an existing data block in the mass storage device with a new data block;
prior to executing the write request, storing a copy of the existing data block in a preservation memory associated with the computer system;
associating a time stamp with the copy of the data block in the preservation memory;
executing the write request, such that the existing data block stored in the mass storage device is overwritten with the new data block;
establishing a virtual device at that appears as if it contained the plurality of data blocks stored at the mass storage device in a state in which the plurality of data blocks existed at a previous point in time; and
receiving, at the virtual device, a read request specifying a requested data block; and
in response to the read request;
if the preservation memory includes a copy of a non-corrupted version of the requested data block that was stored in the preservation memory at or after the previous point in time, processing the read request using the oldest such non-corrupted version of the requested data block stored in the preservation memory; and
if the preservation memory does not include said copy of a non corrupted version of the requested data block that was stored in the preservation memory at or after the previous point in time, processing the read request using a version of the requested data block stored in the mass storage device.
-
Specification