S.M.A.R.T. (англ. Self Monitoring Analysing and Reporting Technology) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
Мне было необходимо контролировать работу 4х SATA дисков на одном из серверов с заблаговременным предупреждением о проблемах. Я воспользовался замечательной утилитой smartmontools.
Содержание:
# pkg_info |grep smartmontools smartmontools-5.38_7 S.M.A.R.T. disk monitoring tools bsd# make search name=smartmontools Port: smartmontools-5.38_8 Path: /usr/ports/sysutils/smartmontools Info: S.M.A.R.T. disk monitoring tools Maint: marck@FreeBSD.org B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1 R-deps: WWW: _http://smartmontools.sourceforge.net # cd /usr/ports/sysutils/smartmontools;make install clean ~~~~ smartmontools has been installed To check the status of drives, use the following: /usr/local/sbin/smartctl -a /dev/ad0 for first ATA drive /usr/local/sbin/smartctl -a /dev/da0 for first SCSI drive To include drive health information in your daily status reports, add a line like the following to /etc/periodic.conf: daily_status_smart_devices="/dev/ad0 /dev/da0" substituting the appropriate device names for your SMART-capable disks. To enable drive monitoring, you can use /usr/local/sbin/smartd. A sample configuration file has been installed as /usr/local/etc/smartd.conf.sample Copy this file to /usr/local/etc/smartd.conf and edit appropriately To have smartd start at boot echo 'smartd_enable="YES"' >> /etc/rc.conf ===> Installing rc.d startup script(s) ===> Compressing manual pages for smartmontools-5.38_8 ===> Registering installation for smartmontools-5.38_8 ===> Cleaning for smartmontools-5.38_8
Сначала вы убедитесь включен ли у вас SMART в BIOS и существует ли поддержка этой технологии у нужного жесткого диска. Возьмем для примера мой жеский диск ad4. У вас наименование может быть другим смотрите свой dmesg -a.
# atacontrol cap ad4 Protocol SATA revision 2.x device model SAMSUNG HD120IJ serial number S0AEJ1OA103537 firmware revision ZL100-33 cylinders 16383 heads 16 sectors/track 63 lba supported 234441648 sectors lba48 supported 234441648 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 0/0x00 254/0xFE
# /usr/local/sbin/smartctl -a /dev/ad4 smartctl version 5.38 [i386-portbld-freebsd7.2] Copyright (C) 2002-8 Bruce Allen Home page is _http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Model Family: SAMSUNG SpinPoint P80 SD series Device Model: SAMSUNG HD120IJ Serial Number: S0AEJ1OA103537 Firmware Version: ZL100-33 User Capacity: 120 034 123 776 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 4a Local Time is: Wed Oct 14 13:48:08 2009 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 General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. 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: (2729) seconds. Offline data collection capabilities: (0x5b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. No 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: ( 1) minutes. Extended self-test routine recommended polling time: ( 45) minutes. SCT capabilities: (0x003f) 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 100 100 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0007 100 100 025 Pre-fail Always - 6080 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 197 5 Reallocated_Sector_Ct 0x0033 253 253 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 253 253 051 Pre-fail Always - 0 8 Seek_Time_Performance 0x0025 253 253 015 Pre-fail Offline - 0 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 24004 10 Spin_Retry_Count 0x0033 253 253 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0012 253 002 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 177 190 Airflow_Temperature_Cel 0x0022 130 067 000 Old_age Always - 36 194 Temperature_Celsius 0x0022 130 067 000 Old_age Always - 36 195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 16044483 196 Reallocated_Event_Count 0x0032 253 253 000 Old_age Always - 0 197 Current_Pending_Sector 0x0012 253 253 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 253 253 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0 201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0 202 TA_Increase_Count 0x0032 253 253 000 Old_age Always - 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 (0) should be 1 SMART Selective self-test log data structure revision number 0 Warning: ATA Specification requires 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.
Много информации, но вам необходимо внимательно изучить таблицу Vendor Specific SMART Attributes with Thresholds.
Для разбора, что к чему изучите вот этот документ:
Главным образом на работу жесткого диска влияют несколько важных параметров в которых вы должны сразу определять проблему.
Типы атрибутов:
Приступим к созданию конфигурационного файла:
# cd /usr/local/etc/ # cp smartd.conf.sample smartd.conf # cat smartd.conf # cat smartd.conf Пример файла конфигурации для smartd. См. man smartd.conf. # Домашняя страница: _http://smartmontools.sourceforge.net # $Id: smartd.conf,v 1.45 2006/11/12 23:39:04 dpgilbert Exp $ # smartd будет перечитывать конфигурационный файл, если он получает сигнал HUP # signal # Файл предоставляет список устройств для мониторинга используемого smartd, # с одним устройством в каждой строке. Текст после решетки (#) игнорируется, # и вы можете использовать пробелы и табуляцию для свободного пространства. # Вы можете использовать '\' для продолжения линии. # Вы можете определить, какие обычно жесткие дискови есть на компьютере, # Заглянув в /proc/ide и /proc/scsi. (повеяло линусячиной =) ) # Переменная DEVICESCAN заставит игнорировать оставшиеся линий в этом # конфигурационном файле: и укажет для smartd сканировать все # ATA и SCSI устройств. DEVICESCAN может следовать любое из # Для найденных устройств будут применены нижеперечисленные директивы. # Для большинства пользователей рекомендуется закомментировать DEVICESCAN # и четко вывести список устройств, которые вы хотели бы контролировать. #DEVICESCAN # Альтернативные настройки для игнорирования температуры и включения числа # часов, проведённых во включенном состоянии записываемых отчетов в syslog. #DEVICESCAN -I 194 -I 231 -I 9 # Альтернативные настройки отчетов с более полезным значений температуры # записываемого в syslog #DEVICESCAN -R 194 -R 231 -I 9 # Альтернативные настройки для отчетов значения изменения # температуры >= 5 по Цельсию и мин/макс температуры. #DEVICESCAN -I 194 -I 231 -I 9 -W 5 # Первый (primary) ATA/IDE жесткий диск. Следить за всеми атрибутами, позволяющие # автоматически онлайново собирать данные, автоматическое автосохранение # атрибутов, и запуском короткой самодиагностики каждый день с 2-3 утра # , и полный тест в субботам с 3-4 утра. #/dev/hda -a -o on -S on -s (S/../.././02|L/../../6/03) # Мониторинг SMART статуса, ATA журнала ошибок, Self-Test # (короткой самодиагностики) журнала, а также отслеживать # изменения всех атрибутов, за исключением атрибута 194 #/dev/hdb -H -l error -l selftest -t -I 194 # Мониторинг всех атрибутов, кроме нормированной температуры (обычно 194), # но отслеживать изменения температуры >= 4 по Цельсию, отчет температуры # >= 45 по Цельсию, а изменения в Raw значения Reallocated_Sector_Ct (5). # И отправлять письмо об отказах SMART или при температуре >= 55 по Цельсию. #/dev/hdc -a -I 194 -W 4,45,55 -R 5 -m admin@example.com # Диск ATA может выглядеть как устройства SCSI в операционной системе. # Если к SCSI ATA перевода (SAT) слой между ОС и устройство, а затем # Это может быть помечено "-d sat 'опцией. Эта ситуация может # стать общей с дисками SATA в SAS и FC среды. # /dev/sda -a -d sat # Тихий тест. Рапортует лишь в случае, если SMART выдает # ошибку. И шлёт рапорт на почту. #/dev/hdc -H -C 0 -U 0 -m admin@example.com # Первых два SCSI диска. Это будет следить за всем, что может smartd # проверить. Начать расширенный тест по средам с 6-7 вечера и # воскресенье 1-2. #/dev/sda -d scsi -s L/../../3/18 #/dev/sdb -d scsi -s L/../../7/01 # Мониторинг 4х ATA дисков, подключенных к контроллеру 3Ware 6/7/8000 которая # использует 3W-XXXX драйвер. Начало длинного теста по воскресеньям с 1-2, # 2-3, 3-4 и 4-5 часов утра. #/dev/sdc -d 3ware,0 -a -s L/../../7/01 #/dev/sdc -d 3ware,1 -a -s L/../../7/02 #/dev/sdc -d 3ware,2 -a -s L/../../7/03 #/dev/sdc -d 3ware,3 -a -s L/../../7/04 # Мониторинг 4х ATA дисков, подключенных к контроллеру 3Ware 9000, который # использует 3W-9xxx драйвера (Linux, FreeBSD) # Начало длинного теста по вторникам с 1-2 и 3-4 утра. #/dev/twa0 -d 3ware,0 -a -s L/../../2/01 #/dev/twa0 -d 3ware,1 -a -s L/../../2/03 # То же самое для Windows. Опция "-d 3ware,N 'не является необходимым, # Диск (порт) номер, указанный в имени устройства. # ПРИМЕЧАНИЕ: В Windows DEVICESCAN работает также для контроллеров 3Ware. #/dev/hdc,0 -a -s L/../../2/01 #/dev/hdc,1 -a -s L/../../2/03 # Мониторинг 3 ATA диски напрямую связано с HighPoint RocketRAID. # Начало долгого теста по воскресеньям с 1-2, 2-3 и 3-4 утра. #/dev/sdd -d hpt,1/1 -a -s L/../../7/01 #/dev/sdd -d hpt,1/2 -a -s L/../../7/02 #/dev/sdd -d hpt,1/3 -a -s L/../../7/03 # Мониторинг 2х ATA дисках, подключенных к той же PMPort которые связаны с # HighPoint RocketRAID. Начало большого теста по вторникам между 1-2 и 3-4 м. #/dev/sdd -d hpt,1/4/1 -a -s L/../../2/01 #/dev/sdd -d hpt,1/4/2 -a -s L/../../2/03 # Добавляем свои диски /dev/ad0 -a -m admin@ampul.local -o on -S on -s (S/../.././22|L/../../6/23) /dev/ad1 -a -m admin@ampul.local -o on -S on -s (S/../.././22|L/../../6/23) # Вот список директив в этом файле конфигурации. # См. smartd.conf и man для деталей # # -d TYPE Тип устройства: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N # -T TYPE допустимое отклонение: normal, permissive # -o VAL Включает/выключает автоматические оффлайн тесты (on/off) # -S VAL Включает/выключает автосохранение атрибутов (on/off) # -n MODE Не проверять. Один из режимов: never, sleep, standby, idle # -H Мониторить SMART статус, уведомлять только при ошибках. # -l TYPE Мониторить SMART логи. Режимы: error, selftest # -f Монитор отказа для любых атрибутов 'Usage' # -m ADD Письмо с варнингами на ADD для -H, -l error, -l selftest, and -f # -M TYPE Изменение поведения отсыла е-майлов (см. ман) # -s REGE Запустить тест когда дата совпадает с регулярным выражением (см. ман) # -p Сообщать о изменениях в 'Prefailure' атрибутах # -u ообщать о изменениях в 'Usage' атрибутах # -t Эквивалентно -p и -u директивам # -r ID Также сообщать 'RAW' значения атрибутов ID с -p, -u или -t # -R ID Следить за изменениями в атрибуте ID 'Raw' значения -p, -u or -t # -i ID Игнорировать атрибут ID для -f директивы # -I ID Игнорировать атрибут ID для -p, -u или -t директивы # -C ID Рапортовать если счётчик `ждущих` секторов не равен нулю # -U ID Рапортовать если счётчик `некорректируемых` секторов не равен нулю # -W D,I,C Monitor Temperature D)ifference, I)nformal limit, C)ritical limit # -v N,ST Mодифицировать метку для атрибута N (для нестандартных атрибутов) # -a Дефолт: эквивалентно -H -f -t -l error -l selftest -C 197 -U 198 # -F TYPE Для ошибок в прошивке. Значения: none, samsung # -P TYPE Предустановки для диска: use, ignore, show, showall # # Комментарии: текст после него игнорируется # \ Продолжения строки # Идентификатор атрибута является десятичное целое число 1 <= ID <= 255 # за исключением -C и -U, где ID = 0 выключает их. # Все биты -d, -m и -M директивы реализуются только для устройств ATA.
Настроим syslog:
# cat /etc/syslog.conf |grep smart !smartd *.* /var/log/smartd.log
Создадим лог файл:
# touch /var/log/smartd.log
Перезапустим syslog:
# killall -1 syslogd
Запустим smartmontools:
# /usr/local/etc/rc.d/smartd start Starting smartd.
Проверим работу:
# ps -ax | grep smart 664 ?? I 0:00,02 /usr/local/sbin/smartd -p /var/run/smartd.pid --interval=400 3790 ?? I 0:00,01 smartd 9597 p0 S+ 0:00,00 grep smart
Включим запуск демона при запуски системы и включением проверки с частотой опроса через 400 секунд:
# echo 'smartd_enable="YES"' >> /etc/rc.conf # echo 'smartd_flags="--interval=400"' >> /etc/rc.conf
Посмотрим лог файл:
# tail -10 /var/log/smartd.log Oct 14 14:21:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 124 Oct 14 14:26:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130 Oct 14 14:26:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130 Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130 Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130 Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad6, SMART Usage Attribute: 194 Temperature_Celsius changed from 107 to 108 Oct 14 14:56:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 130 to 124 Oct 14 14:56:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 124 Oct 14 15:01:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130 Oct 14 15:01:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130
Ну вот и все. Теперь жеские диски контролируются. И самое главное поменьше вам писем от smartmontools ;).
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer
1)кажись сперва надо # echo
1)кажись сперва надо
# echo 'smartd_enable="YES"' >> /etc/rc.conf
# echo 'smartd_flags="--interval=400"' >> /etc/rc.conf
а потом уже
# /usr/local/etc/rc.d/smartd start
2)и неплохо было бы логи через newsyslog ротировать
3) неплохо расписать что значит
(S/../.././22|L/../../6/23)
RE:1)кажись сперва
1. Монописуально =)
2. В чем будет преимущество?
3. см man smartd.conf потом переведу
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]
ну как бы если писать
ну как бы если писать подробно то уже до конца.
я предложил как дополнить, потому как, без этого сейчас статья один в один как у лиса
RE:ну как бы если писать
-s (S/../.././22|L/../../6/23)
значит:
запуск короткой самодиагностики каждый день в 22 вечера
и полный тест в субботам (6) в 23 вечера
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]