SMART Drive Status and CCISS

Help
2008-09-08
2013-05-22
  • Richard Tunks
    Richard Tunks
    2008-09-08

    Hello

    I'm trying to get Webmin (1.40) to monitor the status of a number of SCSI drives running on a Compaq SmartArray 5300 on an ML370 running openSuse 10.3.  From the command line I can get the status using the following:

    nthome:/home/richard # smartctl -i -d cciss,0 /dev/cciss/c0d0
    smartctl version 5.37 [i686-suse-linux-gnu] Copyright (C) 2002-6 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/

    Device: COMPAQ   BD3008A4C6       Version: HPB4
    Serial number: 3KR1Y37V000076391TSJ
    Device type: disk
    Local Time is: Tue Sep  9 00:05:05 2008 BST
    Device supports SMART and is Enabled
    Temperature Warning Enabled

    When I try to configure the Smart Drive status module I have the path to smartctl as
    /usr/sbin/smartctl

    and I'm adding

    -i -d cciss,0 /dev/cciss/c0d0 in the extra command line parameter.

    display mode = 1 drive
    show all attributes = no
    force ata query mode = no

    what am I doing wrong?

    Thanks in advance,

    Richard

     
    • Eric Cartman
      Eric Cartman
      2009-01-13

      After looking at the code, the Smart Drive Status in Webmin uses the fdisk module to get a list of drives on the system.  From what I can tell, if you use a LVM partition, fdisk returns this as a "raid" device, and Smart Drive Status is looking for either a "scsi" or a "ide" device.  In other words, the Smart Drive Status module never makes it to the "smartctl" command because it thinks you don't have any drives on the system hence the "No IDE or SCSI drives were found on your system."

      I'm refering to:
      /usr/libexec/webmin/smart-status/index.cgi
      ~Line 33

      Not entirely sure if this is correct, but what I did was added an extra OR statement for the raid:

      @drives = grep { $_->{'type'} eq 'ide' ||
                       $_->{'type'} eq 'scsi' ||
                       $_->{'type'} eq 'raid' } &fdisk::list_disks_partitions();