Содержание

Перевел: Graf
Дата перевода: октябрь 2016 г.
Оригинал: http://slackware.osuosl.org/slackware-14.2/README_RAID.TXT

Slackware RAID HOWTO


Версия 1.02 2013/03/09
от Amritpal Bath amrit@slackware.com

Изменения

1.02 (2013/05/16):
- Различные исправления
1.01 (2011/03/15):
- Добавлено Robby Workman –metadata редактор типов James Davies-а.
1.00 (2008/04/09):
- Первый выпуск.

Введение

Этот документ объясняет, как установить Slackware 13.0 (или выше) на программный RAID. Документ предназначен только для программного рейда. Если вы используете RAID карту, или RAID-функциональность, которая поставляется вместе с материнской платой, то этот документ не для вас.

Для использования этого документа, у вашего компьютера должно быть два или более пустых жестких диска. Хотя и не исключено создание RAID массивов на дисках, которые уже содержат данные, что чревато ошибками, поэтому и не рассматривается в этом документе.

Предупреждения

Если вы будете выполнять следующие инструкции на жестких дисках с данными ,то ПОТЕРЯЕТЕ ВСЕ СВОИ ДАННЫЕ.

Если вы будете выполнять эти операции на жестких дисках, которые содержат данные любого значения, вы ДОЛЖНЫ СДЕЛАТЬ РЕЗЕРВНУЮ КОПИЮ ЭТИХ ДАННЫХ. Описанная ниже процедура уничтожит все данные на жестких дисках, так что потом можно будет восстановить их только из резервных копий.

И еще раз:

Сделайте резервную копию данных, иначе вы их потеряете!

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

И так, шоу начинается… :-)

Планирование

Первый шаг заключается в определении уровня RAID который вы будете использовать.

Мы рекомендуем вам ознакомиться с основными понятиями RAID, такими как различные уровни RAID, которые вам доступны. Вы можете прочитать об этом в разных местах - обратитесь в ваш любимый поисковик, со словами «raid levels», или см. в разделе «Ссылки».

Вот краткий обзор наиболее распространенных уровней RAID:

RAID 0

Требуется 2 диска, но можно использовать и больше. Нет избыточности, но повышает производительность за счет «страйпов», т.е. распределением данных сразу между всеми дисками в виде небольших блоков. Этот уровень RAID не поможет защитить все ваши данные. Если вы потеряете один диск, все данные будут потеряны.

RAID 1

Требуется 2 диска, но можно использовать и больше. Обладает избыточностью, путем зеркального отражения данных на всех дисках. Этот уровень RAID самый простой способ для защиты данных, но это не самое пространство-эффективный метод. Например, если вы используете 3 диска в RAID 1 массиве, вы получите избыточность, но для использования у вас будет доступного дискового пространства равного только одному диску.

RAID 5

Требуется 3 диска, но можно использовать и больше. Обладает избыточностью за счет хранения данных четности на каждом диске. Именно совокупность одного дискового пространства использующаяся для хранения данных четности, делает этот уровень RAID самым тяжелым для процессора, но также самым пространство-эффективным способом защиты ваших данных. Например, если вы используете 5 дисков для создания массива RAID 5 , вы теряете пространство равное в сумме 1 диску (в отличие от RAID 1), так что в конечном итоге у вас есть пространство, доступное для использования, равное 4 дискам. Хотя этот уровень прост в установке, он не так прост в настройке как RAID 1.

Установка

Разделы жестких дисков

После загрузки с Slackware CD, первый шаг заключается в разбиении жестких дисков на разделы, которые будут использоваться в RAID-массиве (ах).

Я буду полагать, что ваш первый жесткий диск для RAID это /dev/sda. Если это /dev/hda или что-то подобное, настройте нижеследующие команды соответствующим образом.

Вы можете посмотреть свои диски, запустив команду:

# cat /proc/partitions

/boot

Пользователям RAID 0 и RAID 5 потребуется отдельный загрузочный раздел, так как BIOS компьютера не поймет блочные устройства. Для простоты, мы сделаем /boot раздел на небольшом RAID 1 (зеркальном) массиве. Это означает, что для RAID 0, попытка загрузки для BIOS не будет иметь никакого значения, а в случае RAID 5, потеря одного диска не приведет к потере /boot раздела.

Я рекомендую, по крайней мере, 50 Мб для этого раздела, чтобы дать себе пространство для игр с несколькими ядрами в будущем, если возникнет такая необходимость. Я, как правило использую 100 Мб, так что я могу поставить все виды загрузочных образов на раздел, например таких как MemTest86.

Идем дальше и создадим маленький загрузочный раздел на /dev/sda, при помощи cfdisk (или fdisk, если вы предпочитаете его).

Убедитесь, что тип раздела Linux RAID Autodetect (тип fd).

/ (root)

Каждая установка требует root раздела. :-) Вы, вероятно, захотите чтобы этот раздел занимал большую часть оставшейся части диска. Если вы не используете LVM (в данном документе не рассматривается), не забудьте оставить некоторое пространство, после этого, для раздела подкачки! (см. ниже)

Если вы не будете создавать раздел подкачки, я порекомендовал бы оставить 100Мб неиспользуемого пространства в конце диска. (для объяснения см. раздел «Безопасность»)

Идем дальше, создадим основной раздел на /dev/sda, при помощи cfdisk (или FDISK, если вы предпочитаете его).

Убедитесь, что тип раздела Linux RAID Autodetect (тип fd).

swap

Раздел подкачки, это место, где Linux хранит данные, в момент нехватки оперативной памяти. По довольно очевидным причинам, создание его на RAID 0 может быть болезненным (например, если на массиве появятся плохие сектора), так что, как правило, я создаю раздел подкачки на RAID1. Если вы понимаете всю опасность и все еще хотите создать раздел подкачки на RAID 0, только ради производительности, можете пойти на это.

Для раздела подкачки на RAID 1, создайте раздел, с размером по вашему желанию (например, 2 Гб).

Для раздела подкачки на RAID 0 (не рекомендуется), создайте раздел, по размеру эквивалентному желаемому вами размеру, деленному на количество дисков, которое будет в массиве. Например: 2 Гб / 3 диска = 683 Мб размер раздела подкачки на /dev/sda.

Убедитесь, что тип раздела Linux RAID Autodetect (тип fd).

Я советую оставить 100 МБ свободного пространства в конце диска. (более подробно смотрите подпункт «безопасность» ниже). См. также:. Приложение А - Разметка подкачки без RAID 0

безопасность!

Я настоятельно рекомендую оставить 100Мб в конце не размеченной области каждого диска, которые будет использоваться в RAID-массиве(ах).

В случае, если вам нужно будет заменить один из дисков в массиве, нет никакой гарантии, что новый диск будет точно такого же размера, как диск, который вы заменяете. Например, даже если оба диска по 750 Гб, они могут быть разных версий или разных производителей, из-за чего может быть разница в количестве нескольких мегабайт.

Этого, однако, достаточно, чтобы забросить планы по замене диска - вы не можете заменить поврежденный RAID диск на диск меньших размеров, по очевидным причинам. Только наличие этого небольшого буфера в 100Мб может спасти ваш «бекон».

Копирование и обзор разделов

Теперь, когда /dev/sda разбит так как нам необходимо, скопируем разделы на все другие диски, которые будут использоваться в RAID массивах.

Самый простой способ сделать это:

sfdisk -d /dev/sda | sfdisk --Linux /dev/sdb

Это уничтожит все разделы на /dev/sdb, и повторит установку разделов на /dev/sda.

После этого, разделы должны выглядеть примерно так:

 - RAID 0:
     /dev/sda1  50MB      /dev/sdb1  50MB   
     /dev/sda2  100GB     /dev/sdb2  100GB  
     /dev/sda3  2GB       /dev/sdb3  2GB    
 
 - RAID 1:
     /dev/sda1  100GB     /dev/sdb1  100GB  
     /dev/sda2  2GB       /dev/sdb2  2GB    
 
 - RAID 5:
     /dev/sda1  50MB      /dev/sdb1  50MB     /dev/sdc1  50MB 
     /dev/sda2  100GB     /dev/sdb2  100GB    /dev/sdc2  100GB
     /dev/sda3  2GB       /dev/sdb3  2GB      /dev/sdc3  2GB  
Все типы разделов должны быть «Linux RAID Autodetect» (тип fd).

Создание RAID-массивов

Теперь пришло время для создания актуальных RAID массивов на созданные разделы.

Каждый из параметров RAID команд, указывается для определенной цели:

Начнем с создания RAID массива для вашей корневой файловой системы.

 - RAID 0:
     mdadm --create /dev/md0 --name=0 --level 0 --raid-devices 2 \
       /dev/sda2 /dev/sdb2
 
 - RAID 1:
     mdadm --create /dev/md0 --level 1 --raid-devices 2 \
       /dev/sda1 /dev/sdb1 --metadata=0.90
 
 - RAID 5:
     mdadm --create /dev/md0 --name=0 --level 5 --raid-devices 3 \
       /dev/sda2 /dev/sdb2 /dev/sdc2

Далее, давайте создадим массив для раздела подкачки. Независимо от уровня RAID вашей корневой файловой системы, это будет RAID 1, но, учитывая наш макет разделов, каждая команда все равно будет немного отличаться.

 - RAID 0:
     mdadm --create /dev/md1 --name=1 --level 1 --raid-devices 2 \
       /dev/sda3 /dev/sdb3
 
 - RAID 1:
     mdadm --create /dev/md1 --name=1 --level 1 --raid-devices 2 \
       /dev/sda2 /dev/sdb2
 
 - RAID 5:
     mdadm --create /dev/md1 --name=1 --level 1 --raid-devices 3 \
       /dev/sda3 /dev/sdb3 /dev/sdc3

В конце, пользователям RAID0 и RAID5 нужно будет создать свой ​​/boot массив. Пользователям RAID1 этого не нужно делать.

 - RAID 0:
     mdadm --create /dev/md2 --name=2 --level 1 --raid-devices 2 \
       /dev/sda1 /dev/sdb1 --metadata=0.90
 
 - RAID 5:
     mdadm --create /dev/md2 --name=2 --level 1 --raid-devices 3 \
       /dev/sda1 /dev/sdb1 /dev/sdc1 --metadata=0.90

Мы все сделали для создания наших массивов! Ура!

Запускаем установку Slackware

Во-первых, давайте отформатируем наш swap массив, чтобы программа установки распознала его:

 mkswap /dev/md1

Теперь запустим «setup», как обычно.

Когда, во время установки, появится выбор разделов подкачки, будет показан и /dev/md1. Выберите его и продолжайте.

Когда спросят про целевой раздел, выберите корневой массив (/dev/md0).

Далее выберите метод форматирования и файловую систему.

Пользователи RAID0 и RAID5 также должны установить /boot. Отвечая на вопрос о создании дополнительных разделов, выберите /dev/md2. А когда спросят о точке монтирования, введите «/boot».

После этого, продолжайте установку как обычно.

Для конфигурации LILO:

Вы можете увидеть несколько предупреждений. Это нормально.

Последние штрихи

После выхода из программы установки, мы должны еще кое-что настроить.

Сначала переключимся на каталог, в который была произведена инсталляция:

# chroot /mnt

Давайте удостоверимся, что LILO загружается с RAID массива.
Используя предпочитаемый вами редактор (vim/nano/pico), отредактируйте /etc/lilo.conf:

 raid-extra-boot = mbr-only
 boot = <что-то>
 пользователи RAID0 и RAID5 измените на:
 boot = /dev/md2
 пользователи RAID1 измените на:
 boot = /dev/md0

Теперь создадим персональный /etc/mdadm.conf для вашей системы:

- mdadm -Es > /etc/mdadm.conf

Вы должны получить что-то вроде этого (Обратите внимание, что этот вывод не соответствует инструкции выше):

ARRAY /dev/md0 UUID=bb259b84:6bf27834:208cdb8d:9e23b04b
ARRAY /dev/md1  metadata=1.2 UUID=ea798427:4ae79ea8:9e7e263d:5ae8f69e name=slackware:1
ARRAY /dev/md2  metadata=1.2 UUID=4ca90e7a:99de6d09:f1f9ca9d:b2ea6e1b name=slackware:2

Если это делается на живой работающей системе, вы заметите, что массивы созданые metadata 1.2 в /etc/mdadm.conf будут показыватся как /dev/md/$ (например, /dev/md/1) вместо /dev/md1; Это вполне приемлемо и фактически более предпочтительно, так что вы можете продолжить и сейчас же это исправить.

Если вы планируете запустить generic ядро (которое вероятно, необходимо, вы также можете попробовать и huge ядро), то перейдите к следующему разделу; в противном случае выйдите из программы установки и перезагрузитесь.

Использование стандартного (generic) ядра

После завершения установки, официальная Slackware рекомендует перейти на «стандартное» (generic) ядро. Если вы решитесь использовать это ядро, то должны создать initrd. Этот раздел дает краткий пример загрузки RAID системы в таком стиле.

Если вам требуется больше информации о initrd, пожалуйста, прочитайте README.initrd

Как правило, пользователь переключается на стандартное ядро после загрузки системы и выполняет следующее:

 
# cd /boot
# rm vmlinuz System.map config
# ln -s vmlinuz-generic-smp-*     vmlinuz
# ln -s System.map-generic-smp-*  System.map
# ln -s config-generic-smp-*      config

Пока, не запускайте LILO, мы сделаем это чуть позже.

Далее, откройте (или создайте, если не существует) /etc/mkinitrd.conf и добавьте:

  MODULE_LIST="ext4"
  RAID="1"

Это верно, если вы используете файловую систему ext4. Если вы используете другую файловую систему (например ReiserFS или XFS), настройте модуль соответствующим образом . Если вы хотите узнать больше о переменной MODULE_LIST , обратитесь к «man mkinitrd.conf». Кроме того вы может обнаружить, что вспомогательный скрипт /usr/share/mkinitrd/mkinitrd_command_generator.sh также работает хорошо, выполнив это:

/usr/share/mkinitrd/mkinitrd_command_generator.sh > /etc/mkinitrd.conf
Примечание: Если модуль для контроллера жесткого диска не скомпилирован в стандартное ядро​​, вам нужно будет добавить его в переменную MODULE_LIST в mkinitrd.conf. Например, мой контроллер требует модуль mptspi, так что мой /etc/mkinitrd.conf будет выглядеть следующим образом:
MODULE_LIST="ext4:mptspi"
   RAID="1"

Мы почти закончили.

Отредактируйте /etc/lilo.conf, и найдите строку в самом конце:

image = /boot/vmlinuz

Добавьте новую строку после нее:

initrd = /boot/initrd.gz

При этом убедитесь, что вы добавили все необходимые пробелы.

Затем создайте Initrd на основе конфигурационного файла созданного ранее.

# mkinitrd -F

И, наконец, запустите «lilo», чтобы новые настройки вступили в силу, дайте похлопать себя по спине, и перезагрузите систему. :)

Когда всё сделаете, выйдите из программы установки и перезагрузитесь:

  # exit
  # reboot

Вуаля!

Устранение неисправностей

Любая ошибка при наборе, может привести к тому, что система не загрузится, но еще не всё потеряно.Отложите подальше свою пережаренную курицу и чай с лимоном… (прим. Graf: Так же можно трактовать как - «Заканчивайте есть перед компьютером и займитесь делом», в оригинале: «Put the rubber chicken and the lemon away…»)

Загрузившись в Slackware с медиа устройства (например, с DVD), можно очень легко переключиться в установленную систему и сделать ремонт:

Отсканируйте и соберите RAID массивы:

     
# mdadm -Es > /etc/mdadm.conf
# mdadm -As

Примонитруйте корневой раздел:

# mount /dev/md0 /mnt

Переключитесь в установленную систему:

# chroot /mnt

Примонтируйте остальные файловые системы:

# mount /boot (только для пользователей RAID0 и RAID5)
# mount /proc
# mount sys /sys -t sysfs

Теперь вы можете взять свой ​​любимый редактор, настроить конфигурационные файлы, перезапустить mkinitrd/lilo/и т.д., всё что хотите, или сделать что-нибудь еще, чтобы сделать систему вновь загрузочной.

Когда вы закончите вносить изменения, просто перезагрузитесь:

# cd /
# umount boot proc sys
# exit
# reboot

Если у вас возникнут вопросы, которые вы не в состоянии решить, пишите мне на электронную почту. Возможно, я отвечу вам в этом разделе. :-)

Приложения

Приложение А: Разбиение подкачки без RAID 0

Ради «полноты», я должен отметить, что раздел подкачки может быть разбит, для улучшения производительности, и без создания массива RAID 0.

Для этого, забудьте об инструкциях, связанных с /dev/md1, который будет нашим swap массивом - создадим разделы подкачки на жестких дисках без создания данного массива.

При создании разделов подкачки, убедитесь, что тип раздела установлен как Linux Swap (тип 82).

Во время установки программа распознает разделы подкачки. Убедитесь, что все они выбраны и продолжайте как обычно.

После завершения установки, загрузите систему - ради простоты, мы могли бы закончить, раз система загрузилась.

Когда система загрузится, отредактируйте /etc/fstab при помощи вашего любимого редактора. Найдите строки, которые описывают ваши разделы подкачки- это слово «swap» во второй колонке.

Каждая из этих строк содержит слово «default» в четвертом столбце. Просто измените, его на «default,pri=0» в каждой строке.

После сохранения файла, перезагрузитесь или просто запустите:

# swapoff -a
# swapon -a

Чтобы убедиться, что настройка вступила в силу, вы можете запустить:

# swapon -s

Убедитесь, что в столбце Priority стоит 0 для каждого раздела, и на этом мы закончили!

Благодарности/Ссылки

http://www.lascon.co.uk/d008005.htm

http://slackware.com/~mrgoblin/articles/raid1-slackware-12.php

«INSTALLING SLACKWARE LINUX version 8.1 WITH ROOT PARTITION ON A SOFTWARE RAID level 0 DEVICE»
http://slackware.com/~mrgoblin/articles/raid0-slackware-linux.php

http://slackware.com/

Eric Hameleers (alienBOB), Robby Workman, Alan Hicks, Piter Punk, Erik Jan Tromp (alphageek)…

Основной email: amrit@slackware.com
Второй email: amrit@transamrit.net
На некоторых IRC сетях: «amrit» (или некоторые вариации :-) )

http://slackware.com/~amrit/
http://transamrit.net/docs/slackware/