Автор: Сергей
Виртуализация FreeBSD
Была поставлена задача виртуализировать сервер на базе FreeBSD 7.2 в vmware, настроенный до меня. Можно конечно было просто установить новую фряху и перенести все туда, а все-это портал, и все что с ним связано. Но как всегда было мягко говоря лень разбираться и переносить. Вообщем как у меня получилось это сделать:
В виртуальной машине создаем диски нужного размера не меньше имеющихся с помощью инсталяционного iso образа FreeBSD, затем с этого же iso или frenzy грузимся в режиме livecd. Прописываем настройки для сетевых интерфейсов:
- ifconfig em0 10.9.130.100/24
route add 0 10.9.130.1
После чего проверяем доступность виртуальной машины в сети. Для переноса данных я использовал NFS.
-
/etc/rc.d/rpcbind onestart
/etc/rc.d/nfsclient onestart
С виртуальной машиной пока закончили переходим к аппаратной машине и на ней включаем службу NFS.
- /etc/rc.d/rpcbind onestart
/etc/rc.d/nfsd onestart
/etc/rc.d/mountd onestart
При запуске nfsd запросит файл /etc/exports в этом варианте он выглядел так:
- / -maproot=root -network 10.9.130.0 -mask 255.255.255.0
/usr -maproot=root -network 10.9.130.0 -mask 255.255.255.0
/var -maproot=root -network 10.9.130.0 -mask 255.255.255.0
Как вы догадались это мои разделы апаратной машины.
Если все все сделано верно, то команда mount покажет параметр «NFS exported» для раздела
Теперь создадим папку в которой мы сделаем dump разделов
- mkdir /usr/backup
А теперь сам dump разделов:
- dump -0 -L -f - /var > /usr/backup/var.img
dump -0 -L -f - /usr > /usr/backup/usr.img
dump -0 -L -f - / > /usr/backup/root.img
Разберем утилиту dump:
- -0 – делается полный бэкап раздела
-L – дамп снимается с “живой” файловой системы. В корне раздела создается директория .snap куда и делается снимок текущего состояния файловой системы, с помощью которого снимается дамп.
-f – Писать дамп в файл
Некоторые могут сказать что дамп занимает много места и у них нет столько чтоб сделать dump монтируем флешку, или переносной диск, и все повторяем.
Возвращаемся к нашей виртуальной машине и создадим папки для монтирования локальных дисков:
- mkdir /var/mount/root
mkdir /var/mount/usr
mkdir /var/mount/var
Также создадим папку в которой будут подключены dump разделов
- mkdir /var/nfs/backup/
и подмонтируем диски. Если мы работаем с frenzy то нам сначало нужно размонтирывать диски а потом подмонтирывать:
- umount /dev/da0s1a /mnt/da0s1a.ufs/ раздел root
umount /dev/da0s1d /mnt/da0s1d.ufs/ раздел usr
umount /dev/da0s1e /mnt/da0s1e.ufs/ раздел var
Форматируем каждый раздел:
newfs /dev/da0s1a
newfs /dev/da0s1d
newfs /dev/da0s1e
После чего подмаунчиваем в rw в наши созданные директории
mount /dev/da0s1a /var/mount/root и т.д
Для подключения сетевой папки используем команду:
- mount_nfs:10.9.130.50 /usr/backup /var/nfs/backup/
В папочке /var/nfs/backup/ лежат наши дампы(сделаные ранее), которые нам нужно перенести в определенные разделы. Для этого :
- cd /var/mount/root
restore -r -f /var/nfs/backup/root.img
cd /var/mount/usr
restore -r -f /var/nfs/backup/usr.img
cd /var/mount/var
restore -r -f /var/nfs/backup/var.img
На этом все но не забудьте что могут буквы разделов на аппаратной и виртуальной машине отличатся (также сетевые интерфейсы), по этому лучше запомнить или сделать бэкап файла /etc/fstab виртуальной и аппаратной машины. У меня например даже после того как я изменил название букв в виртуальной машине она отказывалась видеть разделы. Мне пришлось скопировать раздел boot виртуальной машины до того как я затер раздел /. И вернуть его в зад после restore.