ethfindgood(8)

πŸ“¦ version 12.1.0.1, in centos-stream 9, fedora 43, fedora 44, opensuse-leap 16.0

πŸ’– ethfindgood β€” the manual page bestie πŸ’–

okay so this is ethfindgood from the EFSFFCLIRG manual (section 8, system admin girlies 🫢), and it is literally the vibe-check tool for your cluster.


🌸 NAME 🌸

ethfindgood

So what it does: it checks for hosts that are able to be pinged, accessed via SSH, and active on the Intel(R) Ethernet Fabric. Then it produces a list of good hosts meeting all criteria. Basically it's the bouncer at the club β€” if you don't pass all three checks you're not getting in πŸ’…. It's typically used to identify good hosts to undergo further testing and benchmarking during initial cluster staging and startup, which is a very fancy way of saying "figuring out who's actually alive before you start the real work".

The resulting good file lists each good host exactly once and can be used as input to create mpi_hosts files for running mpi_apps and the NIC-SW cable test. The files alive, running, active, good, and bad are created in the selected directory, listing hosts passing each criteria. And if you pass in a plane name, the filename becomes xxx_<plane> β€” e.g. good_plane1. cute, right? πŸŽ€

This command automatically generates the file FF_RESULT_DIR/punchlist.csv. That file gives you a concise summary of the bad hosts found. You can import it into Excel directly as a *.csv file β€” or you can cut/paste it into Excel and use the Data/Text to Columns toolbar to split the info into multiple columns at the semicolons. Excel girlies, this one's for you πŸ“.

A sample generated output is:

# ethfindgood

3 hosts will be checked

2 hosts are pingable (alive)

2 hosts are ssh'able (running)

2 total hosts have RDMA active on one or more fabrics (active)

1 hosts are alive, running, active (good)

2 hosts are bad (bad)

Bad hosts have been added to /root/punchlist.csv

# cat /root/punchlist.csv

2015/10/09 14:36:48;phs1fnivd13u07n4;Doesn't ping

2015/10/09 14:36:48;phs1fnivd13u07n4;Can't ssh

2015/10/09 14:36:48;phs1fnivd13u07n3;No active RDMA port

Now the important lore πŸ”₯: for a given run, a line is generated for each failing host. Hosts are reported exactly once for a given run. So a host that doesn't ping is NOT listed as Can't ssh nor No active RDMA port β€” one strike and you're out of the list, bestie. There may be cases where ports could be active for hosts that do not ping. But ngl, the lack of ping often implies there are other fundamental issues, such as PXE boot or inability to access DNS or DHCP to get proper host name and IP address. So reporting hosts that do not ping is typically of limited value. it's giving "we already know, bestie" 😭


✨ Syntax ✨

ethfindgood [-R|-A] [-d  dir] [-p  plane] [-f  hostfile] [-h 'hosts']
[-T  timelimit]

πŸ‘‘ Options πŸ‘‘

  • --help β€” produces full help text. the classic. ask and ye shall receive πŸ’–
  • -R β€” skips the running test (SSH). recommended if password-less SSH is not set up. no keys, no problem, just skip it ✨
  • -A β€” skips the active test. recommended if Intel(R) Ethernet Fabric Suite software or fabric is not up. if the fabric is napping, let it nap πŸ’€
  • -p plane β€” specifies the name of the plane to use. (and remember, plane name = the cute xxx_<plane> filename suffix πŸŽ€)
  • -d dir β€” specifies the directory in which to create alive, active, running, good, and bad files. default is the /etc/eth-tools directory. periodt.
  • -f hostfile β€” specifies the file with hosts in cluster. default is the /etc/eth-tools/hosts file. yes the line wraps in the original, the path is /etc/eth-tools/hosts fr fr 🫢
  • -h hosts β€” specifies the list of hosts to ping. drop 'em right there in quotes πŸ’…
  • -T timelimit β€” specifies the time limit in seconds for host to respond to SSH. default is 20 seconds. tick tock bestie ⏰

🌈 Environment Variables 🌈

The following environment variables are also used by this command:

  • HOSTS β€” list of hosts, used if the -h option is not supplied.
  • HOSTS_FILE β€” file containing list of hosts, used in absence of -f and -h. (the backup plan's backup plan πŸ’œ)
  • FF_MAX_PARALLEL β€” maximum concurrent operations. go as parallel as you want, iconically πŸ”₯

πŸ¦‹ Examples πŸ¦‹

ethfindgood
ethfindgood -f allhosts
ethfindgood -h 'arwen elrond'
HOSTS='arwen elrond' ethfindgood
HOSTS_FILE=allhosts ethfindgood

πŸ’€ friendly reminder: a host that doesn't ping gets reported once and only once β€” no double-dipping in the punchlist, no cap.

okay that's the whole page, we ate and left no crumbs πŸ‘‘βœ¨ This was ethfindgood(8) from the EFSFFCLIRG (Man Page) manual, brought to you by Copyright(C) 2020-2024 Intel Corporation β€” mwah, thanks Intel, slay πŸ’–πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from