Использование программного RAID - FreeBSD

Jan 15, 2009 20:32


GEOM (gmirror) - конфигурирование программного зеркалирования/дуплекса.
Статья предназначена для тех кто собирается создавать программный RAID-1 в системах под управлением FreeBSD. 

Использование программного RAID - FreeBSD
Создание зеркалирования/дуплекса осуществляется следующим образом:

Прежде всего необходимо сменить уровень обработки (debug) модуля GEOM:
Для этого выполняем в консоли слудующую комманду:
sysctl kern.geom.debugflags=16

Затем нам необходимо разметить диск источник:
gmirror label -v -b round-robin gm0 /dev/ad0

В случае успешного выполнения комманды вы увидите:
Metadata value stored on /dev/ad0

После этого необходимо добавить строку активации модуля GEOM при загрузке.
Для этого в консоли выполняем комманду
echo geom_mirror_load="YES" > /boot/loader.conf

Далее необходимо отредактировать /etc/fstab, рекомендую создать его резервную копию
cp /etc/fstab /etc/fstab.orig этот файл вам может пригодится
vi /etc/fstab (у вас он может выглядеть иначе)
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1d /tmp ufs rw 2 2
/dev/ad0s1e /usr ufs rw 2 2
/dev/ad0s1f /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0

Все записи /dev/ad0 меняем на /dev/mirror/gm0
Очень важно ничего не напутать, иначе прийдется попотеть там, где это не является необходимым.
После редактирования мы можем перезагрузить систему.
Если она будет грузиться с ошибкой, будьте уверены, вы ошиблись редактируя fstab ( исправить ошибку)

Загрузка в режиме зеркалирования/дуплекса

Если вы внимательно смотрите на экран во время начальной загрузки, то должны увидеть следущие строки:

GEOM_MIRROR: Device gm0 created (id=0101932033).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
GEOM_MIRROR: Device gm0 already configured.
Mounting root from ufs:/dev/mirror/gm0s1a

Если система загрузилась нормально, вам необходимо провести синхронизацию дисков

Синхронизация дисков

Для синхронизации дисков вам нужно выполнить:
gmirror insert gm0 /dev/ad1
система сообщит нам о том что зеркалирование началось
GEOM_MIRROR: Device gm0: provider ad1 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad1.

Проверить состояния синхронизации можно с помощью команды:
gmirror status

Более подробно о состоянии программного RAID можно узнать с помощью комманды:
gmirror list | more

Когда синхронизация закончится, вы увидите следующее сообщение:
GEOM_MIRROR: Device gm0: rebuilding provider ad1 finished.
GEOM_MIRROR: Device gm0: provider ad1 activated.

Если вы повторно выполните команду gmirror list, то увидите, что в строке State значение DEGRADED изменилось на COMPLETE.
Не волнуйтесь, увидев в строке Flags состояние DIRTY, это означает, что система сделала запись на диск, но еще не синхронизировала данные между дисками, если подождать несколько секунд не производя никаких дисковых операций, то можно увидеть, как состояние изменится на NONE.

По окончанию процесса синхронизации, перезагрузите систему.

Во время загрузки вы увидите следущие сообщения:

GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad1 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider ad1 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
Mounting root from ufs:/dev/mirror/gm0s1a

Дисковая система теперь работает в режиме RAID-1.

Если у вас что-то не получилось, дальнейшая часть статьи должна вам помочь

Исправляем ошибки:

Если вы не внимательно редактировали /etc/fstab при загрузке система выдаст сообщение о невозможности загрузки из корневого раздела.

Mounting root from ufs:/dev/gm0s1a
setrootbyname failed
ffs_mountroot: can't find rootvp
Root mount failed: 6

Manual root filesystem specification:
: Mount using filesystem
e.g. ufs:da0s1a
? List valid disk boot devices
Abort manual input

mountroot>

необходимо указать правильное расположение корневой файловой системы:
mountroot> ufs:/dev/mirror/gm0s1a
Mounting root from /dev/mirror/gm0s1a

После входа в систему, исправьте ошибки в /etc/fstab и перезагрузите систему.
После входа в систему удостоверьтесь, в том, что все файловые системы примонтированы правильно.
Проверить это можно с помощью комманды:
# df -h Замена GEOM накопителя:
Рано или поздно ваш программный RAID может прийти в неисправное состояние, выход из строя накопителя HDD - это неизбежный результат его работы.
По-этому добавлю пару строк о том, как заменить вышедший из строя HDD и возобновить работу GEOM RAID массива.
Прежде всего вам необходимо определить какой из накопителей вышел из строя.
Комманда gmirror status вам в этом поможет.
Для замены накопителя рекомендую выключить систему
halt -p now
Затем заменить накопитель на новый
!!!ВАЖНО - если вышел из строя основной (мастер) диск, вам необходимо переподключить резервный диск на место основного.
После чего можно запустить систему.
После входа в систему необходимо выполнить следующую последовательность комманд
gmirror forget gm0
gmirror insert gm0 /dev/ad1
Это пересоздаст и активирует GEOM RAID массив.
После окончания синхронизации рекомендую перезагрузить систему.

gmirror, it, raid, freebsd, geom

Previous post Next post
Up