Tuesday, January 27, 2009

Replacing a failed disk with DiskSuite

Example one

In this example, the boot disk mirror c0t1d0 failed. All submirrors on c0t1d0 were placed in "maintenance" state, so no reads or writes were occurring on the disk. The replacement disk has identical geometry of boot disk c0t0d0.

1. Delete any state database replicas from the failed disk. A "W" in metadb output indicates replica device write errors.

# metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c0t0d0s6
a p luo 8208 8192 /dev/dsk/c0t0d0s6
W p l 16 8192 /dev/dsk/c0t1d0s6
W p l 8208 8192 /dev/dsk/c0t1d0s6

# metadb -d /dev/dsk/c0t1d0s6
# metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c0t0d0s6
a p luo 8208 8192 /dev/dsk/c0t0d0s6

2. Replace the failed disk.

3. Copy the partition table from the good disk to the replacement disk.
# prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2

4. Create state database replicas on the replacement disk.
# metadb -a -c 2 /dev/dsk/c0t1d0s6

5. Determine which submirrors need to be resynchronized.

# metastat | grep 'Invoke: metareplace'
Invoke: metareplace d30 c0t1d0s0
Invoke: metareplace d31 c0t1d0s1
Invoke: metareplace d33 c0t1d0s3
Invoke: metareplace d34 c0t1d0s4
Invoke: metareplace d35 c0t1d0s5

6. Resynchronize the submirrors.

# ./metareplace -e d30 c0t1d0s0
d30: device c0t1d0s0 is enabled
# ./metareplace -e d31 c0t1d0s1
d31: device c0t1d0s1 is enabled
# ./metareplace -e d33 c0t1d0s3
d32: device c0t1d0s3 is enabled
# ./metareplace -e d34 c0t1d0s4
d33: device c0t1d0s4 is enabled
# ./metareplace -e d35 c0t1d0s5
d34: device c0t1d0s5 is enabled

You can monitor the resynchronization progress with metastat.

Example two

In this example, the mirror disk is failing, but one of its submirrors is in an Okay state.

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c1t0d0
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf222bde,0
1. c1t1d0
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w2100002037f3ce1d,0

# metastat
...
d20: Submirror of d0
State: Needs maintenance
Invoke: metareplace d0 c1t1d0s0
Size: 3073896 blocks
Stripe 0:
Device Start Block Dbase State Hot Spare
c1t1d0s0 0 No Maintenance

d21: Submirror of d1
State: Okay
Size: 8389656 blocks
Stripe 0:
Device Start Block Dbase State Hot Spare
c1t1d0s1 0 No Okay

d23: Submirror of d3
State: Needs maintenance
Invoke: metareplace d3 c1t1d0s3
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
Size: 59114718 blocks
Stripe 0:
Device Start Block Dbase State Hot Spare
c1t1d0s4 0 No Maintenance

Since submirror d21 is still in an Okay state, it must be detached from the mirror.

# metadetach d1 d21
d1: submirror d21 is detached

Remaining steps:

1. Delete the state databases from the failed disk.
2. Replace the failed disk.
3. Duplicate the partition table from the good disk to the new disk.
4. Re-create the state databases.
5. Run metareplace on the metadevices that were in "Needs maintenance" state (i.e., d20, d23, and d24 in this example).
6. Run metattach on the detached metadevices (i.e., d21 in this example).

More information:
SUMMARY: RE Replacing mirrored Sun system disk

Readers who read this page, also read:




Bookmark and Share My Zimbio http://www.wikio.com

0 comments: