Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> tw_cli

Исправление ошибок RAID на контроллерах 3ware

Автор: lissyara.


    На одном из серверов установленных в датацентре произошла странная ситуация - пропал диск =). На всякий случай машину перезагрузил - не помогло. Пришлось написать тикет, чтоб погасили, выдернули второй справа хот-сваповый диск, воткнули на место и включили. Диск появился, но, состояние массива было "DEGRADED". Контроллер был от правильного производителя - 3ware (недавно их купил убогий LSI, очень хочу надеяться что они не станут производить такие же кривые контроллеры...). После часа ковыряний с tw_cli, пришлось просить IP-КВМ и запускать пересборку из BIOS контроллера - утилиту на боевой системе я ниасилил (многие вещщи делать было стрёмно - дока скудная, а предложения из буржуйского сектора инета, типа разрушить массив для пересборки - доверия не внушали). Просто так ребилдинг запускаться не хотел, ругаясь на неверную конфигурацию диска который я пытался воткнуть на место.
   В общем, через пару недель в руки попал такой же контроллер и два одинаковых SATA диска. Решил разобраться, как же это сделать наживую.
   Эмулируем проблему: выдёргиваю из одного диска шнурок, прям на ходу. Гашу тазик, втыкаю шнурок обратно, включаю. Получаю то что и в датацентре:
bsd-test-2$ dmesg | grep Degraded
twed0: <Unit 0, TwinStor, Degraded> on twe0
bsd-test-2$

   Смотрим родной утилитой:
bsd-test-2$ tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    DEGRADED       -       -       -       37.2712   W      -

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     37.27 GB    78165360      N107FJ3G
p1     DEGRADED         u0     37.27 GB    78165360      N10ANBCG

bsd-test-2$

   Оба диска на месте, но - состояние массива и второго диска (который дёргался) - разрушен. В ДЦ я пытался сразу же воткнуть диск на место (кстати, в БИОС контроллера это именно так и выглядит, видимо, он прячет цепочку операций с целью упрощения интерфейса)
bsd-test-2$ tw_cli maint rebuild c0 u0 p1
Sending rebuild start request to /c0/u0 on 1 disk(s) [1] ... Failed.
(0x0B:0x0035): Replacement drive configuration is invalid for rebuild operation

bsd-test-2$

   Облом. Ковыряния в интерентах и попытки удалить массив (ссылки на блог советовавшего идиота не даю, чтоб желающих повторять не нашлось) ни к чему не привели:
bsd-test-2$ tw_cli maint deleteunit_ c0 u0
Deleting unit c0/u0 ...Failed.
(0x0B:0x0045): Failed to remove device node; Are all filesystems unmounted?

bsd-test-2$   

(Команда дана с намереной ошибкой, поскольку на Linux оно прокатывает в сингл-моде...)
   После получаса тыканий/раскуривания man'a получилась последовательность команд, позволяющая пересобрать массив без физического доступа.
   Для начала удаляем деградировавший диск:
bsd-test-2$ tw_cli maint remove c0 p1
Removing port /c0/p1 ... Done.

bsd-test-2$  

   Смотрим, что получилось:
bsd-test-2$ tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    DEGRADED       -       -       -       37.2712   W      -

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     37.27 GB    78165360      N107FJ3G
p1     NOT-PRESENT      -      -           -             -

bsd-test-2$

   Диска нет. Запускаем сканирование каналов контроллера, с целью найти его снова:
bsd-test-2$ tw_cli /c0 rescan
Rescanning controller /c0 for units and drives ...Done.
Found the following unit(s): [none].
Found the following drive(s): [/c0/p1].

bsd-test-2$

   Чё-то нашёл. Смотрим что именно:
bsd-test-2$ tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    DEGRADED       -       -       -       37.2712   W      -

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     37.27 GB    78165360      N107FJ3G
p1     OK               -      37.27 GB    78165360      N10ANBCG

bsd-test-2$

   Оба диска на месте, оба в статусе "ОК" - что и требовалось для пересборки. Запускаем:
bsd-test-2$ tw_cli maint rebuild c0 u0 p1
Sending rebuild start request to /c0/u0 on 1 disk(s) [1] ... Done.

bsd-test-2$

   Процесс пошёл. В /var/log/messages появляется соотвествующая запись:
twe0: AEN: <twed0: rebuild started>

   Утилита от производителя показывает более подробно:
bsd-test-2$ tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    REBUILDING     1%      -       -       37.2712   W      -

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     37.27 GB    78165360      N107FJ3G
p1     DEGRADED         u0     37.27 GB    78165360      N10ANBCG

bsd-test-2$

   По окончании пеерборки в логи будет записано и это событие:
twe0: AEN: <twed0: rebuild done>

   Ну а с массивом станет всё отлично:
bsd-test-2$ tw_cli /c0 show all
/c0 Driver Version = 1.50.01.002
/c0 Model = 8006-2LP
/c0 Available Memory = 512KB
/c0 Firmware Version = FE8S 1.05.00.068
/c0 Bios Version = BE7X 1.08.00.048
/c0 Boot Loader Version = ME7X 1.01.00.040
/c0 Serial Number = L18501A5151327
/c0 PCB Version = Rev5
/c0 PCHIP Version = 1.30-66
/c0 ACHIP Version = 3.20
/c0 Total Optimal Units = 1
/c0 Not Optimal Units = 0

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       37.2712   W      -

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     37.27 GB    78165360      N107FJ3G
p1     OK               u0     37.27 GB    78165360      N10ANBCG

bsd-test-2$ 

   Надеюсь кому-нибудь пригодиться. Ибо я надёргался прилично пока удалённо на боевом ковырялся и пытался всё это сделать.

P.S. Для включения отчёта о состоянии рейда в ежденевный отчёт сервера, необходимо добавить такую строку в /etc/periodic.conf:
srv5$ grep 3ware  /etc/periodic.conf
# 3ware based RAID controllers
daily_status_3ware_raid_enable="YES"
srv5$  

P.S.2 Если во время ребилда машину перезагрузить, пересборка начинается с нуля, но не сразу, а минут через 10. Это, кстати, плюс - если будет fsck работать - не будет ему мешать.



размещено: 2010-04-22,
последнее обновление: 2014-01-19,
автор: lissyara


Алексей, 2010-04-22 в 14:20:07

Спасибо, полезная информация!

Serg, 2010-04-22 в 14:56:04

Подскажите что из raid контроллеров самое правильное под фрей

VoSi, 2010-04-22 в 19:03:18

Serg
тот-же 3ware оч хорош, баловался с 24х портовым
удобная утилита (нативная под фрю)
в отличии от деловских серверов, для утилиты которых нужен линукс компат.

MaDaGa, 2010-04-23 в 8:52:26

Спасибо, критично важная информация!

LHC, 2010-04-24 в 14:51:24

Самый кошерный производитель полноценных аппаратных контроллеров со своим процессором на борту (из того что можно купить в розницу) - Adaptec. Ну еще Intel не подводил. Все остальное - унылое г.... А вообще лучшее лекарство - брендовый сервер. HP-шные контроллеры радуют. Опять же удобное управление, и поддержка хорошая.

AlexF, 2010-04-24 в 16:24:49

Я через веб-интерфейс просто удалил мертвый хард, пошел сменил его на новый, вернулся и нажал на чё-то типа обновить. За ночь 1 тер ребилднулся.
Контроллеры отличные, ни в какое сравнение с порно-LSI (которые, кстати, бренды типа HP и использую в пролиантах просто сменив наклейку на HP) не идет.

Alex Keda, 2010-04-24 в 16:30:01

2 AlexF
вы неправы. HP делает то, что в контроллере, наверное, самое главное - прошивку.
последнее время стали попадаться сервера от HP c LSI и прочими на борту, но, встроенные - это всё равно всегда ciss

Alex Keda, 2010-04-24 в 16:32:42

