среда, 25 мая 2011 г.

RAID на ubuntu

Так получилось, что пока стоит вопрос об использовании сетевого хранилища. C невысокой стоимостью, и надежностью.
Поискав в интернете поискав, решил предложить (своему шефу на работе) использовать NAS, благо на рынке их много (QNAP, Synelogy, Dlink, Buffalo и т.д.) но стоимость высока, да и не все емкости поддерживаются, ограничение на количество винтов ...
Попробовать использовать RAID контроллеры (аппаратный RAID), SATA в основном поддерживают RAID0,1,5. Хотя сейчас уже более новые RAID есть ...
Соответственно было предложено использовать программный RAID, на базе Ubuntu. Сказано - сделано.
Что использовалось:
virtualbox
ubuntu server 11.04
HDD - 10 Gb - 5 штук
HDD - 20 Gb - 1 штука
RAID 6
Т.к. для RAID6 минимум нужно 4 диска, было решено использовать 5 дисков.
Для начала ставим madm

sudo aptitude install mdadm

затем нам необходимо знать, какие диски будут добавляться в RAID

sudo fdisk -l



Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sdf: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdf doesn't contain a valid partition table

Disk /dev/sdg: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdg doesn't contain a valid partition table

Disk /dev/sde: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sde doesn't contain a valid partition table



mdadm --create --verbose /dev/md0 --level=6 --raid-devices=5  /dev/sdb /dev/sdd  /dev/sdf  /dev/sdg /dev/sde


Убедительная просьба, запомнить порядок перечисления жестких дисков! Это будет необходимо в дальнейшем (добавление/извлечение дисков из массива)
Смотрим готовность массива

cat /proc/mdstat



Вот как выглядит готовый массив

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sde[4] sdg[3] sdf[2] sdd[1] sdb[0]
      31452672 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]




Дальше нужно отформатировать, выбирайте файловую систему.


Для ubuntu сервера лично выбрал XFS файловую систему, каждый выбирает сам. В помощь, можете почитать тут.


Если будет использоваться как файл сервер для windows систем, тогда не обойтись без NTFS.


Создание файловой системы завершено. Теперь нужно создать файл конфигурации нашего RAID массива. Система сама не запоминает какие RAID массивы ей нужно создать и какие компоненты в них входят. Эта информация находится в файле конфигурации mdadm.conf. Параметры, которые следует добавить в этот файл, можно получить при помощи команды mdadm --detail --scan --verbose.

 mdadm --detail --scan --verbose
ARRAY /dev/md0 level=raid6 num-devices=5 metadata=1.2 name=ubuntu:0 UUID=c9d0d672:352fac5c:3776628f:357edd17
   devices=/dev/sdb,/dev/sdd,/dev/sdf,/dev/sdg,/dev/sde

Команда не добавляет параметры в файл конфигурации, а только выдает, что нужно добавить в него. Полученные параметры можно внести в конфигурационный файл вручную или воспользоваться перенаправлением.

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Далее редактируем файл /etc/fstab.
nano /etc/fstab


/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
/dev/sdb /media/repo auto users,noauto,rw 0 0
/dev/md0        /media/raid        ext3    defaults        0       0
Вот и все ...
Программный RAID проще в переносе на другую железку, в случае с аппаратным, проблема в RAID контроллере. Искать такую же плату ... что не очень удачно спустя 3-4 года ...



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

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