Embodiments described in this disclosure generally relate to Fibre Channel networks. More particularly, the described embodiments relate to methods and apparatus for allocating sub-areas of Fibre Channel addresses (FCIDs) to a device for efficient storage of routing information in a ternary content addressable memory (TCAM).
With the increasing popularity of Internet commerce and network centric computing, businesses and other organizations are becoming more and more reliant on information. To handle all of this data, storage area networks or SANs have become very popular. A SAN typically includes a number of storage devices, a plurality of hosts, and a number of switches arranged in a Switching Fabric that connects the storage devices and the hosts.
Fibre Channel frames are used for communication between hosts and storage devices within a Fabric. A Fibre Channel frame header carries the addresses for the source and destination devices (e.g., Fibre Channel addresses or FCIDs). When a host wishes to access a storage device, the FCIDs of the host and the storage device are inserted into the source and destination fields of the header. The switches within the fabric then route the frame to the target storage device using the destination FCID. The target device generates a response frame that includes its own FCID in the source field and the FCID of the host in the destination field. The frame is then routed back across the fabric in a similar way.
So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
Certain embodiments of the present disclosure provide techniques for communication in a Fibre Channel Network. The method generally includes receiving a request from a device to login to a switch, allocating a range of Fibre Channel addresses (FCIDs) to the device and generating a single entry in a memory indicating the range.
Certain embodiments of the present disclosure provide a switch for communication in a Fibre Channel Network. The switch generally includes a processor; and a memory containing a program configured to communicate in the network, which, when executed on the processor performs an operation, comprising receiving a request from a device to login to the switch, allocating a range of FCIDs to the device, and generating a single entry in a memory indicating the range.
Certain embodiments of the present disclosure provide a computer-readable storage medium, containing a program, which, when executed on a processor is operable to receive a request from a device to login to a switch, allocate a range of FCIDs to the device, and generate a single entry in a memory indicating the range.
Embodiments of the present disclosure generally relate to allocating a range of Fibre Channel addresses (FCIDs) to a device. Doing so allows the routing information to be stored efficiently in a Ternary Content Addressable Memory (TCAM) using a single entry in the TCAM for each sub-area of FCIDs, instead of storing the FCID for each logged in device.
Currently, when a disk storage device attempts to perform a flogi (fabric login) operation followed by multiple fdiscs (fabric discovery) operations, it requires multiple FCIDs, consuming a TCAM entry for each one. Embodiments set forth herein assign all FCIDs required by a disk storage device within a contiguous sub-area field, so an entry in a TCAM can reference the range of FCIDs using only a single entry.
For certain embodiments, in order to conserve TCAM entries, FCIDs that belong to a physical device may be assigned from a contiguous range. These ranges may be called sub-areas and span from a single FCID to 256 FCIDs. For certain embodiments, a size of the sub-areas may be powers of two. For certain embodiments, the sub-area may have any size that is not necessarily a power of two. The advantage of such an FCID allocation scheme is a single TCAM entry may be enough for each device that needs to login to the switch and its associated fabric discovery requests. In addition, if the allocated sub-area overflows, the switch may assign an additional sub-area to the device.
This disclosure references various embodiments. However, it should be understood that this disclosure is not limited to embodiments described herein. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice an embodiment. Furthermore, in various embodiments, embodiments provide numerous advantages over the prior art. However, although embodiments may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s).
Additionally, the application programs disclosed herein may be distributed on a variety of computer-readable storage media. Illustrative computer-readable storage media includes, but is not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive) on which information is permanently stored; (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive) on which alterable information is stored.
Fibre Channel networks utilize an arrangement of switches, called a fabric, to connect devices. This approach simplifies the overhead associated with network traffic, as a device with a Fibre Channel port need only manage a point-to-point connection between its port and the fabric.
When a device (e.g., a disk) requests to login to a fabric (flogi), it may obtain a single FCID from a local switch. For any subsequent fabric discovery (fdisc) requests performed by the same device, the local switch may again assign a single FCID. And for each FCID assigned to a device, an entry may be reserved in a TCAM to store routing information. Thus, as a single device frequently issues multiple fdisc requests, multiple TCAM entries are required to store the FCID assigned in response to each request, even though traffic corresponding to each entry is ultimately routed to the same port. In one embodiment, by assigning a sub-area for the device, only the address of the sub-area needs to be stored in a TCAM entry on the local switch. Thereafter, as fabric discovery (fdisc) requests are received, FCIDs are assigned using an address within the range of the sub-area, allowing the single TCAM entry to correctly route traffic to the device following the assignment.
The proposed method may result in savings in the number of required entries in a TCAM. The savings could be seen as either reduction in cost of the required hardware or an increase in the number of devices that may connect to a switch. This may be particularly important for future virtualized networks with many virtualized devices that need to be connected to a switch, hence consuming large number of FCIDs and TCAM entries.
Because the local switch deals with fabric login and fabric discovery requests performed by various devices on a first-come first-served basis, the FCIDs assigned to each device, in general, may not be contiguous over the 16-bit range identified by the area and port fields. This implies that if a device performs an flogi and later ten fdisc requests, eleven entries in the TCAM may need to be reserved in order to store all of the FCIDs.
For certain embodiments, the number of entries that need to be stored in a TCAM may be reduced by allocating a plurality (or sub-area) of FCIDs to a device over a contiguous range and storing a single entry in the TCAM corresponding to the range of FCIDs.
For certain embodiments, if the device has used all of the available FCIDs in the allocated range, an additional range of FCIDs may be allocated to the device.
Therefore, for certain embodiments, by grouping (treating as wildcard or “starring”) the least significant bits of the port field in the FCID address, it is possible to compactly store a plurality of FCIDs associated with a device utilizing a single TCAM entry.
According to the techniques described herein, instead of consuming four TCAM entries (e.g., entries 602-608) for the four allocated FCIDs (as shown in
Thus, as described, when disk requests to login to the switch (e.g., using the flogi operation), a plurality of FCIDs are assigned to it over a contiguous range. In this example, four consecutive FCIDs are assigned to disk X, and the mask address can, therefore, be stored efficiently in a TCAM using a single entry. The single TCAM entry represents the range of addresses assigned to the device in response to the flogi request instead of a specific FCID address assigned.
As mentioned before, the area and port fields in an FCID address contain 16 bits. In one embodiment, the consecutive addresses all share the same most significant bits (MSBs) in the area and port fields. In this example, the range of four addresses corresponds to the 14 MSBs of the port and area fields in an FCID address, and the 2 least significant bits (LSBs) of the FCIDs can take any value (i.e., can be either a 0 or 1).
As shown in the entry 610, the size of the mask can be indicated by adding a suffix (e.g., the ‘/14’) after an FCID address. This notational format corresponds to the value of a “mask” in the CIDR (Classless Inter-Domain Routing) allocation scheme used for IP addresses. The number of addresses in the sub-area is equal to 2a-m, where a represents the total number of bits in the address (e.g., the 16 bits in the area and port fields of an FCID address) and represents the width of the sub-area field. Hence, the number of FCID addresses in the sub-area in
For example, if size of the sub-area is equal to 32 (i.e., a mask of the 11 MSBs, leaving a range of 5 bits for a sub-range of 33 FCIDs), then the maximum number of flogi requests allowed per VSAN equals 2048 (i.e., 211) requests. Note, this allows eight times more requests than is possible using the current FCID allocation scheme. Therefore, 2048 entries may be required in the TCAM to store the routing information for the devices, instead of 2048 plus a separate entry for each fabric discovery (fdisc) request made by each of the 2048 devices. Similarly, sub-area sizes of 16 and 64 FCIDs may require 4096 and 1024 TCAM entries, respectively. Therefore, the larger the size of the sub-area, the smaller the number of required TCAM entries and the greater the savings in terms of TCAM entries.
On the other hand, large sub-area sizes may result in larger internal fragmentation than smaller sub-area sizes. Because if a device is assigned blocks of FCIDs, on average, it may use only half of the FCIDs in the last block. Therefore, sub-area of size 32 may be a suitable choice for the FCID allocation scheme. For certain embodiments, it is possible to mix and match sub-areas of different sizes within the same VSAN.
It should be noted that the proposed FCID allocation scheme is backward compatible with the current FCID allocation schemes. Therefore, it can be used in VSANs that already assign single FCIDs or entire areas to devices.
Certain embodiments of the present disclosure proposed a technique to assign FCIDs required by a device within a contiguous sub-area, so that a TCAM may store routing information corresponding to the FCIDs using only a single entry. There are two main advantages in the proposed scheme.
First, for certain embodiments, a switch may be able to serve more devices (e.g., more than 256) per VSAN, since instead of allocating an entire area (e.g., 256 FCIDs) in order to guarantee a device obtains FCIDs that are all contiguous, the switch may allocate a sub-area of contiguous FCIDs (e.g., 32 FCIDs), and later assign an additional sub-area to the same device if the allocated sub-area is not enough. And second, the routing information corresponding to a sub-area of FCIDs may be stored using a single entry in a TCAM.
While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Number | Name | Date | Kind |
---|---|---|---|
5805924 | Stoevhase | Sep 1998 | A |
6014715 | Stoevhase | Jan 2000 | A |
6400730 | Latif | Jun 2002 | B1 |
7424533 | Di Benedetto | Sep 2008 | B1 |
7512123 | DeSanti et al. | Mar 2009 | B1 |
7711893 | Venkatachary | May 2010 | B1 |
7773629 | Dropps et al. | Aug 2010 | B1 |
8351448 | McGlaughlin | Jan 2013 | B1 |
8705351 | McGlaughlin | Apr 2014 | B1 |
8706905 | McGlaughlin | Apr 2014 | B1 |
8711864 | Ko | Apr 2014 | B1 |
20020034178 | Schmidt et al. | Mar 2002 | A1 |
20040141521 | George | Jul 2004 | A1 |
20060047907 | Shiga et al. | Mar 2006 | A1 |
20060176889 | Berman | Aug 2006 | A1 |
20070002883 | Edsall et al. | Jan 2007 | A1 |
20070266132 | Hariharan | Nov 2007 | A1 |
20070297428 | Bose | Dec 2007 | A1 |
20080095152 | George et al. | Apr 2008 | A1 |
20080320143 | Di Benedetto | Dec 2008 | A1 |
20090019142 | Dutt | Jan 2009 | A1 |
20090037977 | Gai | Feb 2009 | A1 |
20090092141 | Banerjee | Apr 2009 | A1 |
20090141657 | Dutt et al. | Jun 2009 | A1 |
20090162058 | DeSanti et al. | Jun 2009 | A1 |
20090252181 | Desanti | Oct 2009 | A1 |
20090327518 | DeSanti et al. | Dec 2009 | A1 |
20100082895 | Branscome et al. | Apr 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
20110219183 A1 | Sep 2011 | US |