Мігруйте, синхронізуйте та робіть резервні копії сховища S3 з доказом завершення кожного запуску
Godwit Sync є інструментом із попереднім плануванням для міграції, синхронізації та резервного копіювання S3-сумісного об'єктного сховища. Передавайте лише те, що змінилося, між будь-якими сховищами S3 або з локального сервера, зберігайте кожну версію як звичайний об'єкт S3 і отримуйте доказ завершення кожного запуску з перевіркою контрольних сум і відновленням після збоїв.
Ключові можливості
Надійні передачі S3, перевірені від початку до кінця
Кожен запуск контрольований, відновлюваний і перевірюваний.
Плануйте перед переміщенням
Знайте точно, що станеться, перш ніж будь-які дані переміщуватимуться. Створюйте плани міграції, переглядайте їх, змінюйте за потреби та виконуйте з впевненістю.
- Детерміноване створення плану міграції (--plan-only)
- Плани міграції зберігаються в SQLite
- Перегляд, зміна та повторне використання планів
- Передбачуване виконання кожного разу
$ godwit sync \
--source s3://production-bucket \
--destination s3://backup-bucket \
--plan-only --brief
────────────────────────────────────────
PLAN CREATED
────────────────────────────────────────
✓ Run-ID: run-1770316589731184186
✓ Objects analyzed: 685,234
✓ Objects to transfer: 620,205
✓ Objects skipped: 65,029
✓ Data to transfer: 40.03 GB
✓ Data skipped: 4.7 GB
────────────────────────────────────────
Наскрізні контрольні суми
Перевірка кожного обʼєкта за справжніми MD5-хешами, а не лише ETAG.
Детерміновані запуски
Однакові вхідні дані дають однакові результати, без жодної прихованої випадковості.
Паралельні, контрольовані передачі
Висока пропускна здатність без втрати стабільності чи безпеки.
Точність метаданих
Збереження метаданих обʼєкта точно так, як вони зберігаються у джерелі.
Відновлення на рівні частин
Відновлення після часткових завантажень без пошкодження великих файлів.
Збереження Object Lock
Реплікація GOVERNANCE/COMPLIANCE retention та legal hold налаштувань для кожної версії.
Безпечний для продакшену за замовчуванням
Створений для середовищ, де простої та втрата даних неприпустимі. Обмежуйте швидкість операцій, відновлюйтесь з будь-якої точки та підтримуйте здоров'я вихідних систем.
- Обмежена швидкість читання та запису
- Справжнє потокове копіювання (без локального буферу)
- Відновлення з точного файлу або частини
- Стабільність для великих файлів
- Без перевантаження вихідних систем
Кожна версія, перевірена побайтово
Незалежно від того, чи створюєте ви резервну копію локального каталогу сервера, чи мігруєте bucket між S3-сховищами, Godwit Sync зберігає кожну версію, а не лише останню. Змінені об'єкти потрапляють до версіонованого bucket як нові об'єкти S3, тож попередні версії ніколи не перезаписуються, а кожна перевіряється контрольною сумою з пропуском версій класу Glacier та збереженням Object Lock retention.
- Резервне копіювання локального каталогу сервера в будь-який S3-сумісний bucket, інкрементально, лише те, що змінилося за кожен запуск
- Міграція повної або часткової історії версій bucket: усі версії або лише потрібні
- Спрямуйте на версіонований bucket: кожен змінений об'єкт стає новою версією об'єкта S3, тож попередні версії ніколи не перезаписуються
- Перевірка контрольних сум для кожної версії з .md5 sidecar; підтвердьте побайтову цілісність через godwit plan verify
- Версії класу Glacier виявляються та пропускаються; Object Lock retention і legal hold зберігаються
# Plan a full version history migration
$ godwit sync \
--source s3://prod-bucket \
--source-endpoint s3.amazonaws.com \
--source-access-key <SOURCE_ACCESS_KEY> \
--source-secret-key <SOURCE_SECRET_KEY> \
--destination s3://archive-bucket \
--destination-endpoint s3.amazonaws.com \
--destination-access-key <DESTINATION_ACCESS_KEY> \
--destination-secret-key <DESTINATION_SECRET_KEY> \
--state-path ./godwit.state.db \
--run-id version-history-prod \
--version-mode all --object-lock --plan-only
Planning...
⚠ Warning: 9 GLACIER objects detected.
Restore required before migration.
────────────────────────────────────────
PLAN CREATED
────────────────────────────────────────
✓ Run-ID: version-history-prod
✓ Objects analyzed: 23
✓ Objects to transfer: 14
✓ Objects skipped: 9
✓ Data to transfer: 48.20 GB
────────────────────────────────────────# Preview a point-in-time restore of the bucket as of 02:00
$ godwit sync \
--source s3://prod-bucket \
--source-endpoint s3.amazonaws.com \
--source-access-key <SOURCE_ACCESS_KEY> \
--source-secret-key <SOURCE_SECRET_KEY> \
--destination /restore/2am \
--state-path ./godwit.state.db \
--run-id pitr-2am \
--version-mode asof:2026-06-01T02:00:00Z --plan-only
Planning...
────────────────────────────────────────
PLAN CREATED
────────────────────────────────────────
✓ Run-ID: pitr-2am
✓ Objects analyzed: 1,268
✓ Objects to transfer: 1,204
✓ Objects skipped: 64
✓ Data to transfer: 62.40 GB
────────────────────────────────────────Відкотіть bucket або префікс на будь-який момент часу
Відтворіть bucket, префікс або окремий об'єкт таким, яким він був в обраний момент. Godwit Sync обирає версію кожного ключа, що була актуальною на момент відсічення, і записує її як поточний об'єкт, тож ваші дані повертаються до того моменту однією командою.
- Одна команда; абсолютний час або asof:30d
- Відновлює у файлову систему або звичайний bucket
- Пропускає ключі, видалені чи створені після відсічення
- Відсічення використовує годинник сервера джерела
Синхронізуйте лише те, що змінилося
Перший запуск виконує повну синхронізацію; кожен наступний порівнює кожен об'єкт джерела з метаданими підтверджено завершених об'єктів і передає лише те, що змінилося, без повторного сканування призначення. Кожен запуск надає статус-ендпоінт і код виходу, щоб автоматизація могла підтвердити його завершення.
- Виявлення змін size+ETag
- Переносні контрольні суми .md5
- Аварійно-стійка базова лінія
- Доказ завершення кожного запуску
- Попередній перегляд через --plan-only
# Incremental sync transfers only what changed
$ godwit sync \
--source s3://prod \
--source-endpoint prod-rustfs:9000 \
--source-access-key <SOURCE_ACCESS_KEY> \
--source-secret-key <SOURCE_SECRET_KEY> \
--destination s3://backup \
--destination-endpoint backup-rustfs:9000 \
--destination-access-key <DESTINATION_ACCESS_KEY> \
--destination-secret-key <DESTINATION_SECRET_KEY> \
--state-path ./godwit.state.db \
--run-id daily-backup \
--incremental --override --brief
────────────────────────────────────────
PLAN READY
────────────────────────────────────────
✓ Run-ID: daily-backup
✓ Objects analyzed: 500,234
✓ Objects to transfer: 1,072
✓ Objects skipped: 499,162
✓ Data to transfer: 890 MB
✓ Data skipped: 1.4 TB
────────────────────────────────────────
RUN COMPLETED
────────────────────────────────────────
✓ Run-ID: daily-backup
✓ Objects transferred: 1,072
✓ Data transferred: 890 MB
✓ Total time: 47s
────────────────────────────────────────Спостережуваність та верифікація
Знайте точно, що відбувається в кожен момент. Інтегруйтесь з існуючим стеком моніторингу та перевіряйте кожен байт після його доставки.
- Детальний CLI UI з прогресом у реальному часі
- REST endpoint для статусу
- Prometheus-сумісні метрики
- Передбачувана тривалість та оцінка прогресу
- Вбудована MD5 верифікація після кожної передачі
Переміщення даних, зроблене правильно
Godwit Sync перетворює ризиковані міграції сховищ на заплановані, спостережувані та безпечні для продакшену робочі процеси для сучасних інфраструктурних команд.
Йдете з MinIO? Перейдіть на S3, RustFS або Ceph, не втрачаючи форму ваших даних.
Зберігайте історію версій, Object Lock, перевірку контрольних сум і поновлювані передачі, мігруючи зі сховища в режимі підтримки.
Робіть бекап у S3 як звичайні об'єкти.
Кожна версія залишається звичайним об'єктом, який можна переглянути та відновити звичними S3-сумісними інструментами.