2 LHC
Адаптек под фрёй мониторить, фактичеки, нечем. Не считая этого - да, радуют.
Intel - смотря о чём вы говорите. Если про про SCSI - то это всё тот же поганый LSI.

mitiok, 2010-04-25 в 13:05:48

а что с LSI не так?

dvg_lab, 2010-04-25 в 17:24:00

adaptec может и хорош, только действительно в случае проблем нужно перегружаться в биос, а у 3ware 9650SE серия очень хорошая, и мониторится, и cli есть, и web морда, и емайлы в случае чего шлет. Адаптек лицом к FreeBSD все еще не повернулся. Что касается LSI то я купил у них только один контроллер MegaRAID SCSI да так и остался он у меня лежать без дела. Скорость по сравнению с Adaptec была сильно ниже.

AlexF, 2010-04-29 в 16:56:10

Alex Keda, ciss - эт сейчас стали даже на почти самых бюджетных ставить, а вот раньше... была у них когда-то популярная линейка 140G3, так это был DDF Adaptec на борту и совершенно непригодный к использованию LSI 1064E...

zz, 2010-05-03 в 7:36:24

разве 8 и 9 серии lsi плохие? гонял 84016E,8308ELP и 8888ELP под винду, был доволен. не знаю как они в сравнение с apaptec и тварью, но работали без проблем.

Евгений, 2010-05-06 в 13:49:14

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

Alex Keda, 2010-05-06 в 14:05:18

2 Евгений
вы бы статью-то прочитали, а? или мануал? или хоть чего-то, до того как высказываться.

читаем man tw_cli
autorebuild(9KSX/SE/SA only)

Barracuda, 2010-05-27 в 16:52:22

Автору респект хотя бы за то, что описал ситуацию, а не оставил на полке собственного опыта.
Сначала был изрядно удивлён (особенно совету англоязычного сектора по удалению рейда - нонсенс, нарушающий идеологию RAID-систем с точки зрения обеспечения надёжности хранения данных). То, что диск надо, предварительно, удалить из рейда в том случае, если он там уже побывал - это и в документации описывается. Но вот его добавление в массив назад - немного, таки, не понял логики работы cli. Сегодня с эти столкнулся на 8006-LP и был изрядно удивлён(на 9550 было, вроде как, по-другому).
Да, кстати, вопрос автору: какой драйвер используется у вас и какой cli(точнее - откуда: порты или кодсет триваервский)? Вопрос не праздный, т.к. после обновления системы (stable8) тот cli, что из кодсета, перестал общаться с контроллером жалуясь на необходимость обновления драйвера (1.50.01.002 в комплекте с ядром) или фирмвари (FE8S 1.05.00.068). Хотя до этого(на релизе и на Фрэнзи 1.2) работал.

Alex Keda, 2010-05-31 в 6:06:09

Порты.
Гонял на 7/8 - но 8 не последний стейбл, месячной примерно давности

Barracuda, 2010-06-10 в 17:53:21

Забавная штука с этим кодсетом получилась. То, что находится в образе - не работает... Пришлось покурить сайт 3Твари и нашёлся кодсет спешиал для Фри - вот оно работает. Простенький дифф показал, что существенных отличий в исходнике порта и исходнике фришного кодсета (кроме как смена цопирайта - ну ооочень важный багфикс)нет.

Василий, 2010-08-02 в 20:05:35

2 Евгений & Alex Keda:
Недавно игрался с этим контроллером и не понимаю, почему в описанной ситуации рэйд не восстановился бы при установленной опции в положение "on", как упоминул Евгений. Имеется в виду "tw_cli /c0 set autorebuild=on".
У меня лично был контроллер 9650SE-8LPML, и держал он RAID 6. Как я только не издевался над ним, так он сам восстанавливал рэйд с включенной указанной выше опцией.

Alex Keda, 2010-08-08 в 12:04:17

а вы man tw_cli тоже не прочли? =)
там написано начиная с какого контроллера работает авторебилд.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1997 секунд
Из них PHP: 51%; SQL: 49%; Число SQL-запросов: 77 шт.
Исходный размер: 42144; Сжатая: 10032