Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325866
  • 博文数量: 57
  • 博客积分: 2101
  • 博客等级: 大尉
  • 技术积分: 966
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-09 14:35
文章分类

全部博文(57)

文章存档

2010年(13)

2009年(44)

我的朋友

分类:

2009-05-13 14:53:45

RAID0+1和RAID1+0的区别
RAID0+1是先将多块盘做成RAID0, 然后将两个大的虚拟盘做成RAID1.如果是4块盘A,B,C,D如果要做RAID0+1, 可以使用A, C建立一个RAID0, B, D建立一个RAID0,然后将这两个RAID0做成一个RAID1。如图所示:

+----------------------+

| +-------+  +-------+ |

| | +---+ |  | +---+ | |

| | | A | |  | | B | | |

| | +---+ |  | +---+ | |

| | RAID0 |  | RAID0 | |

| | +---+ |  | +---+ | |

| | | C | |  | | D | | |

| | +---+ |  | +---+ | |

| +-------+  +-------+ |

|       RAID1          |

+----------------------+

RAID1+0是先将多块盘做成RAID1, 然后将两个大的虚拟盘做成RAID0. 如果是4块盘A,B,C,D如果要做RAID0+1, 可以使用A, B建立一个RAID1, C, D建立一个RAID1,然后将这两个RAID1做成一个RAID0。如图所示:
 

+------------------+

| +--------------+ |

| | +---+  +---+ | |

| | | A |  | B | | |

| | +---+  +---+ | |

| |    RAID1     | |

| +--------------+ |       

| +--------------+ |

| | +---+  +---+ | |

| | | C |  | D | | |

| | +---+  +---+ | |

| |    RAID1     | |

| +--------------+ |   

|      RAID0       |

+------------------+

 
在RAID0+1方案中,如果A出现损坏,则A,C组成的RAID0将不可使用,此时如果B,D中的某一块盘出现问题,则将导致整个RAID0+1失效。
 
在RAID1+0方案中,如果A出现损坏,则A,B组成的RAID1将不可使用,此时如果不是B损坏或者C,D同时损坏,整个阵列依然可用。
 
相比而言RAID1+0比RAID0+1具有更高的可用性,而性能上几乎没有差异。
 
RAID0+1对比RAID1+0的唯一好处就是组成两个RAID0的磁盘个数和容量可以不一致,而RAID1+0则要求所有的磁盘容量完全一致。
 
RAID1+0又被称为RAID10
 
 
 
 
 
 

RAID 5

RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写高速缓存”可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。

RAID 10/01其实可细分为RAID 1+0或RAID 0+1。

RAID 1+0是先镜射再分割数据。是将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 1+0有着不错的读取速度,而且拥有比RAID 0更高的数据保护性。

RAID 0+1则是跟RAID 1+0的程序相反,是先分割再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。RAID 0+1比起RAID 1+0有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,RAID 0+1就会停止运作,而RAID 1+0则可以在牺牲RAID 0的优势下正常运作。

RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用

安全性方面的比较
其实在安全性方面,毋庸置疑,肯定是RAID10的安全性高于RAID5。我们可以通过简单的分析来得出此结论。当盘1损坏时,对于RAID10,只有当盘1对应的镜像盘也损坏,才会导致RAID失效。但是对于RAID5,剩下的3块盘中,任何一块盘出现故障,都将导致RAID失效。
在恢复的时候,RAID10恢复的速度也快于RAID5。

空间利用率的比较
RAID10的利用率是50%,RAID5的利用率是75%。硬盘数量越多,RAID5的空间利用率越高。

读操作方面的性能差异
RAID10可供读取有效数据的磁盘个数为4,RAID5可供读取有效数据的磁盘个数也为4个(校验信息分布在所有的盘上),所以两者在读方面的性能应该是基本一致的。

连续写方面的性能差异
在连续写操作过程中,如果有写Cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,虽然也许并没有太大的差别(这里要假定存储有一定大小,足够的写Cache,而且计算校验的CPU不会出现瓶颈)。
因为这个时候的RAID校验是在Cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,然后同时写入3个数据+1个校验。而RAID10只能同时写入2个数据+2个镜像。

4块盘的RAID5可以在同时间写入1、2、3到Cache,并且在Cache计算好校验之后,这里假定是6,同时把这4个数据写到磁盘。而4块盘的RAID10不管Cache是否存在,写的时候,都是同时写2个数据或2个镜像。
根据前面对缓存原理的介绍,写Cache是可以缓存写操作的,等到缓存写数据积累到一定时期再写到磁盘。但是,写到磁盘阵列的过程是迟早也要发生的,所以 RAID5与RAID10在连续写的情况下,从缓存到磁盘的写操作速度会有较小的区别。不过,如果不是连续性的强连续写,只要不达到磁盘的写极限,差别并不是太大。

离散写方面的性能差异
例如DB2 数据库每次写一个数据块的数据,如4KB或8KB,由于每次写入的量不是很大,而且写入的次数非常频繁,因此联机日志看起来会像是连续写。但是因为不保证能够填满RAID5的一个条带,比如32KB(保证每张盘都能写入),所以很多时候更加偏向于离散写入(写入到已存在数据的条带中)。

离散写的时候,RAID5与RAID10的工作方式有什么不同?查看图2-8,假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次IO:先读出2与校验6,可能发生读命中,然后在Cache中计算新的校验,写入新的数字4与新的校验8;

对于RAID10,同样的操作,最终RAID10只需要2个IO,而RAID5需要4个IO。
忽略RAID5在那两个读操作的时候,可能会发生读命中操作的情况。也就是说,如果需要读取的数据已经在Cache中,可能是不需要4个IO的。这也证明了Cache对RAID5 的重要性,不仅仅是计算校验需要,而且对性能的提升尤为重要。

当然,并不是说Cache对RAID10就不重要了,因为写缓冲,读命中等,都是提高速度的关键所在,只不过RAID10对Cache的依赖性没有RAID5那么明显而已。

磁盘的IOPS对比

对空间利用率要求较高,而对安全性要求不是特别高的大文件存储的系统,采用RAID5比较好。相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用RAID10的方式比较好。

根据我的经验与分析:小I/O的数据库类型操作,如ERP等应用,建议采用RAID10;而大型文件存储、数据仓库,如医疗PACS系统、视频编辑系统,从空间利用的角度,建议采用RAID5。

在一个实际的案例中,一个恢复压力很大的standby(这里主要是写,而且是小IO的写),采用了RAID5的方案,发现性能很差,通过分析,每个磁盘的IOPS在高峰时期,快达到200了,导致响应速度非常之慢。后来改造成RAID10,就避免了这个性能问题,每个磁盘的IOPS降到了100左右。所以,了解RAID5和RAID10原理,对我们根据应用系统的特点来做存储I/O设计,从而保证性能非常重要。

阅读(681) | 评论(0) | 转发(0) |
0

上一篇:EVA3000

下一篇:glance1

给主人留下些什么吧!~~