Intelligent state change notifications in computer networks
10771341 ยท 2020-09-08
Assignee
Inventors
- Ashok Kumar Janardhana (Chennai, IN)
- Satya Boddu (Chennai, IN)
- Mahendaran Pagalpatti Vijayakumar (Bangalore, IN)
Cpc classification
H04L41/0686
ELECTRICITY
International classification
Abstract
In a Fibre Channel network (102), Registered State Change Notifications (RSCNs) are limited by the nodes' rolestarget or initiator. If a state change occurs at a target (110s), then the RSCNs are sent to all the nodes (110) in the same zone as the target. But if a state change occurs at an initiator, the RSCNs are sent only to targets, not initiators (110h), to reduce RSCN traffic. Other features are also provided.
Claims
1. A method for operating a first switch in a network comprising a first set of communication entities communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator, the method comprising: obtaining, by the first switch, one or more status change indications each of which is for a respective first entity which is one of the communication entities, or for the respective first entity's node; in response to each said status change indication: determining the respective first entity's role, which is pure target, pure initiator, or both target and initiator; taking into account the respective first entity's role, determining whether to send a status change notification to each of one or more second entities each of which is one of the communication entities; wherein: for at least one status change indication and at least one second entity, it is determined, taking into account the respective first entity's role, that the status change notification is to be sent to the second entity, and the method comprises sending the status change notification to the second entity based on said determining, taking into account the respective first entity's role, that the status change notification is to be sent to the second entity; for at least one status change indication and at least one second entity, it is determined, taking into account the respective first entity's role, that the status change notification is not to be sent to the second entity, and the method comprises not sending the status change notification to the second entity based on said determining, taking into account the first entity's role, that the status change notification is not to be sent to the second entity.
2. The method of claim 1 wherein for at least one status change notification and at least one second entity, the second entity is associated with a different node than the respective first entity.
3. The method of claim 1 wherein for at least one status change notification and at least one second entity, determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
4. The method of claim 1 wherein for each status change notification and each second entity, if the respective first entity's role is pure initiator, then: if the second entity's role is pure initiator, then the second entity is not sent the status change notification; wherein for at least one status change notification, the respective first entity's role is pure initiator, and at least one second entity's role is pure initiator.
5. The method of claim 4 wherein for each status change notification, if the respective first entity's role is pure initiator, then the status change notification is not sent to any other communication entity having the pure initiator role.
6. The method of claim 1 wherein if the respective first entity's role is pure target or both target and initiator, then the status change notification is sent or not sent to other communication entities without regard to their roles; wherein for at least one status change notification, the respective first entity's role is pure target or both target and initiator.
7. The method of claim 1 wherein for at least one status change notification, the respective first entity is a node's port or adaptor.
8. The method of claim 1 wherein for at least one status change notification, the respective first entity is a computer storage area defined by a Logical Unit Number in a node's computer storage device.
9. A first switch configured to operate in a network comprising a first set of communication entities communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator, the first switch being configured to perform a method comprising: obtaining, by the first switch, a status change indication for a first entity which is one of the communication entities, or for the first entity's node; in response to the status change indication: determining the first entity's role; taking into account the first entity's role, determining whether to send a status change notification to a second entity which is one of the communication entities, and sending the status change notification to the second entity if it is determined that the status change notification is to be sent to the second entity, and not sending the status change notification to the second entity if it is determined that the status change notification is not to be sent to the second entity.
10. The switch of claim 9 wherein the second entity is associated with a different node than the first entity.
11. The switch of claim 9 wherein determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
12. The switch of claim 9 wherein in the method, if the first entity's role is pure initiator, then: if the second entity's role is pure initiator, then the second entity is not sent the status change notification.
13. The switch of claim 9 wherein in the method, if the first entity's role is pure initiator, then the status change notification is not sent to any other communication entity having the pure initiator role.
14. The switch of claim 9 wherein in the method, if the first entity's role is pure target or both target and initiator, then the status change notification is sent or not sent to other communication entities without regard to their roles.
15. The switch of claim 9 wherein in the method, the first entity is a node's port or adaptor.
16. The switch of claim 9 wherein in the method, the first entity is a computer storage area defined by a Logical Unit Number in a node's computer storage device.
17. A non-transitory computer readable medium comprising computer instructions for execution by one or more computer processors of a first switch to configure the first switch to operate in a network comprising a first set of communication entities communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator, the first switch being configured by the one or more computer instructions to perform a method comprising: obtaining, by the first switch, a status change indication for a first entity which is one of the communication entities, or for the first entity's node; in response to the status change indication: determining the first entity's role; taking into account the first entity's role, determining whether to send a status change notification to a second entity which is one of the communication entities, and sending the status change notification to the second entity if it is determined that the status change notification is to be sent to the second entity, and not sending the status change notification to the second entity if it is determined that the status change notification is not to be sent to the second entity.
18. The computer readable medium of claim 17 wherein the second entity is associated with a different node than the first entity.
19. The computer readable medium of claim 17 wherein determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
20. The computer readable medium of claim 17 wherein in the method, if the first entity's role is pure initiator, then: if the second entity's role is pure initiator, then the second entity is not sent the status change notification.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
DESCRIPTION OF SOME EMBODIMENTS
(6) The embodiments described in this section illustrate but do not limit the invention. The invention is defined by the appended claims.
(7) As noted above, the invention is not limited to Fibre Channel (FC) networks, but may include other network types. A network node may be an initiator or a target or both. A node may have multiple ports 110P, with some ports supporting an initiator function but not a target function, and other ports supporting a target function but not initiator function, and still other ports supporting both functions.
(8) The term target refers to a node having one or more data storage devices 130, such as disks, tapes, and perhaps other types, possibly (but not necessarily) implementing block storage of data, i.e. with data being stored and accessed in fixed-size blocks. In some embodiments, the storage areas in devices 130 are addressable, and the address spaces are exposed to initiators 110h, so an initiator can access the devices 130 by specifying an address, as if the initiator were connected to devices 130 by a common bus such as SCSI (Small Computer Serial Interface). For example, in FC networks, a node's devices 130 can be logically viewed as a number of volumes (same as in SCSI). A volume may be a separate device (e.g. disc) or part of a device. The volume has a Logical Unit Number (LUN). When an initiator wishes to access a storage area, the initiator sends a command to the target (a SCSI command for example). A command may be READ, WRITE, FORMAT, or some other type. Some commands, including READ and WRITE commands, specify a specific area in devices 130 by the LUN and Logical Block Address (LBA). LBA is an offset within LUN. The commands may also specify the transfer length, defining the length of the data to be read or written at the LUN/LBA address.
(9) A target node 110s may provide to switch fabric 120 or an initiator node 110h various types of information about the target's devices 130, including the LUNs and associated storage sizes (e.g. in block or byte units).
(10) A target node 110s may also be an initiator, e.g. to back up its devices 130 to another target. In same embodiments, the same port 110P may support both an initiator function and a target function.
(11) Initiators 110h may be connected to another network, e.g. the Internet, to service requests from user computers outside of network 102. Network 102 may or may not be the whole or a part of a commercial data center network.
(12)
(13) At step 320, either before or after or during the step 310, zone 210 definitions are updated (or created) in switch (or switches) 120 to define which zones 210 contain the new node 110 (or the new node's adaptor 110A or port 110P, or the node's LUNs if the node is a target, or the node's corresponding switch port 120F). Zone updating involves updating the zone module 220M of each switch, possibly by a human administrator action. If zone membership is defined by switch ports 120F, then hardware reconfiguration may be needed to update the zones.
(14) At step 330, either before or after or during the steps 310 and 320, the new node's role (or adaptor's or port's role) is provided to the new node 110, possibly by a human administrator. The role may be target only (pure target), or initiator only (pure initiator), or both.
(15) At step 340, the new node's port 110P logs into the switch fabric. The login can be performed via the conventional FLOGI service. Specifically, the node 110 sends, on port 110P, a frame that specifies the node's adaptor's WWN, the port's WWPN, and other information about the new node. WWN and WWPN can be conventional, globally unique, 64-bit numbers.
(16) The switch assigns a 24-bit Fibre Channel ID (FC_ID) to the new node's port 110P, and sends the FC_ID back to the port.
(17) At step 344, the new node sends its role to the switch on the newly connected port 110P. This can be done by the port 110P transmitting an RFF_ID Name Server request, illustrated in
(18) At step 350, the switch stores the role in the switch's memory, e.g. in the name server database 220DB (
(19) At step 360, the switch sends RSCNs to other nodes in the same zone(s) as the new node. The RSCNs are sent based on the new node's role (or adaptor's or port's role): if the role is pure target or both target and initiator, the RSCNs are sent to all the other zone members (nodes or adaptors or ports or LUNs) in the same zone(s), or at least all the other zone members registered with the switch fabric to receive the RSCNs. (Such registration is performed by a node sending an SCN command to the switch fabric; the SCN stands for State Change Notification.) If the new node's role is pure initiator, the RSCNs are not sent to pure initiators, but are sent to the targets, i.e. pure targets and those zone members that are both targets and initiators.
(20) Step 360 is repeated for any state change in network 102 that affects inter-node communications. If a state change occurs in any node 110, the switch 120 closest to the node (e.g. directly connected to the node) detects the change, gets the node's or adaptor's or port's role (e.g. from the switch's name server database 210DB), and sends the RSCNs based on the role as in step 360. Step 350 may also be performed, i.e. the switch may update its databases to reflect the change and may inform other switches, if any, of the change. The other switches may also update their databases to reflect the change.
(21)
(22) An RFF_ID frame 510 is sent to the switch fabric at step 344. The frame is addressed to name server 220, as shown in the D_ID field. WKA means a Well-Known Address, and is hexadecimal FFFFC. The S_ID field (source address) contains the new node's FC_ID generated by the switch at step 340. Near the end of the frame, the new node's role is coded in two bits of FC-4 Feature bits, as follows:
(23) 10 means pure initiator;
(24) 01 means pure target;
(25) 11 means both target and initiator.
(26) The invention is not limited to the RFF_ID, FLOGI, or any other implementation of steps 340 and 344, nor to any implementation of other steps or of nodes 110 or switches 120, except as defined by the appended claims. The hardware architecture of each node 110 or 120 or their port or adaptor may or may not be conventional. One conventional architecture is illustrated in
(27) In one embodiment, IHS 600 includes a processor (or processors) 602 connected to a bus 604. Bus 604 serves as a connection between processor 602 and other components of IHS 600. An input device 606 is coupled to processor 602 to provide input to processor 602. Examples of input devices may include keyboards, touchscreens, pointing devices such as mouses, trackballs, and trackpads, and/or a variety of other input devices known in the art. Programs and data (e g name server 210, zone module 210M, and their respective databases) are stored on a mass storage device 608, which is coupled to processor 602. Examples of mass storage devices may include hard discs, optical disks, magneto-optical discs, solid-state storage devices, and/or a variety other mass storage devices known in the art. IHS 600 further includes a display 610, which is coupled to processor 602 by a video controller 612. A system memory 614 is coupled to processor 602 to provide the processor with fast storage to facilitate execution of computer programs (including possibly the name server and zone module programs) by processor 602. Examples of system memory may include random access memory (RAM) devices such as dynamic RAM (DRAM), synchronous DRAM (SDRAM), solid state memory devices, and/or a variety of other memory devices known in the art. In an embodiment, a chassis 616 houses some or all of the components of IHS 600. It should be understood that other buses and intermediate circuits can be deployed between the components described above and processor 602 to facilitate interconnection between the components and the processor 602.
(28) The invention covers a non-transitory computer readable medium (e.g. compact disk, flash memory, or other type) comprising one or more computer instructions which, when executed by a processor or processors of a switch 120, cause the switch to perform the methods within the scope of the present invention. The instructions can be stored in the switch's memory.
(29) Some embodiments of the invention are defined by the following clauses:
(30) 1. A method for operating a first switch (e.g. 120) in a network comprising a first set (e.g. a zone 210) of communication entities (e.g. nodes or their ports or adaptors or LUNs) communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator,
(31) the method comprising:
(32) obtaining, by the first switch, a status change indication for a first entity which is one of the communication entities, or for the first entity's node;
(33) in response to the status change indication:
(34) determining the first entity's role;
(35) taking into account the first entity's role, determining whether to send a status change notification (e.g. RSCN) to a second entity which is one of the communication entities, and sending the status change notification to the second entity if it determined that the status change notification is to be sent to the second entity.
(36) 2. The method of clause 1 wherein the second entity is associated with a different node than the first entity.
(37) 3. The method of clause 1 or 2 wherein determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
(38) 4. The method of any one of clauses 1 to 3, wherein if the first entity's role is pure initiator, then:
(39) if the second entity's role is pure initiator, then the second entity is not sent the status change notification.
(40) 5. The method of any one of clauses 1 to 4 wherein if the first entity's role is pure initiator, then the status change notification is not sent to any other communication entity having the pure initiator role.
(41) 6. The method of any one of clauses 1 to 5 wherein if the first entity's role is pure target or both target and initiator, then the status change notification is sent or not sent to other communication entities without regard to their roles.
(42) 7. The method of any one of clauses 1 to 6 wherein the first entity is a node's port or adaptor.
(43) 8. The method of any one of clauses 1 to 6 wherein the first entity is a computer storage area defined by a Logical Unit Number in a node's computer storage device.
(44) 9. A first switch configured to operate in a network comprising a first set of communication entities communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator,
(45) the first switch being configured to perform a method comprising:
(46) obtaining, by the first switch, a status change indication for a first entity which is one of the communication entities, or for the first entity's node;
(47) in response to the status change indication:
(48) determining the first entity's role;
(49) taking into account the first entity's role, determining whether to send a status change notification to a second entity which is one of the communication entities, and sending the status change notification to the second entity if it determined that the status change notification is to be sent to the second entity.
(50) 10. The switch of clause 9 wherein the second entity is associated with a different node than the first entity.
(51) 11. The switch of clause 9 or 10 wherein determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
(52) 12. The switch of any one of clauses 9 to 11 wherein in the method, if the first entity's role is pure initiator, then:
(53) if the second entity's role is pure initiator, then the second entity is not sent the status change notification.
(54) 13. The switch of any one of clauses 9 to 12 wherein in the method, if the first entity's role is pure initiator, then the status change notification is not sent to any other communication entity having the pure initiator role.
(55) 14. The switch of any one of clauses 9 to 13 wherein in the method, if the first entity's role is pure target or both target and initiator, then the status change notification is sent or not sent to other communication entities without regard to their roles.
(56) 15. The switch of any one of clauses 9 to 14 wherein in the method, the first entity is a node's port or adaptor.
(57) 16. The switch of any one of clauses 9 to 14 wherein in the method, the first entity is a computer storage area defined by a Logical Unit Number in a node's computer storage device.
(58) 17. A non-transitory computer readable medium comprising computer instructions for execution by one or more computer processors of a first switch to configure the first switch to operate in a network comprising a first set of communication entities communicating over the first switch, each communication entity being associated with a network node using the communication entity in communicating over the first switch, each communication entity having a role in said communicating, the role being one of: pure target, pure initiator, or both target and initiator,
(59) the first switch being configured by the one or more computer instructions to perform a method comprising:
(60) obtaining, by the first switch, a status change indication for a first entity which is one of the communication entities, or for the first entity's node;
(61) in response to the status change indication:
(62) determining the first entity's role;
(63) taking into account the first entity's role, determining whether to send a status change notification to a second entity which is one of the communication entities, and sending the status change notification to the second entity if it determined that the status change notification is to be sent to the second entity.
(64) 18. The computer readable medium of clause 17 wherein the second entity is associated with a different node than the first entity.
(65) 19. The computer readable medium of clause 17 or 18 wherein determining whether to send the status change notification to the second entity is performed taking into account the second entity's role.
(66) 20. The computer readable medium of any one of clauses 17 to 19 wherein in the method, if the first entity's role is pure initiator, then:
(67) if the second entity's role is pure initiator, then the second entity is not sent the status change notification.
(68) The invention is not limited to the embodiments described above. Some embodiments include FCoE links and non-FC networks. A zone may have members of a different kind, i.e. a zone may include an adaptor member, a port member, and a LUN member. Other embodiments and variations are within the scope of the invention, as defined by the appended claims.