发新话题
打印

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

lele5我想问一下

这样如果一旦在发送过程中断电,重新起来的时候控制器还是要把这个读取命令再发一次,还是可以读取完整的数据

重启后给谁发?哪个进程接受数据?

再说一下数据一致性。如果hardware cache把什么都做完了的话,那数据库就不用记录日志了。文件系统也不用journalling了。一致性全由hardware cache解决,多好啊。哈哈。

TOP

实际上控制器的cache存储了所有的数据缓存和指令缓存,也就是说在断电的瞬间它保留了所有当前状态,只要它的电池电部耗光,那么来电的时候是可以像没有发生任何事情一样继续工作的。
至于你后面说的问题,呵呵,大家都知道,这个世界上没有百分百可靠的东西,如果控制器cache电池的电用玩了呢,或者因为firmware设计存在某种BUG之类的都完全可以导致数据不一致。日志之类的是一种软件手段,而且,硬件上的数据一致性和软件上的数据库的一致数据性还是有一定程度的不同的,硬件手段也不是万金油。
我之所以解释这么多是为了说明硬盘的cache完全可以打开,只要设计得当,各家的设计可能都不太一样。如果用feelfall的逻辑,反正cache都是要关掉的,是不是所有磁盘的cache都不如干脆不要设计了,又没用,又增加成本,去掉后就一个磁钢片在那里转悠,多好啊。哈哈。

TOP

引用:
原帖由 lele5 于 2007-3-2 15:17 发表
读取和写入都并不存在一致性问题。读取的时候只需要把数据放到cache里,以cache的速度发送。控制器收完也要告诉磁盘“已接收完毕”,不然磁盘和控制器就以为没发送成功。这样如果一旦在发送过程中断电,重新起来 ...
是啊,还是没有解答如何以cache得高速度写入数据,除非WB模式

[ 本帖最后由 冬瓜头 于 2007-3-2 15:43 编辑 ]
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

开始喷水了
有人说关闭,有人说打开
孰是孰非
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

引用:
原帖由 lele5 于 2007-3-2 15:39 发表
实际上控制器的cache存储了所有的数据缓存和指令缓存,也就是说在断电的瞬间它保留了所有当前状态,只要它的电池电部耗光,那么来电的时候是可以像没有发生任何事情一样继续工作的。
至于你后面说的问题,呵呵 ...
.....我哪里说用不着hardware cache了,兄弟别这么走极端呀。扩展一下思路而已。
要说cache,整个OS的内存也都是cache,不同的是它还能保存中间计算结果等不用返回磁盘的数据。

我只是看到你说重启后还可以发送数据觉得有点问题罢了,不知道这样做的设计目标是什么。
OS重启后,应用的address space都变了,你再DMA过去成什么了。

TOP

盘阵得cache,电池保护,再次加电后,确实可以恢复未完成得IO啊
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

引用:
原帖由 冬瓜头 于 2007-3-2 15:41 发表


是啊,还是没有解答如何以cache得高速度写入数据,除非WB模式
这里我叫它write through是有一定程度的歧义的,我解释一下。
传统的write through是即要写cache又要同时写磁盘,都写完了才算结束。但实际上这里我们的控制器把数据写到磁盘cache上以后就暂时不理了(这个和WB模式有点像),和WB不同的是,由cache来负责把数据写到磁盘,而且必须是马上写,而不是像WB那样要被替换时才写回。等写完了才返回一个确认信息给控制器,控制器才确认任务完成。可是如果控制器老也等不到这个确认信息,设置一个计时器,比如一秒种以后还没收到磁盘的确认信息,那么就认为出现故障,就尝试重新写数据。这个过程中控制器都只跟磁盘cache打交道,通信时间也无非是这些数据在光纤里的传输时间,至于cache写磁盘,不是控制器关心的事情,它只想等cache那边的回复,在等的过程中又可以和其他磁盘高速通信。整个过程只有控制器受到确认信息才算终结,否则就不断尝试写磁盘。这样是不是解释清楚了?

TOP

引用:
原帖由 feelfall 于 2007-3-2 15:54 发表



.....我哪里说用不着hardware cache了,兄弟别这么走极端呀。扩展一下思路而已。
要说cache,整个OS的内存也都是cache,不同的是它还能保存中间计算结果等不用返回磁盘的数据。

我只是看到你说重启 ...
呵呵,看来我误会你的意思了,你指的重启是主机的重启啊,呵呵,那就是你说的数据库log的作用了。通常我们的计算环境里面是双机连接一个盘柜,一个主机挂了会切换到另一台上,这个过程中很难保证不丢数据,log的作用之一就是告诉主机把没做完没生效的操作重新做。
而我所说的掉电是盘阵掉电,主机不掉电的情况。
这里需要说的是很多人的双机都放在一起,电源也是一个,这样只能规避单机的故障,但是如果两个主机一起挂了,那神仙也没办法。所以说异地的重要

TOP

引用:
原帖由 冬瓜头 于 2007-3-2 15:57 发表
盘阵得cache,电池保护,再次加电后,确实可以恢复未完成得IO啊
可是lele5说的是读取操作啊,‘读取’操作是哪儿往哪儿啊。你们说的是写操作吧?.......
我觉得一个方案,机器都在一起,是不是应该设计成应用服务器不掉电而存储设备掉电。
大家继续讨论

TOP

咱本来就没讨论应用服务器掉电的。咱讨论电源不共用,设备都在不同的地方,地震也不会把主机和存储同时当掉的情况。同时当掉还是那句话,神仙也没办法。主机的问题可以用双机解决,所以我们讨论主机不当,存储当掉的情况

[ 本帖最后由 lele5 于 2007-3-2 16:16 编辑 ]

TOP

发新话题