Конфигурирование программного RAID-массива в Fedora при инсталляции системы с использованием Disk Druid

В RAID1 или зеркальной конфигурации используется два жестких диска для полного дублирования . Это обеспечивает аппаратную избыточность — если один диск выходит из строя, то другие могут продолжать работать независимо. Аппаратный RAID обеспечивается контроллером, который представляет для операционной системы один логический диск и управление RAID совершенно прозрачно.
Такие контроллеры RAID производятся Adaptec, LSI MegaRAID и 3ware. Последний предоставляет драйверы для всех операционных систем). Будьте в курсе проблем с производительностью, связанных с программным RAID.
Примечание: большинство встроенных SATA RAID контроллеров не являются реальным аппаратным RAID, но только обеспечивают расширение для операционной системы. Драйвер должен быть установлен для правильного использования таких контроллеров. Так PowerEdge компании Dell 1850 и 1950 имеют MegaRAID, которые требуют драйверов для корректной работы под Linux.
Если вы пытались настроить программный RAID, не следуя описанному ниже, есть хороший шанс, что вы не защищены вообще (вы когда-нибудь тестировали?). Более того, вы, возможно, натыкались на проблемы во время установки, такие как — диск не загружается после установки, получали сообщения об ошибках GRUB во время загрузки, система являлась загрузочной только с основного диска ( но не с дополнительного), RAID не работает, как вы ожидали, и т.д.

Настройка программного RAID-массива во время установки системы с использованием Disk Druid — не является простой процедурой. Этот документ описывает шаги, которые необходимо предпринять для того, чтобы такой конфигурация заработала.Во время написания этого руководства, я использовал два 8GB SATA жестких диска; первый

/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:

<span id="result_box" class="" lang="ru">  </span> <tt><b>sh-3.00#</b> chroot /mnt/sysimage</tt>
Статус RAID сообщается через файл /proc/mdstat. Давайте посмотрим на его и увидим, как наш RAID работает:
<tt>[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]</tt>
Если вы видите подобные результаты, то мы имеем правильную конфигурацию RAID . [UU] означает, что оба жесткие диски запущены. Но, хотя на рейд сконфигурирован, он не работает правильно, так как не установлен как «горячий»(«hot»). Выполните следующую команду(«hotadd») чтобы перестроить массив:
<span id="result_box" class="" lang="ru"><tt>[root@raidtest ~]# mdadm /dev/md0 --add /dev/sda1
 [root@raidtest ~]# mdadm /dev/md1 --add /dev/sda3  </tt></span>
Во время перестроения вы можете запустить cat /proc/mdstat, чтобы проверить текущий прогресс и статус. Этот процесс может занять некоторое время в зависимости от размеров разделов.
Важно: Подождите, пока процесс завершится, прежде чем вы перейдёте к следующему шагу.

3. Настройка GRUB


Первый диск (на моей системе это
/dev/sda) еще не стал загрузочным. В следующих действиях мы завершаем установку загрузчика GRUB на обоих дисках и устанавливаем /boot как загрузочный.
Продолжаем работу в командной строке режима восстановления, и загружаем
оболочку GRUB :

<span id="result_box" class="" lang="ru"><span class=""><tt>sh-3.00# grub</tt></span></span>
В оболочке GRUB введите следующие команды, чтобы повторно установить загрузчик на оба диска, когда (не если когда!), каждый из дисков будет повреждён, ваша система будет по-прежнему загружаться. Вам возможно, потребуется заменить расположение жесткого диска, чтобы соответствовать конфигурации системы:
<span id="result_box" class="" lang="ru"><span class="hps"><tt>grub&gt; device (hd0) /dev/sda
 grub&gt; root (hd0,0)
 grub&gt; setup (hd0)
 
 grub&gt; device (hd1) /dev/sdb
 grub&gt; root (hd1,0)
 grub&gt; setup (hd1)</tt></span></span>
Выйти и загрузиться с жесткого диска. Система должна загрузиться. Не пропустите этап тестирования, чтобы убедиться, что все ДЕЙСТВИТЕЛЬНО работает должным образом.

 

4. Тест


Лучший способ проверить состоит в том, чтобы физически отключить каждый диск, и посмотреть, загрузится ли система с другого подключенного диска (убедитесь, что вы выключили систему, прежде чем отсоединять диск).
Важно: Тестирование вызывает
разрушение (degraded) вашего RAID. Это означает, что после того, как вы заново подключили диск, вы должны hotadd диск обратно в массив с помощью команды

<tt>mdadm /dev/mdx --add /dev/sdxx</tt><span id="result_box" class="" lang="ru"> 
</span>

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

