其实主要取决于用什么技术什么架构来实现双活,比如存储层用什么技术、数据库用什么技术、应用负载用什么架构等等。不同的场景下需要注意的问题不尽然相同。但是有几个通用的关键点,那就是双中心之间的延时要控制在理想范围内,双中心架构下的集群仲裁不要出现不一致的情况,数据复制过程中的关键处理技术等等。
收起双活有很多种类,存储双活,数据库双活,应用双活等。
如果是应用双活,倒是比较简单,打通网络大二层即可,链路质量到不是考虑的重点
如果是数据库双活,应该结合底层存储双活技术来考虑架构了,数据库底层存储的共享是用基于TCPIP网络的实时复制,来实现底层存储的双活,还是通过底层存储的自身双活技术来实现,这个是需要考虑清楚的,像DB2 PURESCALE就是基于GPFS NSD盘间的TCPIP网络复制实现了底层存储的双活,而ORACLE RAC也有结合底层SVC ESC,借助底层存储的双活,和自身的数据库双活来实现的。像这种双活建设,第一个要考虑的就是链路的情况,还有就是上层应用连接数据库的负载,最后还要考虑两个数据中心的应用层请求的引流方式等。总之不是几句话就能讲清楚的,各个环节都要配合。
如果仅仅是存储双活,到不去过多考虑数据库和应用层的事情,主要还是两个站点间的距离,目前真正落地的存储双活,站点间距都不会太远,10-20KM左右,业务的TPS还I/O流量,尤其是写的I/O流量和读写比例情况都是要考虑清楚的。
简单谈这么几点。