В статье описываются преимущества програмного решения по созданию бюджетного райд-массива средствами
линукс и объясняется, почему создавать райд массив средствами микронода BIOS небезопасно и просто глупо.
Оригинал статьи лежит здесь: http://mylinux.nnm.ru/sozdanie_programmnogo_raid_v_linux
К сожалению, автор остался неизвестным, а хочется пожать ему руку.
Программный RAID в Linux в бюджетном секторе решений задач хранения важных данных является более надежным, чем модные ныне SATA контроллеры, и более дешевым, чем дорогие SCSI и пр. аппаратные RAID. Таким образом программный Linux RAID является золотой серединой в решении по хранению данных в RAID и лучшим по соотношению цена/качество.
Чем же так плох SATA RAID, который сейчас идет в поставке практически всех современных материнских плат? Да тем что он в большинстве бюджетных решений не является аппаратным RAID-ом, а является так называемым «программно-зависимым». Подробнее: http://linux-ata.org/faq-sata-raid.html
То есть управление данными происходит не на уровне самого «железа», а на уровне микрокода BIOS через драйвер ОС. От сюда и такие понятия, как «драйвера» на SATA-RAID (без которых RAID видится как отдельные диски), от сюда и проблемы.
Во-первых, это несовместимость – сгорела материнская плата, и ищи такую же плату целиком (не контроллер), нужна идентичная плата чтобы добыть свои ценные данные. Хорошо, если они еще выпускаются, а если это произойдет лет через 5-10? Linux RAID лишен этой проблемы, т.к. находится на таком уровне абстракции, что ваш RAID будет «виден» на любой материнской плате и на любом дистрибутиве Linux (в разумных рамках, естественно).
Во-вторых, SATA RAID - это доверие своих данных какому-то чужому микрокоду, который мало того что не свободен от ошибок, так еще и закрыт. В отличии от Linux RAID, открытого, испытанного уже десятилетиями и вылизанного тысячами программистов, с доступными спецификациями и исходными кодами. Плюс – беспроблемное свободное перемещение дисковых томов на различные материнские платы, долгосрочная поддержка (всем сообществом, а не отдельным конечным вендором), не требует аппаратных апгрейдов, легкость обновления, и многое другое. Подробнее: http://linux.yyz.us/why-software-raid.html
Тут в плане быстродействия, конечно же, выиграет аппаратный RAID. Минусы опять же – если летит контроллер, то нужен именно такой же, на котором стояли жесткие диски. Второй минус для бюджетных решений – высокая цена хорошего аппаратного RAID.
Итак, мы выбрали Linux Software RAID в качестве решения для хранения данных. Теперь опишем пример создания RAID с «зеркалированием» (mirror) на программном Linux RAID-е.
Мы имеем 2 жестких диска, которые будут у нас представлять RAID1 с зеркалированием данных. Создаем на этих дисках разделы, к примеру, sdb1 и sdc1 одинакового размера под будущий RAID.
Для этих целей можно использовать, к примеру, утилиты fdisk или cfdisk. Выставляем типы этих партиций как FD (Linux raid autodetection)
Создаем RAID1 из этих разделов:
mdadm --create /dev/md0 --verbose -a -l 1 -n 2 /dev/sdb1 /dev/sdc1
Для этого нам как видно понадобилась утилита mdadm, подробнее о параметрах можно прочесть в справке по этой утилите. В данной команде -l 1 это тип RAID ( RAID1 зеркало), -n 2 – количество дисков в массиве.
Посмотреть детали о только что созданном RAID можно командой:
mdadm --detail /dev/md0
Далее можно записать такую информацию о RAID в файл /etc/raidtab:
raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 device /dev/sdb1 raid-disk 0 device /dev/sdc1 raid-disk 1
(просмотрите его перед этим, возможно он уже создался таким).
Сконфигурировать mdadm для дальнейшей работы можно так:
mdadm -D -s >> /etc/mdadm.conf
Теперь поиск и создание устройства RAID (/dev/md0) можно будет производить по командам:
cd /dev ./MAKEDEV md ls -l md* mkraid /dev/md0
Но как правило этого не требуется, система сама находит и распознает программный Linux RAID.
ВНИМАНИЕ! Убедитесь что у вас в ядре включена поддержка RAID (Multiple devices driver support (RAID and LVM)) !
RAID готов
Все. На этом в принципе создание RAID завершено. Далее можно уже работать с RAID и создавать партиции на нем. Ниже приведен пример использования LVM2 на RAID, т.к. Работа с LVM, на мой взгляд, это наиболее гибкий инструмент для работы с партициями, но об этом в другой статье. В принципе, т.к. мы уже находимся на одном уровне абстракций (программный RAID), то с LVM можно и не связываться, но это на ваш вкус.
Партиция под LVM
Подготавливаем партицию под LVM2 из RAID массива. Для этого используем утилиты из пакета lvm2:
pvcreate /dev/md0
Группа томов
Создаем группу разделов и даем ей имя к примеру vg (от volume group).
vgcreate vg /dev/md0
Логические тома
Создаем логические тома:
lvcreate -L2G -nhome vg lvcreate -L6G -nusr vg
и так далее для opt, var и пр. (см. документацию к LVM)
Активируем партиции:
vgscan vgchange -ay vgmknodes
Создаем на наших логических LVM-партициях (группа vg в /dev/vg/) файловые системы:
mkreiserfs /dev/vg/home mkreiserfs /dev/vg/usr
и так далее.
Все.
Все. Теперь у вас /dev/vg/home уже LVM-том с файловой системой raiserfs находящийся на RAID1 (зеркало).
Если вы к примеру загрузились с LiveCD и вам надо подключить ваш рейд, а система сама его не нашла, это можно сделать как показано в примере ниже:
mknod /dev/md1 b 9 1 mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
Комментарии
Re: Статья про создание raid-массива на системах LINUX.
Статья, конечно, The best. Но вот никто не смог мне внятно объяснить, что будет, если данные на основном диске полетят (сотрутся), то по идее, на втором зеркальном они тоже накроются? Ведь обн обязан продублировать данные на основном диске, или как?
Re: Статья про создание raid-массива на системах LINUX.
Смотря как сотрутся. Если просто полетит сектор, то в зависимоси от уровня райд или мигрирует, или будет браться из избыточных источников. Вообще вопрос показывает полное отсутсвтие понятие о принципах функционирования RAID разных уровней.
Re: Статья про создание raid-массива на системах LINUX.
хм... я так понимаю выше указанные дествия производили в уже установленной системе - просто подключили еще 2 HDD и сделали из них RAID-1?
А вот как сделать RAID-1, при установке ОС и если всего 2 SATA диска (одинаковые)?
Re: Статья про создание raid-массива на системах LINUX.
Rico, на сколько мне известно так сделать нельзя.
Альтернатива - сделать массив силами материнской платы (в случае с платформой intel нужен северный мост ICHxR), а уже на него ставить ось.
Re: Статья про создание raid-массива на системах LINUX.
Вот удивительно: как читаем статью?
Re: Статья про создание ...
Вопрос резонный и корректный: один пишет кк создать, другой думает как ему сделать то, что ему нужно.
По идее /boot раздел, нужно оставить на ext2 размером 250Мб, так как это делается при установке загрузочного диска на шифрованных LVM а 2 раздела (скажем, sda5 и sdb5) остальных на двух дисках сшить в райд с любого Live-CD. Снова запустить установщик DEBIAN, он видит райд сразу и выставить вручную разделы LVM и далее пройти установкудо записи GRUB. Мини-ядро в /boot будет содержать при этом всё необходимое.
Сложнее с загрузкой с райда с LVM на шифрованном разделе, какой день бьюсь, а не зацепить....
Re: Статья про создание ...
А как же иначе?
RAID-массив (первого уровня - зеркало) защищает только от поломки диска, а от потери данных , ошибок драйвера файловой системы или от rm -rf / защитит только backup!!!
Re: Статья про создание ...
Ещё до прочтения статьи создал райд-1 создал лвм всё там разместил и бут в том числе, грущится всё ок, единственное не создавайте свап в лвм,работает как то не корректно.