Замена диска Mdadm raid 1

Обновлено: 04.07.2024

Постоянно возникает ситуация, когда люди пытаются восстановить массив, но у них нет свободных разъемов SATA для добавления нового диска. Получите карту расширения, которая добавляет дополнительные слоты SATA, или подставку для дисков USB — предпочтительно USB3, но подойдет и USB2. Вместо этого вы можете получить USB-кейс, но подставка, оставляющая диск открытым, будет намного проще, если вам нужно переключать несколько дисков. Вы не можете использовать USB-накопители как часть вашего массива при обычном использовании (он плохо взаимодействует с рейдом), но для восстановления данных с диска, который вы заменяете, это нормально.

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

Ваш массив все еще избыточен?

Вы используете зеркало с тремя дисками или RAID6, насколько я знаю. И есть ли резервный диск, настроенный на замену в случае сбоя одного из них?

Это идеальный сценарий. Когда один диск выйдет из строя, RAID легко заменит его запасным, и жизнь продолжится, и пользователь не заметит, что что-то не так. У большинства из нас нет аппаратного обеспечения для поддержки всего этого. Или, как неоднократно сообщалось автору, администраторы/операторы не следили за массивом и не осознавали, что что-то пошло не так, пока (почти) не стало слишком поздно.

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

Значит, у вас нет избыточности!

Помните, RAID — это не резервная копия! Если вы потеряете избыточность, вам нужно сделать резервную копию! Самого действия по восстановлению массива часто бывает достаточно, чтобы перевернуть другой диск и привести к сбою всего массива. Это очень распространенный сценарий с настольными дисками, поэтому убедитесь, что вы прочитали и поняли раздел о несоответствии времени ожидания!

Прежде чем пытаться заменить неисправный диск, ВСЕГДА следует попытаться восстановить избыточность перед заменой диска. Если массив избыточен, при замене просто скопируется сомнительный диск, а старые диски затронуты только в том случае, если он не может прочитать сомнительный диск. Если массив не является избыточным, то добавление нового диска вызовет нагрузку на весь массив, поскольку ему придется заново создавать новый диск из оставшихся старых дисков. Это верно даже для зеркала.

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

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

Если у вас нет растрового изображения, не добавляйте старый диск повторно, если только это не была проблема с тайм-аутом (уже исправлена!) и вы не собираетесь заменять диск. Без растрового изображения рейд будет рассматривать его как новый диск и выполнять полную перестройку.

Вполне вероятно, что массив выйдет из строя из-за проблем с другим диском, поэтому рекомендуется не разрешать пользователю запись в массив во время его восстановления. Если это произойдет, остановитесь и соберите массив заново.

Если все в порядке, восстановление будет продолжено.

спасать или перестраивать?

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

Для каждого диска, который вы планируете заменить, подключите новый диск к системе на шине SATA. Если у вас нет свободных портов SATA, замените его старым диском и поместите старый диск в USB-корзину. Если новый диск такого же размера или больше, чем старый, вы можете просто скопировать все, если хотите:

УБЕДИТЕСЬ, что вы правильно указали обозначения дисков! Дважды проверьте, а затем еще раз!

Или вы можете разметить новый диск с помощью своей любимой программы, будь то fdisk, gdisk, parted или какой-либо другой, а затем скопировать раздел диска за разделом. Если у вас есть место для увеличения новых разделов, рассмотрите возможность использования dm-integrity (новая функция 2019 г.) для ваших разделов, так как это означает, что поврежденный диск будет обнаружен и позволит рейду восстановить ваши данные.

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

ЕСЛИ вы успешно скопировали все диски БЕЗ ОШИБОК и установили новые диски в систему, ваша система должна загрузиться в прежнее состояние. Если это состояние ухудшилось, вы сможете добавить обратно копию неисправного диска, зная, что массив состоит из нового исправного оборудования и должен восстановиться без ошибок.

