Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
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---------------------------------------------------------------------------
|
-Т.03---------------------------------------------------------------------------
|
-Т.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" информация сохраняется на диск резервируемого компьютера:
|
Результат работы скрипта (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"
|
Запуск скрипта второго варианта позволяет создать файлы резервной копии сразу на другом компьютере. К недостаткам можно отнести обязательную необходимость нормального функционирования 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*, но в моем случае
|
смотрим выше Т.03.
Запишем соответствия разделов и точек монтирования:
a - / b - swap d - /var e - /tmp f - /usr g - /home |
заходим в каталог mnt
|
Создаем папки для монтирования
|
создаем файловые системы
|
Для раздела swap (/dev/ad0s1b) можно сразу выполнить активацию раздела
|
теперь монтируем каждый том
|
Настраиваем сеть:
Для начала посмотрим, какие сетевые интерфейсы у нас в системе есть:
|
Вы должны увидеть список сетевых интерфейсов системы, среди которых есть ваши сетевые карты (у меня fxp0 и msk0 - в оригинальной системе, fxp0 и fxp1 в клонируемой) В будущем, после восстановления, нужно пройтись по всем файлам настроек, где фигурируют имена интерфейсов, и их изменить соответствующим образом (/etc/rc.conf, /etc/rc.firewall, /etc/ppp/ppp.conf и другие).
Присвоим нашему восстанавливаемому компьютеру внутренний IP 192.168.1.89, в целях эксперимента - отличный от оригинального (192.168.1.80). Для этих целей используется команда ifconfig, в нашем случае:
|
Пропишем шлюз по умолчанию команда route:
|
проверяем связь (выход из ping по Ctrl+C):
|
переходим смонтированный каталог, достаточного объема для всех файлов резервных копий и который не обязательно восстанавливать. Я выбрал "/mnt/tmp"
|
Из этого каталога заходим на ftp, включаем в режим бинарной передачи, забираем все необходимые файлы, выходим (ниже лишний вывод удален, только команды):
|
Вместо того что бы набирать имя каждого файла в команде ftp> get можно воспользоваться командой ftp> mget с шаблоном:
|
на вопрос команды ответить "a" (да, в смысле, все хочу, all).
В общем после относительно длительного окончания копирования файлов выходим из ftp по команде exit.
Запускаем restore с извлечением из архива и выводом на консоль и передачей в поток команде restore:
|
Если надо восстановить том "/tmp", следует перекинуть его файл
2011012016.3.tmp.img.gz (или все файлы 2011012016.*.*.img.gz), например, в
каталог "/mnt/home" (или другой, где после восстановления достаточно места)
|
или
|
и выполнить уже
|
Примечание: вообще то после команда restore файлы, которые были на целевом томе, остаются. Но их целостность я не проверял, а интернете пишут что команда restore - деструктивная. Я думаю пока имена существующих файлов не совпадают с именами восстанавливаемых, проблем не будет. Для чистоты эксперимента я предполагаю что restore уничтожает все файлы на целевом томе при восстановлении. Поэтому выше используется команда "mv".
Теперь смотрим результат
|
вроде все на месте. Редактируем fstab
|
акуратно меняем все ad4s? на ad0s?
чтобы удалить символ - подводим курсор под него (под "4") и давим "x", чтобы вставить символ - подводим курсор, давим "i", вставляем символ ("0"), давим "ESC" для возврата в командный режим. Как отредактировали - выходим с сохранением, давим в командном режиме ":wq" и
выходим. Обязательно внимательно проверьте результаты, например командой
|
т.к. если будет ошибка, вы не загрузитесь нормально. Для исправления прийдется опять загружаться с диска восстановления, монтировать раздел 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) Закомментировал строку
|
т.к. на другом железе режим наверняка будет другой. Его позже можно определить командой vidcontrol -i mode, но уже загрузившись со своего ядра, т.к. в ядре используемом "Fixit" этот набор очень ограничен.
Если не хотите работать с vi, то перед первой загрузкой откиньте сетевые кабели, загрузитесь в восстановленной системе и правьте этот и другие файлы в другом редакторе (например, mcedit).
Ну вот, думаю, пробное восстановление закончено, осталось выйти
|
и перегрузиться, нажимая все возможные "С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
Комментарии пользователей [23 шт.]