« ZurückWeiter »
SYSTEM AND METHOD FOR
CONTROLLING MULTIPLE INITIATORS IN
A FIBRE CHANNEL ENVIRONMENT
BACKGROUND OF THE INVENTION
1. Technical Field of the Invention
The present invention relates to channel and network communication systems and processes and, in particular, to a system and method for controlling multiple initiators in a Fibre Channel environment.
2. Description of Related Art
There are two kinds of protocols for device communication: channels and networks. Channels, between a master host computer and a slave peripheral device, are designed to transport a large amount of data at very high speeds over relatively small distances with little software overhead once data transmission commences. A channel generally provides a direct or switched point-to-point connection between a master and a slave that is hardware-intensive. Networks, on the other hand, are designed to interface many users, sharing a plurality of hosts and system resources, over medium to large distances and support many transactions. With respect to networks, higher overhead is generally acceptable as long as high connectivity is achieved.
The Fibre Channel Protocol ("FCP") is a new generation protocol that combines the best of these two disparate methods of communication in a single Open-SystemsInterface-like (OSI-like) stack architecture. Essentially, the Fibre Channel ("FC") is a multi-topology, multi-layer stack with lower-layer-protocols ("LLPs") for controlling the physical transport characteristics and upper-layer-protocols ("ULPs") for mapping LLP communication to and from higher-level software structures that are compatible with an Operating System. These ULPs include both channel and network protocols such as Intelligent Peripheral Interface ("IPI"), Small Computer System Interface ("SCSI"), and Internet Protocol ("IP"), among others.
It is well-known that devices that engage in either channel or network communication may be categorized as "initiators" or "targets" or both, depending upon their functionality. Certain specific functions are assigned to either an initiator or a target: (i) an initiator can arbitrate for the communication path and select a target; (ii) a target can request the transfer of command, data, status, or other information to or from the initiator, and (iii) in some instances, a target can arbitrate for the communication path and reselect an initiator to continue a transaction.
For devices that are operable with the Fibre Channel Protocol, only those devices which have the initiator functionality may initiate what is known in the art as a Link Service Request or an Extended Link Service Request. Link Service commands provide Fibre Channel initiators with the ability to perform such tasks as Node Discovery, Abort Requests and Reject Communication frames. The only Link Service command a Fibre Channel target can initiate is a Reject command/frame ("LS RJT").
Typically, in a single initiator FC environment, the initiator device sends out such Link Service Commands as are needed and expects in response thereto an Acknowledgment
("LS ACK") frame or a Reject frame (LS RJT) from a
target. Hereinafter, these LS ACK and LS RJT frames
will be collectively referred to as "response" frames. In a multi-initiator environment, on the other hand, an initiator operates as both a recipient and a sender of Link Service commands. Because of these twin roles, such an initiator operates as both a recipient and a sender of a response frame.
It is known in the art that because of these bi-directional transmissions among the initiators, there is a great potential for severe confusion in a multi-initiator FC environment. In fact, due to such confusion on the part of initiators, initialization procedures responsible for establishing a viable communication link have been known to stall, causing transmission interruptions in multi-initiator environments.
It can be appreciated that although providing multiple initiators in a channel or network communication system would conceptually increase performance levels and achieve a higher degree of connectivity, interruptions such as those described above in a multi-initiator FC environment could also increase the down-time for the communication links to unacceptable levels in high-performance, leading-edge systems.
Although various single initiator FC implementations have been extant for some time, no multi-initiator FC communication system is known that adequately addresses the above-described problems and deficiencies and/or possesses all of the advantages and novel features of the invention described and claimed hereinbelow.
SUMMARY OF THE INVENTION
The present invention overcomes the above-identified problems as well as other shortcomings and deficiencies of existing technologies by providing a method for managing and controlling a Fibre Channel communication environment in a computer system, which environment includes a plurality of FC devices, at least two of which FC devices are initiators, the method for managing and controlling comprising the steps of: transmitting a request frame from each of the initiators to each of the plurality of FC devices after storing a type information element associated with the request frame; and sending a response frame from each of the initiators without storing its type information element, in response to a received request frame.
The present invention further provides a system for managing and controlling a Fibre Channel communication environment in a computer system, which environment includes a plurality of FC devices, including multiple initiators, the system comprising: means for transmitting a request frame from each of the initiators to each of the plurality of FC devices after storing a type information element associated with the request frame; and means for sending a response frame from each of the initiators without storing its type information element, in response to a received request frame.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present invention may be had by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
FIG. 1 illustrates a block diagram of an exemplary computer system wherein the teachings of the present invention may be practiced;
FIG. 2 depicts a diagrammatic representation of the Fibre Channel (FC) Protocol stack;
FIGS. 3A-3C depict block diagrams of the three topological configurations available for Fibre Channel Nodes;
FIG. 4 illustrates an exemplary embodiment of an Arbitrated Loop with multiple initiators in accordance with the teachings of the present invention; and
FIG. 5 depicts an exemplary flow diagram for a method of controlling a multi-initiator Arbitrated Loop in accordance with the teachings of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS
Referring now to the drawings wherein like or similar elements are designated with identical reference numerals throughout the several views, and wherein the various elements depicted are not necessarily drawn to scale, and, in particular, to FIG. 1, there is shown a block diagram of an exemplary computer system 200 wherein the teachings of the present invention may be practiced. As can be appreciated by those skilled in the art, the computer system 200 is represented herein in its functional aspects. An Operating System ("OS") 210 is operably provided in the computer system 200 to control the information flow associated therewith. The OS 210 may be a Disk Operating System ("DOS") or a Network Operating System ("NOS") such as, for example, Windows NT® or NetWare®, which may be appropriate depending upon whether the computer system 200 is arranged in a network configuration.
The OS 210, moreover, is operable with at least a conventional channel communication interface such as, for 2Q example, the SCSI standard. The exemplary OS 210 may further be provided with such functional structures that would enable interoperability with conventional network communication protocols such as, for example, the Internet Protocol ("IP"). 25
Continuing to refer to FIG. 1, the exemplary OS 210 communicates with an OS-compatible channel or network
communication protocol/interface 215 via an upper level
communication path 230. It should be appreciated that the
upper level communication path 230 in the functional 30
block representation of the exemplary computer system 200 may encompass such OS-software structures as communication protocol drivers, for example, the SCSI protocol drivers or IP protocol drivers. The exemplary OS 210 and the OS-compatible interface/protocol 215 together consti- 35 tute what will be henceforth referred to as an OS environment 250 in the computer system 200. Reference numeral 220 refers to a Fibre Channel ("FC") environment which may encompass a plurality of FC devices operable in accordance with the teachings of the present invention in 40 addition to the known Fibre Channel Protocol ("FCP") architecture described below in further detail.
Still continuing to refer to FIG. 1, it can be appreciated that most Operating Systems including, for example, the OS 210, are not provided with the capability of communicating 45 "directly" with the devices disposed in the FC environment 220. Therefore, in order to operably include and harness the benefits of the FC environment 220 in an exemplary computer system 200, a link path 225 is provided between the FC environment 220 and the OS-compatible communication 50 interface 215.
Referring now to FIG. 2, a diagrammatic representation of the FCP stack architecture is shown generally at 300. As can be readily appreciated, the FCP architecture is structured as a hierarchical set of protocol layers, much like the Open 55 Systems Interface ("OSI") stack. The three bottom layers of the FC stack (layer 310, labeled as FC-0, through layer 320, labeled as FC-2) form what is known as the Fibre Channel Physical Standard ("FC-PH"). This Standard defines all the physical transmission characteristics of a Fibre Channel 60 environment including, for example, the FC environment 220 (shown in FIG. 1). The remaining layers (layer 325, labeled as FC-3 and layer 330, labeled as FC-4) handle interfaces with other network protocols and applications. Unlike the existing Local Area Network ("LAN") technolo- 65 gies such as Ethernet and Token Ring, FC keeps the various functional layers of the stack 300 physically separate. As can
be appreciated, this physical separation enables implementation of some stack functions in hardware and others in software or firmware.
The layer 310, FC-0, is the lowest functional layer of the FC architecture and describes the physical characteristics of the link connections among the plurality of FC devices disposed in the FC environment 220 (shown in FIG. 1). FC-0 supports a basic rate of 133 Mbaud, the most commonly used speed of 266 Mbaud, as well as 531 Mbaud and 1.062 Gbaud. However, because of the overhead involved in establishing and maintaining link connections, the actual data throughput is somewhat lower: 100 Mbit/s for 133 Mbaud, 200 Mbit/s for 531 Mbaud, 400 Mbit/s for 531 Mbaud, and 800 Mbit/s for 1.062 Gbaud. Further, FC-0 supports a wide range of physical cabling, including singlemode or multimode fiber-optic cable, coaxial cable, and shielded twisted pair ("STP") media. Each of these cabling elements supports a range of data rates and imposes specific distance limitations, but FC can mix all of them within the same FC environment such as the FC environment 220 shown in FIG. 2. For instance, single-mode optical fiber could be used for distances up to 10 km; multimode fiber, at 200 Mbit/s, could be used for distances up to 2 km; and STP, which supports 100 Mbit/s, may be used for up to 50 meters.
The layer 315, FC-1, defines the transmission protocol, including the serial encoding and decoding rules, special characteristics, and error control. FC-1 uses an 8B/10B block code, where every 8 data bits are transmitted as a 10-bit group with two extra bits for error detection and correction, known as disparity control. The 8B/10B scheme supplies sufficient error detection and correction to permit use of low-cost transceivers, as well as timing recovery methods to reduce the risk of radio-frequency interference and ensure balanced, synchronized transmissions.
The third layer of the FC-PH, layer 320, FC-2 describes how data is transferred between the FC devices, each FC device being disposed at a "Node," and includes the definition of the frame format, frame sequences, communications protocols, and service classes. The basic unit of data transmission in Fibre Channel is a variable-sized frame. Frames can be up to 2,148 bytes in length, comprising a payload of up to 2,048 bytes; 36 bytes of overhead that provides framing, source and destination port addressing, service type, and error detection information; and up to 64 bytes of additional optional overhead for other miscellaneous information about the user data, that is, the payload. A single higher layer (that is, the upper layers in the stack 300) protocol message may be larger than a frame's payload capacity, in which case, the message will be fragmented into a series of related frames called a sequence.
Continuing to refer to FIG. 2, FC-2 layer can be appreciated as the main "workhorse" of the FCP stack 300. It frames and sequences data from the upper layers (layers 325 and 330) for transmission via the FC-0 layer; it accepts transmissions from the FC-0 layer and reframes and resequences them, if necessary, for use by the upper layers 325 and 330. In addition to defining full duplex transmission path between two nodes, the FC-2 layer also provides essential traffic management functions, including flow control, link management, buffer memory management, and error detection and correction. An important feature of the FCP stack 300 is that the FC-2 layer defines four classes of service to meet a variety of communication needs. Class 1 Service defines hard-wired or circuit-switched connections that are dedicated, uninterruptible communication links. This service provides exclusive use of the connection for its duration (sometimes called a "selfish connection"). Class 1
Service is designed for time-critical, "non-bursty" dedicated links, such as those between two supercomputers. Class 2 Service is a connectionless, frame-switched transmission that guarantees delivery and confirms receipt of traffic. Like conventional packet-switching technologies such as frame relay, Class 2 switching is performed on the FC data frame rather than on a connection. No dedicated connection is established between the nodes; each frame is sent to its destination over any available route. When congestion occurs in Class 2 traffic, the frame is retransmitted until it successfully reaches its destination. Class 3 Service defines one-to-many connectionless frame-switched service that is similar to Class 2 Service, except that it has no delivery guarantee or confirmation mechanism. It can be appreciated that Class 3 transmissions are faster than Class 2 transmissions because they do not wait for confirmation. But if a transmission does not arrive at its destination, Class 3 Service does not retransmit. This service is most often used for real-time broadcasts that cannot wait for acknowledgment but are not sufficiently time-critical to warrant Class 1 Service. It is also used for applications that can tolerate lost frames. Class 4 Service is a connection-based service that offers guaranteed fractional bandwidth and guaranteed latency levels.
The FC-3 layer, layer 325, provides a common set of communication services of higher layer protocols above the FC-PH level. These additional services may include, for example, mechanisms for multicast and broadcast data delivery, "hunt" groups wherein more than one target node can respond to a given initiator node, and multiplexing multiple higher layer protocols and the FC-PH.
The top layer, layer 330, of the FCP stack 300 is the FC-4 layer. It defines the higher layer applications that can operate over an FC infrastructure such as, for instance, the FC environment 220 shown in FIG. 2. The FC-4 layer provides a way to utilize existing channel and network protocols over Fibre Channel without modifying those protocols. Accordingly, the FC-4 layer acts like a protocol convergence layer so that the FC node appears to provide the exact lower-layer transport services that the higher-layer channel or network protocol requires. This convergence function may require that the FC-4 layer provide additional services such as buffering, synchronization, or prioritization of data. It can be appreciated that the FC-4 functionality is encompassed in the link path 225 disposed between the FC environment 220 and the OS-compatible interface 215 of the exemplary computer system 200, shown in FIG. 1.
Still continuing to refer to FIG. 2, various FC-4 level mappings have been specified for a number of higher layer channel and network communication protocols, including: Intelligent Peripheral Interface ("IPI") ; SCSI; HighPerformance Parallel Interface ("HIPPI"); Single Byte Command Code Set ("SBCCS"); Logical Link Control ("LLC"); IP; and Asynchronous Transfer Mode ("ATM") Adaptation Layer ("AAL").
Devices that are operable with the Fibre Channel Protocol, irrespective of whether they are initiators or targets, typically include a controller (hereinafter an "FC controller") that embodies the functionality of some of the middle-layers of the FCP stack 300. For example, current FC controllers typically embody the functionalities of the layers 315 and 320 (FC-1 and FC-2). On the other hand, a host computer system, such as the exemplary computer system 200 shown in FIG. 1, would be responsible for the upperlayers (FC-3 and FC-4). A Physical Link Module ("PLM") such as, for example, a Gigabit Link Module ("GLM") would implement the bottom-most layer 310 (FC-0).
Referring now to FIGS. 3A-3C, three exemplary topological configurations are shown, generally at 490, 491, and 492, respectively, into which the FC Nodes may be arranged. A Node is an entity, system, or device that has the capability
5 to process the ULPs, the FC-3, and some of the FC-2 functions. A Node may contain one or more ports, commonly known as Node Ports or N Ports. An N Port is a
hardware entity within a Node that supports the FC-PH. It may act as an originator (that is, an initiator), a responder (that is, a target), or both. Hereinafter, the terms Node, device and Port will be used somewhat interchangeably for the purpose of the present invention.
Reference numeral 490 refers to a point-to-point topology which utilizes bidirectional communication links 410A, 410B to provide a full duplex transmission path between any two FC Nodes, denoted here as N_Ports 400A and 400B. This connection topology provides the maximum possible bandwidth and lowest latency since there are no intermediate devices/Nodes.
2Q Reference numeral 492 refers to a switched fabric topology where each FC device or Node (N Port) is connected
to an F Port that is part of a fabric, for example fabric 430,
and receives a non-blocking data path to any other connection on the fabric. An F port is the access point of the fabric
25 for physically connecting to another Node. The fabric 430 may be a switch or series of switches and is responsible for routing between Nodes, error detection and correction, and flow control. The operation of the fabric 430 is independent of the higher layer communication protocols, largely
3Q distance-insensitive, and may be based on any technology. Communication paths, for example, path 439, provide a
bidirectional connection between a Node, N Port 440 and
a fabric port (F Port) 436. The switched fabric topology
492 provides the maximum connection capability and total
35 aggregate throughput of all the three FC topologies. It may be appreciated that the switched fabric topology 492 provides the capability to interconnect large number of systems; to sustain high bandwidth requirements; to match data rates between connections of different speeds; and to match
40 different cabling elements.
Reference numeral 491 denotes a loop topology known in the art as an Arbitrated Loop ("AL") pursuant to a connection standard referred to as the FC-AL standard. The loop topology 491 interconnects a plurality of FC devices or
45 Nodes (denoted as loop ports or L Ports) such as, for
example, L Ports 420A through 420D, via unidirectional
links, for example, links 425A through 425D. Thus, this connection arrangement enables each device to use the loop topology 491 as a point-to-point connection between a
50 sender and a receiver, irrespective of any intermediate devices disposed therebetween which merely act as "repeaters."
The arbitrated loop 491 provides a low-cost means of attaching multiple devices without the need for hubs or
55 switches. Although only four L Ports are shown in FIG. 3B,
the loop provides shared bandwidth for up to 127 L Ports.
Each L Port requests use of the loop when it needs to
communicate with another port; if the loop is free, the requesting port sets up a bidirectional connection with the
60 destination port. The loop protocol permits an L Port to
continuously arbitrate to access the transmission medium to
transmit to another L Port; a fairness algorithm ensures that
no L Port gets blocked from accessing the loop. Once a
connection is established, it can then deliver any class of
65 service appropriate to the traffic between the two L Ports.
As is known in the art, only one pair of L Ports may
communicate at one time. When these L Ports relinquish