Moebius数据库多活集群

背景

数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为“IT的心脏”。因此,让数据库安全、稳定、高效地运行已经成为IT管理者必须要面对的问题。数据库在底层架构层面需要满足以下几点建设要求:

安全和可靠不能因为服务器的软硬件故障导致数据丢失和业务中断;

容灾:多数据中心间的数据同步,某一个数据中心出现故障后,可以在另一个数据中心快速拉起业务;

读写分离(报表分离):把接口程序、报表程序、集成平台数据抽取、大数据运算等高消耗的查询语句分离到备机执行,从而避免对主服务器的性能消耗以及造成的阻塞和死锁;

负载均衡需要多台服务器同时负载并发请求,降低单台服务器的压力,提升系统整体性能;

弹性扩展通过增加服务器的方式应对数据量或者访问量增加带来的性能瓶颈。

Moebius(莫比斯)

Moebius数据库多活集群是格瑞趋势为SQL Server数据库研发的能够同时满足可用性、数据安全、容灾、读写分离、负载均衡的一站式多活集群。集群的名字取自Moebius环,寓意无限扩展。

      Moebius采用“share nothing”架构,每个节点的SQL Server服务独立安装,使用每个服务器自己存储介质内的数据库文件。不基于共享存储设备,也不基于磁盘镜像等功能,通过SQL Server的日志同步技术实现各节点中数据的一致性。在主节点写入数据时会产生日志,Moebius捕获并传输日志到其他节点,并通过REDO技术把日志转换成数据。因此每个节点的SQL Server服务都是启动的,数据都是“活”的。Moebius有实时和准实时两种同步方式,不同的节点可以使用不同的同步方式。

       Moebius 通过“网络心跳”及“仲裁机制”实现故障监控,当侦测到某节点发生故障并经过仲裁后,将此节点剥离出集群,如果故障节点是主节点,则会进行自动故障转移,重新选择健康的节点作为主节点。节点故障恢复后会自动从主节点同步差异数据,同步完成后加入到集群中。

       Moebius的调度引擎支持连接级和SQL语句级两种调度方式,通过规则的配置,在不改动或者少改动应用程序的前提下,透明的实现读写分离、负载均衡。
 

Moebius数据库多活集群_第1张图片

功能亮点

故障切换

  • 多节点仲裁、文件夹仲裁、共享盘仲裁三种仲裁方式确保故障切换稳定准确;

  • 每个节点都是活动的,故障切换时,辅助节点不需要经历挂载磁盘、启动实例、初始化数据库等步骤,在10秒内可完成切换;

  • 可以和告警系统对接,故障切换时及时通知系统运维人员。

数据同步

  • 充分利用SQL Server特性,只同步日志,不同步数据,同步数据量小,同步速度更快;

  • 实时和准实时两种同步方式,准实时同步方式支持恶劣网络条件下的断点续传;

  • 同步过程中数据压缩,带宽消耗更小;

  • 节点多活,可以随时在辅助节点上执行查询语句验证数据同步。

Moebius数据库多活集群_第2张图片

读写分离&负载均衡

  • 在集群中通过配置规则的方式实现读写分离和负载均衡,不用或者少量修改应用程序;

  • 规则支持正则表达式编程,可以从数据库名称、客户端主机名、登录名等多种维度进行配置;

  • 多台服务器负载均衡,同时负载并发请求,提升整体性能。

Moebius数据库多活集群_第3张图片

软件价值

高可用服务器出现故障时,快速切换到正常节点,确保系统持续运行;

高数据安全:有多份一致的数据,确保数据足够安全;

高用户体验:通过读写分离和负载均衡,提升系统性能,大幅减少阻塞、死锁等问题,给业务系统带来高效的用户体验;

高扩展性:当现有服务器资源不够时,可根据需要随时添加服务器节点,增加处理能力;

低系统总体拥有成本TCO

    1. 集群不强制需要存储设备,可以用性价比更高的SSD盘,节省存储设备的开销;

    2. 可以充分利用原有服务器组建集群,避免资源浪费;

    3. 可以用多个廉价PC服务器代替单一的昂贵服务器,节省硬件成本;

    4. 不需要再购买双机、备份、容灾等其它软件。

常见问题

虚拟化\超融合平台下还有做Moebius的必要吗?

虚拟化或者超融合虽然能够保障可用性和数据安全,但本质上提供的是一个单数据库服务器。如果有在SQL Server层面的容灾或者读写分离、负载均衡的需求,就是有必要的。

Moebius兼容虚拟化\超融合平台吗?

兼容,Moebius的节点可以是物理机,也可以是虚拟机,或者是两者的组合。

做了Moebius后还有必要做存储双活吗?

如果存储设备只是为了数据库服务器提供的,那么是没有必要再做双活的,因为Moebius的数据就是多份的,既能保障数据安全,又可以随时验证数据的一致性。可以让每个Moebius节点各接一个独立的存储设备,这样既节省了双活模块的成本,又提升了磁盘空间的利用率。 

你可能感兴趣的:(数据库)