Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - Перенос образа системы. Что и как.

Ответить
Настройки темы
FreeBSD - Перенос образа системы. Что и как.

Старожил


Сообщения: 279
Благодарности: 9

Профиль | Отправить PM | Цитировать


Всем доброго времени суток.

Есть почтовый сервер на freebsd 6. Настроен на удаленной машине, в другой сети. Доступ через инет. Хочу перенести его в наше здание, на новый сервак. На виртуалку. Может быть есть удобные средства переноса системы ? чтобы потом айпишники сменить и продолжать работать без потери времени.

-------
И вот я начал познавать...


Отправлено: 07:14, 17-12-2012

 

Забанен


Сообщения: 6158
Благодарности: 1300

Профиль | Цитировать


Переносил пару старых сервантов на FreeBSD в виртуалку KVM. Написал даже руководство, если интересно, поделюсь.
Принцип простой - стандартный бсдшный dump/restore по ssh.

Отправлено: 17:38, 17-12-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 279
Благодарности: 9

Профиль | Отправить PM | Цитировать


Поделитесь плз

-------
И вот я начал познавать...


Отправлено: 06:10, 18-12-2012 | #3


Забанен


Сообщения: 6158
Благодарности: 1300

Профиль | Цитировать


В 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/ad0s1a    496M    169M    287M    37%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1d    1.5G     26M    1.4G     2%    /var
/dev/ad0s1e    496M     10K    456M     0%    /tmp
/dev/ad0s1f     15G    410M     13G     3%    /usr
bsdlabel ad0s1 > liveSPsizes, там будет что-то вида:
Код: Выделить весь код
# /dev/ad0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  1048576        0    4.2BSD        0     0     0
  b:  2291584  1048576      swap
  c: 39862305        0    unused        0     0
  d:  3241984  3340160    4.2BSD        0     0     0
  e:  1048576  6582144    4.2BSD        0     0     0
  f: 32231585  7630720    4.2BSD        0     0     0
Если размер целевого виртуального диска будет отличаться от исходного (а он скорее всего будет), то этот файлик надо отредактировать:
Код: Выделить весь код
# /dev/ad0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  1048576        0    4.2BSD        0     0     0
  b:  2291584  1048576      swap
  c:  *              0    unused        0     0
  d:  3241984  3340160    4.2BSD        0     0     0
  e:  1048576  6582144    4.2BSD        0     0     0
  f:  *        *          4.2BSD        0     0     0
В этом примере мы оставляем все разделы, кроме f (/usr) старого размера, а тот подгонится автоматически под размер нового носителя. Не забываем про фейковый "раздел" c!
scp liveSPsizes root@12.34.56.78:~ и пока оставляем physical в покое, идём на virtual.

Подготавливаем новый диск, слайсы, разделы, загрузочную запись:
fdisk -BI /dev/ad0
Ругнётся
Код: Выделить весь код
Fdisk: invalid fdisk partition table found
Fdisk: Class not 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.

Писалось это как памятка для себя, потому без подробных разъяснений, если что-то непонятно, спрашивайте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:20, 18-12-2012 | #4


Новый участник


Сообщения: 16
Благодарности: 2

Профиль | Отправить PM | Цитировать


Процедуры резервного копирования и восстановления

http://www.lissyara.su/?id=2157

Там может небольшая ошибочка выползти
в коментариях решение найдёшь или вот:
restore создает временный файл в директории которая определена TMPDIR переменной окружения. Если в этой директории места недостаточно то будет ошибка.
Переопределить переменную можно
export TMPDIR=/mnt/tmp/
посмотреть переменную
echo $TMPDIR

-------
Бред со смыслом! (с) stamp


Отправлено: 11:01, 29-12-2012 | #5


Аватара для MakaBooka

Старожил


Сообщения: 341
Благодарности: 45

Профиль | Отправить PM | Цитировать


FreeBSD 6... давненько не обновляли я бы например вместо переноса сервера на новом месте поднял 9-ку и в неё запихнул конфиги и данные.

Отправлено: 15:59, 01-01-2013 | #6


Забанен


Сообщения: 6158
Благодарности: 1300

Профиль | Цитировать


Цитата MakaBooka:
я бы например вместо переноса сервера на новом месте поднял 9-ку и в неё запихнул конфиги и данные. »
Если есть время и желание ковыряться в старом дерьме, проверяя, как новые версии всего дружат со старыми конфигами, то конечно можно. Даже нужно, нехорошо держать в продакшене старое дерьмо.

Но обычно ни времени, ни желания нет, а вот железка сдыхает, тем не менее, службы на ней нужны с минимальным даунтаймом или лучше вообще без него. Вот и переносим дешево и сердито. А потом уже можно спокойно заняться мыслями, куда какие службы как перенести, на новые версии или вообще другой софт.

Отправлено: 17:26, 27-01-2013 | #7



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - Перенос образа системы. Что и как.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Новые системы из образа в домен... DoublE_zone Microsoft Windows NT/2000/2003 17 17-12-2013 12:03
Загрузка - создание образа системы Viajero Microsoft Windows 7 6 21-12-2010 20:51
Установка - восстановление системы из образа nmn Microsoft Windows 2000/XP 4 08-02-2010 17:54
Создание образа системы sergant138 Хочу все знать 3 18-12-2009 09:17
Перенос образа Win2k Server с IDE винта на SATA oledjiks Microsoft Windows NT/2000/2003 2 21-03-2008 18:08




 
Переход