Замена диска в raid 0

Обновлено: 07.07.2024

В данной статье описаны действия, необходимые при замене неисправного жёсткого диска в программном RAID-массиве (mdadm). ВНИМАНИЕ: все команды приведены лишь для примера, и должны быть изменены в соответствиями с реалиями вашей системы! Пошаговая инструкция доступна (на английском языке) на: Hetzner Youtube Channel

Содержание

Исходная ситуация

Всего четыре массива: /dev/md0 — swap /dev/md1 — /boot /dev/md2 — / /dev/md3 — /home


Например, /dev/sdb — это сбойный диск. [U_] или [_U] показывает, что массив не синхронизирован. Когда массив в порядке, он отображается как [UU].


Вносить изменения в программном RAID можно из работающей системы. Если один из дисков не отображается в массиве как показано ниже, то можете сразу согласовать время замены диска.


Изъятие повреждённого жёсткого диска Перед установкой нового диска необходимо удалить сбойный диск из RAID-массива. Это необходимо сделать для каждого раздела.


Следующая команда показывает диски, входящие в массив:


В некоторых случаях, жёсткий диск может быть повреждён частично, например, статус [U_] только у массива /dev/md0, а все другие массивы имеют статус [UU]. В таком случае команда

не пройдёт, так как устройство /dev/md1 в порядке.

чтобы изменить статус RAID-массива на [U_].

Согласование с поддержкой времени замены повреждённого жёсткого диска

Для того, чтобы заменить вышедший из строя диск необходимо заранее согласовать с поддержкой время замены. Сервер будет необходимо остановить на короткое время. Пожалуйста, используйте для этого форму контакта в панели Robot.

Подготовка нового жёсткого диска

Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов. Как правило, GPT используется в дисках более 2ТБ (например, EX4 и EX6).

Жёсткий диск с GPT

На жёстком диске хранится несколько копий таблицы разделов GUID (GPT), поэтому для её редактирования следует использовать утилиты, поддерживающие GPT, например parted или GPT fdisk. Утилита sgdisk из GPT fdisk (уже установленная в Rescue-системе) позволяет простым способом скопировать таблицу разделов на новый жёсткий диск. Пример копирования таблицы разделов с sda на sdb:

Далее жёсткому диску надо задать новый случайный UUID:

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

Жёсткий диск с MBR

Таблица разделов может быть просто скопирована на новый диск с помощью sfdisk:

где /dev/sda — это источник, а /dev/sdb — жёсткий диск назначения. (Опционально): если разделы не видны в системе, то таблица разделов должна быть перечитана ядром:

Конечно же, разделы можно создать вручную с помощью fdisk, cfdisk или других инструментов. Разделы должны иметь тип Linux raid autodetect (ID fd).

Добавление нового жёсткого диска

Как только повреждённый диск удалён, можно добавлять новый. Это необходимо сделать для каждого раздела.

Новый жёсткий диск теперь является частью массива, и теперь массив производит синхронизацию. Эта процедура, в зависимости от размера, может занять некоторое время. Статус процедуры синхронизации можно просмотреть с помощью cat /proc/mdstat.

Установка загрузчика

Если вы производите починку в загруженной системе, то будет достаточно, в случае GRUB2, выполнить grub-install на новый жёсткий диск, например, так:


В случае Grub1 (устаревшая версия grub) то, в зависимости от того какой диск выпал, потребуется больше шагов Запустить консоль grub: grub Указать раздел, на котором лежит /boot: root (hd0,1) (/dev/sda2 = (hd0,1)) Записать загрузчик в MBR: setup (hd0) Для того чтобы записать загрузчик на второй жёсткий диск: Укажите grub переключиться на sdb: device (hd0) /dev/sdb В точности повторить шаги 2 и 3 Завершить консоль grub: quit


При починке через Rescue-систему установленную систему необходимо сначала смонтировать. Все действия по установке grub необходимо выполнять после chroot.

Всем привет, есть RAID0-массив на трёх дисках, построенный с помощью mdadm. В этот массив при создании был временно поставлен более медленный диск, что привело к замедлению работы остальных дисков. Теперь же имеется полностью аналогичный первым двум диск и естественное желание заменить им медленный хард. Вопрос, собственно, как это сделать?

