发新话题
打印

问一个磁盘阵列内部FC-AL架构的性能问题

引用:
原帖由 myprotein 于 2006-11-8 08:26 发表



这么算不对把,老兄,要知道不管是传命令还是传数据,都必须一个时刻只有一个磁盘发出数据流,你这么算是假设同一时刻80个磁盘都在发数据流。

我还是坚持我的观点,即磁盘都是以缓存得速度向外发送数 ...
我并不是说同一时刻啊,是1s之内啊

TOP

引用:
原帖由 annifer 于 2006-11-8 09:40 发表
其实我们讨论的前提是不对的,本身而言,阵列都有自己的cache,不同的阵列的cache计算方法是关系到阵列性能的主要因素,如果单纯考虑磁盘的话,一个磁盘的iops也只有小小的400不到,这样计算的话,你几块磁盘怎 ...
一个10k硬盘的理论最大IOPS也就120,什么时候到400了,也太离谱了吧.(当然我指的是随即IO情况,顺序的可能会大一些)

4GB的Cache的作用有这么大吗?对于一个Read IO来说,read cache几乎没有什么用,因为上层的应用(文件系统,database)都有自己的cache.真正发给磁盘阵列的Read IO请求几乎都是cache中没有的,需要去读取物理硬盘.

[ 本帖最后由 nfdx 于 2006-11-8 23:07 编辑 ]

TOP

引用:
原帖由 myprotein 于 2006-11-8 10:55 发表
de兄有些关点很偏颇。
数据库关闭fs得缓存,进行direct io,是为了获得性能,没错,但是还有一点是为了获得一致性。

但是你说连盘阵得cache都关闭,那就笑掉大牙了。盘阵靠得就是cache,没cache,还玩得什么。
defans兄主要是指关闭read cache

TOP

任何磁盘阵列只有WRITE CACHE是可以被DISABLE的.
FC-AL下磁盘速度是瓶颈之一,磁盘数量过了一个标称数后(一般是到了各产品的EXTENSION BAY),前台响应速度开始下降,IOPS倒是增加的.就像一辆大卡车,以前拉1-10个人,速度快,LOAD不行,现在拉100人,速度慢了,但LOAD上去了.曾经测试中发现阵列CACHE被最小化后,完全在磁盘速度运行,ORACLE9iHANG住.
现在业界的主要产品都是一个FC-AL上双控制器,各管一半,来增加"拉力",并提供冗余.磁盘的旋转速度还是非常重要的指标.
Gora!

TOP

我找了篇文章《强实时条件下光纤通道仲裁环带宽分配方法》,pdf的,巨学术,有兴趣的可以看一下。

可能对LZ的问题有解。

附件

强实时条件下光纤通道仲裁环带宽分配方法.pdf (159.92 KB)

2006-11-9 15:56, 下载次数: 404

强实时条件下光纤通道仲裁环带宽分配方法

TOP

赞楼上兄弟,呵呵,研究研究去

另外,读缓存没用?搞笑吧。
很多算法来计算预读取的,而且效率不低,使缓存命中率提高,怎么可能没用?笑话啊!
敝人博客
《大话存储》预订链接:http://www.china-pub.com/301645

TOP

刚看了这个论文,我还是坚持我的关点,和论文一些思想差不多,就是轮流公平得到环,传输,结束,释放。在极短的时间内,只能是从磁盘缓存中取数据,如果轮到你了,你再去寻道,去读取数据,呵呵,就有点说不过去了,总之,不能等。
敝人博客
《大话存储》预订链接:http://www.china-pub.com/301645

TOP

继续俺前面的:
在Initiator和硬盘间瞬间最大速度就是一个硬盘的cache速度,那整个loop的速度大概是多少呢,每个loop的理论i/o峰值是 40,000,实际使用的时候loop上磁盘的数量和loop的长度(xKM)都会影响Bus利用率,每个数据传送过程包括4个阶段 arbi,open,transfer,close, 所以这存在一些开销,其他还包括loop上设备数量增加的传输延迟开销以及loop长度造成的延迟

测试结果:1G loop的实际极限速度大约在80-100MB/s左右,使用顺序+cache,写一般应该比读还要慢一些,因为写比读要多一点操作,多占用bus时间;2G的大概在180MB/s左右,交换机观察速度应该在200MB/s

[ 本帖最后由 paulwang 于 2006-11-11 01:22 编辑 ]

TOP

谢谢黄兄的贡献!
不太看得懂,呵呵。
看来我们现在的结论应该是,一条FC-AL环的速度取决于一个硬盘缓存的最大速度,或者说硬盘的外延传输速度。无论如何,FC-AL环中,必须先把一个硬盘上的数据读出来,才能读下一个硬盘上的数据。
那么到这里,一个很关键的问题,前面也提到多次:用户如何确定,他所买到的磁盘阵列里,磁盘上的缓存都是打开而不是关闭的呢?
我印象中,大多数都是关闭磁盘缓存的(不是控制器的缓存)。
趁年轻,好好拼几年。

TOP

我想我们一直把两个概念搞混了,逻辑链路和物理链路。FC-AL要求同一时间只有两点建立逻辑链路,不是全部占用整个物理链路。

控制器读写硬盘可以分为三个阶段:请求、传输、接收。
请求:控制器上有所有硬盘上的数据的索引,当主机系统有数据请求时,他负责通知每一个硬盘要什么数据,这里面是逐个建立P2P逻辑链路。
传输:硬盘将数据放到物理链路上,这里不需要P2P。
接收:根据物理链路上的数据的地址头信息,建立P2P逻辑链路,接收。

所以是所有的硬盘同时工作,带宽的瓶颈在于两点:FC-AL协议中到底有多少的“垃圾"信息,控制器的Firmware的算法到底有多优秀。第一个当然是固定的,所以关键在第二点。

TOP

发新话题