I was looking for a way to monitor the health of my NetWare volume mirrors in our host monitoring solution (HostMonitor) and was surprised to discover that such a seemingly simple task ended up being such a challenge. If our volume mirrors were comprised of only one segment, the tests would be pretty straight forward. However, whenever you grow a volume, you end up adding mirrored segments; so for any given mirrored volume, it could have multiple mirrored segments which can really complicate things if you're just wanting to test for the "overall" health of a volume mirror.
I first started down the road of trying to get SNMP to alert me of an unsynchronized volume, but couldn't get very far with that. If you have such a solution, I'd be interested to know how you did it!
My solution was to monitor the SYS:\SYSTEM\SYS$LOG.ERR log, and alert when a mirrored volume became unsynchronized. However, since mirror statuses are represented by "Mirror IDs", you must identify the Mirror ID for a given volume. From a server's system console, you can get the status of the mirror(s) by typing, MIRROR STATUS:
But this information isn't very helpful to indicate which volume(s) are synchronized (or not). You can find the Mirror IDs associated to volume names via NSSMU:
However, for volumes with multiple segments, there will be multiple RAID Devices you'd need to find for the volume:
*ALL* mirrored segments for a given volume need to be healthy to have a healthy mirrored volume! For the number of mirrored volumes we have, identifying all these IDs can be a pretty tedious (and frustrating) exercise! To facilitate being able to identify these associated mirror IDs for the volumes (and easily document them), I created NWMirrorInfo.exe, which will process a server's SYS:SYSTEM\CONFIG.TXT file, and produce a mirror volume report like this:
which is *much* easier to read and make sense of. To generate the CONFIG.TXT, you need to run on each server's system console:
LOAD CONFIG /ALL
After the SYS:SYSTEM\CONFIG.TXT is created for each server, from your Windows workstation, run:
NWMirrorInfo Server1 Server2 ..
NWMirrorInfo will process each server's CONFIG.TXT and produce the report, SERVER_MIRRORED_VOLUMES.TXT
Now, in my host monitoring solution, I use the information in this report to monitor the SYS$LOG.ERR for the mirror object IDs that become unsynchronized by taking the last 2 digits of the MMObjectID and adding it to the Mirrored object test string:
I am now able to be alerted to a named volume's mirrored health, and advert a disaster proactively!