up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
HTMLSSDCentOSDebianHDDMySQLPerlFreeBSDRAMCPUBenchmarkBashLinuxPHP

Популярные статьи
Категория “Администрирование

Software RAID: нужен ли и как использовать

Многие задают себе вопрос - стоит ли использовать Software RAID на сервере?
Если вам важны ваши данные, их сохранность, тогда ответ однозначно ДА. Почему? Потому что при выходе из строя одного из дисков сервер продолжает работать на втором (зеркальном) диске. А для того чтобы узнать в каком состоянии диски и своевременно быть уведомленным об выходе из строя диска там необходима утилита smartmontools. Установим ее:
Debian, Ubuntu

aptitude install smartmontools

CentOS, Fedora

yum install smartmontools

Из этого пакета используем утилиту smartctl и демона smartd.

Сканируем систему в поисках дисков:

smartctl --scan

Данная команда покажет также тип устройства.
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
Выясняем, поддерживает ли диск SMART:

smartctl -i /dev/sda

Если поддерживает тогда идем дальше.
Выполняем команду

smartctl -s on -o on -S on /dev/sda

-s on: включает поддержку S.M.A.R.T.;
-o on: включает автоматический запуск оффлайн-тестов;
-S on: включает функцию автоматического сохранения значений атрибутов.

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.

Аналогично повторяем эту и все последующие команды для каждого диска.

Проверим общее состояние диска, жив ли он вообще

smartctl -H /dev/sda

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Если команда возвращает не PASSED немедленно замените диск.

Следующая команда покажет примерное время выполнения тестов

smartctl -c /dev/sda

Быстрый тест диска

smartctl -t short /dev/sda

Вывод результата тестов

smartctl -l selftest /dev/sda

=== 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%     21472   

Complete failure - повод для беспокойства и причина немедленно провести полный тест.
Если в результате тестирования была обнаружена ошибка, то в колонке LBA_of_first_error будет отображён логический адрес блока, в котором обнаружена ошибка. Если тест не будет проведён до конца в связи с ошибкой, то в колонке Remaining будет отображено количество процентов, оставшееся до завершения.

Полный тест диска

smartctl -t long /dev/sda

При помощи команды

smartctl -l error /dev/sda

можно просмотреть протокол ошибок диска. Если ошибки отсутствуют, то, естественно, протокол ошибок будет пустым. Обычно волноваться стоит лишь в том случае, когда количество ошибок в протоколе будет значительным, поскольку часто возникают случайные, незначительные ошибки в работе, которые не представляют особой серьёзности.

При помощи команды

smartctl -t offline /dev/sda

можно запустить оффлайн-тестирование, если вы этого не сделали ранее с помощью опций -o on (см. выше), или же диск не поддерживает автоматическое оффлайн-тестирование.

Далее настроим анализ дисков демоном smartd, редактируя его конфиг:

vi /etc/smartd.conf

Комментируем строку

#DEVICESCAN -H -m root

Добавляем строку(и):

/dev/sda -S on -o on -a -I 194 -m [email protected]

Опции -S on и -o on я описал выше. Директива -a заставляет smartd наблюдать за всеми доступными SMART-параметрами дисков. Директива -I 194 указывает smartd игнорировать изменения значения атрибута #194, поскольку температура жёсткого диска довольно часто изменяется, а наличие в протоколе кучи сообщений об этом лишь будет мешать. -m указывает на необходимость отправки email-уведомлений. -d scsi тип диска, который мы определили сканированием.

DEVICESCAN -I 194 -I 231 -I 9 -W 5 -m [email protected]

Позволяет игнорировать часы наработки, а также изменение температуры в пределах 5 градусов.

И перезапускаем демона:
Для CentOS

service smartd restart

Для Debian

service smartmontools restart

Для получения всей информации о диске:

