Using a virtual device to access data as it previously existed in a mass data storage system
DC CAFCFirst Claim
1. In a computer system including a mass storage system having a plurality of data blocks and a preservation memory, a method for accessing data as it existed in the mass storage system at a selected moment using a virtual device, comprising the steps of:
- establishing at the computer system a virtual device that can process requests for at least one of writing or reading data as though it were an actual data storage device;
preserving an original data block as it existed in the mass storage system at the selected moment by placing the original data block in the preservation memory when a new block written to the mass storage system is to overwrite the original data block after the selected moment; and
using the virtual device to access the data as it existed at the selected moment in the mass storage system, including the steps of;
accessing the preserved original data block placed in the preservation memory; and
accessing another original data block that remains in the mass storage system and that has not been overwritten since the selected moment.
9 Assignments
Litigations
1 Petition
Accused Products
Abstract
A system and method for using a virtual device established at a computer system to access data as it existed at a selected moment in a mass storage system associated with the computer system, regardless of whether new data has been written to the mass storage system. When an original data block is to be overwritten in the mass storage system with a new data block, the original data block is first preserved in a preservation memory associated with the computer system. The preservation memory thereby preserves the original data block as it existed at the selected moment. A virtual device established at the computer system provides access to data as it existed at the selected moment. This data may include original data blocks preserved in the preservation memory and other original data blocks that remain in the mass storage device, and which have not been overwritten with new data. In order to provide access to the data, the virtual device accesses the preservation memory to obtain those original data blocks that have been preserved therein and also accesses the mass storage device to obtain those original data blocks that remain in the mass storage device.
126 Citations
26 Claims
-
1. In a computer system including a mass storage system having a plurality of data blocks and a preservation memory, a method for accessing data as it existed in the mass storage system at a selected moment using a virtual device, comprising the steps of:
-
establishing at the computer system a virtual device that can process requests for at least one of writing or reading data as though it were an actual data storage device; preserving an original data block as it existed in the mass storage system at the selected moment by placing the original data block in the preservation memory when a new block written to the mass storage system is to overwrite the original data block after the selected moment; and using the virtual device to access the data as it existed at the selected moment in the mass storage system, including the steps of; accessing the preserved original data block placed in the preservation memory; and accessing another original data block that remains in the mass storage system and that has not been overwritten since the selected moment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a computer system including a mass storage system having a plurality of data blocks and a preservation memory, a method for accessing a snapshot of the mass storage system at a selected moment using a virtual device, comprising the steps of:
-
creating at the computer system a virtual device capable of accessing a snapshot representing data stored at the mass storage system at the selected moment; at the selected moment, storing data at the mass storage system, wherein the data at the selected moment includes an original first data block and an original second data block; upon writing a new first data block to the mass storage system after the selected moment, establishing the snapshot by ensuring that the original first data block is stored at the preservation memory; writing one or more data blocks to the snapshot using the virtual device; and reading data blocks using the virtual device by performing the steps of; reading the first original data block from the preservation memory; and reading the second original data block from the mass storage system. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product for implementing a method of accessing data as it existed in a mass storage system at a selected moment using a virtual device, the mass storage system including a plurality of data blocks, wherein the method is capable of being implemented in a computer system including the mass storage system and a preservation memory, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method, wherein the computer-executable instructions comprise; program code means for establishing at the computer system a virtual device that can process requests for at least one of writing or reading data as though it were an actual data storage device; program code means for preserving an original data block as it existed in the mass storage system at the selected moment by placing the original data block in the preservation memory when a new block written to the mass storage system is to overwrite the original data block after the selected moment; and program code means for using the virtual device to access the data as it existed at the selected moment in the mass storage system by conducting the steps of; accessing the preserved original data block placed in the preservation memory; and accessing another original data block that remains in the mass storage system and that has not been overwritten since the selected moment. - View Dependent Claims (21, 22, 23, 24, 25, 26)
Specification