Назад | Перейти на главную страницу

Использование RSYNC с Amazon S3

Я заинтересован в использовании Amazon S3 для резервного копирования наших образов серверов размером ~ 100 ГБ (созданных с помощью инструментов резервного копирования Acronis)

Очевидно, что такая загрузка в S3 каждую ночь будет дорогостоящей с точки зрения пропускной способности и стоимости. Я подумываю использовать rsync с S3 и наткнулся на s3rsync. Мне просто интересно, есть ли у кого-нибудь опыт использования этой или какой-либо другой утилиты?

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

После некоторых разочарований, связанных с работой с FUSE и некоторыми другими решениями, я решил написать свой собственный «клон» rsync из командной строки для S3 и Google Storage с использованием Python.

Вы можете ознакомиться с проектом на GitHub: http://github.com/seedifferently/boto_rsync

Еще один проект, о котором я недавно узнал, - это «двуличие». Он выглядит немного сложнее, и его можно найти здесь: http://duplicity.nongnu.org/

Надеюсь это поможет.

ОБНОВИТЬ

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

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

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

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

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

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

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

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

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

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

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

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

Можешь попробовать мини-клиент он же «МС». 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.

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

$ mc mirror localdir/ S3/remoteDir

Вы также можете написать cronjob для того же. Также в случае возмущения сети вы в любом случае можете использовать «$ mc session», чтобы перезапустить загрузку с этого времени.

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

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

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