首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

海量小文件备份世界难题,居然有人说解决了?我不信不信了

您是否曾想过,为什么两个容量相同的文件系统,备份所需时间却大相径庭?这一切都归结于被备份文件的大小。在容量大小相同的情况下,包含大量小文件的备份集比包含较少大文件的备份集需要更长的备份时间。为什么这么说呢?主要原因是碎片化,另外文件越多,打开文件、读取元数据、分配和记录每个文件的数据所需要的资源开销就越大。很大一部分的磁盘活动可能只是花在搜索文件的位置上,而不是执行实际的备份。

大家也知道,所有的文件备份之前都需要扫描,而扫描时间和文件的数量基本都是正比的关系,加上漫长的备份时间,因此可能一个晚上你都无法完成一次千万文件数量级别的全量备份。虽然现在大部分的备份软件都支持永远增量的备份方式,假设每天修改的文件不多的话,增量备份的文件数可能并不多,但是,文件扫描的工作量并没有减少,也就是每天做一次增量备份也是很困难的事情。

为了解决海量小文件的备份难题,业界推出了很多解决方案,但都有一定的局限性。

1、 利用块级备份(需要配合文件快照),把文件备份变为块的备份

现在很多文件系统都支持快照,如果能够直接利用快照技术,把对文件的备份变为对块的备份,将会大大减少备份的时间,也大大减少文件扫描的时间。

与传统的文件系统备份相比,当文件系统有大量小文件时,块级备份可以减少扫描时间。此外,与文件系统增量备份相比,如果文件系统有非常大的文件,块级增量备份运行速度更快,备份的数据更少,因为只备份变动的块。

但是,块级备份也有不足:

在备份卷上的部分文件或文件夹时,块级备份可能并不有用,因为块级备份利用的是整个卷的快照。

无法支持文件级别的细粒度恢复。

备份软件支持的NAS快照有限。现在,很多NAS是有快照功能的,但是,由于NAS快照接口没有标准,需要对接,因此,备份软件支持的NAS快照不多,特别是国内的NAS厂商,基本都不在备份厂商的兼容性列表里。

对象存储基本都不支持快照,因此,对象存储里的文件也就无法使用块级的备份。

2、 采用NDMP专用协议加速备份

网络数据管理协议(NDMP)是由NetApp在几十年前发明的,它解决了NAS设备通常不允许第三方应用程序(如备份代理)在其操作系统上运行的问题。NDMP的想法是提供一个通用的接口,让备份应用程序可以用来在NAS设备上备份数据。这样可以将控制和数据路径分开,将数据流量卸载到SAN,无需通过备份服务器。许多备份软件厂商已经支持了它,使它可以被视为一个行业标准。

然而,它从来没有真正成为一个标准的方式,因为每个厂商都有稍微不同的实现方式。因此,备份软件也需要对接不同NAS厂商的NDMP实现。和支持快照一样的问题,备份软件的兼容性列表不够丰富。

NDMP是非常老的协议,现实中发现存在很大的局限性:

NDMP不是存储无关的。一般情况下,你不能从另一个厂商或有时甚至是另一个操作系统版本中备份数据并恢复到另一个阵列。

NDMP需要管理员权限。对于大型系统的备份没有问题,但对于还原却不是很好,特别是当用户想还原一个文件或只是一组文件时。

很多备份软件的解决方案都不对NDMP集的文件进行索引。可能你可以将内容表(TOC)与备份一起存储,但如果你想恢复单个文件,你必须将TOC加载到一个临时表中才能使用它。这可能非常耗时。

NDMP并不真正支持永远增量策略。这意味着你必须定期进行全备份(大约10次增量备份后需要做一次全备),这对于包含数亿文件的PB级文件系统来说是几乎不可能的。

NDMP是为磁带介质开发的。许多小文件被收集在一个大的tar文件中,然后可以存储到磁带上。对于今天的备份目标,如磁盘或对象存储,这不是一个好主意。

对象存储不支持NDMP协议,因此,NDMP无法利用这个技术。

正是由于NDMP的问题太多了,因此,很多新兴的NAS创业公司,如Qumulo,都不再支持NDMP协议了,而且采用快照差异API,把两次快照期间变化的文件信息告诉备份软件,减少增量备份需要的整树扫描时间,这样每次做增量备份就行。但是,这个也需要备份软件去对接支持才行。

3、 采用对象存储的多版本、多站点解决灾备问题

正是由于几十年来,都无法从根本上解决海量小文件的备份问题。因此,很多企业,包括公有云上的对象存储,都是自我解决备份的问题。对象存储都有多版本的功能,也支持多站点,通过这两个功能,基本就解决了海量小文件的灾备问题。

但是,这种方式在公有云中使用非常普遍,但在企业里,还是有很多现实的问题:

多版本打开后,如果数据频繁修改,系统需要占用大量的空间。一般,大部分的企业不愿意打开多版本的功能。

需要应用程序感知多版本,对应用程序的改造工作量比较大。

无法生成离线副本(即备份到物理带库上),满足不了某些金融企业的法规要求。

NAS都没有多版本和多站点功能,因此,这种方法对NAS不适用。

而且,大多数的国外的主流备份软件,都不支持备份对象存储的文件,都是把对象存储作为备份目标使用的。这个不太符合中国的国情,中国很多先进的企业,很多生产系统都是直接跑在对象存储上的,因此,其上面的数据也是需要备份的。

4、 多实例、多目录、多并发解决备份性能瓶颈

当所有的备份方法都无法满足备份速度要求的时候,企业还有一个选择,就是重新规划文件系统的结构。尽量建立更多的目录,每个目录下的文件数不要太多,这样备份软件可以采用多实例,多流的并发备份技术,提高备份的带宽。

这种方法虽然好,但有很大局限性:

需要应用对文件进行均衡存放,管理起来太复杂。

应用程序设计复杂,要管理多个目录,均衡不同目录的文件数。

大家可以看到,海量小文件的备份难题,经过几十年的发展,其实都没有很好的解决。虽然有很多种优化的方法,但局限性都比较大。

但是,最近听说爱数要推出一款全新架构的智能内容云产品AnyShare 7.0,较为完美地解决了这个问题。

我觉得不太可能,因为这是一个世界难题。但是,爱数说他们只是针对AnyShare 7.0产品自己的备份解决了,我觉得还是有一些可能的。因为我们知道,AnyShare底层的存储用的是对象存储,对象存储层面肯定解决不了,应该是在上层动了手脚,但具体怎么搞的,我也很想知道,估计大家也很想知道。但是,我问技术细节,他们都笑而不语。

他们只是告诉我,一切答案,将会在7月6日的AnyShare Family 7揭秘会线上直播时揭晓。我没有办法,只能拿出手机,默默扫描了一下参会二维码,提前预定直播席位再说。如果你也有和我一样的疑问,不妨和我一块去听听。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200702A0BBPL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券