Я не впевнений, чи справжня rsync підходить для Amazon.
Як я розумію, стандартний алгоритм rsync означає, що клієнт обчислює хеші для кожного блоку файлу, а сервер обчислює хеші для його копії та надсилає ці хеші клієнту, а це означає, що клієнт може визначити, які блоки змінилися та потребують завантаження.
Це спричиняє дві проблеми для Amazon в тому, що багато хешей потрібно надсилати через Інтернет, а також потрібна обробна потужність, щоб обчислити всі ті хеші, які б збільшили витрати Amazon. за цю функцію стягується додаткова плата.
Що стосується клонів, вони, очевидно, зберігають хеші десь і десь можуть змінюватися залежно від клону. Вони можуть зберігати хеші як окремий об'єкт у файлі на Amazon або у базі даних, що зберігається на Amazon, або вони можуть зберігати їх локально та віддалено.
Є переваги і недоліки робити це будь-яким способом. Якщо хеші зберігаються віддалено в окремих файлах, то їх постійне відновлення може бути дорогим. Якщо хеші зберігаються в базі даних віддалено, то ця база може набути великих масштабів, а їх постійне відновлення та оновлення може бути дорогим. Якщо хеші зберігаються локально, то це сприяє зменшенню витрат, але створює інші ускладнення та проблеми.
(Звичайно, в Amazon є інші сервіси, тому можна було б зберігати базу даних у Amazon DB)
Як приклад, я спробував один ранній клон rsync багато років тому. Це було написано не для врахування структури ціноутворення в Amazon, і було видано багато http, щоб отримати хеш кожного блоку, і оскільки стягнення Amazon за кожне отримання, це означало, що, хоча частина зберігання мого рахунку різко впала, частина передачі повітряна куля.
Що я втрачаю, використовуючи duplicity + s3 замість rsync + s3rsync + s3?
Ви втрачаєте той факт, що за допомогою rsync ви знаєте, що порівнюєте вихідні файли з вашими резервними файлами. З подвійністю та іншими клонами ви порівнюєте вихідні файли з хешем, який був зроблений під час резервного копіювання. Наприклад, можливо отримати доступ до S3 безпосередньо та замінити один із його файлів без перекомпонування хешу чи оновлення хеш-бази даних.