Last modified: Mar. 13, 2010
Contents
1 - Summary
2 - Dependencies
3 - Smartmontools installation
4 - Service configuration
5 - Smartctl examples
6 - Service check
1 - Summary
This guide will show you how to install smartmontools in FreeBSD. Smartmontools
can run tests to monitor the SMART of hard disks. This has been tested in
FreeBSD 7.0, 7.1, 7.2 and 8.0 using ATA and SATA hard drives.
2 - Dependencies
Install the msmtp packge. Msmtp is an SMTP client used to send email. We will
use it to send email notifications.
# sudo pkg_add -r msmtp
Password:
It's helpful to know what type of hard disk the computer has. You can find this
out by typing the following.
# sysctl kern.disks
kern.disks: da0
In this case there is a single hard disk which is da0. Get more information
about the hard disk by typing the following.
# dmesg | grep "^\da0" | uniq
da0 at twa0 bus 0 target 0 lun 0
da0: <AMCC 9500S-8 DISK 2.06> Fixed Direct Access SCSI-3 device
da0: 100.000MB/s transfers
da0: 476816MB (976519168 512 byte sectors: 255H 63S/T 60785C)
The da0 disk is on a 3ware 9500S-8 controller card which is a SATA RAID card
meaning there are multiple hard disks connected to it in a RAID configuration.
# dmesg | grep -i 3ware | uniq
3ware device driver for 9000 series storage controllers, version: 3.70.05.001
twa0: <3ware 9000 series Storage Controller> port 0xe800-0xe8ff mem \
0xfebffc00-0xfebffcff,0xfd800000-0xfdffffff irq 16 at device 0.0 on pci1
Install the wget package.
# sudo pkg_add -r wget
Password:
# logout
The tw_cli software from 3ware has to be installed in order to get information
about the hard disks. This can be downloaded at http://www.3ware.com/.
# cd ~
# wget http://www.3ware.com/download/Escalade$model-Series/$ver/tw_cli-freebsd-$arch-$ver.tgz
# tar -zxvf tw_cli-freebsd-*.tgz
# ls -1
tw_cli
tw_cli-freebsd-*.tgz
tw_cli.8.html
tw_cli.8.nroff
# sudo cp tw_cli /sbin/
Password:
# sudo chmod +x /sbin/tw_cli
Password:
# rm -f tw_cli*
Get more information about the hard disks attached to the 3ware controller by
typing the following. Since the hard disks are identical we will get the model
number of just one of them.
# sudo tw_cli
Password:
//server> info
Ctl Model (V)Ports Drives Units NotOpt RRate VRate BBU
------------------------------------------------------------------------
c0 9500S-8 8 3 1 0 1 1 -
//server> info c0
Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy
------------------------------------------------------------------------------
u0 RAID-5 OK - - 64K 465.641 ON OFF
Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 232.88 GB 488397168 6VMBJCEG
p1 OK u0 232.88 GB 488397168 6VMBHY08
p2 OK u0 232.88 GB 488397168 5VM7ADL0
p3 NOT-PRESENT - - - -
p4 NOT-PRESENT - - - -
p5 NOT-PRESENT - - - -
p6 NOT-PRESENT - - - -
p7 NOT-PRESENT - - - -
//server> info c0 p0 model
/c0/p0 Model = ST3250318AS
//server> quit
Now, with the model of the hard drives find out if they are ATA, SCSI or SAT.
Since some hard disks are attached to a 3ware SATA RAID controller, there is
also software from 3ware to view information via a website interface. Install
the 3dm package.
# sudo pkg_add -r 3dm
Password:
Edit /etc/rc.conf.local so that the 3dm service will start when the system
starts up. Somewhere in the file add the following.
twdm2_enable="YES"
# sudo vi /etc/rc.conf.local
Password:
Type the following to find and then start the 3dm service.
# pkg_info -L 3dm-* | grep rc.d
/usr/local/etc/rc.d/3dm2
# sudo /usr/local/etc/rc.d/3dm2 start
Password:
Starting twdm2.
# sudo /usr/local/etc/rc.d/3dm2 status
Password:
twdm2 is running as pid 1163.
3 - Smartmontools installation
Install the smartmontools package.
# sudo pkg_add -r smartmontools
Password:
4 - Service configuration
Find where the smartmontools daemon was installed to.
# pkg_info -L smartmontools-* | grep sbin
/usr/local/sbin/smartctl
/usr/local/sbin/smartd
Edit /etc/rc.conf.local so that the smartmontools service will start when the
system starts up. Somewhere in the file add the following.
smartd_enable="YES"
# sudo vi /etc/rc.conf.local
Password:
Find where the configuration file should be put.
# grep smartd.conf /usr/local/etc/rc.d/smartd
: ${smartd_config="/usr/local/etc/smartd.conf"}
: ${smartd_flags="-c ${smartd_config}"}
required_files="${smartd_config}"
# strings /usr/local/sbin/smartd | grep smartd.conf
/usr/local/etc/smartd.conf
Device: %s, no SMART Self-Test log; remove -l selftest Directive from smartd.conf
Device: %s, no SMART Error log; remove -l error Directive from smartd.conf
You can create your own configuration file. Here is a simple example. This
will disable Autosave and will schedule a short self-test between 8-9 PM every
night and send warnings or errors to the email address provided. Scheduled
tests are run after the default scheduled device polling, which by default
is every thirty minutes after the smartd service is started.
/dev/twa0 -d 3ware,0 -S off -s S/../.././20 -m notifications@test.com -a
/dev/twa0 -d 3ware,1 -S off -s S/../.././20 -m notifications@test.com -a
/dev/twa0 -d 3ware,2 -S off -s S/../.././20 -m notifications@test.com -a
# pkg_info -L smartmontools-* | grep smartd.conf
/usr/local/man/man5/smartd.conf.5.gz
/usr/local/etc/smartd.conf.sample
/usr/local/share/doc/smartmontools/smartd.conf
# sudo cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf
Password:
# sudo cp /usr/local/etc/smartd.conf /usr/local/etc/smartd.conf.example
Password:
# sudo chmod u+w /usr/local/etc/smartd.conf
Password:
# sudo vi /usr/local/etc/smartd.conf
Password:
Start the smartmontools service.
# sudo /usr/local/etc/rc.d/smartd start
Password:
Starting smartd.
# sudo /usr/local/etc/rc.d/smartd status
Password:
smartd is running as pid 1279.
5 - Smartctl examples
Here are some basic examples of things you can find with smartctl. This
command enables SMART on the hard disks.
# sudo smartctl -d 3ware,0 /dev/twa0 -s on
Password:
smartctl version 5.38 [i386-portbld-freebsd8.0] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
This command prints the device model number, serial number, firmware version,
and ATA Standard version/revision information.
# sudo smartctl -d 3ware,0 /dev/twa0 -i
Password:
smartctl version 5.38 [i386-portbld-freebsd8.0] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: ST3250318AS
Serial Number: 6VMBJCEG
Firmware Version: CC38
User Capacity: 250,059,350,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Sun Mar 7 19:21:53 2010 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
This command prints the SMART health status.
# sudo smartctl -d 3ware,0 /dev/twa0 -H
Password:
smartctl version 5.38 [i386-portbld-freebsd8.0] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
This command runs a SMART short self test.
# sudo smartctl -d 3ware,0 /dev/twa0 -t short
Password:
smartctl version 5.38 [i386-portbld-freebsd8.0] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Sun Mar 7 19:25:24 2010
Use smartctl -X to abort test.
This command lists the log of selftest results.
# sudo smartctl -d 3ware,0 /dev/twa0 -l selftest
Password:
smartctl version 5.38 [i386-portbld-freebsd8.0] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 11 -
6 - Service check
Reboot your computer. Log in like normal and check to see that the
smartmontools service is running. That's it, now you have smartmontools
running in FreeBSD.
# sudo shutdown -r now
Password:
# sudo /usr/local/etc/rc.d/3dm2 status
Password:
twdm2 is running as pid 615.
# sudo /usr/local/etc/rc.d/smartd status
Password:
smartd is running as pid 632.
|