Использование 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-проекта для своих облачных сервисов на основе boto. Среди включенных инструментов есть интерфейс для S3, который дублирует (и во многих отношениях заменяет) большую часть функциональности, предоставляемой boto-rsync:

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

В частности, syncкоманду можно настроить так, чтобы она работала почти так же, как rsync:

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


большой вклад! спасибо, и я скоро предоставлю ваш код. У вас есть какие-либо обязательные для изучения Python / Django? Приветствия
iainlbc

Какие преимущества / отличия у вашей программы по сравнению с S3cmd и S3sync?
Джеймс МакМэхон

@JamesMcMahon s3cmd / s3sync - это более полнофункциональные CLI для S3 (управление сегментами, содержимым списков и т. Д.), В то время как boto-rsync является строго попыткой имитировать rsync.
Сет

Есть предохранитель s3fs: github.com/s3fs-fuse/s3fs-fuse, который прекрасно работает и может сочетаться с rsync, однако я не уверен, насколько эффективно.
Станислав

Было бы здорово, если бы вы могли объяснить, как «команда sync может быть настроена так, чтобы она работала почти так же, как rsync».
trusktr

10

Мне также повезло с S3cmd и S3sync , которые бесплатны.


+1 за S3cmd -.-
фнкр

S3cmd имеет проблему с большими номерами файлов (> 300 тыс. Файлов). Он потребляет около 1 гигабайта на 100 тыс. Файлов рабочей памяти, так что хорошо иметь в виду это ограничение.
Tuxie

7

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


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

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

4

Я никогда не пробовал S3rsync.

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

С Duplicity вам не нужно проходить через другой сервер, как это делает S3sync, тем не менее, если вы шифруете свои данные, стоит попробовать S3sync.


1

S3 также имеет дополнительную услугу под названием AWS Import / Export, которая позволяет вам отправлять USB-накопитель с вашим начальным набором данных 100 ГБ, и они загружают его в облако S3, используя некоторые внутренние инструменты в своих центрах обработки данных. Как только ваш 100Gb будет там, вы можете просто делать разностное резервное копирование каждую ночь, чтобы сделать резервную копию всего, что изменилось.

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

Если большая часть ваших данных довольно статична, то это было бы хорошим вариантом, если все 100 ГБ данных ежедневно меняются, то это не сильно вам поможет.


3
Как вы думаете, они «загружают» 128-Гб флешку? Я представляю самый большой в мире USB-концентратор, от пола до потолка патч-панель с USB-разъемами, 3/4 полных флешек, поставляемых заказчиком, и все это в задней части одного блейд-сервера.
Пол

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

0

Вы можете попробовать мини-клиент, также известный как "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: Я участвую в проекте Minio и хотел бы получить ваши отзывы и вклад. Надеюсь, это поможет.


-1

Новая версия Jungle Disk Server (бета) может быть вам полезна. Он имеет дедупликацию на уровне блоков, поэтому, если у ваших образов Acronis есть что-то общее, это значительно сократит объем резервного копирования. Функции идеально подходят для резервного копирования на сервер. Ознакомьтесь с заметками о выпуске.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.