Вопрос по архитектуре фотосайтов

G
На сайте с 12.04.2011
Offline
4
#21

hostmaster, поддерживаю.

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

Как уже говорилось ранее, сервера раздачи могут расшарить свои диски по NFS для сервера приёма/распределения файлов, который при заливке так же будет вести записи в базе (какой файл на каком сервере-хранилище находится). Это в простейшем, наколенном варианте.

Далее могут быть несколько серверов-диспетчеров, реплицируемые БД, множество серверов-хранилищ с перекрёстным резервированием данных и т.п. Как-то так... :)

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#22

Только не NFS!

Достаточно хорошо показывает себя распихивание контента через WEBDAV, в nginx встроена поддержка.

Из примитивного - через upload_module того же nginx заливать сразу на сервер-сторидж.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
K
На сайте с 24.03.2004
Offline
223
#23
Boris A Dolgov:
Только не NFS!

а чем NFS плохой?

kostich добавил 01.06.2011 в 06:42

galaober:

Как уже говорилось ранее, сервера раздачи могут расшарить свои диски по NFS для сервера приёма/распределения файлов, который при заливке так же будет вести записи в базе (какой файл на каком сервере-хранилище находится). Это в простейшем, наколенном варианте.

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

galaober:

Далее могут быть несколько серверов-диспетчеров, реплицируемые БД, множество серверов-хранилищ с перекрёстным резервированием данных и т.п. Как-то так... :)

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

kostich добавил 01.06.2011 в 06:52

hostmaster:

- у "больших" сайтов url для статики обычно короткий, чтобы съэкономить еще несколько байт текста

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

ps. про хэш повторил дважды... мож дойдет :)

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
Andreyka
На сайте с 19.02.2005
Offline
822
#24
kostich:
а чем NFS плохой?

Он там просто лишний

Не стоит плодить сущности без необходимости
K
На сайте с 24.03.2004
Offline
223
#25
Andreyka:
Он там просто лишний

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

kostich добавил 01.06.2011 в 09:17

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

zexis
На сайте с 09.08.2005
Offline
388
#26
kostich:

в самом простейшем варианте URL файла кодируется хэшем из которого системе можно понять где он хранится без какого либо запроса к СУБД.

Не уверен, что правильно понял вашу идею.

То есть вы предлагаете, что бы ссылки на картинки были в таком виде?

http://site.ru/918a4c8b3a84d763

где 918a4c8b3a84d763 – md5 от реального пути к папке сервера.

Что это даст?

Как сервер по хэшу md5 восстановит реальный путь к файлу?

На моем фото-сайте ссылки на картинки имеют такой вид.

http://site.ru/834/174/834174948.jpg

834174948 – уникальный номер картинки, он же является первичным ключом в базе даных, в которой хранится информация о картинке(комментарий, идентификатор владельца)

/834/174/ - путь к нужной папке сервера, в которой лежит файл картинки.

Andreyka
На сайте с 19.02.2005
Offline
822
#27

kostich, ключевые слова - горизонтальное масштабирование. nfs там не нужен в принципе.

zexis, например в nginx: securelink :)

K
На сайте с 24.03.2004
Offline
223
#28
zexis:
Не уверен, что правильно понял вашу идею.

То есть вы предлагаете, что бы ссылки на картинки были в таком виде?
http://site.ru/918a4c8b3a84d763
где 918a4c8b3a84d763 – md5 от реального пути к папке сервера.

Что это даст?
Как сервер по хэшу md5 восстановит реальный путь к файлу?

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

zexis:
На моем фото-сайте ссылки на картинки имеют такой вид.
/834/174/ - путь к нужной папке сервера, в которой лежит файл картинки.

а если серверов 100?

kostich добавил 01.06.2011 в 13:26

Andreyka:
kostich, ключевые слова - горизонтальное масштабирование. nfs там не нужен в принципе.

Андрей, и что у меня там нелинейно? Ты видел хоть сервер где штук 500 разделов подмаунчено? Вот перемаунтишь 100 серверов каждый с каждым по NFS, следовательно NFS сервер будет на каждом... можешь 500 :) до каких размеров линию проводим? Вы там на сколько гигабит собрались раздавать?

rtyug
На сайте с 13.05.2009
Offline
263
#29

а кто использовал MogileFS? (это специально сделали для картинок, вродебы можно и видео)

с бэкапами проблем нету и т.д.??

не требует райд и можно обычные сата диски

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
Andreyka
На сайте с 19.02.2005
Offline
822
#30

Оно там тоже лишнее :)

Andreyka добавил 01.06.2011 в 16:50

kostich:

Андрей, и что у меня там нелинейно? Ты видел хоть сервер где штук 500 разделов подмаунчено? Вот перемаунтишь 100 серверов каждый с каждым по NFS, следовательно NFS сервер будет на каждом... можешь 500 :) до каких размеров линию проводим? Вы там на сколько гигабит собрались раздавать?

Для фотохостинга NFS не нужен в принципе. Каждый сервер может отдавать свои файлы сам 🤣

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий