From: Андрей Черняк <d2mac@mail.univ.kiev.ua>
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М под своп. В
результате имеем конфигурацию:
и так для всех дисков, (соответственно 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
Следует заметить, что для 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
Убедиться, что всё работает
1305 Прочтений • [Настройка IDE RAID5 в FreeBSD с использованием vinum (freebsd disk fs raid vinum)] [08.05.2012] [Комментариев: 0]