存储双活,怎么保证应用读取的数据一致?
收起存储双活考虑两个存储数据的一致性是基础,是必须要保证的:
存储双活为ACTIVE-ACTIVE,同时为上层的数据库或者应用提供读和写,对于读来说,没有一致性的问题,对于写的话,存储双活内部的“锁”机制会使得两个存储的块数据都是一致的。一边对存储写的IO时,会将该IO同步至另一端,再返回,最后响应主机,完成整个写周期,这期间,该IO所写的存储块会被标记,表明正在被写,另一端存储也需要写入该数据块时,会先读取该存储块的标记,如果正在被写,则继续等待,直到锁被释放,这个机制,你可以类似理解为ORACLE RAC或者GPFS的锁机制。“双活”可以理解为“并行”,但并不是指“同时”。