Claims
- 1. A method for use in a system for storing and accessing data, the method comprising:
(a) receiving a packet formatted in accordance with a first protocol from a first device that operates in accordance with the first protocol; (b) translating the packet to one formatted in accordance with a second protocol; (c) forwarding the packet to a second device that operates in accordance with the second protocol; and wherein steps (a)-(c) occur without buffering the packet.
- 2. The method of claim 1, wherein steps (a)-(c) occur at wire speed.
- 3. The method of claim 1, wherein translating includes mapping at least some of the fields of the packet formatted in accordance with the first protocol into the packet formatted in accordance with the second protocol.
- 4. The method of claim 3, wherein translating further includes adding information into any fields of the packet formatted in accordance with the second protocol that are not mapped from the packet formatted in accordance with the first protocol.
- 5. The method of claim 1, wherein the first protocol is iSCSI and the second protocol is Fibre Channel.
- 6. The method of claim 5, wherein the first protocol is iSCSI embedded in TCP.
- 7. The method of claim 1, wherein the first protocol is Fibre Channel and the second protocol is iSCSI.
- 8. The method of claim 7, wherein the second protocol is iSCSI embedded in TCP.
- 9. The method of claim 1, wherein the first device is an initiator and the second device is a target.
- 10. The method of claim 1, wherein the first device is a target and the second device is an initiator.
- 11. A method for use in a system for storing and accessing data, the method comprising:
(a) receiving a packet formatted in accordance with a first protocol from a first device that operates in accordance with the first protocol; (b) translating the packet to one formatted in accordance with a second protocol; (c) forwarding the packet to a second device that operates in accordance with the second protocol; and wherein steps (a)-(c) occur at wire speed.
- 12. A method for use in a system for storing and accessing data, the method comprising:
receiving a packet formatted in accordance with a first recognized protocol; and mapping the fields of the packet to a new packet formatted in accordance with a second protocol without buffering the packet.
- 13. The method of claim 12, wherein the steps of receiving and mapping are performed at wire speed.
- 14. The method of claim 12, wherein mapping includes mapping the fields of the packet to a new packet formatted in accordance with a second protocol without buffering and without using CPU resources.
- 15. The method of claim 12, wherein the first protocol is iSCSI and the second protocol is Fibre Channel.
- 16. The method of claim 15, wherein the first protocol is iSCSI embedded in TCP.
- 17. The method of claim 12, wherein the first protocol is Fibre Channel and the second protocol is iSCSI.
- 18. The method of claim 17, wherein the second protocol is iSCSI embedded in TCP.
- 19. The method of claim 12, wherein the packet contains a SCSI command descriptor block (CDB).
- 20. A method for use in a system for storing and accessing data, the method comprising:
receiving a packet from a first device, the packet formatted in accordance with one of the iSCSI or Fibre Channel protocols; if the packet is formatted in accordance with the iSCSI protocol, translating the packet into a Fibre Channel packet by mapping at least some of the fields from the packet formatted in accordance with the iSCSI protocol into the Fibre Channel packet; if the packet is formatted in accordance with the Fibre Channel protocol, translating the packet into an iSCSI packet by mapping at least some of the fields from the packet formatted in accordance with the Fibre Channel protocol into the iSCSI packet; forwarding the packet as translated to a second device; and wherein all of the above steps are performed without buffering.
- 21. The method of claim 20, wherein all of the steps are performed at wire speed.
- 22. The method of claim 20, wherein the first device is an initiator and the second device is a target.
- 23. The method of claim 20, wherein the first device is a target and the second device is an initiator.
- 24. The method of claim 20, wherein the packet received is an iSCSI Command PDU and wherein the packet as translated is a Fibre Channel Command IU.
- 25. The method of claim 20, wherein the packet received is a Fibre Channel XFR_RDY IU and wherein the packet as translated is an iSCSI R2T PDU.
- 26. The method of claim 20, wherein the packet received is an iSCSI Write Data PDU and wherein the packet as translated is a Fibre Channel Data IU.
- 27. The method of claim 20, wherein the packet received is a Fibre Channel Data IU and wherein the packet as translated is an iSCSI Read Data PDU.
- 28. The method of claim 20, wherein the packet received is a Fibre Channel Response IU and wherein the packet as translated is an iSCSI Response PDU.
- 29. The method of claim 20, wherein the packet received is a Fibre Channel Command IU and wherein the packet as translated is an iSCSI Command PDU.
- 30. The method of claim 20, wherein the packet received is an iSCSI R2T PDU and wherein the packet as translated is a Fibre Channel XFR_RDY IU.
- 31. The method of claim 20, wherein the packet received is a Fibre Channel Data IU and wherein the packet as translated is an iSCSI Write Data PDU.
- 32. The method of claim 20, wherein the packet received is an iSCSI Read Data PDU and wherein the packet as translated is a Fibre Channel Data IU.
- 33. The method of claim 20, wherein the packet received is an iSCSI Response PDU and wherein the packet as translated is a Fibre Channel Response IU.
- 34. A method for use in a system for storing and accessing data, the method comprising:
receiving at an ingress linecard a packet formatted in accordance with a first protocol, the packet destined for a virtual target with a virtual target address; the ingress linecard retrieving information about the virtual target from a virtual target descriptor, the information including a flowID, and placing a virtual target descriptor identifier and the flowID, in a local header of the packet; the ingress linecard forwarding the packet to a fabric, which forwards the packet to an egress linecard in accordance with the flowID; the egress linecard using the virtual target descriptor identifier to identify information about a physical target associated with the virtual target, including whether the physical target requires a packet formatted in accordance with a second protocol, and using the information about the physical target to convert a virtual target block address to a physical target block address and to translate, if necessary, the format of the packet from the first protocol to the second protocol; and the egress linecard sending the packet to the physical target using the physical target block address.
- 35. The method of claim 34, wherein all of the steps are performed without buffering.
- 36. The method of claim 34, wherein all of the steps are performed at wire speed.
- 37. A linecard, comprising:
a port; and a translator in communication with the port, the translator translating a packet from a first protocol to a second protocol without buffering.
- 38. The linecard of claim 37, further including a CPU distinct from the translator.
- 39. The linecard of claim 37, wherein translating includes mapping fields from the packet when formatted in accordance with the first protocol into fields in the packet as formatted in accordance with the second protocol.
- 40. The linecard of claim 37, wherein the first protocol is iSCSI and the second protocol is Fibre Channel.
- 41. The linecard of claim 37, wherein the first protocol is Fibre Channel and the second protocol is iSCSI.
- 42. A linecard, comprising:
a port; and means for translating a packet from a first protocol to a second protocol without buffering, said means in communication with the port.
- 43. A switch, comprising:
a first linecard having a first port capable of being coupled to a first device that operates in accordance with a first protocol; a fabric in communication with the first linecard; a second linecard in communication with the fabric and having a second port capable of being coupled to a second device that operates in accordance with a second protocol; the second linecard including a protocol translator, wherein the protocol translator has an input coupled to receive a packet formatted in accordance with the first protocol from the fabric and has an output coupled to the second port to produce a packet formatted in accordance with the second protocol and that corresponds to the packet formatted in accordance with the first protocol; and the second linecard further including a CPU distinct from the protocol translator.
- 44. The switch of claim 43, wherein the switch is designed to receive a packet formatted in accordance with the first protocol at the first port and produce at the second port the packet formatted in accordance with the second protocol at wire speed.
- 45. The switch of claim 43, wherein the protocol translator operates without buffering the packet.
- 46. The switch of claim 43, wherein the first device is an initiator and the second device is a target.
- 47. The switch of claim 43, wherein the first device is a target and the second device is an initiator.
- 48. A switch, comprising:
a plurality of linecards, each linecard including at least one port; and means for receiving at a first port on a first linecard a packet formatted in accordance with a first protocol and destined for a virtual target and sending at a second port on a second linecard a corresponding packet formatted in accordance with a second protocol to a physical target associated with the virtual target at wire speed.
- 49. A set of software instructions stored on at least one medium in a switch for use in a system for storing and accessing data, which instructions are executable by a processor, the instructions including:
instructions for receiving a packet from a first device, the packet formatted in accordance with one of the iSCSI or Fibre Channel protocols; if the packet is formatted in accordance with the iSCSI protocol, instructions for translating the packet into a Fibre Channel packet by mapping at least some of the fields from the packet formatted in accordance with the iSCSI protocol into the Fibre Channel packet; if the packet is formatted in accordance with the Fibre Channel protocol, instructions for translating the packet into an iSCSI packet by mapping at least some of the fields from the packet formatted in accordance with the Fibre Channel protocol into the iSCSI packet; instructions for forwarding the packet as translated to a second device; and wherein all of the above instructions do not require the packet to be buffered.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to Provisional Application Serial No. 60/325,704, entitled STORAGE SWITCH FOR STORAGE AREA NETWORK, and filed Sep. 28, 2001, and incorporated by reference herein.
[0002] This application is also related to the following applications, all filed concurrently herewith and all incorporated herein by reference:
[0003] STORAGE SWITCH FOR STORAGE AREA NETWORK, Ser. No. ______ [atty. dkt. No. MARA-01000US1];
[0004] SERVERLESS STORAGE SERVICES, Ser. No. ______ [atty. dkt. No. MARA-01002US0];
[0005] PACKET CLASSIFICATION IN A STORAGE SYSTEM, Ser. No. ______ [atty. dkt. No. MARA-01003US0];
[0006] VIRTUALIZATION IN A STORAGE SYSTEM, Ser. No. ______ [atty. dkt. No. MARA-01005US0];
[0007] ENFORCING QUALITY OF SERVICE IN A STORAGE NETWORK, Ser. No. ______ [atty. dkt. No. MARA-01006US0];
[0008] POOLING AND PROVISIONING STORAGE RESOURCES IN A STORAGE NETWORK, Ser. No. ______ [atty. dkt. No. MARA-01007US0]; and
[0009] LOAD BALANCING IN A STORAGE NETWORK, Ser. No. ______ [atty. dkt. No. MARA-01008US0].
Provisional Applications (1)
|
Number |
Date |
Country |
|
60325704 |
Sep 2001 |
US |