现在的90后运维,大多懂linux的lvm,估计很少有人懂solaris的svm了。在N年前,在linux x86还没有雄起的时候,其实aix/hp/sun三大主机巨头都有自己的一套存储管理机制和软件,其中sun的就是svm。除了各自专门的存储管理软件,还有第三方的商业存储管理软件,比如veritas,也可以用来管理solaris的存储,不过这些商业软件,在如今开源产品的冲击下,日子是远不如以前风光了。
ok,废话扯完。看一个nagios告警:
messages.0:Jul 31 15:06:41 apps2 md_mirror: [ID 104909 kern.warning] WARNING: md: d16: (Unavailable) needs maintenance
这一看就是某个机器的盘坏了,d16是啥意思呢?
进一步查询:
#metastat
d6: Mirror Submirror 0: d16 State: Needs maintenance Submirror 1: d26 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 142606464 blocks (68 GB)d16: Submirror of d6 State: Needs maintenance Invoke: metareplace d6 c1t2d0s0 <new device> Size: 142606464 blocks (68 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t2d0s0 0 No Maintenance Yes d26: Submirror of d6 State: Okay Size: 142606464 blocks (68 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t3d0s0 0 No Okay Yes这里可以清楚地看到,d16是逻辑卷d6的一个镜像盘,盘号为c1t2d0,这样子就很清楚了,c1t2d0这个盘挂了,需要更换。
如果要更清晰地查询当前系统下逻辑卷的镜像盘信息,还有一个命令:
#metastat -c
d6 m 68GB d16 (maint) d26 d16 s 68GB c1t2d0s0 (maint) d26 s 68GB c1t3d0s0d4 m 14GB d14 d24 d14 s 14GB c1t0d0s4 d24 s 14GB c1t1d0s4d3 m 5.0GB d13 d23 d13 s 5.0GB c1t0d0s3 d23 s 5.0GB c1t1d0s3d1 m 15GB d11 d21 d11 s 15GB c1t0d0s1 d21 s 15GB c1t1d0s1d0 m 10GB d10 d20 d10 s 10GB c1t0d0s0 d20 s 10GB c1t1d0s0d5 m 22GB d15 d25 d15 s 22GB c1t0d0s5 d25 s 22GB c1t1d0s5这里可以更清晰地看到逻辑卷和镜像盘的对应关系。另外,逻辑卷名在块设备的 /dev/md/dsk 目录和原始设备的 /dev/md/rdsk 目录中具有对应的项。
联系维保厂家换盘即可,健康状态如下:
#metastat
d6: Mirror Submirror 0: d16 State: Okay Submirror 1: d26 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 142606464 blocks (68 GB)d16: Submirror of d6 State: Okay Size: 142606464 blocks (68 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t2d0s0 0 No Okay Yes d26: Submirror of d6 State: Okay Size: 142606464 blocks (68 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t3d0s0 0 No Okay Yes注:
如果新项目架设嫌麻烦不想用svm,又要做镜像,可直接对新服务器的内置硬盘做硬raid,方法如下,在ok状态下:
{0} ok 9 b create-raid1-volume
//用target 9和target b两块盘建raid1
具体细节可参考oracle官方文档。