smartctl --all /dev/sda

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Blue Serial ATA
Device Model:     WDC WD5000AAKX-603CA0
Serial Number:    WD-WMAYUU516583
LU WWN Device Id: 5 0014ee 6ad1218ff
Firmware Version: 18.01H18
User Capacity:    500 107 862 016 bytes [500 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:    Sat Oct 27 14:46:42 2012 MSK
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:
....

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   137   137   021    Pre-fail  Always       -       4116
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       21
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002f   200   200   051    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       1713
10 Spin_Retry_Count        0x0033   100   253   051    Pre-fail  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       -       19
184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   069   062   040    Old_age   Always       -       31 (Min/Max 26/32)
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       15
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       5
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   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

Разберем детально вывод smartctl:
RAW_VALUE - Каждый атрибут имеет raw value 6-ти байтовое значение.
VALUE - одно байтовое значение "нормализованное".

Формат raw data определяется производителем и не описан в стандарте. firmware диска конвертирует raw value в normalized value в диапазоне от 1 до 253. Если это нормализованное значение меньше или равно threshold (THRESH), атрибут считается failed и отображается в столбце WHEN_FAILED.

Минимальное (WORST) нормализованное значение - это минимальное значение которое достигалось с момента включения SMART на диске.

TYPE - существует 2 типа атрибутов:
Критичные атрибуты: (Pre-fail)
Некритичные атрибуты: (Old_age) (величина value отведенная вендором до наработки на отказ (ресурс)).

Если VALUE стало меньше THRESH в случае Pre-fail атрибута - существует большая вероятность, что диск вылетит в ближайшие 24 часа.

Если VALUE стало меньше THRESH в случае Old_age атрибута - существует большая вероятность, что диск вылетит т.к. выработан ресурс. Вот только когда - науке это неизвестно.

Смотрим параметры второго диска:

smartctl -A /dev/sdb

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
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   056   049   006    Pre-fail  Always       -       144758668
  3 Spin_Up_Time            0x0003   097   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       11
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   081   060   030    Pre-fail  Always       -       140845722
  9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       24186
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       136
194 Temperature_Celsius     0x0022   044   063   000    Old_age   Always       -       44
195 Hardware_ECC_Recovered  0x001a   056   049   000    Old_age   Always       -       144758668
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   182   000    Old_age   Always       -       42
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 TA_Increase_Count       0x0032   100   253   000    Old_age   Always       -       0

А этот диск уже ресурс подвыработал...
Raw_Read_Error_Rate (частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска) - 049.
Seek_Error_Rate (частота ошибок при позиционировании блока головок.) - 060.
И температура не радует совсем.

Смарт атрибуты:
Каждый атрибут имеет величину - Value.
Value Изменяется в диапазоне от 0 до 255 (задается производителем).
Низкое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение Value атрибута, тем лучше.

Raw Value - это значение атрибута во внутреннем формате производителя значение малоинформативно, разве что кроме работников сервис-центров.

Threshold - минимальное возможное значение атрибута, при котором гарантируется безотказная работа накопителя.

При значении атрибута VALUE меньше THRESH очень вероятен сбой в работе или полный отказ. 
Атрибуты бывают критически важными (Pre-fail) и некритически важными (Old_age).

Выход критически важного параметра за пределы Threshold фактический означает выход диска из строя, выход за пределы допустимых значений некритически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность.
Добавлено спустя   4 минуты  18 секунд:

Критичные атрибуты:

  • Raw Read Error Rate - частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.

  • Spin Up Time - время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся не максимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.

  • Spin Up Retry Count - число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно не максимальное Value) свидетельствует о проблемах в механической части накопителя.

  • Seek Error Rate - частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.

  • Reallocated Sector Count - число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы "на лету" и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

  • Start/Stop Count - полное число запусков/остановок шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.

  • Power On Hours - число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF). Обычно величина MTBF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.

  • Drive Power Cycle Count - количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.

  • Temperatue - Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Вернее имеет влияние не на срок службы диска а на частоту возникновения некоторых типов ошибок, которые влияют на срок службы.

  • Current Pending Sector Count - Число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.

  • Uncorrectable Sector Count - число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.

  • UDMA CRC Error Rate - число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

  • Write Error Rate - показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя.

Посылаем уведомления в случае отказа рейда:

vi /etc/mdadm.conf

или

vi /etc/mdadm/mdadm.conf

Добавляем/заменяем:

MAILADDR [email protected]

MAILFROM [email protected]

Тут думаю все понятно.

Далее необходимо перезагрузить монитор:

На Debian,Ubuntu

service mdadm restart

На CentOS,Fedora

service mdmonitor restart

Проверим состояние всех RAID-массивов:

cat /proc/mdstat

Проверка целостности программного RAID-массива md0:

echo 'check' >/sys/block/md0/md/sync_action

Пересинхронизация программного RAID-массива md0:

echo 'repair' >/sys/block/md0/md/sync_action

Изменение максимальной скорости синхронизации программного RAID-массива md0:

echo 10000 >/sys/block/md0/md/sync_speed_max

где 10000 - скорость в кбайт/сек.

Ошибки в процессе проверки программного RAID-массива по команде check или repair:

cat /sys/block/md0/md/mismatch_cnt

Аналогично для остальных массивов (md1, md2...).

Скорость синхронизации можно регулировать этими параметрами:

- для всех разделов:

cat /proc/sys/dev/raid/speed_limit_max

cat /proc/sys/dev/raid/speed_limit_min

- для конкретного раздела, в данном случае для md0:

cat /sys/block/md0/md/sync_speed_max

cat /sys/block/md0/md/sync_speed_min

 

Ссылки:
http://ru.wikipedia.org/wiki/Технология_SMART
http://www.linuxjournal.com/article/6983
http://smartmontools.sourceforge.net/
http://www.3dnews.ru/storage/smart/

Tuesday, 19 August 2014, 11:15Прочитано 96 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134