CN116774939A - 一种文件迁移方法、装置、设备及可读存储介质 - Google Patents

一种文件迁移方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN116774939A
CN116774939A CN202310780251.5A CN202310780251A CN116774939A CN 116774939 A CN116774939 A CN 116774939A CN 202310780251 A CN202310780251 A CN 202310780251A CN 116774939 A CN116774939 A CN 116774939A
Authority
CN
China
Prior art keywords
file
scanned
file system
migration
scanning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310780251.5A
Other languages
English (en)
Inventor
张威
刘宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Jinan data Technology Co ltd
Original Assignee
Inspur Jinan data Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Jinan data Technology Co ltd filed Critical Inspur Jinan data Technology Co ltd
Priority to CN202310780251.5A priority Critical patent/CN116774939A/zh
Publication of CN116774939A publication Critical patent/CN116774939A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了计算机技术领域内的一种文件迁移方法、装置、设备及可读存储介质。本申请能够根据源文件系统的源访问信息自动构建源端挂载命令,并自动执行源端挂载命令来实现源文件系统的自动挂载;根据目的文件系统的目的访问信息自动构建目的端挂载命令,并自动执行目的端挂载命令来实现目的文件系统的自动挂载;之后利用扫描线程池、目标队列和迁移线程将扫描动作与迁移动作解耦,不仅可以提高迁移效率,还能够降低迁移过程中扫描动作与迁移动作相互影响,提高迁移成功率和可靠性。该方案通过自动挂载、自动扫描和自动迁移降低了文件迁移操作的复杂度,减少了人工干预的成本和风险。

Description

