本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>
近日,我参加了一场数据库技术架构圈子活动中自由讨论环节,有一金融用户发问:既然数据库做了分布式改造,为什么还要下挂集中存储?这个疑问很普遍,其中某大行G行数据库架构师答复,之前Mysql用了大量服务器本地盘存算一体方案,但是发现了各种问题但是无法根本上解决,而采用分布式数据库+外置企业存储,即存算分离架构,确实带来诸多的好处:
1,存算分离后就可以纵向扩盘,更为方便。本地盘槽位有限,直接扩盘很难,需要扩多个节点,复杂度高。大容量数据库,数据存不下,用外置存储空间大得多,而且盘远多于本地盘,还做了上百块盘的存储池化,想怎么扩就怎么扩,灵活方便。比如历史库,容量几十TB,用服务器本地盘需要堆很多服务器,但是业务访问频率其实很少,服务器CPU利用率低,浪费严重,成本太高。而用外置存储,数据库节点节省下来了,容量按需配置,只需要划分逻辑LUN空间。
2,PC服务器故障率较高,而本地盘存有重要数据,服务器规模大了基本上每周甚至每天都会故障,那运维如何受得了?盘或者部件故障了,需要换新服务器、重建副本,影响生产网络,重建副本时间长,如果出现双重故障影响就大。用外置存储本身故障率低得多,6个9的可靠性,服务器坏了就将外置存储LUN映射过去,不用从零重建副本,只需要追增量数据。盘的故障比如慢盘、超时、亚健康等,存储系统能力在线诊断,快速隔离,避免夯住,而单盘、双盘失效,存储系统自动隔离重构完成,不需要使数据库节点切换和恢复,业务0感知,减少运维复杂度。存算分离后,专业的存储系统确保空间的稳定可靠,而数据库干好数据库本身的逻辑,就不用过于关注底层硬件、空间的安全可靠而做各种隔离、切换等加固措施,分工协同,本质上是符合专业的公司才能干好专业的活这个管理哲学和基本常识。
3,现在主从之间网络复制,从端受限就几块盘,回放时间可能很长,叠加跑批、备份,RTO长达几十分钟甚至小时级,这是难以接受的。卸载到存储来复制,一方面网络是FC/ROCE低时延无损网络,质量好,时延低。另外,存储多盘池化,备节点回放不存在IO瓶颈,上限性能高,回放就快,叠加跑批、备份压力也能支撑住。数据库节点不带本地数据,外置了,节点切换更快。
4,数据库技术还在不断演进,集中数据库简单易用,性能足够,金融机构90%的应用场景容量10TB以内,性能几千TPS以内,并不高。针对中型、小型金融机构核心交易集中数据库大部分场景其实也足够用。分布式数据库要避免频繁跨节点访问分布式事务,集群规模大,系统健壮性问题风险大,可观测性措施少,出了问题怎么快速定位?横向扩展性能损耗太多,运维复杂度太高,设备精简,运维才能好。
其实用户问的也有一个概念需要澄清,什么叫集中存储?它国际上正式的名称叫企业级存储系统,Enterprise Storage System,IDC咨询公司是这么定义的,根本没有集中存储的概念。反而存储系统内部架构就是一个分布式架构,数据怎么分布均衡,切片打散均衡到各个节点,计算节点有多路径均衡,前端共享接口卡均衡,数据均衡分布切片跨节点粒度细到64MB,盘级粒度4MB,各个节点各个SSD盘都能负载均衡访问,存储领域叫A-A架构,已经做了20年。企业存储系统可以多节点横向扩展,2节点,4节点,8节点,16节点等,也可以纵向扩盘。
反而现在互联网美其名曰的分布式架构是主从多副本架构,副本还挺多,但是不代表可靠,全主备AP,孰能称为分布式架构呢?因为根本不满足分布式架构的对等性特征,如下图。
免责声明:文章内容和观点仅代表作者本人观点,供读者思想碰撞与技术交流参考,不作为华为公司产品与技术的官方依据。如需了解华为公司产品与技术详情,请访问产品与技术介绍页面或咨询华为公司人员。