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

Каталог синхронизации / зеркалирования с ведром файлов Rackspace Cloud

Какой инструмент я могу использовать для синхронизации содержимого локального каталога с содержимым корзины Rackspace Cloud Files?

Мне нужно приложение, подобное rsync, для создания зеркала, а не приложение для резервного копирования. Я хочу иметь возможность делать

rsync --update --delete /local/dir/ cloudfiles://bucket

чтобы удаленная корзина содержала точное зеркало файлов, находящихся в /local/dir/.

Метаданные файлов (владелец, права доступа) не важны, и внутри основного каталога нет каталогов.

Самый простой способ синхронизировать локальный каталог с облачными файлами Rackspace - использовать консольные инструменты, предоставляемые проект openstack / swift. В ubuntu инструменты можно установить с помощью apt-get install python-swiftclient

Затем, если вы находитесь в каталоге, который хотите загрузить, выполните в терминале следующую команду:

$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed

Это рекурсивно загрузит файлы из вашего текущего каталога в <containername> контейнер, экономя время, загружая только измененные файлы. Вам необходимо предоставить <username> вы используете для входа в облачную панель управления и <api-key> доступно в разделе «Учетная запись» / «Настройки учетной записи» на той же панели управления.

Внимание: Если вы используете относительные или абсолютные пути, swift загрузит их с псевдопутем предоставляется в командной строке в контейнер. Итак, если вместо синхронизации . вы синхронизируете /var/www/test, то файлы попадут в /var/www/test псевдопуть контейнера - скорее всего, это не то, что вам нужно.

Вы можете использовать модуль Rackspace Cloud Files FUSE (http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse) для создания монтируемой файловой системы, но помните о следующих предостережениях:

  • используйте что-то вроде --size-only, чтобы определить, был ли файл полностью записан, а не -a или что-то в этом роде, поскольку установка разрешений и времени не поддерживается
  • использование --bwlimit не сработает, потому что модуль кэширует записи во временный файл в памяти, а затем съедает всю полосу пропускания при загрузке; Я провожу эксперимент с помощью утилиты trickle, чтобы посмотреть, помогает ли это

Для Linux я нашел этот старый проект: http://code.google.com/p/cloudfiles-sync/wiki/Instructions

Для Windows есть этот инструмент с графическим интерфейсом: http://www.cloudberrylab.com/free-openstack-storage-explorer.aspx

Я также только что нашел этот инструмент, который может позволить вам монтировать облачное хранилище файлов: http://smestorage.com/?p=static&page=LinuxDrive

Другой потенциальный вариант, в качестве альтернативы CloudFuse для монтирования Rackspace Cloud Files в качестве тома, для которого вы запускаете rsync, вы можете запустить Caimito как мост Cloud-Files-to_WebDAV.

http://caimito.ngasi.com/

Затем, хотя вы могли бы попытаться использовать плагин файловой системы Fuse DAV2 с rsync и кучей специальных параметров командной строки для передачи файлов в Cloud Files через мост, я вместо этого рекомендую "копирование сайта", которое по сути не является ужасно не похож на Unison.

https://www.howtoforge.com/maintain-remote-web-sites-with-sitecopy-debian-squeeze-ubuntu-11.10

Sitecopy выполняет ОТЛИЧНУЮ работу по отправке файлов через WebDAV к своей цели (даже если наша цель - фронтальный слой эмуляции для Cloud Files). Это связано с тем, что sitecopy поддерживает локальную базу данных метаданных удаленных файлов, что позволяет быстро сравнивать пакеты с rsync.

Caimito оказался на удивление стабильным и простым в установке и настройке, несмотря на его корни в Java.

Вы можете сделать вывод, что использование «swift» (упомянутого выше) может быть более прямым вектором решения, но это решение дает вам еще несколько мест для исследования, анализа, отладки и управления потоком данных.

Я думаю, вы можете использовать для этого rsync, но он не работает для вас по любой причине, которую вы также пытаетесь: Синхронизатор файлов Unison, это действительно отлично работает!