We'd like to build a media streaming server and would like to know the strategies when it comes to choose the hardware and software.
Some of our requirements:
- We host everything ourselves
- Bandwidth is not an issue (we got good backings)
- Commodity hardware (no expensive NAS, SANs)
- Support large files
- Prefer not to use Flash Media Server
The situation here is a little bit different than what some of you guys might have experienced before. The cost of a professional system-admin and developers are way much cheaper than signing a contract with hardware or software vendors in storage solutions area. The way we scale is by buying cheap commodity hardware and (probably) build the infrastructure ourselves using varieties of open source software.
We're looking at a varieties of distributed file systems for storage such as MogileFS, GlusterFS, HDFS and it looks like HDFS might be the front runner.
Please share your experience if you've built something similar before.
Thanks!
How do I set up a DLNA server?
1 Enable Media Streaming Select Ethernet (if your computer has a wired connection), or Wi-Fi (if your computer uses a wireless connection) on the left. Select Network and Sharing Center on the right. Select Media streaming options on the left. Select Turn on media streaming.
Storage:
- How much data are you really expecting to store? Unless you are looking at tens or terabytes or more I would consider something simpler. I myself have built a very redundant 9 TB NAS for our streaming servers. I looked at GlusterFS, et al but opted for a simpler arrangement--a distributed file system only made sense of we needed more than 20TB or so.
- Do you know what your usage patters will be like? E.g.: Most activity on a small set of files is a lot easier to deal with than having activity distributed fairly equality.
Networking:
- You say bandwidth is not an issue. But still...1 Gpbs is not that much when streaming video. If you have access to 10GoE networking (cards, CAT6, switches, Internet feed) then great. I've done a lot of LACP stuff to get our infrastructure beyond 1GoE and in hind sight wish we had just paid the up front price for 10GoE from the start.
- Aim for CDR-based pricing. If you have the traffic, your costs will be pennies per GB
- Consider hosting your servers in the same building as a major Internet Exchange. This potentially will let you off load traffic to ISPs for free. (Well, excluding the one-off costs.)
Hardware:
- I've no heavy experience with FMS, but do have experience with our own proprietary streaming servers and Wowza for live streaming. A modern dual socket server with 6 cores per CPU can saturate a 10GoE NIC, depending on the server software.
- Use high NICs. They are not that expensive.
Server software:
- I would highly recommend going with a Linux-based systemas *nix accells at networking related stuff.
- If the streams will all be on demand, and you really want to maximize efficiency, then consider running lighttpd with mod_264_streaming and do "HTTP pseudo streaming".
- There are other exotic options that may be an option, like Erlyvideo, a Erlang-based streaming server. It looks like a promising platform to get more streams out of less hardware.
- Do proper load testing to validate your server and OS configuration. There lots of defaults in the all of this stuff that could artificially limit your output.
The way we scale is by buying cheap
commodity hardware and (probably)
build the infrastructure ourselves
using varieties of open source
software.
Us too. It is amazing what a small team can do with commodity hardware and open source software!