Много много букавак….
Все мы знаем, что есть админы, которые не делают бэкапы, и кто уже делает бэкапы…
Я вот непонятно кто, есть у меня сервер со злым рейдом на 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
Добавить комментарий