Using MegaCli to Monitor Openfiler (rev2)

There were a few problems with the last post on monitoring lsi on openfiler. First of all, it wouldn’t send any useful data in the email alerts! For example, it would notify that the online disks were ‘online’, but it doesn’t show any of the offline disks. I was able to find some scripts and modify them to be more useful. Most of this code is from a project called megaraidsas-status, which hasn’t been updated in a while and didn’t work out of the box. I found the project here: HWRaid – LSI MegaRAID SAS.

Configuration Steps

  1. create a file /root/lsi-raidinfo with the following contents:
    #!/usr/bin/python
    
    # megaclisas-status 0.6
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with Pulse 2; if not, write to the Free Software
    # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
    # MA 02110-1301, USA.
    #
    # Copyright (C) 2007-2009 Adam Cecile (Le_Vert)
    
    ## modified by johnpuskar@gmail.com 08/14/11
    # fixed for LSI 9285-8e on Openfiler
    
    import os
    import re
    import sys
    
    if len(sys.argv) > 2:
        print 'Usage: megaraid-status [-d]'
        sys.exit(1)
    
    # if argument -d, only print disk info
    printarray = True
    printcontroller = True
    if len(sys.argv) > 1:
        if sys.argv[1] == '-d':
            printarray = False
            printcontroller = False
        else:
            print 'Usage: megaraid-status [-d]'
            sys.exit(1)
    
    # Get command output
    def getOutput(cmd):
        output = os.popen(cmd)
        lines = []
        for line in output:
            if not re.match(r'^$',line.strip()):
                lines.append(line.strip())
        return lines
    
    def returnControllerNumber(output):
        for line in output:
            if re.match(r'^Controller Count.*$',line.strip()):
    	    return int(line.split(':')[1].strip().strip('.'))
    
    def returnControllerModel(output):
        for line in output:
            if re.match(r'^Product Name.*$',line.strip()):
    	    return line.split(':')[1].strip()
    
    def returnArrayNumber(output):
        i = 0
        for line in output:
    	if re.match(r'^Virtual Disk.*$',line.strip()):
                i += 1
        return i
    
    def returnArrayInfo(output,controllerid,arrayid):
        id = 'c'+str(controllerid)+'u'+str(arrayid)
        # print 'DEBUG: id = '+str(id)
        operationlinennumber = False
        linenumber = 0
        for line in output:
            if re.match(r'^RAID Level.*$',line.strip()):
                type = 'RAID'+line.strip().split(':')[1].split(',')[0].split('-')[1].strip()
                # print 'debug: type = '+str(type)
            if re.match(r'^Size.*$',line.strip()):
                # Size reported in MB
                if re.match(r'^.*MB$',line.strip().split(':')[1]):
                    size = line.strip().split(':')[1].strip('MB').strip()
                    size = str(int(round((float(size) / 1000))))+'G'
                # Size reported in TB
                elif re.match(r'^.*TB$',line.strip().split(':')[1]):
                    size = line.strip().split(':')[1].strip('TB').strip()
                    size = str(int(round((float(size) * 1000))))+'G'
                # Size reported in GB (default)
                else:
                    size = line.strip().split(':')[1].strip('GB').strip()
                    size = str(int(round((float(size)))))+'G'
            if re.match(r'^State.*$',line.strip()):
                state = line.strip().split(':')[1].strip()
            if re.match(r'^Ongoing Progresses.*$',line.strip()):
    	    operationlinennumber = linenumber
            linenumber += 1
            if operationlinennumber:
                inprogress = output[operationlinennumber+1]
            else:
                inprogress = 'None'
        return [id,type,size,state,inprogress]
    
    def returnDiskInfo(output,controllerid,currentarrayid):
        arrayid = False
        oldarrayid = False
        olddiskid = False
        table = []
        state = 'Offline'
        model = 'Unknown'
        enclnum = 'Unknown'
        slotnum = 'Unknown'
        enclsl = 'Unknown'
    
        firstDisk = True
        for line in output:
            if re.match(r'Firmware state: .*$',line.strip()):
                state = line.split(':')[1].strip()
            if re.match(r'Slot Number: .*$',line.strip()):
                slotnum = line.split(':')[1].strip()
            if re.match(r'Inquiry Data: .*$',line.strip()):
                model = line.split(':')[1].strip()
                model = re.sub(' +', ' ', model)
            if re.match(r'Enclosure Device ID: [0-9]+$',line.strip()):
                enclnum = line.split(':')[1].strip()
                if firstDisk == True:
                    firstDisk = False
                else:
                    enclsl = str(enclnum)+':'+str(slotnum)
                    table.append([str(enclsl), model, state])
        # Last disk of last array
        enclsl = str(enclnum)+':'+str(slotnum)
        table.append([str(enclsl), model, state])
        arraytable = []
        for disk in table:
            arraytable.append(disk)
        return arraytable
    
    cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -adpCount -NoLog'
    output = getOutput(cmd)
    controllernumber = returnControllerNumber(output)
    
    bad = False
    
    # List available controller
    if printcontroller:
        print '-- Controllers --'
        print '-- ID | Model'
        controllerid = 0
        while controllerid < controllernumber:
            cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -a'+str(controllerid)+' -NoLog'
            output = getOutput(cmd)
            controllermodel = returnControllerModel(output)
            print 'c'+str(controllerid)+' | '+controllermodel
            controllerid += 1
        print ''
    
    if printarray:
        controllerid = 0
        print '-- Volumes --'
        print '-- ID | Type | Size | Status | InProgress'
        # print 'controller number'+str(controllernumber)
        while controllerid < controllernumber:
            arrayid = 0
    	cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -lall -a'+str(controllerid)+' -NoLog'
    	output = getOutput(cmd)
    	arraynumber = returnArrayNumber(output)
    	# print 'array number'+str(arraynumber)
            while arrayid             cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -l'+str(arrayid)+' -a'+str(controllerid)+' -NoLog'
    #            print 'DEBUG: running '+str(cmd)
    	    output = getOutput(cmd)
    	    # print 'DEBUG: output '+str(output)
                arrayinfo = returnArrayInfo(output,controllerid,arrayid)
    	    print 'volinfo: '+arrayinfo[0]+' | '+arrayinfo[1]+' | '+arrayinfo[2]+' | '+arrayinfo[3]+' | '+arrayinfo[4]
                if not arrayinfo[3] == 'Optimal':
                    bad = True
    	    arrayid += 1
            controllerid += 1
        print ''
    
    print '-- Disks --'
    print '-- Encl:Slot | Model | Status'
    
    controllerid = 0
    while controllerid < controllernumber:
        arrayid = 0
        cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -lall -a'+str(controllerid)+' -NoLog'
        output = getOutput(cmd)
        arraynumber = returnArrayNumber(output)
        while arrayid         #grab disk arrayId info
            #cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -a'+str(controllerid)+' -NoLog'
            cmd = '/opt/MegaRAID/MegaCli/MegaCli64 -PDList -a'+str(controllerid)+' -NoLog'
            #print 'debug: running '+str(cmd)
            output = getOutput(cmd)
            arraydisk = returnDiskInfo(output,controllerid,arrayid)
    
            for array in arraydisk:
                print 'diskinfo: '+array[0]+' | '+array[1]+' | '+array[2]
    	arrayid += 1
        controllerid += 1
    
    if bad:
        print '\nThere is at least one disk/array in a NOT OPTIMAL state.'
        sys.exit(1)
    
  2. chown 700 /root/lsi-raidinfo
  3. create a file /root/lsi-checkraid with the following contents:
    #!/usr/bin/python
    
    # created by johnpuskar@gmail.com on 08/14/11
    # rev 01
    
    import os
    import re
    import sys
    
    if len(sys.argv) > 1:
      print 'Usage: accepts stdin from lsi-raidinfo'
      sys.exit(1)
    
    blnBadDisk = False
    infile = sys.stdin
    for line in infile:
      #print 'DEBUG!! checking line:'+str(line)
      if re.match(r'diskinfo: .*$',line.strip()):
        if re.match(r'^((?!Online, Spun Up|Online, Spun down|Hotspare, Spun Up|Hotspare, Spun down).)*$',line.strip()):
          blnBadDisk = True
          #print 'DEBUG!! bad disk found!'
      if re.match(r'volinfo: ',line.strip()):
        if re.match(r'^((?!Optimal).)*$',line.strip()):
          #print 'DEBUG!! bad vol found!'
          blnBadDisk = True
    
    if blnBadDisk == True:
      print 'RAID ERROR'
    else:
      print 'RAID CLEAN'
    
  4. chown 700 /root/lsi-checkraid
  5. create a file /root/lsi-emailalerts with the following contents
    #!/bin/sh
    
    #get raid status info
    /root/lsi-raidinfo > /tmp/lsi-raidinfo.txt
    cat /tmp/lsi-raidinfo.txt | /root/lsi-checkraid > /tmp/lsi-checkraid.txt
    
    #check raid status info
    if grep -qE "RAID ERROR" /tmp/lsi-checkraid.txt
    then
    /opt/MegaRAID/MegaCli/MegaCli64 -PdList -aALL > /tmp/lsi-megaCLIdump.txt
    cat /tmp/lsi-raidinfo.txt | mailx -s "Warning: HOSTNAME failed disk or degraded array" MAILTOADDR -r MAILFROMADDR -a /tmp/lsi-megaCLIdump.txt
    fi
    
    rm -f /tmp/lsi-megaCLIdump.txt
    rm -f /tmp/lsi-raidinfo.txt
    rm -f /tmp/lsi-checkraid.txt
    exit 0
    
  6. modify the mailx line in /root/emailalerts with the correct from/to/subject
  7. chown 700 /root/lsi-emailalerts
  8. run crontab -e and add the following line:
    */5 * * * * /root/lsi-emailalerts
