Claims
- 1. A data fail-over system for a plurality of computer systems, the system comprising:
a plurality of computers, wherein each computer comprises:
a processor; and a storage medium coupled to the processor; at least one peripheral device; and a peripheral switch coupled to at least two of the plurality of computers, and further coupled to the at least one peripheral device, wherein the peripheral switch is configured to route signals between the at least one peripheral device and a first computer of the plurality of computers; wherein the storage medium of the first computer stores information; wherein the storage medium of at least one computer of the plurality of computers stores program instructions which are executable by the processor of said at least one computer to:
store a copy of at least a portion of the information onto the storage medium of a second computer of the plurality of computers; and wherein the program instructions are further executable to:
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.
- 2. The system of claim 1, wherein, in storing a copy of at least a portion of the information onto the storage medium of the second computer, the program instructions are executable to store the copy of at least a portion of the information onto the storage medium of the second computer prior to said detection.
- 3. The system of claim 2, wherein, in storing the copy 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 detection, the program instructions are executable to implement a delta-based backup scheme.
- 4. The system of claim 3, wherein, in implementing the delta-based back-up scheme, the program instructions are executable to:
note each of one or more incremental backups for the first computer in a catalog; and send the catalog to at least one other computer of said plurality of computers, wherein said at least one other computer compares said catalog to the incremental backups stored on said second computer, and wherein if said at least one other computer determines that at least one incremental backup is missing from the storage medium of said second computer, said second computer receives and stores said at least one missing incremental backup from said first computer.
- 5. The system of claim 1, wherein, in storing a copy of at least a portion of the information onto the storage medium of the second computer, the program instructions are executable to store the copy of at least a portion of the information onto the storage medium of the second computer after said detection.
- 6. The system of claim 5, wherein, in storing the copy of at least a portion of the information onto the storage medium of the second computer after said detection, the program instructions are executable to:
copy said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detection; and copy said at least a portion of the information from the storage medium of the at least one third computer onto the storage medium of the second computer after said detection.
- 7. The system of claim 6, wherein, in copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detection, the program instructions are executable to implement a delta-based back-up scheme.
- 8. The system of claim 7, wherein, in implementing the delta-based back-up scheme, the program instructions are executable to:
note each of one or more incremental backups for the first computer in a catalog; and send the catalog to said at least one third computer, wherein said at least one third computer compares said catalog to the incremental backups stored on said at least one third computer, and wherein if said at least one third computer determines that at least one incremental backup is missing from the storage medium of said at least one third computer, said at least one third computer receives and stores said at least one missing incremental backup from said first computer.
- 9. The system of claim 6, wherein, in said copying at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detection, the program instructions are further executable to periodically update said at least a portion of the information stored on the storage medium of the at least one third computer based on updated information stored on the storage medium of the first computer.
- 10. The system of claim 6, wherein said at least one third computer is geographically remote from said first computer.
- 11. The system of claim 6, wherein said at least one third computer comprises a local computer and a remote computer, wherein the local computer is geographically local to the first computer and the remote computer is geographically remote to the first computer;
wherein, in copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detection, the program instructions are executable to:
if said local computer is functional, copy said at least a portion of the information from the storage medium of the local computer to said first computer onto the storage medium of the second computer after said detection, and if said local computer is not functional, copy said at least a portion of the information from the storage medium of the remote computer onto the storage medium of the second computer after said detection.
- 12. The system of claim 6,
wherein said at least one third computer comprises a remote computer, wherein the remote computer is geographically remote to the first computer; and wherein, in copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detection, the program instructions are further executable to:
copy at least a portion of information from the storage medium of an additional computer of the plurality of computers onto the remote computer.
- 13. The system of claim 5, wherein the program instructions are further executable to:
detect an identity of one or more of said first computer, said second computer, and said at least one third computer; wherein said identity is used by said at least one computer to assign said one or more of said second computer and said at least one third computer to said first computer, such that said at least a portion of information from said storage medium of said first computer is stored onto said storage medium of said one or more of said second computer and said at least one third computer.
- 14. The system of claim 5, wherein said program instructions are further executable to:
store a replication factor for the first computer, wherein said replication factor indicates the number of other computers of the plurality of computers onto which to store said at least a portion of information from the storage medium of the first computer.
- 15. The system of claim 1, wherein said at least one computer of the plurality of computers comprises one or more of the first computer and the second computer.
- 16. The system of claim 15, wherein each of said one or more of the first computer and the second computer stores and executes at least a respective portion of the program instructions.
- 17. The system of claim 1,
wherein said at least one computer of the plurality of computers comprises one or more of the first computer, the second computer, and a third computer of the plurality of computers.
- 18. The system of claim 17, wherein each of said one or more of the first computer, the second computer, and the third computer stores and executes at least a respective portion of the program instructions.
- 19. The system of claim 1, wherein said program instructions are executable to perform at least a subset of said storing, said monitoring, said detecting, and said configuring without human input.
- 20. The system of claim 1, wherein, in configuring the peripheral switch to switch said signal routing in response to said detection, the program instructions are further executable to:
indicate said detection to a human; receive input from the human specifying said configuring; and configure the peripheral switch in response to said received input.
- 21. The system of claim 1, wherein the storage medium of at least one of the plurality of computers stores program instructions implementing a virtual network area storage system.
- 22. The system of claim 1, wherein the storage medium of at least one of the plurality of computers stores program instructions implementing resource management software to manage one or more of processor usage, physical memory usage, hard drive usage, and network information usage for the plurality of computers.
- 23. The system of claim 1, wherein the storage medium of at least one of the plurality of computers stores program instructions executable to create and maintain a location file, wherein said location file indicates one or more locations of said information.
- 24. The system of claim 1, wherein the storage medium of at least one of the first computer and the second computer stores program instructions implementing striping rules for storing information on the storage medium of at least one of the first computer and the second computer.
- 25. The system of claim 1, wherein one or more of the plurality of computers comprises a respective computer blade.
- 26. The system of claim 1, wherein said at least a portion of the information comprises substantially all of the information stored on the storage medium of the first computer.
- 27. The system of claim 1, further comprising:
a human interface, wherein the human interface comprises said at least one peripheral device; wherein, in routing signals between the at least one peripheral device and the first computer of the plurality of computers, the peripheral switch is operable to associate the human interface with the first computer; and wherein, after said switch, the human interface is associated with the second computer.
- 28. The system of claim 1, wherein each of the storage mediums of the plurality of computers comprises at least one of a random access memory module and a hard disk.
- 29. The system of claim 1, further comprising:
a storage network coupled to said first computer and said second computer, wherein the storage network comprises a storage area network server; wherein the storage network server stores program instructions executable by said storage area network server to make the storage medium of the first computer accessible by the processor of the second computer, and to make the storage medium of the second computer accessible by the processor of the first computer.
- 30. The system of claim 29, further comprising:
a first storage medium, wherein the storage network server stores program instructions further executable by said storage area network server to make said first storage medium accessible by the processor of the first computer and the processor of the second computer.
- 31. The system of claim 1, wherein said program instructions are executable to perform said storing, said monitoring, said detecting, and said configuring without operation of a central server.
- 32. The system of claim 1, wherein the program instructions are further executable to:
detect an identity of said first computer and/or said second computer; wherein said identity is used by said at least one computer to assign said second computer to said first computer, such that said at least a portion of information from said storage medium of said first computer is stored onto said storage medium of said second computer.
- 33. The system of claim 1,
wherein the program instructions are further executable to implement a graphical user interface for the system; and wherein the graphical user interface comprises one or more of a login screen, a list of local computer blades, a configuration screen, a scheduling interface, an information recovery screen, an archive view screen, and an information recovery screen.
- 34. The system of claim 1, wherein said fail-over condition indicates a need to upgrade to a higher performance computer; wherein said second computer is a higher performing computer than said first computer.
- 35. The system of claim 1, wherein said fail-over condition indicates a need to swap said first computer with said second computer.
- 36. The system of claim 1, further comprising:
a second at least one peripheral device, wherein the peripheral switch is further coupled to said second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and the second computer; wherein, in storing a copy of at least a portion of the information onto the storage medium of a second computer of the plurality of computers, said program instructions are further executable to:
store at least a portion of the information from the storage medium of said second computer onto said storage medium of said first computer; and wherein, in configuring the peripheral switch to switch said signal routing from the first computer to the second computer, the program instructions are further executable to configure the peripheral switch to switch said signal routing from the second computer to the first computer, thereby routing signals between the second peripheral device and the first computer.
- 37. The system of claim 1, further comprising:
a second at least one peripheral device, wherein the peripheral switch is further coupled to said second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and a third computer of the plurality of computers; wherein, in storing a copy of at least a portion of the information onto the storage medium of a second computer of the plurality of computers, said program instructions are further executable to:
store at least a portion of the information from the storage medium of said second computer onto said storage medium of said third computer; and wherein, in configuring the peripheral switch to switch said signal routing from the first computer to the second computer, the program instructions are further executable to configure the peripheral switch to switch said signal routing from the second computer to the third computer, thereby routing signals between the second peripheral device and the third computer.
- 38. A computer-based method for managing data fail-over for a plurality of computers in a network, wherein each computer comprises a processor and a storage medium, the method comprising:
storing 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; monitoring the first computer for a fail-over condition; detecting the fail-over condition for the first computer; and in response to said detection, configuring 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.
- 39. The method of claim 38, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed prior to said detecting.
- 40. The method of claim 39, 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.
- 41. The method of claim 40, wherein, storing the copy with a delta-based back-up scheme further comprises:
noting each of one or more incremental backups for the first computer in a catalog; and sending the catalog to at least one other computer, wherein said at least one other computer compares said catalog to the incremental backups stored on said second computer, and wherein if said at least one other computer determines that at least one incremental backup is missing from the storage medium of said second computer, said second computer receives and stores said at least one missing incremental backup from said first computer.
- 42. The method of claim 39, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer after said detecting comprises:
copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting; and copying said at least a portion of the information from the storage medium of the at least one third computer onto the storage medium of the second computer after said detecting.
- 43. The method of claim 42, further comprising:
storing a replication factor for the first computer, wherein said replication factor indicates a number of said at least one third computers of the plurality of computers onto which to store said at least a portion of information from the storage medium of the first computer.
- 44. The method of claim 42, wherein said copying at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting further comprises:
periodically updating said at least a portion of the information stored on the storage medium of the at least one third computer based on updated information stored on the storage medium of the first computer.
- 45. The method of claim 42, wherein said copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting is performed according to a delta-based back-up scheme.
- 46. The method of claim 45, wherein implementing the delta-based back-up scheme comprises:
noting each of a plurality of incremental backups in a catalog; sending the catalog to said at least one third computer; said at least one third computer comparing said catalog to the incremental backups stored on said at least one third computer; and if said at least one third computer determines that at least one incremental backup is missing from the storage medium of said at least one third computer, said at least one third computer receives and stores said at least one missing incremental backup from said first computer.
- 47. The method of claim 42, wherein said at least one third computer is geographically remote from said first computer.
- 48. The method of claim 42, wherein said at least one third computer comprises a local computer and a remote computer, wherein the local computer is geographically local to the first computer and the remote computer is geographically remote to the first computer;
wherein said copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting comprises:
if said local computer is functional, copying said at least a portion of the information from the storage medium of the local computer to said first computer onto the storage medium of the second computer after said detecting, and if said local computer is not functional, copying said at least a portion of the information from the storage medium of the remote computer onto the storage medium of the second computer after said detecting.
- 49. The method of claim 42,
wherein said at least one third computer comprises a remote computer, wherein the remote computer is geographically remote to the first computer; and wherein said copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of said least one third computer of the plurality of computers prior to said detecting further comprises:
copying at least a portion of information from the storage medium of one or more additional computers of the plurality of computers onto the remote computer.
- 50. The method of claim 38, further comprising:
providing a graphical user interface for one or more of a login screen, a list of local computer blades, a configuration screen, a scheduling interface, an information recovery screen, an archive view screen, and an information recovery screen.
- 51. The method of claim 38, wherein said at least one computer of the plurality of computers comprises one or more of the first computer and the second computer.
- 52. The method of claim 51, wherein each of said one or more of the first computer and the second computer stores and executes at least a respective portion of the program instructions.
- 53. The method of claim 38, wherein said storing, said monitoring, said detecting, and said configuring is performed by one or more of the plurality of computers.
- 54. The method of claim 53, wherein each of said one or more of said plurality of computers stores and executes at least a respective portion of said storing, said monitoring, said detecting, and said configuring.
- 55. The method of claim 38, wherein at least a subset of said storing, said monitoring, said detecting, and said configuring is performed without human input.
- 56. The method of claim 38, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed after said detecting.
- 57. The method of claim 38, w herein said configuring the peripheral switch to switch said signal routing in response to said detecting comprises:
indicating said detecting to a human; receiving input from the human specifying said configuring; and configuring the peripheral switch in response to said received input.
- 58. The method of claim 38, wherein the storage medium of one or more of the plurality of computers stores program instructions implementing a virtual network area storage system.
- 59. The method of claim 38, wherein at least a subset of said storing, said monitoring, said detecting, and said configuring are performed by a resource manager.
- 60. The method of claim 38, further comprising:
creating and maintaining a location file, wherein said location file indicates one or more locations of said information.
- 61. The method of claim 38,
wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed prior to said detecting, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer after said detecting comprises:
copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of two or more third computers of the plurality of computers prior to said detecting uses striping rules; and copying said at least a portion of the information from the storage medium of the at least one third computer onto the storage medium of the second computer after said detecting.
- 62. The method of claim 38, wherein one or more of the plurality of computers comprises a respective computer blade.
- 63. The method of claim 38, wherein said at least a portion of the information comprises substantially all of the information stored on the storage medium of the first computer.
- 64. The method of claim 38, wherein the at least one peripheral device comprises a human interface; wherein, in routing signals between the at least one peripheral device and the first computer of the plurality of computers, the peripheral switch is configured to associate the human interface with the first computer; and
wherein, after said switch, the human interface is associated with the second computer.
- 65. The method of claim 38, wherein each of the storage mediums of the plurality of computers comprises at least one of a random access memory module and a hard disk.
- 66. The method of claim 38, further comprising:
wherein the first computer and the second computer are comprised in a storage network, wherein the storage network comprises a storage area network server; and wherein the storage network server stores program instructions executable by said storage area network server to make the storage medium of the first computer accessible by the processor of the second computer, and to make the storage medium of the second computer accessible by the processor of the first computer.
- 67. The method of claim 66, wherein the storage network further includes a storage medium, wherein the storage network server stores program instructions further executable by said storage area network server to make said storage medium accessible by said first processor and said second processor.
- 68. The method of claim 38, wherein said storing, said monitoring, said detecting, and said configuring are performed without operation of a central server.
- 69. The method of claim 38, further comprising:
detecting an identity of said first computer and/or said second computer in the plurality of computers; and assigning said second computer to said first computer, such that said at least a portion of information from said storage medium of said first computer is stored onto said storage medium of said second computer.
- 70. The method of claim 38, wherein said fail-over condition indicates a need to upgrade to a higher performance computer, and wherein said second computer is a higher performing computer than said first computer.
- 71. The system of claim 38, wherein said fail-over condition indicates a need to swap said first computer with said second computer.
- 72. The method of claim 38,wherein said storing a copy of at least a portion of the information onto the storage medium of a second computer further comprises:
storing at least a portion of the information from the storage medium of said second computer onto said storage medium of said first computer; wherein the peripheral switch is further coupled to a second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and the second computer; and wherein configuring the peripheral switch to switch said signal routing from the first computer to the second computer further includes configuring the peripheral switch to switch said signal routing from the second computer to the first computer, thereby routing signals between the second peripheral device and the first computer; wherein the peripheral switch is further coupled to said second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and the second computer.
- 73. The method of claim 38,
wherein storing a copy of at least a portion of the information onto the storage medium of a second computer of the plurality of computers comprises:
storing at least a portion of the information from the storage medium of said second computer onto the storage medium of a third computer of the plurality of computers; wherein the peripheral switch is further coupled to a second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and the second computer; and wherein configuring the peripheral switch to switch said signal routing from the first computer to the second computer further includes configuring the peripheral switch to switch said signal routing from the second computer to the third computer, thereby routing signals between the second peripheral device and the third computer, wherein the peripheral switch is further coupled to said second at least one peripheral device, wherein the peripheral switch is further configured to route signals between the second at least one peripheral device and the third computer of the plurality of computers.
- 74. The method of claim 38, wherein the fail-over condition relates to one or more of processor usage, physical memory usage, hard drive usage, and network usage for the plurality of computers.
- 75. A computer-based system, comprising:
means for storing a copy of at least a portion of information stored on a storage medium of a first computer onto a storage medium of a second computer, wherein the first computer is coupled to at least one peripheral device through a peripheral switch, and wherein the peripheral switch routes signals between the at least one peripheral device and the first computer; means for monitoring the first computer for a fail-over condition; means for detecting the fail-over condition for the first computer; and means for configuring the peripheral switch to switch said signal routing from the first computer to the second computer in response to said detecting, thereby routing signals between the at least one peripheral device and the second computer.
- 76. The system of claim 75, wherein said means for storing the copy of at least a portion of the information onto the storage medium of the second computer performs prior to said detecting.
- 77. The system of claim 75, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed after said detecting.
- 78. The system of claim 77, wherein said means for storing the copy of at least a portion of the information onto the storage medium of the second computer after said detecting further comprises:
means for copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting; and means for copying said at least a portion of the information from the storage medium of the at least one third computer onto the storage medium of the second computer after said detecting.
- 79. A carrier medium comprising program instructions, wherein the program instructions are computer executable to perform:
storing a copy of at least a portion of information stored on a storage medium of a first computer onto a storage medium of a second computer, wherein the first computer is coupled to at least one peripheral device through a peripheral switch, and wherein the peripheral switch routes signals between the at least one peripheral device and the first computer; monitoring the first computer for a fail-over condition; detecting the fail-over condition for the first computer; and in response to said detecting, configuring 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.
- 80. The carrier medium of claim 79, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed prior to said detecting.
- 81. The carrier medium of claim 80, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer is performed after said detecting.
- 82. The carrier medium of claim 81, wherein said storing the copy of at least a portion of the information onto the storage medium of the second computer after said detecting comprises:
copying said at least a portion of the information from the storage medium of the first computer onto the storage medium of at least one third computer of the plurality of computers prior to said detecting; and copying said at least a portion of the information from the storage medium of the at least one third computer onto the storage medium of the second computer after said detecting.
- 83. A system comprising a plurality of computer systems, the systems comprising:
a plurality of processors comprising a first processor and a second processor; at least one peripheral switch coupled to said first processor and said second processor; a first peripheral device coupled to said at least one peripheral switch; wherein said first peripheral device sends signals through said at least one peripheral switch to said first processor; a plurality of storage mediums, comprising a first storage medium and a second storage medium, accessible by said first processor and said second processor, respectively, wherein at least one of said plurality of storage mediums is configured to store program instructions executable by at least one of said plurality of processors to implement:
an application configured to manage information storage on said plurality of storage mediums, wherein at least part of information stored on said first storage medium is also stored on said second storage medium; and wherein the application is further configured to make said at least part of information stored on said first storage medium assessable to at least one of said plurality of processors if said first processor or said first storage medium fails; and wherein said at least one peripheral switch is configured to switch said signals from said first peripheral device to be sent to at least one other of said plurality of processors.
- 84. The system of claim 83, wherein making said at least part of information stored on said first storage medium assessable to at least one of said plurality of processors includes copying said at least part of information stored on said first storage medium onto said second storage medium.
- 85. The system of claim 83, wherein switching said signals from said first peripheral device to be sent to at least one other said plurality of processors includes sending said signals from said first peripheral device to said second processor.
- 86. The system of claim 83, wherein making said at least part of information stored on said first storage medium assessable to at least one of said plurality of processors includes coupling said second processor to said first storage medium.
PRIORITY CLAIM
[0001] This application claims benefit of priority of provisional application Serial 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 Serial 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 |