一种文件迁移方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种文件迁移方法、装置、设备及可读存储介质。
背景技术
目前,通过NFS网络文件系统可实现业务主机和存储设备的连接访问。在实际应用中,随着业务需求的变化,可能需要新旧存储系统的升级替换,因此需将NFS网络文件系统从一个存储设备迁移到另一个存储设备,该迁移过程通常需要手动执行一系列操作,例如:挂载NFS共享路径等。这些操作需要耗费大量的人力和时间,且容易出现错误,影响文件迁移的效率和可靠性。NFS(Network File System)是一种进行文件共享的网络协议。
因此,如何提高文件迁移的效率和可靠性,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种文件迁移方法、装置、设备及可读存储介质,以提高文件迁移的效率和可靠性。其具体方案如下:
第一方面,本申请提供了一种文件迁移方法,包括:
根据源文件系统的源访问信息构建源端挂载命令,并通过执行所述源端挂载命令挂载所述源文件系统;
根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行所述目的端挂载命令挂载所述目的文件系统;
利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列;
为所述目标队列中的每一文件分配迁移线程,并利用相应迁移线程将所述目标队列中的每一文件迁移至所述目的文件系统。
可选地,还包括:
获取用户基于人机交互界面输入的所述源访问信息和所述目的访问信息。
可选地,所述利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列,包括:
在所述扫描线程池中选择目标扫描线程;
确定所述源文件系统中的文件根目录;
将所述文件根目录确定为待扫描目录;
调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列;
若所述待扫描目录存在下一级目录,则将所述待扫描目录的下一级目录作为所述待扫描目录,在所述扫描线程池中选择另一扫描线程作为所述目标扫描线程,并执行所述调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列的步骤,直至所述待扫描目录不存在下一级目录。
可选地,还包括:
若所述待扫描目录不存在下一级目录,则显示扫描结束的提示消息。
可选地,所述利用扫描线程池扫描所述源文件系统,包括:
针对所述源文件系统,按照目录层级关系构建目录树;
在所述扫描线程池中为所述目录树中的每一目录节点选择扫描线程,并利用相应扫描线程扫描所述目录树中的每一目录节点。
可选地,所述确定扫描到的文件未存于所述目的文件系统,包括:
若扫描到的文件的元数据未存于所述目的文件系统,则确定扫描到的文件未存于所述目的文件系统。
可选地,若扫描到的文件的元数据存于所述目的文件系统中,则确定扫描到的文件存于所述目的文件系统中。
可选地,还包括:
若确定扫描到的文件存于所述目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至所述目标队列。
可选地,还包括:
针对每一文件,判断当前文件的全文校验码与所述目的文件系统中的相应文件校验码是否一致;
若一致,则跳过当前文件,不迁移当前文件;
若不一致,则利用相应迁移线程将当前文件迁移至所述目的文件系统。
可选地,还包括:
实时采集当前设备的带宽占用率和/或处理器资源占用率;
根据带宽占用率和/或处理器资源占用率调整迁移线程的数量。
可选地,根据带宽占用率和/或处理器资源占用率调整迁移线程的数量,包括:
若带宽占用率和/或处理器资源占用率超过预设阈值,则增加迁移线程的数量;否则,减少迁移线程的数量。
第二方面,本申请提供了一种文件迁移装置,包括:
源端挂载模块,用于根据源文件系统的源访问信息构建源端挂载命令,并通过执行所述源端挂载命令挂载所述源文件系统;
目的端挂载模块,用于根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行所述目的端挂载命令挂载所述目的文件系统;
扫描模块,用于利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列;
迁移模块,用于为所述目标队列中的每一文件分配迁移线程,并利用相应迁移线程将所述目标队列中的每一文件迁移至所述目的文件系统。
可选地,还包括:
访问信息获取模块,用于获取用户基于人机交互界面输入的所述源访问信息和所述目的访问信息。
可选地,所述扫描模块具体用于:
在所述扫描线程池中选择目标扫描线程;
确定所述源文件系统中的文件根目录;
将所述文件根目录确定为待扫描目录;
调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列;
若所述待扫描目录存在下一级目录,则将所述待扫描目录的下一级目录作为所述待扫描目录,在所述扫描线程池中选择另一扫描线程作为所述目标扫描线程,并执行所述调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列的步骤,直至所述待扫描目录不存在下一级目录。
可选地,所述扫描模块具体用于:
若所述待扫描目录不存在下一级目录,则显示扫描结束的提示消息。
可选地,所述扫描模块具体用于:
针对所述源文件系统,按照目录层级关系构建目录树;
在所述扫描线程池中为所述目录树中的每一目录节点选择扫描线程,并利用相应扫描线程扫描所述目录树中的每一目录节点。
可选地,所述扫描模块具体用于:
若扫描到的文件的元数据未存于所述目的文件系统,则确定扫描到的文件未存于所述目的文件系统;若扫描到的文件的元数据存于所述目的文件系统中,则确定扫描到的文件存于所述目的文件系统中。
可选地,所述扫描模块还用于:
若确定扫描到的文件存于所述目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至所述目标队列。
可选地,迁移模块还用于:
针对每一文件,判断当前文件的全文校验码与所述目的文件系统中的相应文件校验码是否一致;若一致,则跳过当前文件,不迁移当前文件;若不一致,则利用相应迁移线程将当前文件迁移至所述目的文件系统。
可选地,还包括:
线程调整模块,用于实时采集当前设备的带宽占用率和/或处理器资源占用率;根据带宽占用率和/或处理器资源占用率调整迁移线程的数量。
可选地,线程调整模块具体用于:
若带宽占用率和/或处理器资源占用率超过预设阈值,则增加迁移线程的数量;否则,减少迁移线程的数量。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的文件迁移方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的文件迁移方法。
通过以上方案可知,本申请提供了一种文件迁移方法,包括:根据源文件系统的源访问信息构建源端挂载命令,并通过执行所述源端挂载命令挂载所述源文件系统;根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行所述目的端挂载命令挂载所述目的文件系统;利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列;为所述目标队列中的每一文件分配迁移线程,并利用相应迁移线程将所述目标队列中的每一文件迁移至所述目的文件系统。
可见,本申请能够根据源文件系统的源访问信息自动构建源端挂载命令,并自动执行源端挂载命令来实现源文件系统的自动挂载;根据目的文件系统的目的访问信息自动构建目的端挂载命令,并自动执行目的端挂载命令来实现目的文件系统的自动挂载;之后利用扫描线程池、目标队列和迁移线程将扫描动作与迁移动作解耦,不仅可以提高迁移效率,还能够降低迁移过程中扫描动作与迁移动作相互影响,提高迁移成功率和可靠性。该方案通过自动挂载、自动扫描和自动迁移降低了文件迁移操作的复杂度,减少了人工干预的成本和风险。
相应地,本申请提供的一种文件迁移装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种文件迁移方法流程图;
图2为本申请公开的一种迁移系统示意图;
图3为本申请公开的一种目录扫描过程示意图;
图4为本申请公开的一种并发线程数调整示意图;
图5为本申请公开的一种文件迁移装置示意图;
图6为本申请公开的一种电子设备示意图;
图7为本申请提供的一种服务器结构图;
图8为本申请提供的一种终端结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,将NFS网络文件系统从一个存储设备迁移到另一个存储设备,需要手动执行一系列操作,例如:挂载NFS共享路径等。这些操作需要耗费大量的人力和时间,且容易出现错误,影响文件迁移的效率和可靠性。为此,本申请提供了一种文件迁移方案,能够提高文件迁移的效率和可靠性。
参见图1所示,本申请实施例公开了一种文件迁移方法,包括:
S101、根据源文件系统的源访问信息构建源端挂载命令,并通过执行源端挂载命令挂载源文件系统。
S102、根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行目的端挂载命令挂载目的文件系统。
在本实施例中,可以提供一个供用户操作的人机交互界面,使得用户在人机交互界面输入源文件系统的源访问信息和目的文件系统的目的访问信息因此在一种实施方式中,还包括:获取用户基于人机交互界面输入的源访问信息和目的访问信息。其中,S101和S102的执行顺序可以互换,也可以同时执行。源访问信息和目的访问信息可以包括:IP地址、文件存储路径等。
S103、利用扫描线程池扫描源文件系统,若确定扫描到的文件未存于目的文件系统,则将扫描到的该文件添加至目标队列。
在本实施例中,扫描线程池中预设有多个扫描线程。在一种实施方式中,利用扫描线程池扫描源文件系统,若确定扫描到的文件未存于目的文件系统,则将扫描到的该文件添加至目标队列,包括:在扫描线程池中选择目标扫描线程;确定源文件系统中的文件根目录;将文件根目录确定为待扫描目录;调用目标扫描线程扫描待扫描目录,将待扫描目录中未存于目的文件系统的文件添加至目标队列;若待扫描目录存在下一级目录,则将待扫描目录的下一级目录作为待扫描目录,在扫描线程池中选择另一扫描线程作为目标扫描线程,并执行调用目标扫描线程扫描待扫描目录,将待扫描目录中未存于目的文件系统的文件添加至目标队列的步骤,直至待扫描目录不存在下一级目录。若待扫描目录不存在下一级目录,则显示扫描结束的提示消息。
在一种实施方式中,利用扫描线程池扫描源文件系统,包括:针对源文件系统,按照目录层级关系构建目录树;在扫描线程池中为目录树中的每一目录节点选择扫描线程,并利用相应扫描线程扫描目录树中的每一目录节点。
本实施例利用一个扫描线程扫描一个目录,且不同扫描线程可以同时扫描不同目录,因此扫描效率能够得以提升。针对扫描到的每一文件,都会先判断其是否存于目的文件系统中,若扫描到的文件已存于目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至目标队列。若扫描到的文件未存于目的文件系统中,则将扫描到的该文件添加至目标队列。其中,扫描到的文件未存于目的文件系统中,包括两种情况:(1)扫描到的文件在目的文件系统中不存在;(2)扫描到的文件存在于目的文件系统中,但目的文件系统中的该文件的元数据与扫描到的文件的元数据不一致。文件的元数据如:修改时间、文件大小等。
在一种实施方式中,确定扫描到的文件未存于目的文件系统,包括:若扫描到的文件的元数据未存于目的文件系统,则确定扫描到的文件未存于目的文件系统。其中,扫描到的文件的元数据未存于目的文件系统包括两种情况:(1)在目的文件系统中找不到扫描到的文件的元数据;(2)在目的文件系统中能找到扫描到的文件的元数据,但目的文件系统中的该文件的元数据与扫描到的文件的元数据不一致。文件的元数据如:修改时间、文件大小等。
相应地,若扫描到的文件的元数据存于目的文件系统中,则确定扫描到的文件存于目的文件系统中。在一种实施方式中,还包括:若确定扫描到的文件存于目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至目标队列。
S104、为目标队列中的每一文件分配迁移线程,并利用相应迁移线程将目标队列中的每一文件迁移至目的文件系统。
本实施例利用一个迁移线程迁移一个文件,且不同迁移线程可以同时迁移不同文件,因此迁移效率能够得以提升。在一种实施方式中,还包括:针对每一文件,判断当前文件的全文校验码与目的文件系统中的相应文件校验码是否一致;若一致,则跳过当前文件,不迁移当前文件;若不一致,则利用相应迁移线程将当前文件迁移至目的文件系统。
本实施例针对每一待迁移的文件,都会先判断其全文校验码与目的文件系统中的相应文件校验码是否一致,若当前文件的全文校验码与目的文件系统中的相应文件校验码一致,则跳过当前文件,不迁移当前文件;若不一致,则针对当前文件执行迁移动作。通过对比文件的全文校验码,既可以避免重复迁移,又可以保障迁移无遗漏;相比于文件的部分校验,全文校验更具可靠性。文件的全文校验码如:文件的全文的哈希值等。其中,当前文件的全文校验码与目的文件系统中的相应文件校验码不一致包括两种情况:(1)当前文件在目的文件系统中不存在;(2)当前文件存在于目的文件系统中,但目的文件系统中的该文件的全文校验码与源文件系统中该文件的全文校验码不一致。
在一种实施方式中,还包括:实时采集当前设备的带宽占用率和/或处理器资源占用率;根据带宽占用率和/或处理器资源占用率调整迁移线程的数量。处理器资源占用率如:CPU占用率等。其中,可以仅判断带宽占用率或处理器资源占用率是否超限来确定是否调整迁移线程的数量,也可以对带宽占用率和处理器资源占用率进行加权计算,并根据加权计算结果来确定是否调整迁移线程的数量。
在一种示例中,根据带宽占用率和/或处理器资源占用率调整迁移线程的数量,包括:若带宽占用率和/或处理器资源占用率超过预设阈值,则增加迁移线程的数量;否则,减少迁移线程的数量。
可见,本实施例能够根据源文件系统的源访问信息自动构建源端挂载命令,并自动执行源端挂载命令来实现源文件系统的自动挂载;根据目的文件系统的目的访问信息自动构建目的端挂载命令,并自动执行目的端挂载命令来实现目的文件系统的自动挂载;之后利用扫描线程池、目标队列和迁移线程将扫描动作与迁移动作解耦,不仅可以提高迁移效率,还能够降低迁移过程中扫描动作与迁移动作相互影响,提高迁移成功率和可靠性。该方案通过自动挂载、自动扫描和自动迁移降低了文件迁移操作的复杂度,减少了人工干预的成本和风险。
下面以NFS文件系统的迁移为例介绍本申请发明构思的具体实现。在任意计算机设备上安装以本申请发明构思实现的迁移系统,该迁移系统能够允许用户配置源端访问信息和目的端访问信息,对源端文件进行扫描形成待传输文件队列,将待传输文件队列里的文件迁移至目的端。
请参见图2,系统内部封装集成NFS共享目录挂载命令,在进行迁移时,只需在系统提供的迁移任务配置界面填入源端访问信息和目的端访问信息,后续由迁移系统自动生成并执行NFS挂载命令,以将远端的文件目录挂载至本地。
NFS文件目录挂载至本地后,启动多个扫描线程(scanner),从源端的文件根目录自顶向下逐级扫描。扫描到任一文件时,首先判断该文件是否在目的端存在,如果不存在,直接添加到待传输队列;如果已经存在,需要根据检查规则比对,以检查源端和目的端的该文件的元数据(如修改时间、大小等)是否一致,如果一致,则直接跳过,如果不一致,将该文件添加到待传输队列。
其中,逐级扫描文件目录的过程如图3所示。首先由一个扫描线程扫描文件根目录,得到若干子目录和若干文件。对于每一文件,首先判断是否在目的端存在,如果不存在,直接添加到待传输队列,如果已经存在,则检查比对源端文件和目的端文件的修改时间和大小,如果检查一致则直接跳过该文件,如果不一致则添加到待传输队列中。对于每一子目录,由其它空闲扫描线程扫描,得到下一层级目录和下一层级文件,同样对于文件经过检查对比后放入待迁移队列,对于目录继续进行扫描,直至扫描完所有文件和目录。
在扫描过程中,使用多线程并发迁移待传输队列里的文件。预先创建一组迁移线程(worker),以按照文件顺序为队列里的文件逐一分配一个迁移线程,从而以并发的方式迁移文件。具体的,待迁移队列中有文件需要迁移时,迁移线程池会从待迁移传输文件队列中获取一个文件,并将其分配给一个空闲的迁移线程,从而将文件从源端存储设备迁移至目的端存储设备。为保证迁移文件的一致性,对比同一文件在源端和目的端的hash校验后,若二者不一致,再进行迁移,保证迁移后的文件完整一致性。
在整个迁移流程中,扫描线程和迁移线程同时进行,且扫描线程数是迁移线程数的两倍,保证扫描完成前,不存在空闲的迁移线程,充分利用多核CPU的优势,提高迁移效率和速度。
另外,迁移系统中还设定了迁移线程池自动调整机制,使迁移线程数可以根据系统资源使用情况实时调整,从而达到更高的迁移效率。请参见图4,迁移过程中监控系统资源,如:CPU核心数使用情况、迁移网络速度等。当CPU占用率低于80%阈值,迁移网络速度低于带宽80%阈值时,动态调整线程池最大线程数,一次增加两个迁移线程。当CPU占用率、迁移网络速度高于80%阈值,动态减少线程池中的最大并发线程数。这样就能够在最大化利用系统资源的前提下,提高文件迁移的效率。
所有文件迁移完成后,自动执行NFS取消挂载目录命令,以取消源端和目的端的挂载、端口连接等,无需人工干预。
本实施例能够自动进行源端和目的端的挂载、自动进行文件扫描和检查处理,并能够自动进行数据迁移传输。其中,源端和目的端的访问信息由用户输入,极大地降低了数据迁移操作的复杂度,节省人力资源。迁移系统能够根据用户提供的访问信息,将远端的源存储和目的存储的共享文件目录挂载至迁移系统所在的服务器本地目录。文件扫描处理模块会使用多线程扫描源目录,以获取需要迁移的文件放入待传输数据队列,然后由迁移任务执行模块启动多个迁移线程基于待迁移队列迁移文件。数据迁移完成后,迁移系统还能自动取消挂载NFS共享目录的本地挂载。
可见,本实施例自动挂载源存储和目的存储的NFS共享目录,不再需要人工进行目录挂载前置操作,迁移过程中采用多线程递归扫描文件目录,多迁移线程工作机制,将文件传输和文件扫描分离,使得文件传输和文件扫描可以同时进行,提高了效率和性能。同时,在多个线程之间共享同一传输队列,实现了多线程并发传输,减少了等待时间,大幅度提高了文件传输速度。多线程递归扫描机制提高了海量文件目录的扫描检查速度,利用缓存队列存放扫描发现的文件,可以做到扫描检查和迁移传输同时进行,提高迁移效率。迁移线程在文件迁移传输完成后,自动进行数据校验,保证迁移数据的完整性和可靠性。
此外,本实施例还采用了一种灵活的并发策略来控制并发线程的数量。根据系统负载和硬件资源的变化,动态调整并发迁移线程的数量,最大化利用系统CPU资源,从而达到更高的迁移效率,提高了NFS文件迁移的效率和安全性。
下面对本申请实施例提供的一种文件迁移装置进行介绍,下文描述的一种文件迁移装置与本文描述的其他实施例可以相互参照。
参见图5所示,本申请实施例公开了一种文件迁移装置,包括:
源端挂载模块501,用于根据源文件系统的源访问信息构建源端挂载命令,并通过执行源端挂载命令挂载源文件系统;
目的端挂载模块502,用于根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行目的端挂载命令挂载目的文件系统;
扫描模块503,用于利用扫描线程池扫描源文件系统,若确定扫描到的文件未存于目的文件系统,则将扫描到的该文件添加至目标队列;
迁移模块504,用于为目标队列中的每一文件分配迁移线程,并利用相应迁移线程将目标队列中的每一文件迁移至目的文件系统。
在一种实施方式中,还包括:
访问信息获取模块,用于获取用户基于人机交互界面输入的源访问信息和目的访问信息。
在一种实施方式中,扫描模块具体用于:
在扫描线程池中选择目标扫描线程;
确定源文件系统中的文件根目录;
将文件根目录确定为待扫描目录;
调用目标扫描线程扫描待扫描目录,将待扫描目录中未存于目的文件系统的文件添加至目标队列;
若待扫描目录存在下一级目录,则将待扫描目录的下一级目录作为待扫描目录,在扫描线程池中选择另一扫描线程作为目标扫描线程,并执行调用目标扫描线程扫描待扫描目录,将待扫描目录中未存于目的文件系统的文件添加至目标队列的步骤,直至待扫描目录不存在下一级目录。
在一种实施方式中,扫描模块具体用于:
若待扫描目录不存在下一级目录,则显示扫描结束的提示消息。
在一种实施方式中,扫描模块具体用于:
针对源文件系统,按照目录层级关系构建目录树;
在扫描线程池中为目录树中的每一目录节点选择扫描线程,并利用相应扫描线程扫描目录树中的每一目录节点。
在一种实施方式中,扫描模块具体用于:
若扫描到的文件的元数据未存于目的文件系统,则确定扫描到的文件未存于目的文件系统;若扫描到的文件的元数据存于目的文件系统中,则确定扫描到的文件存于目的文件系统中。
在一种实施方式中,扫描模块还用于:
若确定扫描到的文件存于目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至目标队列。
在一种实施方式中,迁移模块还用于:
针对每一文件,判断当前文件的全文校验码与目的文件系统中的相应文件校验码是否一致;若一致,则跳过当前文件,不迁移当前文件;若不一致,则利用相应迁移线程将当前文件迁移至目的文件系统。
在一种实施方式中,还包括:
线程调整模块,用于实时采集当前设备的带宽占用率和/或处理器资源占用率;根据带宽占用率和/或处理器资源占用率调整迁移线程的数量。
在一种实施方式中,线程调整模块具体用于:
若带宽占用率和/或处理器资源占用率超过预设阈值,则增加迁移线程的数量;否则,减少迁移线程的数量。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例将扫描动作与迁移动作解耦,不仅可以提高迁移效率,还能够降低迁移过程中扫描动作与迁移动作相互影响,提高迁移成功率和可靠性。该方案通过自动挂载、自动扫描和自动迁移降低了文件迁移操作的复杂度,减少了人工干预的成本和风险。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。
参见图6所示,本申请实施例公开了一种电子设备,包括:
存储器601,用于保存计算机程序;
处理器602,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
进一步的,本申请实施例还提供了一种电子设备。其中,上述电子设备既可以是如图7所示的服务器50,也可以是如图8所示的终端60。图7和图8均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种服务器的结构示意图。该服务器50,具体可以包括:至少一个处理器51、至少一个存储器52、电源53、通信接口54、输入输出接口55和通信总线56。其中,所述存储器52用于存储计算机程序,所述计算机程序由所述处理器51加载并执行,以实现前述任一实施例公开的发布应用程序的监控中的相关步骤。
本实施例中,电源53用于为服务器50上的各硬件设备提供工作电压;通信接口54能够为服务器50创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口55,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器52作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统521、计算机程序522及数据523等,存储方式可以是短暂存储或者永久存储。
其中,操作系统521用于管理与控制服务器50上的各硬件设备以及计算机程序522,以实现处理器51对存储器52中数据523的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序522除了包括能够用于完成前述任一实施例公开的发布应用程序的监控方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据523除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图8为本申请实施例提供的一种终端的结构示意图,该终端60具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端60包括有:处理器61和存储器62。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器62可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器62还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器62至少用于存储以下计算机程序621,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的发布应用程序的监控方法中的相关步骤。另外,存储器62所存储的资源还可以包括操作系统622和数据623等,存储方式可以是短暂存储或者永久存储。其中,操作系统622可以包括Windows、Unix、Linux等。数据623可以包括但不限于应用程序的更新信息。
在一些实施例中,终端60还可包括有显示屏63、输入输出接口64、通信接口65、传感器66、电源67以及通信总线68。
本领域技术人员可以理解,图8中示出的结构并不构成对终端60的限定,可以包括比图示更多或更少的组件。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的文件迁移方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种文件迁移方法,其特征在于,包括:
根据源文件系统的源访问信息构建源端挂载命令,并通过执行所述源端挂载命令挂载所述源文件系统;
根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行所述目的端挂载命令挂载所述目的文件系统;
利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列;
为所述目标队列中的每一文件分配迁移线程,并利用相应迁移线程将所述目标队列中的每一文件迁移至所述目的文件系统。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取用户基于人机交互界面输入的所述源访问信息和所述目的访问信息。
3.根据权利要求1所述的方法,其特征在于,所述利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列,包括:
在所述扫描线程池中选择目标扫描线程;
确定所述源文件系统中的文件根目录;
将所述文件根目录确定为待扫描目录;
调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列;
若所述待扫描目录存在下一级目录,则将所述待扫描目录的下一级目录作为所述待扫描目录,在所述扫描线程池中选择另一扫描线程作为所述目标扫描线程,并执行所述调用所述目标扫描线程扫描所述待扫描目录,将所述待扫描目录中未存于所述目的文件系统的文件添加至所述目标队列的步骤,直至所述待扫描目录不存在下一级目录。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述待扫描目录不存在下一级目录,则显示扫描结束的提示消息。
5.根据权利要求1所述的方法,其特征在于,所述利用扫描线程池扫描所述源文件系统,包括:
针对所述源文件系统,按照目录层级关系构建目录树;
在所述扫描线程池中为所述目录树中的每一目录节点选择扫描线程,并利用相应扫描线程扫描所述目录树中的每一目录节点。
6.根据权利要求1所述的方法,其特征在于,所述确定扫描到的文件未存于所述目的文件系统,包括:
若扫描到的文件的元数据未存于所述目的文件系统,则确定扫描到的文件未存于所述目的文件系统。
7.根据权利要求6所述的方法,其特征在于,若扫描到的文件的元数据存于所述目的文件系统中,则确定扫描到的文件存于所述目的文件系统中。
8.根据权利要求1所述的方法,其特征在于,还包括:
若确定扫描到的文件存于所述目的文件系统中,则跳过扫描到的该文件,不将扫描到的该文件添加至所述目标队列。
9.根据权利要求1所述的方法,其特征在于,还包括:
针对每一文件,判断当前文件的全文校验码与所述目的文件系统中的相应文件校验码是否一致;
若一致,则跳过当前文件,不迁移当前文件;
若不一致,则利用相应迁移线程将当前文件迁移至所述目的文件系统。
10.根据权利要求1至10任一项所述的方法,其特征在于,还包括:
实时采集当前设备的带宽占用率和/或处理器资源占用率;
根据带宽占用率和/或处理器资源占用率调整迁移线程的数量。
11.一种文件迁移装置,其特征在于,包括:
源端挂载模块,用于根据源文件系统的源访问信息构建源端挂载命令,并通过执行所述源端挂载命令挂载所述源文件系统;
目的端挂载模块,用于根据目的文件系统的目的访问信息构建目的端挂载命令,并通过执行所述目的端挂载命令挂载所述目的文件系统;
扫描模块,用于利用扫描线程池扫描所述源文件系统,若确定扫描到的文件未存于所述目的文件系统,则将扫描到的该文件添加至目标队列;
迁移模块,用于为所述目标队列中的每一文件分配迁移线程,并利用相应迁移线程将所述目标队列中的每一文件迁移至所述目的文件系统。
12.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至10任一项所述的方法。
13.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的方法。
CN202310780251.5A 2023-06-29 2023-06-29 一种文件迁移方法、装置、设备及可读存储介质 Pending CN116774939A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310780251.5A CN116774939A (zh) 2023-06-29 2023-06-29 一种文件迁移方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310780251.5A CN116774939A (zh) 2023-06-29 2023-06-29 一种文件迁移方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN116774939A true CN116774939A (zh) 2023-09-19

