opafindgood(8)

πŸ’– opafindgood β€” the manual, but make it cute πŸ’–

okay bestie, so this is opafindgood(8) from the IFSFFCLIRG man page, and it's literally the vibe-check tool for your cluster. let's get into it πŸ¦‹


✨ NAME ✨

opafindgood β€” she checks which hosts can be pinged, reached over SSH, and are actually active on the Intel(R) Omni-Path Fabric, then hands you back a list of the good ones that passed every single criteria. no cap.

so like, when do you use her? typically when you're doing initial cluster staging and startup and you need to figure out which hosts are good enough to go on and get further testing and benchmarking. she's the bouncer at the club, fr fr πŸ’…

the resulting good file lists each good host exactly once (no double-dipping, periodt) and you can feed it straight into creating mpi_hosts files for running mpi_apps and the HFI-SW cable test. the files alive, running, active, good, and bad get created in the selected directory, and each one lists the hosts that passed that particular criteria. iconic.

⚠️ heads up bestie: this command assumes the Node Description for each host is based on the hostname -s output plus an optional hfi1_# suffix. so if you're using a /etc/opa/hosts file that lists the hostnames, that assumption might not be correct. πŸ™ˆ

she also automatically generates the file FF_RESULT_DIR/punchlist.csv all on her own. it's a concise summary of the bad hosts she found, and you can import it straight into Excel as a *.csv file. or, if that's not your thing, 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. multi-talented. πŸ‘‘

a sample generated output is:

# opafindgood

3 hosts will be checked

2 hosts are pingable (alive)

2 hosts are ssh'able (running)

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

No Quarantine Node Records Returned

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/04 11:33:22;phs1fnivd13u07n1 hfi1_0 p1 phs1swivd13u06 p16;Link
errors

2015/10/07 10:21:05;phs1swivd13u06;Switch not found in SA DB

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

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

okay so for a given run, one line gets generated for each failing host. hosts get reported exactly once per run β€” so a host that doesn't ping is NOT listed as can't ssh or No active port. like, we said what we said, we're not repeating ourselves. πŸ’…

there may be cases where ports could be active for hosts that don't ping, especially if Ethernet host names are used for the ping test. but honestly, the lack of ping often implies there are other fundamental issues going on β€” like PXE boot problems, or the inability to access DNS or DHCP to get a proper host name and IP address. so reporting hosts that don't ping is typically of limited value. lowkey makes sense.

also note that opafindgood queries the SA for NodeDescriptions to determine hosts with active ports. so as a result, ports may be active for hosts that cannot be accessed via SSH or pinged. the plot thickens 😭

by default, opafindgood checks for and reports nodes that are quarantined for security reasons. wanna skip that? use the -Q option. easy.


πŸŽ€ Syntax πŸŽ€

opafindgood [-R|-A|-Q] [-d  dir] [-f  hostfile] [-h 'hosts']
[-t  portsfile] [-p  ports] [-T  timelimit]

🌸 Options 🌸

  • --help β€” produces the full help text. your bestie when you forget things. 🫢
  • -R β€” skips the running test (SSH). recommended if password-less SSH is not set up. no SSH, no problem.
  • -A β€” skips the active test. recommended if Intel(R) Omni-Path Fabric software or the fabric is not up. we're not testing what isn't there.
  • -Q β€” skips the quarantine test. recommended if Intel(R) Omni-Path Fabric software or the fabric is not up.
  • -d dir β€” specifies the directory in which to create alive, active, running, good, and bad files. default is the /etc/opa directory.
  • -f hostfile β€” specifies the file with hosts in cluster. default is the /etc/opa/hosts directory.
  • -h hosts β€” specifies the list of hosts to ping.
  • -t portsfile β€” specifies the file with the list of local HFI ports used to access fabric(s) for analysis. default is the /etc/opa/ports file.
  • -p ports β€” specifies the list of local HFI ports used to access fabric(s) for analysis.

default is first active port. the first HFI in the system is 1. the first port on an HFI is 1. uses the format hfi:port, for example:

  • 0:0 β€” first active port in system.
  • 0:y β€” port y within system.
  • x:0 β€” first active port on HFI x.
  • x:y β€” HFI x, port y.
  • -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 -h option not supplied.
  • HOSTS_FILE β€” file containing list of hosts, used in absence of -f and -h.
  • PORTS β€” list of ports, used in absence of -t and -p.
  • PORTS_FILE β€” file containing list of ports, used in absence of -t and -p.
  • FF_MAX_PARALLEL β€” maximum concurrent operations. multitasking queen ✨

🌈 Examples 🌈

opafindgood
opafindgood -f allhosts
opafindgood -h 'arwen elrond'
HOSTS='arwen elrond' opafindgood
HOSTS_FILE=allhosts opafindgood
opafindgood -p '1:1 1:2 2:1 2:2'

πŸ’œ and that's the whole page bestie. every flag, every file, every default β€” all of it, preserved, just with better energy.

Copyright(C) 2015-2019 Intel Corporation β€” that's the source and version right there, and this opafindgood(8) page from the IFSFFCLIRG man page is officially a wrap. go find your good hosts, you absolute main character. πŸ’–βœ¨πŸŽ€