Page tree
Skip to end of metadata
Go to start of metadata

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

Verify your changes,

svcs -a | grep "rpc/bind:";svcs -a | grep "rpc/meta:";svcs -a | grep "system/mdmonitor:"
disabled       Jun_17   svc:/network/rpc/bind:default
uninitialized  Jun_17   svc:/network/rpc/meta:default
online         Jun_17   svc:/system/mdmonitor:default

Optionally if you are using a newer version of grep via GTools,

svcs -a | grep 'rpc/bind:\|rpc/meta:\|system/mdmonitor:'
disabled       Jun_17   svc:/network/rpc/bind:default
online         Jun_17   svc:/system/mdmonitor:default
uninitialized  Jun_17   svc:/network/rpc/meta:default

Dickson, would you know why even though we manually disabled rpc/meta: shows up as uninitialized?


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

http://webcache.googleusercontent.com/search?q=cache:QoKwy4SOZL0J:www.sunmanagers.org/pipermail/%20summaries/2006-February/007079.html+%22Solaris+10%22+%22Needs+maintenance%22&%20;hl=en&gl=us&ct=clnk&cd=1

  • No labels

1 Comment

  1. Rereading my article, at least for how we setup Solaris, may just the enable command for mdmonitor would resolve the issue.