Как такие сайты, как Pinterest, могут хранить все эти картинки?

4

Кто-нибудь знает, как на сайтах вообще хранится огромное количество картинок? Я пытался исследовать это, но, похоже, им понадобятся огромные места для хранения, чтобы хранить все это, если только в этом не было хитрости? Я уверен, что они сжимают их, но это все еще огромное количество данных для одного сайта.

Alan B
источник
howstuffworks.com/pinterest.htm ты не видел это?
BlueBerry - Vignesh4303
4
Да, они просто хранят их. Хранение дешево по сравнению с процессором и памятью.
Paul
4
Очевидно, что такой сайт, как Pinterest, может дедуплицировать: сохраняйте каждое изображение только один раз, независимо от того, на каком количестве страниц оно отображается.
Michael Borgwardt
Я думаю, более 1 жесткого диска! :)
Dave

Ответы:

5

Когда дело доходит до хранения большой объемы данных, контент-провайдеры используют сети хранения данных, также известные как SAN S и SAN оборудование для хранения.

Из Википедии:

Сеть хранения данных (SAN) - это выделенная сеть, которая обеспечивает доступ к консолидированному хранилищу данных на уровне блоков. Сети SAN в основном используются для того, чтобы устройства хранения, такие как дисковые массивы, ленточные библиотеки и оптические музыкальные автоматы, были доступны для серверов, чтобы устройства выглядели как локально подключенные устройства к операционной системе. SAN обычно имеет свою собственную сеть устройств хранения данных, которые, как правило, не доступны через локальную сеть другим устройствам. Стоимость и сложность сетей SAN упали в начале 2000-х годов до уровней, обеспечивающих более широкое внедрение как в корпоративных, так и в малых и средних бизнес-средах.

Так как же выглядит устройство хранения SAN? Некоторые выглядят следующим образом:

this,

Каждый из этих слотов (красный квадрат - кнопка извлечения диска) - это жесткий диск. На рисунке изображено относительно небольшое устройство хранения данных SAN, другие могут выглядеть по-разному и могут намного больше по размеру.

Там, где я работал, у нас было хранилище SAN, которое было коробками, в основном размером 3 холодильника рядом заполненный с жесткими дисками. Затем мы взяли эти диски по мере необходимости и создали RAID-массивы для резервирования. Поскольку нам требовалось больше места, мы могли заказать больше устройств хранения SAN и подключить их к нашей сети хранения данных. Это позволило нам иметь петабайты избыточного хранилища.

Такие сайты, как Flickr, Picassa, Facebook и т. Д., Имеют очень большой SANS заполняет массивные центры обработки данных.

Keltari
источник
2

Из вашего вопроса я понимаю, что у вас нет опыта работы в области компьютерных наук, поэтому я бы не стал выговаривать с отвратительным звучанием.

Популярные веб-сайты, обрабатывающие чрезвычайно большие объемы данных (или трафик), не являются чем-то новым или уникальным. Обычно нет никакой хитрости с точки зрения массового сжатия (поскольку большинство изображений, загруженных в формате JPEG, уже сильно сжаты, и дальнейшее сжатие часто может привести к потере деталей). То, что входит в это, является некоторой умной архитектурой, большим и большим количеством компьютеров, fast & amp; надежная сеть и, конечно, несколько терабайт (или даже петабайт) дискового пространства. На самом деле, хранение часто является наименьшей из проблем. Память и вычислительная мощность в наши дни довольно недороги.

Что происходит, так это то, что данные часто распределяются (несколько копий) по нескольким компьютерам для обеспечения избыточности и более быстрого поиска, а поиск / поиск данных происходит параллельно. Хранение часто используемых данных ближе к границе сети или пользователей и их обновление на основе использования - вот некоторые из методов.

Некоторые вызывающие ключевые слова, которые часто используются и могут рассматриваться как волшебство:

  • Многоуровневое кеширование
  • Распределенное хранилище
  • Хранилище данных
  • NoSQL
  • Уменьшение карты
  • Sharding данных (в основном в мире SQL)
  • Параллельная обработка
  • CDN (сети доставки контента)

Как сделать это хорошо, более эффективно, эффективно - это область исследований, а также исследований в области компьютерных наук и компьютерной архитектуры. Используются различные методы, основанные на характере данных, характере / частоте доступа (больше операций записи по сравнению с большим количеством операций чтения), требуемой степени надежности и т. Д.

Отредактировано: Эта картина от Google серверная стойка (с 1999 года) Эпично! Обратите внимание на открытые жесткие диски (3-4 из них) в середине каждого «лотка» сервера (особенно тот, который помечен «g61»).

enter image description here

и полное путешествие запечатлено в этом посте Вот :

jay
источник
Недостаточно повторений, чтобы оставить комментарий к хорошему ответу @ Keltari, поэтому прокомментируйте здесь. SAN - это популярный, более распространенный и немного более традиционный подход, который предпочитают многие крупные предприятия и их ИТ-специалисты. Однако существует альтернативный подход, который популяризировали такие компании, как Google и Yahoo. Грубо говоря, этот подход основан на принципе наличия огромного кластера серверов (pizzabox), каждый из которых имеет большое присоединенное хранилище, где каждый сервер обеспечивает не только пространство для хранения, но и вычислительную мощность. Это распределенное вычисление используется для ...
jay
... разбить сложный поиск, операции поиска на более мелкие операции, которые распределены по кластеру и выполняются параллельно. Результаты поиска затем объединяются, чтобы сформировать ответ на более сложный вопрос. Это типично для поисковых сетей и операций с большим объемом чтения. Обратите внимание, что в наши дни Google, Yahoo и подобные пользователи тоже используют SAN. Эти организации слишком сложны и быстро растут, чтобы придерживаться единой технологии хранения или вычислений. В конце концов, все сводится к использованию правильного инструмента для правильной работы.
jay
1

Они не могут сжимать фотографии, потому что фотографии почти наверняка уже сжаты с использованием сжатия JPEG или PNG, и невозможно сжать уже сжатые данные. (Это немного упрощает, но если вы не хотите получить глубоко в теории информации, просто принять это как данность.)

Там действительно нет ярлыка. Сайт, на котором хранятся огромные объемы данных, имеет огромное количество компьютеров для их хранения.

Допустим, изображение весит 1 МБ. Есть много больше и меньше, но просто для простоты предположим, что средний размер изображения составляет 1 МБ. В наши дни несложно найти недорогие диски емкостью 2 ТБ, что означает, что каждый диск теоретически может содержать около 2 миллионов изображений. (Очевидно, что некоторые накладные расходы будут потеряны, но вы поняли.)

Сервер может иметь конфигурацию RAID с несколькими жесткими дисками. Некоторые данные теряются из-за избыточности, но даже в этом случае на одном компьютере может быть несколько накопителей на несколько ТБ. И ферма серверов может содержать десятки, сотни или даже тысячи серверов. Вот как такие сайты, как Pinterest и Facebook, управляют таким количеством контента.

У них, как правило, большие фермы серверов, перед которыми стоят компьютеры, которые направляют запросы от веб-браузеров, ищут содержимое в соответствующем месте в ферме серверов и возвращают его пользователю. Это действительно большая тема, чтобы попытаться осветить ее здесь, но это основная идея.

Mason Wheeler
источник
1
количество компьютеров имеет ничего такого делать с емкостью или возможностью хранения.
Keltari
1
@Keltari уверен, что так и есть, вы можете подключить только столько дисков к контроллеру и столько контроллеров к серверу. Существует ограниченное количество пространства, которое может обрабатывать один сервер, поэтому его необходимо распределить по нескольким серверам.
Richie Frame
@Richie: Это одна из причин, по которой вы используете SAN - вам больше не нужен контроллер для «такого количества дисков», вам нужна только интерфейсная карта для связи с SAN, и серверу не нужно заботиться о том, сколько дисков содержит SAN. Конечно, в ОС все еще может быть максимальный размер раздела, но обычно он очень велик.
sleske
@RichieFrame, вы правы, что сервер может физически хранить столько дисков. Тем не менее, это причина для SAN и NAS - хранилище абстрагировано, что позволяет ему быть практически безграничным. Серверы могут содержать до 0 дисков и могут быть просто подключены к SAN или NAS.
Keltari
Справедливости ради, SAN на самом деле это просто набор компьютеров, каждый из Можно держать огромное количество дисков. Они созданы специально для этой цели. Но даже до того, как SAN стали популярными, некоторые серверы могли вместить более 100 дисков.
MSalters