Синхронизировать большие данные из капли в цифровое пространство океана (S3) - PullRequest
2 голосов
/ 22 марта 2019

Размер статической папки моего веб-проекта составляет около 10 ГБ, и она хранится в Digital Ocean Droplet.Сегодня я опробовал Digital Ocean Space, и идея состояла в том, чтобы скопировать и синхронизировать все мои файлы хранения в новом пространстве.

Мой первый подход начался с монтирования папки.

Я создал .passwd-s3fs файл в домашнем каталоге и добавил текст space_name:space_key:space_secret

Затем я установил пакет s3fs командой:

apt-get install s3fs

Создал новую папку для хранения в var для монтирования:

s3fs space_name /var/storage -ourl=https://ams3.digitaloceanspaces.com

В конце использования rsync я начал синхронизировать файлы с моим пространством

rsync -av --stats --progress /var/www/project/static/* /var/storage

Ну, синхронизация была запущена, но она была довольно медленной.

Например, как синхронизировался файл PDF:

static/demo.pdf
        812,707 100%  194.60kB/s    0:00:03 (xfr#1, ir-chk=3084/3086)

Сначала синхронизировались файлы внутри статической папки.Но прошло 30 минут, папки все еще пустые в пространстве DO.В оболочке нет ошибок.

Может быть, есть еще один разумный способ перенести мои статические файлы Droplet в космос?

1 Ответ

2 голосов
/ 23 марта 2019

В ожидании пояснительного комментария, который я оставил, я объясню оба варианта.DigitalOcean Spaces использует Ceph RGW в качестве реализации S3, но ответы здесь применимы как к DigitalOcean Spaces, так и к AWS S3.

Отказ от ответственности: я работаю специально с DigitalOcean Spaces, потому что это развертывание Ceph.

filesystem-on-top-of-S3

Это то, что вы делаете прямо сейчас, есть множество вариантов, например s3fs.Страница s3fs ограничения связана с некоторыми проблемами, связанными с файловой системой на вершине S3.

Основным преимуществом здесь является то, что вы получаете ее в своей файловой системе и можете в основном подключитьэто в приложения напрямую, без изменения приложений.Это может сломаться в зависимости от согласованности и POSIX, а также быть медленным, поскольку теперь оно ограничено задержкой до S3, с множеством циклов.

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

Native S3

Если вам не нужны программы для прозрачногооткрывайте содержимое S3, как будто оно находится в локальной файловой системе, лучше использовать S3 в нативном методе.Загрузите ваш контент с помощью s3cmd или rclone (довольно быстро) и относитесь к нему больше как к веб-серверу статического контента, чем к локальной файловой системе.Не устанавливайте ваш контент как общедоступный, если вы действительно не хотите, чтобы он был публичным, и вы можете рассмотреть возможность использования SSE-C для шифрования данных, если вы не хотите, чтобы они были незашифрованными после того, как они покидают ваш непосредственный контроль.

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

...