Now, when there’s a volume not ‘optimal’ or a disk not not ‘hotspare’ or ‘online, spun up’. You’ll get an email with useful info!

Example Email

subject: “Warning: HOSTNAME failed disk or degraded array”

attachment: lsi-megaCLIdump.txt

message:

— Controllers —
— ID | Model
c0 | LSI MegaRAID SAS 9285-8e

— Volumes —
— ID | Type | Size | Status | InProgress
volinfo: c0u0 | RAID6 | 57298G | Optimal | None

— Disks —
— Encl:Slot | Model | Status
diskinfo: 32:1 | SEAGATE ST33000650SS 0002Z2902LAT | Online, Spun down
diskinfo: 32:2 | SEAGATE ST33000650SS 0002Z2905B0E | Online, Spun down
diskinfo: 32:3 | SEAGATE ST33000650SS 0002Z2905ANS | Online, Spun down
diskinfo: 32:4 | SEAGATE ST33000650SS 0002Z2903DM0 | Online, Spun down
diskinfo: 32:5 | SEAGATE ST33000650SS 0002Z2905HE4 | Online, Spun down
diskinfo: 32:6 | SEAGATE ST33000650SS 0002Z2905B3F | Online, Spun down
diskinfo: 32:7 | SEAGATE ST33000650SS 0002Z2903DVH | Online, Spun down
diskinfo: 32:8 | SEAGATE ST33000650SS 0002Z2905B1W | Online, Spun down
diskinfo: 32:9 | SEAGATE ST33000650SS 0002Z29040GF | Online, Spun down
diskinfo: 32:10 | SEAGATE ST33000650SS 0002Z29032B5 | Online, Spun down
diskinfo: 32:11 | SEAGATE ST33000650SS 0002Z2905C23 | Online, Spun down
diskinfo: 32:12 | SEAGATE ST33000650SS 0002Z2904RMH | Online, Spun down
diskinfo: 32:13 | SEAGATE ST33000650SS 0002Z29035VM | Online, Spun down
diskinfo: 32:14 | SEAGATE ST33000650SS 0002Z2905H0C | Online, Spun down
diskinfo: 32:15 | SEAGATE ST33000650SS 0002Z29031SY | Online, Spun down
diskinfo: 32:16 | SEAGATE ST33000650SS 0002Z29031ZZ | Online, Spun down
diskinfo: 32:17 | SEAGATE ST33000650SS 0002Z2905AVN | Online, Spun down
diskinfo: 32:18 | SEAGATE ST33000650SS 0002Z2905DW9 | Online, Spun down
diskinfo: 32:19 | SEAGATE ST33000650SS 0002Z2905B2E | Online, Spun down
diskinfo: 32:20 | SEAGATE ST33000650SS 0002Z2903DP9 | Online, Spun down
diskinfo: 32:21 | SEAGATE ST33000650SS 0002Z2903YTQ | Online, Spun down
diskinfo: 32:22 | SEAGATE ST33000650SS 0002Z2906NEL | Online, Spun down
diskinfo: 32:23 | SEAGATE ST33000650SS 0002Z2906NMY | Online, Spun down
diskinfo: 32:24 | SEAGATE ST33000650SS 0002Z29035RL | Hotspare, Spun Up

