Claims
- 1. A virtual storage system for linking a host to one or more storage devices over a network, the system comprising:
an agent connected to the host, the agent having volatile memory for storing a first copy of a table, the table having entries to map virtual disk positions to locations on the storage devices; and a controller coupled to the agent, the controller having non-volatile memory for storing a second copy of the table, the controller intermittently causing contents of the first copy of the table to be replaced by contents of the second copy of the table, whereby during an input/output (I/O) operation, the host accesses one of the entries in the table stored on the agent to determine one of the storage device locations.
- 2. The system of claim 1, wherein the table entries further include an indication of whether an invalid state is activated such that the invalid state for a table entry becomes activated when that table entry contains no useable mapping information.
- 3. The system of claim 2, wherein the agent does not allow the host to complete the I/O operations with one of the entries if the invalid state for that entry is activated.
- 4. The system of claim 1, wherein the table entries further include an indication of whether a no-write state is activated such that the no-write state for one of the entries becomes activated when data cannot be written to the storage location contained in that entry.
- 5. The system of claim 4, wherein the agent does not allow the host to write data to the storage location in one of the entries if the no-write state for that entry is activated.
- 6. The system of claim 1, further comprising a communication channel to couple the agent and the controller.
- 7. The system of claim 6, wherein the communication channel employs a data transfer protocol to transport messages on the communication channel.
- 8. The system of claim 1, wherein the entries include an offset.
- 9. The system of claim 8, wherein the offset includes logic unit number identifier.
- 10. The system of claim 8, wherein the offset includes a block identifier.
- 11. The system of claim 10, wherein the entries further includes a segment of virtual disk positions.
- 12. A system for mapping a virtual disk segment to a storage location within a storage device, such that a host issues a I/O operation to an agent and the agent determines said storage location for input/output operations, said system comprising:
a table having an entry corresponding to said storage location; a plurality of variables indicating states of the entry; an offset for the entry, wherein the offset includes a logic unit number identifier and a block identifier; and a memory to store the table.
- 13. The system of claim 12, wherein the memory is volatile.
- 14. The system of claim 12, wherein said storage location comprises a block of data within the storage device.
- 15. The system of claim 14, wherein the block of data is about 1 MB.
- 16. The system of claim 12, wherein the agent is coupled to the host.
- 17. The system of claim 12, wherein the plurality of variables comprise Boolean variable.
- 18. The system of claim 12, wherein the states include an invalid state.
- 19. The system of claim 18, wherein the plurality of variables includes a variable for the invalid state.
- 20. The system of claim 12, wherein the states include a no-write state.
- 21. The system of claim 20, wherein the plurality of variables includes a variable for the no-write state.
- 22. The system of claim 12, wherein the states include a zero state.
- 23. The system of claim 12, wherein the states include an error state.
- 24. A method for performing an operation on a virtual disk coupled to a host within a network, comprising:
specifying a block on the virtual disk within the operation; accessing a table mapping the block to a storage location on a storage device; issuing a corresponding operation to the storage device, wherein the corresponding operation correlates to the operation on the virtual disk; completing the corresponding operation; and presenting the completed corresponding operation to the virtual disk.
- 25. The method of claim 24, wherein the issuing step includes issuing the corresponding operation from an agent coupled to the host.
- 26. The method of claim 24, further comprising updating the table with a persistently-stored table residing in a non-volatile memory.
- 27. The method of claim 24, further comprising determining states of the table.
- 28. The method of claim 24, further comprising sending a fault message when the table is unable to be accessed.
- 29. The method of claim 24, further comprising storing the table in a volatile memory.
- 30. The method of claim 24, receiving updates for the table from a controller.
- 31. A method for maintaining a table for mapping virtual disk blocks to storage locations on storage devices within a network, comprising:
receiving a command from a controller at an agent storing the table; activating states within entries of the table; completing operations at the table; and updating the table in response to the command.
- 32. The method of claim 31, further comprising setting a blocking flag until operations are completed.
- 33. The method of claim 31, further comprising obtaining mapping information from one of the entries in the table.
- 34. A computer program product comprising a computer useable medium having computer readable code embodied therein for performing an operation on a virtual disk coupled to a host within a network, the computer program product adapted when run on a computer to effect steps including:
specifying a block on the virtual disk within the operation; accessing a table mapping the block to a storage location on a storage device; issuing a corresponding operation to the storage device, wherein the corresponding operation correlates to the operation on the virtual disk; completing the corresponding operation; and presenting the completed corresponding operation to the virtual disk.
- 35. A computer program product comprising a computer useable medium having computer readable code embodied therein for maintaining a table for mapping virtual disk blocks to storage locations on storage devices within a network, the computer program product adapted when run on a computer to effect steps including:
receiving a command from a controller at an agent storing the table; activating states within entries of the table; completing operations at the table; and updating the table in response to the command.
RELATED APPLICATIONS
[0001] This application claims priority from U.S. Provisional Application Nos. 60/209,109 and 60/209,326, filed on Jun. 2, 2000, the disclosures of which are hereby incorporated by reference in full.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60209109 |
Jun 2000 |
US |
|
60209326 |
Jun 2000 |
US |