暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

传统备份?虚机备份?云原生备份?谁主沉浮

Velero中文社区 2021-07-09
364

灾备行业的起源早在上世纪70年代,备份技术在历经几代的基础设施架构的变革后也相应的发生了迭代。从最初的传统备份,到虚机备份,再到如今云原生时代的容器备份,技术架构分别具有什么特点 ,本文将分别进行阐述。



    现代意义上的企业级备份技术起源于上个世纪90年代,当时主流的企业IT架构都是围绕若干知名的企业软件和中间件而构建。从数据备份的角度,也是以这些企业软件和中间件为重点进行精确保护。这一代的备份技术的特点就是采用客户端/服务器模式,客户端为不同的企业软件和中间件定制,和它们直接通讯,获取变更的数据,然后传输至备份服务器进行存储。在服务器端,也会进行加密、压缩、去重一些高级数据处理功能。下图是一个典型的传统备份架构示意图。

    传统备份的优点是和企业软件/中间件配合的非常密切,所以数据的一致性和可恢复性非常好,同时备份效率很高,只备份应用需要备份的数据。但是站在现在的角度看,传统备份的缺点也很明显,一方面是恢复速度慢,另一方面是可扩展性太差。恢复速度慢是因为恢复过程需要用户先把应用恢复好,再用应用的接口把数据灌回去,这样就导致恢复过程比较漫长,RTO不好。可扩展性是因为需要为每个应用定制化客户端,备份软件开发的速度无法跟上互联网和开源大发展带来的海量新技术方案的需求。


虚机备份


    大约十年前,IaaS的大浪潮带来了虚拟化架构的普及,以Veeam为首的创新者嗅到了新的机遇,开始考虑以一个完全不同的思路来解决备份问题。

    因为应用都运行在虚机里面,所以如果能备份和恢复虚机,就能把支持宕机一致性(crash-consistency)的应用恢复。所幸,大多数新兴的互联网应用都支持宕机一致性,所以以CDM为代表的虚机快照备份技术蓬勃发展。基本的技术原理就是备份软件直接对虚机做快照,或者结合外置存储的快照功能来备份数据;恢复的时候,可以直接用虚拟机快照把虚机快速加载起来,而不需要额外做恢复应用和恢复数据的动作,所以恢复速度很快。同时利用虚拟机快照可还以在不同的环境起虚机来做数据重用,比如测试、数据分析、数据验证等。另外一个好处是,备份和恢复都在虚机层面做,不需要直接跟虚机里面的应用打交道,直接就支持了大量的新软件生态。下图展示了虚机备份的架构和原理。



容器和云原生备份


    近两年来,云计算从虚拟化和IaaS为基础的云计算1.0向以容器和K8s PaaS平台为核心的云计算2.0进化,很多时候,云计算2.0也被称为云原生时代。




到了云原生时代,基于虚机的备份方案又遇到了新的挑战:


  • 容器的粒度比虚机小,是由k8s这样的容器平台自动调度的,应用跑在哪个虚机上对用户是不直接可见的,同时容器平台会动态进行负载均衡、故障恢复等,容器的部署会动态的发生变化。这样对虚机备份就不工作了。
  • 容器是以应用为中心的,在非常流行的devops场景下,容器的部署和管理在应用开发人员这里,他们需要的是自助式和高度自动化的技术设施服务,无法回到过去,要去跟运维的团队反复沟通的时代。所以需要提供自助式的备份服务。
  • 应用的横向扩展,虚机的备份方式无法提供这样的灵活性。
  • 和生态的集成。首先得容器化,自动部署。同时,需要使用云原生生态里的通用方式来提供运维和监控界面,否则就很难被客户接受。


虚机没有接口到应用去静默来保证数据一致性,虚机备份要求宕机一致性(crash consistency)。


容器时代,我们需要一个全新的方案,我称之为第三代备份方案。它必须本身是云原生的,和k8s生态可以很好的集成。同时,我们可以利用CDM的思路来对容器进行快照,兼有第二代备份技术的优点。同时,容器是直接面向应用的,我们可以通过一些简化的容器应用接口,很方便的实现应用的数据一致性。比如我可以实现一个容器的静默接口,快照的时候可以达到数据一致性。

因为是面向应用的,我们只需要把应用相关的数据打包备份起来,包括缺少image和配置信息(config map)在一起,这样在任何支持k8s接口规范的云平台上都能恢复起来。

更多velero相关技术讨论,敬请关注velero中文社区官方网站:


文章转载自Velero中文社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论