Все ленты — последние статьи

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

  Программный 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