Gmirror — програмный RAID 1 и GPT FreeBSD

| 25.10.2013
После некоторых раздумий получися второй способ создания RAID1 для FreeBSD.
И так для начала:

Загружаемся с установочного диска FreeBSD 9-RELEASE.
Запускаем Shell, который предоставляется загрузчиком install.
Изменяем переменную ядра kern.geom.debugflags:

# sysctl kern.geom.debugflags=16

Загружаем модуль ядра geom_mirror.ko:

# kldload /boot/kernel/geom_mirror.ko

С помощью утилиты gmirror создаем зеркало и включаем в него оба диска:

# gmirror label -v -b round-robin gm0 /dev/ada0
# gmirror insert gm0 /dev/ada1

Дополнительные опции gmirror:

gmirror label - создание зеркала;
gmirror insert - добавление диска в зеркало;
-v - включение режима отладки;
-b round-robin - режим балансировки;
gm0 - имя зеркала;
/dev/ada0 - диск, с которого берем данные для зеркалирования;
/dev/ada1 - диск на который будем выполнять синхронизацию
     
Дожидаемся полной синхронизации дисков. Просмотреть текущее состояние можно такой коммандой:

# gmirror list

Обратите внимание на общее состояние зеркала -DEGRADED, а также на флаг SYNCHRONIZING. По завершению синхронизации, статус зеркала изменится на COMPLETE.
Выходим из Shell обратно в install:

# exit

Создаем раздел GPT на gm0 и необходимые партиции.

freebsd-boot  (47k)

freebsd-swap  (2.0G)

freebsd-ufs / (80.0G) (зависит от размерв Вашего диска.)

По завершению развертывания системы, install предлагает произвести редактирование системных файлов. Добавляем загрузку модуля GEOM в loader.conf:

# echo 'geom_mirror_load="YES"' > /boot/loader.conf << __EOF__
> geom_mirror_load="YES"
> __EOF__

Проверяем, что в fstab прописаны партиции с gm0. Пример записи: /dev/mirror/gm0p2.

# ee /etc/fstab 

Перезагружаемся.

# shutdown -r now

На этом установка системы и настройка gmirror с разметкой GPT заканчивается.
Перед началом загрузки системы видим сообщение "Invalid backup GPT header". Дело в том, что GPT была создана поверх зеркала.

На этом все, все очень просто. 🙂

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре × 1 =

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: