Есть админы, которые…

Written by

in

Много много букавак….

Все мы знаем, что есть админы, которые не делают бэкапы, и кто уже делает бэкапы…

Я вот непонятно кто, есть у меня сервер со злым рейдом на 4 порта, исторически сложилось, что на нём 2 зеркальных массива.
2х500 и 2х1500гб

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

вот весело, идём в /var/log/messages а там мама дорогая наш 3ware материться как может, что не получается у него чтение с массива…. перезагружаю сервер, вроде всё нормально, данные появились. ну думаю показалось дальше покуриваю логи, но всё повторяется через пол часа, понимаю, что дело хуже чем кажется, сервер у меня великой фирмы HP с великой штуковиной iLO
Зацепился и перезагружаю сервер и мне 3ware намекает мол браток винт с номером 3 fail!
Ну думаю ясно, бегу в магазин за винтом на 1.5Тб включаю назад рейду говорю, что хочу вот сюда всё скопировать, рейд говорит окей и затихает, система грузится дальше, винта не вижу..
начал гуглить как общаться с этим рейдом из консоли.
оказалось всё просто.

Утилита крутая, можно ей вносить новые винты делать REBUILD

# ./tw_cli
//SERVER> info

Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c0    9650SE-4LPML 4         4        2       0       1       1      -Code language: Bash (bash)

так нам сказали что массив звать c0 (бывает ещё показывает c4 например)

дальше смотрим что у нас в этом рейде

//SERVER> info c0

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       465.651   ON     OFF
u1    RAID-1    OK             -       -       -       1396.97   ON     OFF

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     465.76 GB   976773168     9QM031A0
p1     OK               u0     465.76 GB   976773168     9QM05Y63
p2     OK               u1     1.36 TB     2930277168    9VS0N8FE
p3     OK               u1     1.36 TB     2930277168    S1XWJ9CZB00472Code language: Bash (bash)

В общем прога умная, целых 180 страниц на неё мануал.

идём дальше.

на 90% ребилда возникла ошибка, тут становится яснее глубина проблемы.
Ладно, отключаем проверку ошибок и продолжаем ребилд… пока идёт ребилд, мы почитаем SMART

тут показывает, что всё ок с диском, но давайте посмотрим S.M.A.R.T.

Долго я игрался с параметрами smarttools чтоб считать параметры с этого массива

Но остановился вот на чём.

smartctl -d 3ware,2 -a /dev/twa0
_______________^Code language: Bash (bash)

где 2 это номер порта на контроллере. (у меня их от 0 до 3х)

Посмотрим что говорит наш винт. (Привожу полный лог для истории, для себя.)

# smartctl -d 3ware,2 -a /dev/twa0
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     ST31500341AS
Serial Number:    9VS0N8FE
Firmware Version: CC1G
User Capacity:    1 500 301 910 016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Not recognized. Minor revision code: 0x29
Local Time is:    Tue Mar 15 20:48:20 2011 KRAT
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:                 ( 617) 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:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.

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   119   099   006    Pre-fail  Always       -       229705477
  3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       33
  5 Reallocated_Sector_Ct   0x0033   097   097   036    Pre-fail  Always       -       131
  7 Seek_Error_Rate         0x000f   077   060   030    Pre-fail  Always       -       56935472
  9 Power_On_Hours          0x0032   080   080   000    Old_age   Always       -       18358
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       34
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Unknown_Attribute       0x0032   001   001   000    Old_age   Always       -       103
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
189 Unknown_Attribute       0x003a   084   084   000    Old_age   Always       -       16
190 Temperature_Celsius     0x0022   058   053   045    Old_age   Always       -       774045738
194 Temperature_Celsius     0x0022   042   047   000    Old_age   Always       -       42 (Lifetime Min/Max 0/5)
195 Hardware_ECC_Recovered  0x001a   047   017   000    Old_age   Always       -       229705477
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   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       268336671769988
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       1679272636
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       1683060254

