A non-transitory computer-readable medium that stores instructions for determining network-interface-to-host-machine connectivity information between devices in a network system which, when executed by one or more processors, cause performance of:
- sending storage node messages to each host machine of a plurality of host machines, from each network interface of a plurality of network interfaces on a particular storage node;
- wherein the particular storage node is operatively coupled to one or more storage devices that are accessible to each host machine that has connectivity to any one of the plurality of network interfaces;
- wherein the plurality of network interfaces includes at least two network interfaces of a particular storage controller of the particular storage node;
- in response to the storage node messages, receiving, by the particular storage node, host messages from at least one host machine of the plurality of host machines;
- determining, by the particular storage node, the network-interface-to-host-machine connectivity information between each network interface of the plurality of network interfaces and each host machine of the one or more host machines, based upon the storage node messages sent from each network interface of the plurality of network interfaces and the host messages received from the at least one host machine;
- generating, by the particular storage node, a connectivity map containing the network-interface-to-host-machine connectivity information determined from the storage node messages sent from each network interface of the plurality of network interfaces and the host messages received from the at least one host machine;
- wherein the network-interface-to-host-machine connectivity information indicates that connectivity between a particular network interface of the plurality of network interfaces and a particular host machine of the one or more host machines is down if a particular number of storage node messages is sent from the particular network interface to the particular host machine without receiving a host message from the particular host machine;
- wherein the network-interface-to-host-machine connectivity information includes latency information between each network interface of the plurality of network interfaces and each host machine of the one or more host machines, wherein latency information is based on a duration of time between sending a particular storage node message and receiving a particular host message as a response to the particular storage node message;
- receiving, at the particular storage node, a connectivity status request from a particular host machine of the plurality of host machines;
- in response to the connectivity status request, the particular storage node providing network-interface-to-host-machine connectivity information between each network interface of the plurality of network interfaces and each host machine of the one or more host machines to the particular host machine;
- based on the network-interface-to-host-machine connectivity information received from the particular storage node, the particular host machine selecting a target network interface, of the plurality of network interfaces, for sending a request for data to the particular storage node;
- sending, by the particular host machine, the request for data to the selected target network interface;
- and
- receiving, at the selected target network interface of the plurality of network interfaces, the request for data that is stored on the one or more storage devices.