#
4.3. 删除unknow的metadb文件
删除无效的metadb文件
# metadb
flags first blk block count
a m p lu 16 8192 /dev/dsk/c1t0d0s7 a p l 8208 8192 /dev/dsk/c1t0d0s7 a p l 16400 8192 /dev/dsk/c1t0d0s7 M W p l 16 unknown /dev/dsk/c1t1d0s7 M W p l 8208 unknown /dev/dsk/c1t1d0s7 M W p l 16400 unknown /dev/dsk/c1t1d0s7 # #
# metadb -d /dev/dsk/c1t1d0s7 #
# metadb
flags first blk block count
a m p lu 16 8192 /dev/dsk/c1t0d0s7 a p l 8208 8192 /dev/dsk/c1t0d0s7 a p l 16400 8192 /dev/dsk/c1t0d0s7 #
4.4. 重启系统并查看系统状态
删除3份无效的metadb后,系统启动时只检测到3份全部是有效的metadb文件,所以可以正常启动系统;
#
# init 6
# svc.startd: The system is coming down. Please wait. svc.startd: 81 system services are now being stopped. svc.startd: The system is down. syncing file systems... done rebooting...
Sun Ultra 45 Workstation, No Keyboard
Copyright 2005 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.21.2, 4096 MB memory installed, Serial #68148048. Ethernet address 0:14:4f:f:db:50, Host ID: 840fdb50.
Rebooting with command: boot Boot device: /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/disk@0,0:a File and args: SunOS Release 5.10 Version Generic_147147-26 64-bit
Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved. Hostname: test-01
test-01 console login: Mar 24 12:28:47 test-01 sendmail[531]: My unqualified host name (test-01) unknown; sleeping for retry
test-01 console login: root Password:
Mar 24 12:29:04 test-01 login: ROOT LOGIN /dev/console Last login: Mon Mar 24 12:19:21 on console
Oracle Corporation SunOS 5.10 Generic Patch January 2005 # # # bash
bash-3.2# 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 16400 8192 /dev/dsk/c1t0d0s7 bash-3.2# metastat d130: Mirror
Submirror 0: d131
State: Okay Submirror 1: d132
State: Needs maintenance Pass: 1
Read option: roundrobin (default) Write option: parallel (default) Size: 30722044 blocks (14 GB)
d131: Submirror of d130 State: Okay
Size: 30722044 blocks (14 GB) Stripe 0:
Device Start Block Dbase State Reloc Hot Spare c1t0d0s3 0 No Okay Yes
d132: Submirror of d130
State: Needs maintenance
Invoke: metareplace d130 c1t1d0s3
Device Start Block Dbase State Reloc Hot Spare c1t1d0s3 0 No Maintenance Yes
d110: Mirror
Submirror 0: d111
State: Okay Submirror 1: d112
State: Needs maintenance Pass: 1
Read option: roundrobin (default) Write option: parallel (default) Size: 20482820 blocks (9.8 GB)
d111: Submirror of d110 State: Okay
Size: 20482820 blocks (9.8 GB) Stripe 0:
Device Start Block Dbase State Reloc Hot Spare c1t0d0s1 0 No Okay Yes
d112: Submirror of d110
State: Needs maintenance
Invoke: metareplace d110 c1t1d0s1
Device Start Block Dbase State Reloc Hot Spare c1t1d0s1 0 No Maintenance Yes
d100: Mirror
Submirror 0: d101
State: Okay Submirror 1: d102
State: Needs maintenance Pass: 1
Read option: roundrobin (default) Write option: parallel (default)
Size: 71683312 blocks (34 GB)
d101: Submirror of d100 State: Okay
Size: 71683312 blocks (34 GB) Stripe 0:
Device Start Block Dbase State Reloc Hot Spare c1t0d0s0 0 No Okay Yes
d102: Submirror of d100
State: Needs maintenance
Invoke: metareplace d100 c1t1d0s0
Device Start Block Dbase State Reloc Hot Spare c1t1d0s0 0 No Maintenance Yes
Device Relocation Information: Device Reloc Device ID
c1t1d0 Yes id1,sd@n5000c50002f5d577 c1t0d0 Yes id1,sd@n5000c50002f54e2b bash-3.2#
bash-3.2# metastat -p d130 -m d131 d132 1 d131 1 1 c1t0d0s3 d132 1 1 c1t1d0s3 d110 -m d111 d112 1 d111 1 1 c1t0d0s1 d112 1 1 c1t1d0s1 d100 -m d101 d102 1 d101 1 1 c1t0d0s0 d102 1 1 c1t1d0s0 bash-3.2#
5. 总结
5.1. 启动检测metadb文件
做了raid1镜像的Solars系统在启动的时候,会检测metadb;
默认情况下,有效的metadb数量大于总数的50%时,系统才会正常启动,否则系统会自动进入维护模式;如果在/etc/system文件中加入(set md:mirrored_root_flag=1)时,只有50%有效的metadb文件,仍可以正常启动。所以在一块硬盘出现故障时有两种解决方法:
1、 修改system文件,加入(set md:mirrored_root_flag=1) 2、 删除无效的metadb副本,使有效的metadb文件超过总数
的50%。