RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Решил собрать зеркальный 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:
Проверяем, что в fstab прописаны партиции с gm0. Пример записи: /dev/mirror/gm0p2.
10. Перезагружаемся.
На этом установка системы и настройка gmirror с разметкой GPT заканчивается.
Можно наблюдать при перед началом загрузки системы сообщение "Invalid backup GPT header". Дело в том, что GPT была создана поверх зеркала. Размер провайдера mirror/gm0 на 1 сектор меньше, чем размер диска, так как gmirror забирает последний сектор для хранения своих метаданных. Загрузчик gptboot ничего не знает о программном зеркале и ищет резервный заголовок GPT в конце диска, а там находятся метаданные gmirror