Необходимость дампить систему рано или поздно появляется у Всех. Я не исключение...
Преимущестов утилит dump/restore в том, что они есть на любой юникс системе.
На основе этих утилит постоено достаточно много различных систем бекапирования, которые по сути являются просто надстройками над ними.
Я рассмотрю, как сделать дамп с какого либо раздела на FreeBSD.
Учитывая, что в большинстве случаев нет возможности остановить сервер, либо перевести разделы на время давмпа в read only, то необходимо дампить раздел "на живую".
где 0 — максимальный уровень сохранения информации при дампе, он гарантирует, что вся информация о системе будет сохранена
a – авторазмер (пропуск всех проверок длины лент, пишет пока хватает места)
L – ключ, используемый при снятии дампа с «живой» файловой системы.
u – обновление файла dumpdates (фиксирует, когда был последний раз задамплен слайс)
f – сохраняет дамп в файл
/usr/dump/root_ad4s1a – путь к файлу с дампом и, собственно, сам файл с дампом
/ - файловая система для дампа (можно заменить на /dev/ad0s1a)
Более подробно описаны ключи man dump (RU).
Казалось бы все, дамп есть. Что может быть проще?
Вот здесь и появляются нюансы.
По идее dump с ключем -L, позволяет дампить "на живую".
Создает сначала snapshot раздела, дампит его и удалает этот снапшот.
Но у меня такой дамп восстановить не получилось.
Выдавались ошибки:
Мы не блокировали никаких операций на HDD, не перемонтировали в RO и получили рабочий дамп, в чем сейчас и убедимся.
Восстановление из дампа:
Восстановление происходит при помощи утилиты restore.
Основные ключи:
-i восстановление в интерактивном режиме
-f file восстановление из файла
-r Восстановление (создание заново файловой системы). Целевая файловая система, должна быть сделана ранее с newfs(8), смотнтирована, и пользователь должен перейти в подготовленную ранее файловую систему прежде чем начнется восстановление нулевого уровня из резервной копии. Если уровень 0 восстановлен удачно, флаг -r может использоватся для восстановления всех необходимых инкрементальных бекапов выше уровня 0. Флаг -r устраняет интерактивное извлечение файлов и может являтся вредным , если он не будет применятся аккуратно.
Более подробно описаны ключи man restore (RU)
-v заставляет выводить имя каждого файла (обычно restore работает тихо)
-y При ошибках и бедблоках игнорирует их и продолжает восстановление
-N фейковое восстановление, т.е. читается дамп и имитируется восстановление, без реального извлечения файлов. Полезно для тестирования дампа.
-x извлечение всех файлов
Выборочное восстановление файлов из дампа (без сжатия)
Можно также восстанавлить и в автоматическом режиме.
Предварительно переходим в нужную папку и делаем
Полного восстановления раздела из дампа:
Для начала нужно подготовить раздел жесткого диска Форматируем его (Указать свой!!!)
Сслылки:
dump/restore
Процедуры резервного копирования и восстановления
FreeBSD – работа с dump и restore
Системный дамп FreeBSD.
Резервное копирование FreeBSD при помощи DUMP и RESTORE
dump (rdump) - создаёт дамп ФС
man restore (RU)
man dump (RU)
clonehdd
Клонирование дисков во FreeBSD - описание утилиты clonehdd.
clonehdd - копирование разделов жесткого диска на другой.
Преимущестов утилит dump/restore в том, что они есть на любой юникс системе.
На основе этих утилит постоено достаточно много различных систем бекапирования, которые по сути являются просто надстройками над ними.
Я рассмотрю, как сделать дамп с какого либо раздела на FreeBSD.
Учитывая, что в большинстве случаев нет возможности остановить сервер, либо перевести разделы на время давмпа в read only, то необходимо дампить раздел "на живую".
dump -0aLuf /usr/dump/root_ad4s1a /
где 0 — максимальный уровень сохранения информации при дампе, он гарантирует, что вся информация о системе будет сохранена
a – авторазмер (пропуск всех проверок длины лент, пишет пока хватает места)
L – ключ, используемый при снятии дампа с «живой» файловой системы.
u – обновление файла dumpdates (фиксирует, когда был последний раз задамплен слайс)
f – сохраняет дамп в файл
/usr/dump/root_ad4s1a – путь к файлу с дампом и, собственно, сам файл с дампом
/ - файловая система для дампа (можно заменить на /dev/ad0s1a)
Более подробно описаны ключи man dump (RU).
Казалось бы все, дамп есть. Что может быть проще?
Вот здесь и появляются нюансы.
По идее dump с ключем -L, позволяет дампить "на живую".
Создает сначала snapshot раздела, дампит его и удалает этот снапшот.
Но у меня такой дамп восстановить не получилось.
Выдавались ошибки:
unknown tape header type 16777216
abort[yn]n
Checksum error 65411300137, inode 0 file
resync restore, skipped 69168 blocks
expected next file 70660, got 0
...
partial block read: 20253 should be 32764
End-of-tape encpuntered
Mount tape volume 2
Enter "none" if there are no more tapes
otherwise enter tape name (default: /mnt/tmp/back/dump_root.img)
...
ругань на cannot create hard link
...
bad entry: incomplete operation
name: /sbin/adjkerntz
parent name ./sbin
sibling name: ./sbin/zpool
entry type: LEAF
inode number: 70660
flags: NEW
abort?[yn]
Данную проблему можно обойти если делать snapshot самому, а затем дампить с него. Работа со снапшотами в UFS2 боле подробно описана в snapshot UFS2 во FreeBSD.
Делаем snapshot корня в файл /.snap/2011090100
mount -u -o snapshot /.snap/2011090100 /
Привязываем созданный снапшот к устройству /dev/md1 (номер зависит от праметра -u)
mdconfig -a -t vnode -f /.snap/2011090100 -u 1
Делаем простой дамп
dump -0 -a -f root_ad4s1a.img /dev/md1
Если нужен запакованный дамп
dump -0 -a -f - /dev/md1 | gzip -9 > root_ad4s1a.img.gz
Если нужен запакованный дамп со сбросом на ftp
dump -0 -a -f - /dev/md1 | gzip -9 - | ftp -u ftp://epbackup:pamelafktyf@192.168.0.2/root.dump.gz -
Т.е. получается, что делается дамп со снапшота, затем переадется через пайп (|)на архивацию gzip, после чего отправляем по ftp. Синтаксис отправки по ftp [протокол]://[логин]:[пароль]@[сервер]/[путь/][файл_дампа].
Отключаем снапшот
mdconfig -d -u 1
Мы не блокировали никаких операций на HDD, не перемонтировали в RO и получили рабочий дамп, в чем сейчас и убедимся.
Восстановление из дампа:
Восстановление происходит при помощи утилиты restore.
Основные ключи:
-i восстановление в интерактивном режиме
-f file восстановление из файла
-r Восстановление (создание заново файловой системы). Целевая файловая система, должна быть сделана ранее с newfs(8), смотнтирована, и пользователь должен перейти в подготовленную ранее файловую систему прежде чем начнется восстановление нулевого уровня из резервной копии. Если уровень 0 восстановлен удачно, флаг -r может использоватся для восстановления всех необходимых инкрементальных бекапов выше уровня 0. Флаг -r устраняет интерактивное извлечение файлов и может являтся вредным , если он не будет применятся аккуратно.
Более подробно описаны ключи man restore (RU)
-v заставляет выводить имя каждого файла (обычно restore работает тихо)
-y При ошибках и бедблоках игнорирует их и продолжает восстановление
-N фейковое восстановление, т.е. читается дамп и имитируется восстановление, без реального извлечения файлов. Полезно для тестирования дампа.
-x извлечение всех файлов
Выборочное восстановление файлов из дампа (без сжатия)
# restore -if root_ad4s1a.img
restore > ls
.:
.cshrc dev/ new/
.profile dist/ proc/
.snap/ entropy rescue/
etc/ root/
COPYRIGHT home@ sbin/
bin/ lib/ sys@
boot/ libexec/ tmp/
cdrom/ media/ usr/
compat@ mnt/ var/
restore > cd /etc
restore > add rc.conf
restore > add /boot/*
restore > extract
You have not read any tapes yet.
If you are extracting just a few files, start with the last volume
and work towards the first; restore can quickly skip tapes that
have no further files to extract. Otherwise, begin with volume 1.
Specify next volume #: 1
set owner/mode for '.'? [yn] y
restore > q
В результате в текущей папке будет восстановлены /boot/* и /etc/rc.conf со всеми правами, которые были ранее.Можно также восстанавлить и в автоматическом режиме.
Предварительно переходим в нужную папку и делаем
# restore -xf root_ad4s1a.img
Если дамп был сжат, то можно его восстановить например в папку /usr/restore следующим образом:
# gzip -d root_ad4s1a.img.gz | ( cd /usr/restore ; restore -xf - )
Полного восстановления раздела из дампа:
Для начала нужно подготовить раздел жесткого диска Форматируем его (Указать свой!!!)
newfs /dev/ad0s1a
Монтируем и идём туда:
# mount /dev/ad0s1a /mnt/ad0s1a.ufs
# cd /mnt/ad0s1a.ufs
Восстановление дампа
restore -rf /путь/к_фалу/root_ad4s1a.img
Примечание: если восстановление будет вестись с загрузочной флешки c FreeBSD или liveCD, то необходимо дополнительно указать темповую папку (указать свою)
export TMPDIR=/tmp/root
Сслылки:
dump/restore
Процедуры резервного копирования и восстановления
FreeBSD – работа с dump и restore
Системный дамп FreeBSD.
Резервное копирование FreeBSD при помощи DUMP и RESTORE
dump (rdump) - создаёт дамп ФС
man restore (RU)
man dump (RU)
clonehdd
Клонирование дисков во FreeBSD - описание утилиты clonehdd.
clonehdd - копирование разделов жесткого диска на другой.
Пожалейте мои и чужие глаза ... честно слово ... тяжело читать с таким фоном страниц. Хорошую информацию, полезную пишете,но как же тяжело, лично мне,читать черным по белому.
ОтветитьУдалитьСтранно, я старался подобрать, так, чтоб было относительно комфортно, в том числе и в темноте...
ОтветитьУдалитьЕдинственное, что я обычно увеличиваю размер (Ctrl+Scroll).
Если есть какие либо предложения по комфортным цветам, то я всегда рад предложениям.
Лично для Вас какое сочетание цветов (текст, фон) наиболее приятно для глаз?
то что доктор прописал, всё что нужно нашёл в одном месте, спасибо огромное
ОтветитьУдалитьНеактуально
ОтветитьУдалитьДамп не пашет в 9 ветке на живой машине, та и рестор уже не особо то и нужен.
Не слушай этих кретинов которые с детства привыкли к винде и консоль в глаза не видели.
Не соглашусь с Вами
ОтветитьУдалить1. На живой машине дамп можно сделать, если использовать снапшоты (у меня этот момент и описан, читаем внимательней!). Возможно в 9-й версии есть какие-то отличия, ничего сказать не могу т.к. не работал с ней
2. Далеко не у всех стоит уже 9-я версия, поэтому для определенного круга людей инфа остается все еще актуальной, даже если и есть какие-то моменты в 9-й версии
3. Множество утилит работают аналогично dump/restore либо их используют, т.к. являются надстройками над ними, поэтому знания об их использовании лишними не будут.
P.S. Конструктивной критике рад, т.к. она позволят совершенствовать свои знания и навыки, а ругаться не хорошо :)
В 9.0 не работает из-за журналирования. Если отключить то всё ок. Обещают исправить. Я временно перешел на DD.
ОтветитьУдалитьЯ вообще отключил журнал (tunefs -J disable). Польза от использования dump (для создания бэкапов системы) больше, чем от журнала, imho.
УдалитьВсе емко, в одном месте, и разжевано как раз для новичков - типа меня, спасибо.
ОтветитьУдалитьне понял насчет: Привязываем созданный снапшот к устройству /dev/md1 (номер зависит от праметра -u)
ОтветитьУдалитьэто значит mdconfig сам создает какое-то виртуальное устройство md1 чтоли?
и что делать если mdconfig -a -t vnode -f /.snap/2011090100 -u 1 выдает
mdconfig: WARNING: opening backing store: /.snap/201109010 readonly