28 123
发新话题
打印

FC-AL 环路中数据传输及硬盘工作原理

FC-AL 环路中数据传输及硬盘工作原理

刚刚看到前一段讨论比较热烈的一个帖子
问一个磁盘阵列内部FC-AL架构的性能问题 http://bbs.doit.com.cn/thread-43592-1-1.html
又浮出了水面,前一段看了这个帖子后也查阅了一些相关的资料。写了些个人在这方面的理解,感觉还是可以解释在硬盘cache 关闭的情况下,FC-AL中数据传输的性能问题。

首先看一下硬盘IOPS是如何得出的:
计算指标:
1,平均寻道时间(average seek time)
2,平均延时(Average Lantency)
3,平均访问时间 = 平均寻道时间 + 平均延时

硬盘的iops = 1000ms/平均访问时间


因此一块15k 73G 的硬盘的理论IOPS在1000/(2+3.6)= 178 < 200;

FC-AL是类似令牌环网的传输结构,在一个loop上,同一时刻只有一个设备进行数据的传输,这一点也是肯定的。因此是不是一个loop里面最大的IOPS性能只能是一个硬盘的峰值呢?显然不应该是这样的。而硬盘cache关闭后,整个loop如何获取比较高的性能呢?如何保证在一个loop内部,在硬盘数量在一定范围内的 时候保证IOPS和硬盘数量呈线性关系呢?


我们可以看出用来计算IOPS的硬盘平均访问时间是由平均延迟时间和平均寻道时间来决定的,这两个时间主要是将磁头定位到我所要存取的数据处所用的时间。这段时间并没有数据的传输。而正是这段时间决定了IOPS。

是不是在硬盘的寻道时间和延迟时间期间,这个硬盘都在独享loop呢?

如果不是,那么就不能用单个硬盘的IOPS来决定这个LOOP的IOPS。


待续



[ 本帖最后由 bjmichael 于 2007-4-29 11:49 编辑 ]

附件

ds_cheetah_15k_5.pdf (637.12 KB)

2007-4-27 20:47, 下载次数: 430

seagate 15k 硬盘参数

MSN/Mail:bjmichael@126.com

何当共剪西窗烛
却话巴山夜雨时

TOP

如果楼主仅仅是想证明iops而不是MB/S和cache无关,那么不用待续了。

如果楼主想证明整个loop的MB/s,在关闭cache下依然可以达到较高的值,很有兴趣讨教讨教。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

楼主,在硬盘寻道的时间内仍然是独享环路的.
冬瓜头,你对IOPS的问题已经有结论了?想听听你的高见

TOP

,在硬盘寻道的时间内,可以向其他磁盘发起io,这样节约时间,所以iops可以提高。

但是MB/s就不行了,要传输,就要独占loop,所以这个矛盾,至今我也搞不懂。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

传说中滴硬盘图……

TOP

引用:
原帖由 冬瓜头 于 2007-4-27 14:14 发表
,在硬盘寻道的时间内,可以向其他磁盘发起io,这样节约时间,所以iops可以提高。

但是MB/s就不行了,要传输,就要独占loop,所以这个矛盾,至今我也搞不懂。
不明白,为什么在寻道时间内既然可以让其他的硬盘发起io,为什么就不能在这个硬盘寻道的时候,其他硬盘在loop中传输MB/S。

一个硬盘的平均传输速率是按照(平均寻道+平均延时+数据读写时间来计算的),一般15K硬盘平均延时2ms,平均等待3.6ms,平均数据读写0.2ms,数据传输速率70MB/S(取低值)。
假设整个loop中不存在征用的情况下,那么理论上硬盘都是在利用平均读写的0.2ms内 向外传输数据,这样平均速率是 70 * (2+3.6+0.2)/ 0.2 = 2030MB/S。
因此按照目前的15k硬盘如果将硬盘cache关闭,整个loop的最大带宽将是2030MB/S。当然这是在极端理想的情况下。而不是整个loop70MB/S。

冬瓜兄不知道我这样理解是否正确。
MSN/Mail:bjmichael@126.com

何当共剪西窗烛
却话巴山夜雨时

TOP

看不到楼主发的图..

TOP

引用:
原帖由 潇洒d鱼 于 2007-4-27 20:43 发表
看不到楼主发的图..
一直不会贴图,不知到怎么在某个位置插入图片,也看了说明,还是不行。。。。
MSN/Mail:bjmichael@126.com

何当共剪西窗烛
却话巴山夜雨时

TOP

如果是回复一个贴子, 需要点回复, 然后点插入图片. 再输入URL地址编辑就可以了.

TOP

现象一排水龙头,每次只能拧开一个。注意“开”字。
如果用两只手同时拧两个,但是只能拧开一个,此时就是iops可以提高的情况,因为拧这个动作需要时间,而两只手拧两个,其中一个到刚好没有放水的时候,等待放水,另一个则直接拧开,放水完毕之后,立即刚才那个开始放水,这样节约了很大时间,如果同时有N只手,情况就更好了,控制器就是这N只手。

而每次只能有一个水龙头在放水,不可能出现多个水龙头放水的状态,那么你说水槽里的水量,是不是最大也就是磁盘(关闭cache)时候的传输量呢?显然是。

所以我找不到这个问题的答案,如果cache被关闭的话。唯一能解释的,只有cache被全部打开而且高效运行。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

 28 123
发新话题