![]() |
Перенос образа системы. Что и как.
Всем доброго времени суток.
Есть почтовый сервер на freebsd 6. Настроен на удаленной машине, в другой сети. Доступ через инет. Хочу перенести его в наше здание, на новый сервак. На виртуалку. Может быть есть удобные средства переноса системы ? чтобы потом айпишники сменить и продолжать работать без потери времени. |
Переносил пару старых сервантов на FreeBSD в виртуалку KVM. Написал даже руководство, если интересно, поделюсь.
Принцип простой - стандартный бсдшный dump/restore по ssh. |
Поделитесь плз :)
|
В virt-manager создаём ВМ, тип FreeBSD, диск qcow2, остальное по умолчанию, кроме cache mode: writeback. Размер диска должен быть не меньше занимаемого данными объёма на physical + swap + запас, но спокойно может быть меньше физического.
Бутимся в неё с iso frenzy, далее поднимаем сеть и sshd: ifconfig em0 inet 12.34.56.78 netmask 255.255.255.0 route add default 12.34.56.1 echo "PermitRootLogin yes" >> /etc/ssh/sshd_config /etc/rc.d/sshd onestart passwd root Двигаем на physical, там: df -h смотрим имена узлов и занимаемый объём данных на них Будет что-то вида: Код:
Filesystem Size Used Avail Capacity Mounted on Код:
# /dev/ad0s1: Код:
# /dev/ad0s1: scp liveSPsizes root@12.34.56.78:~ и пока оставляем physical в покое, идём на virtual. Подготавливаем новый диск, слайсы, разделы, загрузочную запись: fdisk -BI /dev/ad0 Ругнётся Код:
Fdisk: invalid fdisk partition table found bsdlabel -B -w ad0s1 bsdlabel -R ad0s1 liveSPsizes newfs /dev/ad0s1a; mkdir /mnt/root; mount /dev/ad0s1a /mnt/root newfs -U /dev/ad0s1d; mkdir /mnt/var; mount /dev/ad0s1d /mnt/var newfs -U /dev/ad0s1e #это /tmp, копировать его бессмысленно. newfs -U /dev/ad0s1f; mkdir /mnt/usr; mount /dev/ad0s1f /mnt/usr Идём опять на physical, где начинается самая нудная часть нашей истории dump -0aLf - / | ssh root@12.34.56.78 "cd /mnt/root && cat | restore -rf -" dump -0aLf - /var | ssh root@12.34.56.78 "cd /mnt/var && cat | restore -rf -" dump -0aLf - /usr | ssh root@12.34.56.78 "cd /mnt/usr && cat | restore -rf -" Делается это довольно долго, так что имеет смысл заранее остановить все службы, кроме sshd, в особенности СУБД. Скорость порядка 2Мб/сек. Имеет смысл сделать полный дамп заранее, т.к. это займёт несколько часов, а при окончательном переносе делать инкрементальный дамп, типа: dump -1aLf - /var | ssh root@12.34.56.78 "cd /mnt/var && cat | restore -rf -" Идём на virtual, редактируем /mnt/root/etc/fstab в соответствии с изменившимся именем диска и /mnt/root/etc/rc.conf в соответствии с изменившимся именем сетевого интерфейса, который мы пока просто закомментируем. Shutdown, бросаем последний взгляд на настройки виртуалки и грузимся на этот раз с харда. В принципе всё должно быть ОК, только надо сразу сделать chmod 1777 /tmp Перегружаемся, убеждаемся, что всё поднялось, отключаем сеть physical и поднимаем сетевой интерфейс у virtual. Писалось это как памятка для себя, потому без подробных разъяснений, если что-то непонятно, спрашивайте. |
Процедуры резервного копирования и восстановления
http://www.lissyara.su/?id=2157 Там может небольшая ошибочка выползти в коментариях решение найдёшь или вот: restore создает временный файл в директории которая определена TMPDIR переменной окружения. Если в этой директории места недостаточно то будет ошибка. Переопределить переменную можно export TMPDIR=/mnt/tmp/ посмотреть переменную echo $TMPDIR |
FreeBSD 6... давненько не обновляли :) я бы например вместо переноса сервера на новом месте поднял 9-ку и в неё запихнул конфиги и данные.
|
Цитата:
Но обычно ни времени, ни желания нет, а вот железка сдыхает, тем не менее, службы на ней нужны с минимальным даунтаймом или лучше вообще без него. Вот и переносим дешево и сердито. А потом уже можно спокойно заняться мыслями, куда какие службы как перенести, на новые версии или вообще другой софт. |
Время: 19:24. |
Время: 19:24.
© OSzone.net 2001-