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

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

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

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

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

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

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

решение1

Самый простой способ синхронизировать локальный каталог с файлами облака 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псевдопути контейнера - скорее всего, это не то, что вам нужно.

решение2

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

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

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

решение3

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

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

решение4

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

Связанный контент