Sometimes, we need to do SAN maintenance — firmware upgrades, disruptive fabric changes, and the like. When these situations come up, it’s useful to know if anything is in a condition where it will break if it loses its connection to SAN storage, especially if you’re a lowly storage administrator without admin access to any of the Windows systems connected up to the SAN.
I poked around, and could not find one single utility or tool for monitoring the Windows MPIO framework, so I whipped up a quick script using VBScript and WMI. The script is called like so:
cscript.exe //NoLogo scripts\CheckMpioPaths.vbs /paths 4
(4 paths are used because the server is multipathed on two fabrics, and each of the active/passive controllers is also on each fabric — the server should see 2 controllers on 2 fabrics each, for 4 paths.)
This will cause the script to issue a Nagios CRITICAL if any multipath-registered LUN shows fewer than the given number of paths.
As usual, you can find the script in the GitHub repository for CheckMpioPaths.