/dev/sda и второй /dev/sdb. BIOS был настроен с отключенным встроенным SATA RAID , и оба диска управлялись непосредственно BIOS. Так операционная система видит два жестких диска.
0. Итак …
Необходимо выполнить следующее, чтобы достичь цели:
- Создание разделов и настройка RAID с помощью Disk Druid
- Построение массивов RAID
- Настройка GRUB
- Тестирование
Дополнительные важные шаги:
- Проверить состояние RAID и установить мониторинг RAID
- Восстановление диска после сбоя (не дай бог)
1. Создание разделов и настройка RAID с помощью Disk Druid
Во время установки Fedora, вам будет предложено автоматическое разбиение с помощью Disk Druid или разбивка на разделы вручную. Независимо от того, что вы выберете, вы должны удалить все существующие разделы и начать с чистых дисков (NB: это, конечно, удалит все ваши данные):
Вы должны создать 3 раздела : /boot, swap и / (root — корень). Наша цель состоит в том, чтобы иметь коренной и /boot разделы на RAID1. Неразумно ставить swap на программный RAID, так как это создаст излишнюю нагрузку.
Важно: раздел /boot должен быть первым на диске, т.е. начаться с цилиндра 1. Кроме того, убедитесь, что вы установили «Force to be a primary partition» для каждого раздела, который вы создаете. Загрузочный раздел (/boot) размером 100MB достаточен для большинства конфигураций.
Давайте начнем с создания раздела /boot (загрузки). Нажмите на кнопку RAID и выберите «Создать программный RAID раздел«(«Create a software RAID partition»):
Для типа файловой системы выберите «Software RAID», выберите первый диск и установите фиксированный размер 100 Мб:
Повторите то же самое для второго диска, в результате чего появятся два программных RAID раздела по 100MB, по одному на каждом диске. Эти разделы готовы для RAID устройства и создания точки монтирования:
Нажмите на кнопку RAID и выберите «Создать RAID устройство«(«Create a RAID device»). Для точки монтирования выберите «/boot«, RAID Level должно быть RAID1 для устройства md0, как показано на следующем рисунке:
Теперь создайте раздел подкачки(swap). Размер раздела подкачки должен, по крайней мере, соответствовать размеру оперативной памяти. swap не должен находиться на программном RAID, так что все что вам нужно сделать, это нажать на New, и создать swap на каждом жестком диске. Результатом будет два раздела подкачки, каждый на отдельном диске:
Теперь, после создания /boot и /swap разделов, необходимо выделить оставшееся свободное пространство как md1 и создать корневой(root) раздел на нем. Вы должны быть уже знакомы с шагами. Окончательные результаты разбиения должны быть похожи на следующий рисунок:
Завершите установку Fedora. После перезагрузки система , вероятно, будет остановлена до загрузки GRUB. Сообщение об ошибке может варьироваться между ошибками в файловой системе, паникой ядра и ошибки GRUB 17.
Не разочаровывайтесь(пока), поскольку есть еще несколько действий, которые необходимо предпринять.
2. Построение массивов RAID
Загрузитесь с первого установочного компакт-диска, но вместо того, чтобы начинать установку, выберите «linux rescue«, чтобы запустить командную строку в режиме восстановления. В командной строке установите новый root и постройте массив RAID:
sh-3.00# chroot /mnt/sysimage
[root@raidtest ~]# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb3[1] sda3[0] 7060480 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 104320 blocks [2/2] [UU]
[root@raidtest ~]# mdadm /dev/md0 --add /dev/sda1
[root@raidtest ~]# mdadm /dev/md1 --add /dev/sda3
Важно: Подождите, пока процесс завершится, прежде чем вы перейдёте к следующему шагу.
3. Настройка GRUB
Первый диск (на моей системе это /dev/sda) еще не стал загрузочным. В следующих действиях мы завершаем установку загрузчика GRUB на обоих дисках и устанавливаем /boot как загрузочный.
Продолжаем работу в командной строке режима восстановления, и загружаем оболочку GRUB :
sh-3.00# grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd1) /dev/sdb
grub> root (hd1,0)
grub> setup (hd1)
4. Тест
Лучший способ проверить состоит в том, чтобы физически отключить каждый диск, и посмотреть, загрузится ли система с другого подключенного диска (убедитесь, что вы выключили систему, прежде чем отсоединять диск).
Важно: Тестирование вызывает разрушение (degraded) вашего RAID. Это означает, что после того, как вы заново подключили диск, вы должны hotadd диск обратно в массив с помощью команды
mdadm /dev/mdx --add /dev/sdxx
Если тест завершен успешно, и ваша система загружается с каждого диска, то вы в основном достигли нужного результата. Хотя я полагаю, что вы будете продолжать следующие процедуры, чтобы узнать больше о более серьезном кризисе (стучу по дереву).
5. Проверка состояния RAID и мониторинг состояния RAID
Есть несколько способов проверить текущее состояние вашего RAID, но лучше всего использовать команду mdadm —detail. В следующем примере вы можете видеть, что RAID ухудшается (degraded). Только /dev/sdb1 является активным, а другой /dev/sda1 отсутствует в RAID.
[root@raidtest ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Sun Jul 22 08:25:21 2007 Raid Level : raid1 Array Size : 104320 (101.88 MiB 106.82 MB) Device Size : 104320 (101.88 MiB 106.82 MB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Wed Aug 1 15:08:24 2007 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : 08ed38e5:7ffca26e:f5ec53fc:e5d1983e Events : 0.1423 Number Major Minor RaidDevice State 0 0 0 - removed 1 8 17 1 active sync /dev/sdb1
Другие способы проверки RAID заключаются в проверке системного журнала:
[root@raidtest ~]# tail -n 50 /var/log/messages
[root@raidtest ~]# dmesg
[root@raidtest ~]# cat /proc/mdstat
Мы можем запустить мониторного демона, который будет отправлять оповещение по электронной почте, когда есть проблема с RAID:
[root@raidtest ~]# mdadm --monitor --scan [email protected] delay=3600 --daemonise /dev/md0 /dev/md1
Чтобы проверить, что отправка письма работает, добавьте параметр -t в строке выше, и будет отправлено тестовое письмо. Не забывайте убивать тестовый процесс, который вы только что создали. Рекомендуется записать эту строку внутри /etc/rc.local так, что она будет автоматически запущена после загрузки системы.
6. Восстановление после сбоя диска
Когда вы сталкиваетесь с сбоем в RAID, первое, что я хотел бы предложить вам делать — не паниковать! Вы должны все еще быть в состоянии получить доступ к данным и даже загрузиться, но следующее, что вы должны сделать, это сделать резервную копию всех данных. Это случилось со мной однажды, что после сбоя диска, я случайно удалил хороший диск …. К счастью, я не паниковал, и сделал полную резервную копию перед любыми другими действиями.
Итак, после стакана холодной воды и резервного копирования всех данных, необходимо определить неисправный диск, проверив содержимое файла /proc/mdstat. В моем примере ниже вы можете видеть, что /dev/sda3 больше не член RAID, и, очевидно, RAID не работает:
[root@raidtest ~]# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb3[1] 7060480 blocks [2/1] [_U] md0 : active raid1 sdb1[1] sda1[0] 104320 blocks [2/2] [UU]
Когда вы подключаете новый жесткий диск, вам не придется беспокоиться о размере диска — просто убедитесь, что он больше, чем тот, который вы уже установили. Свободное пространство в новом диске не будет членом в RAID.
[root@raidtest ~]# fdisk -l Disk /dev/sda: 250.0 GB, 250058268160 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Disk /dev/sdb: 8.0 GB, 8589934592 bytes 255 heads, 63 sectors/track, 1019 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 1 13 104391 fd Linux raid autodetect /dev/sdb2 14 140 1020127+ 82 Linux swap / Solaris /dev/sdb3 141 1019 7060567+ fd Linux raid autodetect Disk /dev/md0: 106 MB, 106823680 bytes 2 heads, 4 sectors/track, 26080 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md0 doesn't contain a valid partition table Disk /dev/md1: 7229 MB, 7229931520 bytes 2 heads, 4 sectors/track, 1765120 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md1 doesn't contain a valid partition table
Прежде чем продолжить — вы уверены, что всё сохранено? Если это так, то запускаем fdisk с новым диском в качестве параметра. Мои вводы выделены. Вы должны будете изменить ввод, чтобы он соответствовал вашей системе.
[root@raidtest ~]# fdisk /dev/sda The number of cylinders for this disk is set to 30401. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-30401, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): 13 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (14-30401, default 14): 14 Last cylinder or +size or +sizeM or +sizeK (14-30401, default 30401): 140 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (141-30401, default 141): 141 Last cylinder or +size or +sizeM or +sizeK (141-30401, default 30401): 1019 Command (m for help): a Partition number (1-4): 1 Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): fd Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris) Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): fd Changed system type of partition 3 to fd (Linux raid autodetect) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Вот объяснение процедуры:
- Создать 3 основных раздела, используя команду (n) — размеры основаны на информации от хорошего и работающего диска.
- Установить раздел #1 загрузочным с помощью команды (а) .
- Измененить id системы разбиения с помощью команды (t) — разделы #1 и #3 типа fd, а раздел # 2 типа 82.
- Сохранить изменения в таблице разделов, используя команду (w).
[root@raidtest ~]# mdadm /dev/md0 --add /dev/sda1 [root@raidtest ~]# mdadm /dev/md1 --add /dev/sda3