新闻中心
技术洞察 | 云砺(票易通)SaaS平台ES灾备建设,为企业数据安全保驾护航
2023-12-13

云计算和大数据时代,数据的安全存储和高可用性成为企业发展的核心要素。云砺致力于为用户提供稳定可靠的企业协同SaaS服务,采用多层次、多方向的灾备策略,在技术架构中引入双ES(Elasticsearch)集群热备方案,覆盖关键业务的各个环节,成功实现灾备无缝切换,保证用户数据安全和服务的持续可用性。






本文将详细介绍票易通采用的ES集群灾备技术,以及其在实际应用中的优势和运行方式



01

灾备方案设计背景


在云架构的业务环境中,数据的安全性和可用性至关重要。Elasticsearch是核心数据存储和检索组件,通常情况下,在使用Elasticsearch集群的过程中,数据量的增长需要更大的存储空间和更高的处理能力,在面临硬件故障、网络中断或自然灾害等情况下,单一ES集群可能会导致业务中断和数据丢失。


为了应对可能的数据丢失或者服务中断,专业的SaaS公司需要有更加强大的灾备方案来保证数据安全。基于此,云砺技术团队决定实施基于Elasticsearch的双集群热备的灾备方案,这种方式的优点是可以实时备份数据,当主集群出现问题时,可以快速切换到备份集群,保证业务的连续性,更好地保障用户数据的安全性和可用性。




02

灾备架构设计及上线效果



▲云砺Elasticsearch灾备架构图



双ES集群热备的灾备方案上线后,云砺企业协同SaaS平台的业务稳定性和数据安全性进一步显著提升。即便平台的主集群出现问题,也可以在几分钟内快速切换到备份集群,并在任何时候进行数据恢复,无需花费大量的时间和资源等待数据备份完成,数据丢失可能性几乎为零。


| 高可用性提升:当生产ES集群出现异常时,快速通过DNS切换将业务应用切换至灾备ES集群,实现零停机切换,保证业务的持续稳定运行。


| 数据安全性提升:通过使用canal-server监听mysql数据库binlog,并将binlog数据写入kafka,再由自研的consumer消费kafka把数据写入Elasticsearch生产和灾备集群,实现数据的实时同步与备份,多方位保证数据安全。


| 恢复时间目标(RTO)提升:ES灾备方案能够在分钟级别内完成故障恢复,大大缩短了业务中断时间。


| 恢复点目标(RPO)提升:ES灾备方案能够在秒级别内完成数据同步,减少了数据丢失。




03

Elasticsearch灾备演练


1.1  ES全量数据备份/恢复



适用于需要通过ES snapshot恢复数据至新集群的情况,包括灾难恢复、数据丢失或损坏、升级或迁移、误删除操作、安全事件。


实现原理:直接备份源集群节点磁盘上的文件至对象存储,使用备份文件在目的端ES集群中进行恢复。





1.2  ES灾备集群切换


适用于秒级切换生产或灾备集群, 包括当生产ES集群异常、数据丢失或损坏时使用。


实现原理:将近期变化的数据存储在消息存储服务Kafka,通过自研consumer双写生产和灾备ES,保证了数据一致性。使用DNS切换灾备集群案,实现秒级切换ES集群。







1.3  灾备切换的方案和步骤


当生产ES集群出现故障时,需要将业务切换到灾备ES集群上。具体步骤如下:


  • 监控系统检测到生产ES集群出现故障,并向运维人员发送报警信息。

  • 运维人员通过DNS切换将业务流量切换到灾备ES集群上。

  • 运维人员启动ES查杀脚本,检查生产ES集群中的数据是否有异常,并尝试修复异常数据。

  • 运维人员修复完毕后,将业务流量切回到生产ES集群上,并将灾备ES集群恢复为备用状态。


1.4  慢查询查杀



自研Elasticsearch慢SQL查杀脚本TasKill.py,用于缓解ES集群压力,如图显示执行TasKill.py可迅速查杀慢SQL,降低ES CPU压力。该脚本可以自动扫描ES集群中的慢查询ID,并将缓慢查询任务杀掉。同时,自动化查杀也可以减少人工查杀的时间和成本,提高工作效率。





数据安全和高可用性是SaaS公司的核心竞争力。采用双ES集群热备方案是一种可行且有效的技术架构,不仅能够实现数据的实时同步和灾备切换,还能保障业务连续性和系统高可用性。


通过实施Elasticsearch集群的灾备方案,云砺企业协同SaaS平台的业务稳定性和数据安全性得到进一步稳固,ES服务RTO和RPO均达到业界水平。未来,云砺技术团队将不断优化和迭代技术,持续为用户提供稳定可靠的企业协同SaaS服务,助力企业实现业务平稳快速发展。