Family

ID=87985669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310780251.5A Pending CN116774939A (zh) 2023-06-29 2023-06-29 一种文件迁移方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN116774939A (zh)

Similar Documents

Publication Publication Date Title
US11340803B2 (en) Method for configuring resources, electronic device and computer program product
KR102150774B1 (ko) 단말기 애플리케이션을 로딩하기 위한 방법 및 장치
US8145774B2 (en) Progressively accessing data blocks related to pages
KR20210040850A (ko) 문서 분석 방법, 장치, 기기 및 저장 매체
CN111813713B (zh) 数据加速运算处理方法、装置及计算机可读存储介质
CN111045786B (zh) 一种云环境下的基于镜像分层技术的容器创建系统及方法
US9836516B2 (en) Parallel scanners for log based replication
CN109033328A (zh) 一种访问请求处理方法、装置、设备及可读存储介质
CN113393367B (zh) 图像处理方法、装置、设备和介质
US10845997B2 (en) Job manager for deploying a bundled application
US20140344447A1 (en) Method and apparatus for executing application
CN114285838A (zh) 一种文件上传方法、装置、系统、存储介质及电子设备
CN112243033B (zh) 获取内存信息的方法、装置、设备及计算机可读存储介质
US20220342579A1 (en) Memory migration method, apparatus, and computing device
CN111294377A (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN111787105B (zh) 文件传输方法、装置、计算机设备和存储介质
CN116450353A (zh) 处理器核匹配方法、装置、电子设备及存储介质
CN116774939A (zh) 一种文件迁移方法、装置、设备及可读存储介质
CN116974465A (zh) 数据加载方法、装置、设备及计算机存储介质
CN113626137B (zh) 一种支持多格式镜像的实现方法、装置、设备和介质
CN114721876A (zh) 一种数据备份方法、装置、介质
CN111796878A (zh) 一种应用于单页应用的资源拆分、加载方法和装置
CN115801569B (zh) 一种访问规则部署方法、装置、设备、介质及云平台
CN112765122B (zh) 一种在kubernetes中数据库的导入方法和系统
CN112187925A (zh) 用于大数据平台的离线集群管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination