POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 5379|回复: 26
打印 上一主题 下一主题

关于raid0对寻道时间的影响以及一点牢骚

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-22 00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前两天读到了这个帖子:
http://we.pcinlife.com/viewthread.php?tid=1210173&page=1#pid22541723

里面讨论到关于raid 0对寻道时间的影响问题.
有人说raid0会增加寻道时间, 有些人说raid0会减少寻道时间, 有些人认为不变.
于是做了小小的一点调查.

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0_failure_rate
参见raid 0 performance一栏.

While the block size can technically be as small as a byte, it is almost always a multiple of the hard disk sector size of 512 bytes. This lets each drive seek independently when randomly reading or writing data on the disk. How much the drives act independently depends on the access pattern from the file system level. For reads and writes that are larger than the stripe size, such as copying files or video playback, the disks will be seeking to the same position on each disk, so the seek time of the array will be the same as that of a single drive. For reads and writes that are smaller than the stripe size, such as database access, the drives will be able to seek independently. If the sectors accessed are spread evenly between the two drives, the apparent seek time of the array will be half that of a single drive (assuming the disks in the array have identical access time characteristics). The transfer speed of the array will be the transfer speed of all the disks added together, limited only by the speed of the RAID controller. Note that these performance scenarios are in the best case with optimal access patterns.

另发一点牢骚:
我在帖子的16楼已经说的很清楚了: "事实上当所操作的文件尺寸小于条带尺寸的时候, 各个硬盘的磁头是在分别工作, 所以此时寻道时间/2. 所以说, raid0对寻道时间的影响是非常巨大的, 尤其是大条带小文件的时候."

但随后跟人对没人对我的发贴产生回应而感到有些失望, 不知是因为国内wiki还在被屏蔽还是如何.
我不明白为什么还是没有人能静下心来看看前面发过的参考资料链接, 而是一味的要已自己的经验说事.
谈计算机组成原理? 那烦请把论点论据罗列, 不能总是靠貌似专业的语言哄人吧?
我当然不是说wikipedia就是正确的, 只是希望有一个良好的交流的氛围, 大家理性的有根据的讨论问题.

由此拓展开来说, 我觉得我们的论坛有一个特点:
太多人戴着高手的帽子故作深沉, 动概就是"建议读xx书", "你没用过xx", "你不懂你是xx"之类的搪塞之语.
个人认为这是毫无帮助的, 除了打击"菜鸟"自信心, 人为增高门槛之外没有任何作用.
形而上学的人还是太多, 一闭眼睛脑袋里想的是什么事实就是什么, '高手'说的是什么事实就是什么.
实事求是的人还是少, 这样不会很没意思么?

实在是太多论坛都是这样了, 但个人对gz期望还是蛮高的, 所以啰啰嗦嗦说了很多, 有冒犯到各位的请勿介意.
只是希望有一个更加求实的环境, 以求进步.
2#
发表于 2009-7-22 00:08 | 只看该作者
我也思考过这个问题,为什么同样容量的硬盘,双碟的要比单碟的寻道快?如果是两个硬盘组r0,情形是否与此类似
回复 支持 反对

使用道具 举报

3#
发表于 2009-7-22 15:52 | 只看该作者
加快,就是磁头在外圈读写,当然快拉。
以前都有人讲过容量大的硬盘,划分得越小,寻道就会越快!
回复 支持 反对

使用道具 举报

4#
发表于 2009-7-22 16:58 | 只看该作者
还是你理解的寻道和别人不一样
我理解的就是,从发出命令到找到文件的时间。一个盘磁头移动速度,还有旋转半圈碟片的时间不会减少,所以寻道不会少
测试软件可能测寻道用的是找小文件用时来判断,所以找多个小文件时,由于你说的原因,他速度快了,所以软件认为寻道少了,其实并没有少,只是类似于双线操作了。还是软件设计的原因
回复 支持 反对

使用道具 举报

