2012-03-25 3 views
6

Я хотел бы знать, какое решение лучше всего подходит для хранения большого количества изображений на нескольких серверах, таких как google, facebook.Хранить большое количество изображений на нескольких серверах

Кажется, что хранение в файловой системе лучше, чем внутри базы данных, но как насчет использования базы данных noSQL, например, cassandra.

У Google/Facebook есть то же изображение на нескольких серверах для балансировки нагрузки. Как это работает? Какое лучшее решение?

Thx много

+0

Cassandra будет работать. Вы также можете посмотреть на распределенные решения для хранения файлов, такие как MogileFS, HDFS и т. Д. – DougW

ответ

4

Нет ничего плохого в том, что вы принимаете. Как уже упоминалось, существуют предостережения, однако возможности существуют, и многие люди и компании успешно хранят файлы в Apache Cassandra.

  • zjffdu/cassandra-fs - это первое решение, которое я бы изучил. Теперь это было разработано 2 года назад, поэтому я был бы немного осторожен, работая в первый раз, из коробки. Apache Cassandra теперь в версии 1.0.x, с 1.1.x в пути. 2 года назад это была версия 0.6.x, может быть? Много изменилось & улучшено за 24 месяца.
  • semantico/cassandra-fs вилка ... последний раз коснулся 7 месяцев назад
  • favoritas37/cassandra-fs другая вилка ... последний прикоснулся 3 месяца назад и указывает на совместимость с 1.0.5 филиала Кассандры

принципала за это взять файл, разбить его на набор кусков и сохранить эти куски в виде столбцов в строке. Когда вы извлекаете, вытащите каждый столбец, соберите файл и вуаля.

Cassandra FAQ: large file and blog storage

... файлы вокруг 64Mb и меньше можно легко хранить в базе данных без разделения их на более мелкие куски ...

Lucene indexes in Cassandra

. файлы ..its разбиты на блоки (размеры которых ограничены), где каждый блок (см. FileBlock) хранится как значение столбца в соответствующей строке. ..

Вы получите больше положительных отзывов о списке рассылки Cassandra и на канале IRC.

И, наконец, это с 2009 года, и написано людьми в Facebook, что должно как-то помочь ответить на все основные вопросы, которые у вас есть: Cassandra - A Decentralized Structured Storage System.

+0

Thx для помощи – Naster

-1

Если вы хотите хранить в «облаке» среде вы лучше всего идете с облачным решением, которое имеет ресурсы, такие как Google App Engine или Amazon Web Services. Вы не сможете настроить свой собственный, если это вопрос. Это будет стоить миллионы долларов и ресурсов для их управления. И да, Google и Facebook используют тысячи серверов для распространения своих данных в «облаках».

+0

Я не хочу хранить в CLOUD, я хочу начать с 1 сервера, а затем 2 ...... Это не будет стоить миллионов. Я также хочу балансировку нагрузки. – Naster

+0

Вы сказали, что хотите сохранить одно и то же изображение на нескольких серверах? Это хранение данных в «облаке». Технически это не должно быть на сторонней архитектуре. Вы можете свернуть свое собственное облако, но не стоит недооценивать затраты даже на 2 сервера. Как вы сможете гарантировать согласованность этих двух серверов? Это было бы крайне сложно катить. Вы можете попробовать или купить программное обеспечение, специально разработанное для него, которое не дешево. Затем, когда вы начинаете наращивать с 2 серверов, где все становится очень весело. Вы ищете для себя или приобретаете программное обеспечение? – DavidB

+0

Нет решения с открытым исходным кодом? Кассандра кажется своего рода ... – Naster

1

Примечание. Я знаю, что это старый вопрос, я просто хочу противостоять некоторым неправильным представлениям о стоимости, поскольку я делаю это прямо сейчас в качестве теста.

В отличие от того, что думает DavidB, это не будет стоить миллионов - даже если вы должны были запустить выделенное хостинговое оборудование, вам будет легко находиться пара в несколько тысяч/месяц (BTDT, один из моих клиентов работает с 8 кластерами узлов для около 800 долл. США в месяц). Тем не менее, это головная боль, которую вы хотите избежать, и Cassandra на EC2 гораздо легче справиться.

Вы можете легко запустить значительное облако для производства на EC2 менее чем за 1000 долл. США в месяц, и вы можете сделать R & D облака менее чем за 100 долл. США в месяц (я трачу около 52 долл. США в прошлом месяце на 10 машинных тестовых кластеров). Я настоятельно рекомендую использовать TurnKey Linux для управления &, предоставляя вашу ферму R & D, так как их инструменты позволят вам перенести экземпляры со своего рабочего стола практически на любую виртуальную платформу хостинга через несколько минут (и наоборот). Кроме того, у них действительно хорошая интеграция с EC2.

Для действительно серьезных уровней трафика, Pintrest раз заявили, что они тратят $ 15 до $ 50/час в зависимости от нагрузки на сервер, автоматическое масштабирование для удовлетворения потребностей трафика, см http://www.theregister.co.uk/2012/04/30/inside_pinterest_virtual_data_center/ подробности

Реальная стоимость в установке и управлении вашего распределенного экземпляра Cassandra. К счастью, NetFlix только что выпустила тонну инструментов управления только для этого. Вы можете найти их здесь: https://github.com/netflix - есть также интересные видео о том, как NetFlix использует AWS, в частности, перемещать вещи от Cassandra до S3 - см. Их блог здесь http://techblog.netflix.com/2012/12/videos-of-netflix-talks-at-aws-reinvent.html

Смежные вопросы