发新话题
打印

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

大家都有点钻牛角尖了
实际情况是这样的:
磁盘的cache是不会被关闭的,原因下面我会说明。
读取的时候的情况:作为LC-AL环上的设备之一,控制器传输了读的命令到相应磁后就会交出对该环的占用,允许所有磁盘与它进行通讯,而这个环的传输速度不是2GB就是4GB,传输的时间可以忽略不计。此时控制器可以向其他磁盘发送读写命令,环的信道是不会空闲下来的。等到磁盘把数据准备好,放到磁盘cache上后,它会通过它的光电转换接口把数据放到环上,因为cache里的数据是在并行线上的,到光纤上变成串行,中间有个转换的过程,因此,在向外传输的时候,可以跟上环的速度的。让大家争执不下的是一个盘的cache传输速率才400MB/s,那么环上只能获得400MB/s的数据呢?不是的,转换后的数据应该是以4GB/s的速度传出,也就是说硬盘虽然传了10秒钟的数据给转换器,但是转换器给控制器的时间只有1秒钟。而传输是由转换器发起的,和磁盘以及cache都没有关系。这样,可以保证如果一旦环上有数据传输,一定是以4GB/s的速度。而控制器给那个磁盘的答复“数据已收到”也是以4GB/s的速度传输的。
写的时候:其他的都和上面一样,只是写的策略是write through,就是先到cache,cache写到磁盘,都完成了才会答复一个“数据已写完”给控制器,控制器才会把相应的数据从盘阵的cache中清除掉,否则不清除。如果在写的过程中发生掉电,数据没写完,那么控制器就不会收到“数据已写完”的答复,这样数据仍然存放在盘阵cache里,而它有电池保护,像EMC的可以保存72小时,HP的可以保存96小时,足够等到来电了。等电来了再重新写就可以了,不需要电池保护磁盘的cache了。

TOP

我认为楼上的大侠,还是犯了4Gb是并行的错误
4Gb,还是串行,最大4Gb,而环又是独享的,同一时刻,只能一个节点传数据,不管指令还是数据,fc指令属于共路信令。除非一块硬盘可以达到4Gb的速度,而这是不可能的。
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

我想你恐怕理解错了我的意思,我是说从磁盘cache的并行电信号变成光纤线上的串行数据是需要一个中间过程的,所以并不是cache直接往外面传输数据。这个光电转换过程必定存在一个处理器,一个缓存设备(哪怕很小)。那么数据实际上是从这个缓存设备出去的,磁盘cache中的数据可能分几次转换后存储在这个缓存设备里,再通过这个小缓存设备往外发送的时候是以4GB/s的速度传输的。这样,比如磁盘cahce中有1M的数据,由于cache往外传输的速度有限,假设我们每次转换10K就取得仲裁环的控制权发起一次传输,传100次,每次都是以4GB/s的速度传输的,那么就可以保证在每次传输的间隙其他磁盘也可以和控制器进行通信,才真正让这4GB的带宽用起来。表面上看好像1块磁盘是以400MB/S的速度向外传输数据,但是却实现了在其传输过程中其他磁盘也可以传输数据(因为它的传输是分段的,虽然每次都是独占,但每次都是以4GB/S的速度传输,相比cache的传输速度,这个速度几是10倍的,因此,从单个磁盘的角度讲,传输的时间都花在这个光电转换的过程中了,而相比在光纤上传输的时间几乎可以忽略,因此其他磁盘没必要等它实现转换后才取得信道控制权,有转换好的数据就传呗)。这个过程一定程度上和TCP/IP协议类似吧,每次都是以数据包发送,而不是一直独占整个局域网带宽,直到数据传输完毕。

TOP

《《《《我想你恐怕理解错了我的意思,我是说从磁盘cache的并行电信号变成光纤线上的串行数据是需要一个中间过程的,所以并不是cache直接往外面传输数据。这个光电转换过程必定存在一个处理器,一个缓存设备(哪怕很小)。那么数据实际上是从这个缓存设备出去的,磁盘cache中的数据可能分几次转换后存储在这个缓存设备里,再通过这个小缓存设备往外发送的时候是以4GB/s的速度传输的。
》》》》是的,接口技术都是这么干的啊


《《《《因此,从单个磁盘的角度讲,传输的时间都花在这个光电转换的过程中了,而相比在光纤上传输的时间几乎可以忽略,
》》》》不同意
cache到fc接口的转换是很快的,比4gb快多了。


您的意思,就是所有磁盘都是以cache的满负荷速度向外发送,这不就是我的观点么?

另外,您这个论断是推断,还是有证据证明的?
磁盘cache果真都是打开的么?
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

呵呵,我这里指的转换的速度是包含cache读取时间的,这个时间还是相对较长的。
另外,据我所知HP的EVA是把磁盘cache打开的,原理也是我上面说的,可以确保数据一致性。至于其他的阵列是不是都打开我就不能肯定了。前面有位仁兄也提到EMC的也是打开的,那我估计大部分主流盘柜的磁盘cache应该都是打开的

TOP

“”“”“据我所知HP的EVA是把磁盘cache打开的,原理也是我上面说的,可以确保数据一致性”“”“”

奇怪了,打开磁盘cache,还可以保证一致性了?
都晕了!
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

呵呵,冬瓜兄还是仔细看看这段吧:
写的时候:其他的都和上面一样,只是写的策略是write through,就是先到cache,cache写到磁盘,都完成了才会答复一个“数据已写完”给控制器,控制器才会把相应的数据从盘阵的cache中清除掉,否则不清除。如果在写的过程中发生掉电,数据没写完,那么控制器就不会收到“数据已写完”的答复,这样数据仍然存放在盘阵cache里,而它有电池保护,像EMC的可以保存72小时,HP的可以保存96小时,足够等到来电了。等电来了再尝试重新写就可以了,不需要电池保护磁盘的cache。

TOP

呵呵,那就有点自相矛盾了吧
cache设成WT模式,这样肯定不能以cache的速度向外发送了,只能以磁盘的速度向外发送,岂不是和您上面的论断矛盾了么?
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

读取和写入都并不存在一致性问题。读取的时候只需要把数据放到cache里,以cache的速度发送。控制器收完也要告诉磁盘“已接收完毕”,不然磁盘和控制器就以为没发送成功。这样如果一旦在发送过程中断电,重新起来的时候控制器还是要把这个读取命令再发一次,还是可以读取完整的数据
写的时候也是写到磁盘cache,这个时候就放弃信道控制权,然后磁盘自己在那里把cache写到磁盘上,除非所有数据写完,否则磁盘不会夺取控制权发送“已写完”的信息给控制器。这样写的过程中一旦断电,控制器就收不到“已写完”的信息,那它就再写咯。

TOP

这篇帖子不错。
冬瓜精神好,哈哈。

TOP

发新话题