5#
发表于 2009-7-22 17:00 | 只看该作者
我也思考过这个问题,为什么同样容量的硬盘,双碟的要比单碟的寻道快?如果是两个硬盘组r0,情形是否与此类似
zhxichz 发表于 2009-7-22 00:08
双碟快?硬盘都不一样不好比较吧。 或者你有测试吗?
回复 支持 反对

使用道具 举报

6#
发表于 2009-7-22 17:21 | 只看该作者
我的R0进系统的时间比不组RAID的系统慢,但进入系统后其他的操作都比较快~
回复 支持 反对

使用道具 举报

7#
发表于 2009-7-22 18:00 | 只看该作者
其实一早讨论过了
http://we.pcinlife.com/viewthread.php?tid=1179594
http://we.pcinlife.com/viewthread.php?tid=1198024
还有的就是楼主的理解有一点错误,寻道和iops其实是两回事
寻道是单任务的,就是一个任务接着一个的测量方法,无论如何,第二个盘也必需等第一个盘的寻完道之后才会做动作,所以说寻道没有提高也是正确的
回复 支持 反对

使用道具 举报

8#
发表于 2009-7-22 19:03 | 只看该作者
顶楼主, 摆事实讲道理.

我以为HDTurn这个软件"测试寻道"的方法(算法), 比较吻合楼主的理论环境(条件),所以测出来,时间低了.

而我认为楼上 bcyj 的观点也有道理, 您讲的"寻道时间",是磁盘的物理特性,固有属性, 这是任何外在技术,所
不能改变的, 就像人的性别一样, 再化妆,再做手术,也改变不了他的染色体, 呵呵.

我觉得, 大家的争论, 是对"寻道时间",这个名词从什么角度去理解的争论.

显然HDTurn的"寻道时间"适合硬盘物理属性的"寻道时间"是不同的, 它是"使用角度"上的"寻道时间",

西数把硬盘造出来后, 我们是改变不了的他的"物理寻道时间"了, 但是我们能通过外在的"包装", 能把我们用户
"实际使用意义上的寻道时间",进行改进.

总结一下:  我认为, 对于寻道时间的理解有两种, 物理意义上的, 和使用意义上的.

而测试软件(如HDTurn), 正是测试的是使用意义上的寻道, 它复合我们最终用户的目的.
当组成RAID后, 系统读盘确实加快了.

以上是我浅显的理解, 和大家一起讨论,一起学习.
回复 支持 反对

使用道具 举报

9#
发表于 2009-7-22 20:11 | 只看该作者
我也思考过这个问题,为什么同样容量的硬盘,双碟的要比单碟的寻道快?如果是两个硬盘组r0,情形是否与此类似
zhxichz 发表于 2009-7-22 00:08


双碟寻道是不是快没留意,但是性能的确是比较高就是了,当然前提是单碟容量一样大.
估计是因为前者一个柱面包含的磁道数是后者2倍,所以更多的资料能够存在同一个柱面里,那么磁头就不用频繁来回跑了

那时候WD猛禽74G vs 146G 就是这种情况
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2009-7-22 22:01 | 只看该作者
又花了點時間在上面, 樓上幾位說的有道理, 我混淆了尋道時間和讀取時間這兩個概念.

我们在HD Tune里面读到的存取时间(Access time)是由以下几个部分组成的:
(时间有限, 我没有找中文资料, 专有名词就不乱翻译了)

1. Spin-up time: 磁盘电机将磁盘加速到正常速度的时间. 我们都知道我们用的硬盘都是固定转速的, 这里所代表的含义应该是从低功耗状态到正常工作状态所要的时间. (未确认)
2. Seek time: 这就是所谓的寻道时间. 指的是磁头移动到特定磁道所需要的时间. (厂商普遍以此数据所宣传) 这属于磁盘的物理特性, 与raid无关.
3. Rotational Delay: 硬盘将磁头定位到所要操作的特定扇区所需要的时间. (此数据仅与磁盘转速有关)
4. Transfer time: 将数据读取或写入到其他存储介质的时间. (大多数系统文件操作在磁盘与内存之间完成)

RAID0所能提高的是 Transfer time . 这样解释的话应该没有什么争议吧?

因此, 我们应该可以做出这样的结论:
Raid 0在特定的状态下(文件大小与条带大小特定的组合)是可以提高磁盘的存取时间的.
这也就是为什么大家在跑hd tune时得到的结果普遍是Access time(存取时间)减少了.

欢迎探讨
回复 支持 反对

使用道具 举报

11#
发表于 2009-7-23 05:20 | 只看该作者
从开始就错误,之后也只能是错误
你所指的“跑hdt时,平均存取时间的减少”只是因为那些人都是做了限制大小的raid0,把寻道限制在部分磁道和磁区,所以平均存取时间看起来是少了,这个和磁盘分区以及磁盘碎片整理时把文件紧密压实可以获得的性能提高是一样的
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2009-7-23 05:47 | 只看该作者
从开始就错误,之后也只能是错误
你所指的“跑hdt时,平均存取时间的减少”只是因为那些人都是做了限制大小的raid0,把寻道限制在部分磁道和磁区,所以平均存取时间看起来是少了,这个和磁盘分区以及磁盘碎片整理时 ...
bcyj 发表于 2009-7-23 05:20


那请问你能指出我的结论哪里说错了么?
事实是, 我两块caviar black 1tb, 組raid0之前access time为13.4ms, 組raid0之后为10.1ms.
条带128k, 其他全部默认设置, 没有对raid的大小做限制.
如有反对意见, 欢迎对除结论之外的部分发表评论....
回复 支持 反对

使用道具 举报

13#
发表于 2009-7-23 06:24 | 只看该作者
那请问你能指出我的结论哪里说错了么?
事实是, 我两块caviar black 1tb, 組raid0之前access time为13.4ms, 組raid0之后为10.1ms.
条带128k, 其他全部默认设置, 没有对raid的大小做限制.
如有反对意见, 欢迎对 ...
chancekang 发表于 2009-7-23 05:47

其实我在前面的回帖中已经讲过了,就是这个测试其实是单线程的,就是同时间只有一个访问,第一个访问没完成之前,第二个磁盘的访问是不会进行的。
然后,针对你所说的,你首先需要用多一个软件来测试,如EVEREST。因为对2T的盘来说,扇区数已经接近0xFFFFFFFF,在这个情况下,伪随机数生成算法的分布平均率就会是一个重要的因素,就是很可能是由于那个随机访问分布的不均匀造成的
回复 支持 反对

使用道具 举报

14#
发表于 2009-7-23 09:30 | 只看该作者
就是同时间只有一个访问,第一个访问没完成之前,第二个磁盘的访问是不会进行的。
bcyj 发表于 2009-7-23 06:24


bcyj 老大, 这个我的理解, 即使是单线程读取文件, 普通应用程序应该基本都是这样,
但是由于OS的存在, 那么他的磁盘缓存机制是否有利于对RAID上的磁盘文件的读取,类似于
多线程并发呢.
回复 支持 反对

使用道具 举报

15#
发表于 2009-7-23 09:43 | 只看该作者
bcyj 老大, 这个我的理解, 即使是单线程读取文件, 普通应用程序应该基本都是这样,
但是由于OS的存在, 那么他的磁盘缓存机制是否有利于对RAID上的磁盘文件的读取,类似于
多线程并发呢.
wlx101 发表于 2009-7-23 09:30

预读对随机访问来说是基本上没有效果的。但是现在都是多任务多线程,同时由于多线程读64K以下的小块数据的时候比较多,所以raid0的效果还是挺明显的。这个其实就是iops的提高所带来的效果
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2009-7-23 10:50 | 只看该作者
其实我在前面的回帖中已经讲过了,就是这个测试其实是单线程的,就是同时间只有一个访问,第一个访问没完成之前,第二个磁盘的访问是不会进行的。