SMART Error Log Version: 1
ATA Error Count: 192 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 192 occurred at disk power-on lifetime: 18242 hours (760 days + 2 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 ff ff ff 4f 00      10:21:03.851  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:21:03.851  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:21:03.851  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:21:03.850  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:21:03.825  READ FPDMA QUEUED

Error 191 occurred at disk power-on lifetime: 18242 hours (760 days + 2 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 ff ff ff 4f 00      10:20:50.953  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:50.915  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:50.915  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:50.914  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:50.914  READ FPDMA QUEUED

Error 190 occurred at disk power-on lifetime: 18242 hours (760 days + 2 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 80 ff ff ff 4f 00      10:20:33.021  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:28.989  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:28.947  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:28.906  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:28.864  READ FPDMA QUEUED

Error 189 occurred at disk power-on lifetime: 18242 hours (760 days + 2 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 ff ff ff 4f 00      10:20:15.833  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:15.833  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:15.833  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:15.833  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:15.808  READ FPDMA QUEUED

Error 188 occurred at disk power-on lifetime: 18242 hours (760 days + 2 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 ff ff ff 4f 00      10:20:02.952  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:02.914  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:02.913  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:02.913  READ FPDMA QUEUED
  60 00 01 ff ff ff 4f 00      10:20:02.913  READ FPDMA QUEUED

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.Code language: Bash (bash)

Что тут бросается в глаза
Raw_Read_Error_Rate Википедия подсказывает, что это аппаратная ошибка.
число это растёт нереальными темпами, суть в том, что очень скоро будет смерть второму винту.

все эти «многа буковак» к тому, что листайте иногда SMART посматривайте на ошибки.
многих бед избежать будет можно.

Но это ещё не всё! всё только начиналось, после REBUILD’a мне на винте открылось 3 файла, вместо 1.1 Терабайта.

ну, что понятно ФС улетела, идём делаем проверку

fsck -c /dev/sdb1Code language: Bash (bash)

проверка с тестом на бэды, идёт она ацки долго, дальше меня спрашивали куча на первый взгляд несяснох вопросов, где соглашался, а где боялся испортить данные, но вот проверка окончина, онитруем диск и там всего 1 каталог lost+found а в нём весь мой добрый терабайт информации.

в каталогах с номерами….

суть в том, что порушилось дерево ФС, и по сути мне остались только части этого дерева — ветви.

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

Ладно, раз мы ждём второго падения, копируем всю информацию куданить подальше от этого сервера, у меня под рукой оказалась коробочка intel ss4000, она ацки медленная для таких объёмов, больше суток она создавала массив RAID 5 из 4х винтов на 500Гб.
ещё 3е суток выливалась информация на неё….
Но это детали.

Чтоб таких радостей не повторялось я решил немного обезопасить себя, в закормах нашёл системник с p4 2.4 и ддр3200 на 512мб.
Докупил на него RAID контроллер за 1 т.р. на 4 порта, и купил новый курпус БП и 4 винта на 1.5Тб, чтоб состряпать из них RAID5 для «поддержания штанов»

То есть тупо держать горячую резервную копию ВСЕЙ информации.

Разумеется Бэкапы я делал, те данные что меняются каждый день, я копировал раз в сутки, те данные что меняются реже я хранил на внешних Seagate ( Free Agent Go )винтах.
Пришло время восстановления, тут я ещё наступил на одни грабли 🙁

один из внешних винтов (на 1ТБ )отказывается от питания, постоянно мигает лампочка.

Вот так господа. бывает, винт просто лежал в сейфе с момента последнего успешного бэкапа.

Собственно так ещё раз подтвердилась теория о «горячем» резервировании информации.

4 винта WD + Raid + БП на 450W + корпус мне вышли в 13 т.р.
Это дешевле чем купить в сервер рейд с большим чем 4 шнурками. это дешевле чем что-то выдумывать с внешними носителями, может я и не прав.
Буду раз в комментариях услышать ваше мнение!

ЗЫ проверил ВСЕ винты в серверах, и о чудо ВСЕ 1.5ТБ винты одной серии производства и все на грани смерти.
видимо партия или чего косячное…
пошёл смотреть остальные 500ки держаться молодцом, не смотря на то что в 2-3 раза старше.
на 1Тб сервер с одним SATA диском тоже еле дышит. (у него аптайм кстати под 650 дней.. но видимо ребут будет болезненный 🙁 )

PSS
Я не претендую на КО или ещё чего, не судите строго организация моя совсем небольшая, всего 30 машин и 2 «сервера» один обычный системник второй HP ML 320 g4 — может и наврал с моделью.
про этот сервер можно написать отдельный пост кстати 🙁
я устроился работать и буквально через неделю был куплен этот сервер, я на него взгоромздил файловый сервер и к обеду скорость работы по сети с файлами была около 100кб/c
Оказалось, что винты били под 70-90 градусов. конструкция сервера никакая для 4х винтов, вентиляции просто нет…
В общем родной рейд был демонтирован и установлен 3ware

Comments

3 ответа для «Есть админы, которые…»

  1. Аватар пользователя Николай
    Николай

    попробуй обновить прошивку на винтах, если это сеагате. У сеагате были проблемы с прошивкой — там была какая-то ашыпка.

    но если винт уже умир (не скажу про тех, которые присмерти) — то перепрошивка не спасает.

    З.Ы. глючный этот твой вордпресс — с 10 раза дал отправить коммент

  2. Аватар пользователя admin
    admin

    Николай да, какой-то он не доверчивый

  3. Аватар пользователя Александр

    Я для избежания подобных ситуаций ставил прогу, которая в командной строке выдавала, в зависимости от параметров запуска, длинный или короткий текст состояния жестких дисков. Кроном два раза в сутки проверяется состояние и результат пишется в текстовый файл, содержимое которого публикуется на внутреннем сайте (там указывается имя харда и его состояние- PASSED или FAILED).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *