Насколько стабильна s3fs для подключения корзины Amazon S3 в качестве локального каталога [закрыто]


насколько стабильна s3fs для подключения корзины Amazon S3 в качестве локального каталога в linux? Порекомендовано / стабилизировано для производственных сред высокого спроса?

есть ли какие-либо лучшие/подобные решения?

обновление: было бы лучше использовать EBS и монтировать его через NFS для всех других масс?

2 58

2 ответа:

здесь есть хорошая статья о s3fs, который после прочтения я прибегнул к доле EBS.

Он выделяет несколько важных соображений при использовании s3fs, а именно связанных с присущими ограничениями S3:

  • ни один файл не может быть более 5 ГБ
  • вы не можете частично обновить файл, поэтому изменение одного байта повторно загрузит весь файл.
  • работа со многими небольшими файлами очень эффективна (каждый является отдельным объектом S3 в конце концов) но большие файлы очень неэффективны
  • хотя S3 поддерживает частичные / фрагментированные загрузки, s3fs не использует это преимущество, поэтому, если вы хотите прочитать только один байт файла 1GB, вам придется загрузить весь GB.

поэтому это зависит от того, что вы храните, является ли s3fs возможным вариантом. Если вы храните, скажем, фотографии, где вы хотите записать весь файл или прочитать весь файл, никогда не меняйте файл постепенно, тогда это нормально, хотя можно спросить, если вы делаете это, то почему бы просто не использовать API S3 напрямую?

Если вы говорите о данных приложения, (скажем, файлы базы данных, файлы журналов), где вы хотите сделать небольшое инкрементное изменение, то его определенный no - S3 просто не работает таким образом, вы не можете постепенно изменить файл.

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

  • высокий риск повреждения данных, из-за задержки записи
  • слишком маленькие размеры блоков (например, 4K по умолчанию) могут добавить значительные дополнительные расходы (например, $130 за 50 ГБ с 4K блоков стоит хранения)
  • слишком большие размеры блока могут добавить значительные передачу данных и хранение сборы.
  • использование памяти может быть запретительным: по умолчанию он кэширует 1000 блоки.
    С размером блока по умолчанию 4K это не проблема, но большинство пользователей
    вероятно, вы захотите увеличить размер блока.

я прибегал к ЭБС смонтирован рольганг совместно с экземпляром EC2. Но вы должны знать, что хотя самый эффективный вариант имеет одну большую проблему У общего ресурса NFS, подключенного к EBS, есть свои проблемы - одна точка отказа; если машина, которая использует общий том EBS, отключается, вы теряете доступ ко всем машинам, которые обращаются к делиться.

это риск, с которым я смог жить и был вариант, который я выбрал в конце концов. Надеюсь, это поможет.

Это старый вопрос, поэтому я поделюсь своим опытом за последний год с S3FS.

первоначально у него было несколько ошибок и утечек памяти (у меня была cron-работа, чтобы перезапустить ее каждые 2 часа), но с последней версией 1.73 она была очень стабильной.

самое лучшее в S3FS - это то, что у вас есть одна вещь, о которой нужно беспокоиться, и получить некоторые преимущества производительности бесплатно.

большинство ваших запросов S3 будут помещены (~5%) и получить (~95%). Если вам не нужно любая постобработка (например, создание миниатюр). Если вам не нужна никакая пост-обработка, вы не должны в первую очередь нажимать на свой веб-сервер и загружать непосредственно на S3 (используя CORS).

предполагая, что вы попали на сервер, вероятно, означает, что вам нужно сделать некоторые пост-обработки на изображениях. С помощью API S3 вы будете загружать на сервер, а затем загружать на S3. Если пользователь хочет обрезать, вам нужно будет снова загрузить с S3, затем повторно загрузить на сервер, обрезать и затем загрузить на S3. С включенным S3FS и локальным кэшированием эта оркестровка позаботится о вас и сохранит загрузку файлов из S3.

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

единственное, что я хочу, чтобы у него была полная синхронизация с S3 (стиль RSync). Это сделало бы его корпоративной версией DropBox или Google Drive для S3, но без необходимости бороться с квотами и сборами, которые приходят с ним.