Програмный RAID-массив
RAID массивы позволяют с помощью нескольких винчестеров создать систему хранения данных, которая будет обладать нужной степенью отказоустойчивости. Например, в случае массива RAID-5 ваши данные останутся в целости при сгорании одного из винчестеров, RAID-6 позволяет обеспечить гарантированное сохранение данных при вылете уже двух винчестеров. Существуют три основных возможности: аппаратный RAID-массив, аппаратно-программный RAID-массив и программный RAID-массив. Первые два способа требуют наличия достаточно дорогих RAID-контроллеров, не всегда это возможно. Здесь описывается процесс создания программного RAID-массива.
Кратко о типах RAID-массивов:
RAID0 — распределение блоков на нескольких физических дисках для повышения скоростей записи и чтения, но без обеспечения отказоустойчивости;
RAID1 — зеркалирование, т.е. запись одних и тех же данных одновременно на несколько дисков, что обеспечивает отказоустойчивость при выходе из строя любого количества дисков, пока остаётся хотябы один работоспособный;
RAID2 - диски делятся на две группы — для данных и для кодов коррекции ошибок, причем если данные хранятся на n дисках, то для хранения кодов коррекции необходимо n − 1 дисков.
RAID3 - из n дисков данные разбиваются на куски размером 1 байт и распределяются по n − 1 дискам. Ещё один диск используется для хранения блоков чётности.
RAID4 — RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты;
RAID5 — массив с обеспечением отказоустойчивости за счет минимальной избыточности (требуется минимум три диска). RAID5 получил широкое распространение, в первую очередь, благодаря своей экономичности. Объем дискового массива RAID5 рассчитывается по формуле (n-1)*hddsize, где n — число дисков в массиве, а hddsize — размер наименьшего диска. Например, для массива из 4-х дисков по 80 гигабайт общий объем будет (4 — 1) * 80 = 240 гигабайт.
RAID6 — похож на RAID 5, но имеет более высокую степень надежности — под контрольные суммы выделяется емкость 2-х дисков, рассчитываются 2 суммы по разным алгоритмам;
В примере будет использоваться raid1, нам понадобится два раздела одинакового обьема (работать с разделами в линукс можно при помощи программы fdisk, есть
статья ). В принципе необязательно использовать разделы на двух разных дисках, можно сделать два раздела на одном hdd, но всеже это плохая идея. Имеем два диска:
/dev/sdb, /dev/sdd с созданными на них разделами одинакового размера.
Для начала нужно подготовить разделы, которые вы хотите включить в RAID, присвоив им тип
fd (Linux RAID Autodetect).
sudo fdisk /dev/sdbp # просмотр существующих разделов на этом диске
t # смена типа раздела
1 # выбираем нужный номер раздела
fd # выбираем тип fd, все возможные варианты можно посмотреть, введя "L"
w # сохраняем изменения
sudo fdisk /dev/sddp # просмотр существующих разделов на этом диске
t # смена типа раздела
1 # выбираем нужный номер раздела
fd # выбираем тип fd, все возможные варианты можно посмотреть, введя "L"
w # сохраняем изменения
Далее ставим программу для создания raid-массивов:
sudo apt-get install mdadm (Не знаю, так и должно быть или нет, но при ее установке зачем то поставился почтовый сервер postfix, какая связь между ними - для меня загадка)
Создаем raid-массив командой:
sudo mdadm --create --auto=md --verbose /dev/md/md404 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdd1 где
/dev/md/md404 - имя создаваемого программой устройства, можно обозвать как удобней.
Смотрим активен ли созданный рейд:
cat /proc/mdstatВидим что рейд активен и автоматом запустилась синхронизация дисков. Необходимо дождаться окончания, у меня диски 1,5TB синхронизировались около трех часов.
Затем форматируем:
sudo mkfs.ext4 /dev/md/md404 Монтируем тоже аналогично простому разделу:
sudo mount /dev/md/md404 /mnt/md404 Теперь что бы после перезагрузки райд по прежнему был, нужно узнать его UUID командой:
mdadm --detail /dev/md/md404 И в /mdadm/mdadm.conf его добавляем, если это первый рейд на вашем компе, файл должен выглядеть примерно так:
# mdadm.conf## Please refer to mdadm.conf(5) for information about this file.# # by default, scan all partitions (/proc/partitions) for MD superblocks.# alternatively, specify devices to scan, using wildcards if desired.DEVICE partitions # auto-create devices with Debian standard permissionsCREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local systemHOMEHOST <system> # instruct the monitoring daemon where to send mail alertsMAILADDR root # definitions of existing MD arraysARRAY /dev/md/md404 auto=md level=raid1 UUID=8118ce89:44991c23:27495b3c:90267476# This file was auto-generated on Fri, 15 Oct 2010 10:04:02 +0400# by mkconf $Id$ RAID-массив создан. Перезагружаемся и проверяем, все ли в порядке:
cat /proc/mdstat Для автоматического монтирования рейда нужно добавить соответствующую запись в /etc/fstab .
Состояние всех компонент массива смотрим так:
sudo mdadm -E /dev/sdb1 sudo mdadm -E /dev/sdd1 Для остановки массива:
sudo mdadm -S /dev/md/md404 И очищаем суперблоки RAID на разделах, из которых собран массив, после его остановки:
sudo mdadm --zero-superblock /dev/sdb1 sudo mdadm --zero-superblock /dev/sdd1
Oct. 4, 2010