Статья про создание raid-массива на системах LINUX.

Аватар пользователя BigAndy

В статье описываются преимущества програмного решения по созданию бюджетного райд-массива средствами
линукс и объясняется, почему создавать райд массив средствами микронода BIOS небезопасно и просто глупо.

Оригинал статьи лежит здесь: http://mylinux.nnm.ru/sozdanie_programmnogo_raid_v_linux
К сожалению, автор остался неизвестным, а хочется пожать ему руку.


Создание программного RAID в Linux

Программный RAID в Linux в бюджетном секторе решений задач хранения важных данных является более надежным, чем модные ныне SATA контроллеры, и более дешевым, чем дорогие SCSI и пр. аппаратные RAID. Таким образом программный Linux RAID является золотой серединой в решении по хранению данных в RAID и лучшим по соотношению цена/качество.

Linux RAID vs SATA 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

Linux RAID vs SATA и пр. аппаратный RAID

Тут в плане быстродействия, конечно же, выиграет аппаратный RAID. Минусы опять же – если летит контроллер, то нужен именно такой же, на котором стояли жесткие диски. Второй минус для бюджетных решений – высокая цена хорошего аппаратного RAID.

Итак, мы выбрали Linux Software RAID в качестве решения для хранения данных. Теперь опишем пример создания RAID с «зеркалированием» (mirror) на программном Linux RAID-е.

Шаг 1. cfdisk /fdisk

Мы имеем 2 жестких диска, которые будут у нас представлять RAID1 с зеркалированием данных. Создаем на этих дисках разделы, к примеру, sdb1 и sdc1 одинакового размера под будущий RAID.
Для этих целей можно использовать, к примеру, утилиты fdisk или cfdisk. Выставляем типы этих партиций как FD (Linux raid autodetection)

Шаг 2. Создаем RAID1

Создаем RAID1 из этих разделов:

mdadm --create /dev/md0 --verbose -a -l 1 -n 2  /dev/sdb1 /dev/sdc1

Для этого нам как видно понадобилась утилита mdadm, подробнее о параметрах можно прочесть в справке по этой утилите. В данной команде -l 1 это тип RAID ( RAID1 зеркало), -n 2 – количество дисков в массиве.

Шаг 3. Детали о созданном RAID

Посмотреть детали о только что созданном 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

(просмотрите его перед этим, возможно он уже создался таким).

Шаг 4. Конфигурация mdadm

Сконфигурировать 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 можно и не связываться, но это на ваш вкус.

Шаг 5. LVM на RAID

Партиция под 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 (зеркало).


Подключение RAID-а

Если вы к примеру загрузились с LiveCD и вам надо подключить ваш рейд, а система сама его не нашла, это можно сделать как показано в примере ниже:

mknod /dev/md1 b 9 1
mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
Your rating: Нет Average: 9.7 (7 votes)

Комментарии

Аватар пользователя Zadov

Re: Статья про создание raid-массива на системах LINUX.

Статья, конечно, The best. Но вот никто не смог мне внятно объяснить, что будет, если данные на основном диске полетят (сотрутся), то по идее, на втором зеркальном они тоже накроются? Ведь обн обязан продублировать данные на основном диске, или как?

Аватар пользователя BigAndy

Re: Статья про создание raid-массива на системах LINUX.

Смотря как сотрутся. Если просто полетит сектор, то в зависимоси от уровня райд или мигрирует, или будет браться из избыточных источников. Вообще вопрос показывает полное отсутсвтие понятие о принципах функционирования RAID разных уровней.

Аватар пользователя Rico

Re: Статья про создание raid-массива на системах LINUX.

хм... я так понимаю выше указанные дествия производили в уже установленной системе - просто подключили еще 2 HDD и сделали из них RAID-1?
А вот как сделать RAID-1, при установке ОС и если всего 2 SATA диска (одинаковые)?

Аватар пользователя Артем

Re: Статья про создание raid-массива на системах LINUX.

Rico, на сколько мне известно так сделать нельзя.
Альтернатива - сделать массив силами материнской платы (в случае с платформой intel нужен северный мост ICHxR), а уже на него ставить ось.

Аватар пользователя Гость

Re: Статья про создание raid-массива на системах LINUX.

Rico писал(а):
хм... я так понимаю выше указанные дествия производили в уже установленной системе - просто подключили еще 2 HDD и сделали из них RAID-1?
А вот как сделать RAID-1, при установке ОС и если всего 2 SATA диска (одинаковые)?

Вот удивительно: как читаем статью?

Аватар пользователя mechnik

Re: Статья про создание ...

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

По идее /boot раздел, нужно оставить на ext2 размером 250Мб, так как это делается при установке загрузочного диска на шифрованных LVM а 2 раздела (скажем, sda5 и sdb5) остальных на двух дисках сшить в райд с любого Live-CD. Снова запустить установщик DEBIAN, он видит райд сразу и выставить вручную разделы LVM и далее пройти установкудо записи GRUB. Мини-ядро в /boot будет содержать при этом всё необходимое.

Сложнее с загрузкой с райда с LVM на шифрованном разделе, какой день бьюсь, а не зацепить.... Грустный

Аватар пользователя Andrey-a2l

Re: Статья про создание ...

Цитата:
Статья, конечно, The best. Но вот никто не смог мне внятно объяснить, что будет, если данные на основном диске полетят (сотрутся), то по идее, на втором зеркальном они тоже накроются? Ведь обн обязан продублировать данные на основном диске, или как?

А как же иначе?
RAID-массив (первого уровня - зеркало) защищает только от поломки диска, а от потери данных , ошибок драйвера файловой системы или от rm -rf / защитит только backup!!!

Аватар пользователя Ruslan_8888

Re: Статья про создание ...

Ещё до прочтения статьи создал райд-1 создал лвм всё там разместил и бут в том числе, грущится всё ок, единственное не создавайте свап в лвм,работает как то не корректно.

RSS-материал