They seems like to talk only about performance, which I believe it's not the case compared to other hybrid RAID types.

See here: http://www.mongodb.org/display/DOCS/Amazon+EC2#AmazonEC2-EBSvs.LocalDrives


What are you asking -- "why does MongoDB recommend EBS over local disks" or "why does MongoDB recommend RAID-10 instead of a single EBS?" I think both questions are fairly well answered in the link you gave, but to recap:

  • EBS vs local disk: This is a no-brainer if you want your MongoDB data to survive an instance crash or reboot. Local disk goes away when the instance does.
  • RAID-10 of EBS: Put simply, EBS performance is sh...ockingly poor (and, worse, variable). A RAID-10 at least spreads the load across a lot of volumes.

Edit: So, there's a third question then. The actual benchmarking data linked to from the link in your comment is gone, so we only have the commentary, but I'd say it's a bad benchmark because the logic involved is wrong. The per-block I/O needed for different RAID levels are:

  • RAID1: N writes across N disks
  • RAID5: N-2 reads (collect existing, unchanged data in the stripe -- possibly cached, if you're lucky), 2 writes across N disks
  • RAID10: 2 writes across N disks

I can't explain why the benchmark got the results it did, because the data is gone, but my guess is that not enough test runs were done to smooth out the inherent variability in testing a shared resource. I did a lot of this sort of work for Heroku way back when, and the variability in runs over time (and over volumes) was sh...ocking.

As for the wikipedia article you cite, it's irrelevant in this case because it's all about RAID-5 in a high-end SAN appliance; you're doing RAID-5 inside a VM, which lacks the ability to make "the task of parity recalculation and redistribution [...] performed as a back-end process transparent to the host" -- amongst a variety of other differences between "big-ass SAN" and "software RAID".

| improve this answer | |

10gen did a webinar not too long ago specifically about using MongoDB on AWS. It deals with two issues: (1) Performance and (2) Fault tolerance in the wake of the recent AWS multi-day outage in a single availability zone. Their solution is RAID 10 across many nodes.

I'd suggest you go through the slides, as they can explain much better than I can in a SF post.

http://www.10gen.com/presentations/mongodb-austin/2012/mongodb-on-amazon-ec2 http://www.10gen.com/presentations/webinar-best-practices-mongodb-aws

| improve this answer | |
  • Slides makes it pretty clear that you have the RAID10 route at hearth, but the video requires registration, any other resources? Check out the links in the answer @womble – Claudio Poli Jul 29 '11 at 1:02
  • @womble's answers are way better than anything I could have written here. I didnt know that the video required registration because I registered and watched it live a couple of months ago. From what I can recall, the video explains mostly HOW and a little bit of WHY.. so maybe it wont answer your question after all... but still worth the short registration to watch it. – Bryan Migliorisi Jul 29 '11 at 5:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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