Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> dump/restore

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

Автор: egor.


Для компьютера под управлением OS FreeBSD на примере корпоративного сервера Proxy3 под управлением FreeBSD 8.2 PRERELASE #0

Предисловие.
В нашей "конторе" выход в интернет обеспечивал долгое время компьютер с громким именем прокси-сервер. Работал он на Windows 2003 R2 в связке с WinGate, Trafmetr в качестве шейпера, и стенка из Outpost pro. Не самая красивая связка, но исторически сложилась и нормально работала, пока канал во внешний мир был 256К. Когда канал вырос до 1М машинка стала тупить и не справляться. Екстенсивное решение заменой железа помогло, но не на долго. На горизонте маячило расширение канала, благо цены падали. Поэтому стал вопрос о создании нового решения. Выбор пал на FreeBSD. Три месяца чтения Лукаса, Таймена, эксперименты с кратким руководством от Корниенко и другими источниками принесли свои плоды - заработал под новый год сервер под FreeBSD. Может не все так как хотелось, но заработал.

Дальнейшее изучение FreeBSD и модернизация этой системы на рабочем сервере при отсутствии серьезного опыта потребовало обязательного решения по резервированию и восстановлению системы на случай неизбежных ошибок.
Эксперименты с пересборкой ядра и мира, плавный переход с версии 8.1 на 8.2 на этапе экспериментов решался клонированием системы на другой жесткий диск перед каждым более или менее радикальным шагом. Процедура клонирования занимала около часа и при введении сервера в эксплуатацию стала не приемлемой.      
Стал вопрос о нормальной процедуре резервирования и восстановления.
Результат чтения различных источников и нескольких экспериментов был задокументирован на случай сбоев и для других сотрудников нашей "конторы". Хочу заметить, что процедура резервного копирования системы под FreeBSD в интернете освещена более или менее подробно, а вот по восстановлению подробного описания найти не удалось.

Источники:
1) http://www.freebsd.org/doc/ru/books/handbook/backup-basics.html
2) http://hotfreebsd.ru/rezervnoe-kopirovanie-freebsd-pri-pomoshhi-dump-i-restore/
3) http://rm-rf.ucoz.ru/publ/11-1-0-14  
4) Майкл Лукас, FreeBSD, Санкт-Петербург–Москва, 2009, Подробное руководство, Второе издание.
5) Корниенко К.А. Корпоративный Интернет-сервер на базе ОС FreeBSD. Киев - 2008.
  http://www.andrewblog.ru/korporativnyj-internet-server-na-baze-freebsd/
  http://www.andrewblog.ru/files/e-books/FreeBSD_server.rar

Процедура резервного копирования.
Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, bsdlabel da0 | lpr), таблицу файловых систем (/etc/fstab) и все сообщения, выводимые при загрузке, каждого по два экземпляра.
-Т.01---------------------------------------------------------------------------
160G SATA2 ASPI
"Слики"
всего 71679 МБ ad4s1
всего 80947 МБ ad4s2 ? не размечено, резерв

part Mount вариант2 (авто )
ad4s1a / 1024 (512 )
ad4s1b swap 4062 (4062 )
ad4s1d /var 20480 (3055 )
ad4s1e /tmp 8192 (512 )
ad4s1f /usr 17441 (63538)
ad4s1g /home 20480 ()

-Т.02---------------------------------------------------------------------------
# bsdlabel ad4s1 
# /dev/ad4s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097152        0    4.2BSD        0     0     0 
  b:  8318976  2097152      swap                    
  c: 146800017        0    unused        0     0  # "raw" part, don't edit
  d: 41943040 10416128    4.2BSD        0     0     0 
  e: 16777216 52359168    4.2BSD        0     0     0 
  f: 35719168 69136384    4.2BSD        0     0     0 
  g: 41944465 104855552    4.2BSD        0     0     0 
bsdlabel: partition c doesn't cover the whole unit!
bsdlabel: An incorrect partition c may cause problems for standard system 
utilities

-Т.03---------------------------------------------------------------------------
# cat fstab  
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad4s1b             none            swap    sw              0       0
/dev/ad4s1a             /               ufs     rw              1       1
/dev/ad4s1g             /home           ufs     rw              2       2
/dev/ad4s1e             /tmp            ufs     rw              2       2
/dev/ad4s1f             /usr            ufs     rw              2       2
/dev/ad4s1d             /var            ufs     rw              2       2
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0

-Т.04-------------------------------------------------------------------------—
Во-вторых, запишите CD диск с 'livefs'. Этот диск позволяет загружаться в режим аварийного восстановления FreeBSD, давая возможность пользователю выполнять ряд утилит, среди которых dump(8), restore(8), fdisk(8), bsdlabel(8), newfs(8), mount(8) и т.д. Образ CD с 'livefs' для FreeBSD/i386 8.1-RELEASE находится по адресу
FreeBSD-8.1-RELEASE-i386-livefs.iso
(в нашем случае FreeBSD-8.2-RC2-i386-livefs.iso или FreeBSD-8.2-RC2-i386-livefs.iso

Примечание: для восстановления системы можно использовать и полный образ системы объемом примерно 2G, для DVD, используемый при инсталляции. Например из файла "FreeBSD-8.1-RELEASE-i386-dvd1.iso". В нем так же, как и в образе CD с 'livefs', есть все необходимое.    
Могу предположить что для восстановления может подойти любой диск от 7, 8. Но не проверял.

Резервное копирование. Способ 1.

По мотивам
http://hotfreebsd.ru/rezervnoe-kopirovanie-freebsd-pri-pomoshhi-dump-i-restore

1) С помощью скрипта "/home/backup/backup.sh" информация сохраняется на диск резервируемого компьютера:
#!/bin/sh
# резервное копирование основных разделов за исключением home
echo 'Начал копирование корневого раздела'
DATE=`date +%Y%m%d`
echo 'Начато копирование корневого раздела'
dump -0 -L -f - / | gzip -9  >  /home/backup/${DATE}.0.root.img.gz
echo 'Корневой раздел скопирован, жду 4 секунды'
sleep 4
dump -0 -L -f - /usr | gzip -9  >  /home/backup/${DATE}.1.usr.img.gz
echo 'Раздел usr скопирован, жду 4 секунды'
sleep 4
dump -0 -L -f - /var | gzip -9  >  /home/backup/${DATE}.2.var.img.gz
echo 'Раздел var скопирован.'
sleep 4
dump -0 -L -f - /tmp | gzip -9  >  /home/backup/${DATE}.3.tmp.img.gz
echo 'Раздел tmp скопирован.'
sleep 4
dump -0 -L -f - /home | gzip -9  >  /home/backup/${DATE}.4.home.img.gz
echo 'Раздел home скопирован.'
sleep 1
echo 'Все задачи резервного копирования выполнены.'
#

Результат работы скрипта (3.5G запакованный) перебрасывается на другой компьютер
19.01.2011 20:13 122 393 031 20110119.0.root.img.gz
19.01.2011 20:45 1 244 767 957 20110119.1.usr.img.gz
19.01.2011 20:48 393 092 365 20110119.2.var.img.gz
19.01.2011 20:48 16 514 20110119.3.tmp.img.gz
19.01.2011 20:52 1 750 937 084 20110119.4.home.img.gz

Длительность процедуры резервирования для компьютера следующей комплектации:

Intel Pentium 4 630, 3000 MHz (15 x 200)
Asus P5GDC Pro (Intel Grantsdale i915P)
ATI Radeon X550 (RV370) (128 Мб)
2048 Мб (2x1G Мб PC3200 DDR SDRAM Samsung)
SAMSUNG HD160JJ (160 Гб, 7200 RPM, SATA-II)
сеть
1)Onboard (Marvell Yukon 88E8053 PCI-E Gigabit Ethernet Controller)
2)External (Intel(R) PRO/100+)

составляет 42.14 мин или по разделам

раздел    сек    архив,мб
------------------------
root    217    116.72
usr    1914    1187.1
var    175    374.9
tmp    0    0.016
home    222    1669.8
------------------------
summ    2528    3348.5

Недостатком этого способа можно назвать двукратное превышение объема из за рекурсии информации на томе home (файл 20110119.4.home.img.gz) содержит копии всех предыдущих файлов 20110119.4.*.img.gz.
Возможно этого избежать путем записи файлов на разные тома с последующим перемещением или изменения последовательности резервирования (например сначала копировать том home).
В любом случае после копирования информацию необходимо переместить на другой носитель (либо резервный HDD в составе того-же компьютера, либо на другой компьютер, либо на сменный носитель - DVD-R/RW и прочая). Это еще дополнительно время (около получаса).

Резервное копирование. Способ 2.

По мотивам http://rm-rf.ucoz.ru/publ/11-1-0-14

2) Во избежание недостатков первого способа были проведены следующие действия:
2.1) Обеспечен доступ к ftp серверу
   (В моем случае по адресу 192.168.1.3 на сервере под управлением
    MS Windows 2003 R2 создан в IIS узел ftp на порту 8022 с полным доступом
    для учетной записи proxy3 c паролем proxy3 и резервом дискового
    пространства порядка 50G.)
2.2) Создан следующий скрипт "/home/backup/backup2.sh"
#!/bin/sh
###############################################################################
# Резервное копирование системы 
# по мотивам
#http://hotfreebsd.ru/rezervnoe-kopirovanie-freebsd-pri-pomoshhi-dump-i-restore
#http://rm-rf.ucoz.ru/publ/11-1-0-14
###############################################################################
#
# собственно типовая функция бакапа на ftp Сервер
dump_to_ftp () {
############################################################################
#ftp -i -A -P 8022 -u ftp://proxy3:proxy3@192.168.1.3/ 20110119.*
#ftp -i -A -P 8022 -u ftp://proxy3:proxy3@192.168.1.3/20110119.2.var.img.gz -

  echo "------- Begin dump party '/${party}' copy to ftp ----------------"
  dump -0 -L -f - /${party} | gzip -9 | ftp ${ftpkeys} -u \
ftp://${usr}:${pass}@${ftpsrv}/${DATE}.${num}.${partyn}.img.gz -
  res=${?}
  echo "------- End dump '/${party}', sleep 4c ----"
  sleep 4
  echo ' '
  return ${res}
}

DATE=`date +%Y%m%d%H`
ftpkeys="-i -a -A -P 8022"
usr="proxy3"
pass=${usr}
ftpsrv="192.168.1.3"

num="0"
party=""
partyn="root"
dump_to_ftp
echo ${?}

num=`exp ${num}+1`
party="usr"
partyn=${party}
dump_to_ftp 
echo ${?}

num=`exp ${num}+1`
party="var"
partyn=${party}
dump_to_ftp 
echo ${?}

num=`exp ${num}+1`
party="tmp"
partyn=${party}
dump_to_ftp 
echo ${?}

num=`exp ${num}+1`
party="home"
partyn=${party}
dump_to_ftp 
echo ${?}

sleep 1
echo '---- End dump all party ----------'

Запуск скрипта второго варианта позволяет создать файлы резервной копии сразу на другом компьютере. К недостаткам можно отнести обязательную необходимость нормального функционирования ftp сервера. Общий объем файлов резервной копии составляет около 1.7G.
20.01.2011 16:27 122 395 390 2011012016.0.root.img.gz
20.01.2011 17:01 1 244 749 850 2011012016.1.usr.img.gz
20.01.2011 17:04 420 885 064 2011012016.2.var.img.gz
20.01.2011 17:05 16 562 2011012016.3.tmp.img.gz
20.01.2011 17:05 313 945 2011012016.4.home.img.gz

Процедура восстановления.

По мотивам 17.12.8. Процедура восстановления при сбое

3) Для дополнительной страховки, каждый раз создавайте загрузочный CD диск с 'livefs'. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от
ваших компьютеров и дисковых устройств.

Процедура тестового восстановления:

3.1) Берем компьютер следующей комплектации
Intel Celeron D 325, 2533 MHz (19 x 133)
Asus P4P800-VM i865G
Inboard (Intel(R) 82865G Graphics Controller (64 Мб)
1G (1 PC3200 DDR SDRAM)
HDD 160 Гб, 7200 RPM, Ultra-ATA/133
сеть
 1)Onboard (Intel(R) PRO/100 S)
 2)External (Intel(R) PRO/100+)

Запускаемся с USB DVD-RW с диском 'livefs' см.выше Т.04)

После загрузки:

1) На экран будет выведено оригинальное меню установки. Выберите требуемую страну, потом в меню "Custom" там разбиваем жёсткий диск – меню "3 Partition".
Попадаем в программу, чем-то напоминающую fdisk для DOS. Подсказки по меню расположены внизу экрана.Основные команды – клавиша "C"  (создать раздел), "D" (удалить раздел). Cоздаем слайк(slice, Partirion) нужного размера (71679М, в принципе можно и больше и меньше объем, но для теста делаю так). Выходим отсюда клавишей "Q", выбираем стандартный загрузчик (Standard)

