S.M.A.R.T. (часть 6). Мониторинг дисков под LSI Fusion-MPT SAS контроллером

LSISAS1064EВ предыдущих статьях шла речь о настройке мониторинга физических дисков под Megaraid, Adaptec AAC-Raid и HP/Compaq Smart Array контроллерами. Теперь же хочу завершить сагу о мониторинге дисков под рейд контроллерами на инструкции по SCSI контролере – LSI Logic / Symbios Logic RAID. Если столкнусь с новыми типами рейд контроллеров по работе – то продолжу антологию.
У нас есть Ubuntu 12.04 сервер с LSI Logic / Symbios Logic SAS1064ET контроллером.

Мониторинг дисков используя mpt-status

Так как этому серверу и к предыдущим я физического доступа не имел – пришлось догадываться какой тип рейд контроллера на нем запилен. В этом мне помогли пару команд. Для начала посмотрел, сколько видно в системе физических дисков.

root@s04:~# lshw -c disk
  *-disk:0 UNCLAIMED
       description: ATA Disk
       product: WDC WD2500AAKX-7
       vendor: Western Digital
       physical id: 0.0.0
       bus info: scsi@4:0.0.0
       version: 1H19
       serial: WD-WMAYV0112956
       capacity: 232GiB (250GB)
       capabilities: 15000rpm
       configuration: ansiversion=5
  *-disk:1 UNCLAIMED
       description: ATA Disk
       product: WDC WD2500AAJS-7
       vendor: Western Digital
       physical id: 0.1.0
       bus info: scsi@4:0.1.0
       version: 3E02
       serial: WD-WMAV2EY37680
       capacity: 232GiB (250GB)
       capabilities: 15000rpm
       configuration: ansiversion=5
  *-disk:2 UNCLAIMED
       description: ATA Disk
       product: GB1000EAFJL
       physical id: 0.2.0
       bus info: scsi@4:0.2.0
       version: HPGA
       serial: 9QJ1FCHW
       capacity: 931GiB (1TB)
       capabilities: 15000rpm
       configuration: ansiversion=5
  *-disk:3 UNCLAIMED
       description: ATA Disk
       product: GB1000EAFJL
       physical id: 0.3.0
       bus info: scsi@4:0.3.0
       version: HPGA
       serial: 9QJ20J5C
       capacity: 931GiB (1TB)
       capabilities: 15000rpm
       configuration: ansiversion=5
  *-disk:4
       description: SCSI Disk
       product: Logical Volume
       vendor: LSILOGIC
       physical id: 1.3.0
       bus info: scsi@4:1.3.0
       logical name: /dev/sda
       version: 3000
       size: 931GiB (999GB)
       capacity: 931GiB (999GB)
       capabilities: 15000rpm partitioned partitioned:dos
       configuration: ansiversion=2 signature=000bec8f
  *-disk:5
       description: SCSI Disk
       product: Logical Volume
       vendor: LSILOGIC
       physical id: 1.0.0
       bus info: scsi@4:1.0.0
       logical name: /dev/sdb
       version: 3000
       size: 231GiB (248GB)
       capacity: 231GiB (248GB)
       capabilities: 15000rpm partitioned partitioned:dos
       configuration: ansiversion=2 signature=000892e2
  *-cdrom
       description: DVD reader
       product: DVD-ROM GDR-R10N
       vendor: HL-DT-ST
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/cdrom
       logical name: /dev/dvd
       logical name: /dev/sr0
       version: 2.02
       capabilities: removable audio dvd
       configuration: ansiversion=5 status=nodisc

Как видно, физических дисков у нас четыре ATA Disk без logical name и только два SCSI Disk с logical name /dev/sda и /dev/sdb. Это значит, что у нас явно рейд контроллер, только нужно узнать какой. Для этого проверяем, какие у нас есть PCI шины и какие устройства к ним подключены и ловим SCSI, так как у нас логические диски именно засветились на них.

root@s04:~# lspci | grep controller | grep –i scsi
0a:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1064ET PCI-Express Fusion-MPT SAS (rev 08)

Как видим, у нас LSI Fusion-MPT SAS контроллер. Как мы знаем, они поддерживают только RAID0 и RAID1 конфигурацию. Для мониторинга статуса LSI Fusion MPT SAS рейд контроллера я использовал утилиту mpt-status. Она очень проста и имеет очень маленький набор ключей и параметров, но дает все нужную информацию о статусе здоровья контроллера. Установка.

echo 'deb http://hwraid.le-vert.net/ubuntu precise main' > /etc/apt/sources.list.d/raid.list
wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
apt-get update
apt-get install mpt-status

Также для нормальной работы утилиты нужно добавить модуль ядра в автозагрузку.

root@s04:~# modprobe mptctl
root@s04:~# echo mptctl >> /etc/modules

Первым делом просканируем на наличие контроллеров.

root@s04:~# mpt-status -p
Checking for SCSI ID:0
Found SCSI id=0, use ''mpt-status -i 0`` to get more information.

Как видим, утилита нашла на SCSI с ID:0 массив дисков и предложила посмотреть детальную информацию.

root@s04:~# mpt-status -i 0
ioc0 vol_id 0 type IM, 2 phy, 231 GB, state OPTIMAL, flags ENABLED
ioc0 phy 3 scsi_id 1 ATA      WDC WD2500AAKX-7 1H19, 232 GB, state ONLINE, flags NONE
ioc0 phy 2 scsi_id 2 ATA      WDC WD2500AAJS-7 3E02, 232 GB, state ONLINE, flags NONE

Как видно, на SCSI ID:0 у нас два диска в нормальном состоянии и статус логического диска тоже в порядке.
Можно также вывести только статус логического и физических дисков.

root@s04:~# mpt-status -s -i 0
log_id 0 OPTIMAL
phys_id 3 ONLINE
phys_id 2 ONLINE

У нас есть два SCSI диска. ID SCSI диска можно узнать из предыдущей команды

root@s04:~# lshw -c disk | grep -A 4 SCSI | grep 'physical id'
       physical id: 1.3.0
       physical id: 1.0.0

В данном случаи ID дисков у нас – это вторая цифра из вывода. Проверяем

root@s04:~# mpt-status -i 0
ioc0 vol_id 0 type IM, 2 phy, 231 GB, state OPTIMAL, flags ENABLED
ioc0 phy 3 scsi_id 1 ATA      WDC WD2500AAKX-7 1H19, 232 GB, state ONLINE, flags NONE
ioc0 phy 2 scsi_id 2 ATA      WDC WD2500AAJS-7 3E02, 232 GB, state ONLINE, flags NONE

root@s04:~# mpt-status -i 3
ioc0 vol_id 3 type IM, 2 phy, 931 GB, state OPTIMAL, flags ENABLED
ioc0 phy 1 scsi_id 9 ATA      GB1000EAFJL      HPGA, 931 GB, state ONLINE, flags NONE
ioc0 phy 0 scsi_id 4 ATA      GB1000EAFJL      HPGA, 931 GB, state ONLINE, flags NONE

Теперь можно написать маленький скрипт для мониторинга статуса дисков.

root@s04:~# cat lsisymbiosraid.sh
#!/bin/bash
ERROR_COUNT=0
#mpt-status -i 0 | grep -oE 'state [a-Z]+'
get_raid_status() {
STATUS=`mpt-status -s -i $1 | awk '{print $3}'`
while read line
do
if [ -n "${line}" ]
then
if [ "${line}" = "ONLINE" ] || [ "${line}" = "OPTIMAL" ]
then
echo "Test result is OK" > /dev/null
else
#echo "Test result is FAIL"
ERROR_STR="Some poblem with LSI Symbios Logic raid. Please check it using \"mpt-status -i $1\" command "
let "ERROR_COUNT += 1"
fi
fi
done <<< "${STATUS}"
}
get_raid_status 0
get_raid_status 3

if [ -n "$1" ] && [ "$1" = "log" ]
then
echo ${ERROR_STR}
else
echo ${ERROR_COUNT}
fi
exit 0

Ну я думаю, что тут все понятно. Мы ловим статус OPTIMAL и ONLINE и если статус отличный от них, то проблема с одним из дисков и количество ошибок растет. Проверяем

root@s04:~# ./lsisymbiosraid.sh
0
root@s04:~# ./lsisymbiosraid.sh log
root@s04:~#

Мониторинг дисков используя smartctl

Диски за LSI Fusion-MPT SAS можно так же мониторить используя smartctl. Для этого нам нужно посмотреть или загружены нужные модули ядра, если нет – добавить.

root@s04:~# modprobe sg
root@s04:~# echo sg >> /etc/modules

Теперь посмотрим, какие у нас есть sg устройства в системе.

root@s04:~# ls -l /dev/sg*
crw-rw---- 1 root cdrom 21, 0 Dec 27 23:15 /dev/sg0
crw-rw---- 1 root disk  21, 1 Dec 27 23:15 /dev/sg1
crw-rw---- 1 root disk  21, 2 Dec 27 23:15 /dev/sg2
crw-rw---- 1 root disk  21, 3 Dec 27 23:15 /dev/sg3
crw-rw---- 1 root disk  21, 4 Dec 27 23:15 /dev/sg4
crw-rw---- 1 root disk  21, 5 Dec 27 23:15 /dev/sg5
crw-rw---- 1 root disk  21, 6 Dec 27 23:15 /dev/sg6

Как видим первое устройство это cdrom. Теперь проверим, что являют собой остальные устройства. Это можно сделать все той же утилитой smartctl.

root@s04:~# ls /dev/sg* | while read device; do echo  "Device $device is " ; smartctl -i $device | grep -E '(Vendor|Product|Device Model|Serial Number)' ; done
Device /dev/sg0 is
Vendor:               HL-DT-ST
Product:              DVD-ROM GDR-R10N
Device /dev/sg1 is
Device Model:     WDC WD2500AAKX-753CA1
Serial Number:    WD-WMAYV0112956
Device /dev/sg2 is
Device Model:     WDC WD2500AAJS-75M0A0
Serial Number:    WD-WMAV2EY37680
Device /dev/sg3 is
Device Model:     GB1000EAFJL
Serial Number:    9QJ1FCHW
Device /dev/sg4 is
Device Model:     GB1000EAFJL
Serial Number:    9QJ20J5C
Device /dev/sg5 is
Vendor:               LSILOGIC
Product:              Logical Volume
Device /dev/sg6 is
Vendor:               LSILOGIC
Product:              Logical Volume

Как видим, у нас показаны все физические диски и два логических, которые и есть SCSI массивами.
Ситуация такая же как и с Adaptec AAC-Raid дисками, которые тоже видно как /dev/sg* устройства.

root@il-bi-s04:~# smartctl -a /dev/sg1
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-26-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Blue Serial ATA
Device Model:     WDC WD2500AAKX-753CA1
Serial Number:    WD-WMAYV0112956
LU WWN Device Id: 5 0014ee 0584c6ea7
Firmware Version: 19.01H19
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Thu Mar 27 14:09:06 2014 IST
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:  (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:                ( 4380) 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:        (  47) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x3037) 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     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   144   141   021    Pre-fail  Always       -       3775
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       35
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   079   079   000    Old_age   Always       -       15847
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       33
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       26
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       8
194 Temperature_Celsius     0x0022   117   100   000    Old_age   Always       -       26
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       6
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
240 Head_Flying_Hours       0x0032   080   080   000    Old_age   Always       -       14835
241 Total_LBAs_Written      0x0032   200   200   000    Old_age   Always       -       14052650556
242 Total_LBAs_Read         0x0032   200   200   000    Old_age   Always       -       9139482693

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.

