![服务器池同步和视频服务管理](https://linux22.com/image/797894/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B1%A0%E5%90%8C%E6%AD%A5%E5%92%8C%E8%A7%86%E9%A2%91%E6%9C%8D%E5%8A%A1%E7%AE%A1%E7%90%86.png)
我希望从服务器池中提供视频,并且每个服务器至少有 2 个副本,以防止服务器崩溃和数据丢失。目标是拥有一种云,我可以在其中添加任意数量的服务器。我检查了 openstack、glusterfs、moosefs,但它们的解决方案似乎不是我的需求,因为有些需要代理,其他需要分块数据等。
实际上我有 5 台服务器,每次上传视频时我都会检查磁盘剩余空间,然后将视频分发到至少 2 台服务器上,然后将这些服务器名称保存在数据库中并生成 2 个我随机调用的 URL 以进行平衡。(即http://srv1.mystream.com/1234/myvideo.flv,http://srv2.mystream.com/1234/myvideo.flv)
除了以下两点之外,一切运行正常:
- 删除视频 > 我必须登录到每个服务器然后删除视频,无论如何我都可以编写脚本来执行此操作。
- 移动内容,如果我想将内容从一台服务器移动至另一台服务器,这有点麻烦,因为我必须更改数据库中的服务器 URL 并移动视频。我也可以为此编写一个脚本。
我可以继续这样做并完成缺失的脚本,但我确信现有的系统比我的更好,更强大。
我不想使用像 openstack 这样的服务,因为它需要很多服务器(实际上对于我的配置来说,这意味着我的 5 台服务器和 5 台用于代理的服务器)或者也许我错了。
欢迎任何帮助。
答案1
因为视频是静态的……为什么不直接使用 s3 和 cloudfront 之类的东西作为 cdn 来提供视频呢?这似乎比启动服务器并尝试以这种方式复制数据更有意义。使用服务器只会比使用 s3 和 cloudfront 带来更多风险和工作。
答案2
- 您确实需要分布式存储;不要尝试自己动手。这将解决“删除所有副本”问题,以及您尚未考虑的许多其他问题。开源、Isilon 等 - 取决于您的确切需求和预算。
- 对于这样的服务,您确实需要某种前端代理 - 可以是 Apache 或其他任何代理。此外,无论您的前端是什么,也应该是一个负载平衡集群。
- 我对 OpenStack 不是很熟悉,但我很确定你的理解是错误的。
这些答案基本上适用于任何商业服务。如果你将此作为学习练习,但对学习与设置此类服务相关的专业实践不感兴趣,那么你来错网站了。事实上,这个问题太开放了(正如我在评论中提到的),它一开始就不适合这个网站。