Storage controller providing automatic retention and deletion of synchronous back-up data
First Claim
1. A storage controller comprising:
- a processor;
an internal storage device; and
a memory accessible to the processor and having instructions stored therein which configure the processor to;
store data in an external mass storage device in response to a host processing system; and
repeatedly and automatically store in the internal storage device a current version of the data.
6 Assignments
0 Petitions
Accused Products
Abstract
A network comprises at least one host processing system, a number of storage controllers, each coupled to one of a plurality of storage arrays, each storage array including at least one mass storage device. Each storage controller may be coupled to at least one host processing system and to at least one other storage controller to control access of the host processing systems to the mass storage devices. Multiple copies of data are maintained in storage arrays that are geographically remote to each other, such that any copy can be accessed by any host. Each storage controller includes an interface with a host that emulates a mass storage device and an interface with a local storage array that emulates a host. The interfaces to the host and local storage arrays are independent of the type of host or devices in the local storage array. Two or more hosts may be dissimilar to each other, and two or more storage arrays may include dissimilar mass storage devices. Hosts access stored data using virtual addressing. During a data access, the storage controller connected to the accessing host maps a virtual address provided by the host to a real physical location in any of the storage arrays, such that the actual location of the data is transparent to the host. The storage controllers provide automatic back-up and error correction as well as write protection of back-up copies.
343 Citations
40 Claims
-
1. A storage controller comprising:
-
a processor;
an internal storage device; and
a memory accessible to the processor and having instructions stored therein which configure the processor to;
store data in an external mass storage device in response to a host processing system; and
repeatedly and automatically store in the internal storage device a current version of the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
receive a request from the host processing system to modify the data; and
modify the data in the external mass storage device in response to the request while preserving the state of each version in the internal storage device.
-
-
4. A storage controller according to claim 1, wherein the instructions comprise instructions which configure the processor to store each version of the data in the internal storage device in a manner that is transparent to the host processing system.
-
5. A storage controller according to claim 1, wherein the instructions comprise instructions which configure the processor to store each version of the data for a duration and to preserve the state of each version for the duration of said version.
-
6. A storage controller according to claim 5, wherein the instructions comprise instructions which configure the processor to maintain each version of the data for a duration that overlaps a duration of at least one other version of the data.
-
7. A storage controller according to claim 1, wherein the instructions comprise instructions which configure the processor to allow the host processing system to access one of the versions in response to receiving a request with a predetermined address from the host processing system.
-
8. A storage controller according to claim 7, wherein the instructions comprise instructions which configure the processor to allow the host processing system modify said one of the versions.
-
9. A storage controller according to claim 1, wherein the instructions comprise instructions which configure the processor to:
-
receive a second request from the host processing system, the second request having second data associated therewith;
attempt to store the second data in the external mass storage device in response to the second request; and
automatically store the second data in the internal storage device if the second data cannot be successfully stored in the external mass storage device.
-
-
10. A storage controller comprising:
-
means for storing data in a mass storage device in response to a request from a host processing system; and
means for automatically storing within the storage controller, at predetermined time intervals, a copy of the data as currently stored in the mass storage device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
means for receiving a request to modify the data from the host processing system; and
means for modifying the data in the mass storage device in response to the request while preserving the state of said copy.
-
-
12. A storage controller according to claim 10, wherein said means for automatically storing comprises means for automatically storing said copy in a manner that is transparent to the host processing system.
-
13. A storage controller according to claim 10, wherein said means for automatically storing comprises means for maintaining a plurality of time-frozen copies of the data.
-
14. A storage controller according to claim 13, further comprising means for maintaining each of the time-frozen copies for a duration that overlaps a duration of at least one other of the time-frozen copies.
-
15. A storage controller according to claim 13, wherein said means for automatically storing comprises means for automatically storing said copy of the data in a mass storage device within the storage controller.
-
16. A storage controller according to claim 10, further comprising means for allowing the host processing system to access one of the time-frozen copies in response to receiving a request with a predetermined address from the host processing system.
-
17. A storage controller according to claim 16, wherein said means for allowing the host processing system to access one of the time-frozen copies comprises means for allowing the host processing system to modify said one of the time-frozen copies.
-
18. A storage controller according to claim 10, further comprising:
-
means for receiving a second request from the host processing system, the second request having second data associated therewith;
means for attempting to store the second data in the mass storage device in response to the second-request; and
means for automatically storing the second data in a mass storage device in the storage controller if the second data cannot be successfully stored in the mass storage device.
-
-
19. A storage controller comprising:
-
a processor;
an internal mass storage device; and
a memory accessible to the processor and having instructions stored therein for configuring the processor to;
store data in an external mass storage device in response to a first request from a host processing system;
repeatedly and automatically store in the internal mass storage device a current version of the data as stored in the external mass storage device to internally maintain a plurality of versions of the data, each version associated with a different point in time, in a manner that is transparent to the host processing system;
receive a second request from the host processing system to modify the data in the external mass storage device; and
modify the data in the external mass storage device in response to the second request while maintaining the state of each of the plurality of versions of the data. - View Dependent Claims (20, 21, 22, 23, 24)
receive a third request from the host processing system, the third request having data associated therewith;
attempt to store the data associated with the third request in the external mass storage device in response to the third request; and
automatically store the data associated with the third request in the internal mass storage device if the data associated with the third request is not successfully stored in the external mass storage device.
-
-
25. A system comprising:
-
a plurality of host processing systems located remotely with respect to each other;
a plurality of storage controllers located remotely with respect to each other, each of the storage controllers locally coupled to one of the host processing systems and remotely coupled to at least one other of the storage controllers;
a plurality of mass storage devices located remotely with respect to each other, each of the mass storage devices locally coupled to one of the storage controllers;
wherein the plurality of storage controllers includes a first storage controller configured to;
store data in one of the mass storage devices in response to a first request from any of the host processing systems;
repeatedly and automatically store within the first storage controller a current version of the data as stored in said one of the mass storage devices, in a manner that is transparent to each of the host processing systems, to create a plurality of versions of the data;
maintain the state of each version within the first storage controller for a duration that overlaps a duration of at least one other version;
receive a second request from any of the host processing systems to modify the data in said one of the mass storage devices; and
modify the data in said one of the mass storage devices in response to the second request while internally maintaining the state of each of the plurality of versions of the data.
-
-
26. A method of operating a storage controller configured to provide a host processing system with access to a mass storage device, the method comprising:
-
storing data in the mass storage device in response to a request from the host processing system; and
repeatedly and automatically storing within the storage controller a copy of the data as currently stored in the mass storage device. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
receiving a request to modify the data from the host processing system; and
modifying the data in the mass storage device in response to the request while preserving the state of each copy.
-
-
29. A method according to claim 26, wherein said repeatedly and automatically storing is performed to maintain a plurality of time-frozen copies of the data.
-
30. A method according to claim 29, further comprising maintaining each of the time-frozen copies for a duration that overlaps a duration of at least one other of the time-frozen copies.
-
31. A method according to claim 29, wherein said repeatedly and automatically storing comprises automatically storing said copy of the data in a mass storage device within the storage controller.
-
32. A method according to claim 26, further comprising allowing the host processing system to access one of the time-frozen copies in response to receiving a request with a predetermined address from the host processing system.
-
33. A method according to claim 32, wherein said allowing the host processing system to access one of the time-frozen copies comprises allowing the host processing system to modify said one of the time-frozen copies.
-
34. A method according to claim 26, further comprising:
-
receiving a second request from the host processing system, the second request having second data associated therewith;
attempting to store the second data in the mass storage device in response to the second request; and
if the second data cannot be successfully stored in the mass storage device, automatically storing the second data in a mass storage device in the storage controller.
-
-
35. A method of operating a storage controller configured to provide a host processing system with access to a mass storage device, the method comprising:
-
receiving data associated with a write request from the host processing system;
storing the data in the mass storage device in response to the write request;
receiving a plurality of requests to modify the data from the host processing system over a period of time;
modifying the data in the mass storage device in response to each of requests; and
at predetermined time intervals during said period of time, automatically storing within the storage controller a copy of the data as currently stored in the mass storage device, to maintain a plurality of time-frozen copies of the data, including maintaining each of the time-frozen copies for a duration that overlaps with that of at least one other of the time-frozen copies. - View Dependent Claims (36, 37, 38, 39, 40)
receiving a second write request from the host processing system, the second write request having second write data associated therewith;
attempting to store the second write data in the mass storage device in response to the second write request; and
if the second write data cannot be successfully stored in the mass storage device, automatically storing the second data in a mass storage device in the storage controller.
-
Specification