一种大量小数据文件备份方法及恢复方法技术

技术编号:21832219 阅读:57 留言:0更新日期:2019-08-10 17:50
本发明专利技术属于计算机技术领域,提供了一种提高大量小数据文件备份效率的方法,其中主要利用块设备的快照原理和linux中多进程并行的优势结合了共享内存的技术实现了大量小数据文件的快速备份。本发明专利技术还提供了一种基于这种大量小数据文件备份的方法备份的数据文件恢复的方法。本发明专利技术不压缩源数据、保留了源数据完整的文件格式和属性的前提下,大大提升备份的速度,对比相同前提下的其它备份软件提升备份速度1/4左右,对比压缩数据的备份软件,恢复时的效率提升极大,本发明专利技术提供的方法备份文件后的恢复时间几乎为0。

A Backup and Restoration Method for Large Number of Small Data Files

【技术实现步骤摘要】
一种大量小数据文件备份方法及恢复方法
本专利技术属于计算机
,特别涉及一种大量小数据文件备份方法及恢复方法。
技术介绍
对于磁盘文件系统,无论读写都存在元数据操作。以EXTx文件系统写数据为例,向磁盘写入数据进行大量的元数据操作,包括更新inode目录、目录、inode和数据块位图等。定义有效数据读写率Pd=所需数据/实际磁盘读写数据,其中实际磁盘读写数据为磁盘元数据与所需数据之和。当操作连续大数据文件时,对元数据的操作开销可被庞大的数据操作开销分摊,但小数据文件的有效读写率小于大数据文件的,当小数据文件数量急剧增加时,对大量元数据的操作会严重影响系统的性能。从上面对磁盘介质的分析可以看出,磁盘最适合顺序的大数据文件I/O读写模式,但非常不适合随机的小数据文件I/O读写模式,这是磁盘文件系统在海量小数据文件应用下性能表现不佳的根本原因,其中小数据文件指大小在10M以下的文件。前面已经提到,磁盘文件系统的设计大多都侧重于大数据文件,包括元数据管理、数据布局和I/O访问流程,另外VFS系统调用机制也非常不利于LOSF(LOSF是一个列出当前系统打开文件的工具),这些软件层面的机制和实现加剧了LOSF的性能问题。大多数文件备分软件为了减少备份时间选择对源数据进行压缩传输,但针对小数据文件而言,这种方式并不能有效的提高备份速度,同时在恢复时需要解压源数据,造成恢复时间过长,不能及时的恢复用户生产环境。
技术实现思路
专利技术目的:本专利技术针对现有技术存在的问题,提供一种能够有效提高大量小数据文件备份效率的大量小数据文件备份方法。技术方案:为实现上述目的,本专利技术提供了一种大量小数据文件备份方法,包括以下步骤:步骤a1:存储端通过远程存储共享协议的方式共享逻辑卷到客户端;步骤a2:客户端将接收到的逻辑卷格式化成与源数据相同的文件系统并挂载;步骤a3:客户端程序通过stat检索源数据目录的索引节点,直接读取索引节点信息,生成需要传输的文件元数据,并将生成的元数据同步到逻辑卷上,同时生成对应文件及目录并保留文件和目录的所有属性;步骤a4:客户端中的应用程序分为server进程和client进程,server进程对源数据文件进行平均分配,分割成指定数量的源数据子文件,调用之前指定数量的进程分别对对应的源数据子文件进行并行数据传输给clinet进程,在各个线程的传输过程中采用共享内存实现数据传输,使用linux下mmap函数将备份磁盘上的对应文件空间映射给client进程;这样能够减少数据在内核空间和用户空间之间的拷贝时间。步骤a5:数据备份完成后,客户端卸载逻辑卷,存储端收回逻辑卷后对该逻辑卷进行快照,本次备份结束。进一步,所述步骤a1中采用的远程存储共享协议为iscsi(InternetSmallComputerSystemInterface,Internet小型计算机系统接口)或FC(光纤总线协议,下文简称FC)或IB(InfiniBand,下文简称IB)。其中,所述步骤a4中的指定数量是用户指定数量,或根据系统内存使用情况计算的默认值。进一步,所述存储端为逻辑卷管理的存储设备。本专利技术还提供了一种基于上述大量小数据文件备份方法备份的大量小数据文件的恢复方法,包括以下步骤:步骤b1:存储端检索指定恢复的时间点对应的快照,根据快照创建克隆卷;步骤b2:存储端通过远程存储共享协议将克隆卷映射给客户端;步骤b3:客户端直接挂载克隆卷为本地文件系统。工作原理:本专利技术利用块设备的快照原理和linux中多进程并行的优势结合了共享内存的技术实现了大量小数据文件的快速备份。本专利技术在检索源数据目录时直接读取ionde信息大大加快了检索速度,同时备份程序分为server(服务器程序)和client(客户机程序)两个部分,server部分负责元数据的传输,client部分负责元数据的接收并且在逻辑卷上新建对应的文件目录结构,两边同步进行大大提升了效率。在元数据传输结束后,开始真正的文件数据备份过程,利用linux进程开销小的特性,启用多进程同步读数据,并且将逻辑卷上的相应文件映射到内存中,利用共享内存的特性实现只对源文件进行一次读写操作即把数据写入到逻辑卷上,如此既保留了源数据的文件格式和属性,又大大提升备份的效率。有益效果:与现有技术相比,本专利技术不压缩源数据、保留了源数据完整的文件格式和属性的前提下,大大提升备份的速度,对比相同前提下的其它备份软件提升备份速度1/4左右,对比压缩数据的备份软件,恢复时的效率提升极大,本专利技术提供的方法备份文件后的恢复时间几乎为0。附图说明图1为本专利技术提供的大量小数据文件备份流程图;图2为本专利技术提供的大量小数据文件恢复流程图。具体实施方式下面结合附图对本专利技术做更进一步的解释。本实施例提供的实验硬件构架为:存储端:x86架构,os:centos7.4,硬盘:10T。客户端:x86架构,os:rhel72。如图1所示,从客户端备份一个100G/150万个小文件的目录到存储端,具体包括以下步骤:步骤a1:存储设备通过网络协议iscsi的方式共享逻辑卷到客户端;步骤a2:客户端将接收到的逻辑卷格式化成与源数据相同的文件系统并挂载;步骤a3:客户端程序通过stat检索源数据目录的索引节点(下文简称inode),直接读取inode信息,生成需要传输的文件元数据,并将生成的元数据同步到逻辑卷上,同时生成对应文件及目录并保留文件和目录的所有属性;这样避免通过VFS层检索元数据,有效减少系统调用的次数;步骤a4:客户端中的应用程序分为server进程和client进程,server进程对源数据文件进行平均分配,分割成100份,调用100个进程分别对对应的源数据子文件进行并行数据传输给clinet进程,为减少数据传输时间,在各个线程的传输过程中采用共享内存实现数据传输,使用linux下mmap函数将备份磁盘上的对应文件空间映射给client进程,从而减少数据在内核空间和用户空间之间的拷贝,实现即使不压缩数据也能大大提高传输效率的目的;步骤a5:数据备份完成后,客户端卸载逻辑卷,存储端收回逻辑卷后对该逻辑卷进行快照,本次备份结束。采用本实施例提供的方法对小数据文件进行备份耗时210分钟。同样的硬件条件,采用传统备份方式(千兆网)耗时480分钟,传统压缩备份方式耗时240分钟。采用上述提高大量小数据文件备份效率的方法的进行备份的大量小数据文件的恢复方法,包括以下步骤:步骤b1:存储端检索指定恢复的时间点对应的快照,根据快照创建克隆卷;步骤b2:存储端通过远程存储共享协议将克隆卷映射给客户端步骤b3:客户端直接挂载克隆卷为本地文件系统。由于在备份时并未压缩数据同时保留了源数据的文件格式和属性,所以实现零时间恢复,用户可以直接访问,大大提高了恢复效率,保证了用户的生产延续性。采用传统方法进行备份的恢复时间虽然也很短,但是备份的时间长,传统压缩备份方式耗时虽然只要240分钟,但是恢复时间也要200分钟。本专利技术提供的方法的恢复时间几乎为0。本实施例不经过linux的VFS层检索文件目录、多进程利用共享内存技术备份数据结合块设备共享及快照特性,进而规划出完整的备份恢复方案。其中,存储节点共享逻辑卷、对逻辑卷进行快照管理和本备份软件的结本文档来自技高网...

