Замена диска raid adaptec
Извлечь 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 дисках
Необходимо вытащить из него 2 харда (по одному из разных групп) и составить raid-1 из них
Решение:
1. Убеждаемся, что failover включен
2. Фейлим 2 диска из разных групп
Диски станут Inconsistent в logicaldevice и Failed в physicaldevice
3. Переводим эти диски в статус ready
Диски станут Missing в logicaldevice и Ready в physicaldevice
4. Ждем до тех пор, пока failover не запустит rebuilding
Ребилдиться они будут по очереди, т.ч., как только видим у одного из них состояние Rebuilding, делаем пункт 5 сразу, затем для следующего.
5. Фейлим и очень быстро переходим к пункту 6
Диски станут Inconsistent в logicaldevice и Failed в physicaldevice
6. Переводим диски в статус Ready и очень быстро переходим к пункту 7
Диски станут Missing в logicaldevice и Ready в physicaldevice
7. Отключаем failover и очень быстро переходим к пункту 8
8. Инициализируем диски
Ура, можем состряпать из них raid-1
У читателя, возможно, возникнут вопросы, для чего мы провели 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х свободных дисках.
В статье Замена диска RAID на Supermicro X9SCL-F рассмотрен типичный сценарий для администраторов серверного оборудования — замена битого диска в массиве . Да, это все та же дешевая серверная материнская плата Supermicro X9SCL-F как и в статье Управление встроенным RAID на Supermicro X9SCL-F, да, это все тот же RAID на встроенном контроллере. Тем не менее одинаково важно что на дорогом, что на дешевом оборудовании прорабатывать базовые сценарии в случае возникновения аварийных ситуаций, чем я и займусь.
Если вам интересны raid-технологии и задачи администрирования raid-контроллеров, рекомендую обратиться к рубрике RAID на моем блоге.
Замена вышедшего из строя диска
На данном этапе я постараюсь смоделировать выход из строя одного из жестких дисков массива. Поскольку ранее я создал массив типа Raid1, он позволяет сохранить работоспособность при поломке половины дисков. В моем случае половина — это 1 диск (всего их два).
- я отключаю полностью сервер;
- достаю один из дисков и в соседнюю корзину монтирую другой.
В идеале после этого массив должен находиться в деградированном состоянии, но продолжать работать. После подключения третьего диска он не должен автоматически подцепиться к массиву. Во-первых, потому что он не инициализирован; во-вторых, потому что он не был указан как hotspare (диск горячего резерва) при создании массива.
После включения сервера, в bios получаем следующие предупреждения:
В принципе так оно и должно быть, ведь одного диска в массиве не стало. Кстати, после «пропажи» диска из массива, контроллер стал очень громко и мерзко пищать и ко мне даже стали заходить коллеги и предупреждать о странном шуме из серверной.
Заходим в утилиту управления массивами, смотрим состояние массива в Manage Arrays:
Как видно, одного диска в массиве нет, сам массив находится в деградированном состоянии. Все как и предполагалось.
После этого нам надо инициализировать новый диск. На скриншоте вверху было видно, что в действующем массиве используется один диск в слоте 31, значит новый диск будет в каком-либо другом. Заходим в пункт меню Initialize Drives, инициализируем диск в слоте 29:
Получаем предупреждение (по-хорошему, к этому моменту у вас уже должны быть бэкапы всей актуальной информации, а сервер выведен на плановое обслуживание, если конечно это возможно):
Теперь нам необходимо сообщить контроллеру, что он должен использовать новый диск, чтобы включить его в массив вместо вышедшего из строя. Сделать это нужно через пункт меню Manage Arrays — нажимаем Enter, стрелочками вверх/вниз выделяем нужный массив (если их несколько), нажимаем CTRL+S и попадаем на страницу управления Global Hotspare:
Выбрать вы можете только диски, которые не находятся в данный момент ни в каких массивах. Пробелом выделяем нужный диск:
Нажимаем Enter. Выйдет диалоговое окно подтверждения изменения, вводим Y. Поскольку диск мы сделали диском горячей замены, то контроллер должен автоматически сделать его частью массива и сразу же начать процесс ребилда (rebuild array), проверить это можно все также из пункта меню Manage Arrays:
С этого момента вы можете загружать сервер в нормальном режиме и работать дальше. Полный ребилд представляет из себя достаточно длительный процесс и зависит от множества параметров — производительности контроллера/дисков, текущей нагрузки на контроллер/диски и др. Можно сделать вывод, что скорость ребилда значительно изменится в большую сторону, если вы начнете использовать массив сразу после добавления диска. Если есть возможность, лучше дать контроллеру время спокойно завершить перестройку массива и уже после этого давать на него реальную нагрузку 3 (это особенно касается массивов RAID5).
Процесс ребилда физически будет сопровождаться миганием красного светодиода на корзине того диска, который был только что добавлен в массив.
В утилите Adaptec Storage Manager перестроение массива выглядит таким образом:
Кстати, утилита запущена с того же самого сервера. На этом обзор задач управления массивами RAID Adaptec 6405 завершен.
Собственно хотелось бы понять последовательность действий.
Как правило когда RAID создается, то все диски форматируются.
Если у меня из 2 дисков 1 вышел из строя, что нужно делать по шагам?
Мои предположения:
1) Разбить рэйд
2) заменить битый диск на новый
3) собрать рэйд
На 3 шаге,я предполагаю, система отформатирует оба диска и я останусь ни с чем.
И попутно - как можно оба диска заменить в RAID-1 вместе с переносом всех данных?
У RAID есть forced rebuild, с которым регулярно косячит масса людей, уничтожая данные при замене диска, и "правильный" rebuild, который выполняется с учётом замены только одного диска.
Форматированием, как я понимаю, вы называете именно forced rebuild, либо инициализацию.
В зависимости от того, как вы создавали массив, у вас должны быть средства управления им. Наверняка где-то там вы и увидели информацию о том, что один из дисков необходимо заменить. Изучите соответствующую справку/документацию на предмет того, как правильно заменять диски без потери данных.
Однако, с учётом того, сколько случаев потери данных при замене диска в RAID мы видим, я бы всё равно рекомендовал сделать копию хотя бы важных данных перед заменой (а лучше всех). Наличие копии данных также позволит вам просто создать новый RAID1 с нуля и потом скопировать на него файлы.
1)Отключаете неисправный.
2)Подключаете исправный.
3)Даете команду контроллера на rebuild.
1)Убрать старые диски.
2)Поставить новые диски.
3)Дать команду контроллеру на построение RAID.
4)Восстановить все данные из бэкапа.
А есть способ переноса данных плавно?
Ну типа поменяли 1 диск, синхронизировали, поменяли 2 диск, синхронизировали?
sbh, Можно и так.
Это собственно вариант замены одного диска - замена одного диска, без остановки работы.
После того как замените и убедитесь что все отлично - меняем другой диск.
АртемЪ, помоему если заменить диск - контроллер скажет что новый не является членом рэйда. чтобы его добавить нужно создать рйэд, а в момент создания оба диска форматируются.
sbh, Вы отключаете один диск- рэйд работает в режиме degrade - потеря избыточности.
Добавляете диск и делаете ребилд массива - рэйд снова в работе.
Вообще RAID1 делают для единственной цели - обеспечить непрерывную работу, даже в случае отказа диска.
Поэтому любой контроллер способен справится с ситуацией отказа или удаления одного из дисков, и корректно перестроить массив при добавлении нового диска.
Какие именно команды нужно давать контроллеру - тут зависит от контроллера, надо читать доки.
Горячая замена диска Adaptec 6405
Для начала нужно определить в какой корзине находится диск, который нам нужно заменить. Есть несколько способов это сделать:
1) При должной настройке диск скорее всего сидит в корзине с тем порядковым номером, в какой и должен (судя по информации из ASM. Учтите, что номера корзин начинаются с 0);
2) На всякий случай можно подстраховаться и точно определить корзину. Для этого в утилите Adaptec Storage Manager нажимаем правой кнопкой на нужном диске — Blink physical disk.
На этом моменте корзина диска должна ритмично замигать красным светодиодом.
3) Ничего не делать и просто через ASM перевести диск в состояние Failed. В этом случае контроллер начнет издавать мерзкий писк и будет непрерывно светиться красный светодиод на корзине с проблемным диском.
Отлично, допустим диск определен (или вы пропустили этот шаг), двигаемся дальше. Теперь нужно подготовить диск к изъятию. Можно конечно его просто выдернуть, но не думаю, что это хорошее решение, тем более когда все можно сделать правильно. К тому же так рекомендуют сделать и в официальной документации 1 .
When removing a drive to simulate a failure or pro-actively replace a questionable drive, it is recommended to use the Storage Manager «set drive state to failed» or CLI / ARCCONF «force fail» option prior to removing the drive. When the drive is marked as failed, it is safe to remove and replace the drive.
Нажимаем правой кнопкой на нужном диске — Set drive state to failed:
Сразу выскочит предупреждение, что массив будет переведен в деградированное состояние:
Подтверждаем. В реальной среде вышедший из строя диск скорее всего и так будет в состоянии Failed, а массив в деградированном виде. У меня же эксперимент на тестовой среде и я перевожу диск в нужное состояние вручную. Вот как изменятся показания ПО:
Напоминаю, что массив при этом у меня формально остался в рабочем состоянии, ведь я использую RAID1 и он обеспечивает работоспособность при выходе из строя до половины дисков.
На этом этапе можно смело идти и заменять диск на новый (объем диска вплоть до байта должен быть больше или равен объему других дисков в действующем массиве). Контроллер при этом будет издавать писк (как я и говорил выше), а корзина с проблемным диском сигнализировать о проблеме непрерывно горящим красным светодиодом .
После замены показания ASM будут выглядеть следующим образом:
Новый диск готов к использованию и нужно его инициализировать. Нажимаем правой кнопкой на диске — Initialize:
Получаем предупреждение и соглашаемся с ним:
Далее нужно дать понять контроллеру, что он может использовать новый диск вместо недавно «вышедшего из строя» и замененного диска. Для этого нужно сделать новый диск диском горячей замены (правой кнопкой на новом диске — Create dedicated hot-spare drive for):
Никаких дополнительных диалоговых окон выскочить не должно, а диск сразу станет частью массива:
и автоматически запустится процесс ребилда:
Во время процесса работа сервера может не прекращаться (для наглядности скриншоты ASM я снимал как раз с того же сервера, на котором проводил тестирование). Только учтите один момент: ребилд — достаточно ресурсоемкий процесс и если в вашем массиве небольшое количество низкопроизводительных дисков (а сейчас это фактически любые диски, кроме SSD), то лучше провести технические обслуживание, предварительно сняв полезную нагрузку с сервера. Это особенно касается массивов RAID5 (и им подобных), которые в продакшене вообще использовать не рекомендуется (почему, читайте подробнее в моей статье — Типы RAID-массивов).
Управление массивами RAID Adaptec 6405 включает в себя не только создание и удаление массивов, но и задачи, связанные с обслуживанием вышедших из строя дисков или с их плановой заменой . В этой статье я рассмотрю повседневные задачи серверного администратора.
Подробнее о контроллерах Adaptec серии 6xxx читайте в головной статье — RAID-контроллер Adaptec 6405.
Если вам интересны raid-технологии и задачи администрирования raid-контроллеров, рекомендую обратиться к рубрике RAID на моем блоге.
Замена диска RAID на Supermicro X9SCL-F
Предположим из массива выпал один диск. Это может быть реальная ситуация или её моделирование. В моем случае это второй вариант и заключается он в том, что я просто выдернул находящийся в массиве диск и в соседнюю корзину вставил другой, заранее подготовленный. Разумеется делал я это при выключенном сервере, хоть и он поддерживал возможность горячей замены (но в этом случае тоже не все так просто, на деле нужно обязательно переводить диск в Offline из ПО для управления массивами, как я это делал в статье Горячая замена диска Adaptec 6405)
В процессе загрузки сервера вы увидите нечто подобное:
Статус — DEGRADED, все верно. В этом же меню заходим в Physical Drive и смотрим какие диски у нас есть. К этому моменту у меня уже был вставлен запасной диск в другую корзину сервера, а «битый» диск лежал рядом с сервером.
Система помнит вышедший из строя диск и потому отображает о нем информацию, но показывает состояние FAIL. Не будем терять время и объясним системе, что новый диск можно использовать для замены, а то без нашего разрешения он так и будет оставаться без дела. Для этого сделаем его диском Hot Spare (горячий резерв) — ставим указатель на нужный диск и нажимаем Enter, далее выбираем пункт меню Make Hot Spare — Enter — Yes.
Замечаем, что статус диска изменился:
Теперь вручную изменим его состояние. Также Enter по диску — Change Drv State.
Тут у меня все пошло не совсем так, как я предполагал. По идее, поняв, что диск имеет статус Hot Spare, не используется ни в каком другом массиве и находится в состоянии Ready, контроллер должен был незамедлительно использовать этот диск для замены вышедшего из строя (разумеется если по характеристикам этот диск был аналогичен находящемуся в массиве исправному диску, а он таким и был). Этого не произошло. Почему непонятно. Я бесцельно полазил по меню и в один прекрасный момент утилита управления RAID повисла! Чтобы зависло низкоуровневое ПО я ещё не видел, но факт остается фактом (теоретически просто мог повиснуть коннект к консоли IPMI, хоть и вероятность этого мала, но мне лень было идти до серверной и проверять что там действительно происходит).
Стоит отметить, что спустя 3 часа процесс продвинулся с 0 до 3 %, что как-то мало. Тем не менее не стоит ожидать подвигов от встроенных решений. В общем-то на этом я хочу закончить статью.
Мой вам совет — всегда прорабатывайте основные сценарии администрирования. В случае с контроллерами RAID — это управление массивами (или как их ещё называют логическими дисками), сценарии идентификации и замены битых дисков.
Горячая замена диска Adaptec 6405 официально поддерживается RAID-контроллером и осуществляется достаточно просто. При этом вам все же лучше будет полностью протестировать этот процесс пока сервер ещё не введен в работу, а также задокументировать эти шаги . Если какой-либо диск (или несколько дисков) все же выйдут из строя на массиве с полезной нагрузкой, вам будет не до выяснения нюансов работы контроллера, нужно будет выполнять замену диска и лучше, чтобы вы были полностью уверены в этом процессе. Для тех, кто поленился сделать для себя подробный гайд step by step главным образом и предназначается эта статья (ну а также разумеется для меня самого и моих коллег).
Подробнее о контроллерах Adaptec серии 6xxx читайте в головной статье — RAID-контроллер Adaptec 6405.
Если вам интересны raid-технологии и задачи администрирования raid-контроллеров, рекомендую обратиться к рубрике RAID на моем блоге.
Создание массива RAID Adaptec 6405
При загрузке сервера нажимаем CTRL+A и попадаем в меню контроллера. Нам нужно выбрать Array Configuration Utility:
Сначала необходимо зайти в пункт меню Initialize Drives, чтобы сообщить контроллеру какие диски будут использоваться.
Пробелом нужно отметить каждый диск:
После того как диски выбраны, нажимаем Enter и получаем предупреждение:
Поскольку данных на дисках пока нет, смело соглашаемся и идем дальше. Следующий пункт, который нам нужен, это пункт меню Создание массива (Create Array). Выбираем его, также пробелами отмечаем нужные диски и нажимаем Enter. Далее нужно выбрать настройки RAID-массива. У меня всего лишь два диска и поэтому я могу создать только RAID уровня 0 или 1, поскольку для других типов массивов нужно больше дисков (подробнее о типах массивов RAID читайте в моей статье Типы RAID-массивов).
- Я остановился на RAID 1;
- Имя массива можете выбрать любое;
- Размер массива тоже лучше не менять, если планируете весь массив отдать под систему. Важный момент — разделы объемом более 2ТБ. О нем скажу чуть позже;
- Кэширование операций чтения оставляйте включенным;
- Кэширование операций записи должно работать только в том случае, если на вашем контроллере есть батарейка и флэш-модуль 1. В противном случае вы можете безвозвратно потерять данные в случае проблем с питанием сервера;
- Если диски новые, то выставляйте метод создания Quick Init. Подробнее о методах создания читайте в официальной документации 2.
В итоге у меня поучились следующие настройки:
Примечание: пару слов о разделах объемом более 2ТБ — если итоговый размер массива меньше этого значения, то беспокоиться не стоит. Если объем больше, то ваша система откажется видеть все, что больше примерно 2ТБ. Это связано с MBR-разметкой, которая не позволяет разметить более 2ТБ. Выход — использовать GPT-разметку, но в таком случае ваша материнская плата должна поддерживать UEFI, чего на старых материнках нет. Чтобы это обойти, можно назначить массиву меньший объем, а потом оставшийся объем использовать для другого массива RAID такого же типа.
Снова получаем предупреждение об использовании функции отложенной записи.
На этом создание массива закончено. Дальше займемся более интересной задачей — заменой вышедшего из строя диска массива.
Читайте также: