Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Теперь создаём конфигурационный файл нашего массива(расположить его можно где угодно):
|
После этого непосредственно конфигурируем наш массив(как я говорил, в моем случае будет 3 диска по терабайту):
|
Пишем в файле следующее:
 
|
Где:
- drive raid51/raid52/raid53 - это просто псевдонимы физических дисков (можно придумать любое). Используются чисто для удобства. С этими псевдонимами мы будем работать во всём файле и, поменяв физический диск, нам не придётся менять его название во всём конфигурационном файле, а достаточно лишь изменить в описании.
- volume raid5 - это виртуальный диск (можно придумать тоже любое название). Система его будет видеть как одно физическое устройство, хотя в моем случае это массив из 3х дисков с полезным объёмом равным ~2м терабайтам. Отображаться будет как /dev/gvinum/raid5 (Назовёте volume terminator, отображаться будет /dev/gvinum/terminator)
- plex - это набор, который предоставляет полное адресное пространство тома. Нам необходим набор RAID5, поэтому организуем набор RAID5: org raid5, причем организовываем со страйпом в 256кВ (судя документации это самый оптимальный размер полосы).
- sd - это поддиски(SubDisk), VINUM может организовывать массивы не только из отдельных физических дисков, но и используя разделы UNIX. Я же использую 3 отдельных физических устройства, каждый по 1 терабайту, поэтому указываем размер: len 1t.
На этом описание конфигурационного файла закончилось. Теперь создаём сам RAID массив:
|
Создаётся устройство /dev/gvinum/raid5. На нём необходимо создать файловую систему. Создаём:
|
Стандартное ядро FreeBSD(GENERIC) не включает Vinum. Можно пересобрать ядро с поддержкой Vinum, но этого делать не рекомендуют. Обычный способ активации Vinum - загрузка модуля для ядра (kld). Так и поступим, только использовать команду kldload не будем, да и нет необходимости, при первом вызове gvinum проверит наличие поддержки Vinum в ядре и при необходимости загрузит модуль автоматически. Я сделаю так, чтобы модуль Vinum был доступен на этапе загрузки, для этого делаем так:
|
И последний момент, нужно смонтировать наш массив (Точку монтирования мы указываем /raid5, ту, что создали изначально):
|
Перегружаемся и всё должно работать.
:( У меня сервер уходит в Fatal trap 12(Kernel panic) и перегружается до бесконечности. Ничего страшного. Выключаем, ждём 5 минут и включаем, если не получится, выключаем, ждём ещё 5 минут и включаем, в конце концов, включается всё норм! Называется размечтался... 1t = 1024G, смотрю свой диск... а там всего 953869m... В общем, нужно в конфиге уменьшить размер - len! И после этого всё замечательно работает!!!
Можно выводить диски из массива и т.д., но как-то долго... проще сбросить конфиг:
|
На что, он нас спрашивает, вы, мол, в своё уме? подтвердите, что вы это делаете осмысленно! И просит ввести текст "NO FUTURE", ну что ж, вводим:
|
Я поменял в конфиге размеры дисков на:
len 953869m
После этого, повторяем команды:
|
Перегружаемся ещё раз...И вуаля!!! Всё работает!!!
II. GEOM.
Пробуем второй вариант. GEOM RAID5 в FreeBSD не входит, поэтому придётся скачивать с сайта. На сайте видим, что есть 3 версии это:
- Компромисс скорости и использования памяти: geom_raid5
- Самая стабильная но и самая медленная: geom_raid5 TNG
- Улучшенная скорость но и памяти соответственно потребляет больше: geom_raid5 PP
Все версии доступны тут:
geom_raid5: http://wgboome.homepage.t-online.de./geom_raid5.tbz
geom_raid5 TNG: http://wgboome.homepage.t-online.de./geom_raid5-eff.tbz
geom_raid5 PP: http://wgboome.homepage.t-online.de./geom_raid5-pp.tbz
Я выбрал "geom_raid5", поэтому переходим в папку с источниками:
|
И скачиваем архив:
|
Архив необходимо распаковать. Действуем:
|
Архив распакован, переходим к процессу инсталляции. Первым делом необходимо собрать модуль. Переходим в папку с конфигом:
|
И запускаем компиляцию:
|
упс... :( у меня вылезли ошибки...читаем...пробуем исправить... Для этого делаем следующее:
|
И правим в файле g_raid5.c (если у вас ошибки будут такие же как и у меня) кому каким редактором удобнее:
1. Ошибка: в строке № 2015 в функции "[i]kthread_exit" много аргументов
  исправляем: меняем в строке № 2015 kthread_exit(0); на kthread_exit();
2. Ошибка: в строке № 2444 в функции "kthread_exit" много аргументов
  исправляем: меняем в строке № 2444 kthread_exit(0); на kthread_exit();
3. Ошибка: в строке № 2635 нету описания функции "kthread_create"
  исправляем: меняем в строке № 2635 kthread_create (остальное не трогаем), на kproc_create
4. Ошибка: в строке № 2639 нету описания функции "kthread_create"
  исправляем: меняем в строке № 2639 kthread_create (остальное не трогаем), на kproc_create
Примечание: Ошибка 4 другая, и ссылается на строку 2635, но изменив строку 2635 необходимо изменить и 2639, так что делаем так.[/i]
После того как исправили,снова делаем компиляцию модуля:
|
Появляется нужный нам файл: "*geom_raid5.ko". Его необходимо скопировать ко всем модулям. Копируем:
|
Теперь устанавливаем сам geom_raid5:
|
Собственно после инсталляции GEOM_RAID5 собираем сам RAID массив:
|
И создаём устройство:
|
Создаётся устройство /dev/raid5/graid5. На нём необходимо создать файловую систему. Создаём:
|
Создаём точку монтирования:
|
Добавляем запись в /etc/fstab, для автоматического монтирования нашего массива RAID5 при загрузке системы:
|
Не забываем добавить загрузку модуля при старте системы:
|
P.S. В конечном итоге остановил свой выбор на GVINUM. В основном из-за того, что он входит в состав FreeBSD, а разработчики, раз решили, что GEOM_RAID5 ещё рано(или уже поздно) входить в релиз, то значит так и есть. Потестил GVINUM на крах(отключением питания и отсоединением шлейфа от одного из дисков в режимах чтение\запись, после этого записывал\удалял данные с битого массива, перегружался, добавлял снова диск, восстанавливал всё работает замечательно! ...но это уже тема для другой статьи...)
размещено: 2010-07-28,
последнее обновление: 2010-07-28,
автор: McSeem
adre, 2010-08-25 в 17:40:27
Сие поделие, Райд5 (Vinum) на 3 дисках, под нагрузкой тормозит =( если самбу привернуть сюда, вешайся - тяжело ему, минимум 4 диска на 6 вообще хорошо становиться...
108, 2011-03-18 в 12:09:48
А на 8.2 при загрузке по умолчанию gvinum грузит какой то конфиг, где его поправить я так и не понял :(
Ivan, 2011-07-08 в 15:39:17
У меня по 8,2 такой же вопрос. И еще как узнать реальный размер диска чтоб прописать в len
McSeem, 2011-07-08 в 18:48:04
2 Ivan > На 8.2 попробую, отпишусь, а размер, без разницы, например fdisk -l, если что пиши в личку
Ivan, 2011-07-09 в 1:54:53
Спасибо! Еще такой вопросик, raid5 из 5 хардов, один сдох (например), купил новый размером такой же или больше, воткнул, как пересобирается райд? Есть специалная команда или автоматом?
Если сдох диск с системой, поставли новый диск, поставил систему, как подтянуть к ней уже существующий рэйд?
Заранее спасибо!
Саша, 2012-04-12 в 9:15:35
Старий забрать новий добавить до рейда (команда - сlear). Размер реида остатьотся тотже. потом пишет статус рейда -REBUILDING . И у меня так уже три недели.У меня проблеми били з двумя хардами.Один поменял геометрию.через две недели свободно места стало меньше рейд сам востанавливается.
nikola93, 2012-08-23 в 13:51:38
Мучился с VINUM 2 дня, в итоге скорость маленькая raid валился после смены винта. Сделал на zfs из плюсов хорошая скорость +raid ни рушится при замене винта.
в /etc/rc.conf zfs_enable="YES" (freebsd8 и выше помоему можно не ставить)
1) gpart show
просмотр разделов диска
2) создаем диск
gpart create -s GPT ad6
3) смотрим блоки
gpart show da1
=> 34 3145661 ad6 GPT (1.5G)
34 3145661 - free - (1.5G)
4)размечаем
gpart add -b 34 -s 3145661 -i 1 -t freebsd-zfs ad6
для freebsd8 и выше выставляем метки на каждый диск
gpart add -b 34 -s 3145661 -i 1 -t freebsd-zfs -l disk1 ad6
gpart add -b 34 -s 3145661 -i 1 -t freebsd-zfs -l disk2 ad10
5)создаем райд массив
zpool create storage raidz ad6 ad10 ad12
для freebsd8 монтируем метки
zpool create storage raidz gpt/disk1 gpt/disk2 gpt/disk3
6)
test# zpool status
pool: storage
state: ONLINE
scrub: resilver completed with 0 errors on Tue Aug 21 15:14:35 2012
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ad6 ONLINE 0 0 0
ad12 ONLINE 0 0 0
ad10 ONLINE 0 0 0
errors: No known data errors
7) востоновление raid
zpool status
pool: storage
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
gpt/disk1 ONLINE 0 0 0
gpt/disk2 UNAVAIL 0 0 0 cannot open
gpt/disk3 ONLINE 0 0 0
видим что gpt/disk2 UNAVAIL
8) подсовываем новый диск 1-й диск в пуле 2-й на что меняем
zpool replace storage ad6 ad12
(для freebsd8 имена меток
zpool replace storage gpt/disk2 gpt/disk4)
patzub, 2012-09-06 в 0:52:46
Срабатывает!
Но при размере каждого hdd 3 Tb возникает проблемма! Мелкие каталоги и файлы сохраняются и удаляются с рейда нармально. Но файла около 200МБ вызывают зависание и не копируются. ПровереноЖ это не из-за самбы и не из-зи сетевухи.
Товарищщи!, 2014-09-08 в 15:36:58
Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [9 шт.]