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