Назад | Перейти на главную страницу

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

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

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

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

Плюсы:

Вопросы:

На прошлой неделе я провел обширные поиски чего-то похожего. Я не нашел решений для выполнения всех 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».