Содержание

управление 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
 
Идентифицировать диск можно по значению WWN. В этом примере -

Значения 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

Если с ним что-то не так, то проверка это покажет.

Начинаем лечить наш массив. Есть два метода.

  1. Починить из системы в режиме онлайн (если корзина поддерживает хотсвоп)
  2. Чинить из программы в биоса контроллера (при перезагрузке)

Второй метод описывать не буду, т.к. он зависит от версии контроллера.

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

Внимание: Если ваш контроллер Adaptec в настоящее время использует прошивку версии 16501, или у вас есть массивы, которые изначально были созданы под версией 16501, обязательно прочитайте это до выполнения обновления.
ВАЖНО! Adaptec предупреждает, что никакой ответственности за сбои во время прошивки не несет и можно потерять всю информацию.

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