数据库 频道

填补国内数据共享集群领域的空白有多难?达梦DSC做到了!

  在谈什么是“数据共享集群”、数据共享集群对高端数据库领域有多重要之前,我们先理清一个事实!

  这两年,国际形势复杂多变,我国虽然是智力资源大国,在很多高科技领域已经走在创新前沿,但底层核心技术受制于人。尤其是承载关键业务的数据库市场,太需要手拿把攥的“硬”技术,去打一场“翻身仗”。

  但是,就在我们对国产数据库信心满满的时候,有人却在泼冷水,认为国产化替代只是“表面热闹”,因为很多金融机构依然在采购Oracle。事实是这样吗?“去IOE”只是去了个寂寞?

  老生常谈的“去IOE”问题

  其实,去IOE并不是一个新话题,但似乎每次提起,都会五味杂陈,说不出来是什么滋味。一方面,对比IOE这种成熟的架构,我们确实技不如人,存在差距;另一方面,在新时期的国际贸易环境影响下,我们不得不做出新的选择,把核心技术掌控在自己的手中。

  好在,国产化技术虽然起步晚,但已经取得了突破性进展。至于,为什么现在还没有完全实现国产化替代?以达梦为首的企业,在国产数据库技术方面的突破和创新,让我们有理由坚信:国产化替代只是时间问题!

  “去IOE不是简单的开和关,国产化替代是一个过程!” 武汉达梦数据库股份有限公司 副总经理 徐钢认为,国产化替代不是简单的民族情节,而是要尊重客观事实。

  首先,从时间维度来看,还不到100%替代的时候。按照达梦以往经验,进入一个行业过去需要3-5年,在国产化浪潮推动下,周期会缩短,但仍需要至少一年时间。

  其次,技术迭代是一个相互认可的过程。从IT应用集成角度看,中国技术世界领先。IT集成商会以最高标准来衡量国产数据库品牌和技术能力。说白了,国产数据库厂商不会得到优厚的“国民化待遇”保护,在实际应用场景中,所有数据库产品的地位均是平等的,不会因为你是“国产品牌”,就会在硬性指标上降低维度。

  其三,用户生态的认可,需要积累。用户观念的转变,非一朝一夕。过去,如果用户选择Oracle,选型不需要承担任何责任,一旦出了问题,我们都会寻找自身原因,要么是服务没用好,要么是不可抗拒因素。但如果选择了国产数据库品牌,选型本身就是一件比较有压力的事情,需要承担巨大责任,哪怕是最底层的技术人员,只说了一句“对选型没信心”,最高领导绝对不敢签字。

  其四,客户自身的应用模式,从客观上增加了国产数据库品牌的认知周期。对于中国DBA、数据及应用架构师来说,他们只相信“眼见为实”,只有亲身经历过这个工程项目,经过实际技术验证,才会得出结论,认为哪些能用,在什么地方能用,到底能力如何。所以, 数据库应用实践本身决定,国产化替代不能一蹴而就。

  而数据库技术研发和应用之间,则是一个相互促进的关系。Oracle之所以越做越强大,是因为有足够的用户群去支撑,应用场景可以覆盖到各个行业,各个角落。而对于一家没有接触过具体业务场景的国产软件来说,根本不可能研发出贴合场景的应用。

  综上所述,国产数据库还没有实现100%的替代,这符合客观规律,从时间线和客户成熟度角度来说,我们还没到完全替代的程度。但从市场和客户的接受程度来说,我们也看到积极乐观的一面,那就是我们的国产数据库已经有很多成功案例在落地,国产化风潮已经起来了,这一历史趋势不可逆转。我们在高端数据库技术领域,已经与世界最顶尖级数据库比肩齐驱!

  DMDSC填补了国内高端数据库技术的空白

  过去,我们无法实现去IOE目标,最关键的因素是“技不如人”。尤其在关键业务场景,和Oracle还有差距。现在,我们正在缩小这个差距,达梦数据共享集群的成功推出,标志着我国高端数据库技术,已经达到了行业领先水平。

  ▲DMDSC架构图

  达梦数据共享集群,英文全称DM Data Shared Cluster,简称 DMDSC。主要功能和特点是,允许多个计算节点共享同一个存储数据,并支持故障自动切换,即使某一个数据库实例出现故障,也不会导致数据库服务中断。

  “从数据库技术实现来看,DMDSC解决的是多个计算集群问题,用户不用关心是单口,还是一个集群,每个库都遵循一个逻辑。” 徐钢进一步解释道,这种集群技术很难通过中间件的方式,或者其他聚合的技术手段,以及把成熟的数据库产品简单虚拟化,就能完成。它解决的是“库管”问题,即信息如何进入系统,如何取出去。而这个“库”,相当于是一个存储的概念。

  针对多个计算节点,我们如何同时去写一份数据?如何保证这些数据的一致性?如何去协调各种数据之间可能发生的冲突?从存储层来说,需要有一个完整的存储协议。

  目前,业界只有Oracle有这种共享集群的技术能力,Oracle是通过一个轻量级的文件系统,绕过操作系统直接去管理所有的存储信息,叫做Oracle ASM(Automatic Storage Management)。

  众所周知,数据库软件的本质是,在操作系统上运行一个进程,所有调用都是通过操作系统来管理,操作系统就是硬件和上层应用程序之间的一个封装层。而Oracle打破了操作系统和应用之间的界限,直接去管理存储本身。从存储底层的算法和协议来看,会更符合数据库软件本身的I/O操作特性。也就是说,面对一块完全没有经过操作系统和文件系统管理的存储盘,数据库系统能够直接对它进行访问和操作,实现了数据库在存储方面的改造。

  过去,为了确保事务的一致性,理论上的创新是排好队,一个一个去做,但在实践中不可能行得通,如果把一切事务变成单节点串行,性能会非常差。所以,数据库技术的内核,除了事务的一致性考量,还会涉及对并发协议的支持。

  数据共享集群之所以成为技术的制高点,最关键的是读操作不会被阻塞,同时实现了多版本的协议。确保从单机扩展到集群,不会出现节点之间的冲突,包括通过裁决机制实现节点之间的转换,比如通过缓存交换技术实现实例间的数据融合,减少I/O代价,提升整个集群的吞吐能力。

  数据共享集群的实现原理和云计算的主流思想相似,比如:在一个复杂任务中,云计算技术架构会把一个任务分解成多个子任务,数据共享集群也一样,只不过不是通过物理节点实现,而是通过多线程和内部的并行机制实现性能的支撑。

  DMDSC与Oracle RAC(real application clusters,译为“实时应用集群”)同构,更像是一个轻量级的文件系统,达梦叫DSC( ASM版)。DMDSC实现了MVCC多版本的协议,同时包括达梦自研的一些私有协议,可以被广泛应用于高并发场景。

  国产数据共享集群技术的前世今生

  DMDSC虽然是达梦现在重点推广的产品之一,但并不是一个从零开始的新品,而是经历了“十年磨一剑”的研发历程。

  2008年,我国举办了奥运会,外部环境是极力拥抱世界,国外厂商的先进技术成为国内市场的主流选择。另一方面,由于国产数据库产品缺乏行业核心业务的成功案例。国产数据库行业的发展落入“不成熟没人用,没人用不成熟”的循环悖论中。如何争取行业客户的信任,通过应用迭代来促进自身演进发展,成为国产数据库的发展瓶颈。那个时候的达梦,苦于生存和应用场景落地问题。

  之后,汶川512地震,达梦遇到了一个历史性机遇。国家电网启动了一个计划,涉及到智能电网调度技术支持D5000系统的建设方案,国家电网的信息管理部门决定做一个尝试,对国产数据库厂商进行能力评估,寻找能够满足符合电网生产业务需求的产品。这是一个标志性事件,使得达梦第一次进入我国重大行业的核心生产场景。在初期技术评估的基础上,国家电网启动了应用适配工作,以Oracle作为技术参照标准,以生产需求进行仿真,验证国产数据库的产品能力。在十几年前,这绝对是一个充满远见和勇气的决策。

  国家电网当时表示,使用国产数据库,他们早有心理准备,只要达到业务生产的最低需求就能接受,包括即使软件本身性能不行,他们可以投入更多人力去开发,通过硬件资源的购买补足软件的欠缺。但有一条不能接受,就是整个数据库集群的可用性和可靠性问题。

  实际上,可用性和可靠性是两个不同概念。可用性,是指任何时候数据服务不能中断;可靠性,是数据不能丢。为了解决实际业务问题,达梦提供了第一个集群解决方案,数据守护技术基本解决了数据可靠性和服务连续性的问题。但是,这个集群策略有自身的限制,就是在高并发写入场景下存在性能瓶颈,并且在故障场景下切换代价较大。

  客观地说,达梦提供给客户的数据库集群方案距离Oracle RAC还存在差距。然而,“需求驱动研发”是达梦团队的工作准则,必须下决心克服这个技术堡垒,不能让选择国产数据库的用户在应用需求上“降维”。从技术路径的选择来说,实现共享存储集群无法从外围框架入手,必须对数据库内核进行迭代。

  2009年初,达梦开始进行DM7的大版本迭代计划。整个代码的重构率超过85~90%,把整个基层的基础架构按照共享存储集群做了适应性的调整和搭配之后,再去搭建共享存储集群。

  经过近二十几个月的研发,彻底完成迭代,但依然没有正式发布共享存储集群。直到2012,经过4年的继续深耕,达梦才真正跨越了各种技术障碍,完成了共享存储集群。虽然,达梦的技术架构和Oracle相同,但Oracle只是一个参照性目标,具体实现路径全部要靠达梦自己去探索。

  DM7发布后,某省公安厅成为第一个客户,他们没有想到国内厂商还能做出共享存储集群。一直到2016年,第一个共享存储集群在公安、包括最高检察院的检务组开始上线。

  有了实际上线的案例,共享存储集群技术还需要高端行业的检验。2017年,某国有银行,把达梦和 Oracle RAC做了正面比较。并提出了更高要求,包括把故障切换能够做到10秒内的处理能力。然后,在服务可用性、连续性的基础之上,还要保证数据一定是零丢失。因为,银行关键业务绝对不允许一部分业务数据找不到了的情况发生。达梦按照高端场景生产需求,依次完成了研发迭代。

  经历了各种应用场景的历练,DMDSC也在不断进步。达梦在中航信测试的时候,又发现了新的问题,为了满足客户需求,达梦进行了更深度的优化,改进了集群的运维特性,对复杂场景的自适应能力以及减少人工干预,不断提升产品的成熟度。

  一路走来,数据共享集群技术,是一个精益求精、不断迭代的过程,是在技术研发和市场应用相互作用的过程中诞生的产物。这也是我们很多技术人尊崇的一种理念,数据库创新永无止境!

  集中式与分布式的恩恩怨怨

  值得一提的是,DMDSC共享存储集群技术之所以成为业界标杆,还有一个重要原因,那就是满足了很多企事业单位在管理上的需求,同时也迎合了这两年比较流行的分布式架构思想。

  分布式,本质上是一种思想。普遍的做法是通过应用的拆分,实现数据库的分库分表。也就是,分布式的核心就是物理上分开。但实际上,很多应用场景有聚合需求。采用什么样的架构,取决于各个企业的发展历程,和管理策略的选择。

  对于有着核心价值的数据来说,或者对于敏感度比较高的数据来说,把核心资产物理上分属多个机房,不管管理多顺畅,从风险管理层面考虑,很难想象。而共享存储集群技术虽然是集中式架构,但节点规模相对比分布式会少很多,能更稳定地支撑业务平台。

  从工程学角度分析,节点越多,系统发生的故障概率就越高。而从实际生产经验来看,集中式架构故障率更低,包括在存储性能方面的承受力,运维的支撑能力等等,都有更好表现。

  另外,集中式看起来和分布式好像是对立的,但其实共享存储集群技术可以根据业务逻辑去调整,集中式与分布式的最主要差别是协议的支持。比如:南方电网,在逻辑上,是集中式架构部署,但其实物理上也可以分开,实现两个计算节点相隔100公里以上。通过共享存储集群,也能实现“同城双活”的效果。

  目前,分布式似乎是主流趋势,但数据库是一个多元化的市场,不可能是一两个厂商,或者某一个技术架构独占天下。不同的场景,有不同需求。眼下,在数据库国产化浪潮推动下,快速实现替换,可能是大多数用户最直接的需求,是市场发展的主流方向。因为分布式架构改造涉及人力、物力、财力,即使是财力充裕的金融机构,全部进行分布式架构改造,依然是一个天文数字,根本不切合实际。

  当然,主推共享存储集群技术,并不代表达梦就拒绝分布式应用。在达梦的数据库产品家族中,除了共享存储集群技术,还有图数据库产品、文件数据库、内存数据库等,涉及到各个细分领域,包括支持最新的分布式架构。

  ▲达梦产品体系

  总的来看,在数据库国产化替代浪潮下,除了少量业务通过分布式架构进行业务创新外,简单替换将是一个新常态。换言之,在大面积的国产化数据库替代过程中,考验的是本土数据库技术的兼容性,以及整体架构对高端业务的支撑能力。而这一切,达梦DSC都做到了!

  活动推荐

  想了解更多关于数据共享集群技术在性能以及应用场景落地方面的表现,敬请关注2021年10月18日~20日在北京国际会议中心举办的第十二届中国数据库技术大会(DTCC2021)。武汉达梦数据库股份有限公司 副总经理 徐钢,将以特邀嘉宾的身份出席本次大会,并分享DSC的技术原理和最佳实践。

  历经十年的积累与沉淀,如今的DTCC已然成为国内数据库领域的技术风向标,见证了整个行业的发展与演变。作为顶尖级的数据库技术盛会,DTCC2021将继续秉承一贯的干货分享和实践指导原则,设置2大主会场,20+技术专场,内容涉及:数据架构、人工智能与大数据应用、传统企业数据库实践和国产开源数据库等。

  感谢各位技术达人的高度关注,期待您的热情参与!

  大会详情,请点击2021第十二届中国数据库技术大会 (it168.com) >>

1
相关文章