У меня есть веб-сайт, на котором есть FTP. Это второстепенная функция по сравнению с основным сайтом, но она становится популярной. Я использую ProFTPd с MySQL, который красиво настраивает пользователей в их домашних каталогах и блокирует их и т. Д. Он также предоставляет пользователям доступ к FTP для безопасности.
У меня сейчас проблема с масштабированием.
Мне быстро не хватает места на моем сервере размером 4 ТБ, и мне нужно разгрузить FTP-трафик на несколько серверов. Однако я, кажется, сталкивался с камнем преткновения в каждом сценарии.
Сценарий 1. Я просто запускаю несколько серверов и назначаю FTP-пространство отдельным пользователям на каждом сервере. Среди преимуществ - отсутствие узких мест на главном сервере, однако это не позволяет пользователю A (например) обновиться до 500 ГБ хранилища, если на диске осталось только 100 ГБ. (Это может случиться).
Сценарий 2: Запустите что-то вроде GlusterFS и создайте пул серверов в качестве распределенной файловой системы и смонтируйте мой каталог пользователей на главном сервере в качестве клиента Gluster. Как я вижу, недостаток заключается в том, что если у меня в будущем будет 50 FTP-серверов (возможно), то все 50 серверов будут направлять трафик на мой один главный сервер, и узкое место будет огромным.
Сценарий 3: Используйте что-то вроде S3FS и просто смонтируйте ведро (или несколько). Преимущества - бесконечное масштабирование, но к недостаткам относятся указанные выше узкие места и феноменальные счета за пропускную способность от AWS.
Может ли кто-нибудь предложить «лучший маршрут» для описываемого мной сценария. Забудьте о существующих клиентах, я счастлив перемещать данные и записи каталогов в БД по одной, если это означает, что я могу получить рабочую модель. Я просто не понимал, что он станет популярным, поэтому не задумывался об этом заранее.
Так что в идеале я хочу иметь возможность создавать пользователей FTP с квотами на лету с PHP, как я делаю сейчас, создавать домашний каталог и блокировать пользователей в нем, но иметь возможность добавлять дополнительные серверы. (с избыточностью) по мере необходимости, что позволяет хорошо масштабировать и не создавать узких мест. И если бы ко всему этому можно было добавить SFTP через SSH, это был бы райский результат.
Я могу делать все вышеперечисленное индивидуально, но, похоже, не могу найти решение, которое соответствует моим потребностям, чтобы охватить все из них.
Будем очень признательны за вашу помощь и совет.