2) И приступаем к разметке – пункт меню "4 Label". Мы попадаем в ещё одну утилиту, напоминающую fdisk. Подсказки так же отображены внизу экрана. Последовательность действий следующая: нажимаем "C" (создать), определяем размер (например 512M или 2G), выбираем "file system" это у нас будет или "swap" и определяем имя файловой системы, начиная от корневого каталога. Первым нужно создать корневой каталог "/", затем swap, затем все остальные, например "/var". Если что-то создали не так, нажмите "D" (удалить). Типы и размеры разделов выбираем как выше, в Т.01. После того как все указали - давим "W" - сохранить текущие изменения. Выходим отсюда клавишей "Q".
Замечание: имена томов могу отличаться. Например, сам слайк(slice, Partirion) в оригинальной системе именуется "ad4s1" а в резервной у меня "ad0s1". Соответственно изменяться имена томов. эту разницу нужно будет потом учесть позже, до первой загрузки, изменив файл "/etc/fstab".

3) Применяем изменения (пункт 7 "Coommit")

4) Выбираем пункт меню "Fixit - Repair mode with CDROM/DVD/floppy or start a shell.",
а в нём выберите пункт CDROM/DVD - Use the live filesystem CDROM/DVD.

Cмотрим, какие разделы есть, что есть, не факт что ad*, но в моем случае
Fixit# ls /dev/ad*
/dev/ad0      /dev/ad0s1a    /dev/ad0s1d    /dev/ad0s1f
/dev/ad0s1    /dev/ad0s1b    /dev/ad0s1e    /dev/ad0s1g

смотрим выше Т.03.
Запишем соответствия разделов и точек монтирования:
a - /
b - swap
d - /var
e - /tmp
f - /usr
g - /home

заходим в каталог mnt
Fixit# cd /mnt

Создаем папки для монтирования
Fixit# mkdir root
Fixit# mkdir var
Fixit# mkdir tmp
Fixit# mkdir usr
Fixit# mkdir home

создаем файловые системы
Fixit# newfs /dev/ad0s1a
Fixit# newfs /dev/ad0s1d
Fixit# newfs /dev/ad0s1e
Fixit# newfs /dev/ad0s1f
Fixit# newfs /dev/ad0s1g

Для раздела swap (/dev/ad0s1b) можно сразу выполнить активацию раздела
Fixit#  swapon /dev/ad0s1b

теперь монтируем каждый том
Fixit# mount /dev/ad0s1a /mnt/root
Fixit# mount /dev/ad0s1d /mnt/var
Fixit# mount /dev/ad0s1e /mnt/tmp
Fixit# mount /dev/ad0s1f /mnt/usr
Fixit# mount /dev/ad0s1g /mnt/home

Настраиваем сеть:

Для начала посмотрим, какие сетевые интерфейсы у нас в системе есть:
Fixit# ifconfig

Вы должны увидеть список сетевых интерфейсов системы, среди которых есть ваши сетевые карты (у меня fxp0 и msk0 - в оригинальной системе, fxp0 и fxp1 в клонируемой) В будущем, после восстановления, нужно пройтись по всем файлам настроек, где фигурируют имена интерфейсов, и их изменить соответствующим образом (/etc/rc.conf, /etc/rc.firewall, /etc/ppp/ppp.conf и другие).
Присвоим нашему восстанавливаемому компьютеру внутренний IP 192.168.1.89, в целях эксперимента - отличный от оригинального (192.168.1.80). Для этих целей используется команда ifconfig, в нашем случае:
Fixit# ifconfig fxp0 inet 192.168.1.89 netmask 255.255.255.0

Пропишем шлюз по умолчанию  команда route:
Fixit# route add default  192.168.1.1

проверяем связь (выход из ping по Ctrl+C):
Fixit# ping 192.168.1.3

переходим смонтированный каталог, достаточного объема для всех файлов резервных копий и который не обязательно восстанавливать. Я выбрал "/mnt/tmp"
Fixit# cd /mnt/tmp

Из этого каталога заходим на ftp, включаем в режим бинарной передачи, забираем все необходимые файлы, выходим (ниже лишний вывод удален, только команды):
Fixit# ftp -A ftp://proxy3:proxy3@192.168.1.3:8022/
ftp> binary
ftp> get 2011012016.0.root.img.gz
ftp> get 2011012016.1.usr.img.gz
ftp> get 2011012016.2.var.img.gz
ftp> get 2011012016.3.tmp.img.gz
ftp> get 2011012016.4.home.img.gz
ftp> exit
Fixit#

