
存储层双活本质上是HyperMetro通过数据双写和DCL机制实现存储层数据的双活,两个数据中心同时对主机提供数据读写的能力。(即2端存储做集群、数据双写、数据一致性回滚)。
数据双写机制:应用服务器下发I/O请求时,可同时下发到本端Cache和远端Cache,从而保证本端Cache与远端Cache的变更数据一致性。
DCL机制:当某数据中心故障时,DCL可记录业务运行中数据中心的数据变更。等故障恢复后,同时跟踪变更数据同步到该数据中心存储设备中,从而防止数据在同步过程中出现遗漏。
当任何一端存储系统故障的情况下,主机将切换业务到正常的存储系统继续进行业务访问。同时双活可以通过另一端存储系统的数据,对坏数据进行修复,保证两个数据中心的数据一致。
这里面还有一个锁机制要和大家解释一下:
为了防止不同的主机同时访问同一存储资源,而发生访问冲突,需要设计锁分配机制来避免访问冲突,只有获取锁分配机制允许的存储系统才能写入数据。没有获取锁分配机制允许的存储系统需要等待上一个写I/O完成,待锁分配机制释放之后才能重新获取锁分配机制允许。