진정한 rsync가 Amazon에 적합한 지 잘 모르겠습니다.
내가 이해하는 것처럼 표준 rsync 알고리즘은 클라이언트가 파일의 각 블록에 대한 해시를 계산하고 서버가 사본에 대한 해시를 계산하고 해당 해시를 클라이언트에 전송하여 클라이언트가 어떤 블록이 변경되어 업로드가 필요한지 결정할 수 있음을 의미합니다.
이로 인해 많은 해시가 인터넷을 통해 전송되어야하고 아마존의 비용을 증가시키는 모든 해시를 계산하는 데 처리 능력이 필요하다는 Amazon의 두 가지 문제가 발생합니다. 해당 기능에 대한 추가 요금이 부과됩니다.
클론의 경우 분명히 해시를 어딘가에 저장하고 있으며 어딘가에 따라 클론에 따라 다를 수 있습니다. 해시를 Amazon의 파일 당 별도의 객체 또는 Amazon에 저장된 데이터베이스로 저장하거나 로컬 및 원격으로 저장할 수 있습니다.
어떤 식 으로든 장점과 단점이 있습니다. 해시가 개별 파일에 원격으로 저장된 경우 지속적으로 검색하는 데 많은 비용이들 수 있습니다. 해시가 원격으로 데이터베이스에 저장되면이 데이터베이스가 커질 수 있으며 지속적으로 검색하고 업데이트하는 데 많은 비용이들 수 있습니다. 해시가 로컬로 저장되면 비용을 줄이는 데 도움이되지만 다른 합병증과 문제가 발생합니다.
(물론 Amazon에는 다른 서비스가 있으므로 데이터베이스를 Amazon DB에 보관할 수 있습니다)
예를 들어, 몇 년 전에 하나의 초기 rsync 클론을 사용해 보았습니다. 이것은 아마존의 가격 구조를 고려하여 작성되지 않았으며 각 블록의 해시를 검색하기 위해 많은 http 가져 오기를 발행했으며 각 가져 오기에 대한 Amazon 요금이 청구되었으므로 청구서의 스토리지 부분이 급격히 떨어졌지만 전송 부분 풍선
rsync + s3rsync + s3 대신 duplicity + s3을 사용하면 무엇이 손실됩니까?
rsync를 사용하면 소스 파일과 백업 파일을 비교한다는 것을 알 수 있습니다. 이중성 및 기타 복제본을 사용하면 소스 파일을 백업을 수행 할 때 가져온 해시와 비교합니다. 예를 들어, 해시를 다시 계산하거나 해시 데이터베이스를 업데이트하지 않고 S3에 직접 액세스하여 해당 파일 중 하나를 교체 할 수 있습니다.