Кто-нибудь знает, как на сайтах вообще хранится огромное количество картинок? Я пытался исследовать это, но, похоже, им понадобятся огромные места для хранения всего этого, если только в этом не было хитрости? Я уверен, что они сжимают их, но это все еще огромный объем данных для одного сайта.
3 ответа
Когда дело доходит до хранения больших объемов данных, контент-провайдеры используют сети хранения данных, также известные как устройства хранения SAN и SAN.
Из Википедии:
Сеть хранения данных (SAN) - это выделенная сеть, которая обеспечивает доступ к консолидированному хранилищу данных на уровне блоков. Сети SAN в основном используются для того, чтобы устройства хранения, такие как дисковые массивы, ленточные библиотеки и оптические музыкальные автоматы, были доступны для серверов, чтобы устройства выглядели как локально подключенные устройства к операционной системе. SAN обычно имеет свою собственную сеть устройств хранения данных, которые, как правило, не доступны через локальную сеть другим устройствам. Стоимость и сложность сетей SAN упали в начале 2000-х годов до уровней, обеспечивающих более широкое внедрение как в корпоративных, так и в малых и средних бизнес-средах.
Так как же выглядит устройство хранения SAN? Некоторые выглядят следующим образом:
,
Каждый из этих слотов (красный квадрат - кнопка извлечения диска) - это жесткий диск. На рисунке изображено относительно небольшое устройство хранения данных SAN, другие могут выглядеть очень по-разному и иметь гораздо больший размер.
Где я работал, мы имели хранения SAN , которые были коробки, в основном размер 3 холодильников бок о бок , заполненных жесткими дисками. Затем мы взяли эти диски по мере необходимости и создали RAID-массивы для резервирования. Поскольку нам требовалось больше места, мы могли заказать больше устройств хранения SAN и подключить их к нашей сети хранения данных. Это позволило нам иметь петабайты избыточного хранилища.
Такие сайты, как Flickr, Picassa, Facebook и т.д., Имеют очень большие SANS, заполняющие массивные центры обработки данных.
Из вашего вопроса я понимаю, что у вас нет опыта работы в области компьютерных наук, поэтому я бы не стал выговаривать с отвратительным звучанием.
Популярные веб-сайты, обрабатывающие чрезвычайно большие объемы данных (или трафик), не являются чем-то новым или уникальным. Обычно нет никакой хитрости с точки зрения массового сжатия (так как большинство фотографий, загруженных в формате JPEG, уже сильно сжаты, и дальнейшее сжатие часто может привести к потере деталей). Что нужно, так это умная архитектура, множество компьютеров, быстрая и надежная сеть и, конечно, несколько терабайт (или даже петабайт) дискового пространства. На самом деле, хранение часто является наименьшей из проблем. Память и вычислительная мощность в наши дни довольно недороги.
Что происходит, так это то, что данные часто распределяются (несколько копий) по нескольким компьютерам для обеспечения избыточности и быстрого извлечения, а поиск / поиск данных происходит параллельно. Хранение часто используемых данных ближе к границе сети или пользователей и их обновление на основе использования - вот некоторые из методов.
Некоторые вызывающие ключевые слова, которые часто используются и могут рассматриваться как волшебство:
- Многоуровневое кеширование
- Распределенное хранилище
- Хранилище данных
- NoSQL
- Уменьшение карты
- Sharding данных (в основном в мире SQL)
- Параллельная обработка
- CDN (сети доставки контента)
Как сделать это хорошо, более эффективно, эффективно - это область исследований, а также исследований в области компьютерных наук и компьютерной архитектуры. Используются различные методы, основанные на характере данных, характере / частоте доступа (больше операций записи по сравнению с большим количеством операций чтения), требуемой степени надежности и т.д.
Отредактировано: это изображение серверной стойки Google (с 1999 года) является эпическим :! Обратите внимание на открытые жесткие диски (3-4 из них) в середине каждого "лотка" сервера (особенно тот, который помечен как "g61").
и полное путешествие запечатлено в этом посте здесь:
Они не могут сжимать фотографии, потому что фотографии почти наверняка уже сжаты с использованием сжатия JPEG или PNG, и невозможно сжать уже сжатые данные. (Это немного упрощает, но если вы не хотите углубляться в теорию информации, просто примите это как данность.)
Там действительно нет ярлыка. Сайт, на котором хранятся огромные объемы данных, имеет огромное количество компьютеров для их хранения.
Допустим, изображение весит 1 МБ. Есть много больше и меньше, но просто для простоты предположим, что средний размер изображения составляет 1 МБ. В наши дни несложно найти недорогие диски емкостью 2 ТБ, что означает, что теоретически каждый диск может содержать около 2 миллионов изображений. (Очевидно, что некоторые накладные расходы будут потеряны, но вы поняли.)
Сервер может иметь конфигурацию RAID с несколькими жесткими дисками. Некоторые данные теряются из-за избыточности, но даже в этом случае на одном компьютере может быть несколько накопителей на несколько ТБ. И ферма серверов может содержать десятки, сотни или даже тысячи серверов. Вот как такие сайты, как Pinterest и Facebook, управляют таким количеством контента.
У них, как правило, большие фермы серверов, перед которыми стоят компьютеры, которые направляют запросы от веб-браузеров, ищут содержимое в соответствующем месте в ферме серверов и возвращают его пользователю. Это действительно большая тема, чтобы попытаться осветить ее здесь, но это основная идея.