大家都有点钻牛角尖了
实际情况是这样的:
磁盘的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了。