Gmirror GPT RAID-1 FreeBSD 9

Дата публикации: 25 05 2012 Автор: PazitiFF
Поводом для написания статьи послужила установка новой версии системы FreeBSD 9 AMD64. FreeBSD была установлена на устройство /dev/ada0 Для создания RAID-1 и добавления в него диска, на уже установленной системе, нам нужно проделать следующие шаги: 1. Подгружаем модуль geom_mirror и добавляем в автозагрузку gmirror
 kldload geom_mirror
 echo 'geom_mirror_load="YES"' >> /boot/loader.conf
2. Создадим зеркало 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: 4266919218
Providers:
1. Name: mirror/gm0
   Mediasize: 250059349504 (232G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada1
   Mediasize: 250059350016 (232G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1755632155
3. Создаем разметку на созданном зеркале методом копирования с устройства ada0
 gpart backup /dev/ada0 > /tmp/part.txt
 gpart restore /dev/mirror/gm0 < /tmp/part.txt
 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
 
/dev/mirror/gm0p2: 233471.9MB (478150528 sectors) block size 32768, fragment size 4096
    using 316 cylinder groups of 740.00MB, 23680 blks, 47360 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 192, 1515712, 3031232, 4546752, 6062272
4. Далее копируем файлы системы на созданный зеркальный том
mount /dev/mirror/gm0p2 /mnt
cd /
tar --one-file-system -cpf - . | (cd /mnt; tar -xvpf -)
5. После успешного копирования, правим fstab на смонтированном диске, изменяя в нём "ada0" на "mirror/gm0"
vim /mnt/etc/fstab
 
# Пример, было так:
 
 # Device    Mountpoint  FStype  Options Dump    Pass#
 /dev/ada0p2 /       ufs rw  1   1
 /dev/ada0p3 none        swap    sw  0   0
 
# Стало так:
 
 # Device    Mountpoint  FStype  Options Dump    Pass#
 /dev/mirror/gm0p2   /       ufs rw  1   1
 /dev/mirror/gm0p3   none        swap    sw  0   0
6. Далее нужно отмонтировать диск, перезагрузиться и выбрать в BIOS загрузку со второго диска (на который ранее было скопирована система), это очень ОТВЕТСТВЕННЫЙ момент!!!
 umount /mnt
 reboot
7. После перехагрузки смотрим смонтированные устройства и swap
 mount
 /dev/mirror/gm0p2 on / (ufs, local, soft-updates)
 devfs on /dev (devfs, local, multilabel)
 
 swapinfo
 
Device          512-blocks     Used    Avail Capacity
/dev/mirror/gm0p3    8388608        0  8388608     0%
8. После добавляем в созданное зеркало первый диск /dev/ada0 и наблюдаем за синхронизацией
 gmirror insert gm0 ada0
 gmirror status
 
 Name    Status  Components
mirror/gm0  DEGRADED  ada1 (ACTIVE)
                                    ada0 (SYNCHRONIZING, 3%)
9. После успешной синхронизации перезагружаемся в нормальном режиме и радуемся результату.
reboot
10. После перезагрузки проверяем зеркало
 gmirror status
 
Name    Status  Components
mirror/gm0  COMPLETE  ada0 (ACTIVE)
                                      ada1 (ACTIVE)

Комментарии

Приветствую всех кого еще не видел
Я рад что посетил это место!
буду рад познакомиться!

Геморная новая фря

Большое спасибо ваша статья помогла.

Единственный нюанс возник на этом этапе (gpart restore /dev/mirror/gm0 < /tmp/part.txt). На HDD был MBR windows помог перевод в GPT.

Делая: gpart restore /dev/mirror/gm0 /tmp/part.txt
поймал вот это: gpart: geom 'gm0': File exists
Помогло: dd if=/dev/zero of=/dev/mirror/gm0 bs=512 count=1

При выполнении команды

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

Получил ответ что сиё действие запрещено.

Далее прошло остальное нормально, но потом опять при выполнении команды:

# gmirror insert gm0 ada0

у меня выпало сообщение:

gmirror: Cannot access provider ada0.

Система грузиться как с первого диска(не рейдовая), так и со второго в режиме рейда, но без второго диска и добавить не могу.

Как испавить ошибку?

Проверьте, возможно смонтирован какое-то устройство на ada0, например swap. Отмонтируйте и должно сработать.

Спасибо за статью!!!!!

на HP MicroServer Gen8 нет возможности по пункту 6 загрузиться с второго винта, выручил другой компьютер с платой GIGABYTE !

блин - пробую на FreeBSD 10 по статье - получается касяк (ник как диски в рейд не загоню) при чем от этих действий сбиваются таблицы разделов. Благо что на тестовых дисках эксперементирую

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>, <apache>, <bash>, <css>, <drupal6>, <html5>, <javascript>, <mysql>, <php>.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.