【技术保护点】
1.一种大量小数据文件备份方法,其特征在于:包括以下步骤:步骤a1:存储端通过远程存储共享协议的方式共享逻辑卷到客户端;步骤a2:客户端将接收到的逻辑卷格式化成与源数据相同的文件系统并挂载;步骤a3:客户端程序通过stat检索源数据目录的索引节点,直接读取索引节点信息,生成需要传输的文件元数据,并将生成的元数据同步到逻辑卷上,同时生成对应文件及目录并保留文件和目录的所有属性;步骤a4:客户端中的应用程序分为server进程和client进程,server进程对源数据文件进行平均分配,分割成指定数量的源数据子文件,调用之前指定数量的进程分别对对应的源数据子文件进行并行数据传输给clinet进程,在各个线程的传输过程中采用共享内存实现数据传输,使用linux下mmap函数将备份磁盘上的对应文件空间映射给client进程;步骤a5:数据备份完成后,客户端卸载逻辑卷,存储端收回逻辑卷后对该逻辑卷进行快照,本次备份结束。

【技术特征摘要】
1.一种大量小数据文件备份方法,其特征在于:包括以下步骤:步骤a1:存储端通过远程存储共享协议的方式共享逻辑卷到客户端;步骤a2:客户端将接收到的逻辑卷格式化成与源数据相同的文件系统并挂载;步骤a3:客户端程序通过stat检索源数据目录的索引节点,直接读取索引节点信息,生成需要传输的文件元数据,并将生成的元数据同步到逻辑卷上,同时生成对应文件及目录并保留文件和目录的所有属性;步骤a4:客户端中的应用程序分为server进程和client进程,server进程对源数据文件进行平均分配,分割成指定数量的源数据子文件,调用之前指定数量的进程分别对对应的源数据子文件进行并行数据传输给clinet进程,在各个线程的传输过程中采用共享内存实现数据传输,使用linux下mmap函数将备份磁盘上的对应文件空间映射给client进程;步...

【专利技术属性】
技术研发人员:张骏
申请(专利权)人:南京云信达科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1