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

Версия для печатиОтправить другуPDF version

FreeBSD логотип

Решил собрать зеркальный RAID под "свеженькую" FreeBSD 9-RELEASE. И разметку решил по умолчанию использовать GPT. В этом случае порядок действий будет отличаться, от создания RAID 1 в случае разделов BSD.

Hardware: два привода SATA, которые определяются системой как ada0 и ada1.

Теперь пошаговое руководство по созданию RAID 1 на разделах GPT и установке на эти разделы операционной системы FreeBSD 9-RELEASE.

  1. Загружаемся с установочного диска FreeBSD 9-RELEASE.
  2. Запускаем Shell, который предоставляется загрузчиком Bsdinstall.
  3. Изменяем переменную ядра kern.geom.debugflags:
    # sysctl kern.geom.debugflags=16
  4. Загружаем модуль ядра geom_mirror.ko:
    # kldload /boot/kernel/geom_mirror.ko
  5. С помощью утилиты gmirror создаем зеркало и включаем в него оба диска:

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

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

  6. Дожидаемся полной синхронизации дисков. Просмотреть текущее состояние можно такой командой:

    # gmirror list

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

  7. Выходим из Shell обратно в Bsdinstall:

    # exit

  8. Создаем раздел GPT на gm0 и необходимые партиции.
  9. По завершению развертывания системы, Bsdinstall предлагает произвести редактирование системных файлов, что и необходимо выполнить. Добавляем загрузку модуля GEOM в loader.conf:

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

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

На этом установка системы и настройка gmirror с разметкой GPT заканчивается.

Можно наблюдать при перед началом загрузки системы сообщение "Invalid backup GPT header". Дело в том, что GPT была создана поверх зеркала. Размер провайдера mirror/gm0 на 1 сектор меньше, чем размер диска, так как gmirror забирает последний сектор для хранения своих метаданных. Загрузчик gptboot ничего не знает о программном зеркале и ищет резервный заголовок GPT в конце диска, а там находятся метаданные gmirror

 

Ваша оценка: Нет Средняя: 4.4 (7 голосов)

О спасибо! А то сидел вот

О спасибо! А то сидел вот "чесал репу" (сразу недопёрло) как бы собрать gmirror на "девятке" с GPT. В мануале ведь написано что будет после gmirror label:  ".. The following procedure is also incompatible with the default installation settings of FreeBSD 9.X which use the new GPT partition scheme. GEOM will overwrite GPT metadata, causing data loss and possibly an unbootable system." Ща попробую!

Я на тестовой машине сначала

Я на тестовой машине сначала получил систему, которая не могла загрузится. Соответственно пришлось "копать" что да как...

Re: Gmirror - програмный RAID 1 и GPT

сначала разметить диск, а потом вставить его в зеркало? умно... ничего не скажешь. и такие люди еще будут кого-то учить... 

Re: Gmirror - програмный RAID 1 и GPT

Предложите свой порядок действий...

Re: Gmirror - програмный RAID 1 и GPT

Если это SATA винты и мать от Intel, то скорее всего на матери есть RAID1, а в FreeBSD 9 появился geom_raid, который поддерживает Intel RAID1, нужно только подгрузить этот модуль вместо geom_mirror, и все, установщик увидет это зеркало, как винт, и потом не будет ни каких сообщений об ошибка, а мониторинг точно такой же. Но конечно лучше аппаратный RAID.

Re: Gmirror - програмный RAID 1 и GPT

День добрый!

Проделал всё по Вашему мануалу, после загрузки получаю ошибку

Mounting from ufs:/dev/mirror/gm0p2 failed with error 19

....

mountroot>

 

Подскажите, как это побороть? 

Re: Gmirror - програмный RAID 1 и GPT

Открывайте ветку на форуме, попробуем разобраться...

Re: Gmirror - програмный RAID 1 и GPT

По поводу этой ошибки: Mounting from ufs:/dev/mirror/gm0p2 failed with error 19

 

Сам затупил...

При создании партиций выбрал Auto, надо было вручную, тогда они создаются корректно. Получилось вот так:

ada0

    mirror/gm0  149Gb  GPT

       mirror/gm0  64kB    boot

       mirror/gm0  142GB   freebsd-ufs

       mirror/gm0  4GB   freebsd-swap 

ada1

 ......................То же самое

 

И всё работает! Спасибо за статью.

Re: Gmirror - програмный RAID 1 и GPT

Рад что разобрались...

Удачи.

Re: Gmirror - програмный RAID 1 и GPT

Здравствуйте!

GPT mirror собрал давно, получил казус при нарушении /boot/loader.conf (новая строчка встала сразу после ) т.е. geom_mirror_load="YES"tmpfs_load="YES"

и зеркало не собиралось, когда заметил было поздно :) Пришлось выгонять из зеркала винт со старыми данными, зачищать и синхронизировать снова. Как научить geom_mirror отсылать на почту состояние? 

Re: Gmirror - програмный RAID 1 и GPT

Можно использовать утилиты мониторинга, например Nagios. Либо же самостоятельно написать скрипт проверки.

Однако, чтобы не изобретать велосипед, можно просто добавить в файл /etc/periodic.conf (если файла /etc/periodic.conf нету, его необходимо создать - см. /etc/defaults/periodic.conf) опцию daily_status_gmirror_enable="YES".

Re: Gmirror - програмный RAID 1 и GPT

Я извиняюсь, скажите почему в 8 пункт для наглядности не добавили пример:  

gpart create -s gpt gm0

Пробую настроить уже 3 недели этот софт рейд но все безуспешно... пробовал по многим статьям но везде есть пробелы  на которые уже приходится натыкатся в процессе установки, у меня как только я включаю подгрузку модуля gmirror в loader.conf или собираю ядро включив опцию 

GEOM_MIRROR

все система не грузится и выкидывает в mountroot> где я ни с одного из устройств("вывод ?") загрузится тоже не могу.

При этом я raid даже не собирал еще!! просто решил включить этот модуль в поддержку ядра пересобрав ядро или добавив запись в loader.conf, и так и так я получаю нерабочую систему...

Re: Gmirror - програмный RAID 1 и GPT

Советую перепроверить конфиги собранного ядра, с большой долей вероятности там нет устройства с которого грузится система=-) или попробуйте дописать в /boot/loader.conf указанную строку в статье,+проверьте, подкружается ли sysctl kern.geom.debugflags=16 в систему вообще, как обычно бывает,  упущено что-то в нумерации дисков еще может быть...
 

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература