Python 还能承担下一个时代的发展重任吗?Mojo 语言的横空出世对 AI 研发生态有什么影响? 了解详情
写点什么

谈谈 UCloud 的秒级在线快照服务

  • 2015-11-03
  • 本文字数:2998 字

    阅读完需:约 10 分钟

此前,UCloud 的云主机需要停机才能创建快照,但对于已经在线上运行的业务来说,代价太大了。为此,UCloud 推出了数据方舟。数据方舟是一个类似于 Mac 系统 TimeMachine 功能的在线备份服务,指可以通过此功能,将系统恢复到之前的某个时间。数据方舟将为用户提供便捷快照功能,支持用户恢复到 12 小时以内的任意 1 秒,当天之内的任意 1 个小时,3 天之内的任意一天 0 点,以及用户手工创建的 3 个快照的时间。近日,InfoQ 记者采访了 UCloud 基础存储部研发经理蒙晓净。本文根据采访整理而成。

受访嘉宾介绍:

蒙晓净,UCloud 基础存储部研发经理,负责云硬盘、对象存储等存储产品的研发及运营,关注存储、云计算等相关技术。

InfoQ:为什么主机它需要一个在线快照的功能?

蒙晓净:通常我们会在主机上存储着很多的数据,万一数据不小心被弄丢了,比如说误删除或者发生了被入侵破坏的情况时,这将导致数据的丢失。一旦发生数据丢失的情况,如果没有备份,那这个经历就很惨痛了。如果丢失的是核心数据,甚至很可能一家公司就因此而跨掉了,这些都有可能。所以,快照备份非常重要。

然而传统的快照备份,为了确保数据的一致性,通常是需要停止业务进行,或者是在快照备份期间对系统性能有较大影响,而不能正常对外服务。这使得用户对快照备份陷入了“想用却又担心影响业务”的两难境地。针对以上提到的问题,如果主机的快照能够在不影响业务运行的情况下在线进行,那么主机的数据才会更有保障,快照备份对用户才会更具有实际价值。

InfoQ:现在推出的数据方舟它有哪些可以让人兴奋得地方呢?

蒙晓净:目前,市场上有不少这种快照的产品,其中很多产品也是支持在线的,但一般是需要用户指定一个固定的时间点去做快照备份,或者提供自定义接口的方式,让用户根据自身的业务需求去编写脚本从而自动触发一次快照备份。正常来说,它能够解决一部分情况,做到一定程度的数据保护。但是灾难的发生是不能预期的,很有可能事先备份点中并没有很合适的备份点去恢复,即便进行了恢复也仍会丢失不少数据,为此我们更需要对数据做一个连续的保护。

数据方舟,是一个为云主机提供连续数据保护的一项服务,它令人兴奋的地方除了定期快照、在线快照这些功能特性以外,它最大优点是,在不影响整个磁盘性能的前提下,可以做到以下几方面的保护:1.
我们可以恢复三天内的任何一个 0 点;2. 24 小时内的任意一个整点时刻; 3.
甚至是恢复到 12 个小时内的任意一秒。一旦发生灾难的时候,用户可以根据实际的情况去选择备份,从不同的粒度去找回数据,避免数据丢失。

InfoQ:快照功能的技术难点在哪里?

蒙晓净:基本上有两个难点:1. 在尽可能不影响线上正常业务的前提下,尽可能快的完成快照; 2. 快照恢复最好能够恢复到用户最想要的时间点,或是尽可能接近的时间点。

InfoQ:面对这些技术难点,应该如何解决呢?

蒙晓净:目前快照有以下几种方式:一种简单的方式是停机进行全量备份,这就意味着用户要停止所有的在线业务,这种方式通常会消耗很长时间,而且会影响到系统正常运行。为了解决这种简单方式存在的问题,业内一种常见的方法是通过索引的方式,将某个时间点的数据存储位置记录在一个索引上,并使这部分数据不会再写入,而对于新数据则使用 CopyOnWrite 写入至新的空间,这样这条索引就相当于一个备份点。最终一个个备份点通过索引的层级关系去关联。这种方式能做到秒级生成快照,从另外的角度看也可以理解为全量加增量的方式。但这种方式有一个缺点,随着备份点的增加,索引链的维护成本会越来越高,同时读取没有被更新的数据也会有不小的开销。

所以,还有另一种方法是,新数据仍写入到最初分配的位置,但在写入之前,会把旧数据拷贝到一个专门的存储位置上,并用索引记录起来。

基于上述提到的处理方式,数据方舟根据自身的业务特性做了相应的技术优化处理。简单的说,虽然整体表现上也是基于全量加上多个增量的,但为了减少备份链的维护成本,它还会定期对备份点进行合并处理,借此也可以优化恢复速度。

InfoQ:快照为什么需要精确到秒级?

蒙晓净:精确到秒级,是从用户的体验出发的,精确到秒级的目的是让用户可以根据自己想要的一个精确时间点去选择恢复数据,这样能最大限度的让用户的数据得到保护。

InfoQ:“12 小时以内的任意一秒,当天之内的任意一个整点时刻,3 天之内的任意一天 0 点” 这样的策略当时是如何制定的?

蒙晓净:制定这个策略,是从两个方面考虑的:一方面是真正遇到数据灾难的时候,用户可以根据实际情况选择各种粒度去操作;另外一方面也是从我们自身的成本去考虑。

如果灾难发生,大部分时候,用户基本能在短时间内发现,12 小时相对来说已经是一个比较长的时间了,正常来说发现问题可能会在几个小时之内,甚至更短的时间内。只要能恢复到出问题之前,那么数据就得以保障。

此外,我们还有按小时和按天几个粒度的机制,在超出了 12 小时以外,依然能有足够的备份点保证用户的数据安全。事实上,我们是可以做到更长时间内的任意一秒的恢复,或者是更长时间的按天、按小时备份保留,但出于成本考虑会暂时会做一些限制,后续也会逐步根据用户的需求反馈考虑做进一步的放宽延长。

InfoQ:维护这么多快照是否会严重消耗系统资源?

蒙晓净:这个问题是存在的,但这里主要是消耗存储资源,对云主机本身的资源基本没什么消耗的。因为本身我们会对很多快照进行存储,这个是有一定的成本所在,但是我们做这个产品的初衷是为了更好的保护用户数据,对于这些成本的付出,我们觉得是值得的。

另外,在存储这些备份的时候,我们会通过一些方法去降低这个成本。比如从系统自身的逻辑设计来减少存储的数据量。数据方舟的恢复分为多个粒度:按天、按小时甚至到按秒,那么我们最终是在维护一个全量的基础上,系统根据这个全量去不停的迭代增量,通过这个方式以达到一定程度的减少存储数据量的目的。

同时在增量期间,对于同一个磁盘位置的数据写入,我们是可以做一些合并的,这也是业界比较常规的做法。此外,还会使用一些压缩算法,进一步的减少实际存储的数据量。

InfoQ:针对同类的产品,数据方舟的优势有哪些呢?

蒙晓净:从我们现在对比来说主要有以下两点:

第一点,使用更方便快捷,用户只需要在创建云主机的时候打开这个功能。功能启动之后,整个备份的流程是完全自动的,而且是实时的,不需要用户过多的介入。用户的运维人员也不需要像常规这样,需要确保每一个业务是不是都有定期的备份,并且去维护整套备份体系。这样用户可以有更多精力就放在自身的业务上,不需要投入过多的人力。

第二点,数据方舟能支持恢复到任意的时间点,最大限度的保障数据安全。

InfoQ:UCloud 下一步在存储方面的工作将会是什么?

蒙晓净:我们目前已有比较多的存储类产品,比如说云硬盘、云对象存储、云数据库和云内存存储等,现在又有了数据方舟。接下来,我们将一如既往的投入大量的工作来确保和提升现有产品的稳定性以及性能,这将会是我们一个主要的工作方向。其次,也是希望从用户在云平台的整个使用过程、实际业务行为或是架构中再去挖掘需求,然后把它们变成云计算的一个个产品化的服务。

InfoQ:您对 12 月份即将开幕的 ArchSummit 北京 2015 有什么寄语?

蒙晓净:ArchSummit 大会是业界很不错的一个大会,经常有很多技术亮点,能够告诉我们具体这些东西是如何实施的,将技术点分享给大家。我觉得整个形式和内容是不错的,很吸引人,同时也希望大会能够给我们技术人员提供更多的干货。

2015-11-03 19:082011

评论

发布
暂无评论
发现更多内容

为什么说企业需要实施知识管理?

Baklib

如何使用iMazing监督、配置器功能

淋雨

ios iphone

红海竞争下,「社交+」在中东泛娱乐 App 市场的出海新机遇

融云 RongCloud

白皮书 泛娱乐 出海

健康信息化不断建设——2022年8月互联网医疗月度观察

易观分析

医疗

西部省份数字化需求暴涨 首届828 B2B企业节见证企业数字化新浪潮

科技热闻

行走的Offer收割机!首次公布Java10W字面经,Github访问量破百万

Geek_0c76c3

Java 数据库 开源 程序员 面试题

他来了!袋鼠云大数据基础平台EasyMR正式上线

袋鼠云数栈

千亿流量并发治理!Alibaba实战Sentinel笔记,为微服务保驾护航

Geek_0c76c3

Java 数据库 开源 程序员 架构

数据中台与数据平台有什么区别?

雨果

数据中台 数据平台

企业知识管理怎样做?一些解决方案分享!

Baklib

荣耀开发者平台全面升级,加强分发场景服务与能力开放

荣耀开发者服务平台

开发者 手机 安卓 荣耀 honor

如何查询已经执行过的流程信息?

江南一点雨

springboot workflow flowable

架构三原则学习心得

Jack

架构 #架构训练营

易观分析对《上海市促进人工智能产业发展条例》的解读

易观分析

人工智能 上海

开源技术公开课丨Taier工作流的介绍

袋鼠云数栈

《软件开发的201个原则》思考:7.尽早把产品交给客户

非晓为骁

软件开发201原则

知识经济时代的基石:知识协同

Baklib

[iOS研习记]聊聊iOS中的Mach-O

珲少

Jmix 中 REST API 的两种实现

世开 Coding

Java Spring Boot Jmix 少代码 企业级开发

开源直播课丨高效稳定易用的数据集成框架——ChunJun类加载原理与实现

袋鼠云数栈

SaaS时代,您的企业与团队需要知识管理工具

Baklib

聊一聊新陈代谢

Taylor

创新 新陈代谢

易观分析互联网+慢病管理生态洞察,助力行业升级

易观分析

医疗

ChunJun&OceanBase联合方案首次发布:构建一体化数据集成方案

袋鼠云数栈

好的,DFS,也学废了!

掘金安东尼

前端 9月月更

架构---作业1

李某人

架构实战营

区块链商城dapp系统开发,代币模式定制

开发微hkkf5566

英特尔发力“系统级代工”,为芯片制造带来全新可能

科技之家

微服务框架搭建过五关斩六将—第一关(网关)

为自己带盐

微服务 网关 9月月更

开源项目丨ChengYing 1.1版本重磅发布:新增超多功能,全新优化体验!

袋鼠云数栈

实用五步法教会你指标体系的设计与加工

袋鼠云数栈

  • 扫码加入 InfoQ 开发者交流群
谈谈UCloud的秒级在线快照服务_服务革新_龙永昕_InfoQ精选文章