Поскольку в этом месяце btrfs запускает производство в Oracle EL 14th (вместе с работающим fsck и очисткой из Linux 3.2), я думал о переделке моего текущего решения для резервного копирования, чтобы использовать его. Обратите внимание, что я думаю о том, чтобы сделать это для небольших объемов данных, менее 10 ТБ, которые довольно статичны (менее 1% изменяется ежедневно). Короче говоря, решение для резервного копирования SMB / SOHO.
Что должна делать резервная копия:
rsync
/ передать измененные данные в btrfs на сервере резервного копированияПлюсы:
Вопросы:
rsync
решение?На прошлой неделе я провел обширные поиски чего-то похожего. Я не нашел решений для выполнения всех 4 шагов. Есть множество блогов домашних пользователей, которые пробуют 'rsync в btrfs'-тип резервных копий, и все основные вики-сайты Btrfs описывают, как создавать моментальные снимки Btrfs.
Есть также немало людей, которые пытаются разными способами вращение снимков Btrfs. Однако вы первый, кого я видел, кто хочет вращать снимки в зависимости от места на диске. Я играю с btrfs-snap я, который создает набор ежечасных, еженедельных и ежемесячных снимков, и это красиво и просто.
В Дирвиш кажется, что проект соответствует многим вашим требованиям. Некоторые разработчики пытаются интегрировать Dirvish с Btrfs. Однако Проект Dirvish немного застопорился.
На данный момент вы находитесь на опережение.
По словам Ави Миллера (его выступление на LinuxConf.AU), над отправкой / получением btrfs ведутся работы. Он будет быстрее, чем rsync, так как ему не нужно перемещаться по каталогам, чтобы найти изменения в файлах ... Я не знаю, есть ли еще ожидаемая дата выпуска.
Однако есть утилита, встроенная в btrfs-progs, которая перечисляет все файлы, которые были изменены между моментальными снимками / и т. Д. Btrfs subvolume find-new
Я работаю над системой резервного копирования ОС, похожей на BackupPC. Я думал об этом. Что мешает мне реализовать это, так это то, что вы не можете установить жесткую связь между подобъемами. Вы также можете создавать моментальные снимки только субтомов -> Один подобтом для каждого клиента резервного копирования. Таким образом, функция дедупликации на уровне файлов не может сосуществовать с этим подходом. И эта дедупликация на уровне файлов обычно экономит много места. Вы хотите сделать резервную копию только одного сервера?
Если бы в btrfs была дедупликация на уровне блоков, этой проблемы, вероятно, можно было бы избежать, но обычно это тоже невыносимо медленно ...
Тогда такой подход, конечно, повлечет за собой тесную интеграцию с одной файловой системой (btrfs), поэтому это должно быть дополнительной функцией.
Я спрашиваю, потому что думаю о добавлении такой функции коровы, но не знаю, нужно ли мне это из-за недостатков, перечисленных выше.
Редактировать: UrBackup поддерживает резервное копирование, как описано в вопросе, с ядрами Linux> = 3.6 (с поддержкой перекрестных ссылок на том). Видеть как это настроить.
У меня были похожие разочарования, поэтому я создал несколько скриптов, которые я называю пьяница. Вместе они предлагают создание снимков, отсечение, измерение и транспортировку через ssh (но на сегодняшний день также могут отправлять / получать в / из локальных файловых систем). Измерения - это просто отчеты о sha512sum и PGP-сигнатурах путей к моментальным снимкам. Он не совсем готов к выпуску, но я хотел бы услышать отзывы, если у кого-нибудь будет время просмотреть его на этой ранней стадии.
На данный момент только CLI, но я потратил некоторое время на то, чтобы упростить его использование в системах с большим количеством подтомов btrfs - обычно у меня есть отдельные подтомы для /var/cache
, /home
и т. д., которые, возможно, необходимо исключить из моментальных снимков или иметь более / менее агрессивные графики обрезки.
Боюсь, что алгоритм обрезки принимает решения только о наличии набора моментальных снимков и их датах, нет ничего, что могло бы продолжать обрезку до тех пор, пока не будет выполнено ограничение на использование диска - что вы удалите в первую очередь? Уменьшить количество вначале ежечасных или дневных? Возможно, отбросьте самого старого, например. ежегодные? У разных развертываний будут разные приоритеты; и я не могу знать, является ли это единственный уровень резервного копирования (в этом случае вы не должны отбрасывать самые старые резервные копии в случае юридических / страховых обязательств) или просто промежуточный (в этом случае у вас, вероятно, есть эти годовые архивы в безопасном месте в другом месте).
В какой-то момент я добавлю поддержку и / или совместимость ZFS; он написан в основном на posix-ish shell и perl из-за сильного стремления к "нулевым" зависимостям на данный момент, я надеюсь, что в какой-то момент я буду поддерживать более чистую альтернативную реализацию python параллельно.
Вики-страница btrfs "Случаи использования"перечислены некоторые инструменты: SnapBtr, Snapper, btrfs-time-machine, UrBackup.
Есть предложение по встроенному инструменту под названием автоматическая привязка:
Используя функцию автоматической привязки, вы можете настроить btrfs для создания обычных снимков или снимков на основе событий и дальнейшего автоматического управления снимками.
Автопривязка - это не только создание снимка, но и управление созданными снимками, на данный момент вы можете настроить автопривязку для удаления снимков в зависимости от используемого пространства файловой системы.
Однако по состоянию на октябрь 2013 г. утверждает, что «В настоящее время функция автоматической привязки не включена в исходную версию btrfs».