управление raid adaptec с помощью arcconf
Применимость: Linux, RAID
Слова для поиска:
Задача:
Мониторинг состояния контроллера Adaptec, управление его работой, устранение неисправностей без использования тяжеловесного и неудобного Adaptec Smartmon
Решение:
Установить утилиту arcconf с сайта производителя и официальную документацию по использованию
Основные действия:
Команда для получения полной информации о контроллере:
arcconf getconfig 1
если при запуске утилиты появится ошибка вида:
arcconf: error while loading shared libraries:
libstdc++.so.5: cannot open shared object file: No such file or directory
Нужно установить пакет libstdc++-v3 (для centos - compat-libstdc++-33) или указать где находится искомая библиотека, например так:
# export LD_PRELOAD="/usr/StorMan/libstdc++.so.5"
Самой важной информацией является информация о состоянии логических дисков
arcconf getconfig 1 ld
Ключевой информацией является строка
Status of logical device : Optimal
Просмотреть состояние дисков:
arcconf GETCONFIG 1 PD
Создание JBOD диска
Синтаксис:
arcconf CREATE <Controller#> JBOD <Channel# ID#
Пример:
arcconf CREATE 1 JBOD 0 71 noprompt
Добавить диск в массив
Добавить новый диск в массив и расширить LUN до максимума на размер этого диска можно так
# arcconf modify 1 from 1 to MAX 5 0 24 0 25 0 26 0 27 0 28 0 29 0 30 Controllers found: 1 Reconfiguration of a logical device is a long process. Are you sure you want to continue? Press y, then ENTER to continue or press ENTER to abort: y
Это при условии, что на первом LUN который мы моифицируем, был raid5 и состоял он из шести сегментов (0,24 0,25 0,26 0,27 0,28 0,29), добавляем новый сегмент 0,30
Удаляем LUN #1
# arcconf delete 1 logicaldrive 1 Controllers found: 1 WARNING: logical device 1 may contain a partition. All data in logical device 1 will be lost. Delete the logical device? Press y, then ENTER to continue or press ENTER to abort: y
Создаем новый LUN включая 6 сегментов, размер максимальный, raid5
# arcconf create 1 logicaldrive name a1 max 5 0 24 0 25 0 26 0 27 0 28 0 29 Controllers found: 1 - Do you want to add a logical device to the configuration? Press y, then ENTER to continue or press ENTER to abort: y - Creating logical device: a1 - Command completed successfully.
Проверяем созданный LUN:
arcconf getconfig 1 LD 1
Проверяем – идет ли сборка массива?
# arcconf getstatus 1
Замена диска
Замена диска производится в случае неисправности, но я просто поменяю диск.
Выберем диск для замены:
arcconf GETCONFIG 1 ld 1 Controllers found: 1 ---------------------------------------------------------------------- Logical device information ---------------------------------------------------------------------- Logical device number 1 Logical device name : A2 RAID level : 10 Status of logical device : Optimal Size : 1360544 MB Stripe-unit size : 256 KB Read-cache mode : Enabled MaxIQ preferred cache setting : Disabled MaxIQ cache setting : Disabled Write-cache mode : Enabled (write-back) Write-cache setting : Enabled (write-back) Partitioned : Yes Protected by Hot-Spare : No Bootable : No Failed stripes : No Power settings : Disabled -------------------------------------------------------- Logical device segment information -------------------------------------------------------- Group 0, Segment 0 : Present (0,8) WD-WMATV6899266 Group 0, Segment 1 : Present (0,9) WD-WMATV6939288 Group 1, Segment 0 : Present (0,10) WD-WMATV6911402 Group 1, Segment 1 : Present (0,11) WD-WMATV6912818В случае неисправности состояние диска будет отличаться от других.
Неисправный диск автоматически выведен из работы, его можно просто вынуть, но мой диск исправен.
Пометим диск как сбойный
arcconf SETSTATE 1 DEVICE 0 10 DDD
Ситаксис:
arcconf SETSTATE <Controller#> DEVICE <Channel#> <Device#> <State>
Параметры:
Controller# is the controller number. Channel# is the channel number for the drive. Device# is the device number for the device.
Статус:
DDD—Force a drive offline (to Failed)
Другой пример:
arcconf SETSTATE 1 DEVICE 0 0 DDD LOGICALDRIVE 1 2 3
Проверим - изменилось ли стсотояние диска?
arcconf GETCONFIG 1 ld 1 Controllers found: 1 ---------------------------------------------------------------------- Logical device information ---------------------------------------------------------------------- Logical device number 1 Logical device name : A2 RAID level : 10 Status of logical device : Degraded Size : 1360544 MB Stripe-unit size : 256 KB Read-cache mode : Enabled MaxIQ preferred cache setting : Disabled MaxIQ cache setting : Disabled Write-cache mode : Enabled (write-back) Write-cache setting : Enabled (write-back) Partitioned : Yes Protected by Hot-Spare : No Bootable : No Failed stripes : No Power settings : Disabled -------------------------------------------------------- Logical device segment information -------------------------------------------------------- Group 0, Segment 0 : Present (0,8) WD-WMATV6899266 Group 0, Segment 1 : Present (0,9) WD-WMATV6939288 Group 1, Segment 0 : Missing Group 1, Segment 1 : Present (0,11) WD-WMATV6912818Проверим статус:
arcconf getstatus 1 Controllers found: 1 Logical device Task: Logical device : 0 Task ID : 100 Current operation : Compacting Status : In Progress Priority : High Percentage complete : 2
Все нормально.
Теперь диск можно вынуть и вставить другой. Действия после этого как в случае с аварией. Примечание: - утилита arcconf имеет массу дополнительных параметров, читайте руководство.
Подключить диск Hot spare
Подключить диск 0:11 как hot spare к трем лунам 1-2-3
arcconf SETSTATE 1 DEVICE 0 11 HSP LOGICALDRIVE 1 2 3
Случилась авария
Для начала смотрим что драйвер контроллера нам скажет по поводу конфигурации массива, все ли сегменты массива в порядке, сколько их и прочую информацию.
arcconf getconfig 1
Если все сегменты в порядке, то стоит визуально посмотреть как себя ведут винты в массиве. В одном случае один из винтов лихорадочно моргал, в то время как остальные винты практически спали. При все при этом, обратиться к разделу на этом массиве было практически невозможно – ls любой каталог раздела длился порядка 30-40 секунд. Значит что-то здесь не то.
Продолжим собирать информацию, прежде чем что-то делать – тут торопиться не надо.
Получим логи с контролера. Они не очень информативные, но надо посмоттреть.
arcconf getlogs 1 DEVICE tabular arcconf getlogs 1 DEAD tabular arcconf getlogs 1 EVENT tabular arcconf getlogs 1 uart
Дату в логах можно перевести в удобоваримый вид к примеру так
perl -e 'print scalar(localtime(1234883784))'
Вместо 1234883784 вставьте свое значение
Пример сообщения об ощибках диска:
deadDriveEntry vendorID ........................................ SEAGATE rtcSeconds ...................................... 8 rtcMinutes ...................................... 33 rtcHours ........................................ 16 rtcDay .......................................... 23 rtcMonth ........................................ 7 rtcYear ......................................... 2010 serialNumber .................................... 3SJ0ZTJ900009037MCB1 productID ....................................... ST330065 wwn ............................................. 5000c50022f664b0 failureReasonCode ............................... 2
Значения failureReasonCode:
0 or 0x00 Unknown failure 1 or 0x01 Device not ready 2 or 0x02 Selection timout 3 or 0x03 User marked the drive dead 4 or 0x04 Hardware error 5 or 0x05 Bad block 6 or 0x06 Retries failed 7 or 0x07 No Response from drive during discovery 8 or 0x08 Inquiry failed 9 or 0x09 Probe(Test Unit Ready/Start Stop Unit) failed A or 0x0A Bus discovery failed
Вычисляем какой из сегментов (винтов) массива неисправен и пробуем сделать verify (в этом примере диск 0:21).
arcconf task start 1 device 0 21 verify
Посмотреть статус проверки можно так
arcconf getstatus 1
Если с ним что-то не так, то проверка это покажет.
Начинаем лечить наш массив. Есть два метода.
- Починить из системы в режиме онлайн (если корзина поддерживает хотсвоп)
- Чинить из программы в биоса контроллера (при перезагрузке)
Второй метод описывать не буду, т.к. он зависит от версии контроллера.
Вынуть сбойный диск (систему не останавливать, при чем еще раз оговорюсь, это если массив с избыточным резервированием, raid5-6), система продолжает работать в частично разрушенном состоянии. Это можно увидеть, если запросить конфиг контроллера еще раз.
Убеждаемся, что все хорошо – массив работает без нашего диска. Теперь стоит на его место вставить точно такой же, новый винт. Ставим. После чего запускаем рескан дисков, чтобы контроллер обнаружил новый диск и включил его в наш массив.
arcconf rescan 1
После сканирования дисков, массив должен обнаружить новый диск и включить ребилд нашего массива. Это состояние опять же стоит посмотреть
Если идет ребилд массива, значит все в порядке и по его завершению, мы получим новый винт в строю массива.
arcconf getstatus 1 Controllers found: 1 Logical device Task: Logical device : 0 Task ID : 102 Current operation : Compacting Status : In Progress Priority : High Percentage complete : 9 Logical device Task: Logical device : 1 Task ID : 103 Current operation : Rebuild Status : In Progress Priority : High Percentage complete : 3 Command completed successfully.
Обновление прошивки
Например у вас обнаружилась проблема - не поддерживаются диски на 4TB Придется обновлять прошивку.
Cделайте бэкап ценных данных и проводите прошивку только при подключенном ИБП.
Скачайте и распакуйте свежую прошивку в отдельную директорию
unzip 2045_fw_b18948.exe Archive: 2045_fw_b18948.exe inflating: readme.txt inflating: acu.exe inflating: afu.exe inflating: as204501.ufi inflating: as204502.ufi inflating: as204503.ufi inflating: as204504.ufi
arcconf ROMUPDATE 1 as204501.ufi
где as204501.ufi - имя первого файла прошивки (если файлов прошивки несколько) Соглашаемся (Yes) с тем, что будем прошивать и ждем завершения прошивки.
После завершения прошивки обязательно перегружаем сервер и через arcconf проверяем обновилась ли прошивка.
arcconf GETCONFIG 1 | less
Прочие проблемы
Иногда можно попасть в ситуацию когда при таймауте контроллера файловая система переходит в режим только чтение и использование arcconf становится невозможным.
Причина в том, что утилита не может создать в файловой системе лок-файл для своей работы.
Решение простое - смонтировать туда tmpfs:
mount -t tmpfs none /var/lock
После этого утилита должна заработать.
Следует заметить, что нужно быть максимально аккуратным и внимательным при работе с массивами и особенно с их ремонтом. Не торопитесь и думайте , что делаете до полного понимания.
Смотрите также:
Актуальность: 2011/10/20 11:17