nixp.ru v3.0

26 мая 2017,
пятница,
06:47:03 MSK

DevOps с компанией «Флант»
Genie написал 28 марта 2006 года в 22:55 (2482 просмотра) Ведет себя как мужчина; открыл 40 тем в форуме, оставил 4758 комментариев на сайте.

А именно:

  • Adaptec HostRAID ASR


  • Highpoint HPT37X


  • Highpoint HPT45X


  • Intel Software RAID


  • JMicron JMB36x


  • LSI Logic MegaRAID (*)


  • NVidia NForce


  • Promise FastTrack


  • Silicon Image Medley


  • VIA Software RAID

<font color=«blue»>сие посвящается</font>

Качайте исходники или rpm-пакет (ну или сами разбирайтесь)

Примечание: (*) — по большей части это полноценные RAID-контроллеры. но либо есть «упрощённые» модели, либо управление ими легко реализуется, что они оказались в этом списке. более делатльно это можно выяснить из changelog и списка рассылки.

Dmitry Ivanov

LSI Logic MegaRAID за что?

У них моделей в этой линейке до фига. И кое-какие из них ну очень хорошие…

Genie
LSI Logic MegaRAID за что?

видимо, по нескольким причинам:

1) есть модели, которые попадают под определение, вынесенное в заголовок

2) интерфейс документирован достаточно, чтобы его использовать в программе

3) приведённый мной список — это из документа («сие посвящается») как есть

в общем, если есть желание — источники указаны.

ps: но ради точности сделаю поправку… :)

Dmitry.Stolyarov

А ктонибудь пробовал поднимать RAID5 на этом dmraid… В ядре поддержки нет (в device mapper), но есть патчики к ядру :). Очень такие забавные патчики! Во первых сам патч не работает, выдает ошибку. Но это — не проблема, ошибка всего в одном «hunks»… допатчивается ручками. А вот дальше :)!!! Дальше — после включения появившейся опции в ядре dm/RAID5 пробуем компилить и получаем следующее:

drivers/md/dm-mem-cache.o: In function `pl_elem’:

dm-mem-cache.c:(.text+0×0): multiple definition of `pl_elem'

drivers/md/dm-raid45.o:dm-raid4-5.c:(.text+0×0): first defined here

make[2]: * [drivers/md/built-in.o] Error 1

make[1]: * [drivers/md] Error 2

make: * [drivers] Error 2

Со злости попробовал на 2.6.15, 2.6.16, 2.6.17… с разными версиями патчей, все одно и то же… В итоге — отправил письмецо разработчику, теперь — жду ответа. (Ядра у меня правда пропатчены linux-vserver из gentoo portage, но проблем с этим не может быть — проверял на наличие пересечения.)

(Контроллер от Adaptec на базе SiI3114 c 4-я портама)

Вот так вот… Если кто сталкивался и проблема решилась — отзовитесь plz!

Что касается MegaRAID — так это же просто MegaRAID!!!

Работал с двумя контроллерами:

1) один на два SCSI 160 порта, штука — зверь, старенькая правда.

2) что-то из нового на шесть SATA дисков (с лабелом Intel).

Модельки к сожалению назвать не могу (не помню точно), НО!!! Впечатления крайне положительные! Это — TRUE контроллеры (видятся как обычное SCSI устройство, со всеми вытекающими).

P.S. Под MegaRAID рекомендую использовать новый драйвер (в ядре, как я понял, их 2) работает — вполне стабильно :)!

Dmitry.Stolyarov

Такс… рассказ будет краток…

Попало в руки два контроллера на чипах «Silicon Image, Inc. SiI 3114»…

Они имеют 4 порта SATA и поддержку RAID5 из 3-х и 4-х дисков.

Так вот после некоторой ругани, получилось завести RAID5 с использованием вот этого: http://people.redhat.com/~heinzm/sw/dm/dm-raid45/

Баги были замеченны следующие:

1) Патчь не совсем хорошо наложился… пришлось допатчивать ручками… запутался он, как я понял — в пробельных символах.

2) В патче ошибка и он не компилиться куском ядра, только модулем. (Я любитель собирать на серваках ядра с минимальным куличеством включенных опций, и отключенной модульностью).

3) Модулю нужен xor… его можно включить двумя способами:

а) MD_RAID5=M/Y

б) Заменить в drivers/md/Makefile строчку:

obj-$(CONFIG_DM_RAID45) += dm-raid45.o dm-log.o dm-mem-cache.o dm-region_hash.o

на строчку:

obj-$(CONFIG_DM_RAID45) += dm-raid45.o dm-log.o dm-mem-cache.o dm-region_hash.o xor.o

После этих экзекуций:

1) Собираем с помощью биоса контроллера RAID

2) Загружаем модуль:

root@ws1 linux # modprobe dm_raid45

Получается вот-так:

root@ws1 linux # lsmod

Module Size Used by

dm_raid45 43932 1

dm_region_hash 7936 1 dm_raid45

dm_mem_cache 3840 1 dm_raid45

xor 13448 1 dm_raid45

3) Смотрим, что у нас с дисками:

root@ws1 linux # dmraid -r

/dev/sdc: sil, «sil_agajcebhbhag», raid5_ls, nosync, 488395630 sectors, data@ 0

/dev/sdd: sil, «sil_agajcebhbhag», raid5_ls, nosync, 488395630 sectors, data@ 0

/dev/sde: sil, «sil_agajcebhbhag», raid5_ls, nosync, 488395630 sectors, data@ 0

/dev/sdf: sil, «sil_agajcebhbhag», raid5_ls, nosync, 488395630 sectors, data@ 0

4) Активируем:

root@ws1 linux # dmraid -ay

5) Смотрим, что получилось:

root@ws1 linux # dmraid -sa

* Active Set

name : sil_agajcebhbhag

size : 1465186560

stride : 128

type : raid5_ls

status : ok

subsets: 0

devs : 4

spares : 0

Что касается производительности — не знаю, насколько актуальна такая проверка:

root@ws1 linux # hdparm -t /dev/mapper/sil0_0

/dev/mapper/sil0_0:

Timing buffered disk reads: 178 MB in 3.00 seconds = 59.24 MB/sec

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

root@ws1 linux # hdparm -T /dev/mapper/sil0_0

/dev/mapper/sil0_0:

Timing cached reads: 3972 MB in 2.00 seconds = 1986.76 MB/sec

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

Что касается надежности, напишу через пару месяцев… :)

P.S. Версии:

root@ws1 linux # dmraid -V

dmraid version: 1.0.0.rc12-pre1 (2006.07.06) static

dmraid library version: 1.0.0.rc12-pre1 (2006.07.06)

device-mapper version: 4.6.0

root@ws1 linux # cat /proc/version

Linux version 2.6.17-vs2.1.1-rc31-gentoo (root@ws1) (gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)) #2 SMP Sun Sep 17 16:23:29 MSD 2006

P.P.S. Для того, что бы имя получаемого девайса приобрело более менее нормальный вид — написал в правила udev следующее:

KERNEL=="dm-[0-9]*», NAME=«mapper/sil0_%n»

Это не будет работать, в случае наличия более одного рейда, но в моем — вполне прокатило.

Kud-zu

GENIE, Огромное спасибО!!!!

Без этого топика, пришлось бы ехать менять на сервере железки.