为什么MongoDB文档build议在EBS上运行Raid 10?

他们似乎只谈性能,我相信与其他混合RAIDtypes不同。

看到这里: http : //www.mongodb.org/display/DOCS/Amazon+EC2#AmazonEC2-EBSvs.LocalDrives

你在问什么?“为什么MongoDB推荐EBS通过本地磁盘”或“为什么MongoDB推荐使用RAID-10而不是单个EBS?” 我想这两个问题在你给出的链接中都得到了很好的回答,但是要回顾一下:

  • EBS vs本地磁盘:如果您希望MongoDB数据在实例崩溃或重新启动的情况下生存下来,这是一件不容易的事情。 当实例发生时,本地磁盘将消失。
  • EBS的RAID-10:简单地说,EBS的性能差了很多(甚至更糟)。 RAID-10至less将负载分散到很多卷上。

编辑 :那么,还有第三个问题。 从评论中的链接链接到的实际基准数据已经消失,所以我们只有评论,但我会说这是一个糟糕的基准,因为涉及的逻辑是错误的。 不同RAID级别所需的每块I / O是:

  • RAID1:N个N磁盘写入
  • RAID5:N-2读取(收集条带中现有的,未更改的数据 – 如果幸运的话,可能被caching),2个跨N个磁盘写入
  • RAID10:2跨N个磁盘写入

我无法解释为什么基准testing得到了它所做的结果,因为数据已经消失了 ,但我的猜测是没有足够的testing运行来平滑testing共享资源的固有变化。 当Heroku做了很多这样的工作的时候,随着时间的stream逝(以及超过一定数量)的变化是不可避免的。

至于你引用的维基百科文章,在这种情况下是无关紧要的,因为它是关于高端SAN设备中的RAID-5的; 你正在虚拟机内部做RAID-5,它缺乏使“重新计算奇偶校验重新分配任务作为对主机透明的后端过程的能力”的能力 – 在各种其他差异在“大屁股SAN”和“软件RAID”之间。

10gen在不久之前举办了networking研讨会,特别是在AWS上使用MongoDB。 它涉及两个问题:(1)性能和(2)在单个可用区域内最近的AWS多天中断之后的容错。 他们的解决scheme是跨越多个节点的RAID 10。

我build议你通过幻灯片,因为他们可以解释比我在SF的post好多了。

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