Статья про создание 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

Average: 10 (3 votes)

Комментарии

Изображение пользователя Zadov.

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

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

Изображение пользователя BigAndy.

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

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

Изображение пользователя Rico.

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

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