Вместо того что бы набирать имя каждого файла в команде ftp> get можно воспользоваться командой ftp> mget с шаблоном:
ftp> mget 2011012016*

на вопрос команды ответить "a" (да, в смысле, все хочу, all).
В общем после относительно длительного окончания копирования файлов выходим из ftp по команде exit.
Запускаем restore с извлечением из архива и выводом на консоль и передачей в поток команде restore:
Fixit# gzip -d -с 2011012016.0.root.img.gz | ( cd /mnt/root ; restore -rf - )
Fixit# gzip -d -с 2011012016.1.usr.img.gz | ( cd /mnt/usr ; restore -rf - )
Fixit# gzip -d -с 2011012016.2.var.img.gz | ( cd /mnt/var ; restore -rf - )
Fixit# gzip -d -с 2011012016.4.home.img.gz | ( cd /mnt/home ; restore -rf - )

Если надо восстановить том "/tmp", следует перекинуть его файл
2011012016.3.tmp.img.gz (или все файлы 2011012016.*.*.img.gz), например, в
каталог "/mnt/home" (или другой, где после восстановления достаточно места)
Fixit# mv /mnt/tmp/2011012016.3.tmp.img.gz /mnt/home/

или
Fixit# mv /mnt/tmp/2011012016.*.*.img.gz /mnt/home/

и выполнить уже
Fixit# cd /mnt/home
Fixit# gzip -d -c 2011012016.3.tmp.img.gz | ( cd /mnt/tmp ; restore -rf - )

Примечание: вообще то после команда restore файлы, которые были на целевом томе, остаются. Но их целостность я не проверял, а интернете пишут что команда restore - деструктивная. Я думаю пока имена существующих файлов не совпадают с именами восстанавливаемых, проблем не будет. Для чистоты эксперимента я предполагаю что restore уничтожает все файлы на целевом томе при восстановлении. Поэтому выше используется команда "mv".
Теперь смотрим результат
Fixit# cd /mnt/root
Fixit# ls

вроде все на месте. Редактируем fstab
Fixit# vi etc/fstab

акуратно меняем все ad4s? на ad0s?
чтобы удалить символ - подводим курсор под него (под "4") и давим "x", чтобы вставить символ - подводим курсор, давим "i", вставляем символ ("0"), давим "ESC" для возврата в командный режим. Как отредактировали - выходим с сохранением, давим в командном режиме ":wq" и
выходим. Обязательно внимательно проверьте результаты, например командой
Fixit# cat etc/fstab

т.к. если будет ошибка, вы не загрузитесь нормально. Для исправления прийдется опять загружаться с диска восстановления, монтировать раздел root и вносить исправления.
В процессе эксперимента я еще исправил etc/rc.conf, в частности:
1) Заменил имена интерфейсов msk0 на fxp0, fxp0 на fxp1.
2) Изменил адрес сетевого интерфейса (теперь fxp0) c 192.168.1.80 на
192.168.1.89 чтобы не "задеть" нормально работающий сервер. Практика показала
что не он задевается, но лучше поберечься.
3) изменил hostname c "proxy3" на "proxy3d"
4) Закомментировал строку
 allscreens_flags="-f 8x16 cp866-8x16.fnt MODE_292"

т.к. на другом железе режим наверняка будет другой. Его позже можно определить командой vidcontrol -i mode, но уже загрузившись со своего ядра, т.к. в ядре используемом "Fixit" этот набор очень ограничен.

Если не хотите работать с vi, то перед первой загрузкой откиньте сетевые кабели, загрузитесь в восстановленной системе и правьте этот и другие файлы в другом редакторе (например, mcedit).

Ну вот, думаю, пробное восстановление закончено, осталось выйти
Fixit# reboot 

и перегрузиться, нажимая все возможные "Сansel", "Exit".
Успехов.



размещено: 2011-01-25,
последнее обновление: 2011-10-24,
автор: egor


Vadim, 2011-01-27 в 10:08:08

Автор слышал про бакулу?

egor, 2011-01-27 в 13:23:39

Почитал, вещь хорошая, но когда у тебя одна машина под FreeBSD, то, думаю, такие большие и сложные возможности излишние. Почитайте по первому источнику п. 17.12.7. Я не открою истины, если скажу, что чем проще, тем надежнее.

fox, 2011-02-01 в 12:22:29

