RAID-контроллер 3ware

Версия для печатиОтправить другуPDF version

3ware logo

 

Сегодня наткнулся на статью о RAID-контроллерах 3ware. А поскольку у самого на нескольких серверах установлены RAID-контроллеры от даного производителя, то решил выложить даную статью и у себя. Правда добавлю еще непосредственно то, как установить утилиту tw_cli (благо она есть в портах). Находится она в /usr/ports/sysutils/tw_cli.

Установить можно следующей командой:

# cd /usr/ports/sysutils/tw_cli && make install clean && rehash

После этого можно будет использовать команду tw_cli для перехода в консольный режим управления RAID-контроллером. Кстати, man-страница довольно обширная, так что рекомендую к ознакомлению:

# man tw_cli

Поскольку у меня масивы работают корректно (на всяк случай покамлал шаманской штукой, лежащей на столе ), експерементировать не стал, ознакомился только с командой show и ее вариациями. Но на всякий случай материал статьи процитирую, возможно когда-то пригодится.

 


 

Автор: 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$   

   После получаса тыканий/раскуривания 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 работать - не будет ему мешать.

Ваша оценка: Нет Средняя: 5 (6 голосов)

Вставай, Україно!

Литература