Если мы хотим сделать что-то вроде YouTube, то каков должен быть подход к хранению видео? Есть идеи о том, что делает YouTube?
Google не просто хранит много данных на множестве серверов, они написали программное обеспечение, которое автоматически распределяет нагрузку и объем хранилища, при этом прозрачно восстанавливаясь после аппаратных сбоев (например, BigTable и Map / Reduce).
Альтернатива: а. Вы используете чужую инфраструктуру (Amazon S3, Akami) б. Вы пользуетесь продуктами дорогих производителей систем хранения (NetApp) c. Вы пишете свою собственную систему, похожую на систему Google
Facebook недавно перешел с комбинации A и B на C для хранения фотографий, поскольку оно выросло до неуправляемых размеров.
Сети распространения контента (большие кластеры серверов в географически разных местах) являются ключом к любому веб-приложению с интенсивным использованием данных и / или трафика.
Это зависит от того, настаиваете ли вы на том, чтобы хранить и распространять эти файлы самостоятельно.
Если вам не нужно управлять этим самостоятельно, существует множество сетей распространения контента (akamai и т. Д.), Которые будут хранить и повторно отправлять ваши файлы для вас, они обычно географически разбросаны и обладают отличной устойчивостью. Тогда вашему сайту просто нужно будет указать на эти файлы, чтобы ваши пользователи могли получить к ним доступ, и ваша работа будет по существу завершена.
Если вам необходимо самостоятельно хранить и распространять эти файлы, то, по крайней мере, вам понадобится большой блок быстрого и отказоустойчивого хранилища (например, большой SAN / NAS от EMC / HP / NetApp и т. Д.), Некоторые веб-серверы, настроенные на поставлять видео (моя личная специальность :)) и некоторые большие кэширующие балансировщики нагрузки, такие как Zeus ZXTM. Конечно, на этом этапе у вас есть единственная точка отказа (центр обработки данных), поэтому, если время безотказной работы важно, вы должны рассмотреть один или несколько дополнительных центров обработки данных и распределить ваши данные и нагрузить их.
Удачи.
Да - купите много жестких дисков и серверов: P
Я бы, вероятно, сохранил их на множестве серверов с чем-то вроде mogileFS. Таким образом, каждый файл хранится более чем на одном сервере, поэтому отказ сервера не приведет к потере ваших данных.
Заполните их маломощными накопителями на 2 ТБ.
Вам нужно быть осторожным при попытке хранить большие файлы и не использовать perlbal
как в вашем магазине, но он будет работать. Вы также можете разбить большие файлы на несколько больших кусков, как любит делать mogilefs, но просто хранить большие файлы проще для вашего клиентского кода.
Я бегу за "+1 смешно", так что:
Где на YouTube так много видео?
Если не в облаке, то на дисках.