Мануалы курил, пишут только про аварийные ситуации, про RAID0 вообще информации мало. Посекторно скопировал медленный диск на быстрый, но, суля по всему, будет недостаточно просто пересобрать массив с новым диском.

И ещё один вопрос (чтоб два раза не вставать) - если в RAID5-массиве один диск медленнее других - это скажется на производительности?

Заранее всем спасибо.


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

Убрать старый, попробовать завести. Скорее всего сработает.

если в RAID5-массиве один диск медленнее других - это скажется на производительности?

Да, но RAID5 такое дно, что не заметишь. К тому же ты ведь тюнил страйп-кэш, значит можно не париться.


google mdadm replace disk

Кстати, спасибо за вопрос. Пока не сталкивался, но может пригодится

router ★★★★★ ( 08.06.17 21:20:45 )
Последнее исправление: router 08.06.17 21:21:37 (всего исправлений: 2)



Убрать старый, попробовать завести. Скорее всего сработает.

Опять же, если я не ошибаюсь, mdadm хранит на каждом члене массива суперблок с информацией о других элементах массива и если просто выбить из-под него табуреточку и поставить другую, то в лучшем случае он не заведётся, а в худшем - всё файло просто похерится. А я не могу рисковать.

mdadm хранит на каждом члене массива суперблок с информацией о других элементах массива

Нет, mdadm ничего не хранит, это программа в юзерспейсе. Да, про суперблок верно.

выбить из-под него табуреточку и поставить другую

. Ты же посекторно скопировал, с чего бы она была другой? Монтируй файловую систему в RO, если страшно, тоже мне проблема.

Даже не знаю, что именно это из десяти, но ты понял.


Даже не знаю, что именно это из десяти, но ты понял.


Да, действительно. Для raid0 в принципе не бывает spare

есть RAID0-массив на трёх дисках, построенный с помощью mdadm

А других вариантов и быть не может.

Да ещё и на трёх дисках %) Это уже одиннадцать пионеров.


. Ты же посекторно скопировал, с чего бы она была другой? Монтируй файловую систему в RO, если страшно, тоже мне проблема.

Есть ещё одна проблема :-) Размер всех дисков массива - 1 000 204 886 016 байт.

Размер нового диска - 1 000 204 754 944 байт.

Чёрт его знает, какие могут быть подводные камни и почему вообще два диска одной модели имеют разный объём.

Вот пишу это и всё явственнее ощущение, что без тотальной переразбивки никак не обойтись.


Не на трёх. По ссылке за счёт двух запасных дисков ( вместо одного ) идёт преобразование в raid4 ( похож на raid5, но контрольные суммы на выделенном диске ) и замена диска в нём

Сейчас проверил на файлах ( losetup ) - работает :)

router ★★★★★ ( 08.06.17 22:05:47 )
Последнее исправление: router 08.06.17 22:09:00 (всего исправлений: 1)

Я не про ссылку, а про конфигурацию ТС. Просто не сразу заметил, что у него трёхдисковый массив.

По ссылке тоже смотрел, изобретательное решение. Я когда-то проделывал похожую операцию, только там вроде были первый и пятый, но точно уже не помню.


Я не про ссылку, а про конфигурацию ТС. Просто не сразу заметил, что у него трёхдисковый массив.

Тоже не обратил внимание. Вах, вот это джигит! Шары просто титановые. Чего не скажешь о мозге :)


Тоже не обратил внимание. Вах, вот это джигит! Шары просто титановые. Чего не скажешь о мозге :)

Каждому своё, как говорится. SSD большого объёма нерентабельно, а рейд обеспечивает приемлемую скорость вкупе с большим объёмом (HD-фильмы, образы нескольких виртуалок для побаловаться и прочий стафф типа игор). Да и модельный ряд дисков проверен временем. Я бы и четвёртый поставил, если б он медленным не был :-)


Попробую сделать сабж в виртуалке (loop тоже хорошо, но хочу приближённые к реальности условия). О результатах отпишусь.


Итак, в VB поднята live-Fedora 25 с четырьмя виртуальными дисками по одному Гб. Дальнейшие действия:

1). mdadm'ом на трёх дисках создан RAID0-массив;

2). На него накачена ext4 с двумя гигами нагенеренных файлов;

3). Массив был остановлен ( mdadm -S /dev/md0 );

4). /dev/sda был dd-шкой скопирован на /dev/sdd;

