一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件存储到对象存储的数据迁移装置、方法和存储介质与流程

2022-04-30 14:16:18 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种文件存储到对象存储的数据迁移装置、方法和存储介质。


背景技术:

2.简单存储服务(simple storage service,s3)是一种面向internet的对象存储服务。目前,云基础设施逐渐普及,企业需要将大量的存量数据从传统的文件存储形式转换为以s3对象存储为代表的云存储形式,以保障数据中心的数据源的共享和统一。
3.目前,文件存储到对象存储的迁移需要使用第三方软件,在迁移时,需要外置安装一个客户端软件,采用常规读写方式,输入输出(input/output,io)路径非常长,也不支持增量迁移,例如rclone、rsync。
4.此类第三方软件在迁移数据时,需要将源端文件存储数据读到软件所在的主机,主机再写入到目标s3对象存储侧,一读一写需要占用主机资源和网络带宽。此类第三方软件通常采用通用的协议来进行读写数据,并且不记录迁移任务的数据,迁移速度慢且无法满足业务需求。


技术实现要素:

5.有鉴于此,本发明提供一种文件存储到对象存储的数据迁移装置、方法和存储介质,用于解决文件存储到对象存储的数据迁移效率低的技术问题。
6.图1为本发明提供的一种文件存储到对象存储的数据迁移装置的结构示意图,该装置100包括:
7.迁移任务模块110,用于定制和执行迁移任务,所述迁移任务通过文件系统抽象模块120提供的接口调用位于本地的文件存储代理模块130读取源端文件存储数据,以及通过文件系统抽象模块120提供的接口调用对象存储网关模块140将读取的源端文件存储数据写入到本地的对象存储中;
8.文件系统抽象模块120,用于为上层提供文件系统抽象层访问接口;
9.文件存储代理模块130,用于为文件系统抽象模块120提供源端文件存储数据的访问接口,在所述迁移任务的控制下挂载源端文件存储的网络文件系统nfs目录,读取并缓存源端文件存储数据;
10.对象存储网关模块140,用于为文件系统抽象模块120提供对象存储访问接口,在所述迁移任务的控制下读取文件存储代理模块130中缓存的文件存储数据并将读取的文件存储数据转化为对象存储形成写入到对象存储当中。
11.进一步地,所述迁移任务模块110还用于创建迁移线程池,由迁移线程池中的迁移线程执行迁移任务;所述迁移任务模块110基于预先配置的源端文件存储的ip地址和目的端对象存储的桶bucket名称执行所述迁移任务。
12.进一步地,所述迁移任务的执行模式包括全量迁移模式和增量迁移模式,在使用
全量迁移模式时,首先获取所挂载的nfs目录中的所有文件的列表,然后将列表中的所有文件加入迁移任务,迁移任务执行时通过文件存储代理模块全量读取源端文件存储中所挂载的nfs目录中所有文件的内容。
13.进一步地,所述迁移任务使用增量迁移模式时,首先获取所挂载的nfs目录中的所有文件的列表,根据列表中每个文件修改的时间和上一次迁移任务执行的时间进行过滤,将上一次迁移之后修改过的文件加入迁移任务,迁移任务执行时通过文件存储代理模块增量读取源端文件存储中所挂载的nfs目录中自上一次迁移后发生变化的文件的内容。
14.基于本发明实施例,本发明还提供的一种文件存储到对象存储的数据迁移方法,该方法包括:
15.步骤s1.定制和执行迁移任务;
16.步骤s2.在所述迁移任务的控制下,迁移任务通过文件系统抽象模块提供的接口调用位于本地的文件存储代理模块,由文件存储代理模块挂载源端文件存储的网络文件系统nfs目录,读取并缓存源端文件存储数据;
17.步骤s3.在所述迁移任务的控制下,迁移任务通过文件系统抽象模块提供的接口调用对象存储网关模块,由对象存储网关模块读取文件存储代理模块中缓存的文件存储数据并将读取的文件存储数据转化为对象存储形成写入到对象存储当中。
18.进一步地,所述方法还包括,为所述迁移任务创建迁移线程池,由迁移线程池中的迁移线程执行迁移任务;基于预先配置的源端文件存储的ip地址和目的端对象存储的桶bucket名称执行所述迁移任务。
19.本发明提供一种文件存储到对象存储的数据迁移装置和方法,用于解决文件存储到对象存储迁移效率低的技术问题。本发明通过将远端的nfs服务端挂载到本地存储侧nfs代理,在迁移任务的控制下,由对象存储网关直接从nfs代理读取迁移文件内容并转换为对象存储格式存储到目的对象存储中,本发明通过内部模块直接传送迁移数据,避免第三方迁移工具通过网络转发,减少数据流动的io路径,提高了迁移效率。
附图说明
20.为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
21.图1为本发明提供的文件存储到对象存储的数据迁移装置的结构示意图;
22.图2为本发明一实施例提供的文件存储到对象存储的数据迁移的框架结构示意图;
23.图3为本发明一实施例提供的实现文件存储到对象存储的数据迁移方法的电子设备结构示意图。
具体实施方式
24.在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,
除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
25.应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
26.本发明目的是提供一种文件存储到对象存储的数据迁移方法、装置、设备和存储介质,以减小数据迁移占用的网络带宽,提高迁移效率。本发明的基本思想是:通过将远端的nfs服务端挂载到本端存储侧单独的软件模块/组件上,通过内部模块/组件之间的数据读写,减少数据流动的io路径,最终达到将nfs文件数据迁移到s3对象存储中的目的。
27.本发明实施例提供的技术方案,由本端存储侧的内部软件模块/组件实现,相比第三方客户端软件来说,在本端存储内部通过两个软件模块/组件之间进行数据流动,缩短了io路径从而提高了迁移速度;另外,本发明实施例中,还可记录每次迁移任务信息,支持增量迁移。本发明能够提高文件存储到对象存储的迁移速度和效率。
28.图2为本发明一实施例提供的文件存储到对象存储的数据迁移的框架结构示意图。在该示例中,通过改进nfs ganesha来实现文件存储到对象存储的数据迁移装置100,migrationd对应迁移任务模块110,文件系统抽象层(file system abstraction layer,fsal)对应文件系统抽象模块120,nfs proxy(简称proxy)对应文件存储代理模块130,fsal_rgw对应对象存储网关模块140。
29.其中,nfs-ganesha是一个基于网络文件系统(network file system,nfs)的文件服务软件模块/组件,可运行在大多数以unix/linux为核心的操作系统的用户模态(user mode)下。nfs-ganesha通过文件系统抽象层fsal将后端存储抽象成一个统一的api应用程序接口,将存储访问接口api提供给ganesha服务端。rgw是ceph里面的对象存储访问接口网关,fsal_rgw是支持fsal的一种对象存储访问接口网关,能够使fsal利用标准对象存储api来访问ceph集群。rgw支持s3和swift api等。nfs proxy是nfs协议代理,用于缓存通过nfs协议传送的数据,以便其它模块快速的读取。
30.该实施例中,在nfs-ganesha中增加migrationd迁移后台程序模块,该进程负责处理所有迁移任务工作。当需要迁移数据时,则启动迁移线程池(dp thread pools)来执行迁移任务,进行数据读取和写入的操作。dp thread pools通过fsal提供的接口调用proxy来读取源端文件存储的数据,再把数据通过fsal_rgw写入到本端s3对象存储中。
31.迁移任务开始前,需要预先配置:1)源端文件存储的ip地址,并保证源端文件存储的nfs共享目录可以被本端存储访问;2)目的端对象存储的桶bucket名称。
32.在迁移任务启动后,基于配置的源端文件存储ip地址,将源端文件存储中的待迁移的nfs共享目录挂载到本地存储服务器,迁移任务获取远端nfs设备中挂载的nfs共享目录中的所有文件的列表信息,文件列表中包括每个文件的属性信息,例如文件名称、文件修改时间、文件大小等。
33.该实施例提供两种迁移任务的执行模式,分别为全量迁移模式和增量迁移模式。全量迁移模式是指将挂载的nfs共享目录中的所有文件都迁移到目的对象存储中,不管上
一次迁移任务是否对其中的一些或全部文件已经迁移过。在全量迁移模式下,migrationd启动迁移任务后,迁移任务调用fsal指令proxy挂载远端存储即源端nfs目录,读取所挂载共享nfs目录中的所有文件信息生成的文件列表,然后将文件列表中的所有文件加入迁移任务,由迁移线程池中的迁移线程执行迁移任务。迁移任务执行时通过fsal指令proxy读取待迁移文件的内容并缓存,然后迁移任务通过fsal指令fsal_rgw通过socket连接读取由proxy缓存的文件数据,按对象存储的格式将迁移文件的数据写入本地的对象存储当中。
34.增量迁移模式是指将挂载的nfs共享目录中,自上一次迁移之后,发生变化的文件迁移到目的对象存储中,需要基于文件修改时间及上一次迁移任务执行的时间对目录的中文件进行筛选过滤。在增量迁移模式下,首先获取所挂载的nfs目录中的所有文件的列表,根据列表中每个文件修改的时间和上一次迁移任务执行的时间进行过滤,将上一次迁移之后修改过的文件加入迁移任务,迁移任务执行时通过proxy增量读取源端文件存储中所挂载的nfs目录中自上一次迁移后发生变化的文件的内容,然后迁移任务通过fsal指令fsal_rgw通过socket连接读取由proxy缓存的文件数据,按对象存储的格式将迁移文件的数据写入本地的对象存储当中。
35.如图2所示,该示例采用的proxy的版本可以是v3或v4,挂载源端文件存储的nfs目录,读取源端文件,再以object形式写入到目的对象存储中对应的桶中。其中如果文件大小超过4m,则按照每次4m的大小读取文件内容,如果没有超过4m则按照实际文件大小进行读取。
36.此方案利用了nfs-ganesha的能力,通过新增porxy v3/v4组件,实现本地自动挂载nfs数据,利用fasl_rgw接口写入object数据到对象桶中,整个流程缩短了io路径,实现了两种存储类型之间的数据流动。
37.基于图2的结构示例,还提供一种文件存储到对象存储的数据迁移方法,该方法应用在位于对象存储侧的本地存储设备中,该方法由位于nfs-ganesha中的多个软件模块相互协作共同完成,该方法包括:
38.b1.用户可通过管理平台或管理终端定制迁移任务,并将迁移任务下发到本地存储的nfs-ganesha,nfs-ganesha中的migrationd负责执行迁移任务;
39.b2.在迁移任务启动后,由迁移任务控制各个迁移步骤的执行,迁移任务通过文件系统抽象模块即fsal提供的接口调用位于本地的文件存储代理模块即proxy,由proxy挂载源端文件存储的网络文件系统nfs目录,读取并缓存源端文件存储数据;
40.b3.在所述迁移任务的控制下,迁移任务通过fsal提供的接口调用对象存储网关模块即fsal_rgw,由fsal_rgw通过socket等协议方式读取proxy中缓存的文件存储数据并将读取的文件存储数据转化为对象存储形成写入到对象存储当中。
41.图3为本发明一实施例提供的实现文件存储到对象存储的数据迁移方法的电子设备结构示意图,该设备300包括:诸如中央处理单元(cpu)的处理器310、通信总线320、通信接口340以及存储介质330。其中,处理器310与存储介质330可以通过通信总线320相互通信。存储介质330内存储有计算机程序,当该计算机程序被处理器310执行时即可实现本发明提供的方法的各步骤的功能。
42.其中,存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。另外,存储
介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
43.应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
44.进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
45.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献