根据前面的回帖, 你提到寻道是单线程的, 这点我不反对. 但在之后的帖子中我解释了我的问题.
hdtune中这个测试不是寻道时间, 是存取时间. 两个是不同的概念. 寻道时间是存取时间的一个部分.
caviar black官方给出的seeking time是4.2ms.
Transfer time也是存取时间的一部分, 在这个过程中, 假设寻道时间低于这个transfer time的话, raid0并行工作的特征是可以完全得到释放的.

所以对这个测试来说, 我不认为他是单线程的.

然后,针对你所说的,你首先需要用多一个软件来测试,如EVEREST。因为对2T的盘来说,扇区数已经接近0xFFFFFFFF,在这个情况下,伪随机数生成算法的分布平均率就会是一个重要的因素,就是很可能是由于那个随机访问分布的不均匀造成的

参见wd caviarblack的官方小册子, 1tb型号的扇区数为: 1953525169 => hex(74706DB1), 尚不及0xFFFFFFFF的一半.
在这个情况下, 我不认为伪随机数算法会有什么影响.
话说回来, 如果真的只是因为算法原因, 是否每次运行测试都会得到不同的结果?
当然也有可能是因为误差不足以反映到小数点后一位. 如果情况如此, 算法的问题也可忽略.

其实我是想找到些更有参考价值的数据的, 但无奈搜到的几篇paper都是要付费下载.
回复 支持 反对

使用道具 举报

17#
 楼主| 发表于 2009-7-23 11:02 | 只看该作者
预读对随机访问来说是基本上没有效果的。但是现在都是多任务多线程,同时由于多线程读64K以下的小块数据的时候比较多,所以raid0的效果还是挺明显的。这个其实就是iops的提高所带来的效果
bcyj 发表于 2009-7-23 09:43


我倒是觉得某些情况下预读有可能会对随机访问带来影响.
曾经略读过linux下的raid驱动. raid0相比单个硬盘的情况, 从mounted device(对应win下的磁盘分区)到物理磁盘的数据交换中是存有overhead的.
我认为这是因为若干驱动器在raid0模式中并行工作, 每个stripe都带有类似索引(index)的数据. 所以在这个情况下, 如果raid的驱动允许预读这些overhead的话, 或许会对随机访问有所帮助. 但这仅仅是猜想, 没有事实依据.

再回到最开始的问题, 既然我们都认为raid0提高了iops。
如果raid0与单个磁盘的存取时间(seeking time+transfer time)都完全相同, 寻道过程又必定是线性的, 那iops又是从何提高的呢?
回复 支持 反对

使用道具 举报

18#
发表于 2009-7-23 11:08 | 只看该作者
HDT的就是单扇区的存取时间,根据mhdd之类的软件,单扇区的存取时间基本都在100ms以下,所以理解为单线程的随机访问时间就行。
你是两块1T...就是2T...0xE8E0DB62,已经接近0xFFFFFFFF了.你没有理解我说的问题是什么,随机数有个分布度的问题,就是例如产生50个1到10之间的随机数,有可能40个都在1到5之间。hdt用的就是c运行库中带的( seed* 214013L + 2531011L),这个在0x200000-0x720000之间的偏向性很明显
回复 支持 反对

使用道具 举报

19#
发表于 2009-7-23 11:12 | 只看该作者
关于iops,以前一早讨论过,我在这个帖子的前面也已经帖出了连接
http://we.pcinlife.com/viewthread.php?tid=1179594
回复 支持 反对

使用道具 举报

20#
发表于 2009-7-23 11:38 | 只看该作者
还有,分区就是分区,linux下一样是叫partition,这个根本是由mbr而来的
mounted device只是挂载的驱动器,虚拟光驱之类的虚拟设备都属于这类

然后,就是除了“压缩”这种可以减小数据实际存放体积的方法,没有其它的方法可以在数据结构层面上优化随机访问时间
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-19 18:30

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表