Программный RAID в Linux в бюджетном секторе решений задач хранения
важных данных является более надежным чем модные ныне SATA контроллеры,
и более дешевым чем дорогие SCSI и пр. аппаратные RAID. Таким образом
программный Linux RAID является золотой серединой в решении по хранению
данных в RAID и лучшим по соотношению цена/качество.
Linux RAID vs SATA RAID.
называемым «программно-зависимым». Подробнее: http://linux-ata.org/faq-sata-raid.html
То есть управление данными происходит не на уровне самого «железа», а
на уровне микрокода BIOS через драйвер ОС. От сюда и такие понятия как
«драйвера» на SATA-RAID (без которых RAID видится как отдельные диски),
от сюда и проблемы.
Во-первых это несовместимость — сгорела материнская плата, и ищи такую
же плату целиком (не контроллер), нужна идентичная плата чтобы добыть
свои ценные данные. Хорошо если они еще выпускаются, а если это
произойдет лет через 5-10? Linux RAID лишен этой проблемы, т.к.
находится на таком уровне абстракции, что ваш RAID будет «виден» на
любой материнской плате и на любом дистрибутиве Linux (в разумных
рамках естественно).
Подробнее: 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