想咨询,如果企业选用了存储虚拟化方案,在构建两地三中心(或异地灾备时),是否建议采用存储虚拟化统一部署灾备方案,实现存储灾备(或双活)?也想了解到具体目前此种实施方案的成功案例多吗?或者是针对存储虚拟化的厂商给出的最佳实践(包括异地灾备),非常感谢
在这个问题上,首先得看数据库的工作方式:
如果想实现拉伸的数据库集群,也就是说两个数据中心的数据库节点共同组成了一个集群,比如说ORACLE RAC。那么就得实现存储虚拟化集群。无论是操作系统层还是ORACLE的ASM是没法儿实现远距离的存储镜像。但是使用哪种存储虚拟化集群呢?是类似VPLEX的模式还是类似SVC、NetApp MCC的模式呢?如果是VPLEX,存储虚拟化节点之间也是一个AA的集群,它可以两边同时写入,但是这样就会照成数据库层和存储层两层内都会有数据竞争。如果是SVC,那么存储虚拟化节点在同一时刻只能由一边写入,也就是说数据库节点写入的时候,必然有一边需要跨数据中心远距离写,而且存储虚拟化节点还好把这个写再同步回来,保证两边存储数据同步。这样就等于数据写入走了两个来回。很麻烦。
目前这种两边都写入的双活方案,很少。大部分的解决方案都是数据库的单边写入。故障时刻热切换。或者是读写分离。
收起这个看应用场景的需求,如果有数据库的延伸需求,则可以跨数据中心做同城两地的虚拟化统一部署来实现双活。如果没有数据库的延伸,则可以考虑实现网络双活切换和数据同步即可。至于异地灾备,限于网络条件一般都是异步数据同步,不考虑双活。考虑到性能方面,应尽量将所有的数据I/O在单个数据中心进行处理,以达到性能较好。灾备端则使用快照方式,进行非实时数据的查询采集,出现故障时则通过F5全局流量导引至异地数据中心,实现数据的高可用。
收起