发新话题
打印

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

FC-AL上的磁盘(JBOD/MBOD)不是并发读写的,呵呵,而是顺序读写,但是因为一般完成一个操作的单位一般都是ms级别的,所以集合起来看,在一个时间段内(比如1s/1m),可能会有多个磁盘和HBA进行了通信;

黄兄解释成逻辑连接是完全错误的,ANSI的FC-AL的文件里很清楚的写着:There can be only one active Loop circuit at a time, independent of the number of L_Ports on a Loop.  Only one pair of L_Ports may communicate at one time although there may be up to 127 Participating L_Ports attached on one Loop. All other communication must wait (i.e., is blocked).

所以还是看应用类型和磁盘数量,有可能瓶颈在FC-AL上,也有可能在磁盘数量上;看看qlogic的白皮书带的测试报告就知道了 2G 和 4G HBA的比较

[ 本帖最后由 paulwang 于 2006-11-12 00:34 编辑 ]

附件

a.JPG (87.71 KB)

2006-11-12 00:33

a.JPG

TOP

大家都来讨论,对错没关系,思考是乐趣。有条件的可以实测验证一下。

TOP

磁盘缓存关闭
-->磁盘最高性能:70MB/S,400 IOPS

FC-AL一个时刻只能读写一个磁盘
-->一条FC-AL环最高性能等于磁盘最高性能:70MB/S,400 IOPS

一个磁盘柜连2条FC-AL环
-->配置一个磁盘柜,最高性能:140MB/S,800 IOPS

一个中高端磁盘阵列最多有4条FC-AL环
-->磁盘阵列最高性能:280MB/S,1600 IOPS

如何提高性能:
1、打开磁盘缓存(单个硬盘利用缓存可以达到200或400MB/S,相信厂商公开测试都是这样设置的),但是需要加UPS
2、不用FC-AL,用FC-SW(像DS6800似乎就是这样,难怪它定位比DS4800高)

购买了DS4000、CX、EVA、AMS之类的朋友们可以看看,你的磁盘阵列是否用了UPS?
趁年轻,好好拼几年。

TOP

引用:
原帖由 nfdx 于 2006-11-10 19:22 发表



看来你是真的不懂啊!我觉得黄兄说得有道理啊!
举个例子:
一个16K的IO写到了阵列的写cache中,写cache将16k destage到磁盘的cache中,这时写cache中用于存放这个16k的slot会被标记为可用。如果在这16 ...
看来你是真的不懂啊,磁盘在没有成功写盘之前,会给控制器返回成功么?除非你人为设置了磁盘cache的write back,而这是不可能的。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

引用:
原帖由 diy99 于 2006-11-10 20:21 发表
我基本上同意黄兄的见解.FC-AL上的所有磁盘都是并发读写的, 并不取决于一块磁盘的速度.当磁盘数量足够,即使磁盘的缓存关闭,瓶颈也在FC-AL上.所以FC-AL的阵列磁盘缓存应该关闭.
驴唇不对马嘴。。。。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

引用:
原帖由 defans 于 2006-11-11 11:39 发表
如何提高性能:
1、打开磁盘缓存(单个硬盘利用缓存可以达到200或400MB/S,相信厂商公开测试都是这样设置的),但是需要加UPS
我的看法不太相同,磁盘cache也保护的话,当然你有钱就保护,但是磁盘在加电时候,据目前的磁盘工作流程,我估计是没有“将cache中的数据写回磁盘”这个过程的,而盘阵设计时候就考虑到了,所以盘阵cache在断电后可以写回磁盘,所以单个磁盘上的cache,可以不用保护,因为磁盘都是在磁头真正写盘成功后,才向控制器返回success,断电情况下,丢了也就丢了,也就是说上层应用回有反应的,提示你此操作未成功。当然盘阵的cache如果设置成write through,当然也可以不保护。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

还有,可以做一个推断,当环上的磁盘数量比较少的时候,如果关闭磁盘cache,性能会非常差,因为环总是在等待磁盘的寻道。但是如果磁盘一多,cache的作用就显示不太出来了,因为控制器轮询磁盘,其他磁盘有时间进行寻道,写,等操作,但是关闭cache还是一个愚蠢的做法,因为控制器不可能每次都轮询所有磁盘,除非你做了raid0条带,或者raid3这种raid。
敝人博客
敝人专著:《大话存储》购买:当当,互动,淘宝,卓越。

TOP

我同意关闭磁盘的缓存会影响一些性能,但是不关闭则会影响数据的安全.一般来说,盘阵的cache收到hostdata,它就返回success,然后在后台flushdata,当磁盘的缓存收到data,它就会返回Success.盘阵收到sucess,盘阵的cache就free了.如果这时候掉电,data在磁盘的缓存中就没了.

TOP

Scsi命令 cdb[0] = 0x2a 写命令. cdb[1]有一位Force Unit Access,FUA为1,磁盘缓存关闭,write through. FUA为0,磁盘缓存打开,write back. 所以每一个写命令都可以选择writethrough or write back.

TOP

引用:
原帖由 diy99 于 2006-11-13 18:00 发表
Scsi命令 cdb = 0x2a 写命令. cdb有一位Force Unit Access,FUA为1,磁盘缓存关闭,write through. FUA为0,磁盘缓存打开,write back. 所以每一个写命令都可以选择writethrough or write back.
DIY99把SCSI spec吃的蛮透彻啊!
顶!!!
其实磁盘里面的缓存,相对于控制器上的大缓存,它对于效率性能的提高不是这么重大;也许,它而对于弥补磁盘机械操作而导致的性能瓶颈,作用更大!

TOP

发新话题