此前,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 大会是业界很不错的一个大会,经常有很多技术亮点,能够告诉我们具体这些东西是如何实施的,将技术点分享给大家。我觉得整个形式和内容是不错的,很吸引人,同时也希望大会能够给我们技术人员提供更多的干货。
评论