Jump toUpdate content

Diagnosis of a failing disk

Reviewed on 02 November 2021Published on 02 November 2021

Smartmontools is a set of tools that controls and monitors a disk using the SMART standard (Self-Monitoring, Analysis, and Reporting Technology System).

It consists of two parts:

  • smartd, a daemon that allows you to periodically check your hard drives
  • smartctl, a command line tool to view the status of the hard disk

The tool supports the vast majority of modern hard drives.

Requirements:
  • You have an account and are logged into the Dedibox Console
  • You have a Dedibox dedicated server

How to check a single-disk server

  1. Log into your server using SSH.

  2. Run the following command from the root account (or precede it with sudo):

    smartctl -a /dev/sda
    Note:

    The identifier sda refers to your hard disk.

How to check a Dell multi-disk server

Dell PERC H200 controller

On these servers, the physical disks are referred to as sg* devices

  1. Log into your server using SSH.

  2. Run the following commands:

    smartctl -a -T permissive /dev/sg0
    smartctl -a -T permissive /dev/sg1
    smartctl -a -T permissive /dev/sg2
    Tip:

    As the devices can be positioned a little further away, do not hesitate to test up to sg5 if you do not have conclusive results.

Dell PERC H310 controller

Two possibilities exist for this type of controller:

  • megaclisas-status and
  • megacli

The first one displays the status of the RAID volume, whilst the second one displays the SMART status of the disks.

  1. Log into your server using SSH.

  2. Update the apt package lists cache and install the required packages:

    apt update
    apt install megaclisas-status megacli
  3. Run the following command to display the status of the RAID volume:

    megaclisas-status
  4. Run the following little script to retrieve the SMART values of your disks:

    DEVICE=/dev/sda
    for i in $(megacli -pdlist -a0 | grep Id | cut -d":" -f2); do
    echo "============================== $i =============================="
    smartctl -s on -a -d megaraid,${i} ${DEVICE} -T permissive
    done

How to check a HP multi-disk server

  1. Log into your server using SSH.

  2. Run the following command to display the status of the RAID:

    ssacli ctrl all show config

    An output similar to the following example displays:

    Smart Array P410 in Slot 1                (sn: PACCRID111003N3)

    array A (SATA, Unused Space: 0 MB)

    logicaldrive 1 (1.8 TB, RAID 1, OK)

    physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SATA, 2 TB, OK)
    physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SATA, 2 TB, OK)
  3. Run the following command to display the SMART values of the disks:

    smartctl -a -d cciss,0 /dev/sg0

    then run:

    smartctl -a -d cciss,1 /dev/sg0

How to use SMARTD to monitor your disks

smartd allows you to monitor your disks and to be alerted (depending on the configuration) by email in case of failure.

Important:

There is no guarantee as to the result of SMARTD and the time remaining before the disk fails completely. However, we strongly encourage you to back up and request a replacement rapidly.

How to configure SMARTD

Below, you find an example of a single-disk server installed on a Debian-like machine.

Note:

The following commands are to be executed as root or via sudo.

  1. Log into your server using SSH.

  2. Enable basic SMART options:

    smartctl -s on -o on -S on /dev/sda
  3. Check that the disk is healthy:

    smartctl -H /dev/sda
  4. Edit the file /etc/smartd.conf, to set up automated tests:

    • Start by commenting out the following line:

      DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
    • Then add a line similar to the following example:

      /dev/sda -a -d sat -o on -S on -s (S/../.././01|L/../1/03) -m root -M exec /usr/share/smartmontools/smartd-runner

    The above example will allow you to test your hard disk as follows:

    • A short test (S) every day at 1am (01)
    • A long test (L), every Monday (1) at 3am (03)
  5. Activate the daemon by uncommenting the line start_smartd=yes in the file /etc/default/smartmontools.

  6. Start the daemon by running the following command:

    service smartmontools start

If a problem is detected, it will send a default mail to root (-m root). You can redirect the mails sent to the root user to your personal mailbox or to send this mail directly to another address.

How to run tests manually

To run SMART tests manually, use the following commands:

  • smartctl -t short /dev/sda to run a short test on your disk
  • smartctl -t long /dev/sda to run a long test on your disk

Once the tests are completed, you can check the results with the following command:

smartctl -l selftest /dev/sda

How to report disk failures

If you notice any errors when running a SMART diagnosis on your disk, open a support ticket and ask for the disk to be replaced, indicating the serial number with the result of the smartctl command:

=== START OF INFORMATION SECTION ===
Device Model: SAMSUNG HD103UJ
Serial Number: S13PJ1KQ513170 <----------------------- Serial Number
Firmware Version: 1AA01113
User Capacity: 1 000 204 886 016 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 3b
Local Time is: Fri Oct 29 11:20:27 2010 CEST