Solaris SDS : Both Submirrors go into ‘Needs Maintenance’ when I/O is performed but no disk errors seen

The following is the Sample SVM(Solaris Volume Manager) configuration of the layered soft partition.

  • d50: Soft Partition
  • Device: d100
  • State: Okay
  • Size: 10485760 blocks (5.0 GB)
  • Extent              Start Block              Block count
  • 0                        1                 10485760
  • d100: Mirror
  • Submirror 0: d101
  • State: Okay
  • Submirror 1: d102
  • State: Okay
  • Pass: 1
  • Read option: roundrobin (default)
  • Write option: parallel (default)
  • Size: 20971200 blocks (10.0 GB)
  • d101: Submirror of d100
  • State: Okay
  • Size: 20971200 blocks (10.0 GB)
  • Stripe 0:
  • Device     Start Block  Dbase        State Reloc Hot Spare
  • c0t2d0s4          0     No            Okay   Yes
  • d102: Submirror of d100
  • State: Okay
  • Size: 20971200 blocks (10.0 GB)
  • Stripe 0:
  • Device     Start Block  Dbase        State Reloc Hot Spare
  • c0t0d0s4          0     No            Okay   Yes

After configuring the submirrors, mirror and soft partition, a newfs successfully performed on the soft partition. The soft partition is then mounted on a mountpoint

  • # mount /dev/md/dsk/d50 /plink101

A recursive copy is done which causes both submirrors to go into a ‘Needs Maintenance’ state

  • # cp -pr /data /pilnk101

/var/adm/messages has LVM messages but no errors  for the physical disk:

Aug 20 15:13:50 ssrv194av md_stripe: WARNING: md: d101: write error on /dev/dsk/c0t2d0s4

Aug 20 15:13:50 ssrv194av md_stripe: WARNING: md: d102: write error on /dev/dsk/c0t0d0s4

Aug 20 15:13:50 ssrv194av md_mirror: WARNING: md: d101: /dev/dsk/c0t2d0s4 needs maintenance

Aug 20 15:13:50 ssrv194av md_mirror: WARNING: md: d102: /dev/dsk/c0t0d0s4 needs maintenance

Aug 20 15:13:50 ssrv194av md_mirror: WARNING: md: d102: /dev/dsk/c0t0d0s4 last erred

Aug 20 15:13:50 ssrv194av md_stripe: WARNING: md: d102: write error on /dev/dsk/c0t0d0s4

Aug 20 15:13:50 ssrv194av md_sp: WARNING: md: d50: write error on /dev/md/dsk/d100

The soft partition is errored and both submirrors are in ‘Needs Maintenance’ state.

  • d50: Soft Partition
  • Device: d100
  • State: Errored
  • Size: 10485760 blocks (5.0 GB)
  • Extent              Start Block              Block count
  • 0                        1                 10485760
  • d100: Mirror
  • Submirror 0: d101
  • State: Needs maintenance
  • Submirror 1: d102
  • State: Needs maintenance
  • Pass: 1
  • Read option: roundrobin (default)
  • Write option: parallel (default)
  • Size: 67891200 blocks (32 GB)
  • d101: Submirror of d100
  • State: Needs maintenance
  • Invoke: metareplace d100 c0t2d0s4 <new device>
  • Size: 67891200 blocks (32 GB)
  • Stripe 0:
  • Device     Start Block  Dbase        State Reloc Hot Spare
  • c0t2d0s4          0     No     Maintenance   Yes
  • d102: Submirror of d100
  • State: Needs maintenance
  • Invoke: after replacing “Maintenance” components:
  • metareplace d100 c0t0d0s4 <new device>
  • Size: 67891200 blocks (32 GB)
  • Stripe 0:
  • Device     Start Block  Dbase        State Reloc Hot Spare
  • c0t0d0s4          0     No      Last Erred   Yes

Resolution:

Currently in SVM’s stripe and soft partition code the size of the I/O delivered to the lower level driver is limited to be less than md_maxphys and md_maxbcount.

md_maxphys defaults to the maxphys value (which on a sun4u system is 128K) and md_maxbcount defaults to 1M.

If the lower level device is an IDE disk, it has a maximum I/O capacity that it can handle of 128K. If the I/O is larger than this then the dad driver returns an EINVAL error code.

Check the current maxphys value in the /etc/system file. In the above example, maxphys default value has been overridden and is set as shown:

  • set maxphys=1048576

This value is greater than 128k which causes the md_maxphys value to be greater thn 128k as well.

To correct this situation, Add the following lines to the /etc/system file:

* for Solaris LVM IDE Drives:

  • set md:md_maxbcount=0x20000
  • set md:md_maxphys=0x20000

*Verify that the maxphys value is not set above the shown value:

* General system parameters

  • set maxphys=0x20000

REBOOT server after making the changes to the /etc/system file

Ramdev

Ramdev

I have started unixadminschool.com ( aka gurkulindia.com) in 2009 as my own personal reference blog, and later sometime i have realized that my leanings might be helpful for other unixadmins if I manage my knowledge-base in more user friendly format. And the result is today's' unixadminschool.com. You can connect me at - https://www.linkedin.com/in/unixadminschool/

1 Response

  1. September 17, 2015

    […] Read – Both Submirrors go into ‘Needs Maintenance’ when I/O is performed but no disk errors seen […]

What is in your mind, about this post ? Leave a Reply

Close
  Our next learning article is ready, subscribe it in your email

What is your Learning Goal for Next Six Months ? Talk to us