Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We are looking to build a realtime playback machine using Linux and a RAID (5 or 10) setup. The current setup looks like:

  • 12GB memory
  • 5 x 7200rpm drive (software raid)
  • centOS 6 (Kernel Linux 2.6.32-71.29.1.el6.x86_64)
  • NVidia Quadro 5000 (driver 280.13)
  • Intel(R) Xeon(R) CPU X5650 @ 2.67GHz

I did run Bonnie++ and iozone to do some benchmark with different raid setup (5 and 10), with different fs type (ext4 and xfs), and different stripe size. Unfortunately it seems that I can't get the speed I want out of it (always <200MB/s).

The other test I made was directly in the playback software (RV - http://www.tweaksoftware.com/products/rv), but could not get it to play faster than 20 frame per second (looking for 24 fps) with more than 3 sequences.

These playback details are a little futile, I just want to know what would be the best setup to get something like ~700MB/s read performance? Is it possible?

I've been reading quite a bit, seems like a hardware controller could be better. Also I guess 7200rpm is not enough. 10 or 15k might be better? What about SSD?

I've another constraint with this project, this machine will store all the sequences for all the projects, so density matter (I bet it will cost way more to get the same storage amount with SSD drives vs. std 10k rpm drive).

Any suggestions or tips will be appreciated to get the best read speed/storage amount.

Thanks!

Edit: Just stumble upon this http://www.fusionio.com/products/iodrive/. Anyone has experience with this card?

share|improve this question
2  
BTW, see the blog entry where the SF guys talked about making their storage decision.. blog.serverfault.com/post/our-storage-decision –  Zoredache Aug 26 '11 at 18:34
    
23 Xeon CPUs? That a typo? –  mrdenny Aug 26 '11 at 18:42
    
Probably HyperThreaded ... just wrote down what I got out cat /proc/cpuinfo. I'm not really a hardware guy, sorry about that. I'll need to develop on this machine eventually. –  Xavier Aug 26 '11 at 18:44
    
@ Zoredache It won't stream out of the network card, only locally. And thanks for that Link (: –  Xavier Aug 26 '11 at 18:45
    
Please be more careful with the units: - MB means Mega Byte - Mb means Mega bits There are 8 bits to a byte. Thus they are NOT the same. Not knowing the conventions shows how little you know about the area. Cheers, Bill –  user121485 May 18 '12 at 4:03
add comment

4 Answers

up vote 2 down vote accepted

If you need to handle video streams then you got to get something way better than what you spec'd. Even if you get enough SATA drives to get the desired bandwidth of 700MB/s (which should be easily doable on todays consumer class hardware) you'll maybe have sever latency problems.

What good is your storage solution if you can crank out even 1GB/s but each IO takes 500ms or so to complete? You're talking video so you want something that can deliver enough IO so that your maximum latency of 40ms (25fps) for retrieving your frames is taken care of.

You might also want to have a look at specialized file systems for video streaming applications. Hitachi Data Systems (HDS) sells one for example also XFS does have an real-time extension that was developed for media applications.

share|improve this answer
    
Which part should I upgrade/change besides the storage? Never heard of HDS, thanks. –  Xavier Aug 26 '11 at 19:20
    
Give more detailed specs - what stream and what number of streams you expect. –  pfo Aug 26 '11 at 19:25
    
I think the seller for the streaming file system might be Hitachi Global Storage Solutions. They have a specialized product that can handle 14 HD streams from a single 7200 RPM disk by using a tuned IO scheduler etc. –  pfo Aug 26 '11 at 19:31
    
I think the minimum would be 4 streams (2 x stereo sequences). The usual image resolution is 2K (~6MB per image) –  Xavier Aug 26 '11 at 19:38
    
Can you figure out your application's IO block size? –  pfo Aug 26 '11 at 19:54
show 1 more comment

If you need to be able to support several consistent streams you'll either need a bunch of really fast drives (15k) or a couple of fusion IO cards or other Enterprise class SSDs. The faster the drives the better because even those each video file is sequential on the disk, as soon as you start streaming 2 or more of them that's now a random workload which is VERY hard for the hard drives to handle. Especially once you have 3 or more.

share|improve this answer
    
+1. As interim there is always the Velociraptor enterprise series which now offers 1tb drives with 10k. Well said on the random part - multiple streams of anything = random load. Point. And then it gets slow. –  TomTom May 18 '12 at 8:09
add comment

Hardware raid will see more of a read benefit from raid1 than raid5, but IIRC software raid won't see a read benefit. Someone correct me if my knowledge of mdadm is out of date.

Look for big storage vendors like EMC, IBM or even Dell. They'll have articles on sizing storage solutions on their websites, and sometimes even simple web-apps for it. Obviously they want to sell you things, but you can use their sizing pages to determine how many drives at what speed they suggest to get the throughput you want.

share|improve this answer
    
I agree about raid1, but I have to stick with RAID5 (or 10) for data security reasons. –  Xavier Aug 26 '11 at 19:07
    
How is the RAID level relevent to the security of the data? –  joeqwerty Aug 26 '11 at 19:11
    
miracleas.com/BAARF/RAID5_versus_RAID10.txt (if one of the drive fails) –  Xavier Aug 26 '11 at 19:12
    
What you mean is fault tolerance, not security. RAID1 and RAID5 offer the same level of fault tolerance in that each one can survive the loss of a single array member. –  joeqwerty Aug 26 '11 at 19:15
    
On what earth does RAID1 give more read performance than RAID5?! –  pfo Aug 26 '11 at 19:19
show 8 more comments

The best overall read performance for same count and type of hard drives will be without any arrays, but your software should be aware of this configuration.

single 7200 rpm HDD gives 80-120MB/s with sequential IO.

In your case to achieve 700 MB/s you will need 700/80 = (8.75) = 9 HDDs To add redundancy you will need 18 HDDs in RAID10 configuration. it will cost you about $4000 with disk shelf and controller.

With SSD you can get 200-300MB/s with single SATA drive. to get 700 you will need RAID10 of 6 SATA SSDs. Price will be about $3000 (but you will have less disk space than with HDDs)

FusionIO card is capable of 700MB/s, but only when you have multiple IO threads. Single thread will get 140-150MB/s according to benchmarks.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.