Recommended storage system for video streaming server [closed]

I am developing a video surveillance system that records and streams back many video streams from many remote IP cameras.

One server would be run on one machine that handles around 500 video streams (250kbps per video stream). One server would be a part of large server farm which is controlled by one simple server (unimportant here).

Now, I am an software engineer, and they have put me in charge of finding the right hardware to run my servers... And I'm clueless at what do I need!

  1. Can I install linux and configure a couple of fast HDDs in RAID and can I have the same performances as some expensive storage solution?

  2. How many CPUs do I need, motherboard, other?

  3. What is the best brand of HDDs for this?

  4. Does water cooling exist for HDDs?

Sorry for asking stupid questions, but I'm into writing software, I use the PC and that's the all the hardware details I need to know at my job... :)


Solution 1:

1.Can I install linux and configure a couple of fast HDDs in RAID and can I have the same performances as some expensive storage solution?

No. I would at least go with a decent hardware raid controller (Adaptec is my bet). The mai nreason is that your Linux install sucks in tuning simply because it lacks optimized hardware. Namely: you can not safely use write back caching because if the power fails the discs may be bonkers. You CAN do so in an Adaptec 5805Z or a 5805 with BBU becasue if the power fails, the on board cache is safe (for some or longer time - the BBU runs 2 days, the Z model writes the data to a flash module). Technically, btw., this i still running Linux (on the controller).

2.How many CPUs do I need, motherboard, other?

Pretty irrelevant. You are not CPU bound unless you do compression. Any CPU should be enough, even an ATOM. Again, unless you do a lot more than just pass the streams through o the disc, you are not likely to have a CPU problem.

3.What is the best brand of HDDs for this?

Western Digital. More specific: Velociraptors, if you need decent performance for a decent price. The only 10k RPM drive short of a lot more expensive SAS drive. Depending on your IO need you could get away with larger and slower drives. This has to be tested and a lot depends on your coding.

Get a server from SuperMicro - 2 rack units high, place for 24 hard disc (2.5 form factor). Plenty of space to expand. I would possibly start with 8 discs in a RAID 10 configuration. Multiple cages can be slaved to each other. Requires a SAS RAID Controller (as the above mentioned Adaptecs).

4.Does water cooling exist for HDDs?

Yes, but it is totally irrelevant for server. This is mostly for osmoen emaking a silent PC with total watercooling and wanting to get rid of the HD heat without a fan.

Solution 2:

I retract my original answer, as I confused 125 Megabit with 125 Gigabit. Shame on me.

But of course, this makes it all a little bit easier :)

So, for your questions:

  1. Sort of. You can get quite good performance which should be more than enough for this case. I would recommend to use as many disks as possible though, and possibly a hardware raid controller. This allows, among others advantages, easy hotswapping of broken disks without any problems from the OS. And BTW, get a case with hotswappable drive bays.

  2. This is mostly dependent on what you want to do. A server grade mainboard with two sockets for 4-core CPUS and appropriate CPUs should do the trick for storage only. I would recommend lot of RAM, though, to have a buffer for when for whatever reason writing to disk stalls for a short time. Think at least 16 or 24GB.

  3. Access time is important in this scenario, so you should opt for server grade HDs with at least 10k RPM or better, maybe even 15k. Capacity is dependent on how long you want to keep the data (at 125 Megabit/s total for your stream you end up with around 50GB/hour).

  4. Why water cooling? I don't know about any systems that offer water cooling for hotswappable drive bays.