중간 정도의 차이로 큰 파일 또는 블록 장치를 동기화하려면 일반 복사를 수행하거나 bdsync를 사용할 수 있습니다 . rsync는이 특정 경우에 절대 맞지 않습니다 *.
bdsync
나를 위해 일하고, 충분히 성숙해 보였으며, 버그의 역사는 고무적입니다 (작은 문제, 신속한 해결). 내 테스트에서 속도는 이론상 최대치에 가깝습니다 ** (즉, 파일을 읽는 데 필요한 시간에 동기화 할 수 있음). 마지막으로 오픈 소스이며 비용이 들지 않습니다.
bdsync
호스트에서 파일을 읽고 체크섬을 교환하여 비교하고 차이를 감지합니다. 이것들 모두 동시에 . 마지막으로 소스 호스트에 압축 패치 파일을 작성합니다. 그런 다음 해당 파일을 대상 호스트로 이동하고 bdsync를 다시 실행하여 대상 파일을 패치하십시오.
다소 빠른 링크 (예 : 100Mbit 이더넷)를 통해 사용하고 차이가 작은 파일 (예 : VM 디스크의 경우)이 파일을 읽는 데 필요한 시간과 동기화하는 시간이 줄어 듭니다. 당신이 (당신이 사용하는 시간을 절약 할 수 있습니다 보인다 다른 하나의 호스트에서 압축 된 변경 내용을 복사해야하기 때문에 느린 링크를 통해 당신은 좀 더 시간이 필요 멋진 트릭을 하지만 테스트하지 않았습니다).
* : rsync는 대용량 파일에서 비효율적입니다. --inplace를 사용하더라도 대상 호스트에서 전체 파일을 먼저 읽은 후에 AFTERWARDS는 소스 호스트에서 파일을 읽고 마지막으로 차이점을 전송합니다 (rsync를 실행하고 관찰하는 동안 dstat 또는 이와 유사한 것을 실행하십시오). 결과적으로 약간의 차이가있는 파일의 경우에도 파일을 동기화하기 위해 파일을 읽는 데 걸리는 시간이 약 두 배가 걸립니다.
** : 파일의 어떤 부분이 변경되었는지 알 수있는 다른 방법이 없다고 가정합니다. LVM 스냅 샷은 비트 맵을 사용하여 변경된 블록을 기록하므로 매우 빠릅니다 ( lvmsync 추가 정보에 자세한 정보가 있음).