The present invention pertains to storage systems and in particular to routing IP datagrams in storage routers.
Storage routers allow devices, such as PCs and servers, to utilize the massive storage capability of a storage network. Access to the storage router by such devices may be provided over an IP network and may implement a predetermined physical layer protocol, such as Ethernet. The storage router may access storage devices through the storage network using another predetermined physical layer protocol. In the case of a fibre channel network, the storage router may communicate packets configured in accordance with a fibre channel protocol over the storage network. Some conventional storage systems also implement a storage protocol, such as the Small Computer Systems Interface (SCSI) protocol, for storage related communications between the servers and storage devices through the storage router. In these SCSI systems, SCSI requests, commands and responses may be encapsulated in IP/Ethernet frames for communications between the servers and the storage router. SCSI requests, commands and responses and may also be encapsulated in fibre channel protocol packets for communications between the storage router and storage (i.e., SCSI) devices.
Conventional storage routers typically employ a single/symmetric data path or channel between a particular device on the IP/Ethernet side and a device on the fibre channel/SCSI side. Many individual devices, such as servers and host systems, may wish to utilize the multiple IP/Ethernet interfaces of a storage router. Multiple interfaces may allow increased communications bandwidth between servers and a storage router and may also provide increased reliability through network redundancy. This allows datagrams to be communicated over more than one data path between multiple ports of the storage router and server. Some conventional storage routers may use a high-speed backplane to support these asymmetric data paths. One problem is that the high-speed backplane is very costly and its incorporation into storage routers significantly complicates the implementation further increasing cost and complexity and possibly reducing reliability.
Thus there is a general need for an improved storage router and method for routing datagrams. There is also a need for a storage router and method for routing datagrams within a storage router that supports asymmetric, multiple and/or redundant communication paths with host systems. There is also a need for a storage router and method for routing IP datagrams between data path processors of a storage router. There is also a need for a storage router and method for routing IP datagrams that is less costly. There is also a need for a storage router and method for routing IP datagrams that is less complex. There is also a need for a storage router and method for routing IP datagrams that is more reliable. There is also a need for an improved SCSI-based storage router and method.
In embodiments, the present invention provides, among other things, an improved storage router and method for routing datagrams. In embodiments, the present invention also provides a storage router and method for routing IP datagrams between data path processors which uses a fibre channel switch.
The appended claims are directed to some of the various embodiments of the present invention. However, the detailed description presents a more complete understanding of embodiments of the present invention when considered in connection with the figures, wherein like reference numbers refer to similar items throughout the figures and:
The following description and the drawings illustrate specific embodiments of the invention sufficiently to enable those skilled in the art to practice it. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Examples merely typify possible variations. Individual components and functions are optional unless explicitly required, and the sequence of operations may vary. Portions and features of some embodiments may be included in or substituted for those of others. The scope of the invention encompasses the full ambit of the claims and all available equivalents.
In embodiments, the present invention provides, among other things, an improved storage router and method for routing datagrams. In embodiments, the present invention also provides a storage router and method for routing IP datagrams between data path processors which uses a fibre channel switch. In embodiments, the present invention also provides a storage router and method for routing datagrams within a storage router that supports multiple and redundant communication paths with host systems supporting multiple IP network ports. In embodiments, the storage router may include an IP network interface with multiple IP network ports and multiple data path processors. Each of the data path processors may control one or more of the IP network ports. High speed communication links may couple the data path processors with a fibre channel switch. The fibre channel switch may switch fibre channel packets between the data path processors and a plurality of fibre channel switch ports. Fibre channel packets may be received at a data path processor and destined for IP addresses associated with IP network ports controlled by other data path processors. In accordance with embodiments, these packets may be re-encapsulated and sent back through the fibre channel switch to another data path processor which controls the IP network port associated with the packet's destination. Accordingly, multiple and redundant communication paths with host systems may be provided. Furthermore, efficient, high-speed, multiple and redundant communication paths may be provided without requiring a high-speed, high-cost backplane.
In accordance with embodiments of the present invention, asymmetric (e.g., two or more different) communication paths 112 between any one of host systems 102 and storage router 106 may be provided. In these embodiments, storage router 106 may, for example, utilize two or more IP network ports to communication with one of host systems 102. In accordance with some additional embodiments of the present invention, asymmetric communication paths 114 may also be provided between storage router 106 and devices 110 of storage network 104.
System 100 allows client devices (not illustrated) access to large scale storage of network 104 by sending requests through hosts 102, which may be general purpose servers. Hosts 102 may connect through IP network 108, which may be the Internet, an Intranet, a LAN or a WAN. A request, which may be a SCSI request, may be generated by host system 102 and encapsulated in one or more IP packets. The encapsulated SCSI request may be routed over IP network 108 and received by storage router 106. The storage router may extract the SCSI request from the one or more IP packets and may route the extracted SCSI request (e.g., through a virtual SCSI router) to storage network 104. Storage router 106 may have a fibre channel network interface for connecting to network 104 which may be running a SCSI protocol.
Although many embodiments of the present invention are described herein with respect to storage network 104 being a fibre channel network through with fibre channel protocol packets are communicated, these embodiments are also suitable to storage networks that implement other network specific protocols, such as InfiniBand, or even to another IP/Ethernet protocol and network. Furthermore, many embodiments of the present invention are described herein with respect to utilizing the SCSI protocol for communications with a storage network. These embodiments are equally suitable to other types of communications, not necessarily with a storage network, including, the use of XML, various types of remote procedure calls (RPCs), and object database communications (ODBC), for example.
One example of suitable storage system may be found in U.S. patent application Ser. No. 10/128,656, filed Apr. 22, 2002, entitled, “SCSI-BASED STORAGE AREA NETWORK”, which is assigned to the same assignee as the present application and incorporated herein by reference.
Storage router 200 includes IP network interface 202 which may have a plurality of IP network ports 204. Storage router 200 may also include a plurality of data path processors 206. In embodiments, each of data path processors (DPP) 206 may control an associated one of IP network ports 204. Storage router 200 may also include switch 208, which may be a fibre channel switch having a plurality of switch ports 210 and 212. In embodiments, fibre channel switch 208 may switch fibre channel packets between any of fibre channel switch ports 210, 212. Although switch 208 is described as a fibre channel switch for switching fibre channel packets, embodiments of the present invention are equally suitable for use with types of switching elements for switching packet over interfaces that implement other protocol communications.
In a conventional SCSI network router, there may be a single data path processor, and the data path between a device on the IP/Ethernet side and a devices on the fibre channel/SCSI side are the same in both directions (e.g., symmetric). In other words, packets communicated in both directions with a device, such host system 102 (
At least some of the fibre channel switch ports 210, 212 are data path processor ports 210 which are coupled to data path processors 206 with high speed communication links 214. Other fibre channel switch ports may be fibre channel network ports 212 which couple to a network, such as network 104 (
Storage router 200 may also include additional high speed communication links 216 coupling each data path processor 206 to IP network interface 202. Each of high speed communication links 216 may be associated with at least one of IP network ports 204.
Although switch 208 is illustrated as being part of storage router 200, in other embodiments, the switch function may be located externally to the storage router. In these embodiments, switch 208 may be coupled with the storage router using high speed communication links 214.
In embodiments, high speed communication links 214 may have data rates that range from 500 megabits to two-gigabits and greater. High speed communication links 216 may have data rates that range from 100 megabits to one-gigabit and greater. In at least one embodiment, high speed communication links 214 may be approximately two-gigabit communication links, and high speed communication links 216 may be approximately one-gigabit communication links. In embodiments, IP network interface 202 may include one or more Gigabit Ethernet interfaces for communicating iSCSI commands, requests and responses encapsulated in IP/Ethernet frames.
Storage router 200 may also include control processor 218 to provide control information to data path processors 206. Control processor 218 may be coupled to data path processors 206 by individual control links 220. Control links 220 may have data rates up to approximately 100-megabits and greater. Control processor 218 manages the initialization of storage router 200 and may implement the human user interface. For purposes of initialization and management of data processors 206 and querying of their operational status, control processor 218 and data processors 206 may communicate via control links 220. For cost purposes, these links may be slower than data path links 214 or 216, and are less suitable for the routing of IP data packets.
For simplicity, storage router 200 is illustrated as having only four data path processors 206, controlled network interfaces 204, associated high speed communication links 214 and switch ports 210, however embodiments of the present invention may include as few as two, and as many as a hundred or more data path processors 206, controlled network interfaces 204, associated high speed communication links 214 and switch ports 210.
In general, data path processors 206 communicate IP packets with IP network interface 202 and communicate storage network protocol packets, such as fibre channel packets, with fibre channel switch 208. When an IP packet is received at a data path processor from the IP network interface, the data path processor may encapsulate or modify the packet to conform to a protocol supported by the storage network and may send the packet to switch 208. When a fibre channel packet is received at a data path processor from one of fibre channel interfaces of switch 208, the data path processor may determine what IP network port 204 the packet's destination is associated with. If the network port is the network port controlled by that data path processor, the data path processor may encapsulate the packet as an IP/Ethernet frame and send the packet over link 216 to interface 202. If the IP network port is an IP network port controlled by another data path processor, the data path processor may encapsulate the packet as an IP/fibre channel packet and send the packet over link 214 through switch 208 where it may be switched to the appropriate data path processor. A receiving data path processor may utilize look-up-table (LUT) 222 to help determine what to do with the packet.
In one embodiment, interface 202 receives encapsulated SCSI packets from IP network 108 (
In embodiments, the IP network interface may provide at least first and second communication paths between a host system and the storage router respectively with first and second IP network ports. The first IP network port may be controlled by a first of the data path processors and the second IP network port may be controlled by a second of the data path processors. The first and second communication paths may comprise an asymmetric data path with the host system. In these embodiments, the first data path processor may receive a fibre channel packet containing SCSI data having a destination associated with the first IP network port, and when the first communication path with the host is operational, the first data path processor may encapsulate at least a portion of the packet as an iSCSI protocol data unit (PDU) inside a TCP inside an IP datagram, and may transfer the IP datagram as an Ethernet frame to the first IP network port. In these embodiments, when the first communication path with the host is non-operational, the first data path processor may re-encapsulate/modify IP datagram in a fibre channel packet modified to identify the fibre channel switch port associated with the second data path processor to identify the second IP network port. The first data path processor may transfer the modified fibre channel packet to the fibre channel switch which may switch the packet to the data path processor port of the fibre channel switch associated with the second data path processor for receipt by the second data path processor. The second data path processor may forward the IP datagram as a frame to the second IP network port.
Although system 200 are illustrated as having several separate functional elements, one or more of the functional elements may be combined and may be implemented by combinations of software configured elements, such as processing elements including digital signal processors (DSPs), and/or other hardware elements. For example, processing elements, such as data path processors 206 and control processor 218 may comprise one or more microprocessors, DSPs, application specific integrated circuits (ASICs), and combinations of various hardware and logic circuitry for at least performing the functions described herein. Unless specifically stated otherwise, terms such as processing, computing, calculating, determining, displaying, or the like, may refer to an action and/or process of one or more processing or computing systems or similar devices that may manipulate and transform data represented as physical (e.g., electronic) quantities within a processing system's registers and memory into other data similarly represented as physical quantities within the processing system's registers or memories, or other such information storage, transmission or display devices. Furthermore, as used herein, computing device includes one or more processing elements coupled with computer readable memory that may be volatile or non-volatile memory or a combination thereof. Moreover, as used herein, data refers to one or more storage data elements, which can include portions of files, a single file, a file extent, a database, a storage device partition, a volume, sets of volumes and the like. The data need not reside on a single storage device and may span multiple storage devices.
In operation 402, a data path processor receives a packet. The packet may be an IP/Ethernet frame received from the IP network port controlled by the data path processor, such as one of ports 204. The packet may also be SCSI packet or a packet configured in accordance with another particular storage network protocol, received from fibre channel switch 208 (
In operation 404, the data path processor may remove any encapsulation or wrapping from the packet to determine the packet's destination. The encapsulation or wrapping, for example, may include an Ethernet header for Ethernet frames, or a fibre channel header for fibre channel packets. In operation 406, the data path processor may look up the packet's destination in a look-up table or routing table to determine the packet's routing at least within the storage router.
Operation 408 determines if the packet's destination is associated with the IP network port controlled by the data path processor. When the packet's destination is associated with the IP network port controlled by the data path processor, operations 410 and 412 may be performed. In operation 410, at least a portion of the packet may be encapsulated as, for example, an IP/Ethernet frame, and in operation 412, the packet may be transferred over a high speed communication link, such as link 216 (
When operation 408 determines that the packet's destination is not associated with the IP network port controlled by the data path processor, operation 414 may be performed. Operation 414 may determine if the packet's destination is an IP address associated with an IP network port controlled by another data path processor. When operation 414 determines that the packet's destination is an IP address associated with an IP network port controlled by another data path processor, operation 416 is performed. In operation 416, the data path processor may modify the packet to identify the fiber switch port associated with the other data processor, and operation 418 may be performed.
When operation 414 determines that the packet's destination is not an IP address associated with an IP network port controlled by another data path processor, operation 418 may also be performed. In this situation, the packet's destination may be a destination in a fibre channel network, such as network 104 (
In operation 418, at least a portion of the packet may be encapsulated as a protocol packet, such as a fibre channel protocol packet, and may include adding a fibre channel header. The fibre channel header of a packet from operation 416 may identify the data path processor port of the fibre channel switch (e.g., one of ports 210) associated with the other data path processor which controls the IP network port associated with the packet's IP network destination. The fibre channel header of a packet directly from operation 414 may identify a fibre channel network port (e.g., one of ports 212) associated with the packets destination in the fibre channel network.
In one embodiment, operation 416 may be combined with operation 418 in which when a packet's destination is an IP address associated with an IP network port controlled by another data path processor, the data path processor encapsulates the packet as a fibre channel packet identifying the data path processor port of the fibre channel switch (e.g., one of ports 210) associated with the other data path processor which controls the IP network port associated with the packet's IP network destination.
In operation 420, the encapsulated packet generated in operation 418 is transferred to the fibre channel switch over high speed communication link 214 (
In operation 424, the packets destined for the fibre channel network may be sent over the fibre channel network interface to a destination in the fibre channel network. In operation 426, the fibre channel packets destined for one of the data path processors may be switched to one of ports 210 and over the associated high speed communication link 214 to a data path processor. The data path processor receiving the fibre channel packet may perform at least some of operations 402 through 420 for the received fibre channel packet. In the case in which the packet was sent by another data path processor which did not control the IP network port associated with the packets destination, the data path processor receiving the packet may perform operations 402 through 412 to send at least a portion of the packet to a destination in the IP network. Accordingly, more that one data path processor and controlled IP network port may be used for asymmetric data path communications with a single host system.
Although the individual operations of procedure 400 are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently and nothing requires that the operations be performed in the order illustrated.
The foregoing description of specific embodiments reveals the general nature of the invention sufficiently that others can, by applying current knowledge, readily modify and/or adapt it for various applications without departing from the generic concept. Therefore such adaptations and modifications are within the meaning and range of equivalents of the disclosed embodiments. The phraseology or terminology employed herein is for the purpose of description and not of limitation. Accordingly, the invention embraces all such alternatives, modifications, equivalents and variations as fall within the spirit and scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4495617 | Ampulski et al. | Jan 1985 | A |
5390326 | Shah | Feb 1995 | A |
5461608 | Yoshiyama | Oct 1995 | A |
5473599 | Li et al. | Dec 1995 | A |
5535395 | Tipley et al. | Jul 1996 | A |
5544077 | Hershey | Aug 1996 | A |
5579491 | Jeffries et al. | Nov 1996 | A |
5600828 | Johnson et al. | Feb 1997 | A |
5666486 | Alfieri et al. | Sep 1997 | A |
5732206 | Mendel | Mar 1998 | A |
5812821 | Sugi et al. | Sep 1998 | A |
5870571 | Duburcq et al. | Feb 1999 | A |
5909544 | Anderson et al. | Jun 1999 | A |
5951683 | Yuuki et al. | Sep 1999 | A |
5991813 | Zarrow | Nov 1999 | A |
5996024 | Blumenau | Nov 1999 | A |
5996027 | Volk et al. | Nov 1999 | A |
6006259 | Adelman et al. | Dec 1999 | A |
6009476 | Flory et al. | Dec 1999 | A |
6018765 | Durana et al. | Jan 2000 | A |
6041381 | Hoese | Mar 2000 | A |
6078957 | Adelman et al. | Jun 2000 | A |
6108300 | Coile et al. | Aug 2000 | A |
6108699 | Moiin | Aug 2000 | A |
6131119 | Fukui | Oct 2000 | A |
6134673 | Chrabaszcz | Oct 2000 | A |
6145019 | Firooz et al. | Nov 2000 | A |
6163855 | Shrivastava et al. | Dec 2000 | A |
6178445 | Dawkins et al. | Jan 2001 | B1 |
6185620 | Weber et al. | Feb 2001 | B1 |
6195687 | Greaves et al. | Feb 2001 | B1 |
6195760 | Chung et al. | Feb 2001 | B1 |
6209023 | Dimitroff et al. | Mar 2001 | B1 |
6219771 | Kikuchi et al. | Apr 2001 | B1 |
6268924 | Koppolu et al. | Jul 2001 | B1 |
6269396 | Shah et al. | Jul 2001 | B1 |
6314526 | Arendt et al. | Nov 2001 | B1 |
6343320 | Fairchild et al. | Jan 2002 | B1 |
6363416 | Naeimi et al. | Mar 2002 | B1 |
6378025 | Getty | Apr 2002 | B1 |
6393583 | Meth et al. | May 2002 | B1 |
6400730 | Latif et al. | Jun 2002 | B1 |
6449652 | Blumenau et al. | Sep 2002 | B1 |
6470382 | Wang et al. | Oct 2002 | B1 |
6470397 | Shah et al. | Oct 2002 | B1 |
6473803 | Stern et al. | Oct 2002 | B1 |
6480901 | Weber et al. | Nov 2002 | B1 |
6484245 | Sanada et al. | Nov 2002 | B1 |
6574755 | Seon | Jun 2003 | B1 |
6591310 | Johnson | Jul 2003 | B1 |
6597956 | Aziz et al. | Jul 2003 | B1 |
6640278 | Nolan et al. | Oct 2003 | B1 |
6654830 | Taylor et al. | Nov 2003 | B1 |
6658459 | Kwan et al. | Dec 2003 | B1 |
6678721 | Bell | Jan 2004 | B1 |
6683883 | Czeiger et al. | Jan 2004 | B1 |
6691244 | Kampe et al. | Feb 2004 | B1 |
6697924 | Swank | Feb 2004 | B2 |
6701449 | Davis et al. | Mar 2004 | B1 |
6718361 | Basani et al. | Apr 2004 | B1 |
6721907 | Earl | Apr 2004 | B2 |
6724757 | Zadikian et al. | Apr 2004 | B1 |
6748550 | McBrearty et al. | Jun 2004 | B2 |
6757291 | Hu | Jun 2004 | B1 |
6760783 | Berry | Jul 2004 | B1 |
6763195 | Willebrand et al. | Jul 2004 | B1 |
6763419 | Hoese et al. | Jul 2004 | B2 |
6771663 | Jha | Aug 2004 | B1 |
6771673 | Baum et al. | Aug 2004 | B1 |
6799316 | Aguilar et al. | Sep 2004 | B1 |
6807581 | Starr et al. | Oct 2004 | B1 |
6823418 | Langendorf et al. | Nov 2004 | B2 |
6839752 | Miller et al. | Jan 2005 | B1 |
6845403 | Chadalapaka | Jan 2005 | B2 |
6856591 | Ma et al. | Feb 2005 | B1 |
6859462 | Mahoney et al. | Feb 2005 | B1 |
6877044 | Lo et al. | Apr 2005 | B2 |
6886171 | MacLeod | Apr 2005 | B2 |
6892252 | Tate | May 2005 | B2 |
6895461 | Thompson | May 2005 | B1 |
6920491 | Kim | Jul 2005 | B2 |
6938092 | Burns | Aug 2005 | B2 |
6944785 | Gadir et al. | Sep 2005 | B2 |
7043727 | Bennett et al. | May 2006 | B2 |
7120837 | Ferris | Oct 2006 | B1 |
7165258 | Kuik et al. | Jan 2007 | B1 |
20020010750 | Baretzki | Jan 2002 | A1 |
20020042693 | Kampe et al. | Apr 2002 | A1 |
20020049845 | Sreenivasan et al. | Apr 2002 | A1 |
20020055978 | Joon-Bo et al. | May 2002 | A1 |
20020059392 | Ellis | May 2002 | A1 |
20020065872 | Genske et al. | May 2002 | A1 |
20020103943 | Lo et al. | Aug 2002 | A1 |
20020116460 | Treister et al. | Aug 2002 | A1 |
20020126671 | Ellis et al. | Sep 2002 | A1 |
20020126680 | Inagaki et al. | Sep 2002 | A1 |
20020156612 | Schulter et al. | Oct 2002 | A1 |
20020188657 | Traversat et al. | Dec 2002 | A1 |
20020188711 | Meyer et al. | Dec 2002 | A1 |
20020194428 | Green | Dec 2002 | A1 |
20030005068 | Nickel et al. | Jan 2003 | A1 |
20030014462 | Bennett et al. | Jan 2003 | A1 |
20030018813 | Antes et al. | Jan 2003 | A1 |
20030018927 | Gadir et al. | Jan 2003 | A1 |
20030058870 | Mizrachi et al. | Mar 2003 | A1 |
20030084209 | Chadalapaka | May 2003 | A1 |
20030084219 | Yao et al. | May 2003 | A1 |
20030097607 | Bessire | May 2003 | A1 |
20030182455 | Hetzler et al. | Sep 2003 | A1 |
20030208579 | Brady et al. | Nov 2003 | A1 |
20030210686 | Terrell et al. | Nov 2003 | A1 |
20040024778 | Cheo | Feb 2004 | A1 |
20040064553 | Kjellberg | Apr 2004 | A1 |
20040141468 | Christensen | Jul 2004 | A1 |
20040233910 | Chen et al. | Nov 2004 | A1 |
20050055418 | Blanc et al. | Mar 2005 | A1 |
20050063313 | Nanavati et al. | Mar 2005 | A1 |
20050268151 | Hunt et al. | Dec 2005 | A1 |