всем привет,
у меня возникла необходимость дать указания сотрудникам по созданию серверного Хранилища для музыки и видео, обьём 5-10 Тб.
Для этого куплены несколько десятков серверов с RAID
Покупать готовые решения сторонних разработчиков не планируется.Где можно почерпнуть информацию общего характера, напр. каким образом располагать файлы на серверах, как организовать службу индексации и БД с информацией по размещению файлов?
В реальном времени файлы не будут забираться пользователями, их будет забирать управляющий сервер по внутреннему расписанию.я понимаю, что в общих словах тут сложно дать рекомендации - может быть есть ссылки на понятные описания таких систем почитать?
сенкс
>всем привет,
>у меня возникла необходимость дать указания сотрудникам по созданию серверного Хранилища для
>музыки и видео, обьём 5-10 Тб.
>Для этого куплены несколько десятков серверов с RAIDзачем несколько десятков? :) можно было бы 2-3мя обойтись :)
>Покупать готовые решения сторонних разработчиков не планируется.
>Где можно почерпнуть информацию общего характера, напр. каким образом располагать файлы на серверах, как организовать службу индексации и БД с информацией по размещению
>файлов?ну, эта инфа денюжку стоит. такой инфой как раз сторонние разработчики торгуют :)
>В реальном времени файлы не будут забираться пользователями, их будет забирать управляющий сервер по внутреннему расписанию.
да пофиг как он их будет забирать
>я понимаю, что в общих словах тут сложно дать рекомендации - может
>быть есть ссылки на понятные описания таких систем почитать?не только в общих словах сложно, намного сложнее без некоторой суммы денег :))
>>всем привет,
>>у меня возникла необходимость дать указания сотрудникам по созданию серверного Хранилища для
>>музыки и видео, обьём 5-10 Тб.
>>Для этого куплены несколько десятков серверов с RAID
>
>зачем несколько десятков? :) можно было бы 2-3мя обойтись :)
>
>>Покупать готовые решения сторонних разработчиков не планируется.
>>Где можно почерпнуть информацию общего характера, напр. каким образом располагать файлы на серверах, как организовать службу индексации и БД с информацией по размещению
>>файлов?
>
>ну, эта инфа денюжку стоит. такой инфой как раз сторонние разработчики торгуют
>:)
>
>>В реальном времени файлы не будут забираться пользователями, их будет забирать управляющий сервер по внутреннему расписанию.
>
>да пофиг как он их будет забирать
>
>>я понимаю, что в общих словах тут сложно дать рекомендации - может
>>быть есть ссылки на понятные описания таких систем почитать?
>
>не только в общих словах сложно, намного сложнее без некоторой суммы денег
>:))
я готов оплатить 3-4 часовую консультацию по ICQ или емайлу.вопрос в том, если я дам некоторые исходные данные на словах - сможет ли кто-то грамотно и понятно описать оптимальное решение для меня?
>всем привет,
>у меня возникла необходимость дать указания сотрудникам по созданию серверного Хранилища для
>музыки и видео, обьём 5-10 Тб.
>Для этого куплены несколько десятков серверов с RAID
>Покупать готовые решения сторонних разработчиков не планируется.
>
>Где можно почерпнуть информацию общего характера, напр. каким образом располагать файлы на
>серверах, как организовать службу индексации и БД с информацией по размещению
>файлов?
>В реальном времени файлы не будут забираться пользователями, их будет забирать управляющий
>сервер по внутреннему расписанию.
>
>я понимаю, что в общих словах тут сложно дать рекомендации - может
>быть есть ссылки на понятные описания таких систем почитать?
>
>сенкс
ИМХО такое10Тб музыки (если 5-10Мб файл) = 1-2М файлов.
Самое простое, навскидку.
Делать все через БД.
1-2М записей для БД на нормальном сервере - не проблема (хотя укажите количество запросов/секунду, от этого и будет зависеть)
При занесении/аплоаде трека даете ему некое случайное цифробуквенное именование и заносите соответствие в базу, типа Super.mp3 -> fa32112332
Туда же заносите все инфу для поиска и отображения (альбом, песня, исполнитель, год итд).
файл переименовываете, и раскидываете по серверам, в подкаталоги по первым буквам, пары-тройки уровней будет достаточно (а-ля кеш у squid).
По серверам можно просто раскидывать по первому символу: сервер 1 - a-h, сервер 2 - i-p итд. Заодно можете дублировать на несколько серверов.
Как раскидывать - по вкусу - ftp,nfs, а в идеале люстру(clusterfs) навесить.
Поиск штатными сретствами БД, можно прикрутить полнотекстовый поиск если нужно, для постгри это TSearch2
Касательно оптимизации таблиц в БД не вдаюсь в подробности, думаю сами поймете.
Механизмы формирования нового имени, получения номера/ip сервера(ов) для аплоада, обратное преобразование стоит сделать встроенными процедурами.Отдавать в обратном порядке - переименовывая все взад.
Сама техника переименования позволит избежать совпадения имен файлов + за счет рандома более плавно раскидает по серверам.Далее - для ускорения поиска имеет смысл хранить данные в БД, а индексацию-поиск делать через специализированный движок, тот же Lucene. Тем более, если много запросов.
Вроде ничего страшного тут нет )