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!
Disclaimer: As with everything else at Cool Solutions, this content is definitely not supported by Novell (so don't even think of calling Support if you try something and it blows up).
It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.