Пул серверов синхронизации управления для обслуживания видео
Я хотел бы обслуживать видео с пула серверов и иметь минимум 2 копии каждого, чтобы предотвратить сбой сервера и потерю данных. Цель состоит в том, чтобы создать своего рода облако, в которое я могу добавить столько серверов, сколько захочу. Я проверил openstack, glusterfs, moosefs, но их решения, похоже, не являются моими потребностями, так как некоторым нужны прокси, другим фрагментам данных и т. Д.
На самом деле у меня есть 5 серверов, на которых я проверяю при каждой загрузке видео место, оставшееся на диске, а затем распределяю видео по крайней мере на 2 серверах, затем сохраняю имена этих серверов в БД и генерирую 2 URL-адреса, которые я случайно называю для балансировки. (т.е. http://srv1.mystream.com/1234/myvideo.flv, http://srv2.mystream.com/1234/myvideo.flv)
Это работает нормально, за исключением 2 вещей:
- удалить видео> Я должен войти на каждый сервер, а затем удалить видео, я могу сделать сценарий, чтобы сделать это в любом случае
- переместить контент, если я хочу переместить контент с одного сервера на другой, это немного затруднителен, так как я должен изменить URL сервера в db и переместить видео. Я могу сделать сценарий для этого также.
Я могу продолжать в том же духе и завершать пропущенные сценарии, но я уверен, что существующие системы лучше моей, более надежные, чем когда-либо.
Я не хочу использовать такие сервисы, как openstack, так как для этого нужно много серверов (на самом деле для моей конфигурации это будет означать мои 5 серверов и еще 5 серверов для прокси-серверов) или, возможно, я ошибаюсь.
Любая помощь приветствуется.
2 ответа
Так как видео статично.. почему бы просто не использовать что-то вроде s3 и cloudfront в качестве cdn для показа видео? Кажется, имеет больше смысла, чем раскручивать серверы и пытаться реплицировать данные таким образом. Использование серверов просто создает больший риск и работает, чем использование s3 с облачным фронтом.
- Вы хотите распределенное хранилище; не пытайтесь свернуть это самостоятельно. Это решит проблему "удалить все копии", а также множество других проблем, которые вы еще не рассматривали. Открытый исходный код, Isilon, кое-что - зависит от ваших точных потребностей и бюджета.
- Вам нужен какой-то внешний прокси-сервер для такой службы - это может быть только Apache или что-то еще. Кроме того, каким бы ни был ваш интерфейс, он также должен быть кластером с балансировкой нагрузки.
- Я не очень знаком с OpenStack, но я уверен, что вы читаете его неправильно.
Эти ответы подходят практически для любого коммерческого сервиса. Если вы делаете это как учебное упражнение, но не заинтересованы в изучении профессиональных практик, связанных с настройкой чего-то подобного, вы попали не на тот сайт. На самом деле, этот вопрос настолько открытый (как я упоминаю в моем комментарии), что он не очень подходит для этого сайта.