Альтернатива GlusterFS для веб-сайта загрузки файлов

У меня есть несколько веб-сайтов для загрузки файлов с файлами размером от сотен килобайт до нескольких гигабайт.

В настоящее время у меня есть все файлы в томе Gluster с распределением-репликацией на нескольких серверах.

Моя самая большая проблема с Gluster - это скорость.

Например, у меня есть папка с ~ 80 000 изображений, в среднем по 500 КБ каждое, и мне потребовалось несколько часов, чтобы сменить владельца изображений.

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

Какие у меня есть альтернативы? Я что-то не так делаю с Gluster?

Это моя конфигурация gluster:

performance.cache-size: 1GB
performance.cache-refresh-timeout: 60
performance.cache-max-file-size: 100KB
cluster.choose-local: true
performance.readdir-ahead: on
performance.io-thread-count: 16
client.event-threads: 3
server.event-threads: 3
4
задан 20 September 2016 в 01:31
2 ответа

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

В основном у вас есть два решения:

  • использовать подход совместного использования файлов, загружая ваши файлы в конкретный ящик и экспортируя их через NFS. Хотя NFS - это не серебряная пуля (и не монстр скорости), в сочетании с кэшированием на стороне клиента он может работать адекватно
  • , используя асинхронную систему репликации файлов, такую ​​как lsyncd (или что-то в этом роде. on rsync )
1
ответ дан 3 December 2019 в 03:40

У меня есть использовал программу lsyncd в аналогичной ситуации, когда мне нужно было синхронизировать контент серверов. Внутренне он использует rsync для синхронизации файлов между серверами.

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

2
ответ дан 3 December 2019 в 03:40

Теги

Похожие вопросы