Перенос системы FreeBSD с одного сервера на другой.

Имеется сервер под FreeBSD-9.2 на котором установлена и работает хостинг панель.
Требуется перенести систему на новое железо.

Основы процедуры описаны в http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/disks.html#idp67483184
Это:
1. Размечаем диск на новом сервере(сервер2).
2. Монтируем его во временный каталог.
3. Используем dump - restore для переноса файловой системы со старого сервера (сервер1) на новый.

Опишу подробнее последовательность в моем случае и подводные камни с которыми столкнулся.

На сервере2 грузимся с live-cd (live-usb) и размечаем дисковое пространство:
Поскольку размер диска на сервере2 ( RAID 5 ) больше 2TB, то используем схему разметки GPT, а поскольку на сервере1 все дисковое пространство было выделено под корневой раздел, согласно рекомендации по установке хостинговой панели, то на сервере2 поступаем аналогично.
Сначала определяем, как именуются в системе дисковые устройства(dmesg), в моем случае это da0.
Создаем схему разметки GPT

# gpart create -s gpt da0
da0 created
Создаем boot раздел и устанавливаем туда загрузочный код
# gpart add -t freebsd-boot -l gpboot -b 40 -s 512K da0
da0p1 added

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
bootcode written to da0
Создаем корневой раздел, предварительно рассчитав размер
# gpart add -t freebsd-ufs -l gprootfs -b 1M -s 2690G da0
da0p2 added
Остальное под своп
# gpart add -t freebsd-swap -l gpswap da0
da0p3 added

# gpart show
34  5860377965  da0  GPT  (2.7T)
34           6       - free -  (3.0k)
40        1024    1  freebsd-boot  (512k)
1064         984       - free -  (492k)
2048  5830082560    2  freebsd-ufs  (2.7T)
5830084608    30293391    3  freebsd-swap  (14G)

Создаем файловую систему

# newfs -U /dev/gpt/gprootfs

Теперь надо смонтировать полученное устройство /dev/da0p2 (или /dev/gpt/gprootfs) в /mnt
# mount /dev/gpt/gprootfs /mnt
Далее задаем ip адрес для интерфейса к которому будем подключаться с сервера1
# ifconfig igb0 192.168.10.2 netmask 255.255.255.0

Теперь нужно запустить sshd чтобы можно было с сервера1 по ssh передать dump на сервер2. Поскольку мы загрузились с live-usb, то файловая система, в т.ч каталог /etc смонтирован в режиме ридонли. Чтобы запустить sshd нужно отредактировать /etc/ssh/sshd_config, задать пароль root и запустить sshd, для этого
#mkdir /tmp/etc
- каталог tmp доступен для записи.
# mount_unionfs /tmp/etc /etc
- см. man mount_unionfs
меняем в /etc/ssh/sshd-config
PermitRootLogin no на yes
и задаем пароль root -
# passwd root
, после чего стартуем sshd:
# /etc/rc.d/sshd onestart

Переходим к серверу1. Чтобы сделать dump требуется чтобы файловая система на старом сервере была с отключенной опцией soft update journalling. Изменить этот параметр можно с помощью tunefs, но чтобы это сделать требуется чтобы файловая система была либо размонтирована либо была ридонли. У меня не получилось выполнить tunefs на работающей системе и в single user mode. Поэтому загрузился на сервере1 с live-cd, и выполнил
# gmirror load
# fsck -t ufs -f /dev/mirror/gmos1a
- сначала исправим ошибки если есть, на всякий случай, предварительно подгрузив gmirror, поскольку он работает на сервере1, затем
# tunefs -j disable /dev/mirror/gm0s1a
Проверяем работает ли ssh соединение, пытаясь подключиться к серверу2. Если все в порядке, то выполняем
# dump -C16 -b64 -0aL -f - / | ssh root@192.168.10.2 "(cd /mnt && restore -rf -)"
Спустя некоторое время создание и развертывание дампа завершится. Теперь нужно внести изменения в конфигурационные файлы на сервере2, содержащие данные о старом железе, - об именах сетевых адаптеров и дисковых разделов. У меня это были следующие файлы:
/etc/fstab
/etc/firewall.conf
/etc/rc.d

После этого, включив новый сервер вместо старого, все заработало.

Ссылки:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/disks.html#idp67480624
https://www.freebsd.org/doc/handbook/geom-mirror.html
http://www.wonkity.com/~wblock/docs/html/disksetup.html
http://deathstar.name/ustanovka-freebsd-cherez-ssh-sessiyu

dump restore

примеры работы с dump restore
http://nix-sa.blogspot.com/2011/09/dump-restore.html

Отправить комментарий

CAPTCHA
Чтобы убедиться в том что Вы не робот, ответьте, пожалуйста, на вопрос
Fill in the blank