Решение для резервного копирования с поддержкой btrfs

14

В связи с тем, что btrfs начинает работу в Oracle EL 14th в этом месяце (вместе с рабочим fsck и чисткой из Linux 3.2), я думал о том, чтобы изменить свое текущее решение для резервного копирования, чтобы использовать его. Обратите внимание, что я думаю об этом для небольших объемов данных, менее 10 ТБ, это довольно статично (менее 1% изменяется ежедневно). Короче говоря, решение для резервного копирования SMB / SOHO.

Что должна сделать резервная копия:

  1. сделать LVM-снимок ext [234] / XFS / JFS на рабочем сервере
  2. rsync/ перенести измененные данные в btrfs на сервере резервного копирования
  3. снимок файловой системы btrfs
  4. удалить старые снимки, когда свободного места становится мало

Плюсы:

  • Все файлы легко доступны, не требуется распаковка или циклическое подключение
  • Прошлые снимки также легко доступны ...
  • ... так что я могу поделиться ими как общими только для чтения Samba (с поддержкой теневого копирования)
  • Снимки занимают минимальное количество места благодаря функции копирования при записи (снимок без изменений занимает буквально несколько КБ на диске)
  • Высокая согласованность резервного копирования: контрольные суммы для файлов, очистка всех данных и встроенная избыточность

Вопросов:

  • Существует ли какое-либо решение для резервного копирования (в форме Bacula, BackupPC и т. Д.), Которое или легко может быть известно о файловой системе копирования при записи?
  • Или мне нужно будет использовать rsyncрешение в домашних условиях ?
  • Что люди с блоками ZFS, выделенными для резервного копирования, делают для резервного копирования своих машин Linux?
Хьюберт Карио
источник
Не могу видеть cons! Одним из них может быть то, что снимки Btrfs эквивалентны только инкрементным резервным копиям (нет физической копии для каждой резервной копии вашего файла на диске). Что может иметь важное значение при решении проблем с поверхностью диска. Обратите внимание, что вы можете принудительно выполнить одно дублирование с помощью встроенной поддержки RAID1, включенной в Btrfs.
Вааб
1
@vaab: это pro- более двух копий на самом деле не нужно, если у вас есть контрольные суммы и вы активно чистите FS, три, вероятно, будут иметь поддержку RAID6. Как я уже сказал, это настройка для специальной системы резервного копирования, а не «резервных» копий внутри ФС на одном компьютере. Это будет «RAID не является резервной копией» и «снимки не являются резервной копией». cp -aи rsyncдля этого ...
Хьюберт Карио
Я также подумываю о резервном копировании в btrfs, но я просто подумал rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create- помимо создания снимка после резервного копирования, что вы подразумеваете под COW-осведомленным?
отбойный молоток
1
@unhammer: используя rsyncбез, --inplaceвы получите несколько копий одних и тех же данных в удаленной файловой системе. (rsync обычно копирует данные во временный скрытый файл, а затем перемещает его по старому файлу, при этом в файловой системе Copy-On-Write вы получаете две копии неизмененных данных таким образом)
Hubert Kario

Ответы:

5

На прошлой неделе я много занимался поиском чего-то подобного. Я не нашел решений, чтобы сделать все 4 шага. Существуют многочисленные блоги от домашних пользователей, которые пробуют резервные копии типа rsync to btrfs , и все основные вики Btrfs рассказывают, как делать снимки Btrfs.

Есть также довольно много людей, которые пытаются различными способами вращать снимки Btrfs . Тем не менее, вы первый человек, которого я видел, кто хочет вращать снимки на основе дискового пространства. Я сам играю с btrfs-snap, который создает набор часовых, еженедельных и ежемесячных снимков, и это приятно и просто.

Проект Dirvish, кажется, отвечает многим вашим требованиям. Некоторые разработчики пытаются интегрировать Dirvish с Btrfs . Тем не менее, проект Dirvish кажется немного застопорился .

В данный момент вы находитесь впереди кривой.

Стефан Ласевский
источник
Ну, я просто хочу, чтобы решение для резервного копирования было таким же легким, как BackupPC: когда на диске мало места, оно просто удаляет старые данные (старые снимки). Хотя я боялся, что я впереди поворота, это не значит, что ZFS не был с нами последние несколько лет ...
Хьюберт Карио
3

