Використання RSYNC з Amazon S3 [закрито]


39

Мені цікаво використовувати Amazon S3 для резервного копіювання наших ~ 100 Гб зображень сервера (створених за допомогою інструментів резервного копіювання Acronis)

Очевидно, що завантаження на S3 щовечора було б дорогим з точки зору пропускної здатності та вартості. Я розглядаю можливість використання rsync з S3 і натрапив на s3rsync. Мені було просто цікаво, чи має хто-небудь досвід використання цього чи будь-якої іншої утиліти?


1
Одне, що я помітив щодо s3rsync, - це те, що Ви зараз обмежені розмірами відра 10 Гб (ознайомтесь із FAQ). Ви можете мати кілька відра, але вам потрібно розділити свої дані на шматки 10 Гб.
дата

Відповіді:


35

Нещодавно я наткнувся на цю нитку в Google, і схоже, що пейзаж трохи змінився з моменту запитання. Більшість запропонованих тут рішень або більше не підтримуються, або стали комерційними.

Після деяких розладів роботи з FUSE та деяких інших рішень там я вирішив написати власний командний рядок rsync "клон" для S3 та Google Storage за допомогою Python.

Ви можете переглянути проект на GitHub: http://github.com/seedifferently/boto_rsync

Ще один проект, про який я нещодавно прозвітував, - це "двозначність". Це виглядає трохи більш детально, і його можна знайти тут: http://duplicity.nongnu.org/

Сподіваюсь, це допомагає.

ОНОВЛЕННЯ

Команда Python в AWS наполегливо працювала над проектом CLI на основі бото для своїх хмарних сервісів. Серед включених інструментів - інтерфейс для S3, який дублює (і багато в чому витісняє) більшість функцій, що надаються boto-rsync:

https://github.com/aws/aws-cli

Зокрема, syncкоманду можна налаштувати так, щоб вона функціонувала майже точно так само, як rsync:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


великий внесок! дякую, і я скоро дам вам код. Чи є у вас обов'язкові читання для вивчення пітона / джанго? Ура
iainlbc

Які переваги / відмінності у вашій програмі порівняно з S3cmd та S3sync?
Джеймс Макмахон

@JamesMcMahon s3cmd / s3sync є більш повнофункціональними CLI для S3 (керуйте відрами, вмістом списку тощо), тоді як boto-rsync - це суто спроба імітувати rsync.
Сет

Існує запобіжник s3fs: github.com/s3fs-fuse/s3fs-fuse, який працює чудово і може поєднуватися з rsync, проте я не впевнений, наскільки ефективно.
Станіслав

Було б дивним, якщо ви можете пояснити, як "команда синхронізації може бути налаштована так, щоб функціонувати майже так само, як rsync".
trusktr

10

Також мені пощастило з S3cmd та S3sync , обидва вони безкоштовні.


+1 за S3cmd -.-
fnkr

S3cmd має проблему з великими файловими номерами (> 300k файлів). Він з'їдає близько 1 кг на 100 к файлів робочої пам’яті, настільки добре мати на увазі, що обмеження ..
Tuxie

7

Залежно від того, як створюються ваші зображення Acronis, я не впевнений, що будь-який тип rsync врятував би вам пропускну здатність. Зображення Acronis - це один файл (и), тому rsync не зможе прочитати всередині них, щоб створити резервну копію лише зміни. Також не впевнений, які саме образи сервера ви створюєте, але оскільки ви сказали, що 100 ГБ я збираюся вважати повним? Покрокове зображення значно зменшить нічний розмір зображення, тим самим заощадивши пропускну здатність. Ви також можете зберегти зображення в іншому місці, ніж S3, наприклад, на стрічкових носіях, і зберігати їх поза сайтом.


4
Ні, rsync не працює так. Він працює з будь-яким типом файлу і не потребує знань про внутрішні файли, що синхронізуються. Натомість вона порівнює хеші фрагментів файлу та передає лише ті фрагменти, які відрізняються. en.wikipedia.org/wiki/Rsync
Алан Доннеллі

2
і жоден з патронів не збігатиметься, оскільки будь-яка невелика зміна файлів усередині зображення призведе до зміни всього файлу через стиснення. Навіть при вимкненій компресії я не впевнений, що це буде добре синхронізувати, тому що файли всередині зображення можуть змінювати порядок, і він відповідає послідовно, а не просто знаходити будь-який фрагмент однакового.
JamesRyan

4

Я ніколи не пробував S3rsync.

Я використовую подвійність для наших резервних копій за межами сайту. Він підтримує додаткові резервні копії на S3, хоча це не дуже економія пропускної здатності завдяки протоколу зберігання Amazon S3, в якому будь-яка модифікація файлу змушує вас знову завантажувати весь новий файл. У будь-якому разі дублювання завантажує лише відмінності від останнього додаткового резервного копіювання.

З Duplicity вам не потрібно буде проходити інший сервер, як це робить S3sync, але, якщо ви шифруєте свої дані, варто спробувати S3sync спробувати.


1

S3 також має додаткову службу під назвою AWS Import / Export, яка дозволяє надіслати USB-накопичувач із початковим набором даних на 100 Гбіт, і вони завантажуватимуть його у хмару S3 за допомогою деяких інструментів резервного копіювання у своїх центрах обробки даних. Після того, як ваші 100Gb є там, ви можете робити щорічно диференціальне резервне копіювання, щоб створити резервну копію всього, що змінилося.

Сайт http://aws.amazon.com/importexport/

Якщо більшість ваших даних є досить статичними, це було б хорошим варіантом, якщо цілі 100Gb даних змінюються щодня, то це не допоможе вам сильно.


3
Як ви гадаєте, що вони "завантажують" флешку на 128 Гбіт? Я представляю найбільший у світі концентратор USB, патч-патч для підключення USB-роз'ємів, 3/4 повний флеш-накопичувачів, що постачаються клієнтом, і все це відбувається в задній частині одного лезового сервера.
Пол

Який образ !! Насправді, мабуть, якийсь бідний хлопець у темному куточку дата-центру з найбільшим у світі вузлом USB, підключеним до його ПК :)
monkeymagic

0

Ви можете спробувати minio client aka "mc". mc надає мінімальні інструменти для роботи з сумісними хмарними сховищами та файловими системами Amazon S3.

mc реалізує наступні команди

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Ви можете використовувати дзеркальну команду для виконання своєї операції. "localdir" - це локальний каталог & S3 [псевдонім для Amazon S3] та "remoteDir" назва вашого відра на S3.

$ mc mirror localdir/ S3/remoteDir

Ви також можете написати cronjob для того ж. Також у випадку безмережних мереж ви можете будь-коли використовувати "$ mc session", щоб перезапустити завантаження з цього часу.

PS: Я сприяю міні-проекту, і я хотів би отримати ваші відгуки та внесок. Сподіваюся, це допомагає.


-1

Нове видання Jungle Disk Server (бета) може бути корисним для вас. У ньому є дедуплікація на рівні блоків, тому якщо у ваших зображень Acronis є щось спільне, це значно зменшить суму, необхідну для резервного копіювання. Функції ідеально підходять для резервного копіювання сервера. Перегляньте нотатки до випуску.

Я тестував бета-версію протягом двох тижнів і, окрім деяких невеликих проблем із графічним інтерфейсом, які, напевне, будуть виправлені у фіналі, я захоплююсь продуктом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.