Итак, имеется сервер с 2-мя дисками:
/dev/ada0
/dev/ada1
на диск 
/dev/ada0 уже установленная операционная система 
FreeBSD 9.1. 
Требуется объединить имеющиеся диски в софтовое зеркало ( RAID 1 ), используя модуль 
gmirror ( один из модулей 
geom ), и переместить на него установленную на 
/dev/ada0 систему.
Разметка диска 
/dev/ada0 стандартная, учитывая дэфолтовую установку FreeBSD, через 
bsdinstall:
ada0p1    freebsd-boot
ada0p2    freebsd-ufs    /
ada0p3    freebsd-swap
Первое что нужно сделать для работы с 
gmirror, загрузить соответствующий модуль ядра:
root@server:/ # kldload geom_mirror.ko # загружаем
root@server:/ # kldstat # проверяем
Id Refs Address            Size     Name
 1    3 0xffffffff80200000 1323388  kernel
 2    1 0xffffffff81612000 d26f     geom_mirror.ko # модуль загружен
что-бы после окончания настройки и перезагрузки, все работало, нужно прописать загрузку модуля в файл 
/boot/loader.conf
делаем:
root@server:/ # echo 'geom_mirror_load="YES"' >> /boot/loader.conf
Тереь создадим зеркало, включив в него диск 
/dev/ada1
root@server:/ # gmirror label -v -b round-robin gm0 /dev/ada1
Metadata value stored on /dev/ada1.
Done.
В данном случае:
gmirror label - собственно создание массива raid1 ( зеркало )
-v - режим отладки, вывод служебных сообщений
-b round-robin - алгоритм балансировки ( по умолчанию load )
gm0 -  имя нашего raid массива
/dev/ada1 - диск который мы сразу включили в gmirror
Теперь нужно создать разметку на только что созданном зеркале. Вданном случае скопируем ее с диска 
/dev/ada0, на колтором у нас уже установлена рабочая 
FreeBSD.
Делаем дамп таблицы разделов,  перенаправив его вывод в файл:
root@server:/ # gpart backup da0 > /tmp/part.txt
Восстанавливаем только что созданный дамп на gmirror
root@server:/ # gpart restore mirror/gm0 < /tmp/part.txt
Записываем загрузочный код
root@server:/ # gpart bootcode -b /boot/pmbr mirror/gm0
bootcode written to mirror/gm0
root@server:/ # gpart bootcode -p /boot/gptboot -i 1 mirror/gm0
Создаем файловую систему для раздела 
/dev/mirror/gm0p2 ( корневая файловая система, по аналогии с димком 
/dev/ada0 ). 
Опция 
-U в команде 
newfs, включает 
soft updaes, для файловой системы UFS.
root@server:/ # newfs -U /dev/mirror/gm0p2
/dev/mirror/gm0p2: 5834.9MB (11949952 sectors) block size 32768, fragment size 4096
        using 10 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
        with soft updates
super-block backups (for fsck_ffs -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112, 11540352
Монтируем корневой раздел, расположенный в 
gmirror, в папку 
/mnt
root@server:/ # mount /dev/mirror/gm0p2 /mnt
Теперь копируем содержимое корневого раздела диска 
/dev/ada0  в корневой раздел 
gmirror
root@server:/ # cd / № если вы не в корневом разделе
root@server:/ # tar --one-file-system -cpf - . | (cd /mnt; tar -xvpf -)
Редактируем файл 
/etc/sftab, заменив все вхождения 
/dev/ada0 на 
/dev/mirror/gm0, должно получится что-то вроде
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/mirror/gm0p2      /               ufs     rw      1       1
/dev/mirror/gm0p3      none            swap    sw      0       0
Перезагружаемся
root@server:/ # umount /mnt
root@server:/ # reboot
Теперь очень важно выбрать в биосе, другой диск в качестве загрузочного, тот который у нас уже в зеркале. 
При загрузке, будет выдано предупреждение от 
gptboot, о неверной резервной копии 
GPT заголовка
gptboot: invalid backup GPT header
это происходит из-за того, что размер 
gmirror, на один сектор меньше размера диска, в последнем секторе 
gmirror зранит свои метаданные, а 
gptboot ищет там резервную копию 
GPT заголовка, естественно безуспешно. Это не критично.
Проверьте что в данный момент, система действительно работает с 
gmirror:
root@server: # mount
/dev/mirror/gm0p2 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
root@server: # swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/mirror/gm0p3    314368        0   314368     0%
Теперь нам осталось только включить диск 
/dev/ada0 в зеркало
root@server: # gmirror insert gm0 da0
Проверим статус:
root@server: # gmirror status
      Name    Status  Components
mirror/gm0  DEGRADED  ada1 (ACTIVE)
                      ada0 (SYNCHRONIZING, 26%)
В данный момент идет синхронизация дисков в зеркале, статус 
DEGRADED, диски синхронизированы на 
26%, остается дождаться окончания процесса. 
После завершения синхронизации, статус gmirror выглядит так:
root@server: # gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada1 (ACTIVE)
                      ada0 (ACTIVE)
Теперь наша 
FreeBSD работает с зеркала.
]]>Оригинал]]>
Вольеый пересказ vds-admin