对于生产系统的服务器,标准配置通常都会对root文件系统做mirror,Sun自然也不例外。
很多文档针对solaris如何mirror root文件系统,本文是测试怎样当mirror中一个disk损坏后,如何修复
测试环境是x86 solaris,但是流程根sparc一样。
正常情况:
# metastat
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 10240000 blocks (4.9 GB)
d10: Submirror of d0
State: Okay
Size: 10240000 blocks (4.9 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s0 0 No Okay Yes
d20: Submirror of d0
State: Okay
Size: 10240000 blocks (4.9 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t1d0s0 0 No Okay Yes
模拟损坏一块儿硬盘,或删除一块儿磁盘之后
日志自然会抱错,如果重新启动系统,系统会自动启动到单用户模式
如果暂时没有替代的磁盘可以先删除metadb,来启动系统
删除之后:
# metastat
d0: Mirror
Submirror 0: d10
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 10240000 blocks (4.9 GB)
d10: Submirror of d0
State: Okay
Size: 10240000 blocks (4.9 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s0 0 No Okay Yes
d20: Concat/Stripe
Size: 10240000 blocks (4.9 GB)
Stripe 0:
Device Start Block Dbase Reloc
c1t1d0s0 0 No Yes
d20并没有被删除,下面提供一个参考的过程用来完全删除问题磁盘:
# metadetach -f d0 d20
d0: submirror d20 is detached
# metadb -d /dev/rdsk/c1t1d0s7
# metaclear d20
删除之后:
# metastat
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 10240000 blocks (4.9 GB)
d10: Submirror of d0
State: Okay
Size: 10240000 blocks (4.9 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s0 0 No Okay Yes
Device Relocation Information:
Device Reloc Device ID
c1t0d0 Yes id1,sd@f0000000048496c95000bfd270000
添加一个替换磁盘之后,重新加入mirror的步骤:
1.按照原有磁盘,用format分区
5.installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0 ---新磁盘添加引导信息(solaris 10 x86 不再使用installboot)
上面删除和添加步骤并不是最优路径,只是自己再操作的时候根据操作步骤记录而来,下面列一个比较优的更换磁盘的步骤:
1 替换坏硬盘
2 开机到单用户模式下
3 metadb -d c1t1d0s7 (db是放在s7分区上的)
4 prtvtoc /dev/rdsk/c1t0d0s2|fmthard -s - /dev/rdsk/c1t1d0s2
5 metadb -a -f -c 3 c1t1d0s7
6 关机重启到正常模式下
7 metareplace -e d10 c1t1d0s0