Advertisements

7 thoughts on “Using MegaCli to Monitor Openfiler (rev2)

  1. Pingback: Using MegaCLI to Monitor Openfiler « windowsmasher

  2. Thx for the script.
    Another bug found:
    “while arrayid”
    misses a column after it? I get syntax error without it. I have added the column and it runs but the disk list in the message is empty, attachment is OK btw.

  3. I know just enough python to know that figuring out how to make this work is going to hurt.

    ARGH#1 my cut-paste of your code gave me line numbers interspersed with every source line. … ok, I edited those out

    ARGH#2: there’s a pile of indent errors in the first source, lines 56, 61, 66, and 95 are all syntax errors due to missing indents. in that last case, I’m not sure i that IF is supposed to be just the following line, or what.

  4. @Acrid and @Nuhi — I’ll take a look at these comments and update the source soon; thanks! The middle script should read, “modified by John Puskar” — I didn’t actually write it (oops!).

    @John Pierce — sorry for the trouble! Try clicking the ‘copy source’ button on the top-right of the source code box. It’ll copy the indents correctly and omit line numbers (hopefully).

  5. hmm. my browsers are probably protected against scripts pasting to my clipboard as that didn’t work. t’sok, I mangled the script til it worked, and I discovered that my latest-generation LSI MegaRAID SAS2 9260-8i’s firmware and megacli’s output isn’t quite compatible so I had to modify the script yet more to match the new output (one change I remember was, “Virtual Disk” is now “Virtual Drive”, sigh).

    even after doing this, its getting the enclosure number wrong on some of the interspersed global hotspares, and when I look at the output of megacli’s LDInfo command on my system, its not even consistent, which makes this whole approach problematic.

    I think I’m going to rework the script to run on the output of ‘megacli -ShowSummary -aN’ as thats much simpler to start with. itt doesn’t have quite all the info, but its got enough for alerts, I think….

    # /opt/MegaRAID/MegaCli/MegaCli64 -ShowSummary -a0

    System
    Operating System: Linux version 2.6.32-220.el6.x86_64
    Driver Version: 00.00.05.40-rh2
    CLI Version: 8.02.16

    Hardware
    Controller
    ProductName : LSI MegaRAID SAS 9261-8i(Bus 0, Dev 0)
    SAS Address : 500605b0032943d0
    FW Package Version: 12.12.0-0046
    Status : Optimal
    BBU
    BBU Type : iBBU
    Status : Healthy
    Enclosure
    Product Id : SAS2X28
    Type : SES
    Status : OK

    Product Id : SAS2X36
    Type : SES
    Status : OK

    Product Id : SGPIO
    Type : SGPIO
    Status : OK

    PD
    Connector : Port 4 – 7: Slot 0
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 1
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 2
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 3
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 4
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 5
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 6
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 7
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 8
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 9
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 10
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 4 – 7: Slot 11
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Global HotSpare
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 0
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 1
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 2
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 3
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 4
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 5
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 6
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 7
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 8
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 9
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 10
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 11
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Global HotSpare
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 12
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 13
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 14
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 15
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 16
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 17
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 18
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 19
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 20
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 21
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 22
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Online
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Connector : Port 0 – 3: Slot 23
    Vendor Id : SEAGATE
    Product Id : ST33000650SS
    State : Global HotSpare
    Disk Type : SAS,Hard Disk Device
    Capacity : 2.727 TB
    Power State : Active

    Storage

    Virtual Drives
    Virtual drive : Target Id 0 ,VD name
    Size : 73.668 TB
    State : Optimal
    RAID Level : 60

    Exit Code: 0x00

  6. Pingback: Table of Contents | windowsmasher

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s