Pull to refresh

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

Reading time 3 min
Views 17K

Задача:


Извлечь 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 серию адаптеков.

UPD. Проапгрейдил 10 серваков, всё прошло успешно. Единственная правка это то что удается за один раз вытащить только один хард из рейда, потом надо повторить действия и вытащить 2ой. Если диск удалось вытащить, но настойчивый контроллер пытается его снова заюзать просто запихните его в JBOD, вытащите 2ой диск, 1ый уберите из JBOD и сможете создать 1 рейд на 2х свободных дисках.
Tags:
Hubs:
+21
Comments 14
Comments Comments 14

Articles