引用:
原帖由 林肯 于 2008-1-24 11:38 发表 
问题1 :耗费多少CPU呢,将数据从ram拷贝到nvram,然后加上描述信息这个逻辑是不复杂,但是其他磁盘系统都不会采用这种方法,因为这肯定是需要有时延迟的,对不
延迟肯定会有,至于可不可以忽略,谁主张,谁举证,请林总拿出证据,这一步消耗了多少cpu周期,延迟多少?
我现在说我的证据:
1 普通阵列写数据,是镜像写,也就是说左边写一个花费时间是A,右边写一个时间也是是A,两个写几乎是完毕,写到两个控制器的速度是一样的,所以整体时间=A
2 按照你的说法,反正netapp的nas有这么个机制,左边的数据写到机头的内存(不带电)里面了时间是A,然后算出来形成一个log花的时间是B,再写到右边的NVRAM里面去花的时间是,整体时间是=A+B+A , 远大于第一种方法的A
这就是证据,我不管B的时间有多少,反正普通的阵列就没有这个过程,而且你形成log的也是靠cpu的能力,只有形成了log才会写到另外一个控制器的NVRAM里面去。
这不论多少时间周期,nvram里面的log数据反正要算出来以后才有,就像刘翔跨栏和刘易斯百米,就百米往前跑当然要快,跨栏不管多块,要先向上跨个栏然后再跑,时间上是会有延迟的,冬瓜头你说呢。
林总的证据:
1 普通阵列写数据,是镜像写,也就是说左边写一个花费时间是A,右边写一个时间也是是A,两个写几乎是完毕,写到两个控制器的速度是一样的,所以整体时间=A
首先林总自相矛盾了。既然你要追究写nvram的延迟,那么为何不追究上面这句话中的延迟呢?普通阵列写数据,镜像写,怎么个镜像法?控制器之间怎么同步?除非在主机端同时发送两份IO到两个控制器,可以忽略其中延迟。否则不能。所以这个结论不成立。
2 按照你的说法,反正netapp的nas有这么个机制,左边的数据写到机头的内存(不带电)里面了时间是A,然后算出来形成一个log花的时间是B,再写到右边的NVRAM里面去花的时间是,整体时间是=A+B+A , 远大于第一种方法的A
林总不要弄混淆cluster和单机。我说的从ram复制到nvram,是从单机复制的。你说的是cluster,不一样。另外,程序执行绝对不是顺序的,是宏观同时的。所以既然你在第一个问题中说可以忽略,那么这里我也给单机情况下的这种复制忽略其时间,您不得不同意吧?
其次,说说cluster,cluster之间使用infiniband,我印象中其他有使用pcie的,我不认为infiniband延迟比pci高。所以您这结论也不成立。
这就是证据,我不管B的时间有多少,反正普通的阵列就没有这个过程,而且你形成log的也是靠cpu的能力,只有形成了log才会写到另外一个控制器的NVRAM里面去。
“反正普通阵列没有这个过程”,这就不对了吧,普通阵列两个控制器之间的通路是什么?能举证一下么?hds的是用什么方式?pci?或者直接就是内存总线么?
这不论多少时间周期,nvram里面的log数据反正要算出来以后才有,就像刘翔跨栏和刘易斯百米,就百米往前跑当然要快,跨栏不管多块,要先向上跨个栏然后再跑,时间上是会有延迟的,冬瓜头你说呢。
这个必须承认,延迟肯定有,但是不管data buffer ram多大,都不用保护,节省电力和电池成本。况且,延迟与否,通过测试,满足客户要求即可。
林总,不如您去和oracle沟通一下,让他们也把ram都保护起来吧,这样就不用log了,性能绝对提升一大截啊!