您好,有两个问题请教下:
1.之前的MM和GM,两个存储的关系是ACTIVE-STANDBY,而存储双活则为ACTIVE-ACTIVE,同时为上层的数据库或者应用提供读和写,对于读来说,当然没有问题,对于写的话,存储双活内部的“锁”机制会使得两个存储的块数据都是一致的。一边对存储写的IO时,会将该IO同步至另一端,再返回,最后响应主机,完成整个写周期,这期间,该IO所写的存储块会被标记,表明正在被写,另一端存储也需要写入该数据块时,会先读取该存储块的标记,如果正在被写,则继续等待,直到锁被释放,这个机制,你可以类似理解为ORACLE RAC或者GPFS的锁机制。“双活”可以理解为“并行”,但并不是指“同时”。对于数据库,并不是说可以简单上两套数据库+存储双活,就变为数据库双活了,需要搭配着来,数据库双活+存储双活,两者都双活了,而数据库双活+共享存储,还只是数据库双活而已,存储还是单点,或者ACTIVE-STANDBY。
2.而一致性的问题,不是由第三站点的仲裁节点来决定的。之所以存在第三站点,是为了防范两个站点间链路中断,造成的脑裂风险。