This invention relates generally to computer networks such as storage area networks, and more particularly to the management of switches and the fabric created by switches.
A computer storage area network (SAN) may be implemented as a high-speed, special purpose network that interconnects different kinds of data storage devices with associated data servers on behalf of a large network of users. Typically, a storage area network is part of or otherwise connected to an overall network of computing resources for an enterprise. The storage area network may be clustered in close geographical proximity to other computing resources, such as mainframe computers, or it may alternatively or additionally extend to remote locations for various storage purposes whether for routine storage or for situational backup or archival storage using wide area network carrier technologies.
SANs or like networks can be complex systems with many interconnected computers, switches and storage devices. Often many switches are used in a SAN or a like network for connecting the various computing resources; typically such switches being configured in an interwoven fashion also known to as a fabric.
Various limitations in the practical size of switch fabrics that may be constructed have been encountered. These can, for example, be size or time limits, as for example where there can be memory or domain identification size limits, or processing or speed restrictions due, for example, to switch intercommunications related to zoning or principal switch selection or selection of the shortest path first, to name but a few. In more detail, a domain identification (ID) size issue can be attributed to certain hardware limits, some conventional devices currently providing for as few as thirty-one (31) domain IDs, or attributed to conventional standards, as in the current SAN standard which supports only 239 domain IDs. Speed and/or processing issues arise in various switch intercommunications, as for example, during zone pushes and merges, i.e., where zone conflicts are verified at interconnection or other initialization. Similarly, quite a large number of switch intercommunications and/or processing can be involved in the selection of the principal switch or in the selection of any fabric shortest path first (FSPF).
Implementations described and claimed herein address the foregoing problems by providing methods and systems which provide improvements in the management of computer or communication network systems. Briefly stated, the present invention involves a method for managing a switch fabric containing at least two switch devices, the method including: establishing a provider/client mode of operation between the at least two switch devices; and operating the at least two switch devices in the provider/client mode; wherein the operating of the at least two switch devices in a provider/client mode includes conserving at least one functionality of at least one of the at least two switch devices.
The technology hereof increases the practical limit of the number of switches and the number of end devices that may exist in a switch fabric. This technology thus increases the practical limit on the size of a switch fabric.
In some implementations, articles of manufacture are provided as computer program products. One implementation of a computer program product provides a computer program storage medium readable by a computer system and encoding a computer program. Another implementation of a computer program product may be provided in a computer data signal embodied in a carrier wave or other communication media by a computing system and encoding the computer program.
Other implementations are also described and recited herein.
In the drawings:
One or more switches may be used in a network hereof, as for example the plurality of switches 112, 114, 116, 118 and 120 shown in the SAN 104 in
Note, though only one fabric 105 is shown and described, many fabrics may be used in a SAN, as can many combinations and permutations of switches and switch connections. Commonly, such networks may be run on a protocol known as fibre channel. These fabrics may include a long-distance connection mechanism (not shown) such as asynchronous transfer mode (ATM) and/or Internet Protocol (IP) connections that enable sites to be separated by arbitrary distances. Furthermore, each of the switches, e.g., each of switches 112-120 can take any of multiple forms, including a stackable or rackable module configuration as described further below.
In either or both of the examples of FIGS. 2 or 3, the switches 222 or 322 may act or at least may have a capability to act in a fashion fully like those interconnected switches 212, 214, 218 and 220 in the core of the fabric 204, 304. However, according hereto, these non-core switches 222, 322 are intended to have an additional capability to operate in an alternative mode providing functionality conservation. In general, the mode of functionality conservation provides for the switches to operate with at least one fewer need for processing or intercommunications with one or more other devices or switches in the fabric. Thus, in one common form hereof, it may be that the distributed switches 222, 322 are connected to fewer other fabric devices, as often to only one (or a typical very few) other switches. Such fewer connections are shown for example by the connections in
When connected as shown in
Reaching this altered operational state may be implemented through use of one or more protocol enhancements, or a set of one or more simplified protocols that singularly and/or in combination reduce the processing and memory requirements to support a large fabric, particularly in a Fibre Channel Fabric embodiment. These protocol enhancements may provide particular benefit in a large fabric made of many low port-count switches. These protocols may include: 1) A definition of a Provider Switch and a Client Switch, and this may include a method and/or an enhancement to an existing protocol or protocols to enable switches to advertise to adjoining switches an ability to operate as a Client or a Provider switch, and to automatically utilize these capabilities, or a subset thereof, when supported by adjacent switches; 2) A method and/or an enhancement to an existing protocol or protocols to enable one or more Client Switches to share the domain ID of a Provider Switch to which the client switch or switches are attached; 3) A method and/or an enhancement to an existing protocol or protocols to enable a subset of two or more Client Switches to share a domain ID amongst themselves; 4) A method and/or an enhancement to an existing protocol or protocols to exclude Client Switches from the Principal Switch election process; 5) A method and/or an enhancement to an existing protocol or protocols that decreases the participation required of a Client Switch in the Fibre Channel Fabric Shortest Path First (FSPF) protocol; 6) A method and/or an enhancement to an existing protocol or protocols to reduce the participation of Client switches in the maintenance of the Fibre Channel distributed zone database; 7) A method and/or an enhancement to an existing protocol or protocols to enable a Client switch to maintain a subset of the distributed zone database (as opposed to the complete database).
As introduced above, the ability to and the protocol for defining Provider and Client Switches can provide various benefits such as reducing the processing and memory requirements of the Client Switches. In certain instances, the processing and memory requirements of the provider switches may also be reduced. Moreover, the capability for the switches themselves to advertise, automatically or otherwise, to adjoining switches their ability to operate as a Client or Provider switch provides the benefit of reduced operator intervention.
Similarly, the sharing of the domain ID of a Provider Switch with the Client switch, and/or the sharing by a subset of two or more Client Switches of a domain ID amongst themselves may provide for: a) Making possible the construction of a Fibre Channel Fabric that exceeds the 239-Switch limit imposed by the current SAN standard; b) Making possible the construction of a Fibre Channel Fabric that exceeds a smaller limit on the number of Switches imposed by a particular Switch implementation; c) Reduction of the processing and memory requirements of the Switch in the Fabric elected “Principal Switch” in accordance with the above-mentioned protocol; d) Reduction of the time required to initialize a Fibre Channel Fabric.
Moreover, the ability of excluding any one or more Client Switches from the Principal Switch election process may provide for: a) Reduction in processing and memory requirements of both AFS-C and AFS-P Switches; b) Reduction in the time required to elect a Principal Switch; c) Reduction in disruption to the Fibre Channel Fabric when an AFS-C Switch joins or leaves the Fabric; d) Reduction of the time required to initialize a Fibre Channel Fabric.
Similarly, the decreasing of the participation required of Client Switches in the Fibre Channel Fabric Shortest Path First (FSPF) protocol may provide: a) Reduction in the processing and memory requirements of both AFS-C and AFS-P Switches; b) Reduction in the time required for the routes to be determined throughout a Fibre Channel Fabric; c) Reduction in the time required for a Fibre Channel Fabric to respond to topological changes necessitating a change to the routing within the Fibre Channel Fabric; and, d) Reduction of the time required to initialize a Fibre Channel Fabric.
Likewise, reducing the participation of Client switches in the maintenance of a distributed zone database may provide the following benefits: a) Reduction in the non-volatile memory required on AFS-C switches; b) Reduction of the processing requirements of both AFS-C and AFS-P switches; c) Reduction of the time required to initialize a Fibre Channel Fabric; d) Reduction of the time required for an AFS-C switch to join a Fibre Channel Fabric. Additionally, enabling a Client switch to maintain a subset of the distributed zone database (as opposed to the complete database) may provide the following benefits: a) Reduction of the processing and memory requirements of AFS-C switches; b) Reduction of the time required to initialize a Fibre Channel Fabric; and, c) Reduction of the time required for an AFS-C switch to join a Fibre Channel Fabric.
Ultimately, one or more of these new set of techniques should dramatically increase the practical limit of the number of switches which may be built into and maintained in a fabric. Again, the client/provider arrangement is a mode of operation. The otherwise “normal” mode of operation may preferably be maintained for small fabrics and/or for direct connect storage, whereas the client/provider mode of operation may be established for larger fabrics. One alternative definition of what constitutes a client mode of operation for a particular switch is that such a switch in the client mode never forwards a frame from one ISL (inter switch link; i.e., between switches) to another.
In more particular detail, the Domain Identification (ID) Conservation Mode will next be described. First it may be noted that conventional Domain IDs are means of identifying switches for routing purposes. Conventionally, these are consumed rapidly; often by as many as hundreds of blade racks, with additional consumption by Inter-Fabric routers and iFCP products. The current standard for Fibre Channel Fabrics limits the number of available domain IDs to 239; although some switch products have even smaller structural limitations (e.g., 31 domain IDs in some current devices). However, according to the disclosure here, when connected to a single Provider switch, one or more Client Switches do not need fabric-wide unique Domain IDs. Rather, each of these client switches may use the same Domain ID as the Provider switch to which they are connected. The Provider switch provides a subset of the area and/or port space for use by each such Client Switch. To the rest of the fabric, the set of Client Switches with a common Domain ID looks like a single switch. They look like the Provider Switch. So long as all routing takes place through that Provider Switch, the correct routing through an otherwise standard Fibre Channel Fabric remains possible, and only that Provider switch knows otherwise. It may also be possible to extend this domain sharing to Client switches connected to multiple Provider switches (see switch 222C in
A particular Domain ID Conservation Example of a process for domain ID sharing includes the following. First, it may be noted that each Provider switch “owns” the entire area/port space for its Domain, then upon connection of one or more Client Switches (switches capable of operating in client mode) to the Provider switch, a negotiation occurs where either or both the Provider and/or the Client indicate if they are capable of and/or are already operating in Domain ID conservation mode. Then, the Provider switch allocates a subset of its space for use in the Domain ID conservation mode by the Client switch. If the provider switch is out of space, a new Domain ID is requested from the Principal Switch (see Principal switch selection process discussed below). Note, domain IDs (or addresses) may be allocated based on Areas or Area/Port combinations depending generally on the respective routing capabilities of the Client and Provider switches.
There are two parts of what may be viewed as Zone Database functionality conservation. These are generally referred to herein as zone merges and zone pushes. These may be separately or jointly operable within the disclosure hereof. Note, zoning is a fibre channel protocol concept which has correspondent operations within alternative protocols, using different nomenclatures. Even so, the concepts hereof as applied to zoning are equally applicable to these other processes.
It may first be noted for conventional zone merges that when a new switch joins a fabric, a zone merge operation must conventionally occur. This process entails the pushing of the entire zone database to the switch joining the fabric. Then, this switch compares the entire zone database to its local zone database to check for conflicts, which if found would then prevent that switch from joining the fabric. This conventional process is computationally intensive. Moreover, the zone database is typically stored in non-volatile memory which is a limited resource for these cost sensitive devices. Now however, with the currently described client/provider mode of operation which may include a zone function conservation mode, the Client Switches may be adapted to not store the zone database locally, and may be adapted to not push nor receive a zone database, and to not check for consistency of the zone database. And, such client switches will not isolate (not join the fabric) as a result. Instead, the zone member data may be pushed by or retrieved from the Provider switch “as needed” (e.g. during FLOGI) if and/or whenever it may be needed by the Client switch.
The process is substantially the same for any zoneset modifications, i.e., changes to a zone not simply related to merging a new switch into a fabric. Conventionally, to modify a Zoneset, an entire new Zoneset must be pushed to every switch and then activated. However, with the client/provider mode described here, Client switches are simply notified of any zone membership changes that affect them. New Zoneset data is pushed only among the non Client switches, i.e., only among Provider Switches and/or any switches not operating in the client/provider mode.
The Principal Switch Selection process is a similar functionality which may be conserved here. The principal switch selection process conventionally requires data communications amongst the all switches of the fabric for determining which switch should be elected (usually by having the highest or lowest world wide name?), and because all switches must conventionally participate, this process thus also grows exponentially with the number of switches in the fabric. However, according to the protocols hereof, a Client Switch has this functionality conserved so that it does not participate in this process, and ultimately never becomes the Principal Switch. Moreover, nor does the client switch need to know which Switch is the Principal Switch, noting, that the Principal Switch is primarily involved in handing out domain IDs to the fabric devices, and even if the Client is not sharing the Domain ID of the Provider, the Provider may nonetheless be the communicator and controller of the Domain ID for the Client, thus, the Client need not communicate with the Principal Switch for any such purpose. Therefore, no EFPs (Exchange Fabric Parameters) are exchanged between Providers and Clients. Clients simply wait for a DIA (Domain Identifier Assigned).
A further operating process whose functionality may be conserved hereby is a selection process for determining the Fabric Shortest Path First, also referred to as FSPF. FSPF is another process conventionally involving communications amongst all switches in a fabric and internal comparisons which causes the overall processing to increase exponentially with the number of switches in the fabric. Conventionally, every switch must maintain a copy of the Link State Record (LSR) from every other switch in the fabric, and thus every switch must participate in communicating of these LSRs back and forth. Indeed, as was the case with zoning information (see above), on Fabric Build, the LSR from every other switch must be loaded in the switch joining the fabric. And, conversely, the LSR from the switch joining must be flooded to every other switch on the fabric. However, a Client Switch according hereto is adapted to have no use for this data. Rather, Client Switches instead receive a single “Summary Record” from each of their adjacent Provider Switches, and from the summary records, computation of actual routes is trivial. Client Switches therefore never receive, generate, process, store or flood a Link State Record. Note, the Provider switches must compute the data for a summary record anyway; this is required for their own forwarding decision. However, this data would now be formatted by the Provider Switches into the proper frame format and forwarded to Client switches. Even so, this work of the Provider switches is much less computation and data transfer than the forwarding of conventional Link State Records. Indeed, the format of a Summary Record already defined by standard this would be a new use. Note moreover, that this may also minimize the processing required of all the core switches.
General and then more specific depictions of how protocols hereof may be implemented are next described.
A more detailed implementation of how a Protocol hereof may work is shown in
In the next steps as indicated at 506, the Client awaits a DIA (Domain Identifier Assigned) signal, which the Provider is obtaining from the fabric Principal Switch (not shown). Then, as indicated at 508, once the DIA received by the Client, the Client then issues a new form of RDI (Request Domain Identifier) that: specifies the number of addresses required for the external devices to which it is/will be connected, and specifies whether it can accept contiguous Area/Port assignments or limited to Area assignments. Next, as indicated at 510, the Provider returns a new form of RDI ACC that provides base Domain/Area or Domain/Area/Port identifiers for the Client's use.
At 512, the Provider is shown providing an FSPF Summary Record, which may be provided on join, fabric build, reconfigure fabric, or topology change that would change the content of the summary record. And, at 514, the zone database is shown as pushed from the Provider to the Client, noting that the zone database merge operation is not performed.
The operating efficiencies here described solve three main problems: first, reducing the processing time and quantity required to one or more interswitch functions; e.g., zoning, principal switch selection, and shortest path first. Second, greatly reduced also is the memory space required to for storage of datasets such as zonesets or link state records. Third, an operational efficiency may be found in the sharing of domain IDs such that faster routing may be achieved, and/or increases may be had in the practical limit of the number of switches and the number of end devices that may exist in a switch fabric. These technologies may thus increase the practical limit on the size of a switch fabric.
The I/O section 604 is connected to one or more user-interface devices (e.g., a keyboard 616 and a display unit 618), a disk storage unit 612, and a disk drive unit 620. Generally, in contemporary systems, the disk drive unit 620 is a DVD/CD-ROM drive unit capable of reading the DVD/CD-ROM medium 610, which typically contains programs and data 622 program products containing mechanisms to effectuate the systems and methods in accordance with the described technology may reside in the memory section 604, on a disk storage unit 612, or on the DVD/CD-ROM medium 610 of such a system 600. Alternatively, a disk drive unit 620 may be replaced or supplemented by a floppy drive unit, a tape drive unit, or other storage medium drive unit. The network adapter 624 is capable of connecting the computer system to a network via the network link 614, through which the computer system can receive instructions and data embodied in a carrier wave. Examples of such systems include SPARC systems offered by Sun Microsystems, Inc., personal computers offered by Dell Corporation and by other manufacturers of Intel-compatible personal computers, PowerPC-based computing systems, ARM-based computing systems and other systems running a UNIX-based or other operating system. It should be understood that computing systems may also embody devices such as Personal Digital Assistants (PDAs), mobile phones, gaming consoles, set top boxes, etc.
When used in a LAN-networking environment, the computer system 600 is connected (by wired connection or wirelessly) to a local network through the network interface or adapter 624, which is one type of communications device. When used in a WAN-networking environment, the computer system 600 typically includes a modem, a network adapter, or any other type of communications device for establishing communications over the wide area network. In a networked environment, program modules depicted relative to the computer system 600 or portions thereof, may be stored in a remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
In accordance with an implementation, software instructions and data directed toward creating and maintaining administration domains, enforcing configuration access control, effecting configuration access of SAN resources by a user, and other operations may reside on disk storage unit 609, disk drive unit 607 or other-storage medium units coupled to the system. Said software instructions may also be executed by CPU 606.
The embodiments of the invention described herein are implemented as logical steps in one or more computer systems. The logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another embodiment without departing from the recited claims.