现在的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 c1t3d0s0
d4               m   14GB d14 d24
    d14          s   14GB c1t0d0s4
    d24          s   14GB c1t1d0s4
d3               m  5.0GB d13 d23
    d13          s  5.0GB c1t0d0s3
    d23          s  5.0GB c1t1d0s3
d1               m   15GB d11 d21
    d11          s   15GB c1t0d0s1
    d21          s   15GB c1t1d0s1
d0               m   10GB d10 d20
    d10          s   10GB c1t0d0s0
    d20          s   10GB c1t1d0s0
d5               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官方文档。