5). Массив был пересобран уже с новым диском через mdadm --assemble .

Собрался, примонтировался, раздел открылся, файлы доступны. Win! Ctrl+R'ом сымитировал обрыв питания, убрал sda вообще, перезагрузился туда же, массив собрался сам и подрубился в Дельфине, все файлы доступны и читаются. mdadm --detail /dev/md0 показывает, что всё произошло так, как и планировалось. Epic win, можно юзать, как инструкцию.

Попробую на рабочей машине и отпишусь позднее.

и почему вообще два диска одной модели имеют разный объём.


Всё по кайфу, друзья, массив завёлся, кажется, проблем никаких нет. Скорость работы значительно повысилась, всем отписавшимся - большое русское мерси.


Эпично поделил на ноль.


Рэйд0 не более рисковый чем одиночный диск в плане потери информации. Да, среднее время до отказа массива будет в 3 раза меньше, чем у одного диска, но все же.

Рейды5-6 нужны для того, чтобы не обрывать процесс работы - горячая замена без потери данных, короче. А raid0 из 4х дисов вполне нормально пережил два посыпавшихся винта. Просто все стопоришь СРАЗУ по обнаружении проблем и делаешь dd на запаску.

timdorohin ★★★ ( 09.06.17 16:25:29 )
Последнее исправление: timdorohin 09.06.17 16:25:55 (всего исправлений: 1)


То есть, вероятность того, что диск обсыпется до состояния нечитаемости, не рассматриваем?

Без стопорения работы более-менее нормально живет только 10 (1+0).


Вероятность обсыпаться в 0 есть и у одиночного диска. Бекапы рулят!


Только у массива эта вероятность 1*количество дисков.


Порядок чисел СЛИШКОМ мелкий

timdorohin ★★★ ( 09.06.17 16:42:11 )
Последнее исправление: timdorohin 09.06.17 16:43:41 (всего исправлений: 1)


Наработка на отказ это тоже сферический конь в вакууме.

На деле скажем новые сосогейты сыплются достаточно часто, и особенно весело будет если они все из одной партии.


Я же не предлагаю использовать raid0 на ынтерпрайз-сервере.

timdorohin ★★★ ( 09.06.17 16:50:18 )
Последнее исправление: timdorohin 09.06.17 16:51:07 (всего исправлений: 1)

Рэйд0 не более рисковый чем одиночный диск в плане потери информации.

Нет более рисковый в кол-ве потерянной информации, при трех отдельных дисках и выходе из строя одного вы теряете 1/3 информации, при raid0 вы теряете всю.

А raid0 из 4х дисов вполне нормально пережил два посыпавшихся винта. Просто все стопоришь СРАЗУ по обнаружении проблем и делаешь dd на запаску.

Это не посыпавшийся винт. Это вы скорее по смарту предупреждение получили, идеальный вариант, однако харды бывают мрут так что даже от смарта получить предупреждение не успеваем.

Рейды5-6 нужны для того, чтобы не обрывать процесс работы - горячая замена без потери данных, короче.

В моем ноутбуке стояло по умолчанию 2 HDD в массиве RAID0 на базе Intel ICH9M-R. Оба диска WD 3200BEVT. Так уж получилось, что я за последний месяц видела два диска этой модели с чудовищным количеством бедов. Задумала сменить оба своих на другие того же размера.
Действия:
1. Склонировала поочередно оба диска на новые посекторно при помощи WinHEX,
2. В соответствующем порядке установила новые диски в ноутбук.
3. Ноут написал, что массив Failed и членов массива нет вообще.
4. Отцепила оба диска, проверила WinHEX'ом, увидела, что информация о массиве и его участников хранится в предпоследнем секторе. Там, соответственно, были прописаны серийные номера старых (родных) дисков, т.к. диски клонировались 1 в 1.
5. Изменила соответствующие серийники на новые.
6. Прицепив их у ноутбуку увидела, что они оба стали Non-Raid.
7. Вывод: либо информация о массиве хранится еще где либо, либо надо найти и изменить что-то типа контрольной суммы на каждом диске, записываемой Intel Matrix Storage.
Помогите, пожалуйста, направьте в нужном направлении: глобальная задача мигрировать RAID0 на новые диски без потери данных и переустановки ОС.
Спасибо заранее!!

Upd Блин, голова не работает, не там создала тему. Перенесите, плиз, в проблемы.

