Replaced Failed SVM Mirror Drive

1. In this example, the boot disk mirror c1t1d0 failed. All submirrors on c1t1d0 were placed in “maintenance” state.

# format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf222bde,0
1. c1t1d0 <drive not available: formatting>
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w2100002037f3ce1d,0

# metastat

d20: Submirror of d0
State: Needs maintenance
Invoke: metareplace d0 c1t1d0s0 <new device>
Size: 3073896 blocks
Stripe 0:
Device              Start Block  Dbase State        Hot Spare
c1t1d0s0                   0     No    Maintenance

d21: Submirror of d1
State: Needs maintenance
Size: metareplace d1 c1t1d0s1 <new device>
Stripe 0:
Device              Start Block  Dbase State        Hot Spare
c1t1d0s1                   0     No    Maintenance

d23: Submirror of d3
State: Needs maintenance
Invoke: metareplace d3 c1t1d0s3 <new device>
Size: 525798 blocks
Stripe 0:
Device              Start Block  Dbase State        Hot Spare
c1t1d0s3                   0     No    Maintenance

d24: Submirror of d4
State: Needs maintenance
Invoke: metareplace d4 c1t1d0s4 <new device>
Size: 59114718 blocks
Stripe 0:
Device              Start Block  Dbase State        Hot Spare
c1t1d0s4                   0     No    Maintenance

2. Detach the failed meta devices from the failed drive

# metadetach -f d0 d20
# metadetach -f d1 d21
# metadetach -f d3 d23
# metadetach -f d4 d24

# metaclear d20
# metaclear d21
# metaclear d23
# metaclear d24

3. Delete the meta databases from the failed drive

# metadb -i
flags           first blk       block count
a m  p  luo        16               8192            /dev/dsk/c1t0d0s7
a    p  luo        8208             8192            /dev/dsk/c1t0d0s7
W    p  luo        16               8192            /dev/dsk/c1t1d0s7
W    p  luo        8208             8192            /dev/dsk/c1t1d0s7

r – replica does not have device relocation information
o – replica active prior to last mddb configuration change
u – replica is up to date
l – locator for this replica was read successfully
c – replica’s location was in /etc/lvm/mddb.cf
p – replica’s location was patched in kernel
m – replica is master, this is replica selected as input
W – replica has device write errors
a – replica is active, commits are occurring to this replica
M – replica had problem with master blocks
D – replica had problem with data blocks
F – replica had format problems
S – replica is too small to hold current data base
R – replica had device read errors

# metadb -d c1t1d0s7

# metadb -i
flags           first blk       block count
a m  p  luo        16               8192            /dev/dsk/c1t0d0s7
a    p  luo        8208             8192            /dev/dsk/c1t0d0s7

4. Unconfigure the failed drive

# cfgadm -al

Ap_Id                          Type         Receptacle   Occupant     Condition
c0                             scsi-bus     connected    configured   unknown
c0::dsk/c1t0d0                 disk         connected    configured   unknown
c0::dsk/c1t1d0                 disk         connected    configured   unknown
c1                             scsi-bus     connected    configured   unknown
c1::dsk/c1t0d0                 CD-ROM       connected    configured   unknown
usb0/1                         unknown      empty        unconfigured ok
usb0/2                         unknown      empty        unconfigured ok
usb1/1.1                       unknown      empty        unconfigured ok
usb1/1.2                       unknown      empty        unconfigured ok
usb1/2                         unknown      empty        unconfigured ok

# cfgadm -c unconfigure c0::dsk/c1t1d0

5. Replace the failed drive and configure the new drive

# cfgadm -c configure c0::dsk/c1t1d0

6. Copy the remaining drive’s partition table to the new drive

# prtvtoc /dev/rdsk/c1t0d0s2 | fmthard -s – /dev/rdsk/c1t1d0s2

7. Create the meta databases on the new drive

# metadb -a -c 2 c1t1d0s7

# metadb
flags           first blk       block count
a m  p  luo        16               8192            /dev/dsk/c1t0d0s7
a    p  luo        8208             8192            /dev/dsk/c1t0d0s7
a    p  luo        16               8192            /dev/dsk/c1t1d0s7
a    p  luo        8208             8192            /dev/dsk/c1t1d0s7

8. Install the bootblocks onto the new drive (x86 server)

# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s2

9. Create the meta devices

# metainit -f d20 1 1 c1t1d0s0
# metainit -f d21 1 1 c1t1d0s1
# metainit -f d23 1 1 c1t1d0s3
# metainit -f d24 1 1 c1t1d0s4

10. Attach the meta devices

# metattach d0 d20
# metattach d1 d21
# metattach d3 d23
# metattach d4 d24

11. Wait till resync process done.

Related posts:

  1. Configure/Unconfigure Hardware Resources in Solaris
  2. Setup Solaris Volume Manager (Raid 1/Mirroring)
  3. Recover Solaris OS when metadb is Corrupted
Comments

No comments yet.

Sorry, the comment form is closed at this time.