Спасибо за старание автору!
Но если хочется не переживать за сервер ставти рейд на gmirrore или на zfs! А вобще вот факт из жизни, сервер который я когда-то в 2006 год настраивал, и потом ушёл с той конторы по политическим причинам и вернувшись туда снова совсем недавно... Так вот сервер досихпор работает хоть был поскудно настроен и все последующе кто меня заменил нечерта в нём не смыслили не сооброжали... Вывод бекапить нужно не всю систему а стратегически данные бакула сойдёт в полне или аманда как вариант! Но а что бы безотказным был нужен рейд или делать кластер...

olax, 2011-04-27 в 0:03:45

Согласен с автором - чем проще тем лучше.
таким образом скопировал несколько серверов. рейд массивы - это не панацея(печальный опыт).
замечание сначала нужно бекапить раздел НА который будете складывать архивы а потом все остальные. Например /usr (т.к. самый  большой в стандартной установке). Таким образом не будет вложенных архивов.
скрипт мне понравился - возьму на вооружение.
Для fox, поверь - иногда лучше переносить целые системы чем по ключевым кускам!!

vv0rk, 2011-07-09 в 14:10:54

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

Владимир, 2011-10-21 в 13:13:56

>Типы и размеры разделов выбираем как выше, в Т.01. Выходим отсюда клавишей \"Q\".
Перед нажатим \"Q\", я нажимаю \"W\" сохранить текущие изменеия, потому как без них высвечивается, на этапе установки, <не известный формат диска>.

[Tycho], 2012-07-02 в 0:20:22

fox, только надо не путать отказоустойчивость с бэкапами.
Наличие RAID не означает что бэкапить уже не надо, т.к. он не спасает от печалек типа ошибочного удаления, взлома и.т.п.

fox, 2012-07-02 в 1:29:19

Tycho А снапшот на ZFS не бекап?

kombat, 2012-09-14 в 9:35:53

акуратно меняем все ad4s? на ad0s?
чтобы удалить символ - подводим курсор под него (под "4") и давим "x", чтобы вставить символ - подводим курсор, давим "i", вставляем символ ("0"), давим "ESC" для возврата в командный режим. Как отредактировали - выходим с сохранением, давим в командном режиме ":wq"
Можно нажимать на "r" вместо "x" и "i"

egor, 2012-10-22 в 14:13:50

fox, 2012-07-02 в 1:29:19
Tycho А снапшот на ZFS не бекап?
Нет, это возможность откатиться на какой то момент.
Если хочешь бакап, то отправь снапшот на другой источник (send), и потом научись его, при необходимости от -тель забрать, например если вымрет диск/диски. Я с этим сейчас только разбираюсь.

egor, 2012-10-22 в 14:16:05

>kombat, 2012-09-14 в 9:35:53
>акуратно меняем все ad4s? на ad0s?
...
>Можно нажимать на \"r\" вместо \"x\" и \"i\"
Может и можно, а я как \"нашел\" редактор \"ee\", забыл об этом Vi, как о тяжелом сне. Так что, жумаю эти танцы уже не актуальны.

mtv, 2013-01-28 в 17:18:09

# uname -sr
FreeBSD 9.1-RELEASE

# dump -0 -L -f - / | gzip -9  > root.img.gz
mksnap_ffs: Cannot create snapshot //.snap/dump_snapshot: /: Snapshots are not yet supported when running with journaled soft updates: Operation not supported
dump: Cannot create //.snap/dump_snapshot: No such file or directory

Есть другие варианты, кроме dump|restore ?

egor, 2013-01-28 в 17:26:00

 у тебя часом не ZFS?
Тогда смотри тут
http://www.lissyara.su/?id=2224

oleg, 2013-08-11 в 18:03:19

На каждом сервере имею раздел /backup для временного складирования копий перед отправкой на фтп
Также при восстановлении его уже можно создать и подмонтировать, указать как TMPDIR и затянуть на него копии .img.gz. Это избавляет от перекидывания образов между разделами

nero777, 2013-08-31 в 10:42:58

FreeBSD 9.1-RELEASE-p3

тоже что и у mtv
* * * * * * * * * * * * * * * * * * * * *
# dump -0 -L -f - / | gzip -9  > root.img.gz
mksnap_ffs: Cannot create snapshot //.snap/dump_snapshot: /: Snapshots are not yet supported when running with journaled soft updates: Operation not supported
dump: Cannot create //.snap/dump_snapshot: No such file or directory
* * * * * * * * * * * * * * * * * * * * * * *
/dev/ada0s1a    /  ufs     rw      2       2


