Вариант миграции FreeBSD с физического сервера в виртуальную среду VMware ESXi с помощью NFS

Задача.
Перенести существующий аппаратный сервер с FreeBSD 8.2 архитектура i386 и файловая система ufs в виртуальную среду VMware ESXEi 5.0.0


1. В виртуальной машине создаем диски нужного размера не меньше имеющихся с помощью инсталяционного iso образа FreeBSD, затем с этого же iso загружаемся в режиме Live. Прописываем все необходимые настройки для сетевых интерфейсов
	ifconfig em1 10.0.0.100/24
	route add 0 10.0.0.254
после этого проверяем доступность по сети реального сервера, если все Ok запускаем nfs
	/etc/rc.d/rpcbind onestart
	/etc/rc.d/nfsclient onestart

2. Подготовим аппаратный сервер к переносу для этого запустим службу nfs.
Запускать рекомендую именно в этой последовательности.
	/etc/rc.d/rpcbind onestart
	/etc/rc.d/nfsd onestart
	/etc/rc.d/mountd onestart
При запуске nfsd запросит файл /etc/exports в этом варианте он выглядел так(файловая система исторически содержала только 2 раздела / и /var ):
	 / -maproot=root -network 10.0.0.0 -mask 255.255.0.0
	 /var -maproot=root -network 10.0.0.0 -mask 255.255.0.0
Если все все сделано верно, то команда mount покажет параметр «NFS exported» для раздела:
	 # mount
	 /dev/da0s1a on / (ufs, asynchronous, NFS exported, local)
	 devfs on /dev (devfs, local, multilabel)
	 /dev/da0s1d on /var (ufs, asynchronous, NFS exported, local)

3. Возвращаемся к нашей виртуальной машине и создадим папки для монтирования локальных дисков:
/var/mount/root, /var/mount/var
и подмонтируем диски:
	mount /dev/da0s1a /var/mount/root
	mount /dev/da0s1d /var/mount/var
После этого разберемся с дисками физического сервера и создадим папки:
/var/nfs/root, /var/nfs/var
к которым монтируем расшаренные разделы физического сервера:
	mount_nfs 10.0.0.50:/ /var/nfs/root
	mount_nfs 10.0.0.50:/var /var/nfs/var
Теперь сервера готовы к переносу.

4. Перед переносом данных на физическом сервере необходимо остановить все службы, чтобы перенесенные данные были актуальны. Для переноса используем вот такой набор команд который запустим в виртуальной машине
	cd /var/nfs/root && pax -p eme -X -rw . /var/mount/root
	cd /var/nfs/var && pax -p eme -X -rw . /var/mount/var

Вот и все сервер перенесен в виртуальную машину. Понятно, что время миграции зависит от размера используемого пространства (в данном случае оба сервера были подключены Гигабитными интерфейсами и миграция 450 Гигабайт заняла несколько часов).

5. Заключительный и важный этап необходимо обязательно размонтировать локальные диски и только после этого перегружать виртуальную машину.

Теперь наслаждаемся работой на новом «железе».

PS. Думаю этот же вариант подойдет и для XEN.
Поделиться публикацией

Комментарии 4

    0
    В свое время сталкивался с аналогичной задачей. Решил на мой взгляд проще с помощью Clonezilla.
      0
      Как-то ради опыта игрался с xenserver, переносил свою линуксовую машину в виртуалку.
      На железке снимаем образ:
      dd if=/dev/sda of=/tmp/diskimage.raw (лучше of= на другой винт или сервер, у меня был usb hdd и куча свободного времени)
      Далее при помощи qemu-img convert конвертировал raw диск в формат vmdk. Образ для vmware готов, а для xenserver пришлось еще сделать импорт вмварного образа при помощи xencenter.
      Операций и сложности минимум.
        0
        Интересный способ, спасибо
          0
          Я подобным образом переводил из VirtualBox Linux на физический диск, так как ОС не возможно было поставить на эту машину. C usb она грузится не умеет, а подключить cdrom не было возможности.
          cat /dev/sda |gzip -cf >xxx.gz (файл на нфс моей машины)
          второй этап из файла на физ диск подключённый к моей машине.
          cat xxx.gz|gzip -cdf > /devsdx
          Думаю что этот способ еще легче чем ваш.
          gzip можно убрать или всю команду заменить на dd при быстрой сетке.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.