Извлечение дисков из живого рейда на adaptec 6805

в 12:40, , рубрики: raid, Серверное администрирование, системное администрирование, метки:

Задача:

Извлечь 2 харда из raid-10 на логическом уровне (т.е., не извлекая из сервака физически), чтобы собрать из них raid-1, перенести туда систему и подготовить всё что можно к ребуту, таким образом минимизировав время и количество даунтаймов.

В чем сложность?

В 5 серии адаптеков вопрос решался двумя командами:
1. Зафейлили диск: arcconf setstate 1 device 0 0 ddd
2. Перевели в статус Ready: arcconf setstate 1 device 0 0 rdy
3. Делаем с дисками, что хотим.

В 6 серии так не прокатывает. Вне зависимости от того, включен failover или нет, диски возвращаются в состояние Present, и с ними ничего нельзя поделать (думаю, ясно, что сам рейд будет Degraded, пока не пройдет Rebuild).
Попытка обратиться в официальную тех.поддержку была неудачна — ответ я получил, но возникло ощущение, что я использую домашнюю железку, а не сервер, который нельзя просто так дергать туда-сюда:

После того как вы провели команду «arcconf setstate 1 device 0 0 ddd», система была перезагружена? Если нет, то перезагрузите и инициализируете оба диска в БИОСе контроллера. Там сразу же можно и создать RAID-1.

Чтобы стереть мете-данные на диске под Arcconf диск можно инициализировать с командой «arcconf task». Например: arcconf task start 1 device 0 0 initialize

После этого диск должен быть доступным для создания других логических дисков.

Однако, если Вы выбрасываете из RAID-10 два диска, то он остаётся в статусе «Degraded». При ошибке одного из оставшийся в массиве дисков может рухнуть весь массив. Поэтому, возможно, просто сделайте бэкап всех данных, потом просто удалите массив RAID-10 и создавайте два отдельных RAID-1.

Я подумал и решил вопрос очередью экспериментов, после чего смог выполнить поставленную задачу.

Описание:

Имеем logical device с raid-10 на 4 дисках

 Logical device segment information
   --------------------------------------------------------
   Group 0, Segment 0                       : Present (0,0)             J0VV3R8N
   Group 0, Segment 1                       : Present (0,1)             J0VV3ZBN
   Group 1, Segment 0                       : Present (0,2)             J0VV3YEN
   Group 1, Segment 1                       : Present (0,3)             J0VX2WXN

Необходимо вытащить из него 2 харда (по одному из разных групп) и составить raid-1 из них

Решение:

1. Убеждаемся, что failover включен

arcconf failover 1 on

2. Фейлим 2 диска из разных групп

arcconf setstate 1 device 0 0 ddd
arcconf setstate 1 device 0 2 ddd

Диски станут Inconsistent в logicaldevice и Failed в physicaldevice

3. Переводим эти диски в статус ready

arcconf setstate 1 device 0 0 rdy
arcconf setstate 1 device 0 2 rdy

Диски станут Missing в logicaldevice и Ready в physicaldevice

4. Ждем до тех пор, пока failover не запустит rebuilding

Group 0, Segment 0                       : Rebuilding (0,0)             J0VV3R8N

Ребилдиться они будут по очереди, т.ч., как только видим у одного из них состояние Rebuilding, делаем пункт 5 сразу, затем для следующего.

5. Фейлим и очень быстро переходим к пункту 6

arcconf setstate 1 device 0 0 ddd
arcconf setstate 1 device 0 2 ddd

Диски станут Inconsistent в logicaldevice и Failed в physicaldevice

6. Переводим диски в статус Ready и очень быстро переходим к пункту 7

arcconf setstate 1 device 0 0 rdy
arcconf setstate 1 device 0 2 rdy

Диски станут Missing в logicaldevice и Ready в physicaldevice

7. Отключаем failover и очень быстро переходим к пункту 8

arcconf failover 1 off

8. Инициализируем диски

arcconf task  start 1 device 0 0 initialize
arcconf task  start 1 device 0 2 initialize

Ура, можем состряпать из них raid-1

arcconf CREATE 1 LOGICALDRIVE MAX 1 0 0 0 2

У читателя, возможно, возникнут вопросы, для чего мы провели 2 раза одни и те же действия и почему сразу не отключили failover.
Повторюсь, 6 серия адаптеков не даёт возможности спокойно вывести диски из рейда при отключенном failover после команды:
arcconf setstate 1 device 0 0 rdy мы бы получили статус диска в logicaldrive Present, а статус рейда Degraded, при этом диск в physicaldrive был бы в статусе Online, а не Ready.
И почему же начиная с пункта 5 мы все делаем быстро? Все просто, контроллер через несколько секунд успевает опомниться и сменить статус
дисков, поэтому нужно успеть выполнить команды до того, как он это сделает.

Найти готовое решение не смог, пришлось изобретать свое, надеюсь, кому-то будет полезно — не один же я юзаю 6 серию адаптеков.

Автор: alterpub

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js