FreeBSD. Наблюдение за S.M.A.R.T. характеристиками HDD средствами smartmontools.

Для наблюдения за основными характеристиками жестких дисков, используем встроенный аппаратный механизм самодиагностики жестких дисков - S.M.A.R.T. Портом, отображающим состояние SMART-атрибутов, во FreBSD, является порт smartmontools. Так же порт умеет наблюдать за состояние SMART-атрибутов, задавать условия проверки диапазонов значений этих атрибутов, выходя из которых будут производиться записи в лог и/или отправлять сообщение по электронной почте.

Установка smartmontools.

# cd /usr/ports/sysutils/smartmontools
# make config

Опции у порта отсутствуют, продолжаем установку.

# make install clean

Ждем окончания установки порта.

Настройка smartmontools.

Проверяем возможность и состояние параметра SMART:

# atacontrol cap ad0
Protocol              SATA revision 2.x
device model          WDC WD2500JS-00NCB1
serial number         WD-WCANK7982787
firmware revision     10.02E02
cylinders             16383
heads                 16
sectors/track         63
lba supported         268435455 sectors
lba48 supported       488395055 sectors
dma supported
overlap not supported

Feature                      Support  Enable    Value           Vendor
write cache                    yes    yes
read ahead                     yes    yes
Native Command Queuing (NCQ)   yes     -    31/0x1F
Tagged Command Queuing (TCQ)   no    no    31/0x1F
SMART                          yes    yes
microcode download             yes    yes
security                       yes    no
power management               yes    yes
advanced power management      no    no    0/0x00
automatic acoustic management  yes    no    254/0xFE    128/0x80

Запускаем утилиту smartctl:

# /usr/local/sbin/smartctl -a /dev/ad0
smartctl 5.39.1 2010-01-28 r3054 [FreeBSD 8.1-RELEASE i386] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar SE Serial ATA family
Device Model:     WDC WD2500JS-00NCB1
Serial Number:    WD-WCANK7982787
Firmware Version: 10.02E02
User Capacity:    250,058,268,160 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Thu Oct 28 15:33:42 2010 MSD
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x84)    Offline data collection activity
                    was suspended by an interrupting command from host.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:          (7680) seconds.
Offline data collection
capabilities:              (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  90) minutes.
Conveyance self-test routine
recommended polling time:      (   6) minutes.
SCT capabilities:            (0x103f)    SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0003   222   187   021    Pre-fail  Always       -       3891
  4 Start_Stop_Count        0x0032   099   099   000    Old_age   Always       -       1029
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   200   200   051    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   093   093   000    Old_age   Always       -       5804
 10 Spin_Retry_Count        0x0013   100   100   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0012   100   100   051    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       1025
190 Airflow_Temperature_Cel 0x0022   057   033   045    Old_age   Always   In_the_past 43
194 Temperature_Celsius     0x0022   107   083   000    Old_age   Always       -       43
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0009   200   200   051    Pre-fail  Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Создаем рабочий файл конфигурации:

# touch /usr/local/etc/smartd.conf

Внимательно читая man smartd.conf редактируем данный файл. У меня получился следующего содержания:

/dev/ad0 -a -I 194 -W 4,45,55 -R 5 -m admin@home.local -o on -S on -s (S/../.././02|L/../../6/03)

Настройка системы.

Добавляем строки для автозапуска smartd в /etc/rc.conf:

smartd_enable="YES"

Создаем файл где куда будут записывать логи smartd

# touch /var/log/smartd.log

Даем права только root для чтения и записи в /var/log/smartd.log

# chmod 600 /var/log/smartd.log

Добавляем строки для того что бы можно было смотреть логи smartd в /etc/syslog.conf:

!smartd
*.*                                             /var/log/smartd.log

Перезапускаем syslogd

# /etc/rc.d/syslogd reload

Настраиваем ротацию лога smartd в /etc/newsyslog.conf:

/var/log/smartd.log 600  7     100  *     JC

Перезапускаем newsyslog

# /etc/rc.d/newsyslog restart

Запускаем монитор:

# /usr/local/etc/rc.d/smartd

Комментариев нет: