Я ищу решение для проекта, над которым я работаю.
Мы разрабатываем веб-систему, в которую люди могут загружать свои файлы, а другие - скачивать. (аналогично модели rapidshare.com)
Проблема в том, что некоторые файлы могут потребовать намного больше, чем другие файлы. Сценарий выглядит примерно так: я загрузил видео о своем дне рождения и поделился им со всеми своими друзьями, я загрузил его на myproject.com, и он хранился в одном из кластеров, который имеет соединение 100 Мбит.
Проблема в том, что как только все мои друзья хотят загрузить файл, они не могут его загрузить, поскольку узкое место здесь составляет 100 Мбит, что составляет 15 МБ в секунду, но у меня 1000 друзей, и они могут загружать только 15 КБ в секунду. Я не принимаю во внимание, что жесткий диск обслуживает те же файлы.
Моя сетевая инфраструктура выглядит следующим образом: 1 Гбит сервер (клиент) и подключен к 4 узлам серверов хранения, которые имеют соединение 100 Мбит. Сервер 1 Гбит может обрабатывать трафик 1000 пользователей, если один из узлов хранения может передавать более 15 МБ в секунду на мой 1 Гбит (клиентский) сервер, а посетитель будет передавать поток непосредственно с клиентского сервера, а не с узлов хранения. Я могу сделать это, реплицируя файл на 2 узла. Но я не хочу копировать все файлы, загруженные в мою сеть, поскольку это стоит намного дороже.
Поэтому мне нужна облачная система, которая будет автоматически помещать файлы в реплицированные узлы, когда требования к этим файлам высоки, а при низком спросе они удаляются с других узлов, и они остаются только на 1 узле.
Я посмотрел на gluster и спросил в их irc-канале, что gluster не может делать такие вещи. Он может только реплицировать все файлы или ни один из файлов. Но мне нужно, чтобы программное обеспечение кластера делало это автоматически.
Какие-нибудь решения? (вместо того, чтобы рекомендовать мне Amazon s3)
S
Я бы сначала исправил дизайн, чем попытался добавить ненужную сложность к существующему дизайну.
В частности, почему один сервер имеет канал 1 Гбит / с, а другие серверы только 100 Мбит / с? Поместите их все на один и тот же неблокирующий коммутатор перед FW / LB / прокси - это решит вашу проблему репликации за один раз.
О, и я хотел бы знать, как получить 15 Мбит / с по каналу 100 Мбит / с, вы работаете в 7-битном мире? :)
Похоже, вы описываете настройку обратного прокси. Взгляните на Статья в Википедии и, возможно, nginx сервер - вы также можете получить аналогичный результат с Кальмар или apache-httpd.