inotify를 사용하는 작동중인 Linux 백업 솔루션이 있습니까?


17

백업하는 데 시간이 오래 걸립니다. 증분 스냅 샷을 백업하기 위해 btrfs 또는 ZFS를 신뢰하려면 inotify를 사용하여 실제로 변경된 파일을 추적하여 백업이 더 빨리 실행되는 데몬이 있다면 좋지 않습니까? 이 프로그램은 어디에 있습니까?

매번 전체 파일 시스템을 크롤링하지 않고 Linux 박스를 어떻게 백업합니까? 새로운 사진이나 변경된 사진, 소스 코드 등을 감지하여 NAS에 복사 할 수 있도록 대기시키는 프로그램을 원합니다.


특히 현재 백업에 사용중인 데이터, 데이터 유형에 관한 정보는 많지 않습니다. 저널을 사용하여 파일 시스템의 변경 사항을 추적 한 다음 백업 중에 해당 저널을 참조하는 여러 백업 소프트웨어가 있습니다. 정확히 무엇을 백업하려고합니까, 어떤 종류의 장치 / 응용 프로그램에, 데이터의 특성은 무엇이며, 현재 백업 방법은 무엇입니까?
WerkkreW

@ WerkkreW, 나는 그가 백업하려고하는 것이 그다지 중요하다고 생각하지 않습니다. 이벤트 기반 백업을 허용하는 모든 것이 흥미로울 것 같습니다. 요청은 드문 일이 아니며 OSX에는 이벤트 기반의 타임 머신이 있습니다.
Zoredache

나는 여전히 질문에 대답하기 전에 좀 더 설명이 필요하다고 생각합니다.
WerkkreW

1
@Zoredache, 물론 내가 백업하는 것이 중요합니다! 중요하지 않은 경우 ... 아 잠깐만 ;-) 사용할 수없는 기계없이 n 시간 동안 내 홈 디렉토리를 백업하고 싶습니다. 단지 새로운 물건이 세트 일 때 rsync가 모든 것을 크롤링하는 데 걸리는 시간입니다. 신생아 사진
joeforker

3
Mac OS X의 Time Machine 백업은 fsevents를 모니터링하여 백업을 실행할 때 볼 위치를 알기 때문에 빠릅니다. Linux는 fsevents와 유사한 기능인 inotify를 제공하지만 Time Machine (예 : dirvish)을 근사화하려는 Linux 백업 솔루션은 inotify를 이용하지 않기 때문에 비참하게 느립니다. 그게 있습니까?
bendin

답변:


11

"yum search inotify"로 내 질문에 대답했습니다. 이름은 lsyncd 이며 Google 코드에서 호스팅됩니다.

불행히도 항상 전체 rsync를 먼저 실행하는 것처럼 보이므로 컴퓨터가 한 번에 14 시간 이상 켜져 있지 않은 경우 여전히 도움이되지 않습니다.

Lsyncd는 rsync를 사용하여 로컬 디렉토리를 rsyncd를 실행하는 원격 시스템과 동기화합니다. Lsyncd는 inotify를 통해 여러 디렉토리 트리를 감시합니다. watch를 추가 한 후 첫 번째 단계는 모든 디렉토리를 원격 호스트와 rsync 한 다음 inotify 이벤트를 수집하여 단일 파일을 동기화하는 것입니다. lsyncd는 시스템과 잘 혼합되는 동안 설치 및 사용이 쉬운 경량 라이브 미러 솔루션입니다. 자세한 명령 행 옵션은 lsyncd --help를 참조하십시오.


그것은 흥미로운 링크이며, 나는 그것을 직접 구현하려고 생각했습니다. 그러나 왜 페이지마다 변경 될 때마다 큰 파일을 다시 전송할 것이라고 말하는가? 나는 rsync 자체가 이미 그것을 피할 것이라고 생각 했습니까?
한노

rsync는 여전히 가능한 한 효율적으로 전송하기 위해 양쪽 끝에있는 전체 파일을 다시 읽어야합니다. lsyncd 문서는 이것이 큰 파일에는 효과적이지 않을 수 있다고 말합니다. 큰 파일의 경우 블록 수준 복제 체계가 더 적합합니다.
joeforker

3

의 문제를 해결하기 위해 도입 된 fsnotify결함을 해결하기 위해 설계된 새로운 시스템 inotifydnotify있습니다. fsnotify많은 소란없이 전체 파일 시스템을 볼 수 있습니다. fsnotify앞으로의 모든 Linux 백업 문제를 해결하는 데 도움이 되길 바랍니다 .


2

incron으로 무언가를 해킹 할 수 있습니다 .

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


incron은 재귀 적으로 디렉토리를 볼 수 없습니다
joeforker

글쎄요! -S : 그것은 매우 유용 듯
hayalci

2

연구 (테스트 아님)에 따르면 inotify는 대부분의 시스템에서 많은 수의 파일을 처리 할 수 ​​없거나 그렇게 느리게 보입니다. http://www.pubbs.net/kernel/200905/109416/ 의 스레드 가 가장 유용했습니다. 새로운 리눅스 기능인 fsnotify가 리눅스 2.6.31에있는 것으로 보입니다. 나중에.


2

Lsyncd는 시작시 감시 된 전체 트리를 동기화합니다. 99 %의 경우이 방법이 합리적입니다. 로컬 호스트에있는 대상 호스트의 디렉토리가 필요합니다. 그렇지 않으면 동기화에 실패하고 전원이 꺼진 동안 놓친 항목을 동기화하려고합니다. 그러나 수행중인 작업을 알고 있다면 시작 동기화를 끄고 Lsyncd 구성 파일에서 sync {..., startup = false}를 설정하면됩니다.

inotify와 관련하여 파일 수는 아니지만 리소스를 먹는 디렉토리 수입니다. 하나의 디렉토리는 포함 된 파일 수에 관계없이 하나의 감시입니다.

fotnotify와 같은 fsnotify에 대한 fanotify 빌드는 많은 디렉토리를 보는 사람들에게 매우 유망한 것처럼 보였지만 현재 Linux 2.6.37부터 fanotify는 이름 바꾸기 (이동) 이벤트를 전혀보고하지 않으므로 다음과 같은 작업에 사용할 수 없습니다 :-(


삭제 후에도 작성되지 않습니까?
joeforker

1
내 테스트에서, 아니 :-( fanotify 염두에 바이러스 방패로 설계되었으며, 이럴 정확히 최소로 지금 맞춘하지가 필요합니다.
axkibe

1

나는 당신이하려는 일을 수행하기위한 최상의 솔루션을 찾기 위해 6 개월을 보냈습니다. NAS에 효율적으로 백업합니다. 초기 동기화 후 다른 모든 것은 버터처럼 부드럽습니다. Lsyncd의 최신 버전은 매우 잘 작동합니다. 아래 링크에서 내가 한 일을 문서화했습니다. 폴더 값을 대체하십시오. 도움이 되었기를 바랍니다:

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


0

아시아에서는 inotify-tool + rsync 해상도 대신 http://code.google.com/p/sersync/ 대신 사용되는 sersync라는 새로운 시스템이 사용 하기 매우 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.