nero777, 2013-08-31 в 10:45:17

for mtv
всегда пользуюсь tar

mtv, 2013-09-01 в 23:07:09

for nero777
Так и делаю, еще с прошлого века :).
Однако гуру рекомендуют -
"...19.10.7. Which Backup Program Is Best?
dump(8) Period. Elizabeth D. Zwicky torture tested all the backup programs discussed here. The clear choice for preserving all your data and all the peculiarities of UNIX® file systems is dump. ..."

egor, 2013-09-02 в 12:38:17

Всем здрасте. Я недавно столкнулся на FreeBSD 9.2 под ufs с невозможностью сделать снапшот. Тут либо отключать журналирование UFS, либо бакапиться в однопользовательском режиме, что ни в какие ворота. Я решил съехать полностью на ZFS. В FreeBSD 9.2 появились ньансы, и скрипты из http://www.lissyara.su/?id=2224 сейчас переделываю.

Егор Бабенко, 2013-09-02 в 18:09:59

Тёзке респект и уважуха за статью, всё разжевано и понятно.
Однако, 2 вопроса:
1) что делать с журналируемой UFS? Из под неё dump никак резаться не желает.
2) учитывая, что бэкап делается достаточно большое время - это получается все активные демоны гасить нужно или как? Например, если это нагруженный вэб, кто-то по FTP-шке шарится + плюс не счетное количество почты обменивается включая спам... Остановка такой машины даже ночью грозит получением выходного пособия...

egor, 2013-09-02 в 18:39:29

1) Отключать журналирование.
  методом тюнига фс.
  навскидку нагуглил тут
http://forums.freebsd.org/showthread.php?p=173305
http://www.cyberforum.ru/freebsd/thread818924.html
Последняя ссылка хорошо все объясняет.
--------------
Для снятия дампа с работающей файловой системы (dump с параметром L) потребовалось отключить Soft-Updates. Делается это так:
1. загрузиться в сингл-юзер режиме
2. выполнить команду tunefs -n disable /dev/диск
После этого стал работать и дамп и клонхдд.
Но вот вопрос: не вызовет ли отключение Soft-Updates каких-либо проблем в работе сервера?
...
Отключение журналирования может быть чревато более длительным временем проверки целостности ФС, если некорректно завершить работу, нажать reset, или если свет отключат - пользуемся бесперебойником.
--------------
2) если отключите, тогда будет работать ключ -L, т.е. получиться в дампе актуальный снапшот. Если делать без ключа -L, то получиться черти че. т.е. это черти че можно делать корректно в однопользовательской режиме.

Егор Бабенко, 2013-09-02 в 20:12:05

Спасибо за ответ и ссылки, но эти маны я уже давно все перекурил и они все не подходят. Загрузиться на удаленной машине в сингле - понятия не имею как это сделать, только методом портирования на площадку колокации, KVM нету. Значит остаётся только обычный бэкап.

rubylnik, 2013-10-16 в 18:06:50

Необходима ваша помощь.
Возник ряд вопросов:
1. При создании newfs выдает сообщение failed to open disk to writing.
2. При # mount /dev/ad0s1a /mnt/root пишет device already use
3. при mount /dev/ad0s1a /mnt/root пишет  divice busy.
Что-то в комментариях пропустил может быть

Phanthom, 2013-12-23 в 19:27:23

>Процедура клонирования занимала около часа и при введении сервера в эксплуатацию стала не приемлемой.  
При этом процедура dump занимает около 42 минут, плюс надо иметь лайфсиди для восстановления и знать кучу команд. А время восстановления при сбое прямопропорционально вычету из зп.
У меня сервак не жизненно важен, и тем не менее, пользуюсь клоном. Подключил другой диск такой же емкости. Ночью можно по крону, можно после каждого изменения вручную запускать ддху. При этом время восстановления системы - переткнуть в биосе загрузку с другого винта, а то и еще проще - если выставлена очередность загрузки то просто дернуть старый винт из системника.
В случае описанном в статье по времени автор ни сколько не выйграл, а то и проиграл. А геморроя огреб(ет) при сбое.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0499 секунд
Из них PHP: 42%; SQL: 58%; Число SQL-запросов: 76 шт.
Исходный размер: 78882; Сжатая: 18512