Чи є робоче рішення для резервного копіювання Linux, яке використовує inotify?


17

Це потрібно назавжди, щоб створити резервну копію. Перш ніж ми можемо довірити btrfs або ZFS для резервного копіювання додаткових знімків, чи не було б непогано, якби був демон, який використовував inotify, щоб відслідковувати, які файли насправді змінилися, щоб резервні копії працювали швидше? Де ця програма?

Як створити резервну копію вікна Linux без необхідності сканування всієї файлової системи кожен раз? Мені б хотілося, щоб програма, яка виявила нові або змінені фотографії, вихідний код і т. Д., І поставила їх у чергу, щоб їх скопіювали в мій NAS.


Тут ви дійсно не давали багато інформації, особливо щодо того, що ви зараз використовуєте для створення резервної копії, якого типу даних. Існує кілька фрагментів програмного забезпечення для резервного копіювання, які використовують журнали для відстеження змін у файловій системі, а потім звертаються до цього журналу під час резервного копіювання. Що саме ви намагаєтесь створити резервну копію, на який тип пристрою / програми, яка природа даних та який ваш поточний метод резервного копіювання?
WerkkreW

@WerkkreW, я не думаю, що все, що він намагається створити, - це все так важливо. Я підозрюю, що було б цікаво дізнатись про все, що дозволяє створити резервну копію на основі подій. Запит не є незвичайним, OSX має машину часу, на якій базується подія.
Зоредаче

Я все ще вважаю, що запитання потребує дещо більшого уточнення, перш ніж на нього можна відповісти.
WerkkreW

1
@Zoredache, звичайно важливо те, що я створюю резервну копію! Якщо це не було важливо ... о зачекайте ;-) Я хочу створити резервну копію домашнього каталогу, не маючи непридатної машини протягом n годин, для rsync потрібно буде повзати всю справу, коли єдиний новий матеріал - це набір фотографій моєї новонародженої дитини.
joeforker

3
Питання мені здається абсолютно зрозумілим: резервне копіювання Time Machine Mac OS X швидке, оскільки воно контролює fsevents, щоб він знав, де шукати, коли працює резервна копія. Linux ініціював, подібний інструмент до fsevents, і все ж рішення для резервного копіювання Linux, які намагаються наблизити машину часу (наприклад, dirvish), жахливо повільні, оскільки вони не використовують переваги інотифікувати. Чи є такі, що роблять?
бендін

Відповіді:


11

Я відповів на власне запитання з "yum search inotify". Він називається lsyncd і розміщений на коді google.

На жаль, схоже, що завжди спочатку працює повна rsync, тому вона все одно не допоможе мені, якби мій комп'ютер не був увімкнений більше 14 годин за один раз.

Lsyncd використовує rsync для синхронізації локальних каталогів з віддаленою машиною, на якій працює rsyncd. Lsyncd спостерігає за кількома деревами каталогів через ініціювати. Першим кроком після додавання годинника є синхронізація всіх каталогів з віддаленим хостом, а потім синхронізація одного файлу шляхом збору подій, що ініціюють. Таким чином, lsyncd - це легке живе дзеркальне рішення, яке повинно бути легко встановити та використовувати, одночасно добре поєднуючись із вашою системою. Детальні параметри командного рядка див. У lsyncd --help.


Це цікаве посилання, я навіть думав реалізувати це сам. Але чому на сторінці написано, що вона буде переносити великі файли для кожної зміни? Я думав, що rsync сама цього вже уникатиме?
Hanno Fietz

rsync все ще повинен перечитати весь файл з обох кінців, щоб перенести його максимально ефективно. Документація lsyncd має намір сказати, що це може бути неефективним для великих файлів. Для великих файлів схема реплікації на рівні блоків була б більш доречною.
joeforker

3

Існує нова система під назвою, fsnotifyяка призначена для вирішення недоліків, inotifyяка була введена для вирішення проблем dnotify. fsnotifyдозволяє переглядати всю файлову систему без особливої ​​суєти. Сподіваємось, fsnotifyце допоможе вирішити всі наші майбутні проблеми з резервним копією Linux.



2

На основі досліджень (не тестування), схоже, що inotify не може обробити дуже велику кількість файлів у більшості систем та / або дуже повільно це робить. Нитка на веб- сайті http://www.pubbs.net/kernel/200905/109416/ виявилася найбільш корисною. Вона вказувала на нову функцію Linux, яка, здається, знаходиться в голові або спрямована в бік основної лінії, fsnotify, тобто в Linux 2.6.31 і пізніше.


2

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

що стосується inotify, то це не кількість файлів, а кількість каталогів, які з'їдають ресурси. Один каталог - це один годинник, незалежно від того, скільки файлів він містить.

fanotify будівництво на fsnotify, як inotify, виглядало дуже перспективно для людей, які переглядають багато каталогів, але на даний момент Linux 2.6.37 fanotify взагалі не повідомляє про перейменування (переміщення) подій, що робить його непридатним для такої роботи :-(


Навіть не як видалення з подальшим створенням?
joeforker

1
не в моїх тестах, ні :-( fanotify був розроблений з урахуванням вірусного щита, і IMHO
підбирається

1

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

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


0

в Азії є нова система, яка називається sersync, яка замість інотифікованого інструмента + роздільна здатність rsync http://code.google.com/p/sersync/ дуже зручна у використанні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.