Для настройки рейда, замены дисков и т.п. операций используется утилита lsiutil которая имеет интерактивный интерфейс.

root@s04:~# lsiutil

LSI Logic MPT Configuration Utility, Version 1.56, March 19, 2008

1 MPT Port found

     Port Name         Chip Vendor/Type/Rev    MPT Rev  Firmware Rev  IOC
 1.  /proc/mpt/ioc0    LSI Logic SAS1064E B3     105      01172700     0

Select a device:  [1-1 or 0 to quit] 1

 1.  Identify firmware, BIOS, and/or FCode
 2.  Download firmware (update the FLASH)
 4.  Download/erase BIOS and/or FCode (update the FLASH)
 8.  Scan for devices
10.  Change IOC settings (interrupt coalescing)
13.  Change SAS IO Unit settings
16.  Display attached devices
20.  Diagnostics
21.  RAID actions
22.  Reset bus
23.  Reset target
42.  Display operating system names for devices
43.  Diagnostic Buffer actions
45.  Concatenate SAS firmware and NVDATA files
60.  Show non-default settings
61.  Restore default settings
69.  Show board manufacturing information
97.  Reset SAS link, HARD RESET
98.  Reset SAS link
99.  Reset port
 e   Enable expert mode in menus
 p   Enable paged mode
 w   Enable logging

Main menu, select an option:  [1-99 or e/p/w or 0 to quit]

Детали по утилите можно найти в Инете, так как я с ней толком не работал.

Мониторинг дисков используя smartd

Предыдущие способы мониторинга дисков были ручными, т.е. нужно вручную запускать проверку дисков находясь на конкретном сервере, или же настроить систему мониторинга, которая будет использовать написанные выше скрипты для сбора информации о состоянии дисков. Но есть еще один способ мониторинга — это использование демона smartd, который будет отправлять нам письма о проблемных дисках. Детально о настройках демона smartd можно почитать здесь
Для начала добавим демон в автозагрузку.

root@s04:~# cat /etc/default/smartmontools
start_smartd=yes
smartd_opts="--interval=3600"

Так же было добавлено интервал запуска проверок. Далее нам нужно добавить диски на мониторинг, для чего служит файл smartd.conf.

root@s04:~# cat /etc/smartd.conf
#Диски, которые нужно мониторить
/dev/sg1 -o on -S on -m your@emailaddress.com -M diminishing -a -s (S/../.././00|L/../../7/03)
/dev/sg2 -o on -S on -m your@emailaddress.com -M diminishing -a -s (S/../.././00|L/../../7/03)
/dev/sg3 -o on -S on -m your@emailaddress.com -M diminishing -a -s (S/../.././00|L/../../7/03)
/dev/sg4 -o on -S on -m your@emailaddress.com -M diminishing -a -s (S/../.././00|L/../../7/03)

root@s04:~# /etc/init.d/smartd restart

Немного расшифрую вывод. Для все дисков включено запуск офлайн тестов (-o on) для обновление и сохранения значений атрибутов (-S on). Так же добавлена проверка всех текущих параметров (-а) и назначено запуск дополнительных коротких тестов каждый день в полночь (S/../.././00) и долгих тестов каждое воскресенье с 3 часов ночи (L/../../7/03). Если будет проблема хотя бы с одной из метрик — будет отправлено письмо на соответствующий адрес (-m your@emailaddress.com). При этом письма будут отправляться систематически — 1,2,4,8,16,… дни (-M diminishing), пока проблема не будет устранена.
В следующей статье пойдет речь о детальном разборе мониторинга дисков используя smartd демон.

Автор: admin, 27 марта 2014
Рубрики: Системы мониторинга
Метки: ,

Написать комментарий

Последние статьи

Яндекс.Метрика
?>