-
December 6 2012, 20:37
- Компьютеры
- Cancel
Если в сервере Windows вышел из строя один из дисков зеркала, организованного средствами ОС, в диспетчере дисков (остнастка MMC «Управление дисками») неисправный диск будет в состоянии «отключен», а том в состоянии «отказавшая избыточность».
После замены неисправного диска нужно запустить остнастку MMC «Управление дисками» и в ней:
- на предложение использовать новый диск — согласиться (нажать OK), затем в окне «Преобразование в динамические диски» выбрать этот новый диск и нажать «OK».
- удалить отказавшее зеркало у тома с отказавшей избыточностью, для чего в контекстном меню тома выбрать пункт «Удалить зеркало…», в окне «Удалить зеркало» выбрать в списке отсутствующий (неисправный) диск, нажать «Удалить зеркало» — в результате том станет простым динамическим;
- удалить информацию о неисправном диске, для чего в его контекстном меню нужно выбрать пункт «Изъять диск»;
- добавить зеркало к ставшему простым динамическому тому, для чего нужно в его контекстном меню выбрать пункт «Добавить зеркало», в окне «Добавить зеркальный том» выделить новый диск и нажать «Добавить зеркальный том», после чего начнётся процесс ресинхронизации тома.
В начале ресинхронизации тома нельзя перезагружать и выключать компьютер.
wiki:technical:ds:change_hdd_softraid1
Содержание
Получение информации о состоянии массивов
В командной строке выполняем:
# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:
О том, что массивы в порядке, указывает наличии двух букв U в квадратных кавычках в строчках для каждого массива — [UU]
. Если массив поврежден, буква U меняется на _. В данном случае: [U_]
— поврежден диск /dev/sdb.
Удаление неисправного диска из RAID1
Перед установкой нового HDD необходимо удалить из массива поврежденный диск. Для этого выполняем следующую последовательность команд:
# mdadm /dev/md0 -r /dev/sdb1 # mdadm /dev/md1 -r /dev/sdb2 # mdadm /dev/md2 -r /dev/sdb3 # mdadm /dev/md3 -r /dev/sdb4
Бывают ситуации, когда не все программные RAID-массивы повреждены:
# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [UU] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [UU] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:
В таком случае не удастся удалить рабочий раздел из массива. Необходимо сначала пометить его как сбойный:
# mdadm /dev/md2 -f /dev/sdb3 # mdadm /dev/md3 -f /dev/sdb4 # cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:
а затем удалить:
# mdadm /dev/md0 -r /dev/sdb1 # mdadm /dev/md1 -r /dev/sdb2 # mdadm /dev/md2 -r /dev/sdb3 # mdadm /dev/md3 -r /dev/sdb4
После этого можем производить замену HDD.
Добавление нового диска в RAID1
Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов.
Определение типа таблицы разделов
Узнать тип таблицы разделов можно с помощью утилиты gdisk. Например, в случае с GPT мы получим:
# gdisk -l /dev/sda Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
И в случае с MBR мы получим:
# gdisk -l /dev/sda MBR: MBR only BSD: not present APM: not present GPT: not present
Копирование таблицы разделов на новый диск
Для жесткого диска с MBR используем утилиту sfdisk:
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
где:
-
/dev/sda
— диск источник -
/dev/sdb
— диск назначения
Для жесткого диска с GPT используем утилиту sgdisk:
# sgdisk -R /dev/sdb /dev/sda # sgdisk -G /dev/sdb
где:
-
/dev/sda
— диск источник -
/dev/sdb
— диск назначения -
sgdisk -G /dev/sdb
— назначает новому жесткому диску случайный UUID
Добавление размеченного диска в массивы
Выполняем последовательность команд:
# mdadm /dev/md0 -a /dev/sdb1 # mdadm /dev/md1 -a /dev/sdb2 # mdadm /dev/md2 -a /dev/sdb3 # mdadm /dev/md3 -a /dev/sdb4
После этого начнется процесс синхронизации. Время синхронизации зависит от объема жесткого диска:
# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sdb4[1] sda4[0] 1028096 blocks [2/2] [UU] [==========>..........] resync = 50.0% (514048/1028096) finish=97.3min speed=65787K/sec md2 : active raid1 sdb3[1] sda3[0] 208768 blocks [2/2] [UU] md1 : active raid1 sdb2[1] sda2[0] 2104448 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices:
Установка загрузчика GRUB
Если в системе используется загрузчик GRUB2 и если сервер не загружен с LiveCD (режимы rescue, recovery), достаточно выполнить следующие команды (при этом нет необходимости дожидаться окончания процесса синхронизации):
# grub-install /dev/sdb # update-grub
Если сервер загружен с LiveCD (режимы rescue, recovery) установка загрузчика выглядит следующим образом:
-
Монтируем корневую файловую систему в /mnt:
# mount /dev/md2 /mnt
-
Монтируем /boot:
# mount /dev/md0 /mnt/boot
-
Монтируем /dev, /proc и /sys:
# mount --bind /dev /mnt/dev # mount --bind /proc /mnt/proc # mount --bind /sys /mnt/sys
-
Делаем chroot в примонтированную систему:
# chroot /mnt
-
Устанавливаем grub на sdb:
# grub-install /dev/sdb # update-grub
Теперь можно загрузится в нормальный режим.
· Последнее изменение: 2017/04/07 22:51 —
127.0.0.1
Диски в рейдах время от времени выходят из строя, и их конечно же приходится заменять. Короткая инструкция по замене дисков в программном рейде, на примере RAID 1. Допустим что у нас в сервере установлено два диска и на них следующим образом собран рейд:
/dev/sda1 /dev/sdb1 - /dev/md0 /dev/sda2 /dev/sdb2 - /dev/md1
Диск /dev/sdb выходит из строя и мы будем его заменять. Для начала, последовательно удалим из рейда партации проблемного диска:
# mdadm --manage /dev/md0 --fail /dev/sdb1 # mdadm --manage /dev/md0 --remove /dev/sdb1 # mdadm --manage /dev/md1 --fail /dev/sdb2 # mdadm --manage /dev/md1 --remove /dev/sdb2
Заглядываем в /proc/mdstat и убеждаемся что партации извлечены [U_]:
md0 : active raid1 sda1[0] 24418688 blocks [2/1] [U_] md1 : active raid1 sda2[0] 24418688 blocks [2/1] [U_]
Далее, если сервер поддерживает горячую замену — выдёргиваем нужный диск и ставим новый. Если горячей замены сервер не поддерживает, выключаем его, заменяем диск и включаем обратно. При замене не забываем, что по объёму диск должен быть идентичен тому что был установлен ранее. Загрузив сервер, копируем разметку с рабочего диска на наш новый. Сделать это можно с помощью gdisk, либо с помощью sfdisk (использовать нужно что-то одно!):
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Или:
# sgdisk -R /dev/sdb /dev/sda # sgdisk -G /dev/sdb
Убеждаемся что разбивка на старом и новом диске идентична, и добавляем партации нового диска в рейд:
# mdadm --manage /dev/md0 --add /dev/sdb1 # mdadm --manage /dev/md1 --add /dev/sdb2
Проверяем /proc/mdstat, видим что синхронизация данных уже началась:
md0 : active raid1 sda1[0] sdb1[1] 24418688 blocks [2/1] [U_] [=>...................] recovery = 19.9% (9692672/48837376) finish=2.7min speed=197535K/sec md1 : active raid1 sda2[0] sdb2[1] 24418688 blocks [2/1] [U_] [=>...................] recovery = 3.2% (1572096/48837376) finish=1.8min speed=186512K/sec
И отправляемся пить чай, в ожидании завершения процесса. В ходе синхронизации возможно повышение нагрузки на дисковую подсистему, так что лучше всего в это время минимизировать какие-либо ресурсоёмкие операции.
@SysadminNotes
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
1 |
|
27.04.2017, 16:29. Показов 59277. Ответов 20
Всем привет! На сервере IBM 3620 установлен raid 1 состоящий из 2 дисков seagate st2000nm0001 по 2 ТБ.
__________________
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
27.04.2017, 16:34 |
2 |
любой, такого же или большего размера. Добавлено через 3 минуты
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
27.04.2017, 17:46 [ТС] |
3 |
А ребилд не автоматом запуститься? Я думал достаточно новый диск воткнуть, взамен старого, и все. Как ребилд осуществить?
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
27.04.2017, 17:49 |
4 |
откуда я знаю как конкретно у вас.
1 |
kumehtar |
27.04.2017, 18:04
|
Не по теме:
если путаешь — получаешь рейд, но «чистый» Логичное последствие, но как подумаю — мороз по коже..
0 |
magirus |
27.04.2017, 18:09
|
Не по теме: поэтому и попросил обратить внимание на то кто из винтов будет источником а кто приемником.
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
27.04.2017, 18:17 [ТС] |
7 |
raid 1 поддерживает горячую замену. Как я понимаю, ребилд должен автоматом начаться. Конкретно у меня IBM с контроллером MegaRaid
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
27.04.2017, 18:19 |
8 |
raid 1 поддерживает горячую замену. сам по себе рейд ничего не поддерживает.
0 |
81 / 70 / 4 Регистрация: 09.08.2016 Сообщений: 385 |
|
27.04.2017, 19:20 |
9 |
Добавлено через 21 минуту
1 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
16.05.2017, 08:06 [ТС] |
10 |
Купили диск. Поменял. Ребилд, конечно же, не начался автоматом. Что делать дальше? Никогда ранее не менял диск в рейде. Удалять массив и создавать новый с уже новым диском? не потеряются ли данные? может ли старый диск (sas) работать в паре с новым диском (sata) Миниатюры
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
16.05.2017, 08:09 |
11 |
Удалять массив и создавать новый с уже новым диском? не потеряются ли данные? обязательно потеряются.
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
16.05.2017, 08:19 [ТС] |
12 |
Так дальше поступать в данной ситуации?
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
16.05.2017, 10:00 |
13 |
читать руководство на ваш контроллер — как правильно запустить ребилд.
1 |
81 / 70 / 4 Регистрация: 09.08.2016 Сообщений: 385 |
|
16.05.2017, 11:00 |
14 |
Так дальше поступать в данной ситуации? Сохранить данные для перестраховки и запустить ребилд.
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
17.05.2017, 08:52 [ТС] |
15 |
Данные то сохранил. Вопрос в другом «Как запустить ребилд»? Никогда этого не делал. И второй вопрос, будут ли работать в паре SAS и SATA диски?
0 |
Модератор 20507 / 12397 / 2185 Регистрация: 23.11.2016 Сообщений: 61,988 Записей в блоге: 22 |
|
17.05.2017, 11:37 |
16 |
Mister_bin, какой у вас Рейд-контроллер? К нему есть руководство?
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
17.05.2017, 11:44 [ТС] |
17 |
Mister_bin, какой у вас Рейд-контроллер? К нему есть руководство? serveRaid m5015. руководство нашел в интернете, сейчас читаю
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
17.05.2017, 13:43 [ТС] |
18 |
Вот такой мануал нашел. Но решения своей проблемы тут не нашел
0 |
1 / 1 / 0 Регистрация: 13.12.2010 Сообщений: 27 |
|
17.05.2017, 16:19 [ТС] |
19 |
Нашел ответ на свой вопрос, и он таков «SAS and SATA drives are supported, but the mixing of SAS and SATA in the same RAID array is not supported». Буду искать второй диск SATA
0 |
81 / 70 / 4 Регистрация: 09.08.2016 Сообщений: 385 |
|
17.05.2017, 17:29 |
20 |
И второй вопрос, будут ли работать в паре SAS и SATA диски? будут, но для нормальной работе на зеркале лучше пользовать 2 одинаковых диска Добавлено через 43 секунды
Вопрос в другом «Как запустить ребилд»? Никогда этого не делал. Тогда зачем тудой лезем? есть для того сисадмин, или кто там у вас?
0 |
Вступление
В этой статье используется пример для описания необходимых шагов, связанных с заменой неисправного диска в программном RAID ( mdadm
).
ВАЖНОЕ ПРИМЕЧАНИЕ: Все команды являются примерами и должны быть соответственно скорректированы!
Видео с инструкциями можно найти на нашем канале Hetzner на Youtube.
Пример сценария
Предполагается следующая конфигурация:
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
1822442815 blocks super 1.2 [2/2] [UU]
md2 : active raid1 sda3[0] sdb3[1]
1073740664 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
524276 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
33553336 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Всего разделов четыре:
- / dev / md0 как своп
- / dev / md1 как / boot
- / dev / md2 как /
- / dev / md3 как / home
/dev/sdb
в данном случае неисправный привод. Отсутствующий или неисправный привод обозначается значками [U_]
и / или [_U]
. Если массив RAID не поврежден, он показывает [UU]
.
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
1822442815 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda3[0] sdb3[1](F)
1073740664 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1](F)
524276 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0] sdb1[1](F)
33553336 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Изменения в программном RAID можно вносить во время работы системы. Если proc/mdstat
показывает, что диск выходит из строя, как в примере здесь, то можно назначить встречу со специалистами службы поддержки для замены диска ( см. Ниже ).
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0]
1822442815 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda3[0]
1073740664 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda2[0]
524276 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
33553336 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Удаление неисправного привода
Перед добавлением нового диска старый неисправный диск необходимо удалить из массива RAID. Это нужно сделать для каждого отдельного раздела.
# mdadm /dev/md0 -r /dev/sdb1
# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/sdb3
# mdadm /dev/md3 -r /dev/sdb4
Следующая команда показывает диски, которые являются частью массива:
# mdadm --detail /dev/md0
В некоторых случаях привод может быть неисправен только частично, например, только /dev/md0
в [U_]
состоянии, тогда как все другие устройства находятся в [UU]
состоянии. В этом случае команда
# mdadm /dev/md1 -r /dev/sdb2
беспокоит, поскольку /dev/md1
массив в порядке.
В этом случае команда
# mdadm --manage /dev/md1 --fail /dev/sdb2
сначала необходимо выполнить, чтобы перевести RAID в [U_]
состояние.
Назначение встречи с поддержкой для обмена неисправного диска
Чтобы иметь возможность обменять неисправный диск, необходимо заранее договориться о встрече со службой поддержки. Сервер нужно будет на короткое время отключить от сети.
Используйте раздел запросов на поддержку в Robot, чтобы связаться с техническими специалистами.
Подготовка нового диска
Оба диска в массиве должны иметь одинаковые разделы. В зависимости от типа используемой таблицы разделов ( MBR
или GPT
) должны использоваться соответствующие утилиты для копирования таблицы разделов. Таблица разделов GPT обычно используется в дисках емкостью более 2 ТБ (например, жесткие диски объемом 3 ТБ в EX4
и EX6
)
Резервное копирование MBR / GPT
Перед копированием MBR / GPT на новый диск необходимо создать резервную копию. Таким образом, если во время копирования что-то пойдет не так, оригинал все равно можно будет восстановить.
Резервное копирование с MBR
sfdisk --dump /dev/sda > sda_parttable_mbr.bak
sfdisk --dump /dev/sdb > sdb_parttable_mbr.bak
sfdisk --dump /dev/sdX > sdX_parttable_mbr.bak
Восстановить с MBR
sfdisk /dev/sda < sda_parttable_mbr.bak
sfdisk /dev/sdb < sdb_parttable_mbr.bak
sfdisk /dev/sdX < sdX_parttable_mbr.bak
Резервное копирование с помощью GPT
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --backup=sdX_parttable_gpt.bak /dev/sdX
Восстановить с помощью GPT
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --load-backup=sdX_parttable_gpt.bak /dev/sdX
Диски с GPT
На диске хранится несколько избыточных копий таблицы разделов GUID (GPT) , поэтому для редактирования таблицы необходимо использовать инструменты, которые поддерживают GPT
, например, parted
или GPT fdisk
. sgdisk
Инструмент из GPT FDISK (предварительно установленные при использовании системы аварийно ) может быть использован для копирования таблицы разделов на новый диск. Вот пример копирования таблицы разделов из sda в sdb:
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb
Затем диску нужно назначить новый случайный номер UUID
:
sgdisk -G /dev/sdb
После этого диск можно добавить в массив. В качестве последнего шага необходимо установить загрузчик.
Festplatten mit MBR
Таблицу разделов можно просто скопировать на новый диск, используя sfdisk
:
# sfdisk -d /dev/sda | sfdisk /dev/sdb
где /dev/sda
— исходный диск, а /dev/sdb
— целевой диск.
(Необязательно): Если разделы не обнаруживаются системой, то таблица разделов должна быть перечитана из ядра:
# sfdisk -R /dev/sdb
Естественно, что перегородки также могут быть созданы вручную с помощью fdisk
, cfdisk
или другими инструментами. Перегородки должны быть Linux raid autodetect (ID fd)
типами.
E Интеграция нового привода
После удаления неисправного диска и установки нового его необходимо интегрировать в массив RAID. Это нужно сделать для каждого раздела.
# mdadm /dev/md0 -a /dev/sdb1
# mdadm /dev/md1 -a /dev/sdb2
# mdadm /dev/md2 -a /dev/sdb3
# mdadm /dev/md3 -a /dev/sdb4
Новый диск теперь является частью массива и будет синхронизирован. В зависимости от размера разделов эта процедура может занять некоторое время. Статус синхронизации можно наблюдать с помощью cat /proc/mdstat
.
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb4[1] sda4[0]
1028096 blocks [2/2] [UU]
[==========>..........] resync = 50.0% (514048/1028096) finish=97.3min speed=65787K/sec
md2 : active raid1 sdb3[1] sda3[0]
208768 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
208768 blocks [2/2] [UU]
unused devices: <none>
Установка загрузчика
Поскольку серийный номер диска изменился, нам нужно создать новую карту устройств с помощью GRUB2:
grub-mkdevicemap -n
Если вы делаете этот ремонт в загруженной системе, то для GRUB2 достаточно запустить grub-install
на новом диске. Например:
grub-install /dev/sdb
В Grub1 ( grub-legacy
) в зависимости от того, какой диск неисправен, может потребоваться больше шагов.
- Запустите консоль GRUB:
grub
- Укажите раздел, где
/boot
находится:root (hd0,1) (/dev/sda2 = (hd0,1))
- Установите загрузчик в MBR:
setup (hd0)
- Также для установки загрузчика на второй диск:
- Подключите второй диск как
hd0
mappen:device (hd0) /dev/sdb
- Точно повторите шаги 2 и 3 ( не меняйте команды! )
- Подключите второй диск как
- Выйдите из консоли GRUB:
quit
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> device (hd0) /dev/sdb
device (hd0) /dev/sdb
grub> root (hd0,1)
root (hd0,1)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
#
Для ремонта через Rescue System необходимо сначала смонтировать установленную систему . Все шаги по установке GRUB должны быть выполнены после chroot
.
Ситуация (для примера): с помощью mdadm собран
программный RAID1(зеркало) /dev/md0 из 2-х разделов /dev/sda1 и
/dev/sdb1.
Задача: заменить сбойный диск /dev/sdb.
Прежде всего, смотрим диагностику:
cat /proc/mdstat
или
mdadm --detail /dev/md0
Если вместо [UU] видим [U_], то дело плохо, целостность одного
из дисков нарушена — нужно менять диск.
Для автоматического слежения и мониторинга
дисков и массивов можно и нужно использовать возможности пакетов
mdadm (monitor mode) и
smartmontools (технология S.M.A.R.T.).
-1- Прежде всего, делаем так, чтобы с устройством никто не
работал — см. п.1,2 Удаление
программного (software) массива RAID.
-2- Помечаем раздел как сбойный:
mdadm --manage /dev/md0 --fail /dev/sdb1
-3- Отключаем раздел (удаляем из RAID1):
mdadm --manage /dev/md0 --remove /dev/sdb1
-4- Выключаем машину, меняем диск.
-5- Создаем через cfdisk или fdisk идентичные разделы, или c
помощью sfdisk автоматически копируем структуру
разделов первого диска /dev/sda:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Этим способом можно пользоваться, поскольку в нашем примере
«зеркальный» RAID1. При других уровнях (raid level), нужно разбить
диск на раздел(ы) и пометить его(их) типом ФС «Linux raid
autodetect».
-6- Добавляем раздел в RAID1 массив:
mdadm --manage /dev/md0 --add /dev/sdb1
-7- Ждем синхронизации массива:
mdadm --wait /dev/md0
В этой статье мы рассмотрим ситуацию, когда нужна замена диска в программном RAID 1 с помощью утилиты MDADM.
- Удаление сбойного диска из RAID
- Клонирование раздел linux с разметкой MBR на новый диск
- Клонирование раздел linux с разметкой GPT на новый диск
- Добавление диска диска в массив RAID
- Установка загрузчика GRUB2
Для начала посмотрим список наших дисков с разделами. Определим какой диск мы будем удалять из массива RAID 1 командой lsblk:
[root@localhost ~] lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 15G 0 disk
├─sda1 8:1 0 2G 0 part
│ └─md127 9:127 0 2G 0 raid1 [SWAP]
├─sda2 8:2 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sda3 8:3 0 12G 0 part
└─md125 9:125 0 12G 0 raid1 /
sdb 8:16 0 15G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─md127 9:127 0 2G 0 raid1 [SWAP]
├─sdb2 8:18 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb3 8:19 0 12G 0 part
└─md125 9:125 0 12G 0 raid1 /
sr0 11:0 1 1024M 0 rom
В данной ситуации у нас есть 2 диска sda и sdb. Мы определили, что один из них выходит из строя и лучше его заменить. У меня это диск sda.
Как проверить жесткий диск в linux можно посмотреть в моей статье.
Посмотрим состояние нашего raid массива командой cat /proc/mdstat:
[root@localhost ~] cat /proc/mdstat
Personalities : [raid1]
md125 : active raid1 sdb3[1] sda3[2]
12569600 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sdb2[1] sda2[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda1[2] sdb1[1]
2096128 blocks super 1.2 [2/2] [UU]
Если ваш вывод будет [_U] вместо [UU], то это значит рейд неисправен и работа одного диска уже нарушена.
Как удалить сбойный диск из RAID
Сначала нам нужно пометить диск sda как сбойный:
mdadm /dev/md125 --fail /dev/sda3
mdadm /dev/md126 --fail /dev/sda2
mdadm /dev/md127 --fail /dev/sda1
Теперь удалим разделы из нашего массива:
mdadm /dev/md125 —remove /dev/sda2
mdadm /dev/md126 —remove /dev/sda1
mdadm /dev/md127 —remove /dev/sda3
Проверим вывод команды cat /proc/mdstat и убедимся, что sda разделы удалены из массива. Далее выключаем сервер и меняем неисправный диск на новый.
После включения нам нужно скопировать разделы старого диска на новый, чтобы они были идентичны.
Для определения какая таблица используется — GPT или MBR введите:
gdisk -l /dev/sdb
В выводе будет написано MBR: MBR only или GPT: present.
Как клонировать раздел linux с разметкой MBR
! В данном случае sdb исходный диск, а sda диск назначения.
sfdisk -d /dev/sdb | sfdisk --force /dev/sda:
Как клонировать раздел linux с разметкой GPT
! При использовании этой команды на sdb диск мы копируем разметку с диска sda
sgdisk -R /dev/sdb /dev/sda
Проверим нашу новую разметку, она должна совпадать на обоих дисках:
[root@localhost ~]# fdisk -l | grep dev
Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors
/dev/sda1 2048 4200447 2099200 fd Linux raid autodetect
/dev/sda2 * 4200448 6299647 1049600 fd Linux raid autodetect
/dev/sda3 6299648 31457279 12578816 fd Linux raid autodetect
Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 sectors
/dev/sdb1 2048 4200447 2099200 fd Linux raid autodetect
/dev/sdb2 * 4200448 6299647 1049600 fd Linux raid autodetect
/dev/sdb3 6299648 31457279 12578816 fd Linux raid autodetect
После разметки все готово, чтобы добавить новый диск в наш программный RAID 1.
Как добавить диск в массив RAID
Теперь добавим наши новые разделы в RAID:
mdadm /dev/md125 --add /dev/sda3
mdadm /dev/md126 --add /dev/sda2
mdadm /dev/md127 --add /dev/sda1
Статус синхронизации можно проверить несколькими командами:
cat /proc/mdstat и более детально mdadm —detail /dev/md125
Установка загрузчика grub2 на новый диск
В завершении всего нужно установить grub на новый диск и обновить конфигурацию.
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
Теперь можно смело сделать ребут и проверить, что сервер загружается.
Подробное описание команд утилиты MDADM.