国产数据库采用外置企业存储还是本地盘?推翻架构牺牲可靠性真的值得吗?
毕须说  2024-07-27 18:55  发布于中国

近日,与一个金融用户交流,客户说,现在要求分布式数据库都不采用集中存储来承载,基本采用服务器本地盘存储。部分高层客户被某些互联网厂商忽悠说分布式数据库软件+服务器本地盘,采用3副本、6副本,甚至10几副本主从架构,试问这么多副本不需要大量成本投入吗?几%的利用率,多浪费,软件工程和算法怎么堕落到以写副本为荣?客户也担忧大量本地盘的可靠性和Hang死问题。堆这么多副本资源就真的可靠吗?就像现在已经21世纪了,早就过了“人多力量大”的年代了吧。

现在不少的客户的确认为既然做了分布式架构,哪能还挂集中存储呢?第一感觉就是集中架构存储是过时的落后技术,是真的吗?其实全球IDC咨询公司并没有定义集中存储这个概念,而是定义的Enterprise Storage System即ESS企业存储系统,Gartner公司定义的ESS叫External Storage System外置存储系统,现在改名叫Primary Storage System主存储。

2010年以来,国内基于开源SDS软件定义存储演进分布式存储,反而把原来的企业存储贴了一个大大的标签:集中存储,其实这是不正确的概念。打开企业存储架构,其硬件软件架构都实现了2节点,4节点,8节点,16节点甚至32节点控制器横向扩展,当然也能纵向扩盘框。软件架构基于LUN空间切片打散均衡工作到各个节点控制器(非写多副本),切片粒度细到64MB,盘级RAID更细粒度到4MB,这样业务就实现了所有接入控制器的负载均衡,这不就是分布式架构吗?存储领域称为A-A均衡架构,而这套架构存储厂家在二十年前都已经在努力精雕细琢的研发供大量用户使用,现在已经很成熟稳定了。

而当前大家人人讲的分布式架构其实在技术原理上是一致的,都是切片打散均衡到各个节点,只是换了名称,技术同源。但是仔细掰开看,反而当下这些着急忙慌做出来的都是切片多副本主从架构,并没有做到各节点A-A均衡,岂不是挂了个羊头,卖的是狗肉?

所以针对各种架构名称,建议还是打开来分析分析。其实近两年来,已经有头部客户意识到数据库大量采用服务器本地盘的问题:可靠性低,盘Hang死超时,多副本利用率极低,扩容需要扩服务器CPU,成本反而高,尤其运维管理复杂度高,故障扩散雪崩熬夜分析睡不着觉等。G行全面回归到分布式数据库+外置企业存储,即存算分离架构,而不是认为使用这个所谓的集中架构就落伍,反而是领先:1)数据库双集群是主集群和备集群隔离,不会因为软件BUG导致单集群拉远生产和同城都挂掉,升级也可以各自隔离升级,互不影响。

2)继承企业存储高可靠能力,存储统一管盘,所有盘池化磨损均衡,盘是肯定有故障的,有盘失效、亚健康、慢盘、FW BUG、IO hang超时等都能快速隔离故障,不会影响业务,这些故障通用OS是处理不好的。也能对盘进行健康预测,提前识别即将失效盘,主动排查。盘故障后存储系统就自动快速重构修复正常,而不会跨数据库节点进行频繁的读写,时间还长达数小时。最关键的是盘有任何问题都找得到厂家兜底,不至于出现找不到厂商来分析,甚至服务器盘挂了日志都导不出来,盘厂商无法分析的可笑事件发生。

3)采用存储系统的同步复制保障同城RPO=0,因为存储复制网络是FC,低时延可靠的FC网络,比IP网络质量好,不会拥塞丢包导致挂死。

4)计算资源和存储资源解藕,数据库容量不够用,直接扩盘即可,不需要扩一主几从的CPU,避免浪费资源,成本更低。

其实存储系统从计算系统分离出来是1990年代,经典的IOE架构,30多年实践证明是成功的,这套架构是符合人性的。数据库、OS、计算服务器、网络、存储等每个领域都有对应的专业公司,而且多数是500强公司,分层解藕,各自干好各自领域的专业工作。而当下部分人推存算一体架构,用不可靠的服务器本地盘承载核心数据库,海量的盘可靠性无人管,不是对客户不负责任吗?

因此,否定架构是不合适的,数据库存算分离架构符合专业的人干专业的事儿和资源管理一定精细化的而不是粗放型这两个基本常识逻辑,还有降本增效,当下及未来都是大势所趋。

文章来源:毕须说

全部回复(
回复
回复