слейте образ со старых дисков чем-нибудь вроде acronis.
поставьте новые диски. соберите новый массив
залейте образ Julia_Grigorieva писал(а): Спасибо, но неужели это не делается проще?

Если новые диски не меньше по размеру (важны даже КБ), то можно вытащить один из дисков зеркала и сделать ребилд на новый винт, потом вытащить второй и также ребилд. Вот и всё.

Конкретнее, AFAIK, так:
0. Сделать проверку массива (называться может по-разному: consistency check\ synchronization \ verification)
1. Пометить в менеджере один из дисков как offline и изъять его
2. Вставить замену и проследить за началом авторебилда \ если нет, то стартануть вручную или назначить вставленный диск как Hot Spare, тогда ребилд сам начнется.
3. Проделать пункты 1. и 2. со вторым диском.
4. Сделать проверку массива.

Привет всем. В прошлых статьях сайта мы рассмотрели с вами варианты создания массива RAID 0 из пары обычных HDD, SSD SATA и SSD M.2 NVMe Samsung 970 EVO Plus 250 Гб. Затем рассмотрели вариант восстановления нулевого рейда в случае неисправностей операционной системы методом создания системного бэкапа и отката к нему. В сегодняшней статье мы рассмотрим вопрос восстановления массива RAID 0 , если он по каким-либо причинам развалился. Бывает так из-за ошибок работы микропрограммы БИОСа или, что гораздо хуже, когда один из двух накопителей выходит из строя. Ну либо по невероятному стечению обстоятельств оба накопителя оказываются неисправны.

↑ Восстановление работоспособности развалившегося RAID 0 массива


Напомню, друзья, что RAID 0 – это дисковый массив из двух или более накопителей с отсутствием избыточности. Простыми словами: мы устанавливаем в компьютер два или более накопителей, желательно одного объёма и от одного производителя, и они работают в паре, увеличивая скорость чтения\записи накопителя в два раза, но в нулевом рейде нет двойной защиты данных, свойственных всем другим конфигурациям RAID - 1, 5, 10. И если в массиве RAID 0 выйдет из строя один диск или сам массив по каким-либо причинам развалится, то спасти данные будет очень сложно. Так как драйвер RAID 0 записывает информацию на оба диска как на один, и, соответственно, дублирования данных не происходит. Примечание: друзья, на нашем сайте есть целая серия статей о создании и работе RAID-массивов разной избыточности. Юзайте тег RAID, и вы сможете узнать, что такое аппаратные и программные RAID-массивы, зачем они нужны, как их создавать, и как они работают.

Итак, поговорим о том, что делать, если ваш RAID 0 массив перестал функционировать программно или аппаратно. Друзья, если вы не делали резервных бэкапов, и у вас остался один рабочий накопитель, то восстанавливать с него данные придётся программой RAID Reconstructor. Процесс этот довольно сложный даже для профессионалов, не всегда заканчивается успешно, и об этом у нас готовится отдельная статья. В этой же публикации мы покажем вам, как быстро восстановить работоспособность массива RAID 0 с помощью резервной копии, предварительно созданной в программе AOMEI Backupper. Выбор программы условен, для создания бэкапа вы можете использовать любую программу-бэкапер - Acronis True Image или иную. Просто действуйте по аналогии. При хорошем знании настроек БИОСа UEFI развернуть бэкап массива можно и на один накопитель, это когда рабочая Windows 10 вам срочно нужна, и бежать в магазин за вторым винтом нет времени. К примеру, если ваш рейд состоял из двух SSD M.2, то развернуть его вы сможете не только на один SSD M.2, но и на обычный HDD или SSD SATA. При включенном в БИОСе контроллере RAID это можно сделать. В идеале же, конечно, нужно докупить второй накопитель, затем пересоздать массив RAID 0 и развернуть на него резервный бэкап. Если дисковый массив вы восстанавливать не хотите, а вам срочно нужны какие-то файлы, находящиеся в нём, вы можете достать их прямо из резервного бэкапа. Рассмотрим все варианты.

Вообще, создание резервных копий при работе с массивом RAID 0 является нормальной практикой и повсеместно применяется системными администраторами. Итак, делаем резервный бэкап массива RAID 0 программой AOMEI Backupper по этой статье. В этой же в статье описан процесс создания загрузочной флешки с программой AOMEI Backupper, флешка нам тоже будет нужна.

