Как объединить множество серверов в единое дисковое пространство, но каждый сервер мог раздавать файлы?
Здравствуйте,
Есть 50 серверов с двумя 1 Gbit аплинками по локальной и внешней сети. Каждый сервер имеет 2x 2 TB SSD диска. Есть ли технологии, которые могут объединить их в одно дисковое пространство, и в то же время, каждый сервер мог бы быть сервером раздачи файлов?
В теории: Если учесть избыточность хранения 1+1, то имеем распределенный массив 50x 2 TB = 90 TB с суммарной пропускной способностью 50х 1 Гбит = 50 Гбит.
Update: С хранением более-менее понятно Gluster, Ceph. Не понятным остается, можно ли сделать так, что бы каждый сервер был и сервером раздачи. Каким образом это реализуется? Хотелось бы получить распределенную раздачу, но видимо, это все фантазии.
Wexter, простите, много вопросов возникает по ходу.
Если Glusterfs хранит полную копию данных, то задействовать более одного сервера для раздачи файла не получится, так? А цель - получить распределенную раздачу.
Wexter, будет популярный файл и его запросит множество клиентов, все упрется в 1 Гбит исходящего канала конкретного сервера, где хранится вышеуказанный популярный файл. Я ведь правильно понимаю?
Евгений, правильно.
Для распределения/увеличения скорости есть несколько вариантов:
1) Ставим сервер с каналом 10/40гбит который будет держать шару и раздавать
2) Ставим на все сервера карты 10гбит
3) Если раздаёте по http(s) то динамически отдавайте клиентам адреса разных серверов.
Изначально под файлами предполагались видео файлы MP4, а если взять за пример HLS или MPEG-DASH (они ведь поделены на сегменты). CEPH "размажет" их по кластеру и получится распределенная раздача, верно? Другой вопрос, как заставить каждый сервер отдавать эти части, что бы получить распределение по внешнему каналу?
Дмитрий Шицков, но в итоге, задействовать в раздаче 1 Гбит внешнего канала каждого сервера не получится? Т.е. задействовать теоритические 50 Гбит не представляется возможным без отдельного сервера 10-20 Гбит ? )
Евгений, грубо говоря прикручиваете серверам адреса srv1...srv50.example.com и клиентам отдаёте разные адреса для скачивания. В идеале к этому ещё прикручивается мониторинг который выравнивает нагрузку на сервера