Показать полную графическую версию : Резервное копирование системы
Доброго дня.
Есть дебиан 6.0.5. установил на железку от Kraftway.
Хочу кое-что там протестировать. Но вот вопрос: как в Linux делать резервное копирование системы?
т.е. после установки я настроил окружение, время, ещё кое-что. И хотел бы сделать копию системы, как System State в Windows.
т.е. при неудачном тестирование не пришлось переустанавливать, а просто откатится назад.
Спасибо.
Я снимаю образ всего раздела, для этого гружусь с флешки (подойдёт любая Live система) и дальше так:
mkdir /mnt/gentoo
mount /dev/sda3 /mnt/gentoo
dd if=/dev/zero of=/mnt/gentoo/zero.bin
rm -f /mnt/gentoo/zero.bin
umount /dev/sda3
mount /dev/sdb5 /mnt/gentoo
dd if=/dev/sda3 | gzip > /mnt/gentoo/sda3.img.gz
umount /dev/sdb5
Создание файла с нулями нужно для лучшей сжимаемости, в отдельных случаях так можно сэкономить процентов 30 объёма итогового сжатого образа. Вместо gzip я лично использую pigz - многопоточную версию gzip, которая на многоядерных процессорах сокращает время снятия образа раза в полтора. Распаковка делается так:
gunzip -c sda3.img.gz > /dev/sda3
в итоге все данные на разделе, включая саму ФС, заменяются на данные из образа. Разумеется, названия разделов и пути у каждого будут своими...
а можно без загрузки с флешки? прямо из системы? и настроить в кроне?
а можно без загрузки с флешки? прямо из системы?»
Тут смысл в том, что в "активной" системе какие-то файлы постоянно изменяются. В итоге, получается неточная копия.
Насколько могу судить, копирование с 'dd' — очень медленный процесс, особенно с использованием маленького размера блока.
Есть стандартная юниксовая программа 'dump' (и 'restore' для восстановления). Но, вроде, в Linux, в отличие от FreeBSD, не делает копию системы "на живую".
Посмотрите 'fsarchiver'. У него есть опция бэкапа работающей системы.
Если рассматривать вопрос буквально: "просто откатиться назад", то нужно использовать LVM или Btrfs.
Если рассматривать вопрос буквально: "просто откатиться назад", то нужно использовать LVM или Btrfs. »
ааа так вот зачем LVM... пойду, почитаю об этом. Спасибо.
AMDBulldozer
01-02-2013, 02:19
Сделать копию и синхронизировать её с актуальным состоянием файловой системы можно командой "rsync".
AMDBulldozer, так а копию как тогда делать лучше?
Насколько могу судить, копирование с 'dd' — очень медленный процесс, особенно с использованием маленького размера блока. »
В любом случае быстрее, чем пофайловое чтение, когда файлы размазаны по разделу и головка туда-сюда ёрзает. Последовательное чтение всех байтов на разделе в любом случае будет быстрее. В размер блока легко изменить: bs=8M.
Есть стандартная юниксовая программа 'dump' (и 'restore' для восстановления). Но, вроде, в Linux, в отличие от FreeBSD, не делает копию системы "на живую". »
Делает. Недостаток у нее в том, что работает только с ext2/3/4 так что не всем подходит. А так вполне неплохая вещь. Кстати я тут уже описывал процесс снятия полного образа системы (http://forum.oszone.net/thread-249396.html) и ее восстановления этими программами. Есть еще функция создания инкрементных образов, так что dump вполне применима для резервного копирования на серверах.
Еще fsbackup посмотреть можно.
чёт я ступил. на курсах по Линуксу дали презентацию. Сейчас туда глянул, а там есть кратенько так:
sudo su -
mkdir /mnt/zip
mount -t cifs -o username=user1 //server/public /mnt/zip
telinit 1
mount -o ro,remount /
cd /
dd if=/dev/sda2 | bzip2 -q9c > /mnt/zip/system.bz2
bzip2 -dc /mnt/zip/system.bz2 | dd of=/dev/sda2
что такое telinit 1 и зачем "mount -o ro,remount /" ?
и вот ещё вопрос: как пароль вводить для подключения к серверу? Если это виндовый сервер с доменной авторизацией.
что такое telinit 1 и зачем "mount -o ro,remount /" ? »
Переход в однопользовательский режим и перемонтирование корневого раздела в режим "только чтение".
dd if=/dev/sda2 | bzip2 -q9c > /mnt/zip/system.bz2 »
Вместо 'bzip2 -9' лучше использовать 'xz' где-то с уровнем компрессии 5. И быстрее будет, и меньше объём на выходе.
Цитата Kent:
Есть стандартная юниксовая программа 'dump' (и 'restore' для восстановления). Но, вроде, в Linux, в отличие от FreeBSD, не делает копию системы "на живую". »
Делает. »
Перечитал 'man dump', но не могу найти такой опции.
Вместо 'bzip2 -9' лучше использовать 'xz' где-то с уровнем компрессии 5. И быстрее будет, и меньше объём на выходе. »
Тогда уж pbzip2, он умеет распараллеливаться в отличие от. Формат сохранён старый добрый bz2, то есть, объём результата будет как у bzip2 -9 (распаковывать можно и тем же bzip2).
Сферический пример в вакууме на 4-х ядрах:
$ time xz -5 -c < Fedora-17-x86_64-Live-KDE.iso > /dev/null
real 3m45.274s
user 3m44.427s
sys 0m0.223s
$ time pbzip2 -9 -p4 -m1024 -c < Fedora-17-x86_64-Live-KDE.iso > /dev/null
real 0m29.820s
user 1m55.663s
sys 0m0.897s
Разница внушительная.
Разница внушительная. »
Угу.. А как и с gzip/pigz. Только вот я вчера словил глюк с pigz - не хотел распаковывать tar.gz, которых легко распаковывается обычным gzip'ом :(
А в целом это предложение не отличается от моего. mount -o ro,remount / нужно для того, чтоб на ФС в процессе копирования не было никаких изменений (то, о чём говорили выше). Только вот для уменьшения объёма образа я всё-же советую заполнить свободное место нулями (нули отлично сжимаются), особенно если его много.
Перечитал 'man dump', но не могу найти такой опции. »
Возможно у нас разные представления о значении слов "на живую". Я имею в виду, что можно делать образ работающей системы, без всяких загрузок с флэшки.
Я не уверен, как эта программа поведет себя на системе с постоянно изменяющейся файловой системой, на пример с базой данных, но вполне можно перед бэкапом на всякий случай перемонтировать нужную ФС только для чтения. Или снимать dump'ом только образ системы с настройками, а бэкап БД делать средствами СУБД.
Тогда уж pbzip2, он умеет распараллеливаться в отличие от. »
Тогда уж pixz, он тоже умеет распараллеливаться, сохраняя все исходные преимущества.
Возможно у нас разные представления о значении слов "на живую". Я имею в виду, что можно делать образ работающей системы, без всяких загрузок с флэшки. »
Я тоже это имею ввиду. Во FreeBSD у dump имеется опция -L.
-L This option is to notify dump that it is dumping a live file sys-
tem. To obtain a consistent dump image, dump takes a snapshot of
the file system in the .snap directory in the root of the file
system being dumped and then does a dump of the snapshot. The
snapshot is unlinked as soon as the dump starts, and is thus
removed when the dump is complete.
В Linux не вижу такой возможности.
В Linux не вижу такой возможности. »
Да, UFS2 у FreeBSD имеет встроенный механизм снэпшотов, которого нет у линуксовых фс (кроме вроде btrfs, но её не встретишь в проде пока, сыра ещё). Но это можно обойти при использовании LVM — создать снэпшот средствами LVM и бекапить его чем угодно (tar, dd, dump).
Тогда уж pixz, он тоже умеет распараллеливаться, сохраняя все исходные преимущества. »
Любопытно, ещё раз запряжём нашеих сферических архиваторов в вакууме:
[vadblm@vadblm Downloads]$ time xz -5 -c < archlinux-2013.01.04-dual.iso > /dev/null
real 2m35.778s
user 2m35.197s
sys 0m0.177s
[vadblm@vadblm Downloads]$ time pbzip2 -9 -p4 -m1024 -c < archlinux-2013.01.04-dual.iso > /dev/null
real 0m20.478s
user 1m20.213s
sys 0m0.647s
[vadblm@vadblm Downloads]$ time pixz -5 -p4 archlinux-2013.01.04-dual.iso /dev/null
real 0m38.833s
user 2m25.483s
sys 0m0.143s
Прогресс налицо, но есть пара минусов: нестандартный синтаксис и то, что проект как-то вяло развивается, в официальных репах этого добра нету. К тому же говорили выше, что его у его собрата pigz проблемы с обратной совместимостью не только по синтаксу, но и с собственно архивами. Ну и оно всё равно посасывает по скорости у pbzip2, у которого никаких проблем с обратной совместимостью я не замечал.
Kent, такой опции действительно нет, но мне довелось делать этой программой бэкап работающего первичного DNS сервера без каких либо специальных опций. И восстановление прошло успешно. Образ использовался для подготовки резервного сервера, который после косяка при обновлении системы на основном, сутки проработал без каких либо нареканий.
К тому же говорили выше, что его у его собрата pigz проблемы с обратной совместимостью не только по синтаксу, но и с собственно архивами. Ну и оно всё равно посасывает по скорости у pbzip2, у которого никаких проблем с обратной совместимостью я не замечал. »
Синтаксис pigz полностью обратно совместим с gzip. Отличие только в дополнительных опциях, управляющих потоками. Что касается совместимости с архивами, то это похоже просто баг. Столкнулся я с этим впервые, хотя использую pigz в качестве основного gz-архиватора уже больше года. Ошибка выглядит так:
gzip: <stdin> OK, has trailing junk which was ignored
/bin/tar: Child returned status 2
/bin/tar: Error is not recoverable: exiting now
Сам архив, если интересно, находится здесь (http://ftp.osuosl.org/pub/gentoo/distfiles/xmltex-1.9.tar.gz).
Любопытно, ещё раз запряжём нашеих сферических архиваторов в вакууме »
На итоговый размер посмотреть тоже надо. Можно xz и с -4 попробовать. Собственно, вопрос выбора способа компрессии не так важен. Главное — определиться с принципом.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.