Claims
- 1. A storage virtualization controller, comprising:
a downstream processing element adapted to connect to a storage device; an upstream processing element adapted to connect to a host and further adapted to configurably couple to the downstream processing element so as to transfer data between the host and the storage device at a wire-speed data transfer rate; and a central processing element coupled to the upstream processing element that grants permission to the upstream processing element to transfer the data without further involvement by the central processing element.
- 2. The system of claim 1, wherein the host and the storage device are directly connected to the storage virtualization controller.
- 3. The system of claim 1, wherein the data is transferred between the downstream processing element and the storage device according to a SCSI protocol.
- 4. The system of claim 1, wherein at least one of the host and the storage device is connected to the storage virtualization controller through a switching network.
- 5. The system of claim 4, wherein the wire-speed data transfer rate is a network data transfer rate.
- 6. The system of claim 5, wherein the switching network is a fibre-channel fabric, and the network data transfer rate is at least 1 gigabits per second.
- 7. The system of claim 5, wherein the switching network is a fibre-channel fabric, and the network data transfer rate is at least 2 gigabits per second.
- 8. The system of claim 1, wherein the upstream processing element includes:
a command validator that receives command frames from the host, validates the command frames to form validated commands, and routes the validated commands for execution; and an upstream command processor coupled to the command validator that executes a first class of the validated commands.
- 9. The system of claim 8, wherein the central processing element includes:
a central command processor coupled to the command validator that executes a second class of the validated commands.
- 10. The system of claim 8, wherein the command frames include an identifier for a virtual logical unit, the upstream processing element further comprising:
a virtual logical unit map coupled to the command validator that identifies the downstream processing element associated with the virtual logical unit, the downstream processor coupled to the upstream command processor.
- 11. The system of claim 10, wherein the central processing element is associated with the virtual logical unit, the central processing element further comprising:
a virtual logical unit state store that maintains a current state of the virtual logical unit; and a permission processor coupled to the upstream command processor that receives a request for permission to transfer data frames between the upstream processing element and the downstream processing element at the wire-speed data transfer rate, the permission processor further coupled to the virtual logical unit state store for determining from the current state whether to grant the permission.
- 12. The system of claim 11, wherein the central processing element includes:
a virtual logical unit status manager coupled to the upstream command processor for receiving status information about an execution status of the validated commands, and coupled to the virtual logical unit state store for updating the current state of the virtual logical unit based on the status information.
- 13. The system of claim 1, wherein the upstream processing element appears as a virtual logical unit to the host, and wherein the downstream processing element appears as an initiator to the storage device.
- 14. The system of claim 10, wherein the upstream processing element includes:
a data frame exchanger that receives data frames from one of the host and the storage device and transfers the data frames to the other of the host and the storage device at the wire-speed transfer rate.
- 15. The system of claim 14, wherein the data frame exchanger is coupled to the upstream command processor and configurably coupleable to the downstream processing element, the data frame exchanger instructed by the upstream command processor to couple to the downstream processing element.
- 16. A storage virtualization system, comprising:
at least one upstream processing element adapted for connection to a host for transferring data between the host and a virtual logical unit; at least one downstream processing element adapted for connection to a storage device representative of a portion of the virtual logical unit, a selected one of the downstream processing elements intermittently coupleable to an associated one of the upstream processing elements to form a channel operable at substantially a wire-speed data transfer rate; and a central processing element coupled to the associated one of the upstream processing elements, the central processing element granting permission for the host to access the portion of the virtual logical unit via the channel.
- 17. The system of claim 16, wherein the host and the storage device are each connected to the storage virtualization system via a point-to-point connection.
- 18. The system of claim 17, wherein at least one of the host and the storage device is connected to the storage virtualization system via a switching network.
- 19. The system of claim 18, wherein the wire-speed data transfer rate is the data transfer rate of the switching network.
- 20. The system of claim 19, wherein the switching network is a fibre-channel fabric, and data transfer rate of the switching network is at least 1 gigabits per second.
- 21. The system of claim 19, wherein the switching network is a fibre-channel fabric, and data transfer rate of the switching network is at least 2 gigabits per second.
- 22. The system of claim 16, wherein the permission is an exclusive permission during the intermittent coupling of the selected one of the downstream processing elements to the associated one of the upstream processing elements.
- 23. The system of claim 16, wherein each upstream processing element is adapted for connection to a different host, and wherein each downstream processing element is adapted for connection to a different storage device.
- 24. The system of claim 23, wherein at least some of the different hosts are heterogeneous.
- 25. The system of claim 23, wherein at least some of the different storage devices are heterogeneous.
- 26. The system of claim 23, wherein the associated one of the upstream processing elements further includes a virtual logical unit map, the system further comprising:
a storage configuration module that defines a mapping between the virtual logical unit, one of the storage devices, and one of the downstream processing elements, the mapping stored in the virtual logical unit map and accessible by the associated one of the upstream processing elements.
- 27. A storage virtualization controller, comprising:
a data transfer path to transfer information between a selected host and a selected storage device at substantially a rated speed of a storage area network, the data transfer path configurable between one of a plurality of upstream processing elements connectable to a corresponding one of a plurality of hosts, and one of a plurality of downstream processing elements connectable to a corresponding one of a plurality of storage devices; and a permission processor coupled to the one upstream processing element that grants to the corresponding one of the plurality of hosts a period of exclusive access to the data transfer path.
- 28. The system of claim 27, wherein the data link is a fibre channel fabric, and the rated speed is at least 1 gigabit per second.
- 29. The system of claim 27, wherein the period of exclusive access corresponds to the transfer of a slice of data between the corresponding host and the corresponding storage device.
- 30. A method of accessing a virtual logical unit in a storage area network, comprising:
receiving at an upstream processing element an access request for the virtual logical unit; identifying a storage device associated with at least a portion of the virtual logical unit; identifying a downstream processing element associated with the storage device; obtaining permission from a central processing element for the downstream processing element to perform the access request on the storage device, the permission obtained by the upstream processing element; and transferring data associated with the access request between the upstream processing element and the downstream processing element at substantially a rated speed of the storage area network after the permission is obtained.
- 31. The method of claim 30, wherein the rated speed is at least one gigabit per second.
- 32. The method of claim 30, wherein the receiving an access request includes receiving the access request from a host connected to the upstream processing element, the access request including a command.
- 33. The method of claim 30, further comprising:
the downstream processing element executing the command on the storage device.
- 34. The method of claim 30, wherein the identifying a storage device further comprises:
accessing a predetermined virtual logical unit map to determine the storage device associated with at least the portion of the virtual logical unit.
- 35. The method of claim 30, wherein the identifying a downstream processing element further comprises:
accessing a predetermined virtual logical unit map to determine the downstream processing element associated with the storage device.
- 36. The method of claim 30, wherein the obtaining permission further comprises:
sending a permission request from the upstream processing element to the central processing element, the request for access to the downstream processing element; determining at the central processing element whether to grant permission; and sending a permission response from the central processing element to the upstream processing element.
- 37. The method of claim 36, wherein the determining whether to grant permission includes:
checking a current state of at least one of the storage device and the downstream processing element in order to determine whether the storage device and the downstream processing element are available for access by the upstream processing element; and if available for access, setting a new state of the at least one of the storage device and the downstream processing element that is indicative of use by the upstream processing element.
- 38. The method of claim 36, wherein the permission response grants the permission.
- 39. The method of claim 36, wherein the permission response denies the permission.
- 40. The method of claim 36, wherein the permission response defers the permission, the method further including:
waiting in a queue for the permission to be granted.
- 41. A storage virtualization system, comprising:
means for receiving at an upstream processing element an access request from a host for a virtual logical unit in a storage area network; means for identifying a storage device and a downstream processing element associated with at least a portion of the virtual logical unit; means for obtaining permission from a central processing element for the downstream processing element to perform the access request on the storage device, the permission obtained by the upstream processing element; and means for transferring data associated with the access request between the upstream processing element and the downstream processing element at substantially a rated speed of the storage area network.
- 42. A method of accessing a virtual logical unit in a storage area network, comprising:
receiving at a first upstream processing element a first request from a first host to access a first virtual logical unit; processing the first request so as to associate a storage device and a downstream processing element with at least a portion of the first virtual logical unit; requesting permission for the first upstream processing element to exclusively transfer data with the downstream processing element at substantially a rated speed of the storage area network, the central processing element granting permission; receiving at a second upstream processing element a second request from a second host to access a second virtual logical unit; processing the second request so as to associate the storage device and the downstream processing element with at least a portion of the second virtual logical unit; and requesting permission for the second upstream processing element to exclusively transfer data with the downstream processing element at substantially the rated speed of the storage area network, the central processing element withholding permission.
- 43. The method of claim 42, wherein the central processing element withholds permission at least until the first upstream processing element concludes the exclusive data transfer.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application No. 60/317,817, filed Sep. 7, 2001 and titled “Method & Apparatus for Processing fiber Channel Frames at Wire Speed”, which is incorporated herein by reference. This application also relates to the subject matter disclosed in the copending U.S. application Ser. No. ______ (attorney docket 001210005000000), by Ghate et al., filed concurrently herewith, titled “Compensating for Unavailability in a Storage Virtualization System”, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60317817 |
Sep 2001 |
US |