guwenkuan
作者guwenkuan联盟成员·2020-09-23 10:46
系统架构师·金融

某银行核心系统同城双活建设方案及难点分析

字数 6736阅读 9847评论 3赞 9

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

9

添加新评论3 条评论

zhuqibszhuqibs软件开发工程师Adidas
2020-09-25 16:30
首先5ms确实太多了, 我们的idc和公有云的延时要求小于3ms,而且我们还不是要求双活。 其次,这个业务涉及的组件太少了,好像除了数据库就是存储了,实际上对于互联网企业, 还有redis、kafka、elasticsearch等等,而且kubenetes逐步成为行业主流,双活方案也要向之靠拢。再次,Oracle Rac如何跨地部署,极端依赖光纤的带宽和低延时。

guwenkuan@zhuqibs 关于延时的情况,在这里解释以下,实际上我们的物理裸光纤链路在存储交换机上fcping 是1.2ms(这个是真实的线路延时),网络层面ping是0.9ms, 写I/O在存储和主机层面要至少2个来回交互,写I/O延时在跨中心层面基本要3-5ms,我上面VPLXE 性能截图反映的是存储的前端写I/O延时,是2个来回交互的延时,ORACLE 远程RAC官方文档明确要求的是小于100KM 延时小于5ms,实际上我们的延时是1.2ms,远远小于官方的5ms延时。 “idc和公有云的延时要求小于3ms” 这个要求应该对应的是物理链路实际的延时,而不是存储对应的实际写1/O延时,如果实际链路真是5ms,数据库远程部署肯定是有问题的。 另外,上述文章主要是传统架构的双活,是金融行业的案例,开源组件没包含在内,欢迎继续交流,谢谢。

2020-09-29 12:41
ZhuJun2014ZhuJun2014存储工程师IBM
2020-09-25 14:31
1.站点间的响应延时怎么到了5ms。这个值太高了。一般双活的距离不超过100公里,运营商提供的链路延时一般不超过1ms。 2.写IO延时都到了4-10ms,传递到数据库的日志上,肯定会放大到更高的延时。数据库的性能是否有很大的影响。 3.存储仲裁winner设置导致的io pending是15秒,把misscount调整到45秒是否太激进。类似案例在某些客户的生产,碰到过io pending超过60秒的。这个时候,45秒的misscount肯定会导致数据库挂掉。

guwenkuan@ZhuJun2014 1、关于延时的情况,在这里解释以下,实际上我们的物理裸光纤链路在存储交换机上fcping 是1.2ms(这个是真实的线路延时),网络层面ping是0.9ms, 写I/O在存储和主机层面要至少2个来回交互,写I/O延时在跨中心层面基本要3-5ms,我上面VPLXE 性能截图反映的是存储的前端写I/O延时,是2个来回交互的延时,ORACLE 远程RAC官方文档明确要求的是小于100KM 延时小于5ms,实际上我们的延时是1.2ms,远远小于官方的5ms延时。 “idc和公有云的延时要求小于3ms” 这个要求应该对应的是物理链路实际的延时,而不是存储对应的实际写1/O延时,如果实际链路真是5ms,数据库远程部署肯定是有问题的。 2、我们在使用过程中没有问题,写I/O受距离限制,要2的来回交互,反映到存储上基本要3ms以上,这值没有问题,读1/O基本在1-2ms。 3、存储仲裁winner设置的是5秒,存储集群的默认仲裁触发时间会是15秒,这也是EMC官方建议的值,经过测试和论证过的。oracle层面我们经过测试,拔掉主机光纤30秒内,数据库没有问题,超过30秒数据库就会宕机,反映到主机层面就不是30秒了,肯定是远大于30秒这个数值。不知道您碰到的io pending超过60秒具体什么情况,欢迎继续交流学习,谢谢!

2020-09-29 12:57
lishappylishappy项目经理山东泰山钢铁集团
2020-09-25 10:09
感谢作者分享,非常宝贵且实用的经验。提到写两次数据性能影响以及数据库和存储集群之间仲裁一致性问题,并从各个层次和参数配置调整上讲解了如何解决及避免和很多感悟分享,可以让我们少走很多弯路,点赞。

guwenkuan@lishappy 谢谢,欢迎互相交流学习。

2020-09-29 12:57
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广