Документация по ОС FreeBSD Среда, 08.05.2024, 13:51
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

Исправление ошибок RAID на контроллерах 3ware [2010]
На одном из серверов установленных в датацентре произошла странная ситуация - пропал диск =). На всякий случай машину перезагрузил - не помогло. Пришлось написать тикет, чтоб погасили, выдернули второй справа хот-сваповый диск, воткнули на место и включили. Диск появился, но, состояние массива было "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 работать - не будет ему мешать.



Источник: http://www.lissyara.su/articles/freebsd/hardware/tw_cli/
Категория: Работа с железом | Добавил: oleg (22.04.2010) | Автор: lissyara
Просмотров: 1078 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024