Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2000-08-21
2003-08-12
Homere, Jean R. (Department: 2177)
Data processing: database and file management or data structures
Database design
Data structure types
C370S216000, C714S004110, C709S238000
Reexamination Certificate
active
06606630
ABSTRACT:
FIELD OF THE INVENTION
The invention relates to the field of computer networking. In particular, the invention relates to the field of nodes and switches for Fibre Channel storage-area networks. With more particularity, the invention relates to data structures for use by nodes in dynamically tracking network resources and configuration so as to properly encode and route packets over the network.
Nature of the Problem
Most modern computer networks, including switched and arbitrated-loop fibre-channel networks, are packet oriented. In these networks, data transmitted between machines is divided into chunks of size no greater than a predetermined maximum. Each chunk is typically packaged with a header and a trailer into a packet for transmission. In Fibre-Channel networks, packets are known as Frames.
A Fibre-Channel network having at least one switch is a switched Fibre-Channel fabric. A Fibre-Channel switch is a routing device generally capable of receiving frames, storing them, decoding destination information from headers, and forwarding them to their destination or another switch further along a path toward their destination. A network interface for connection of a machine to a Fibre Channel fabric is known as an N_port, and a machine attached to a Fibre-Channel network is known as a node. Nodes may be computers, or may be storage devices such as RAID systems. An NL_port is an N_port that supports additional arbitration required so that it may be connected either to a Fibre Channel Fabric or to a Fibre Channel Arbitrated Loop, and an L_port is a network interface for connecting a node to a Fibre Channel Arbitrated Loop.
A device including an N_port, L_port, or an NL_port together with hardware for high-speed connection to a machine is a fibre channel host bus adapter (physical HBA). For example, a physical HBA may comprise a printed circuit card having one or more NL_ports communicating through a PCI bus interface to an edge connector for connection to a PCI bus of a machine. A physical HBA may, but need not, also incorporate a processor for controlling its ports and its connection to the machine.
A Fibre Channel Switched Fabric may connect one or more Fibre Channel Arbitrated Loops.
In a switched fibre channel fabric, there may be more than one possible path, or sequence of links, loops, switches, routers, etc. that may be traversed by a frame, between two nodes. Multiple paths may be intentional, providing extra capacity or redundancy to protect against switch, node, or line failures, or may be unintentional consequences of network topology.
Multiple paths between two nodes may also be provided through multiple fibre channel arbitrated loops. For example, an initiator node may have two NL_ports, one connected to each of two fibre channel arbitrated loops. If each of these loops connects to an NL_port of a target node, then multiple paths from the initiator to the target node exist. This could provide redundancy should a failure occur on one of the arbitrated loops.
Fibre Channel storage-area-network (SAN) nodes and switches, especially network nodes having multiple ports, must keep track of a variety of information about the network and resources available over the network. This information is used by each node to format and properly route frames onto and over the network.
Typically, a program references files in storage by passing a command block to an operating system. At this level, the command block may reference files by name and device name, or by handle for files already opened. The operating system passes block I/O requests derived from the command block to an appropriate driver. The command block includes a command field, a file name field, and a drive name or number field in addition to other fields. The block I/O requests derived from the command block typically include fields for device identification, command, and a count of logical blocks to be operated upon, and may include pointers to data.
The device driver typically converts the block I/O requests into a sequence of one or more device level commands. Once the driver attempts to execute each command, it returns to the operating system a response having status information, and other information possibly including data read from storage. Information from the response may then be transferred to the program.
When a command block references storage accessible over a Fibre Channel network, the driver must encapsulate the device level commands into one or more command frames, and for write operations one or more data frames. The driver may use the network information to determine header information and routing for the one or more fibre channel network frames, or packets, that implement the command.
Typically, the operating system passes block I/O requests to the device driver with a device tag identifying the specific device intended to perform the desired operation. This tag may comprise a referenced device name, handle, or SCSI nexus, where a SCSI nexus includes bus identity, target device number, and logical unit number.
In particular, the driver must translate device tags, into a multilevel address as required to reach the indicated device. In a Fibre Channel context, that multilevel address field must include valid Destination Identification (D_ID) fields and routing information field for each frame. A command frame may specify a specific logical unit. There may also be additional destination address fields such as those in association headers; association headers permit addressing multiple devices or processes through a single fibre channel port.
The driver, especially a multiport driver servicing multiple ports, must therefore determine an appropriate destination and routing for each frame required to implement a command, and transmit those frame over a port appropriate for that routing. It is desirable that these translations and assignments be done quickly and accurately using network topology information maintained in a local topology database.
The command and data frames transmitted by a node in implementing an I/O command, together with any frames transmitted by another node in response to those command and data frames, is known as an exchange.
As nodes, switches, and links are added to or removed from the network, any local topology database must be updated to reflect valid devices on the network, and valid paths through the network to those devices. Nodes also may determine one or more paths of the valid paths to a given device to be an “active” path. An active path is a path that may be used for exchanges.
The Fibre Channel specifications define Class
1
and Class
4
services to be virtual-circuit, or connection, based services between pairs of nodes. Packets of a given sequence in these services must arrive in-order with respect to other packets of the same sequence. The specifications presume that frames transiting between nodes of each pair follow a virtual circuit between the nodes—all following the same path through the network from node to node and arriving in-order.
Links, loops, and switches of a network may fail. Fibre channel networks may provide more than one path between a pair of nodes. Multiple, redundant, paths provide redundancy to allow continued communications between a pair of nodes should one or sometimes more, but not all, links, loops, or switches, and therefore paths through the network, fail.
Some existing fibre-channel systems can recognize failure of a path, switching traffic between a pair of nodes to an alternate path if one exists. This is known as failover of a path. Unfortunately, switching Class
1
and Class
4
fibre channel connections, and associated network traffic, to alternate paths is known to cause considerable delay to ongoing exchanges—on the order of seconds. These delays are caused in part by the need to ensure that Class
1
and Class
4
frames arrive at their destination in-order; time is allowed for flushing in-transit frames before frames are transmitted on the alternate path.
Further delay may occur if redundant controllers having access to the
Homere Jean R.
Wassum Luke S
LandOfFree
Data structure and method for tracking network topology in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data structure and method for tracking network topology in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data structure and method for tracking network topology in a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3103574