Как я настраивал себе сервер на FreeBSD (часть 3)

А вот и третья статья. Сегодня, наконец-то, разберемся с raid1. Вообще-то, его по правилам надо было делать либо перед самой установкой, либо сразу после. Хотя сейчас это тоже можно сделать. Да и, если вы хотите увидеть настройку чего-то определенного, что вам нужно, просьба отписаться в комментах. А теперь немного по поводу Raid и FreeBSD. К сожалению, ну или к радости, метод описанный на официальной вики-странице приводит FreeBSD9 в нерабочее состояние, так что его не используйте.

К тому же, это предупреждение присутствует только в англоязычной версии вики, а в русскоязычной отсутствует. Все это в связи с добавлением в девятую версию нового стандарта размещения разделов на диске - GPT. Так что, теперь настройка программного raid выглядит несколько иначе. Приступим же.

При установке мы разбивали только первый диск, который определяется, как ada0. На него же и была установлена система. Значит, зеркалить будем на ada1. Итак, подгружаем необходимые модули и сразу же добавляем в автозагрузку gmirror.

kldload geom_mirror
echo 'geom_mirror_load="YES"' >> /boot/loader.conf

Теперь же начинается самое интересное. Создаем само зеркало, которое будет называться gm0, на диске /dev/ada1

gmirror label gm0 ada1

и проверяем его статус:

gmirror list

вывод должен быть примерно таким:

Geom name: gm0
State: COMPLETE
Components: 1
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 928302552
Providers:
1. Name: mirror/gm0
   Mediasize: 160040803328 (149G)
   Sectorsize: 512
   Mode: r2w2e3
Consumers:
1. Name: ada1
   Mediasize: 160041885696 (149G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3076536610

если, конечно, у вас не стоит какое-нибудь серверное решение в виде дискового массива состоящего из более чем 2-х дисков.

Теперь создадим разметку на зеркале gm0, аналогичную ada0 методом копирования:

gpart backup /dev/ada0 > /tmp/new
gpart restore /dev/mirror/gm0 < /tmp/new

Также делаем его загрузочным:

gpart bootcode -b /boot/pmbr /dev/mirror/gm0

Наблюдая вывод:

bootcode written to mirror/gm0

И записываем код в загрузочный сектор:

gpart bootcode -p /boot/gptboot -i 1 mirror/gm0

Инициализируем наше зеркало:

newfs -U /dev/mirror/gm0p2

После успешного выполнения команды копируем файлы системы на зеркало:

mount /dev/mirror/gm0p2 /mnt
cd /
tar --one-file-system -cpf - . | (cd /mnt; tar -xvpf -)

Далее нужно изменить fstab следующим образом. Было /dev/ada0p2 - станет /dev/mirror/gm0p2. Это можно сделать, как вручную, так и с помощью соответствующей команды. Открываем fstab на зеркале:

vi /mnt/etc/fstab

и вводим команду:

:%s/ada/mirror\/gm/g

Далее отмонтируем зеркало:

umount /mnt

и перезагрузим сервер, при этом ОБЯЗАТЕЛЬНО выбрав в BIOS загрузку со второго диска, на который была скопирована система:

reboot

После смотрим смонтированные устройства, они должны начинаться с gm, а не с ada:

mount
/dev/mirror/gm0p2 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/mirror/gm0p3   4194304        0  4194304     0%

Теперь нужно добавить в созданное зеркало первый диск:

gmirror insert gm0 ada0

и смотрим статус синхронизации, процесс это долгий. У меня он проходил ~1,5 часа.

gmirror status
Name    Status  Components
mirror/gm0  DEGRADED  ada1 (ACTIVE)
                      ada0 (SYNCHRONIZING, 98%)

По окончании синхронизации перезагружаемся (возвращая в BIOS загрузку с первого диска) и смотрим статус зеркала:

gmirror status
Name    Status  Components
mirror/gm0  COMPLETE  ada1 (ACTIVE)
                                              ada0 (ACTIVE)

Если он такой, то все работает. А делал я все это вот по этому мануалу.

Комментарии

Аватар пользователя cheshir

а по-моему, не сложно, а весело, особенно в отличиях, русской и английской, вики-страницах

Аватар пользователя Гость

А в каких целях вы используете сервер, если не секрет?

Аватар пользователя cheshir

скорее всего будет использоваться как мультимедиа сервер в перемешку с файловым.

Аватар пользователя Гость

Полезные статьи. Спасибо)

Добавить комментарий