Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11682837
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-07-17 10:26:37

关于raid3的校验盘有没有瓶颈的问题。我们不妨用这个例子,来深入理解raid3,看看那人不扎实的功底,是怎么不攻自破的。通过我们刚才的讲解,大家知道了:raid3,每次IO都会分散到所有盘,为什么?很简单,因为raid3把一个逻辑块又分割成了N份,也就是说如果一个逻辑块是512k(假如),如果有5块盘的raid3系统,那么其中4块是数据盘,一块是校验盘。这样,把512k分成4块,每块128k,他们每个数据盘上各占一块。而主机的一个IO,至少是以一个逻辑块为单位的,也就是不能IO半个逻辑块的单位,即,不可能存在一个IO,它大小是小于512K。要么1个512k,要么N个512K。这样,就保证了,一次IO,不管多大,它都必须读写所有数据盘,那么,既然读的话,分成持续读,和随机读,持续,指的是:产生的IO目标块分布在磁盘上是连续的,磁头不必来回寻道耗费太多时间,那么寻道时间就很短,我们知道,一个IO所用的时间=寻道时间+数据传输时间。Iops=1/(寻道时间+数据传输时间),由于寻道时间相对传输时间,大几个数量级,所以影响iops的关键因素,就是降底寻道时间,而在持续IO的情况下,寻道时间很短,仅在换磁道时候需要寻道,而连续IO时候,换磁道都是相邻的,所以时间也足够短,在这个前提下,传输时间就显现出作用来了。由于raid3是一个IO必定平均分摊到了N个数据盘上,所以数据传输时间是单盘的1/N,所以大大增加了iops,而磁盘总体传输速率=iops乘以io size,io size不管多大,raid3持续读性能几乎就是单盘的N倍。非常强大。所哟我们再看看持续写,同样的道理,写IO,也必定分摊到所有数据盘,那么同样,寻道时间也足够短(因为是持续IO),那么写的时候,写所耗费的时间也是单盘的1/N,所以速率也是单盘的N倍。可是论坛上偏偏有一帮人,不求甚解,人云亦云,以讹传讹,说什么raid3的校验盘,是热点盘,是瓶颈。他们思维定势的认为:raid3写校验的时候,需要象raid5一样,先读出来原来的校验块,然后读出原来的数据块,然后计算出新校验,然后写入新数据,然后写入新校验。呵呵,他们是及其懒惰的,不动脑子思考,不专心修炼的一种人。事实是这样么?raid3,刚才说了,每个IO,必定要改动所有数据盘的数据分块,因为一个IO的块已经被分割到所有盘了,只要这个IO是写的动作,那么物理磁盘上的所有分块,就必定要全部都被更新,重写,既然这样,还有“旧数据”“旧校验”的概念么?没有,统统没了,因为这个IO上的所有分割块,需要全部被更新,包括校验块,那么数据在一次写入之前,控制器就会计算好校验块,然后同时将数据块和校验块写入磁盘,这会有什么瓶颈?还热点盘?我说他生搬硬套,他还不服。我说raid4是有热点盘,因为raid4的块不是每次都会更新所有盘的,所以它必须用raid5的那个计算新校验的公式,也就是多出4个操作那个步骤,所以当然有瓶颈了!要说raid3有热点盘,也行,所有盘都是热点盘,数据、校验,所有盘,对raid3来说,每次IO必将牵动所有盘,那么就可以说raid3全部都是热点盘!
在这个争论中,几乎就没有人深入思考过raid3,因为在他们的思想中已经根深蒂固的懒惰,不思考,不求甚解等坏习惯。包括很多所谓的“权威”人士,照样也是不求甚解。我门不要搞什么权威,最权威的是法,是理,而不是人!这不能不说是dostor论坛的悲哀,在一片看似大家字字不倦的氛围背后,和谐之后,隐藏的确实根深蒂固的坏思想。
我们再看看raid3的随机读写。所谓随机IO,指所IO的数据块,分布在磁盘的各个位置,这些位置是不连续的,或者连续几率很小。这样,磁头就必须不断的换道,换道操作,是磁盘操作中最慢的环节,根据那个公式iops=1/(换道时间+数据传输时间),随机IO时候,换道时间很大,大出传输时间几个数量级,所以你传输的再快,翻倍,翻10倍,也才增高了一个数量级,也不及换道时间的影响大,所以此时可以忽略传输时间的增加效应。由于一次IO同样是被分割到了所有数据盘,那么多块盘同时换道,然后同时传输各自的那个分块,所以换道时间,约等于单盘,传输时间是单盘的1/N,而传输时间带来的增效可以忽略,所以随机读写,raid3没有提升,和单盘是一样的,甚至不及单盘,因为分割,合并,计算还增加了延迟。所哟我们再来看看并发IO。显然,raid3执行一次IO,必将牵动占用所有盘,那么此时其他排队的IO就必须等待,所以raid3根本就不能并发IO。而raid5就可以,这个我们上面已经分析过了。

经过上述讨论,市面上流传的:raid3适合大块连续读写,而不适合随机读写和并发IO环境。这个定义,终于用事实来分析出来了。而那帮不求甚解的人,也同样不攻自破了。他们拿不出一点证据,靠着人身攻击,耍嘴皮功夫,简直无可救药。
来自冬瓜头
阅读(3025) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

jianjun23562015-05-08 14:35:30

不错,这文章才是正确的,看过大话存储的都知道 RAID3每次IO都要修改整个盘

jianjun23562015-05-08 14:35:23

不错,这文章才是正确的,看过大话存储的都知道 RAID3每次IO都要修改整个盘