Я часто использую Virtual Box для тестирования дистрибутивов / приложений.
Одна из функций, которые мне просто нравятся, - это моментальные снимки виртуальных машин, они сохраняют состояние виртуальной машины и способны восстановить ее прежнюю славу, если что-то вы сделали не так, как надо, без проблем и без использования всего пространства на жестком диске.
На моих живых системах я знаю, как создать образ файловой системы в формате 1: 1, но все известные мне решения создадут новый образ всей файловой системы.
Существуют ли какие-либо программы / файловые системы, способные сделать снимок текущей файловой системы, сохранить его в другом месте, но вместо создания нового образа он создает инкрементные резервные копии?
Чтобы легко описать то, что я хочу, оно должно быть в виде dd
образов файловой системы, но вместо полной резервной копии оно также будет создавать инкрементное.
Я не ищу clonezilla и т. Д. Он должен работать внутри самой системы без (или почти без) вмешательства пользователя, но содержать все данные файловых систем. Я также не ищу duplicity
резервную копию всей вашей системы, за исключением некоторых папок + скрипт dd
для сохранения вашего mbr. Я могу сделать это сам, ища дополнительную утонченность.
Я ищу что-то, что я могу сделать, прежде чем вносить значительные изменения в систему, а затем, если что-то не так или я сжег свой жесткий диск после того, как на него налили кофе, я могу просто загрузиться с liveCD и восстановить рабочий снимок на жесткий диск.
Это не должно быть ежедневно, ему даже не нужно расписание. Просто запускайте время от времени и дайте ему свою работу, желательно на основе RAW, а не на основе файлов.
источник
Ответы:
Чтобы объяснить ответ cprofitt (поскольку его ответ является инкрементным, как я объясню) ...
Для начала нужно узнать о жестких ссылках.
Жесткие ссылки указывают на данные, которые фактически находятся на диске (физическое местоположение), и вы можете получить доступ к данным, используя жесткую ссылку. Каждый файл и каталог представляет собой жесткую ссылку на расположение данных на физическом диске. Следовательно, если два файла (жесткие ссылки) указывают на одно и то же местоположение, данные сохраняются только один раз .
Процесс, данный cprofitt, включает в себя:
Вращайте резервные копии, чтобы создать место для нового. («Сегодняшняя резервная копия» со вчерашнего дня становится «Вчерашняя резервная копия», «Вчерашняя резервная копия» двухдневной давности становится «Двухдневная резервная копия» и т. Д.)
Скопируйте последний сделанный вами снимок (например, «Вчерашняя резервная копия») в место для нового (например, «Сегодняшняя резервная копия»), создавая новые жесткие ссылки на существующие файлы без копирования файла. Таким образом, все файлы в новом снимке указывают на то же место, что и предыдущий .
Иллюстрированный пример
На рисунке ниже файлы одного цвета с одинаковым именем являются жесткими ссылками на один и тот же файл на диске. Здесь мы имеем дело только с двумя снимками и несколькими файлами, но пример масштабируется. (За исключением того факта, что в ответе cproffit я перемещаю снимки противоположным сценариям)
Процесс такой:
Есть снимок системы.
Снимок копий (создание жестких ссылок на существующие файлы)
Rsync запускается для обновления снимка. Когда файлы изменяются, он сохраняет новый файл как новую копию на жестком диске (поэтому старый снимок не изменяется). В этом примере Файл B был изменен. Примечание: теперь у нас есть только одна копия файла A и файла C и две копии файла B, хранящиеся на жестком диске
Поверните снимки (в этом случае снимок 0 «отваливается» и удаляется, и я переименовываю снимок 1 в снимок 0)
Скопируйте снимок еще раз (повторите шаг 2)
Rsync снова. (Повторите шаг 3). Теперь у нас есть 1 копия файла A и 2 копии файлов B и C
Упрощенная версия [первого] скрипта (не для запуска, просто как ступенька):
Теперь полный сценарий (ы) имеет полное объяснение здесь (как cprofitt, связанный с), и он более тщательный, но в основном такой же, как указано выше. Другой сценарий предназначен для группировки снимков, а другая часть ответа cprofitt рассказывает о том, как сделать процесс автоматическим (с помощью cron) и убедиться, что резервное копирование прошло успешно.
Вы можете изменить имена, поэтому вместо того, чтобы каталоги назывались «ежечасно», они называются как-то иначе, а скрипт запускается вручную.
Чтобы восстановить весь участок, скопируйте последний снимок (или предыдущий) обратно в каталог, из которого вы делали резервные копии.
Чтобы восстановить один файл, который все еще находится в моментальном снимке, перейдите к моментальному снимку и скопируйте его туда, где он находится.
Носителем резервной копии может быть внешний жесткий диск (должен быть ext2 / ext3 / ext4). Если вы резервное копирование
/
( в основном/boot
,/home
,/etc
/root
и/usr
) , то сказать ...Вы монтируете внешний диск, выполняете резервное копирование и создаете последний снимок.
Размонтируйте диск.
Помните, что вы удалили файл (даже из корзины), который вы хотели.
Подключите внешний диск и получите файл.
Сделайте резервную копию (просто чтобы быть уверенным)
Отключите диск и отправляйтесь в путешествие ...
Поймите, что ноутбук и лава не смешиваются.
Когда ваш новый ноутбук работает под управлением live cd, отформатируйте внутренний диск, подключите внешний диск и затем
cp -a /media/external/snapshot-0/* /media/internal-drive
(при условии, что snapshot-0 - последний снимок)Установите grub на MBR (да, он должен быть отдельным) или используйте его
dd
для резервного копирования mbr, как сказал cprofitt внизу своего ответа.Перезагрузка.
Сценарий должен быть доработан (чтобы получить только то, что вы хотите), и процедура aove предполагает, что у вас нет
/home
раздела. Если вы делаете (или имели) создание нового на диске и монтируете его на местеmount /dev/sdxy /media/external/home
перед копированием.источник
100 x <average size of snapshot>
на диске. 100 из них будут стоить<size of snapshot> + <size of changed files>
. Я использовал это, чтобы поместить несколько снимков / home (~ 400 ГБ) на диск объемом 500 ГБ.cp -al
делает жесткие ссылки на исходные файлы вместо копирования исходных файлов. Ваши цифры также должны отражать это, например, показывая, что файлы A на рисунке 2 - это один и тот же файл.Вы можете использовать rsync.
а второй:
После создания скрипта под ваши нужды добавьте его в задания cron.
добавить следующее:
Они приводят к тому, что make_snapshot.sh запускается каждые четыре часа в час, а daily_snapshot_rotate.sh - каждый день в 13:00 (то есть в 13:00).
источник: http://www.mikerubel.org/computers/rsync_snapshots/
Если вы хотите, чтобы он работал ежечасно, вы добавляете задание cron на каждый час.
Другой возможный вариант - использование rsnapshot
Установите rsnapshot (доступно в программном центре)
Настройте rsnapshot и укажите каталог источника резервного копирования
Откройте /etc/rsnapshot.conf и раскомментируйте следующие строки.
Определите каталоги резервных копий назначения в /etc/rsnapshot.conf, как показано ниже. В этом примере
/ home - исходный каталог, в который следует создать резервную копию localhost / - целевой каталог, в котором будет храниться резервная копия. Обратите внимание, что этот каталог будет создан в каталоге /.snapshots/advaninternal.n‹/, как показано на последнем шаге.
nano /etc/rsnapshot.conf
резервное копирование / home / localhost /
Тестирование конфигурации rsnapshot
Выполните тест конфигурации, чтобы убедиться, что rsnapshot настроен правильно и готов к выполнению резервного копирования linux rsync.
Вы можете создавать резервные копии каталогов или файлов Linux через различные промежутки времени. По умолчанию настраивается ежечасное и ежедневное резервное копирование.
Проверьте почасовую конфигурацию резервного копирования.
Убедитесь, что процесс ежедневного резервного копирования rsnapshot cwrsync настроен правильно.
После того, как вы проверили правильность настройки ежечасного и ежедневного резервного копирования rsync в утилите rsnapshot cwrsync, пришло время настроить этого щенка в crontab, как показано ниже.
источник: http://www.thegeekstuff.com/2009/08/tutorial-backup-linux-using-rsnapshot-rsync-utility/
---- Bare Metal Recovery
Я бы использовал dd и tar для восстановления без изменений.
Резервное копирование важных метаданных:
Сделайте резервную копию операционной системы:
Лично я бы предпочел отключить мою систему, если бы я захотел сделать восстановление файла в формате без использования металла.
источник
dd
не является инкрементным. Ничего из этого я не спрашиваю. Последние 10% могут быть интересными для поиска, но вся остальная информационная свалка на самом деле не так.Есть 2 способа сделать инкрементное резервное копирование на основе блоков
Снимки на основе файловой системы
И ZFS, и BTRFS предоставляют основанные на блоках моментальные снимки ( BTRFS , ZFS (стр. 25) ). У вас может быть диск, который вы rsync, или ZFS или BTRFS и снимок.
Есть также снимки LVM (упомянутые cprofitt), которые предоставляют те же самые инкрементальные снимки на основе блоков.
Программные снимки
Есть несколько программ резервного копирования , однако некоторые из них выделяются для этой цели:
Я знаю, что вы специально упомянули, что вы не ищете что-то вроде двуличия, однако я подумал, что мог бы упомянуть некоторые особенности.
Однако эти программы требуют, чтобы вы установили их для восстановления. Прелесть чего-то вроде rsync заключается в том, что почти в каждой установке linux есть rsync (например, в крошечном ядре (дистрибутив 10 МБ) его по умолчанию).
двуличность
Он просто сохраняет diff (уровень блока), а затем сжимает и шифрует их. Это приводит к еще меньшему объему памяти, чем метод rsync, однако (по крайней мере, так, как я это понимаю) необходимо будет восстановить файловую систему, что потребует времени (если вы используете инкрементные резервные копии с ним, и это зависит от времени с последнее полное резервное копирование)
Страница людей объясняет , как это работает.
RDIFF резервного копирования
Клиент-серверная программа, которая, как и двуличие, создает различия на уровне блоков, однако в ней хранятся изменения с самой последней точки восстановления, поэтому самый последний моментальный снимок восстанавливается быстрее всего. Возвращение во времени (не самый последний снимок) требует больше различий для анализа и поэтому медленнее.
Некоторые люди сравнивают rdiff-backup с rsnapshot (кажется, более автоматический способ менструации rsync). Почти все инструкции посвящены использованию rdiff по сети, однако я нашел один, в котором упоминается, как это сделать на локальном хосте .
источник
duplicity
самом деле.Вы должны взглянуть на ddar ( домашняя страница ).
Он является инкрементным в том смысле, что не передает идентичные части снимка. Он не является инкрементным в классическом значении слова, поскольку имеет дело со снимками.
Примечание: я сам не пробовал (но доверяю автору). Он может не выполнять то, что вы хотели бы достичь «из коробки», но все же на странице есть более похожие решения (например, ZFS ), поэтому в качестве отправной точки это может оказаться полезным.
источник
Я думаю, что вы можете сделать это с LVM, это только теоретически, и это будет тратить огромное количество жесткого диска. Моя теория заключается в том, что вы можете получить корневую систему на логическом томе, а затем, если вы хотите сделать тест, вы можете создать моментальный снимок и перезагрузить компьютер, используя новый том.
Для работы снимков LVM нужен оригинальный том. Это связано с тем, что новый том содержит разницу между моментальным снимком и реальной файловой системой.
Если вы оставите систему в этом состоянии, вы начнете тратить место на диске при изменении новой файловой системы. Я не знаю, есть ли способ объединить снимок и окончательный файловый элемент. Конечно, вы можете перейти на другой логический том, но для этого вам понадобится вдвое больше места в вашей файловой системе плюс разница между вашей «точкой восстановления» и текущим состоянием.
И все это требует перезагрузок и далеко не является автоматическим.
Также предполагается, что несколько современных файловых систем идут по этому пути, например, zfs в системах Solaris или экспериментальные btrfs.
источник
Это немного над моей головой, но звучит как часть того, что вы хотите сделать, это сделать частичное резервное копирование двоичных файлов (например, файлов образов разделов). Есть пакет, предназначенный для этого (я только что прочитал об этом - не пробовал.)
Посмотрите на Bup.
https://github.com/apenwarr/bup
Это может дать вам некоторые идеи.
источник