Protocol translation in a storage system
First Claim
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.
10 Assignments
0 Petitions
Accused Products
Abstract
A storage switch in accordance with an embodiment of the invention is a highly scalable switch that allows the creation of a SAN that is easy to deploy and that can be centrally managed. Moreover, such a storage switch also allows the deployment of a global infrastructure, allowing the resources of the SAN, such as storage devices, to essentially be positioned anywhere on the globe. Further, such a storage switch allows a multi-protocol SAN, e.g., one that includes both iSCSI or Fibre Channel, and processes data packets at “wire speed.” To further enable wire-speed processing, a switch in accordance with the invention has “intelligence” distributed to each of its linecards, through which it classifies packets into data and control packets, it performs virtualization functions, and it performs protocol translation functions. A switch in accordance with the invention further performs serverless storage services such as mirroring, snapshot, and replication.
224 Citations
49 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
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. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
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. - View Dependent Claims (35, 36)
-
-
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. - View Dependent Claims (38, 39, 40, 41)
-
-
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. - View Dependent Claims (44, 45, 46, 47)
-
-
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.
-
Specification