среда, 3 июня 2009 г.

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

Как я делал софт-raid

RAID бывает следующих типов:

RAID 0 - непрерывное пространство, физически находящееся на нескольких устройствах хранения, минимум два диска.
RAID 1 - зеркалирование, минимум два диска.
RAID 2 - непрерывное пространство из n дисков, хранящее на дополнительных (n-1) дисках информацию для восстановления (коды коррекции), минимум три диска. Не используется.
RAID 3 - непрерывное пространство из n дисков, хранящее на одном дополнительном диске информацию для восстановления, минимум три диска. Не используется.
RAID 4 - аналогичен RAID-3, но работает на уровне блоков, а не байтов, минимум три диска. Не используется.
RAID 5 - непрерывное пространство из n дисков, имеющее объем (n-1)*емкость_диска из-за информации для восстановления, хранящейся частями по всем дискам, минимум три диска.
RAID 0+1 - зеркалирование непрерывных массивов, минимум четыре диска.

Попробуем для начала сделать RAID 0.

Включить поддержку требуемых типов RAID в ядре:
-Device Drivers
-- Multiple devices driver support (RAID and LVM)
<*>   RAID support
[*]     Autodetect RAID arrays during kernel boot (NEW)
< >     Linear (append) mode (NEW)
<*>     RAID-0 (striping) mode
<*>     RAID-1 (mirroring) mode
< >     RAID-10 (mirrored striping) mode (EXPERIMENTAL) (NEW)
< >     RAID-4/RAID-5/RAID-6 mode (NEW)
< >     Multipath I/O support (NEW)
< >     Faulty test module for MD (NEW)
< >   Device mapper support (NEW) 

Установить утилиты для работы с RAID:
emerge mdadm
rc-update mdadm add boot

Подготовить диски:

С помощью fdisk создать на каждом первичный раздел с типом раздела "Linux raid auto"

Теперь собственно создание:
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

Проверить можно с помощью команды
cat /proc/mdstat

Если вывод похож на этот:
Personalities : [raid0] [raid1] [raid10]
md0 : active raid1 sdc1[1] sdb1[0]
20964672 blocks [2/2] [UU]

unused devices: 

значит все хорошо.

Теперь необходимо создать на массиве файловую систему по вкусу:
mkfs.ext3 /dev/md0

Чтобы raid включался при загрузке системы, надо внести его в конфиг mdadm.
Например так:
mdadm --detail --scan >> /etc/mdadm.conf

И внести его в fstab:
/dev/md0  /my_raid ext3 defaults 0 0

Теперь можно смонтировать
mount /my_raid

и проверить объем
df -h /my_raid

Из двух по 20 получился один на 40.

Надоел raid0, попробуем raid1. Из двух по 20 будет один на 20, зато с дублированием всей информации. Убиваем старый массив:
mdadm /dev/md0 --stop

Создали новый:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

А дальше все по тому же алгоритму.

Комментариев нет:

Отправить комментарий