5. Проверка состояния RAID и мониторинг состояния RAID


Есть несколько способов проверить текущее состояние вашего RAID, но лучше всего использовать команду mdadm —detail. В следующем примере вы можете видеть, что RAID ухудшается (degraded). Только
/dev/sdb1 является активным, а другой /dev/sda1 отсутствует в RAID.

<tt>[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
 </tt><tt>    Number   Major   Minor   RaidDevice State
        0       0        0        -      removed
        1       8       17        1      active sync   /dev/sdb1</tt>

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

<tt>[root@raidtest ~]# tail -n 50 /var/log/messages</tt>
или
<tt>[root@raidtest ~]# dmesg</tt>
И всегда можно проверить содержимое файла /proc/mdstat
<span id="result_box" class="" lang="ru"> </span><span id="result_box" class="" lang="ru"><span class="hps atn"><tt>[root@raidtest ~]# cat /proc/mdstat</tt></span></span>

Мы можем запустить
мониторного демона, который будет отправлять оповещение по электронной почте, когда есть проблема с RAID:
<span id="result_box" class="" lang="ru"><span class="hps atn"><tt>[root@raidtest ~]# mdadm --monitor --scan --mail=you@domain.com delay=3600 --daemonise /dev/md0 /dev/md1</tt></span></span>

Чтобы проверить, что отправка письма работает, добавьте параметр -t в строке выше, и будет отправлено тестовое письмо. Не забывайте убивать тестовый процесс, который вы только что создали. Рекомендуется записать эту строку внутри /etc/rc.local так, что она будет автоматически запущена после загрузки системы.

6. Восстановление после сбоя диска

Когда вы сталкиваетесь с сбоем в RAID, первое, что я хотел бы предложить вам делать — не паниковать! Вы должны все еще быть в состоянии получить доступ к данным и даже загрузиться, но следующее, что вы должны сделать, это сделать резервную копию всех данных. Это случилось со мной однажды, что после сбоя диска, я случайно удалил хороший диск …. К счастью, я не паниковал, и сделал полную резервную копию перед любыми другими действиями.

Итак, после стакана холодной воды и резервного копирования всех данных, необходимо определить неисправный диск, проверив содержимое файла /proc/mdstat. В моем примере ниже вы можете видеть, что /dev/sda3 больше не член RAID, и, очевидно, RAID не работает:

<tt>[root@raidtest ~]<b>#</b> 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]</tt>
/dev/sda - это жесткий диск SATA, подключенный к первому контроллеру SATA. Я физически удалил его из системы и заменил его на новый. Обратите внимание, что /dev/sda1, который находится на том же жестком диске не упал, но когда я заменил неисправный дискмне придется перестроить оба массива.
Когда вы подключаете новый жесткий диск, вам не придется беспокоиться о размере диска — просто убедитесь, что он больше, чем тот, который вы уже установили. Свободное пространство в новом диске не будет членом в RAID.

После замены неисправного диска таблица разделов должна быть создана при помощи fdisk, в точности на основе таблицы разделов хорошего диска. Здесь /dev/sda совершенно новый жесткий диск 250GB.
<tt><b>[root@raidtest ~]#</b> 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
 </tt><tt>Disk /dev/md1 doesn't contain a valid partition table</tt>

Прежде чем продолжить вы уверены, что всё сохранено? Если это так, то запускаем fdisk с новым диском в качестве параметра. Мои вводы выделены. Вы должны будете изменить ввод, чтобы он соответствовал вашей системе.

<tt>[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!
 </tt><tt>Calling ioctl() to re-read partition table.
 Syncing disks.</tt>

Вот объяснение процедуры:

  • Создать 3 основных раздела, используя команду (n) — размеры основаны на информации от хорошего и работающего диска.
  • Установить раздел #1 загрузочным с помощью команды (а) .
  • Измененить id системы разбиения с помощью команды (t) — разделы #1 и #3 типа fd, а раздел # 2 типа 82.
  • Сохранить изменения в таблице разделов, используя команду (w).
Установите загрузчика GRUB на поврежденный диск, как описано на шаге 3 выше. Теперь новый жесткий диск готов участвовать в RAID. Нам просто нужно hotadd его в RAID с помощью команды mdadm /dev/mdx --add /dev/sdxx:
<tt>[root@raidtest ~]# mdadm /dev/md0 --add /dev/sda1
 [root@raidtest ~]# mdadm /dev/md1 --add /dev/sda3 </tt>
и проверьте содержимое файла /proc/mdstat, чтобы убедиться, что все работает правильно.

 

Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91