Сейчас хочется рассмотреть случай, когда 1 диск зеркального RAID массива отказывает и отдается на замену. Мы будем экспериментировать с двумя дисками: /dev/sda и /dev/sdb.
Проверим статус RAID массива:
Эмуляция отказа диска
Эмулировать будем отказ диска /dev/sda, это делается следующим образом:
В итоге получаем ситуацию аналогичную выходу из строя диска /dev/sda:
После этого попробуем перезагрузиться для чистоты эксперимента (но в случае "вылета" /dev/sda лучше этого не делать, будет не с чего грузиться, если он реально отказал).
Замена диска
Продолжаем, теперь нам нужно заменить отказавший диск, возможности это сделать у нас нету, так что обойдемся форматированием диска.
После перезагрузки RAID принял следующий вид:
Внимание! Прочиатйте следующий абзац прежде чем выполнять эти команды! Предварительно, необходимо /dev/sda выбросить из RAID а, это делается так:
Если RAID откажется выбрасывать раздел, то стоит заюзать флаг -f:
Но в моем случае, это не потребовалось, т.к. все упоминания о /dev/sda были выброшены автоматически после перезагрузки.
Форматирование диска для эмуляции "замены"
Теперь посредством fdisk отформатируем /dev/sda:
В итоге получаем следующую картину:
Все, еще раз перезагружаемся для честной симуляции процесса выемки диска из системного блока :)
Копируем таблицы разделов на новый диск
Теперь копируем таблицу разделов с /dev/sdb на /dev/sda:
В итоге получаем следующее:
Ставим GRUB на новый диск
Либо если вариант выше не помог пробуем ставить GRUB вручную:
Сборка RAID
Теперь дело за малым, снова добавить указанные разделы в RAID массив:
Следим за сборкой RAID массива
P.S. вообще, самый правильный путь следующий: сначала необходимо добавить в RAID раздел, на котором располагается /boot, дождаться, пока он соберется, после этого установить grub и уже самым последним шагом - собрать остальные разделы.
Проверим статус RAID массива:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
4200896 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
286728000 blocks [2/2] [UU]
unused devices:
Эмуляция отказа диска
Эмулировать будем отказ диска /dev/sda, это делается следующим образом:
mdadm /dev/md0 --fail /dev/sda1
mdadm /dev/md1 --fail /dev/sda2
mdadm /dev/md2 --fail /dev/sda3
В итоге получаем ситуацию аналогичную выходу из строя диска /dev/sda:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[2](F)
4200896 blocks [2/1] [_U]
md1 : active raid1 sdb2[1] sda2[2](F)
2104448 blocks [2/1] [_U]
md2 : active raid1 sdb3[1] sda3[2](F)
286728000 blocks [2/1] [_U]
unused devices:
После этого попробуем перезагрузиться для чистоты эксперимента (но в случае "вылета" /dev/sda лучше этого не делать, будет не с чего грузиться, если он реально отказал).
Замена диска
Продолжаем, теперь нам нужно заменить отказавший диск, возможности это сделать у нас нету, так что обойдемся форматированием диска.
После перезагрузки RAID принял следующий вид:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1]
4200896 blocks [2/1] [_U]
md1 : active raid1 sdb2[1]
2104448 blocks [2/1] [_U]
md2 : active raid1 sdb3[1]
286728000 blocks [2/1] [_U]
unused devices:
Внимание! Прочиатйте следующий абзац прежде чем выполнять эти команды! Предварительно, необходимо /dev/sda выбросить из RAID а, это делается так:
mdadm /dev/md0 --remove /dev/sda1
mdadm /dev/md1 --remove /dev/sda2
mdadm /dev/md2 --remove /dev/sda3
Если RAID откажется выбрасывать раздел, то стоит заюзать флаг -f:
mdadm /dev/md0 --remove -f /dev/sda1
mdadm /dev/md1 --remove -f /dev/sda2
mdadm /dev/md2 --remove -f /dev/sda3
Но в моем случае, это не потребовалось, т.к. все упоминания о /dev/sda были выброшены автоматически после перезагрузки.
Форматирование диска для эмуляции "замены"
Теперь посредством fdisk отформатируем /dev/sda:
fdisk /dev/sdaи далее последовательно командой d удаляем все разделы
В итоге получаем следующую картину:
fdisk -l /dev/sda
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Все, еще раз перезагружаемся для честной симуляции процесса выемки диска из системного блока :)
Копируем таблицы разделов на новый диск
Теперь копируем таблицу разделов с /dev/sdb на /dev/sda:
sfdisk -d /dev/sdb | sfdisk /dev/sda
В итоге получаем следующее:
fdisk /dev/sda -l
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200966 fd Linux raid autodetect
/dev/sda2 524 785 2104515 fd Linux raid autodetect
/dev/sda3 786 36481 286728120 fd Linux raid autodetect
Ставим GRUB на новый диск
grub-install /dev/sda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(hd0) /dev/sda
(hd1) /dev/sdb
Либо если вариант выше не помог пробуем ставить GRUB вручную:
grub /dev/sda
grub>
grub> root (hd0,0) # указать, где находится каталог /boot/grub на вторичном диске
grub> setup (hd0) # установить GRUB-загрузчик в MBR вторичного диска
grub> quit
Сборка RAID
Теперь дело за малым, снова добавить указанные разделы в RAID массив:
mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md1 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda3
Следим за сборкой RAID массива
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdb1[1]
4200896 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
2104448 blocks [2/1] [_U]
resync=DELAYED
md2 : active raid1 sda3[2] sdb3[1]
286728000 blocks [2/1] [_U]
[>....................] recovery = 0.0% (150592/286728000) finish=95.1min speed=50197K/sec
unused devices:
P.S. вообще, самый правильный путь следующий: сначала необходимо добавить в RAID раздел, на котором располагается /boot, дождаться, пока он соберется, после этого установить grub и уже самым последним шагом - собрать остальные разделы.
С sudo все намного сложнее (ниже рассмотрен случай замены sdb).
ReplyDeletesudo sfdisk -d /dev/sda > partmap
sudo sfdisk /dev/sdb < partmap
Спасибо, то что нужно.
ReplyDelete