1.存储双活后,还有一个难点就是热点数据的跨站访问,实施了数据库和存储层同时双活,会出现数据竞争的问题,这样也降低了IO效率。这时候就要通过锁预取和缓存策略,通过较小的控制报文,向锁权限缓存节点申请写权限,并利用锁预取将部分区间的写权限缓存到本地。这样,后续的连续写I/O操作可快速的命中在本地,减少跨站点的数据传输和交互,做到读写分离,从而提升IO读写性能。
2.AA模式的双活存储,在某些特定的多重故障下,仲裁机制会优先保证数据的一致性,可能会将双活存储上的所有LUN都停止主机访问。所以,在设计仲裁模式的时候,强烈建议建立选择独立的第三方站点作为仲裁机,但也不能完全避免上述情况,所以,还要考虑强制启动,而强制启动端的存储作为同步源端,会在链路恢复后同步增量差异数据。
收起要做读写分离首先要明确为什么要做读写分离。读写分离是一种技术手段,而单纯的依赖技术手段是无法解决所有问题的,如果应用的读写比例严重失调,那么需要和应用开发部门相互协调。
读写分离的重点和本质,其实就是数据的同步。为了实现数据的实时同步,现有的技术可以在多个层面实现读写分离。例如,基于操作系统层、基于存储层进行复制或者基于应用分发或者基于数据库自身的能力的技术,都可以实现数据的读写分离。由于在数据同步的过程中,通常会涉及业务数据选择以及源端多种类型整合的问题,因此通常不建议使用操作系统层和存储层的复制来实现,在金融行业,比较多的是用数据库来实现读分离。例如Oracle基于日志的复制技术等等。
收起双活的两个存储都可以同时对主机提供读写服务,也可以选择一个存储作为写存储服务,另一个存储作为读存储服务,实现读写分离,这样的好处可以减少双活存储的写I/O竞争,降低写I/O时延。双活存储高可用的话,需要设置第三仲裁站点,可以用磁盘或者虚拟机来做仲裁,仲裁机制根据存储双活方案可以选择静态优先+动态仲裁双重机制来保障脑裂或者故障后的双活存储。
收起