По словам Ави Миллера (его доклад во время LinuxConf.AU), btrfs send / receive работает над. Это будет быстрее, чем rsync, так как для поиска изменений в файлах ему не нужно проходить по каталогам ... Хотя пока я не знаю, есть ли ожидаемая дата выпуска.

Однако в btrfs-progs встроена утилита, в которой перечислены все файлы, которые изменились между снимками экрана и т. Д. Btrfs subvolume find-new

Borring
источник
2
Я хочу сделать резервную копию в btrfs, а не из ...
Хьюберт Карио
2

Я работаю в системе резервного копирования ОС, аналогичной BackupPC. Я думал об этом. То, что мешало мне на самом деле реализовать это, это то, что вы не можете жестко связать подобъемы. Вы также можете создавать только снимки вложенных томов -> один вложенный том для каждого клиента резервного копирования. Таким образом, функция дедупликации на уровне файлов не может сосуществовать с этим подходом. И эта дедупликация на уровне файлов обычно экономит много места. Вы хотите сделать резервную копию только одного сервера?

Если бы у btrfs была дедупликация на уровне блоков, этой проблемы, вероятно, можно было бы избежать, но обычно это было бы слишком медленно ...

Тогда такой подход, конечно, повлечет за собой тесную интеграцию с одной файловой системой (btrfs), так что это должно быть дополнительной функцией.

Я спрашиваю, потому что я думаю о добавлении такой функции коровы, но не знаю, если я должен из-за перечисленных выше недостатков.

Редактировать: UrBackup поддерживает резервные копии, как описано в вопросе, теперь с ядрами Linux> = 3.6 (с поддержкой перекрестных ссылок). Посмотрите, как это настроить.

UrOni
источник
1
Перекрестная копия рефлексной ссылки (сделанная полужесткой ссылкой cp --reflink) либо уже реализована, либо будет реализована в ближайшем будущем. Интернет дедупликации в FS либо медленно (lessfs) или нуждается огромное количество оперативной памяти (ZFS) , поэтому в зависимости от этого будет действительно быть плохой особенностью программного обеспечения резервного копирования. В любом случае, btrfs-ориентированное ПО для резервного копирования будет иметь большую аудиторию, в конце концов, оно должно быть следующим ext3.
Хьюберт Карио
Еще одна вещь: вы можете обойти эту проблему, сохранив все серверы в одном подобъеме - вы можете повторно связать копию между ними (для дедупликации), сохраняя возможность создания моментальных снимков. Вам просто нужно сделать снимок после дедупликации, вы все равно можете сделать снимок после резервного копирования только одного сервера! Резервные копии не будут занимать больше места, если вы делаете резервные копии по одному. В качестве альтернативы вы можете сделать резервную копию всех серверов, дедупликации и только потом снимок. Таким образом, вы можете создавать резервные копии нескольких серверов одновременно.
Хьюберт Карио
Ты прав. Не думал об этом. Для удобства вы можете использовать символическую ссылку на нужные снимки в другом томе. Я также видел патч для кросс-томной жесткой ссылки (или --reflink), но он не выглядел так, как будто сделал это / или сделает его основным. Я действительно посмотрю на это! Теперь вы, вероятно, делаете резервные копии через ssh. Мой проект специализирован для локальных сетей ... (
автообнаружение
Да, патч жив и работает, к сожалению, не в основном, я не знаю почему. Я пытаюсь обмануть Криса Мейсона по этому поводу. Что касается вашего проекта, не стесняйтесь, напишите мне, я с удовольствием проведу бета-тестирование (если позволит время). Это звучит интересно.
Хьюберт Карио
Наконец, этот патч попал в основное ядро ​​Linux 3.6. С рефлексной связью между устройствами это на самом деле было не так уж много работы. Я написал здесь об этом: urbackup.org/blog/?p=83 Код находится в «следующей» ветке в репозитории git. Я сейчас проверяю это.
UrOni
1

Вики-страница btrfs " btrfs «Варианты использования » перечислены некоторые инструменты: SnapBtr , Snapper, btrfs-time-machine, UrBackup.

Есть предложение для встроенного инструмента под названием autosnap :

Используя функцию autosnap, вы можете сконфигурировать btrfs для создания обычных или событийных снимков и дальнейшего автоматического управления снимками.

Autosnap - это не только создание снимка, но и управление созданными снимками, так как теперь вы можете настроить autosnap для удаления снимков в зависимости от используемого пространства файловой системы.

Однако по состоянию на октябрь 2013 года вики заявляют, что «функциональность autosnap в настоящее время не включена в вышестоящую версию btrfs».

обманчивая надежда
источник
1

У меня были похожие разочарования, поэтому я создал несколько сценариев, которые я называю snazzer . Вместе они предлагают снимки, обрезку, измерение и передачу через ssh (но на сегодняшний день могут отправлять / получать в / из локальных файловых систем). Измерения - это просто отчеты о sha512sum и PGP-сигнатурах путей моментальных снимков. Он не совсем готов к выпуску, но я хотел бы услышать отзывы, если у кого-то есть время, чтобы просмотреть его на этой ранней стадии.

На данный момент только для CLI, но я потратил некоторое время, чтобы упростить его использование в системах со многими подобъемами btrfs - обычно у меня есть отдельные подобъемы для /var/cache , /homeи т.д. , которые , возможно , должны быть исключены из мгновенных снимков или имеют больше / меньше агрессивные графики сокращения.

Я боюсь, что алгоритм сокращения просто принимает решения о наличии набора снимков и их датах, поэтому нет ничего, что можно было бы сократить до тех пор, пока не будет соблюдено ограничение использования диска - что вы сначала удаляете? Сначала уменьшите количество часов или дневных? Возможно, бросьте самое старое, например. yearlies? Различные развертывания будут иметь разные приоритеты; и я не могу знать, является ли это единственным уровнем резервного копирования (в этом случае вы не должны сбрасывать самые старые резервные копии в случае юридических / страховых обязательств), или просто промежуточным (в этом случае, вероятно, эти годовые архивы хранятся где-то в безопасности) в другом месте).

Я буду добавлять поддержку ZFS и / или совместимость в какой-то момент; он написан в основном в оболочках posix-ish и perl из-за сильного стремления к «нулевым» зависимостям на данный момент, я надеюсь, что в какой-то момент у меня будет более чистая альтернативная реализация на python.

csirac2
источник
если у вашей FS очень большие и часто меняющиеся, разница между сохранением снимка за месяц назад и только 1 раз в день с прошлой недели по сравнению с одним снимком за день за весь месяц - btrfs нужно будет хранить разницу между текущее состояние и то, что было месяц назад, в любом случае - я держу только ежедневные газеты, но, так как они сжаты и разложены, я могу легко хранить их полгода назад, а затем отбрасываю самые старые гарантии, чтобы освободить хоть какое-то пространство
Хуберт Карио,
Ну, у меня есть нетривиальное количество виртуальных машин для отслеживания - некоторые с большими временными файлами (то есть снимками с уникальными экстентами), которые, как вы предложили, могут извлечь выгоду из сокращения промежуточных снимков. Так что, хотя это правда, что удаление промежуточных звеньев не освобождает столько же диска, сколько отбрасывание самого старого, что я могу сказать ... сохранение только минимального количества снимков вокруг себя и выполнение этого с файловой системой COW, такой как btrfs, кажется примерно такой же эффективной, как и получает, но я понимаю, что есть больше, чтобы выбрать подходящее решение, чем это :)
csirac2
@ csirac2 ты поддерживаешь насмешку? Я ищу этот тип решения. Меня интересует snazzer, если он активно поддерживается. GitHub, кажется, не показывает недавнюю активность ...
MountainX-for-Monica
@MountainX Когда я не получил много начальных отзывов о snazzer, я как бы потерял энтузиазм. Когда я начал писать, на самом деле был только snapper OpenSUSE и несколько сценариев shell / python для автоматизации btrfs. К тому времени, когда я начал делиться этим с миром, появилось много других опций, и я бы сказал, что btrbk, похоже, набирает обороты (хотя проблема с автоматическим тестированием [может быть, исправлена ​​сейчас?]). Если бы мне пришлось делать все это снова, я бы, вероятно, сотрудничал с автором sanoid, чтобы добавить туда совместимость с btrfs. Интересно услышать ваши мысли.
csirac2