深入理解各种raid相对单盘速度的变化

上一篇 / 下一篇  2007-07-01 10:16:16 / 个人分类:网络技术

RAID0用分片存储方式把数据分布在两个盘或更多盘上,读写持续传输速率会

增加一倍,随机读写速度按理论是有可能增加的,这取决于数据分片大小和读

写的大小,不过总的来说很值得怀疑;硬件RAID1的随机和持续写速率和单个

硬盘是完全一样的,但读的话由于可以从两个硬盘随意选一个读,随机读性能

会有明显的增加,可能至2倍,至于持续读取速率理论上有可能增加,不过我

很怀疑有这方面的优化,估计还是一样的;RAID5由于写要N+1个盘一起写,所

以随机读写速率和单个硬盘是一样的(或者更差),而持续读写速率按理论是

单个硬盘的N倍,不过我也遇到过还不如RAID1的情况,这怎么说呢?没法说了

以上是引自http://bbs.doit.com.cn/thread-44972-1-2.html


raid1和raid0的持续传输率,我认为和控制器的算法和读取数据大小有关。如

果随机读取(非连续读取,寻道开销很大),而且数据又很小,那么不管单盘

还是多盘raid,速率几乎一样,因为都浪费到寻道上了。
根据公式可以算出来,1/(寻道时间+传输时间)=iops。如果寻道时间比传

输时间大几个数量级,那么传输时间翻倍变化,也对iops没多少影响。

然后提一下并发IO的概念:并发IO,指多个IO可以同时被处理,比如IO1可以

访问a盘,IO2可以同时访问b盘。并发IO的反义词是顺序IO。

基于以上结论有:

1、raid0持续读写和单盘比较:寻道时间不便,raid0传输时间=单盘2倍,总

体iops差别不大。但是有二条:并发IO和raid0的分割块大小。又可以分两个

因素,第一:不并发IO(或者并发IO)+分割块很小。这种情况下,寻道时间

不变,传输速度相对单盘减半,iops差不多。第二:不并发IO+分割块很大。

这样的话,一次IO寻道时间相对单盘不变,传输速度可能不变(如果一次IO恰

好只读取一个分割块),或者传输速度减半(一次IO可能定向到两块盘)。不

管怎么样,对iops影响不大。第三:并发IO+分割块很大。这样,寻道时间减

半,传输时间可能减半也可能不变。总之iops会增大很多。


结论:raid0持续读写仅在并发IO+分割块很大的时候,iops会增加很多。


2、raid0随机读写和单盘比较:寻道时间相等,raid0传输时间减半,差别不

大。但是有二条:并发IO和raid0的分割块大小。这又可以分出两个条件因素

,第一:不并发IO&分割块很小,以至于每次IO必须定向到两块盘,这种情况

raid0和单盘差别不大。第二:不并发IO&分割块比较大,一次IO可能只用一块

盘,那么这种情况和单盘直接就是一样的。
第三:并发IO&分割块很小,那么并发IO就不起作用,因为每次IO都会占用两

块盘(有个帖子不是和我争论如果每次IO都占用多个盘之类的么?我就不去争

了,累了),那么就并发不了,这样iops还是差不多。第四:并发IO&分割块

很大。这种情况,并发IO奏效,进程下发的多个IO,控制器并行执行,这样,

寻道时间和传输时间都相对单盘要减半。所以理论上,是单盘的两倍。

结论:raid0随机读写仅在并发IO+分割块很大的时候,iops显著增加。

 

 


3、raid1持续读写和单盘比较

   因为raid1没有什么分割概念了。所以因素只有一条:是否并发IO

   第一:不并发IO。此时寻道时间不变,传输时间不变,iops不变
   第二:并发IO。此时寻道时间减半,传输时间减半,iops翻倍。

结论:raid1持续读写,仅在并发IO的情况下,iops显著增加。

4。raid1随机读写和单盘比较

   第一:不并发IO。此时寻道时间不变,传输时间不变,iops不变
   第二:并发IO。此时寻道时间减半,传输时间减半,iops翻倍。

结论:raid1随机读写,仅在并发IO的情况下,iops显著增加。

 


5、raid5持续读写和单盘比较

   raid5可以说有raid0的影子。有三个因素:是否并发IO,读or写,条带深

度。striple depth的概念,请大家自行搜索snia标准化文档,做学问要穷根

问底,不要人云亦云。没看过基本定义就下定结论,都是不好的做法。
先说读。

第一:读,非并发IO,IO size小于等于条带深度。此时,一次IO只占用一块

磁盘,而其他IO正在排队,所以寻道时间等于单盘时间,传输时间等于单盘

第二:读,非并发IO,IO size远大于条带深度。此时一个IO占用多块磁盘(

视io size决定,越大占用越多,但是大过了头,反而有所抵消)。寻道时间

是单盘的1/n,n=IO size/striple size。iops显著增加。

第三:读,并发IO,IO size小于等于条带深度。此时多IO并发,相对寻道时

间是单盘的1/n。iops显著增加

第四:读,并发IO,IO size远大于条带深度。此时并发IO效果被抵消。只是

减少了传输时间,iops差不多。

第五:写,非并发IO,IO size小于等于条带深度
      写,非并发IO,IO size远大于条带深度 
       这两种情况下,iops都没有什么增加而且有减小。只是传输速度减半

而已(对于前者传输速度不变)。不管怎么说,写速度肯定是比单盘要慢了,

因为raid5的写惩罚,这个就不必多说了。


第六:写,并发IO,IO size小于等于(或者大于)条带深度。因为并发IO,所以总体速度比单盘快,但是写惩罚又抵消了性能,总体不好说,要测试

结论:

读,非并发IO,IO size远大于条带深度
读,并发IO,IO size小于等于条带深度
raid5仅在以上两种情况,iops显著增加。

纠正一下昨天的错误,由于写的太匆忙。
raid1和raid0的持续读写iops,应该相比单盘会有显著增加,因为寻道时间虽然对单盘没有变化,但是寻道时间相比随机IO的时候,小了很多,此时传输时间的变化就上升为主要矛盾了。

raid5持续读,在io size远大于striple size的时候,也是显著增加。

raid3为什么持续分布式IO速度快?因为持续的都不耗费多少寻道时间,此时传输时间就是主要矛盾,而raid3理论传输时间是单盘的1/n,n是raid3数据盘的个数。

 

所以有些人根本不理解raid3,没有仔细分析,就人云亦云。

分析至此,wdpwdp兄的分析,好像和我的分析有些冲突,请大家发表意见吧。好累~~


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

我的存档

数据统计

  • 访问量: 476
  • 日志数: 10
  • 建立时间: 2007-07-01
  • 更新时间: 2007-07-17

RSS订阅

Open Toolbar