Sypmtom
On Solaris 10 boxes, after a reboot, all submirrors "need maintenance". A metasync immediately clears the problem but the system will be back in "need maintenance" state right after a reboot.
Resolution
Verify that we have a problem because mdmonitor is offline,
svcs | grep mdmonitor offline 2009 svc:/system/mdmonitor:default
Fix the problem,
svcadm disable rpc/bind svcadm disable rpc/meta svcadm enable system/mdmonitor
Details
Based on the linked articles this is a dependency issue.
When I talk about states I am referring to the STATE as represented when running the svcs -a command. A service can be in the following states, online, offline, uninitialized and disabled.
The mdmonitor daemon is needed to sync the meta devices at system start up. If svc:/system/mdmonitor is not running, the devices come into maintenance state.
The cause according to Engle Victor's post is an "optional_all" dependency of svc:/network/rpc/meta. "optional_all" allows mdmonitord to start if svc:/network/rpc/meta is disabled but not if it is in the offline state or in our case uninitialized. As are result, svc:/system/mdmonitor is put into the offline state.
svc:/network/prc/meta comes up offline because of its "require_all" dependency on svc:/network/rpcbind which may be disabled or offline or in our case, uninitialized.
We disable rpcbind on purpose as we run Solaris with a minimal install.
Dickson, not sure where we disable it. Is it during install? Can you explain here?
References
http://www.thatsjava.com/java-enterprise/60195/
http://www.sunmanagers.org/pipermail/summaries/2005-June/006531.html