Self-healing computer system storage
First Claim
1. A method to process a memory access request by a storage management process, the memory access request directed to a stored object having a data portion, a data fault tolerance portion, a metadata portion and a metadata fault tolerance portion, the method comprising:
- reconstructing at least a part of the metadata portion in accordance with at least a part of the metadata fault tolerance portion;
locating at least a part of the data fault tolerance portion based on the reconstructed metadata part;
reconstructing a part of the data portion corresponding to the located data fault tolerance part;
modifying the reconstructed data part;
modifying the data fault tolerance portion in accordance with the modified reconstructed data part;
indicating in the metadata fault tolerance portion that the data fault tolerance portion has been modified; and
modifying a contents object to indicate the metadata fault tolerance portion has been modified, the contents object associated with a second storage management process distinct from the storage management process.
11 Assignments
0 Petitions
Accused Products
Abstract
A self-healing computer storage system utilizes a proxy storage management process to service memory access requests directed to stored objects whose designated storage management process has failed. The proxy accesses the relevant parts of the stored objects fault tolerance information to service memory access requests, updating the stored object'"'"'s fault tolerance information to reflect any changes. When the previously failed storage management process is restarted, it determines if the fault tolerance information for any of the objects (or parts thereof) it manages have been modified (i.e., by a proxy). If such indication is found, the restarting storage management process reconstructs its stored object data (and metadata) from the stored objects'"'"' fault tolerance information.
94 Citations
29 Claims
-
1. A method to process a memory access request by a storage management process, the memory access request directed to a stored object having a data portion, a data fault tolerance portion, a metadata portion and a metadata fault tolerance portion, the method comprising:
-
reconstructing at least a part of the metadata portion in accordance with at least a part of the metadata fault tolerance portion;
locating at least a part of the data fault tolerance portion based on the reconstructed metadata part;
reconstructing a part of the data portion corresponding to the located data fault tolerance part;
modifying the reconstructed data part;
modifying the data fault tolerance portion in accordance with the modified reconstructed data part;
indicating in the metadata fault tolerance portion that the data fault tolerance portion has been modified; and
modifying a contents object to indicate the metadata fault tolerance portion has been modified, the contents object associated with a second storage management process distinct from the storage management process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
obtaining at least a part of the metadata fault tolerance portion; and
reconstructing the metadata part based on the obtained part of the metadata fault tolerance portion.
-
-
3. The method of claim 2, wherein the obtained metadata fault tolerance part is obtained from one or more physical storage units managed by the storage management process.
-
4. The method of claim 2, wherein the obtained metadata fault tolerance part is obtained from one or more physical storage units not managed by the storage management process.
-
5. The method of claim 1, wherein the act of reconstructing at least a part of the data portion comprises:
-
obtaining at least a part of the data fault tolerance portion; and
reconstructing the data part based on the obtained part of the data fault tolerance portion.
-
-
6. The method of claim 5, wherein the obtained data fault tolerance part is obtained from one or more physical storage units managed by the storage management process.
-
7. The method of claim 5, wherein the obtained data fault tolerance part is obtained from one or more physical storage units not managed by the storage management process.
-
8. The method of claim 1, wherein the act of modifying the data fault tolerance portion is initiated by the act by storing the modified data part.
-
9. The method of claim 1, wherein the act of indicating the data fault tolerance portion has been modified in the metadata fault tolerance portion comprises:
-
setting a value in the reconstructed metadata part, the value associated with a storage location map, the storage location map identifying a physical storage location for that part of the data portion corresponding to the modified data part; and
modifying the metadata fault tolerance portion in accordance with the value set in the reconstructed metadata part.
-
-
10. The method of claim 1, wherein the act of modifying a contents object comprises modifying a fault tolerance object associated with the contents object to indicate the metadata fault tolerance portion of the stored object has been modified.
-
11. The method of claim 10, wherein the act of modifying a fault tolerance object associated with the contents object comprises:
-
reconstructing at least a part of the contents object from the fault tolerance object;
setting a value in the reconstructed contents object part;
modifying the fault tolerance object in accordance with the modified reconstructed part of the contents object.
-
-
12. The method of claim 11, wherein the act of reconstructing at least a part of the contents object from the fault tolerance object comprises:
-
locating the fault tolerance object associated with the contents object;
obtaining at least a part of the fault tolerance object, the obtained part corresponding to the contents object associated with the modified metadata fault tolerance portion.
-
-
13. A program storage device, readable by a programmable control device, comprising instructions for causing the programmable control device to execute a storage management routine to process a memory access request, the memory access request directed to a stored object having a data portion, a data fault tolerance portion, a metadata portion and a metadata fault tolerance portion, the instructions including instructions to:
-
reconstruct at least a part of the metadata portion in accordance with at least a part of the metadata fault tolerance portion;
locate at least a part of the data fault tolerance portion based on the reconstructed metadata part;
reconstruct a part of the data portion corresponding to the located data fault tolerance part;
modify the reconstructed data part;
modify the data fault tolerance portion in accordance with the modified reconstructed data part;
indicate in the metadata fault tolerance portion that the data fault tolerance portion has been modified; and
modify a contents object to indicate the metadata fault tolerance portion has been modified, the contents object associated with a storage management process distinct from the storage management process. - View Dependent Claims (14, 15, 16, 17)
set a value in the reconstructed metadata part, the value associated with a storage location map, the storage location map identifying a physical storage location for that part of the data portion corresponding to the modified data part; and
modify the metadata fault tolerance portion in accordance with the value set in the reconstructed metadata part.
-
-
17. The program storage device of claim 13, wherein the instructions to modify the contents object comprise instructions to modify a fault tolerance object associated with the contents object to indicate the metadata fault tolerance portion of the stored object has been modified.
-
18. A method to initialize a storage management process comprising:
-
reconstructing a contents object based on a contents fault tolerance object, the contents object associated with the storage management process;
determining a value of an object-modified indicator in the reconstructed contents object, the object-modified indicator associated with a stored object, the stored object having a data portion and a data fault tolerance portion; and
reconstructing at least a part of the data portion based on at least a part of the data fault tolerance portion if the object-modified indicator has a first value. - View Dependent Claims (19, 20, 21, 22, 23)
obtaining a metadata object associated with the at least a part of the data portion, the metadata object indicating a storage location of the at least a part of the data fault tolerance portion;
obtaining the at least a part of the data fault tolerance portion; and
reconstructing the at least a part of the data portion based on the obtained data fault tolerance portion.
-
-
22. The method of claim 21, wherein the act of obtaining a metadata object comprises:
-
obtaining a metadata fault tolerance object based on the reconstructed contents object; and
reconstructing the metadata object based on the obtained metadata fault tolerance object.
-
-
23. The method of claim 18, wherein the storage management process and the second storage management process execute on different processors.
-
24. A program storage device, readable by a programmable control device, comprising instructions for causing the programmable control device to start a storage management routine, the instructions including instructions to:
-
reconstruct a contents object based on a contents fault tolerance object, the contents object associated with one or more stored objects managed by the storage management process;
determine a value of an object-modified indicator in the reconstructed contents object, the object-modified indicator associated with a stored object, the stored object having a data portion and a data fault tolerance portion; and
reconstruct at least a part of the data portion based on at least a part of the data fault tolerance portion if the object-modified indicator has a first value. - View Dependent Claims (25, 26, 27, 28, 29)
obtain a metadata object associated with the at least a part of the data portion, the metadata object indicating a storage location of the at least a part of the data fault tolerance portion;
obtain the at least a part of the data fault tolerance portion; and
reconstruct the at least a part of the data portion based on the obtained data fault tolerance portion.
-
-
28. The program storage device of claim 27, wherein the instructions to obtain a metadata object comprise instructions to:
-
obtain a metadata fault tolerance object based on the reconstructed contents object; and
reconstruct the metadata object based on the obtained metadata fault tolerance object.
-
-
29. The program storage device of claim 24, wherein the storage management process and the second storage management process execute on different programmable control devices.
Specification