RAID10和RAID01的比较

  • RAID10是先做镜象,然后再做条带。最少4块盘。

  • RAID01则是先做条带,然后再做镜象。最少3块盘,但一般最少配4块盘。

RAID 10

比如以6个盘为例,RAID10就是先将盘分成3组镜象,然后再对这3个RAID1做条带。下图中A, B, C, D, E, F 为数据块。

RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1)_raid0+1 raid1+0

RAID 01

RAID01则是先利用3块盘做RAID0,然后将另外3块盘做为RAID0的镜象。下图中A, B, C, D, E, F 为数据块。

RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1)_raid0+1 raid1+0_02

RAID 01 VS RAID 10

  1. 性能与可用空间始终是相同的。从数据存储的逻辑位置来看,在正常的情况下RAID01和RAID10是完全一样的,而且每一个读写操作所产生的IO数量也是一样的,所以在读写性能上两者没什么区别。而当有磁盘出现故障时,这两种情况下,在读的性能上面也将不同,RAID10的读性能将优于RAID01。

  2. 最主要的区别是容错性。RAID 01容错性要差一点,因为只有2组RAID 0来保护。RAID 10由于有多组RAID 0,虽然每个组只有2块盘,因此可以允许3块盘同时坏掉的情况。我们可以计算RAID 01与RAID 10允许坏2块盘与3块盘的情况,故障率RAID10是低于RAID01的。 raid10可以损坏任意一块磁盘,而整体的数据仍然是可用的.我们暂且说这个系统的冗余度为2.而raid01只允许损坏特定的一块磁盘.左边的raid0中有一块盘损坏,此时左边的raid0便没有作用了.所有的io会切到右边的raid0,而这个时候,只能允许左边剩余的盘损坏,如果右边任何一块盘损坏的话,则整体数据将不可用,所以这个系统冗余度就变成了1.

  3. 以下讨论disk failure 的 case :

    Case 1. 任何一个硬盘损坏
    RAID 0+1 : 另一个 stripe 可继续工作, 但本身成为 SPOF.
    RAID 1+0 : 两个 segments 均可继续运作, 所以无 SPOF 的 concern. (胜)

    Case 2. 每个 stripe/segment 各损坏一个硬盘
    RAID 0+1 : 每个 stripes 都无法继续运作.
    RAID 1+0 : 每个 segments 均可继续运作, 所以无 SPOF 的 concern. (胜)

    Case 3. 同一个 stripe/segment 损坏两个硬盘
    RAID 0+1 : 另一个 stripe 可继续运作, 但本身成为 SPOF.
    RAID 1+0 : 若损坏的两个,属于同一mirror set, 则无法继续运作(败);若属于不同 mirror set, 则两个 segments 均可继续运作, 所以无 SPOF 的 concern. (胜)

    综合以上分析, RAID 1+0 不是在所有的情況下, 它的 reliability 都优于 RAID 0+1, 但是在大部分的情況, RAID 1+0 的 reliability 是优于 RAID 0+1 的. 所以 RAID 0+1 适用于对 performance 的需求高于 reliability 的环境;RAID 1+0 则相反。


  4. 另外在 recovery 的情況, RAID 0+1 要重新 mirror 整个 stripe; 而 RAID 1+0 只要重新 mirror 一个硬盘即可。