The subject matter of this disclosure is generally related to data storage systems.
Data centers include data storage nodes, servers, switches, and interconnecting cabling. The servers host instances of software applications for organizational processes such as email, accounting, inventory control, e-business, and engineering. Host application data is stored on logical storage objects that are maintained by the storage nodes. Input-output (IO) operations that access the storage objects are sent between the servers and storage nodes via the switches. Performance of a host application instance is dependent on performance of the server on which the instance runs, data access latency of the storage node, and performance of the interconnecting switches, including the physical communication links. Detecting and localizing problems in such a complex system is a difficult and slow manual process, particularly in the case of failures associated with the servers because they may be numerous. It is common practice to expedite repairs by replacing subsystems that could possibly be the problem without first localizing the fault to a particular server subsystem.
A method in accordance with some implementations comprises: monitoring target resets sent by initiators from ports of host bus adapters of a plurality of host servers and received at a plurality of ports of a storage node; calculating counts of the target resets received from each port of the host bus adapters; and identifying a first port of a first host bus adapter of a first host server as faulty based on: receiving a predetermined number of the target resets from the first port of the first host bus adapter within a predetermined time period at a first port of the plurality of ports of the storage node; and not receiving target resets from other ports of the first host bus adapter.
An apparatus in accordance with some implementations comprises: a storage node comprising at least one compute node with local memory, at least one host adapter with ports, and a detector and localizer configured to: monitor target resets sent by initiators from ports of host bus adapters of a plurality of host servers and received at a plurality of ports of a storage node; calculate counts of the target resets received from each port of the host bus adapters; and identify a first port of a first host bus adapter of a first host server as faulty based on: receipt of a predetermined number of the target resets from the first port of the first host bus adapter within a predetermined time period at a first port of the plurality of ports of the storage node; and non-receipt of target resets from other ports of the first host bus adapter.
In accordance with some implementations, a non-transitory computer-readable storage medium stores instructions that are executed by a computer to perform a method comprising: monitoring target resets sent by initiators from ports of host bus adapters of a plurality of host servers and received at a plurality of ports of a storage node; calculating counts of the target resets received from each port of the host bus adapters; and identifying a first port of a first host bus adapter of a first host server as faulty based on: receiving a predetermined number of the target resets from the first port of the first host bus adapter within a predetermined time period at a first port of the plurality of ports of the storage node; and not receiving target resets from other ports of the first host bus adapter.
This summary is not intended to limit the scope of the claims or the disclosure. Other aspects, features, and implementations will become apparent in view of the detailed description and figures. Moreover, all the examples, aspects, implementations, and features can be combined in any technically possible way.
The terminology used in this disclosure is intended to be interpreted broadly within the limits of subject matter eligibility. The terms “disk,” “drive,” and “disk drive” are used interchangeably to refer to non-volatile storage media and are not intended to refer to any specific type of non-volatile storage media. The terms “logical” and “virtual” are used to refer to features that are abstractions of other features, such as abstractions of tangible features. The term “physical” is used to refer to tangible features that possibly include, but are not limited to, electronic hardware. For example, multiple virtual computers could operate simultaneously on one physical computer. The term “logic” is used to refer to special purpose physical circuit elements, firmware, software, computer instructions that are stored on a non-transitory computer-readable medium and implemented by multi-purpose tangible processors, and any combinations thereof. Aspects of the inventive concepts are described as being implemented in a data storage system that includes host servers and a storage array. Such implementations should not be viewed as limiting. Those of ordinary skill in the art will recognize that there are a wide variety of implementations of the inventive concepts in view of the teachings of the present disclosure.
Some aspects, features, and implementations described herein may include machines such as computers, electronic components, optical components, and processes such as computer-implemented procedures and steps. It will be apparent to those of ordinary skill in the art that the computer-implemented procedures and steps may be stored as computer-executable instructions on a non-transitory computer-readable medium. Furthermore, it will be understood by those of ordinary skill in the art that the computer-executable instructions may be executed on a variety of tangible processor devices, i.e., physical hardware. For practical reasons, not every step, device, and component that may be part of a computer or data storage system is described herein. Those of ordinary skill in the art will recognize such steps, devices, and components in view of the teachings of the present disclosure and the knowledge generally available to those of ordinary skill in the art. The corresponding machines and processes are therefore enabled and within the scope of the disclosure.
Multiple host application instance initiators may be associated with an individual HBA port as an initiator group. N_Port ID Virtualization (NPID), for example, enables multiple Fibre Channel node port IDs to share a single physical port. Each port ID is associated with or matches a WWN, so multiple WWNs can be associated with the same HBA port. An initiator group may be identified by association with the WWN of the host server. On the storage array side, a masking view is used to map the WWNs to the storage objects to which the initiators are permitted access.
In contrast, a LUN reset affects only a subset of the storage objects masked to the HBA port. An individual HBA port is selected for analysis as indicated in step 504. If X target resets were not received within Y seconds from that HBA port as determined in step 506, then the next HBA port is selected for analysis in step 504. The values of X and Y may be selected, set, and updated by a system administrator. If X target resets were received within Y seconds from the selected HBA port as determined in step 506, then the storage array logs are checked to determine whether hardware errors were logged for the corresponding host adapter port of the storage array as indicated in step 508. If such hardware errors were logged, an alert is generated, and the host adapter is checked for faults as indicated in step 510. If such hardware errors were not logged, then step 512 is determining whether target resets were also received by the same storage array port from other ports of the same HBA. If target resets were not received on the same storage array port from other ports of the same HBA as determined in step 512, then step 514 is determining whether the HBA posted errors to a log in the host server. If so, then an alert is generated and the HBA port is checked for faults as indicated in step 516. In other words, the problem is localized to the HBA port.
If target resets were received on the same storage array port from other ports of the same HBA as determined in step 512, then step 518 is determining whether other HBAs sent resets to the same storage array port. If the answer is no, then step 520 is determining whether the target reset initiators are grouped. If the answer is no, then an alert is generated and the HBA is checked for faults as indicated in step 522. In other words, the problem is localized to the HBA. If the answer in step 520 is yes, then an alert is generated and both the HBA and HBA port are checked for faults as indicated in step 524. In other words, the problem is localized to the individual HBA port and the HBA.
If the HBA didn't post errors to a log in the host server as determined in step 514 or if other HBAs sent resets to the storage array port as determined in step 518, then the switch error logs are checked in step 526. If storage array-side link errors were logged as determined in step 528, then the inter-switch links are checked for faults as indicated in step 530. If storage array-side link errors were not logged as determined in step 528, then network congestion may be identified as the cause as indicated in step 532.
Flags may be generated by the HBA failure detector and localizer as part of the alert process. Each flag might include the fiber channel ID (FCID) and WWN of the storage array port at which the conditions that prompted generation of the flag were detected, the suspected problem type, the suspected ISL, fabric name, and the initiator FCID and WWN. Flags can be logged and sent to various recipients to prompt auto-remediation and notify administrators.
Specific examples have been presented to provide context and convey inventive concepts. The specific examples are not to be considered as limiting. A wide variety of modifications may be made without departing from the scope of the inventive concepts described herein. Moreover, the features, aspects, and implementations described herein may be combined in any technically possible way. Accordingly, modifications and combinations are within the scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
9575866 | Mourn | Feb 2017 | B1 |
10908987 | Pandey | Feb 2021 | B1 |
20040078720 | Ito | Apr 2004 | A1 |