У меня есть сайт для обмена файлами, популярность которого быстро растет.
Прямо сейчас мое веб-приложение находится на эластичном beanstalk AWS, поэтому, конечно, прекрасно масштабируется, однако в настоящее время все мои файлы обслуживаются из одного выделенного ящика. Коробка начинает работать с максимальной скоростью 1 Гбит / с, поэтому я пытаюсь выяснить, как увеличить хранилище файлов.
NB: У меня также есть все файлы, синхронизированные с S3, но обслуживать их оттуда слишком дорого из-за платы за пропускную способность S3. Моя выделенная коробка не измерена.
До сих пор я видел разговоры о DRBD и Lsyncd, но ни то, ни другое не похоже на то, что я ищу.
Будем ОЧЕНЬ благодарны за любые советы по наилучшей настройке для запуска Linux-боксов с несколькими хранилищами файлов в режиме реального времени с синхронизацией за балансировщиком нагрузки.
P.S - стоит отметить, что мой идеальный сценарий - все они синхронизированы постоянно, поэтому, если файл добавляется в один ящик, он синхронизируется во всех ящиках. То же самое, когда файл удален.
GlusterFS отлично подходит для этого, как и Ceph. GlusterFS проще в управлении и не использует репликацию с узла на узел в качестве основного метода репликации или распределения данных. Она может выполнять зеркалирование 2n или 3n кирпичей, когда кирпич - это всего лишь файловая система на узле. Полный массив кирпичей ссылается на том, а том монтируется как NFS share - за исключением того, что это запись и чтение на нескольких узлах, а не только на одном.
Gluster красиво масштабируется и не имеет понятия "главный узел". Все узлы в равной степени участвуют в томах, членами которых они являются. Именно клиенты, подключающиеся к GlusterFS, отвечают за разворачивание данных на всех узлах, а не на каждом узле, отвечающем за репликацию данных. Таким образом, вам не нужно иметь огромные, плохо масштабируемые каналы обратного транзита.
Ниже приведено хорошее пошаговое руководство по его настройке: https://www.digitalocean.com/community/tutorials/how-to-create-a-redundant-storage-pool-using-glusterfs-on-ubuntu-servers
Также стоит прочитать документацию по gluster: https://gluster.readthedocs.io/en/latest/