Visit Our UNIX and Linux User Community


Metastat shows "maintenance" and "last-erred"


 
Thread Tools Search this Thread
Operating Systems Solaris Metastat shows "maintenance" and "last-erred"
# 1  
Old 10-20-2009
Metastat shows "maintenance" and "last-erred"

Hi All,

Sorry to post a problem for my first post but I'm in a bit of a pickle at the minute!
I have an Ultra45 connected to a Storedge 3100 series, 2 internal, 2 external disks with a db application running on the external disks.
Now everything is working fine and we've had no downtime or anything but I am due to perform an upgrade of our software and I ran metastat just to check out the mirroring, below is what i got.

Code:
# metastat
d7: Mirror
    Submirror 0: d37
      State: Okay         
    Submirror 1: d47
      State: Needs maintenance 
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 286576512 blocks (136 GB)

d37: Submirror of d7
    State: Okay         
    Size: 286576512 blocks (136 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c2t8d0s7          0     No            Okay   Yes 


d47: Submirror of d7
    State: Needs maintenance 
    Invoke: metareplace d7 c2t9d0s7 <new device>
    Size: 286576512 blocks (136 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c2t9d0s7          0     No     Maintenance   Yes 


d4: Mirror
    Submirror 0: d14
      State: Needs maintenance 
    Submirror 1: d24
      State: Needs maintenance 
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 235557840 blocks (112 GB)

d14: Submirror of d4
    State: Needs maintenance 
    Invoke: metareplace d4 c1t0d0s4 <new device>
    Size: 235557840 blocks (112 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s4          0     No     Maintenance   Yes 


d24: Submirror of d4
    State: Needs maintenance 
    Invoke: after replacing "Maintenance" components:
                metareplace d4 c1t1d0s4 <new device>
    Size: 235557840 blocks (112 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t1d0s4          0     No      Last Erred   Yes 


d1: Mirror
    Submirror 0: d11
      State: Needs maintenance 
    Submirror 1: d21
      State: Okay         
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 16382880 blocks (7.8 GB)

d11: Submirror of d1
    State: Needs maintenance 
    Invoke: metareplace d1 c1t0d0s1 <new device>
    Size: 16382880 blocks (7.8 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s1          0     No     Maintenance   Yes 


d21: Submirror of d1
    State: Okay         
    Size: 16382880 blocks (7.8 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t1d0s1          0     No            Okay   Yes 


d0: Mirror
    Submirror 0: d10
      State: Needs maintenance 
    Submirror 1: d20
      State: Needs maintenance 
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 235557840 blocks (112 GB)

d10: Submirror of d0
    State: Needs maintenance 
    Invoke: after replacing "Maintenance" components:
                metareplace d0 c1t0d0s0 <new device>
    Size: 235557840 blocks (112 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s0          0     No      Last Erred   Yes 


d20: Submirror of d0
    State: Needs maintenance 
    Invoke: metareplace d0 c1t1d0s0 <new device>
    Size: 235557840 blocks (112 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t1d0s0          0     No     Maintenance   Yes 


Device Relocation Information:
Device   Reloc  Device ID
c2t9d0   Yes    id1,sd@SSEAGATE_ST314670LSUN146G2144JJD7____________3KS4JJD7
c2t8d0   Yes    id1,sd@SSEAGATE_ST314670LSUN146G2144KKMM____________3KS4KKMM
c1t1d0   Yes    id1,sd@n5000cca20be55a84
c1t0d0   Yes    id1,sd@n5000cca20bda0fae

I've tried using metareplace -e dy cxtxdxsx on the submirrors that in are Maintenance state and they are resyncing right now...prob gonna take some time!
My question is with regards to the "last erred" submirrors...are these gonners? I've checked /var/adm/messages and can see no read/write errors and iostat -En shows no hard errors, only 1 soft error each on the internal disks.
I ran fsck on the internal disks and
So should I be looking at replacing the disks or if the ones i have put resyncing right now come back ok can I do a metareplace on the "Last erred" submirrors?
I have an alternative boot point also that I can boot to, the mirror on the second internal disk...so if i boot to that and try to sync will it use the second submirror as the "master" when syncing?

I came across this link and sort of followed the advice there...
Solaris: SDS: Both Metadevices of a mirror have “State: Needs maintenance” | The Solaris Cookbook
# 2  
Old 10-20-2009
Before you go and do anything drastic:
Is this Solaris 10 and have you rebooted the box lately?

If it is Solaris 10 and you rebooted the box lately, make sure the mdmonitor service came back online. If mdmonitor is not running, metastat will report mirrors as needing maintenance when in reality they are ok.
# 3  
Old 10-20-2009
Hi thanks for the reply!

Yes and yes; it is Solaris 10 and I've rebooted today...

mdmonitor is online as well!
# 4  
Old 10-21-2009
I have a similar problem with a solaris 8 server using 5200 disk array. Every reboot I will get a number of MD devices that will need maintance / last errored. Due to the how the metadevices are set up, i.e. one of my devices has 7 sub-devices, its quite worrying.

I tend to just metareplace -e the failed device with the one that last error'ed e.g.
Code:
# metareplace -e d10  c1d2s0    :;-  uses last err'ed device as a device to  sync the main device with

d10 = d11 and d12
d11 = c1t1d1s0 - main
d12 = c1td2s0 - failed device

Its when you have two sub devices that have error'ed / need maintenance ( failed during a re-sync) that you need to be careful.

You may find its not the disks that are iffy, but the enclosure.
SBK
This User Gave Thanks to sbk1972 For This Post:
# 5  
Old 10-21-2009
Well after I ran metareplace with the submirrors that were in maintenance they came up okay again, and the ones that had been "last erred" changed to maintenance, so i ran metareplace -e again on these and they have resynced fine this time.

Seems to have solved the problem!

Previous Thread | Next Thread
Test Your Knowledge in Computers #177
Difficulty: Easy
The Apple Computer Company was founded on April 1, 1976.
True or False?

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. OS X (Apple)

"Locate" Shows Files but Not "LS" in Terminal

OS-X 10.8.4 Using locate I get these results: 10:~ mize$ locate /Users/mize/*.sh /Users/mize/Zend/workspaces/DefaultWorkspace/SLM/vendor/ZF2/bin/check-cs.sh /Users/mize/copy_ascii_upload.sh /Users/mize/copy_ascii_upload_to_server.sh /Users/mize/copy_form_functions_php_to_jpl.sh... (7 Replies)
Discussion started by: Gary Mize
7 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

Featured Tech Videos