Есть ли работающее решение для резервного копирования Linux, которое использует inotify?

Требуется вечность, чтобы поддержать. Прежде чем мы сможем доверять btrfs или ZFS для резервного копирования инкрементальных снимков, было бы неплохо, если бы существовал демон, который использовал inotify для отслеживания того, какие файлы действительно изменились, чтобы резервные копии работали быстрее? Где эта программа?

Как сделать резервную копию моего Linux-бокса без необходимости каждый раз сканировать всю файловую систему? Мне нужна программа, которая обнаружит новые или измененные фотографии, исходный код и т. Д. И поставит их в очередь для копирования на мой NAS.

7 ответов

Решение

Я ответил на свой вопрос с помощью "yum search inotify". Он называется lsyncd и размещен в коде Google.

К сожалению, похоже, что сначала всегда выполняется полная rsync, поэтому мне все равно не поможет, если мой компьютер не будет включен более 14 часов за раз.

Lsyncd использует rsync для синхронизации локальных каталогов с удаленным компьютером, на котором работает rsyncd. Lsyncd наблюдает за несколькими деревьями каталогов через inotify. Первым шагом после добавления часов является rsync всех каталогов с удаленным хостом, а затем синхронизировать один файл, собирая события inotify. Таким образом, lsyncd - это легкое решение для живого зеркала, которое должно быть простым в установке и использовании, хорошо сочетаясь с вашей системой. Смотрите lsyncd --help для подробных параметров командной строки.

Там новая система под названием fsnotify это предназначено для устранения недостатков inotify который был введен для решения проблем dnotify, fsnotify позволяет смотреть всю файловую систему без особых хлопот. С надеждой fsnotify поможет решить все наши будущие проблемы с резервным копированием Linux.

Вы можете взломать что-нибудь с помощью Incron.

 / path1 IN_CLOSE_WRITE rsync -au $ @ / $ # backuphhost: / path 

Основываясь на исследованиях (не тестировании), кажется, что inotify не может обрабатывать очень большое количество файлов в большинстве систем и / или делает это очень медленно. Нить на http://www.pubbs.net/kernel/200905/109416/ была самой полезной. Она указывала на новую функцию linux, которая, кажется, находится внутри или направлена ​​к mainline, fsnotify, то есть в linux 2.6.31 и позже.

Lsyncd синхронизирует все отслеживаемое дерево при запуске, потому что в 99% случаев это разумно. Вы хотите, чтобы каталог на целевом хосте у вас был на локальном хосте, иначе синхронизация может произойти сбой, и вы захотите синхронизировать вещи, которые вы пропустили при выключении. Однако, если вы знаете, что делаете, вы можете отключить синхронизацию при запуске, просто установите sync{..., startup=false} в файле конфигурации Lsyncd.

Что касается inotify, то это не количество файлов, а количество каталогов, которые поглощают ресурсы. Один каталог - это один час, независимо от того, сколько файлов он содержит.

fanotify, построенный на fsnotify как inotify, выглядел очень многообещающе для людей, наблюдающих за тоннами каталогов, но в настоящее время в Linux 2.6.37 fanotify вообще не сообщает о событиях переименования (перемещения), что делает его непригодным для такой работы:-(

Я потратил 6 месяцев на поиски лучшего решения для того, что вы пытаетесь сделать; эффективное резервное копирование на NAS. После начальной синхронизации все остальное гладко, как масло. Последняя версия Lsyncd работает довольно хорошо. Я задокументировал, что я сделал, по ссылке ниже. Просто подставьте значения вашей папки. Надеюсь это поможет:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit

В Азии используется новая система под названием sersync, которая вместо inotify-tool + rsync resolution http://code.google.com/p/sersync/ очень проста в использовании.

Другие вопросы по тегам