Я веду сайт обмена файлами, популярность которого быстро растет.
Прямо сейчас мое веб-приложение находится на эластичном beanstalk AWS, поэтому, конечно, прекрасно масштабируется, однако в настоящее время все мои файлы обслуживаются из одного выделенного ящика. Коробка начинает работать с максимальной скоростью 1 Гбит / с, поэтому я пытаюсь выяснить, как увеличить хранилище файлов.
NB: У меня также есть все файлы, синхронизированные с S3, но обслуживать их оттуда слишком дорого из-за платы за пропускную способность S3. Моя выделенная коробка не измерена.
До сих пор я видел разговоры о DRBD и Lsyncd, но ни то, ни другое не похоже на то, что я ищу.
Будем ОЧЕНЬ благодарны за любые советы по лучшей настройке для запуска нескольких ящиков Linux для хранения файлов в режиме реального времени с синхронизацией за балансировщиком нагрузки.
P.S - стоит отметить, что мой идеальный сценарий - все они синхронизируются постоянно, поэтому, если файл добавляется в один ящик, он синхронизируется во всех ящиках. То же самое и при удалении файла.
GlusterFS отлично подходит для этого, как и Ceph. GlusterFS проще в управлении и не использует репликацию между узлами в качестве основного метода репликации или распространения данных. Он может выполнять зеркальное копирование 2 или 3 кирпичей, где кирпич - это просто файловая система на узле. Полный массив блоков называется томом, и том монтируется как общий ресурс NFS, за исключением того, что он выполняет запись и чтение на несколько узлов, а не только на один.
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/