如何构建媒体流服务器

xan*_*oss 6 media streaming distributed

我们想构建一个媒体流服务器,并想知道选择硬件和软件时的策略.

我们的一些要求:

  • 我们自己主持一切
  • 带宽不是问题(我们得到了很好的支持)
  • 商品硬件(没有昂贵的NAS,SAN)
  • 支持大文件
  • 不希望使用Flash Media Server

这里的情况与你们之前可能遇到的情况略有不同.专业系统管理员和开发人员的成本比在存储解决方案领域与硬件或软件供应商签订合同要便宜得多.我们扩展的方式是购买廉价的商品硬件,并且(可能)使用各种开源软件自行构建基础设施.

我们正在研究各种用于存储的分布式文件系统,例如MogileFS,GlusterFS,HDFS,看起来HDFS可能是领跑者.

如果你之前已经建立了类似的东西,请分享你的经验.

谢谢!

Stu*_*son 4

贮存

  • 您真正希望存储多少数据?除非您正在查看数十兆字节或更多,否则我会考虑更简单的东西。我自己为我们的流媒体服务器构建了一个非常冗余的 9 TB NAS。我研究了 GlusterFS 等,但选择了更简单的安排——分布式文件系统只有在我们需要超过 20TB 左右时才有意义。
  • 您知道您的使用模式会是什么样吗?例如:一小组文件上的大多数活动比让活动公平分布更容易处理。

联网

  • 你说带宽不是问题。但仍然...在流式传输视频时,1 Gpbs 并不算多。如果您可以访问 10GoE 网络(卡、CAT6、交换机、Internet feed),那就太好了。我已经做了很多LACP工作,以使我们的基础设施超越 1GoE,事后看来,我们希望我们从一开始就支付了 10GoE 的预付费用。
  • 目标是基于 CDR 的定价。如果您有流量,您的成本将是每 GB 几美分
  • 考虑将您的服务器托管在与主要Internet 交换中心相同的建筑物中。这可能会让您免费将流量转移到 ISP。(嗯,不包括一次性成本。)

硬件

  • 我对 FMS 没有丰富的经验,但对我们自己的专有流媒体服务器和用于直播流媒体的 Wowza 有经验。每个 CPU 具有 6 个核心的现代双路服务器可以使 10GoE NIC 饱和,具体取决于服务器软件。
  • 使用高 NIC。它们并没有那么贵。

服务器软件

  • 我强烈建议使用基于 Linux 的系统 *nix accells 来处理网络相关的事情。
  • 如果流都是按需的,并且您确实希望最大限度地提高效率,那么请考虑使用 mod_264_streaming 运行 lighttpd 并执行“HTTP 伪流”。
  • 还有其他奇特的选项可能是一个选项,例如Erlyvideo,一个基于 Erlang 的流媒体服务器。它看起来是一个很有前途的平台,可以用更少的硬件获得更多的流。
  • 进行适当的负载测试以验证您的服务器和操作系统配置。所有这些东西都有很多默认值,可能会人为地限制你的输出。

我们扩展的方式是购买廉价的商品硬件,并(可能)使用各种开源软件自行构建基础设施。

我们也是。一个小团队可以利用商用硬件和开源软件做出如此惊人的事情!