↑ Как восстановить массив RAID 0, созданный из двух SSD M.2 NVMe, если один диск вышел из строя


Как восстановить массив RAID 0, созданный из двух SSD M.2 NVMe, если один диск вышел из строя? В этом случае рейд будет недоступен в меню загрузки и в БИОСе.
Если вы загрузитесь с LiveCD (LiveUSB) в среде WinPE и войдёте в системное управление дисками Windows, то одного диска не будет совсем. Или он не будет проинициализирован, а второй будет с объёмом полного массива, но с повреждённой файловой системой RAW.Если зайти в БИОС на вкладку «Advanced», в пункт «Intel Rapid Storage Technology», затем в «RAID VOLUME INFO», то там будет присутствовать один накопитель, и статус у нашего массива будет "Failed".

↑ Вариант №1: восстановление резервной копии массива RAID 0 на один диск


Как я уже заметил выше, если вы хотите попытаться восстановить информацию на оставшемся накопителе, но вам срочно нужна работающая операционная система, то имеющийся бэкап можно развернуть на другой диск SSD M.2 или даже на обычный HDD и SSD SATA. Давайте для примера выберем SSD SATA Kingston 120 Гб. Конечно, это будет временным решением, в будущем нужно будет докупить второй SSD M.2 и восстановить дисковый массив. Если вы ничего не хотите восстанавливать, можете развернуть резервный бэкап на оставшийся в живых SSD M.2, а потом, опять же, докупить второй SSD M.2 и воссоздать массив.
В БИОСе сохраняем настройки, произведённые нами при создании нулевого рейда. На вкладке настроек «Advanced» идём в пункт «PCH Storage Configuration» и здесь выставляем опцию «SATA Mode Selection» в положение RAID, в нашем случае «Intel RST Premium With Intel Optane System Acceleration (RAID)». Опцию «M.2_PCIE Storage RAID Support» выставляем в положение «RST Controlled». В разделе «Boot\CSM» выставляем значение всех опций «UEFI», т.е. работа только в UEFI.


Secure Boot выставляем в положение «Windows UEFI Mode», т.е. загрузка только в режиме UEFI.


Жмём F10 для сохранения произведённых нами в BIOS настроек и перезагружаемся. Загружаемся с флешки AOMEI Backupper. Выбираем восстановление из файла резервной копии.

Указываем файл резервной копии.
Выбираем восстановление всего диска и указываем несуществующий массив.
Теперь указываем один жёсткий диск, в нашем случае SSD SATA Kingston 120 Гб, в качестве места восстановления резервной копии.
Подтверждаем запуск операции восстановления.
Запускаем операцию восстановления.

Дожидаемся её завершения.
В меню загрузки выбираем SSD SATA Kingston 120 Гб
Загружаемся в Windows 10. И вот как у нас выглядят дела в системном управлении дисками.

↑ Вариант №2: Разворачиваем резервный бэкап на оставшийся в живых SSD M.2


Как я заметил выше, вы можете развернуть резервный бэкап на оставшийся в живых SSD M.2. Процесс восстановления ничем не отличается от вышеприведённого.
Опять загружаемся с флешки AOMEI и выбираем восстановление из файла резервной копии.
Открываем файл резервной копии.
Указываем SSD M.2 250 Гб.
Выбираем загрузку с SSD M.2 NVMe Samsung 970 EVO Plus 250 Гб.

↑ Вариант №3: восстановление массива RAID 0 из резервной копии при замене вышедшего из строя диска

Если у вас есть возможность сразу докупить второй накопитель, покупаем его, устанавливаем в системный блок, затем создаём нулевой рейд заново. Ну и разворачиваем на него резервную копию. Пересоздать RAID 0 можно по этой статье.
Только далее не устанавливаем Windows, а загружаемся с флешки AOMEI Backupper.
Выбираем восстановление из файла резервной копии.
Указываем файл копии.
Выбираем восстановление всего диска и указываем массив.
Теперь указываем массив в качестве места восстановления резервной копии.
Подтверждаем запуск операции восстановления.
Запускаем операцию восстановления.
Дожидаемся её завершения.
Загружаемся в Windows 10.
Вот какая у нас ситуация в системном управлении дисками.
Вот и всё: массив RAID 0 восстановлен из резервной копии.

Читайте также: