Перевел: 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:
Требуется 2 диска, но можно использовать и больше. Нет избыточности, но повышает производительность за счет «страйпов», т.е. распределением данных сразу между всеми дисками в виде небольших блоков. Этот уровень RAID не поможет защитить все ваши данные. Если вы потеряете один диск, все данные будут потеряны.
Требуется 2 диска, но можно использовать и больше. Обладает избыточностью, путем зеркального отражения данных на всех дисках. Этот уровень RAID самый простой способ для защиты данных, но это не самое пространство-эффективный метод. Например, если вы используете 3 диска в RAID 1 массиве, вы получите избыточность, но для использования у вас будет доступного дискового пространства равного только одному диску.
Требуется 3 диска, но можно использовать и больше. Обладает избыточностью за счет хранения данных четности на каждом диске. Именно совокупность одного дискового пространства использующаяся для хранения данных четности, делает этот уровень RAID самым тяжелым для процессора, но также самым пространство-эффективным способом защиты ваших данных. Например, если вы используете 5 дисков для создания массива RAID 5 , вы теряете пространство равное в сумме 1 диску (в отличие от RAID 1), так что в конечном итоге у вас есть пространство, доступное для использования, равное 4 дискам. Хотя этот уровень прост в установке, он не так прост в настройке как RAID 1.
После загрузки с Slackware CD, первый шаг заключается в разбиении жестких дисков на разделы, которые будут использоваться в RAID-массиве (ах).
Я буду полагать, что ваш первый жесткий диск для RAID это /dev/sda. Если это /dev/hda или что-то подобное, настройте нижеследующие команды соответствующим образом.
Вы можете посмотреть свои диски, запустив команду:
# cat /proc/partitions
Пользователям RAID 0 и RAID 5 потребуется отдельный загрузочный раздел, так как BIOS компьютера не поймет блочные устройства. Для простоты, мы сделаем /boot раздел на небольшом RAID 1 (зеркальном) массиве. Это означает, что для RAID 0, попытка загрузки для BIOS не будет иметь никакого значения, а в случае RAID 5, потеря одного диска не приведет к потере /boot раздела.
Я рекомендую, по крайней мере, 50 Мб для этого раздела, чтобы дать себе пространство для игр с несколькими ядрами в будущем, если возникнет такая необходимость. Я, как правило использую 100 Мб, так что я могу поставить все виды загрузочных образов на раздел, например таких как MemTest86.
Идем дальше и создадим маленький загрузочный раздел на /dev/sda, при помощи cfdisk (или fdisk, если вы предпочитаете его).
Каждая установка требует root раздела. Вы, вероятно, захотите чтобы этот раздел занимал большую часть оставшейся части диска. Если вы не используете LVM (в данном документе не рассматривается), не забудьте оставить некоторое пространство, после этого, для раздела подкачки! (см. ниже)
Если вы не будете создавать раздел подкачки, я порекомендовал бы оставить 100Мб неиспользуемого пространства в конце диска. (для объяснения см. раздел «Безопасность»)
Идем дальше, создадим основной раздел на /dev/sda, при помощи cfdisk (или FDISK, если вы предпочитаете его).
Раздел подкачки, это место, где Linux хранит данные, в момент нехватки оперативной памяти. По довольно очевидным причинам, создание его на RAID 0 может быть болезненным (например, если на массиве появятся плохие сектора), так что, как правило, я создаю раздел подкачки на RAID1. Если вы понимаете всю опасность и все еще хотите создать раздел подкачки на RAID 0, только ради производительности, можете пойти на это.
Для раздела подкачки на RAID 1, создайте раздел, с размером по вашему желанию (например, 2 Гб).
Для раздела подкачки на RAID 0 (не рекомендуется), создайте раздел, по размеру эквивалентному желаемому вами размеру, деленному на количество дисков, которое будет в массиве. Например: 2 Гб / 3 диска = 683 Мб размер раздела подкачки на /dev/sda.
Я советую оставить 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
Теперь пришло время для создания актуальных 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
Мы все сделали для создания наших массивов! Ура!
Во-первых, давайте отформатируем наш 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 ядро), то перейдите к следующему разделу; в противном случае выйдите из программы установки и перезагрузитесь.
После завершения установки, официальная 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="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.
Для этого, забудьте об инструкциях, связанных с /dev/md1, который будет нашим swap массивом - создадим разделы подкачки на жестких дисках без создания данного массива.
Во время установки программа распознает разделы подкачки. Убедитесь, что все они выбраны и продолжайте как обычно.
После завершения установки, загрузите систему - ради простоты, мы могли бы закончить, раз система загрузилась.
Когда система загрузится, отредактируйте /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
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/