Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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,

Code Block
svcs | grep mdmonitor
offline        2009     svc:/system/mdmonitor:default

Fix the problem,

Code Block
svcadm disable rpc/bind
svcadm disable rpc/meta
svcadm enable system/mdmonitor

Verify your changes,

Code Block
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,

Code Block
languagebash
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
Warning

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.

Info

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.

Warning

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