Назад | Перейти на главную страницу

Как загрузиться после сбоя RAID (программный RAID)?

Раньше у меня был программный рейд с использованием (mdadm) приводов sda и sdb. sdb не удалось, и единственный способ перезагрузить систему - отключить второй жесткий диск.

Теперь добавил свежие sdb и sdc к моей настройке RAID. sda является самым старым (поэтому, скорее всего, выйдет из строя), и это диск, с которого мы загружаемся (я думаю, как я могу проверить?).

Как я могу гарантировать и протестировать (через конфигурацию GRUB и т. Д.), Что если sda не работает, я все равно смогу загрузить свою машину.

fdisk -l:

Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000080

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       30064   241489048+  fd  Linux raid autodetect
/dev/sda2           30065       30394     2650725    5  Extended
/dev/sda5           30065       30394     2650693+  fd  Linux raid autodetect

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       30064   241489048+  fd  Linux raid autodetect
Partition 1 does not start on physical sector boundary.
/dev/sdb2           30065       30394     2650725    5  Extended
/dev/sdb5           30065       30394     2650693+  fd  Linux raid autodetect
Partition 5 does not start on physical sector boundary.

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1       30064   241489048+  fd  Linux raid autodetect
Partition 1 does not start on physical sector boundary.
/dev/sdc2           30065       30394     2650725    5  Extended
/dev/sdc5           30065       30394     2650693+  fd  Linux raid autodetect
Partition 5 does not start on physical sector boundary.

Disk /dev/md0: 247.3 GB, 247284695040 bytes
2 heads, 4 sectors/track, 60372240 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Alignment offset: 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 2714 MB, 2714238976 bytes
2 heads, 4 sectors/track, 662656 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Alignment offset: 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Это старый каштан. Короткий ответ заключается в том, что «grub-install» часто является неправильным ответом для программного RAID. Вот пример, где у меня есть 3-полосный массив RAID-1. Раздел / boot хранится в / dev / md0. Это устанавливает GRUB на каждый диск, так что в случае отказа одного диска вы можете загрузиться с одного из других дисков.

# grub
grub> find /grub/stage1
 (hd0,0)
 (hd1,0)
 (hd2,0)
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

В будущих версиях GRUB он будет намного умнее, но CentOS 6 / RHEL 6 по-прежнему будет поставляться со старым GRUB.

Для проверки: Измените значение «timeout = 5» в файле grub.conf (в / boot) на что-то вроде timeout = 30. Затем поменяйте местами два диска перед повторным включением системы. Или измените порядок загрузки жестких дисков в BIOS.

(Естественно ... убедитесь, что у вас есть хорошие резервные копии и вы знаете, как вернуть их в правильную конфигурацию. Тестирование этого на одноразовой системе всегда является хорошей идеей.)