headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

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

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

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

Linux RAID vs SATA RAID.

Чем же так плох SATA RAID, который сейчас идет в поставке практически всех современных материнских плат? Да тем что он в большинстве бюджетных решений не является аппаратным RAID-ом, а является так называемым «программно-зависимым».

То есть управление данными происходит не на уровне самого «железа», а на уровне микрокода BIOS через драйвер ОС. От сюда и такие понятия как «драйвера» на SATA-RAID (без которых RAID видится как отдельные диски), от сюда и проблемы.

Во-первых это несовместимость – сгорела материнская плата, и ищи такую же плату целиком (не контроллер), нужна идентичная плата чтобы добыть свои ценные данные. Хорошо если они еще выпускаются, а если это произойдет лет через 5-10? Linux RAID лишен этой проблемы, т.к. находится на таком уровне абстракции, что ваш RAID будет «виден» на любой материнской плате и на любом дистрибутиве Linux (в разумных рамках естественно).

Во-вторых SATA RAID это доверие своих данных какому-то чужому микрокоду, который мало того что не свободен от ошибок, так еще и закрыт. В отличии от Linux RAID, открытого, испытанного уже десятилетиями и вылизанного тысячами программистов, с доступными спецификациями и исходными кодами. Плюс – беспроблемное свободное перемещение дисковых томов на различные материнские платы, долгосрочная поддержка (всем сообществом, а не отдельным конечным вендором), не требует аппаратных апгрейдов, легкость обновления, и многое другое.

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

Оригинал статьи лежит здесь: http://mylinux.nnm.ru/sozdanie_programmnogo_raid_v_linux