2007-01-23
How to stop DiskSuite resyncing a mirror on Solaris 8
One of our irritations with DiskSuite has been that it has no way to abort a mirror resync short of forcing drive errors, something that we actually had to resort to once and which is not always possible, for example when your drives are logical LUNs on FibreChannel RAID controllers.
As we found out recently, fortunately not quite the hard way, it turns
out that there actually is a way to abort a mirror resync. If your
resyncing mirror is in a diskset, running 'metaset -s <set> -r
' to
release the diskset so you can fail it over to another machine will
first abort the resync and then fail.
(It fails with the helpful, ever so explanatory error message 'metaset:
<host>: Device busy
'. If you repeat the metaset
command again, it
will work and actually release the diskset, although your higher-level
failover tools may be in a bit of a tizzy at this point. The machine
that picks up the diskset seems to automatically restart the resync,
although it starts again from scratch.)
I can sort of see why DiskSuite behaves this way, but its current behavior is annoyingly half-hearted. Regardless of what you really wanted to happen in this situation, you wind up with about half of it.
(My grumpyness is increased because I suspect the only reason
metaset
aborts the resync is that otherwise you would have no
way of releasing the diskset until the resync had finished.
Which is all DiskSuite's fault, for not having a way of explicitly
aborting resyncs.)