디렉터리를 동기화하는 단순 분산 연결 끊김 방식

디렉터리를 동기화하는 단순 분산 연결 끊김 방식

내 우분투 노트북인 머신 X에서 홈 디렉토리를 정기적으로 백업하기 시작하고 싶습니다. 백업할 수 있는 2개의 다른 원격(Linux) 서버인 머신 A와 B에 액세스할 수 있다고 가정합니다. 머신 X가 마스터가 될 것이며 A와 B에 동기화됩니다. 정기적으로 X에서 A로, 그런 다음 X에서 B로 rsync를 실행할 수 있습니다. 그게 제가 필요한 전부입니다.

그러나 더 효율적인 대역폭이 있고 따라서 더 빠른 방법이 있는지 궁금합니다. X가 주거용 광대역 회선을 사용할 예정이고 대역폭을 흡수하고 싶지 않기 때문에 X로부터의 전송을 제한할 것입니다. A와 B는 항상 켜져 있지만 X는 그렇지 않습니다. 따라서 X가 전송하는 시간을 줄여 잠재적으로 A와 B가 전송하는 데 더 많은 시간을 소비할 수 있도록 하고 싶습니다. 또한 X는 항상 연결되어 있지 않습니다.

이를 수행하는 가장 좋은 방법은 무엇입니까? X에서 A로 rsync한 다음 A에서 B로 rsync하시겠습니까? 적절한 타이밍을 맞추는 것은 번거로울 수 있습니다. 오래된 파일을 보관하고 싶지 않으므로 rsync를 수행하려면 이 --del옵션이 사용됩니다. 이는 무언가가 A에서 B로 전송된 다음 B에서 삭제된 다음 A에서 B로 다시 전송될 수 있음을 의미할 수 있습니까? 그것은 차선책입니다.

Gluster와 같은 멋진 분산 파일 시스템이 있다는 것을 알고 있지만 이 경우에는 과잉이며 연결이 끊긴 특성에 적합하지 않을 수 있다고 생각합니다.

답변1

이를 수행하는 영리한 방법과 간단한 방법이 있습니다. 가능하다면 단순한 것을 선택하겠습니다.

X -> A를 한 다음 A -> B를 할 수 있나요?

와 같은 방법도 있습니다조화, 그러나 이는 하나의 복제본으로만 이동하는 것으로 보이며 양방향이므로 백업에는 유용하지 않은 것 같습니다. 그러나 A와 B가 모두 Unison에서 작업을 실행했다면 클라이언트 X가 A로 백업할 수 있는 것처럼 보입니다.또는B, 그러면 다른 사람에게도 잘 될 것입니다.

답변2

X가 A와의 동기화를 시작하면 X에서 데이터를 가져오고 완료되면 B로 푸시됩니다. A의 스크립트는 어딘가에 파일이 있는지 확인할 수 있습니다. 파일이 있을 때 X가 A로 업로드합니다. 온라인이고 동기화할 준비가 되었습니다. X에서 끌어오기가 완료되면 B로 푸시되고 완료되면 파일을 제거해야 합니다. 또는 A와 B 모두에 거의 동일한 스크립트를 가질 수 있지만 A가 X에서 가져오기를 완료하면 A와 동기화하라는 파일을 B에 저장합니다. 동기화할 시스템이 2개 이상인 경우 이는 다음과 같습니다. 그 이후로 동기화는 모든 항목을 통해 계단식으로 진행될 수 있습니다(아마도 선형이 아닌 분산 트리 방식으로).

답변3

Dropbox가 당신에게 도움이 될까요?

답변4

저는 Michael Graff의 솔루션이 가장 좋은 아이디어라고 생각합니다. rsync X -> A. 그런 다음 A -> B.

계산 시간을 줄이는 또 다른 제안을 원한다면 xdelta(http://xdelta.org/). 이는 본질적으로 다중 홉 rsync와 동일한 솔루션으로, 각 홉에서 델타를 계산해야 하는 시간을 절약할 수 있다는 이점이 있습니다. 관련된 파일이 큰 경우 시간을 크게 절약할 수 있습니다.

짐 C. http://www.kleobackup.net

관련 정보