The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка IDE RAID5 в FreeBSD с использованием vinum (freebsd disk fs raid vinum)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: freebsd, disk, fs, raid, vinum,  (найти похожие документы)
From: Андрей Черняк <[email protected]> Subject: Настройка IDE RAID5 в FreeBSD с использованием vinum Кратко о сути : Статья является обобщением полученного опыта на протяжении нескольких дней в связи с необходимостью настроить вышеупомянутую фичу. Цель: настроить RAID5 как хранилище даных на сервере. Сервер: TYAN SERVER-WORKS 8025GN dual PIII 800MHz. Диски - в ожидании двух West ern Digital 120GB. А тем временем имеем QUANTUM FIREBALL 12GB. OS - FreeBSD4.7 Присупаем к работе: Для Vinum-а подходят разделы a,e,f,g,h.... Не подходит с, который обозначает весь диск и b, который используется для свопа. Имеем 4 винчестера, при чём на одном из них стоит системма. Заметим, что на разделах, на которых нет раздела a (то есть нет / ), раздел е можно создать двумя способами: сначала выделить место под е раздел, а потом под своп, или же сначала под своп а потом под е-раздкл. Так вот, второй вариант не проходит (во всяком случае у меня). Разделы на дисках можно создавать как при начальной установке, так и после неё через /stand/sysinstall. Установили системму, разбили на разделы. При чем, если веники большие, то разде л под корень можно сжелать даже гигабайт (в зависимости от полноты установки), а потом /usr, /var и всё, чё надо, перенести на RAID. Я под корень выделил 1 гиг, под RAID 10 гиг(/raid0), под своп 128М. Подключаю остальные 3 диска. Запускаю /stand/sysinstall, выбираю Configure->Fdisk. Под раздел UFS беру весь объём каждого диска, на вопрос о BOOT Manager выбираю Standart. Когда это проделал со всеми дисками, захожу в Configure->Label. На каждом диске сначала делаю раздел на 10G(точно такого размера, как и на первом диске), с точкой монтирования (/raidx, где х - номер диска), поптом 128М под своп. В результате имеем конфигурацию: ad0s1a / ad0s1b swap ad0s1e /raid0 ad1s1e /raid1 ad1s1b swap ad1s1e /raid2 ad2s1b swap ad3s1e /raid3 ad3s1b swap Создаём дирректорию /bootvinum cd /bootvinum disklabel ad0s1 > ad0s1 и так для всех дисков, (соответственно ad1s1 в ad1s1 и т.д.). Теперь редактируем эти файлы, изменяя fstype с ufs на vinum и adxs1e на adxs1h( если бы мы не включали наш первый, системный диск, то менять имена разделов трёх дисков не надо ( во всяком случае, как я не пытался объединить в RAID разделы е несистемных и е раздел системного, ничего не получилось)). Теперь немного теории и терминологии. В vinum принято любую законченную структуру называть volume(том). Том состоит из сплетений даных (plex-ов). Считайте, что сплетение - это одно устройство, которое видится как один диск и в нём находится точно такая же информация, как и на всех остальных дисках(plex-ах) и они одинакового размера. Например, зеркализации,(RAID1), вам нужно хранилище (volume), которое по своей сути - 2 носителя(plex). Фактически, создание 2-х plex-ов ав томатически означает их зеркализацию. Томы, которые содержат более двух сплетений увидеть не приходилось (возможно, пока). Plex состоит из subdisk-ов - фактически, собственно, носителей информации. При создании RAID5 нам к нас будет 1 том, в котором будет одно сплетение, состоящее из 4 носителей. При чём, информация будет разбиваться на блоки, и записываться следующим образом. Берётся обьём информации, равный (n-1)*размер блока, где n - число дисков, из которых состоит RAID5. Первый блок даных записывается на первый диск, второй - на второй и т.д. На последний диск записывается блок контрольной суммы, который формируется следующим образом: по методу дополнения до 0, то есть, первый бит первого блока на первом диске складывается по модулю 2 с такими же первыми битами первых блоков остальных n-1 дисков. Если в результате получилась 1, то первым битом первого блока контрольной суммы будет 1, если 0 - то 0. После заполнения первого ряда блоков, блок контрольной суммы запишется на 1-й диск, на следующем круге - на 2-й, и т.д. Наличие блока контрольной суммы даёт возможность при выходе одного из дисков восстановить информацию какого-то ряда блоков. Ну, довольно теории, пора заняться практикой. Оптимальный размер блока в RAID5 в районе 256-512kb. В /bootvinum создаём файл raid drive vinumdrive0 devive /dev/ad0s1h drive vinumdrive1 device /dev/ad1s1h drive vinumdrive2 device /dev/ad2s1h drive vinumdrive3 device /dev/ad3s1h volume raid plex name raid.p0 org raid5 512k sd name raid.p0.s0 length 10g drive vinumdrive0 sd name raid.p0.s1 length 10g drive vinumdrive1 sd name raid.p0.s2 length 10g drive vinumdrive2 sd name raid.p0.s3 length 10g drive vinumdrive3 Следует заметить, что для RAID5 нужно минимум 3 диска, разделы на которых одинакового размера. /sbin/shutdown -r now Когда появится приглашение Hit [ENTER] .. , нажмите любую клавишу, не ENTER. boot -s cd /bootvinum disklabel -R ad0s1 ad0s1 Для остальных то же самое. fsck / mount / vi /etc/fstab Удалить все записи относительно тех разделов, на которых меняли файловую систему и которые сейчас в томе. Ctrl+D /sbin/shutdown -r now boot -s cd /bootvinum mount / vinum create -v raid vinum init raid.p0 (записывае нули в разделы RAID-а) newfs -v /dev/vinum/raid fsck -n /dev/vinum/raid Ctrl+D /sbin/mount /dev/vinum/raid (точка монтирования) vi /etc/rc.conf добавить строчку start_vinum="YES" vi /etc/fstab добавить строчку /dev/vinum/raid (точка монтирования) ufs rw 2 2 /sbin/shutdown -r now Убедиться, что всё работает

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Мракин Ю. (?), 09:16, 17/09/2003 [ответить]  
  • +/
    Работает.
    Но ОЧЕНЬ медленно.
    4 SCSI объеденил в raid5.
    Сами диски показывают скорость 50-60 Мб/с (без raid). При raid5 скорость записи/считывания 5-8 Мб/с, хотя должна увеличится раза в 3-4.
    Вот ведь в чем вопрос.
     
     
  • 2, Vol911 (?), 16:35, 28/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    У меня был MegaRaid 3х60G ide фсё фурычило без прироста - но не было такого падения, может в Biose контроллера покопаться стоит?
     

  • 3, rohan (?), 00:50, 14/11/2004 [ответить]  
  • +/
    > raid5 512k

    Блок размером пол метра?!! Либо я не понял что значит блок, либо автор статьи ошибся на три порядка. (Размер кластера FS обычно в пределах 512B - 16K)

     
  • 4, Павел aka GNU (?), 13:03, 09/12/2005 [ответить]  
  • +/
    Автор немного ошибся с терминологией. Цитирую: "...Для сплетения типа raid5 оно (размер этот,-мое) задает размер ГРУППЫ. Группа - это часть сплетения, хранящая биты четности на одном и том же поддиске. Размер сплетения должен быть кратен размеру группы (др. словами, результат деления размера сплетения на размер полосы должен быть целым числом), а размер группы должен быть кратен размеру сектора диска (512 байтов). Для оптим. производительности полосы должны быть размером минимум 128Кбайт: меньший размер приведет к существенному увеличению количества операций ввода/вывода из-за распределения отдельных запросов по нескольким дискам... Обычно рекомендуют выбирать размер полосы в диапазоне от 256 до 512 Кбайт. Степеней двойки при этом, однако, лучше избегать: обычно они приводят к размещению всех суперблоков на первом поддиске. Упрощенные команды используют размер полосы 279 Кбайт, что дает разумное распределение суперблоков..."М. Эбен, Б. Таймен "FreeBSD. Исс-во достиж. равновесия..."

    Это не кластер FS :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру