Claims
- 1. A computer-based method for managing storage for a plurality of computers coupled via a network, wherein each computer comprises a storage medium, the method comprising:
storing a first set of data on the storage media at the plurality of computers, wherein each of the storage media has a respective storage capacity, wherein a first portion of the storage capacity for each storage medium is used for storing the first set of data, and wherein a second portion of the storage capacity for each storage medium is free; aggregating the second portions of the storage capacities for the storage media into a shared storage volume; mounting the shared storage volume at a first computer of the plurality of computers; and the first computer storing a second set of data on the shared storage volume.
- 2. The method of claim 1,
wherein at least a portion of the second set of data is stored on a plurality of the storage media.
- 3. The method of claim 1,
wherein each of the computers comprises a server for data stored on the second portion of the storage medium at the respective computer.
- 4. The method of claim 1,
wherein the computers are configured to operate as nodes in a peer-to-peer network, whereby any of the computers are configured to serve data stored on the second portion of the storage medium at the respective computer to any other computer in the network.
- 5. The method of claim 1,
wherein the computers are configured to use peer-to-peer message passing to facilitate access of the computers to data on the shared storage volume.
- 6. The method of claim 1,
wherein the messages comprise extensible Markup Language (XML) messages.
- 7. The method of claim 1,
wherein each computer is configured to broadcast an index for the second portion of the respective storage medium for the particular computer.
- 8. The method of claim 1,
wherein the storage volume is configured to be mounted at a plurality of mount points.
- 9. The method of claim 8, further comprising:
maintaining a cache at one or more of the mount points, wherein a first cache is maintained at a first mount point; a second computer requesting a data element; and storing a copy of the requested data element in the first cache in response to the second computer requesting the data element.
- 10. The method of claim 9,
wherein the first mount point is a nearest mount point to the second computer.
- 11. The method of claim 1, further comprising:
storing a copy of at least a portion of information stored on a storage medium of a second computer of the plurality of computers onto a storage medium of a third computer of the plurality of computers, wherein the second computer is coupled to at least one peripheral device through a peripheral switch, and wherein the peripheral switch is configured to route signals between the at least one peripheral device and the second computer; monitoring the second computer for a fail-over condition; detecting the fail-over condition for the second computer; and in response to said detection, configuring the peripheral switch to switch said signal routing from the second computer to the third computer, thereby routing signals between the at least one peripheral device and the third computer.
- 12. The method of claim 11,
wherein said storing the copy of at least a portion of the information onto the storage medium of the third computer further comprises implementing a delta-based backup scheme to store said at least a portion of the information from the storage medium of the second computer onto the storage medium of the third computer prior to said detecting.
- 13. The method of claim 1,
wherein at least a subset of the storage media comprise one or more Network Attached Storage (NAS) devices; and wherein said aggregating the second portions of the storage capacities for the storage media into a shared storage volume further comprises including the one or more NAS devices in the shared storage volume.
- 14. The method of claim 13, further comprising:
adding one or more new NAS devices to the storage media in the shared storage volume, wherein the availability of the shared storage volume is substantially maintained in said adding one or more new NAS devices.
- 15. The method of claim 13, further comprising:
removing one or more of the NAS devices from the shared storage volume, wherein the availability of the shared storage volume is substantially maintained in said removing the one or more NAS devices.
- 16. A system comprising:
a plurality of computers, wherein the computers are communicatively coupled via a network, and wherein each computer comprises a CPU and a memory; and a plurality of storage devices, wherein each of the storage devices has a respective storage capacity, wherein a first portion of the storage capacity for each storage device is used for storing a first set of data, and wherein a second portion of the storage capacity for each storage device is free; wherein the free storage capacity on the storage devices is accessible as a shared storage volume by the one or more computers.
- 17. The system of claim 16,
wherein the computers are operable to store a second set of data on the shared storage volume.
- 18. The system of claim 17,
wherein at least a portion of the second set of data is stored on a plurality of the storage media.
- 19. The system of claim 16,
wherein the computers are configured to operate as nodes in a peer-to-peer network, whereby any of the computers are configured to serve data stored on the second portion of the storage medium at the respective computer to any other computer in the network.
- 20. The system of claim 16,
wherein the computers are configured to use peer-to-peer message passing to facilitate access of the computers to data on the shared storage volume.
- 21. The system of claim 16,
wherein the messages comprise eXtensible Markup Language (XML) messages.
- 22. The system of claim 16,
wherein each computer is configured to broadcast an index for the second portion of the respective storage medium for the particular computer.
- 23. The system of claim 16,
wherein the storage volume is configured to be mounted by the computers at a plurality of mount points.
- 24. The system of claim 23, wherein the computers are operable to:
maintain a cache at one or more of the mount points, wherein a first cache is maintained at a first mount point; request that a data element be made accessible to a first computer; and store a copy of the requested data element in the first cache in response to the request.
- 25. The system of claim 24,
wherein the first mount point is a nearest mount point to the first computer.
- 26. The system of claim 16, wherein the computers are operable to:
store a copy of at least a portion of information stored on a storage medium of a first computer of the plurality of computers onto a storage medium of a second computer of the plurality of computers, wherein the first computer is coupled to at least one peripheral device through a peripheral switch, and wherein the peripheral switch is configured to route signals between the at least one peripheral device and the first computer; monitor the first computer for a fail-over condition; detect the fail-over condition for the first computer; and in response to said detection, configure the peripheral switch to switch said signal routing from the first computer to the second computer, thereby routing signals between the at least one peripheral device and the second computer.
- 27. The system of claim 26,
wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer further comprises implementing a delta-based backup scheme to store said at least a portion of the information from the storage medium of the first computer onto the storage medium of the second computer prior to said detecting.
- 28. The system of claim 16,
wherein at least a subset of the storage devices comprise one or more Network Attached Storage (NAS) devices; and wherein the shared storage volume comprises the NAS devices.
- 29. The system of claim 28,
wherein the availability of the shared storage volume is substantially maintained in adding one or more new NAS devices to the shared storage volume.
- 30. The system of claim 28,
wherein the availability of the shared storage volume is substantially maintained in removing one or more NAS devices from the shared storage volume.
- 31. A carrier medium comprising program instructions for managing storage for a plurality of computers coupled via a network, wherein each computer comprises a storage medium, and wherein the carrier medium is executable by the plurality of computers to implement a method of:
storing a first set of data on the storage media at the plurality of computers, wherein each of the storage media has a respective storage capacity, wherein a first portion of the storage capacity for each storage medium is used for storing the first set of data, and wherein a second portion of the storage capacity for each storage medium is free; aggregating the second portions of the storage capacities for the storage media into a shared storage volume; mounting the shared storage volume at a first computer of the plurality of computers; and storing a second set of data from the first computer on the shared storage volume.
- 32. The carrier medium of claim 31,
wherein at least a portion of the second set of data is stored on a plurality of the storage media.
- 33. The carrier medium of claim 31,
wherein each of the computers comprises a server for data stored on the second portion of the storage medium at the respective computer.
- 34. The carrier medium of claim 31,
wherein the computers are configured to operate as nodes in a peer-to-peer network, whereby any of the computers are configured to serve data stored on the second portion of the storage medium at the respective computer to any other computer in the network.
- 35. The carrier medium of claim 31,
wherein the computers are configured to use peer-to-peer message passing to facilitate access of the computers to data on the shared storage volume.
- 36. The carrier medium of claim 31,
wherein the messages comprise eXtensible Markup Language (XML) messages.
- 37. The carrier medium of claim 31,
wherein each computer is configured to broadcast an index for the second portion of the respective storage medium for the particular computer.
- 38. The carrier medium of claim 31,
wherein the storage volume is configured to be mounted at a plurality of mount points.
- 39. The carrier medium of claim 38, wherein the method further comprises:
maintaining a cache at one or more of the mount points, wherein a first cache is maintained at a first mount point; a second computer requesting a data element; and storing a copy of the requested data element in the first cache in response to the second computer requesting the data element.
- 40. The carrier medium of claim 39,
wherein the first mount point is a nearest mount point to the second computer.
- 41. The carrier medium of claim 31, wherein the method further comprises:
storing a copy of at least a portion of information stored on a storage medium of a second computer of the plurality of computers onto a storage medium of a third computer of the plurality of computers, wherein the second computer is coupled to at least one peripheral device through a peripheral switch, and wherein the peripheral switch is configured to route signals between the at least one peripheral device and the second computer; monitoring the second computer for a fail-over condition; detecting the fail-over condition for the second computer; and in response to said detection, configuring the peripheral switch to switch said signal routing from the second computer to the third computer, thereby routing signals between the at least one peripheral device and the third computer.
- 42. The carrier medium of claim 41,
wherein said storing the copy of at least a portion of the information onto the storage medium of the third computer further comprises implementing a delta-based backup scheme to store said at least a portion of the information from the storage medium of the second computer onto the storage medium of the third computer prior to said detecting.
- 43. The carrier medium of claim 31,
wherein at least a subset of the storage media comprise one or more Network Attached Storage (NAS) devices; and wherein said aggregating the second portions of the storage capacities for the storage media into a shared storage volume further comprises including the one or more NAS devices in the shared storage volume.
- 44. The carrier medium of claim 43, wherein the method further comprises:
adding one or more new NAS devices to the storage media in the shared storage volume, wherein the availability of the shared storage volume is substantially maintained in said adding one or more new NAS devices.
- 45. The carrier medium of claim 43, wherein the method further comprises:
removing one or more of the NAS devices from the shared storage volume, wherein the availability of the shared storage volume is substantially maintained in said removing the one or more NAS devices.
Priority Claim
[0001] This application claims benefit of priority of provisional application Ser. No. 60/332,143 titled “A Fail Forward Networked Storage System” filed on Nov. 21, 2001, whose inventor is Barry Thornton.
[0002] This application also claims benefit of priority of provisional application Ser. No. 60/411,066 titled “Distributed Computing Infrastructure” filed on Sep. 16, 2002, whose inventors are Amir Husain, Todd Enright, and Barry Thornton.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60332143 |
Nov 2001 |
US |
|
60411066 |
Sep 2002 |
US |