Rclone - популярный инструмент для работы для управления файлами в облачных хранилищах. В статье инженеров Ozon Tech интересное про rclone:
Раньше при необходимости смигрировать бакет из одного кластера в другой мы использовали Rclone. Rclone — консольная утилита для копирования данных из одного источника в другой со всеми вытекающими из этого недостатками:- нет observability, есть только текстовые логи. Нельзя централизованно посмотреть статус миграции и какой процент данных уже переехал;
- нет готовой автоматизации для запуска, нужно писать скрипты, которые сначала копируют бакет, а потом проверяют, что данные действительно доехали;
- сложно интегрировать в нашу S3-инфраструктуру, например, чтобы из скриптов переключать fallback-маршруты;
- для S3 работает не очень эффективно — Rclone сначала полностью листит бакет в оперативную память (и хранит в виде xml-структур, из-за чего потребляет много памяти) и только потом начинает переносить объекты, хотя можно было бы это делать параллельно. Для больших бакетов на десятки миллионов объектов это сильно затягивается, вспомним ещё, что для RGW листинг больших бакетов — дорогая операция. На этапе сверки Rclone опять листит бакет, но теперь ещё и в целевом кластере;
- нет возможности поставить миграцию на паузу и потом продолжить с того же места. Аналогично нельзя изменить количество воркеров у запущенной миграции, можно только остановить и начать сначала, и Rclone будет листить весь бакет заново;
- столкнулись с багами, например, Rclone не умеет копировать объекты с ключами с двумя слэшами вида some//dir/object, миграция такого объекта просто завершается с ошибкой.
И это более-менее актуально, статья от 3 июня 2024 года.
Источник: https://habr.com/ru/companies/ozontech/articles/818433/