首页> 中国专利> 数据存储方法、装置、设备、存储介质及程序

数据存储方法、装置、设备、存储介质及程序

摘要

本公开提供一种数据存储方法、装置、设备、存储介质及程序,涉及数据处理中的存储技术领域。具体实现方案为:从缓存的多个文件中确定至少一个目标文件,从磁带存储系统的多个磁带机中确定目标磁带机,目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机,向目标磁带机发送当前迁移任务,使得目标磁带机将所述至少一个目标文件写入磁带中。上述过程中,由于服务器在为每个迁移任务分配磁带机时,选择的是处于空闲态或即将进入空闲态的磁带机,可以保证为各个磁带机分配的迁移任务相对均衡,避免出现一部分磁带机处于空闲态的情况,提高多个磁带机的利用率,进而提高文件存储效率。

著录项

  • 公开/公告号CN113220650A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 北京百度网讯科技有限公司;

    申请/专利号CN202110460963.X

  • 发明设计人 张晓琳;

    申请日2021-04-27

  • 分类号G06F16/172(20190101);G06F3/06(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人刘丹;黄健

  • 地址 100085 北京市海淀区上地十街10号百度大厦2层

  • 入库时间 2023-06-19 12:07:15

说明书

技术领域

本公开涉及数据处理中的存储技术领域,尤其涉及一种数据存储方法、装置、设备、存储介质及程序。

背景技术

磁带是一种经济、可靠的存储介质,因此,磁带存储被广泛应用于各种需要对数据进行备份归档的场景。

磁带存储系统包括:服务器以及与服务器连接的多个磁带机。每个磁带机中设置有磁带。业务系统将需要备份的文件发送至服务器,服务器对文件进行缓存。服务器按照预设的时间粒度从硬盘中获取当前缓存的文件,根据当前缓存的文件生成一个迁移任务。并按照预设的对磁带机的轮询顺序,向当前轮询的磁带机发送该迁移任务,以使当前轮询的磁带机将当前缓存的文件写入磁带中。

然而,上述方式中文件存储效率较低。

发明内容

本公开提供了一种数据存储方法、装置、设备、存储介质及程序。

根据本公开的第一方面,提供了一种数据存储方法,包括:

从缓存的多个文件中确定至少一个目标文件;

从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机;

向所述目标磁带机发送当前迁移任务,所述当前迁移任务用于指示所述目标磁带机将所述至少一个目标文件写入所述目标磁带机的磁带中。

根据本公开的第二方面,提供了一种数据存储装置,包括:

第一确定模块,用于从缓存的多个文件中确定至少一个目标文件;

第二确定模块,用于从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机;

发送模块,用于向所述目标磁带机发送当前迁移任务,所述当前迁移任务用于指示所述目标磁带机将所述至少一个目标文件写入所述目标磁带机的磁带中。

根据本公开的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。

根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。

根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1为本公开实施例提供的一种磁带存储系统的示意图;

图2为本公开实施例提供的一种数据存储方法的流程示意图;

图3A为本公开实施例提供的一种数据存储过程的示意图;

图3B为本公开实施例提供的另一种数据存储过程的示意图;

图3C为本公开实施例提供的又一种数据存储过程的示意图;

图4为本公开实施例提供的另一种数据存储方法的流程示意图;

图5为本公开实施例提供的服务器的缓存数据量的变化示意图;

图6为本公开实施例提供的一种数据存储装置的结构示意图;

图7为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本公开提供一种数据存储方法、装置、设备、存储介质及程序,应用于数据处理中的存储技术领域,以提升存储效率。

磁带是一种经济、可靠的存储介质,因此,磁带存储被广泛应用于各种需要对数据进行备份存储的场景。

为了便于理解,首先结合图1对本公开实施例可能的应用场景进行介绍。

图1为本公开实施例提供的一种磁带存储系统的示意图。如图1所示,磁带存储系统包括:服务器以及与服务器连接的多个磁带机。图1中以两个磁带机为例进行示意。应理解,服务器与磁带机之间的连接方式可以有多种,可以为有线连接,例如通过光纤数据线连接,还可以为无线连接,本实施例对此不作限定。

其中,服务器中设置有硬盘,可以对文件进行缓存。一些示例中,服务器也可以称为缓存服务器。

每个磁带机中设置有磁带,磁带作为存储介质。磁带机也可以称为磁带驱动器。磁带机可以包括磁带传动机构和磁头,磁带传动机构能够驱动磁带相对磁头运动,用磁头进行电磁转换,在磁带上顺序地记录或读出数据。磁带机以顺序方式存取数据。存储数据的磁带可脱机保存和互换读出。

磁带作为一种存储介质,其自身顺序读写性能较优。示例性的,以基于线性磁带开放协议(Linear Tape-Open,LTO)的LTO7磁带为例,LTO7磁带在不考虑压缩的情况下其读写性能峰值可达到300MB/s。

一些示例中,磁带可以为基于线性磁带文件系统(Linear Tape File System,LTFS)格式的磁带。LTFS格式的磁带采用树形目录存储文件,使得搜索磁带的流程和搜索硬盘的流程类似。这样,用户可以方便的搜索磁带上的信息。

一些应用场景中,业务系统将需要备份的文件发送至服务器。服务器将文件缓存到硬盘中。服务器按照预设的时间粒度从硬盘中获取当前缓存的文件,根据当前缓存的文件生成一个迁移任务。并按照预设的对磁带机的轮询顺序,向当前轮询的磁带机发送该迁移任务,以使当前轮询的磁带机将当前缓存的文件写入磁带中。

然而,发明人在实现本公开的过程中发现,上述方式中文件存储效率较低。主要表现为:以两个磁带机为例,实际应用中,两个磁带机中经常出现只有一个磁带机处于工作态、而另一个磁带机处于空闲态的情况,导致无法充分利用两个磁带机的资源。

发明人经过分析发现:服务器按照预设的时间粒度从硬盘中获取当前缓存的文件,并根据当前缓存的文件生成一个迁移任务。受到多种因素的影响,不同迁移任务中文件数据量差异较大。这样,使得发送给两个磁带机的文件数据量不均,从而经常出现只有一个磁带机在工作,另一个磁带机处于空闲的情况。

另外,发明人经过分析还发现:实际应用中,在磁带存储系统应用初期,服务器的硬盘中缓存的数据量较少,导致迁移任务对应的数据量也较少,可能出现磁带机已完成本次迁移任务,而下次迁移任务还未到来的情况,因此,磁带机的状态经常在工作态和空闲态之间进行切换。

进一步的,随着时间的累积,服务器硬盘中缓存的数据量较多,使得迁移任务对应的数据量也较多,磁带机执行每个迁移任务的时长较长。由于在一个迁移任务完成之前,该迁移任务对应的文件数据依然在硬盘中占用空间,导致硬盘空间无法及时释放,使得硬盘中缓存的数据量越来越多。当硬盘的存储空间占用率大到一定程度时(例如达到90%甚至100%),会使得服务器无法正常工作。

为了解决上述技术问题中的至少一个,本公开实施例提供一种数据存储方法。在本公开技术方案中,服务器向磁带机发送迁移任务时,可以选择处于空闲态的磁带机,或者选择上一迁移任务即将完成的磁带机,从而使得多个磁带机尽可能的同时工作,避免出现多个磁带机中只有一部分磁带机处于工作态,而另一部分磁带机处于空闲态的问题,充分利用多个磁带机的资源,提高文件存储效率。

下面以具体地实施例对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本公开实施例提供的一种数据存储方法的流程示意图。本实施例的方法可以由服务器执行。如图2所示,本实施例的方法可以包括:

S201:从缓存的多个文件中确定至少一个目标文件。

具体的,服务器中设置有硬盘,或者其他具有缓存功能的磁盘。服务器可以与业务系统进行通信。当业务系统产生需要备份的文件后,将文件发送给服务器。服务器从业务系统接收文件,并缓存该文件。随着时间的累积,服务器中缓存有多个文件。

本实施例中,迁移任务是指服务器将其缓存的部分文件发送至其中一个磁带机,以使磁带机将该部分文件写入磁盘的过程。一个迁移任务会使得服务器缓存中的部分文件迁移至磁带中。

本实施例是以一个迁移任务的执行过程为例进行描述。本实施例S201中,从缓存的多个文件中确定至少一个目标文件,所述至少一个目标文件即为当前迁移任务需要迁移的文件。

其中,所述至少一个目标文件为服务器当前缓存的多个文件中的一部分。示例性的,可以事先确定每个迁移任务对应的数据量,进而根据每个迁移任务对应的数据量从缓存的多个文件中确定至少一个目标文件。所述至少一个目标文件对应的数据量与每个迁移任务对应的数据量相同或者相近。

S202:从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机。

本实施例中,服务器可以连接有多个磁带机,例如可以连接两个甚至更多个磁带机。其中,目标磁带机为本次迁移任务对应的磁带机,即S201中确定出的所述至少一个目标文件需要迁移至目标磁带机的磁带中。

本实施例中,在确定目标磁带机时,并不是简单的对多个磁带机进行轮询,而是根据各磁带机的运行信息,从多个磁带机中确定出目标磁带机。其中,运行信息可以包括:工作状态,和/或,剩余待写入磁盘的数据量。

本实施例中,工作状态用于指示磁带机处于工作态或者空闲态。工作态是指磁带机正在执行迁移任务或者回迁任务,即正在向磁带写数据或者读数据。空闲态是指磁带机当前既没有执行迁移任务,也没有执行回迁任务。

上一迁移任务剩余待写入磁带的数据量是指,一个磁带机上一次接收到的迁移任务中还剩余多少数据量未写入磁带。当一个磁带机的上一迁移任务剩余待写入磁带的数据量较少时,说明该磁带机能够较早的执行完上一迁移任务。根据各磁带机的上一迁移任务剩余待写入磁带的数据量,可以确定出多个磁带机中哪个磁带机能最早执行完上一迁移任务,或者说,可以确定出多个磁带机中哪个磁带机能最早进入空闲态。

本实施例中,可以根据多个磁带机的运行信息,选择当前处于空闲态的磁带机作为目标磁带机,或者,选择即将进入空闲态的磁带机作为目标磁带机。其中,一个磁带机即将进入空闲态可以理解为该磁带机的上一迁移任务剩余的待写入磁带的数据量较少,例如小于预设阈值。比如预设阈值为1GB。

S203:向所述目标磁带机发送当前迁移任务,所述当前迁移任务用于指示所述目标磁带机将所述至少一个目标文件写入所述目标磁带机的磁带中。

能够理解的是,本实施例描述的是服务器生成一个迁移任务,并将该迁移任务发送给目标磁带机的过程。本实施例中,服务器当前缓存的多个文件可以生成多个迁移任务。这样,多个迁移任务可以分别发送给不同的磁带机。一些场景中,每个磁带机还可以先后接收到多个迁移任务。也就是说,本实施例中S201至S203可以循环执行多次,直至所述缓存的多个文件均迁移完成。

本实施例提供的数据存储方法,包括:从缓存的多个文件中确定至少一个目标文件,从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机,向目标磁带机发送当前迁移任务,使得目标磁带机将所述至少一个目标文件写入磁带中。上述过程中,由于服务器在为每个迁移任务分配磁带机时,选择的是处于空闲态或即将进入空闲态的磁带机。这样,在迁移任务较多的场景下,可以保证为各个磁带机分配的迁移任务相对均衡,避免出现一部分磁带机处于空闲态的情况,提高多个磁带机的利用率,进而提高文件存储效率。

在上述实施例的基础上,S202中在确定目标磁带机时,可以分别获取磁带存储系统中的各磁带机的工作状态,根据各磁带机的工作状态,从多个磁带机中确定目标磁带机。下面结合几种可能的实现方式进行举例说明。

一种可能的实现方式中,若多个磁带机中存在第一磁带机的工作状态为空闲态,则将第一磁带机确定为目标磁带机。也就是说,在选择目标磁带机时,优先选择处于空闲态的磁带机作为目标磁带机。应理解,通过选择处于空闲态的磁带机作为目标磁带机,能够提高多个磁带机的利用率,进而提高文件存储效率。

另一种可能的实现方式中,在选择目标磁带机时,可以优先选择上一迁移任务剩余待写入磁带的数据量最小的磁带机作为目标磁带机。

应理解,由于目标磁带机的上一迁移任务剩余待写入磁带的数据量最小,因此,目标磁带机是多个磁带机中能够最先执行完上一迁移任务的磁带机,或者说,目标磁带机是多个磁带机中能够最先进入空闲态的磁带机。因此,将当前迁移任务分配给该目标磁带机,可以提高多个磁带机的利用率,进而提高文件存储效率。

又一种可能的实现方式中,在选择目标磁带机时,可以优先选择上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机,作为目标磁带机。例如,该预设阈值可以为1GB。当一个磁带机的上一迁移任务剩余待写入磁带的数据量小于预设阈值时,说明该磁带机的上一迁移任务即将执行完,也就是说,该磁带机即将进入空闲态。因此,将当前迁移任务分配给该目标磁带机,可以提高多个磁带机的利用率,进而提高文件存储效率。

再一种可能的实现方式中,在选择目标磁带机时,优先选择处于空闲态的磁带机作为目标磁带机。若多个磁带机均处于工作态,则在多个磁带机中选择上一迁移任务剩余待写入磁带的数据量小于或等于预设阈值的磁带机作为目标磁带机。

可选的,若多个磁带机均处于工作态,且多个磁带机的上一迁移任务剩余待写入磁带的数据量均大于预设阈值,则服务器可以先等待,直至其中某个磁带机的上一迁移任务剩余待写入磁带的数据量小于或等于预设阈值时,将该磁带机确定为目标磁带机。

下面结合图3A至图3C,对本实施例的数据存储过程进行举例说明。

图3A为本公开实施例提供的一种数据存储过程的示意图。如图3A所示,假设服务器从缓存的多个文件中确定出迁移任务A对应的目标文件。此时,磁带机1和磁带机2均处于空闲态。该情况下,服务器可以从磁带机1和磁带机2选择其中一个作为目标磁带机。假设服务器选择磁带机1作为目标磁带机。则服务器将迁移任务A发送至磁带机1,以使磁带机1将迁移任务A对应的目标文件写入磁带。

图3B为本公开实施例提供的另一种数据存储过程的示意图。如图3B所示,假设服务器从缓存的多个文件中确定出迁移任务B对应的目标文件。此时,磁带机1处于工作态,磁带机2处于空闲态。该情况下,服务器可以将磁带机2作为目标磁带机。则服务器将迁移任务B发送至磁带机2,以使磁带机2将迁移任务B对应的目标文件写入磁带。

图3C为本公开实施例提供的又一种数据存储过程的示意图。如图3C所示,假设服务器从缓存的多个文件中确定出迁移任务C对应的目标文件。此时,磁带机1和磁带机2均处于工作态,磁带机1的上一迁移任务剩余待写入磁盘的数据量为1GB,磁带机2的上一迁移任务剩余待写入磁盘的数据量为18GB。该情况下,由于磁带机1即将进入空闲态,服务器可以将磁带机1作为目标磁带机。因此,服务器将迁移任务C发送至磁带机1,以使磁带机1将迁移任务C对应的目标文件写入磁带。

在上述任意实施例的基础上,下面结合一个更具体的实施例对本公开技术方案进行描述。

图4为本公开实施例提供的另一种数据存储方法的流程示意图。如图4所示,本实施例的方法,包括:

S401:接收业务系统发送的文件,并缓存所述文件。

S402:当缓存的数据量大于或者等于第一阈值时,从缓存的各文件中确定多个待备份文件,所述待备份文件为已缓存完整的文件。

具体的,服务器可以对缓存的数据量进行监测。当监测到缓存的数据量大于或者等于第一阈值时,从缓存的多个文件中确定出多个待备份文件。也就是说,只有在服务器中缓存的数据量大于或者等于第一阈值的情况下,才触发迁移流程中。能够理解,第一阈值作为触发数据迁移的门限。

能够理解,如果在服务器中缓存的数据量较少(例如,小于第一阈值)的情况下触发数据迁移流程,可能会导致生成的迁移任务较少,这样,可能出现下面的情况:磁带机在执行完当前迁移任务后,新的迁移任务还未生成,导致磁带机无法连续处于工作态,降低磁带机的工作效率。本实施例中,通过设置第一阈值,能够避免在服务器缓存的数据量较少的情况下触发数据迁移,保证磁带机能够连续处于工作态,提高磁带机的工作效率。

进一步的,当第一阈值较小时,会导致数据迁移频繁触发的问题。而当第一阈值较大时,可能会存在如下问题:由于已缓存的数据量较多导致多个磁带机无法及时迁移完成,而业务系统又在持续的向服务器新增缓存的文件,进而导致服务器中缓存的数据量越来越多直至无缓存空间可用。因此,通过合理设置第一阈值的取值,可以使得新增的缓存数据量与磁带机的迁移数据量达到一种平衡。

一种可能的实现方式中,可以采用如下方式确定出第一阈值:获取缓存的数据量的增长速度、磁带机的数量、以及各磁带机向磁带写入的速度,并根据缓存的数据量的增长速度、磁带机的数量、以及各磁带机向磁带写入的速度,确定出第一阈值。

例如,在确定第一阈值时,可以考虑如下两个方面。第一方面,确定出的第一阈值可以使得多个磁带机在一定时长内将缓存的数据量(即第一阈值对应的数据量)迁移完成。第二方面,在某个时间段内存在部分磁带机处于空闲态的情况下,该时间段内缓存的数据量会增加,该时间段内缓存的数据量不会影响服务器的正常工作(例如,缓存的数据量不会超过最大缓存空间的80%)。

本实施例应用场景中,业务系统可以持续的向服务器中缓存需要备份的文件。服务器中缓存的多个文件中,可能有些文件已缓存完整,而有些文件还未缓存完整。而如果将还未缓存完整的文件迁移至磁带中,会导致磁带中的文件数据不完整或者出现错误。因此,本实施例中,为了保证迁移至磁带中的文件的准确性和完整性,可以先从缓存的多个文件中,确定出已缓存完整的文件。为了描述方便,本实施例中,将已缓存完整的文件称为待备份文件。

一种可能的实现方式中,在从缓存的多个文件中确定待备份文件时,可以采用如下可行的方式:对缓存的各文件进行扫描,确定缓存的各文件的最近更新时刻,根据缓存的各文件的更新时刻,从缓存的各文件中确定出多个待备份文件,所述待备份文件的最近更新时刻与当前时刻之间的时长大于预设时长。

在一个文件写入服务器硬盘的过程中,该文件的最近更新时刻不断更新,直至该文件已完整的写入硬盘中。当该文件完整的被写入硬盘后,该文件的最近更新时刻即为该文件缓存完成的时刻。一个文件的最近更新时刻也可以称为该文件在服务器硬盘的落盘时间。

本实施例中,可以根据缓存的各文件的最近更新时刻,从缓存的多个文件中,确定出哪些文件为已缓存完整的文件(即待备份文件)。示例性的,若某个文件的最近更新时刻与当前时刻之间的时长大于预设时长(例如2分钟),说明该文件在预设时长内未发生变化,因此,可以将该文件确定为已缓存完整的文件。

本实施例中,通过根据缓存的各文件的最近更新时刻,从缓存的各文件中确定出待备份文件,保证了迁移到磁带中的文件的准确性和完整性。

S403:根据第一数据量,从所述多个待备份文件中确定出所述至少一个目标文件;其中,所述第一数据量为向每个磁带机单次发送的最大数据量,所述第一数据量小于所述第一阈值。

其中,第一数据量也可以称为每个迁移任务所需迁移的最大数据量。

通过限制每个迁移任务的数据量,使得磁带机处理每个迁移任务的时长不会过长。进而,根据当前缓存的数据量可以生成多个迁移任务,从而可以将多个任务较为均衡的分配给多个磁带机,提高多个磁带机的利用率。

一种可能的实现方式中,可以采用如下可行的方式确定第一数据量:根据磁带机向磁带写入的速度,以及磁带存储系统允许部分磁带机处于空闲态的最大时长,确定第一数据量。

举例而言,以两个磁带机为例,假设每个磁带机的写磁带速度为300MB/s,容许一个磁带机处于工作态而另一个磁带机处于空闲态的最大时长为33s,则可以确定出第一数据量为10GB。

当每个迁移任务的数据量为10GB时,若根据缓存中的待备份文件可以生成9个迁移任务,则磁带机1可以依次执行迁移任务1、迁移任务3、迁移任务5、迁移任务7、迁移任务9,磁带机2可以依次执行迁移任务2、迁移任务4、迁移任务6、迁移任务8。这样,磁带机1和磁带机2在执行前4个迁移任务时是同时工作的,只有磁带机1在执行第5个迁移任务(即迁移任务9)时是只有一个磁带机处于工作态。可见,保证了大多数时间内是两个磁带机在同时工作,只有一个磁带机处于工作态的时长较短,只有33s(10GB/(300MB/s)=33s),能够有效提高各磁带机的利用率,进而提高文件存储效率。

另一种可能的实现方式中,在本实施例执行之前,服务器还可以获取所述磁带存储系统对应的配置参数,所述配置参数中包括:所述第一数据量和所述第一阈值。这样,服务器可以从配置参数中确定出第一数据量和第一阈值。进而,根据第一阈值触发数据迁移流程,根据第一数据量生成迁移任务。

S404:从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机。

S405:向所述目标磁带机发送当前迁移任务,所述当前迁移任务用于指示所述目标磁带机将所述至少一个目标文件写入所述目标磁带机的磁带中。

应理解,S404和S405的具体实现方式可以参见上述实施例的详细描述,此处不作赘述。

需要说明的是,本公开实施例执行过程中,业务系统可能还在持续的向服务器发送需要备份的文件。也就是说,服务器缓存的文件在持续的增加。因此,本实施例的方法可以循环执行多次。

下面结合一个具体的示例,对本公开方案进行举例说明。

图5为本公开实施例提供的服务器的缓存数据量的变化示意图。如图5所示,横轴表示时间,纵轴表示服务器缓存的数据量。

假设服务器缓存空间容量为a5(例如a5=2TB)。业务系统以400MB/s的速度向服务器发送需要备份的文件,也就是说,服务器缓存的数据量的增长速度为400MB/s。服务器连接有两个磁带机,分别为磁带机1和磁带机2。

假设每个磁带机的写磁带速度为300MB/s,容许一个磁带机处于工作态,而另一个磁带机处于空闲态的最长时长为33s,则可以确定出每个迁移任务对应的数据量为10GB,即第一数据量为10GB。进一步的,根据图4所示实施例,假设确定出的第一阈值a1(例如a1=100GB)。

基于上述假设,图5示例了数据迁移过程中服务器缓存的数据量的变化情况。图5示例了数据量的五个阶段,分别为:迁移限制阶段、文件扫描阶段、迁移阶段、过冲阶段、保护阶段。

参见图5,时刻t0至时刻t1之间为迁移限制阶段。在时刻t1之前,服务器缓存的数据量小于第一阈值a1,不触发迁移。因此,在时刻t0至时刻t1时间段内,服务器缓存的数据量以400MB/s的速度增长。

继续参见图5,时刻t1至时刻t2之间为文件扫描阶段。假设在时刻t1,服务器缓存的数据量到达第一阈值a1,则触发迁移流程,服务器开始对当前缓存的文件进行扫描,以确定出待备份文件(即已缓存完整的文件),可以参见图4所示实施例的详细描述。在时刻t1至t2之间,服务器对缓存的文件进行扫描,并未进行实际的迁移操作,因此,服务器缓存的数据量仍然以400MB/s的速度增长,并在时刻t2缓存的数据量达到a2。

继续参见图5,时刻t2至时刻t6之间为迁移阶段。服务器根据扫描到的待备份文件(即已缓存完整的文件)生成迁移任务,并将迁移任务分配给磁带机1和磁带机2进行迁移。例如,从时刻t2开始两个磁带机同步执行迁移任务(例如,磁带机1执行迁移任务1,磁带机2执行迁移任务2),并在时刻t3两个磁带机均完成迁移任务,且已迁移的文件在缓存中删除,使得缓存空间被释放(对应图5中时刻t3对应的下降沿)。进一步的,从时刻t3开始两个磁带机又同步执行新的迁移任务(例如,磁带机1执行迁移任务3,磁带机2执行迁移任务4),并在时刻t4两个磁带机均完成迁移任务,且已迁移的文件在缓存中删除,使得缓存空间被释放(对应图5中时刻t4对应的下降沿)。类似的,时刻t4至时刻t5之间的过程类似,此处不作赘述。

继续参见图5,假设在时刻5至时刻t6之间只有一个磁带机工作,则在时刻t6该磁带机完成迁移任务,且已迁移的文件在缓存中删除,使得缓存空间被释放(对应图5中时刻t6对应的下降沿,由于只有1个磁带机工作,释放的缓存空间较少)。

继续参见图5,时刻t6至时刻t7之间为过冲阶段。假设在时刻t6至时刻t7之间两个磁带机均停止工作,则缓存的数据量继续以400MB/s的速度增长,直至当缓存的数据量达到第二阈值a4时(例如此时缓存空间的占用率达到80%),服务器停止从业务系统接收需要备份的文件,即服务器缓存的数据量不在增加。这样可以避免缓存的数据量过高导致服务器无法正常工作。

继续参见图5,时刻t7之后为保护阶段。在时刻t7之后,服务器缓存的数据量不再增加,剩余的缓存空间用于支持服务器的正常运行所需缓存,和/或,用于支持从磁带读取文件数据所需的缓存。

根据图5所示的缓存的数据量的变化情况可知,通过合理设置第一阈值a1以及第一数据量(即每个迁移任务对应的最大数据量),可以使得服务器的缓存数据量在a2和a3之间达到一种平衡,一方面可以提升文件存储效率,另一方面有助于提升服务器的运行性能。

图6为本公开实施例提供的一种数据存储装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式。该装置可以设置在服务器中。如图6所示,本实施例提供的数据存储装置600,可以包括:第一确定模块601、第二确定模块602和发送模块603。

其中,第一确定模块601,用于从缓存的多个文件中确定至少一个目标文件;

第二确定模块602,用于从磁带存储系统的多个磁带机中确定目标磁带机,所述目标磁带机为处于空闲态的磁带机,或者,为上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机;

发送模块603,用于向所述目标磁带机发送当前迁移任务,所述当前迁移任务用于指示所述目标磁带机将所述至少一个目标文件写入所述目标磁带机的磁带中。

一种可能的实现方式中,所述第二确定模块602包括:

第一获取单元,用于获取所述多个磁带机中每个磁带机的工作状态;

第一确定单元,用于若所述多个磁带机中存在第一磁带机的工作状态为空闲态,则将所述第一磁带机确定为所述目标磁带机;或者,

若所述多个磁带机的工作状态均为工作态,则从所述多个磁带机中选择上一迁移任务剩余待写入磁带的数据量小于预设阈值的磁带机,作为所述目标磁带机。

一种可能的实现方式中,所述第一确定模块601包括:

第二确定单元,用于当缓存的数据量大于或者等于第一阈值时,从缓存的各文件中确定多个待备份文件,所述待备份文件为已缓存完整的文件;

第三确定单元,用于根据第一数据量,从所述多个待备份文件中确定出所述至少一个目标文件;其中,所述第一数据量为向每个磁带机单次发送的最大数据量,所述第一数据量小于所述第一阈值。

一种可能的实现方式中,所述第二确定单元包括:

第一确定子单元,用于确定所述缓存的各文件的最近更新时刻;

第二确定子单元,用于根据所述缓存的各文件的最近更新时刻,从所述缓存的各文件中确定出所述多个待备份文件,所述待备份文件的最近更新时刻与当前时刻之间的时长大于预设时长。

一种可能的实现方式中,所述第一确定模块601还包括:

第四确定单元,用于根据各磁带机向磁带写入的速度,以及所述磁带存储系统容许部分磁带机处于空闲态的最大时长,确定所述第一数据量。

一种可能的实现方式中,所述第一确定模块601还包括:

第五确定单元,用于获取所述缓存的数据量的增长速度、所述多个磁带机的数量、以及各磁带机向磁带写入的速度,并根据所述缓存的数据量的增长速度、所述多个磁带机的数量、以及各磁带机向磁带写入的速度,确定所述第一阈值。

一种可能的实现方式中,所述第一确定模块601还包括:

第二获取单元,用于获取所述磁带存储系统对应的配置参数,所述配置参数中包括:所述第一数据量和所述第一阈值。

一种可能的实现方式中,本实施例的装置还可以包括:接收模块和缓存模块;

所述接收模块,用于接收业务系统发送的文件;

所述缓存模块,用于缓存所述文件。

本实施例的装置,可用于执行上述任一方法实施例的技术方案,其实现原理和技术效果类似,此处不作赘述。

根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。

根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。

图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如数据存储方法。例如,在一些实施例中,数据存储方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的数据存储方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据存储方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号