Вот почему вы используете ddrescue, а не dd. ddrescue, на первый взгляд похожий на dd, предназначен для восстановления данных с неисправного оборудования и имеет в рукаве большой набор трюков для обхода ошибок. Он также создает журнал сбоев, который, хотя mdadm в настоящее время не может его использовать, может быть использован для пометки сбойных блоков для утилиты (еще не записанной :-( для восстановления с других дисков в массиве.

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

В идеале с RAID 1, RAID 5 и т. д. один раз можно легко выполнить горячую замену жестких дисков, поскольку они поддерживают зеркалирование на аппаратном уровне, но сделать то же самое на программном рейде 1 становится сложно, так как в идеале требуется отключение ОС, чтобы избежать любого влияние приложения во время замены жесткого диска.
Но в этой статье я покажу вам, как выполнить онлайн-замену жесткого диска в случае, если какой-либо из ваших дисков неисправен.
hpssacli rpm можно загрузить с веб-страницы HPE, поэтому в этой статье я буду предполагать, что вы уже загрузили и установили его на свой блейд-сервер.
ПРИМЕЧАНИЕ. Недавно hpssacli был переименован в ssacli из-за ребрендинга названия HPE и разделения отрасли, но, поскольку у меня была установлена ​​более старая версия hpssacli, команды будут использовать «hpssacli», но те же самые команды можно использовать с «ssacli».
Мои настройки:

  1. HP Proliant BL460c Gen9
  2. Два внутренних диска по 900 ГБ каждый
  3. Аппаратный RAID 0 состоит из двух массивов (каждый из которых имеет один диск)
  4. Программный RAID 1 настраивается поверх этих массивов

Обычно сопоставление жесткого диска с логическим диском выглядит следующим образом:
Массив A -> Логический диск 1 (/dev/sda) -> Отсек 1
Массив B -> Логический диск 2 (/dev/sdb ) -> отсек 2
Но все же хорошо проверить сопоставление перед началом замены диска, чтобы убедиться, что заменяется правильный диск.

Обратное сопоставление дисков
Массив A -> Логический диск 1 (/dev/sda) -> Отсек 2
Массив B -> Логический диск 2 (/dev/sdb) -> Отсек 1
Здесь вывод хотел бы ниже

Как проверить, неисправен ли мой диск?

Существует несколько мест (журналов), в которых можно собрать достаточно доказательств, чтобы получить более подробную информацию о неисправном диске.
В журналах iLO ниже будет доступно сообщение
Правый диск:
Сбой устройства внутреннего корпуса хранилища (отсек 1, блок 1, порт 1I, слот 0)
Левый диск: < br />Сбой устройства внутреннего корпуса хранилища (отсек 2, блок 1, порт 1I, слот 0)
Системный журнал ОС должен содержать следующие сообщения (при условии, что инструмент hp-ams установлен, поскольку он сообщает обо всех аппаратных сигналах тревоги) )
Правый диск:

Можно также проверить состояние логического диска, используя приведенную ниже команду
Статус логического диска 1: ошибка

Статус логического диска 2: сбой

Замена логического диска 1 (/dev/sda)

Проверьте статус рейда
Далее повторно проверьте статус рейда

Теперь удалите неисправный раздел рейда

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

Замените неисправный диск новым, системный журнал должен содержать сообщение, подобное приведенному ниже

Повторно включите логический диск с помощью hpssacli.
После повторного включения логического диска необходимо проверить статус, который должен вернуть «ОК».

sdax теперь отсутствует в RAID, как и ожидалось.

Теперь скопируйте таблицу разделов из sdb в sda.

После этого важно, чтобы возможные оставшиеся старые метаданные SW RAID были удалены с нового подключенного диска, прежде чем он будет повторно добавлен в RAID.

После этого логические тома можно снова добавить в SW RAID.

ПРИМЕЧАНИЕ. Добавляйте отдельный раздел рейда только после того, как последний добавленный раздел отображается как [UU]

Как установить GRUB на диск?

После синхронизации md0 необходимо снова установить grub на оба диска, вызвав установщик grub.
Наконец используйте команду grub-install, которая должна без сообщения об ошибке установить grub на оба диска (hd0 и hd1).

Окончательно проверьте статус рейда

Аналогично замену диска можно произвести и для второго логического диска.

Здесь я подробно описываю шаги по замене неисправного диска из программного массива RAID 1. Как вы знаете, RAID 1 означает зеркалирование.

У меня есть два жестких диска /dev/sda и /dev/sdd с разделами /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda5, /dev/sda6, /dev/sda7. и /dev/sda8, а также /dev/sdd1, /dev/sdd2, /dev/sdd3, /dev/sdd5, /dev/sdd6, /dev/sdd7 и /dev/ssd8 .

Вот как строится массив RAID:

Это можно определить по следующей команде:

Здесь неисправным диском является /dev/sdd, и нам нужно его заменить. Из команды cat /proc/mdstat мы также можем получить подробную информацию о деградации массива. Вот пример:

raid1

Если вы видите «_» (подчеркивание) вместо UU, это значит, что диск устаревает. Здесь, в данном примере, хотя «_» находится на второй позиции, вы можете видеть «F» помимо sdd2 и sdd8, поэтому мы можем подтвердить, что /dev/sdd не работает. Вы также можете инициировать smartctl для /dev/sdd, чтобы подтвердить это. Проверьте наличие ошибок ATA в выводе smartctl.

Здесь /dev/sdd2 и /dev/sdd8 не работают. Нам нужно пометить диск как неисправный и для других массивов, а затем удалить его из массивов RAID.

Пометка жесткого диска как неисправного и его удаление

Вот команда, чтобы пометить диск как неисправный:

Аналогичным образом сделайте это и для других дисков.

raid13

Вот пример вывода после его выполнения для других массивов RAID:

raid12

Извлечение диска

Чтобы удалить неисправные диски из массива RAID, используйте следующую команду:

Повторите это для других дисков. Вот пример снимка экрана с выводом:

raid16

После того, как неисправный диск будет удален из RAID-массива, будет отображаться только один жесткий диск, вы можете увидеть его в каталоге /proc/mdstat

raid15

Теперь пришло время выключить сервер и обратиться в ваш DC для замены диска. Чтобы выключить:

Замените неисправный /dev/sdd на новый 🙂 Он должен быть точно такого же размера, как у старого. (То есть, если старый диск 1 ТБ, то новый тоже должен быть 1 ТБ)

После замены неисправного диска загрузите сервер. Теперь нам нужно создать разделы на новом диске с точной копией другого диска /devc/sda, так как это RAID1. Для этого мы можем использовать команду sfdisk.

Здесь все разделы на /dev/sda будут скопированы в новый — /dev/sdd

raid21

Теперь вы можете выполнить следующую команду, чтобы проверить, имеют ли оба жестких диска одинаковые разделы:

Добавить диски в массив RAID

Далее нам нужно добавить новые разделы в массивы RAID, для этого мы используем следующую команду:

Повторите это и для других RAID-массивов.

raid22

После того, как вы закончите добавлять диски в массивы RAID, начнется автоматическая синхронизация.

raid23

Все, вы заменили /dev/sdd!

Есть вопросы? оставить комментарий!!

Parted — полезная информация!

Недавно мне пришлось работать над сервером на основе «Parted». Не всегда у нас есть возможность работать на серверах, основанных на «разделах». Поэтому я подумал о том, чтобы задокументировать это. Parted — это команда, которая помогает вам изменять разделы жесткого диска. Это больше, чем команда, это утилита GNU. Используя Parted, мы можем добавлять, удалять и редактировать разделы вместе с расположенными на них файловыми системами.

Более того, предположим, что вы должны придумать критерии, по которым вам нужно разделить жесткий диск объемом 6 ТБ. -диск на сервере Linux. Скорее всего, мы подумаем об утилите fdisk. Я должен извиниться, потому что fdisk не может разделять жесткие диски объемом более 2 ТБ на сервере Linux. Fdisk разделит только до 2 ТБ, и около 4 ТБ останется неиспользованным пространством. ПОДРОБНЕЕ…

Навигация по записям

Хеба Хабиб

Работа администратором сервера Linux, Инфопарк, Кочин, Керала.

2 мысли о «Как заменить вышедший из строя жесткий диск в программном массиве RAID 1?

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

Отлично.. Я прочитал этот пост, очень хорошая и информативная информация… спасибо, что поделились

Сервер, который я обслуживаю в People & Planet, использует программное обеспечение Linux RAID1 для защиты от сбоя диска. RAID1 означает, что два (или более) устройства постоянно находятся в идентичном состоянии, и в случае сбоя одного из них ОС может продолжить работу, используя оставшиеся диски. Процедура замены диска задокументирована в нескольких местах в Интернете, но всегда есть мелочи, которые различаются для каждого цвета Linux и каждой настройки, поэтому я документирую это здесь на случай, если наша ситуация совпадает с вашей. Обратите внимание, что я не могу нести никакой ответственности за любые проблемы, возникшие у вас из-за этого сообщения в блоге.

Мне удалось заменить диск без простоев и перезагрузок.

Настройка

  • На сервере работает стабильная версия Debian (Squeeze).
  • Есть всего два диска SATA емкостью 1 ТБ со всеми разделами в конфигурации RAID1 (зеркальной).
  • Эти диски известны в Debian как sda и sdb. Это было большинство разделов на sda, которые вышли из строя.

Идентификация отказавшего диска

Я получил уведомление о сбое диска по электронной почте от logcheck

Я подтвердил ухудшенное состояние, просмотрев mdstat:

F означает "сбой", а подчеркивание означает "вниз", в отличие от соседней буквы "U", которая означает "вверх". бит [2/1] после счетчика блоков означает, что в массиве должно быть 2 устройства, но используется только 1.

Итак, здесь вы можете видеть, что из 6 разделов 5 вышли из строя. По моему опыту, когда диск начинает выходить из строя, очень скоро он полностью выходит из строя.

Примечание: формат /proc/mdstat как минимум странный и немного запутанный. В частности, я не понимаю порядок устройств. В Linux Kernel Wiki говорится: «Порядок, в котором устройства появляются в этой строке, ничего не значит», но, по крайней мере, этот порядок коррелирует со строкой под ней, т. Е. _U означает, что первый диск, указанный в строке выше, вышел из строя. Число, следующее за именем устройства, например. 2 в sda1[2](F) выше, по-видимому, является номером устройства в массиве RAID. Это сбивает с толку, потому что это означало бы, что это устройство было вторым (или, возможно, третьим, поскольку устройства в некоторых системах начинаются с нуля) и что первое устройство было вторым в списке.

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

Меня беспокоило, что нумерация может меняться и отличаться. например BIOS, ОС и загрузчик (в моем случае Grub 1) могут перечислять устройства иначе, чем ОС. Я был обеспокоен тем, что это может создать много путаницы после перезагрузки с новым диском, поэтому было большим преимуществом обнаружить, что можно было выполнить замену в реальном времени, что означало, что метки и номера не менялись на всем протяжении. процедура.

Я знаю, что ОС называет устройство sda1, но были еще две полезные идентификации: адрес шины SCSI и серийный номер.

Нет. lshw не удалось извлечь серийный номер отказавшего диска sda1.

Извлечение диска

Сначала удалите диск из массива RAID, пометив каждый из его разделов как неисправный. Чтобы обобщить устройства RAID, использующие sda, я использовал эту команду:

Для каждого раздела, еще не находящегося в состоянии сбоя, например. последняя строка в выводе выше, выполните команду следующим образом:

Теперь все компоненты каждого RAID-устройства, использующего диск, вышли из строя, их можно удалить из RAID-массива с помощью таких команд:

Теперь сообщите системе, что вы собираетесь извлечь диск. Нам понадобятся числа, выведенные из lshw выше: информация о шине: scsi@ 2:0.0.0

Далее физическое удаление мертвого диска с работающего сервера. К счастью для меня, было довольно легко получить доступ к дискам и подтвердить серийный номер мертвого, не выдергивая никаких проводов. Я отключил и вставил новый диск того же производителя и модели, чтобы свести к минимуму другие проблемы. Убедитесь, что вы подключаете новый диск к тому же каналу SATA.

Чтобы указать системе снова просмотреть устройство,

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

Настройка нового диска

Новый диск должен быть разбит на разделы так же, как и предыдущий. Вы можете сделать это с помощью sfdisk one liner, хотя мне пришлось использовать параметр --force, потому что сначала он жаловался на раздел, который не лежал вдоль границ cylendar. Довольно важно правильно разобраться с sda и sdb! В моем случае мне нужно было скопировать таблицу разделов с sdb (рабочий диск) на sda (новый пустой диск).

Затем нам нужно добавить новые разделы sda обратно в массив RAID.

Проверьте, все работает — ура! Это было.

Бит DELAYED связан с тем, что mdadm распознает, что эти разделы находятся на одном диске, поэтому параллельная повторная синхронизация не поможет.

Заключение

Мне понравилась концепция зеркального RAID: это так разумно, когда сбой диска может произойти в любое время и быть таким разрушительным.Это мой первый реальный опыт замены отказавшего диска в массиве RAID, применение теории на практике. Это сэкономило мне огромное количество работы, и чудесным образом не было ни минуты простоя. Многие люди, с которыми я сталкивался, рекомендуют дорогие аппаратные RAID-контроллеры и не советуют программные RAID, но я считаю, что Linux RAID более надежен и имеет большую онлайн-поддержку сообщества, чем аппаратный RAID-сервер, который я также обслуживаю.

Я благодарен Linux/Debian/GNU за то, что они спасли мою благотворительную организацию People & Planet от необходимости тратить драгоценные деньги сторонников/спонсоров на дорогое оборудование, а также за огромное количество документации по поддержке, которую можно найти в Интернете, и я надеюсь, что этот пост добавит .

Я благодарен Linux/Debian/GNU за то, что они спасли мою благотворительную организацию People & Planet от необходимости тратить драгоценные деньги сторонников/спонсоров на дорогое оборудование, а также за огромное количество документации по поддержке, которую можно найти в Интернете, и я надеюсь, что этот пост добавит .

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