发布信息

一种数据存储方法及装置与流程 专利技术说明

作者:admin      2023-06-29 21:34:15     761



计算;推算;计数设备的制造及其应用技术1.本技术涉及计算机技术领域,尤其涉及一种数据存储方法及装置。背景技术:2.对于电影、办公文档和图像等类似的非结构化数据,对象存储提供了一个可扩展、自我管理、受保护和可共享的存储方案。对象存储使用扁平地址空间来存储数据,这种地址空间中没有目录和文件的分层。得益于此,一个对象存储系统可存储大量的对象,可以为用户提供海量、安全、高可靠、低成本的数据存储服务。3.但是,随着用户的数量以及单个用户的文件数量不断增加,对象存储系统遇到的挑战不断升级,如何降低对象存储系统的压力需要进一步的研究。技术实现要素:4.本技术提供一种数据存储方法及装置,用于降低对象存储系统的压力。5.第一方面,本技术提供一种数据存储方法,该方法包括:接收来自第一应用服务器的第一请求信息,所述第一请求信息包括第一信息和第二信息,所述第一信息包括n个文件,所述第二信息用于指示所述n个文件中每个文件在所述第一信息中的位置,其中,n为大于1的正整数;根据所述第一请求信息分别存储n个对象,所述n个对象中的第i个对象包括所述n个文件中第i个文件中的数据,i为小于或等于n的正整数。6.虽然不同文件的大小一般不同,但是,通过接收第二信息,有利于从单个第一信息中确定n个文件中的每个文件,有利于提升上传效率。7.可选的,所述第一请求信息或所述第一信息为单个消息或承载于单个消息中。这样,在海量对象上传的场景下,可以节省封装消息的次数,实现传输效率的提升。8.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。9.可选的,所述单个消息为所述第一应用服务器单次调用接口生成的消息,所述接口用于指示所述第一应用服务器上传一个或多个文件。这样,在海量对象上传的场景下,可以节省接口调用次数,实现接口调用效率的提升和接口成本的节约。10.可选的,所述方法还包括:接收来自第二应用服务器的第二请求信息,所述第二请求信息用于请求下载m个文件,其中,m为大于1的正整数;根据所述第二请求信息向所述第二应用服务器发送文件信息,所述文件信息包括第三信息和第四信息,所述第三信息包括所述m个文件中每个文件的数据,所述第四信息用于指示所述m个文件中每个文件的数据在所述第一信息中的位置。11.虽然不同文件的大小一般不同,但是,通过向第二应用服务器发送第四信息,有利于第二应用服务器从单个第三信息中确定m个文件,有利于提升下载效率。12.可选的,所述文件信息或所述第三信息为单个消息或承载于单个消息中。这样,在海量对象下载的场景下,可以节省封装消息的次数,实现传输效率的提升。13.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。14.可选的,所述第二请求信息为所述第二应用服务器单次调用接口生成的消息,所述接口用于指示所述第二应用服务器下载一个或多个文件。这样,在海量对象上传的场景下,可以节省接口调用次数,实现接口调用效率的提升和接口成本的节约。15.可选的,所述第一信息为根据所述第三信息确定的。16.第二方面,本技术提供一种数据存储方法,该方法包括:向第一对象存储系统发送第一请求信息,所述第一请求信息包括第一信息和第二信息,所述第一信息包括n个文件,所述第二信息指示所述n个文件中每个文件在所述第一信息中的位置,所述第一请求信息用于请求所述第一对象存储系统分别存储n个对象,所述n个对象中的第i个对象包括所述n个文件中第i个文件中的用户数据,其中,n为大于1的正整数,i为小于或等于n的正整数。17.可选的,所述第一请求信息或所述第一信息为单个消息或承载于单个消息中。18.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。19.可选的,所述单个消息为所述第一应用服务器单次调用接口生成的消息,所述接口用于指示所述第一应用服务器上传一个或多个文件。20.可选的,所述方法还包括:向第二对象存储系统发送第二请求信息,所述第二请求信息用于请求下载m个文件,所述请求信息用于指示所述第二对象存储系统根据所述第二请求信息向所述应用服务器发送文件信息,所述文件信息包括第三信息和第四信息,所述第三信息包括所述m个文件中每个文件的数据,所述第四信息用于指示所述m个文件中每个文件的数据在所述第三信息中的位置,其中,m为大于1的正整数。21.可选的,所述第一信息为根据所述第三信息确定的。22.可选的,所述文件信息或所述第三信息为单个消息或承载于单个消息中。23.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。24.可选的,所述第二请求信息为所述第二应用服务器单次调用接口生成的消息,所述接口用于指示所述第二应用服务器下载一个或多个文件。25.第一对象存储系统和第二对象存储系统可以为相同存储系统,或不同存储系统。26.第三方面,本技术提供一种数据存储方法,包括:接收来自应用服务器的请求信息,所述请求信息用于请求下载m个文件,其中,m为大于1的正整数;根据所述请求信息向所述应用服务器发送文件信息,所述文件信息包括第一信息和第二信息,所述第一信息包括所述m个文件中每个文件的数据,所述第二信息用于指示所述m个文件中每个文件的数据在所述第一信息中的位置。27.虽然不同文件的大小一般不同,但是,通过向应用服务器发送第二信息,有利于应用服务器从单个第一信息中确定m个文件,有利于提升下载效率。28.可选的,第一信息中第i个文件的数据为第i个文件中的用户数据。i为小于或等于m的正整数。29.可选的,所述文件信息或所述第一信息为单个消息或承载于单个消息中。这样,在海量对象下载的场景下,可以节省封装消息的次数,实现传输效率的提升。30.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。31.可选的,所述请求信息为所述应用服务器单次调用接口生成的消息,所述接口用于指示所述应用服务器下载一个或多个文件。这样,在海量对象上传的场景下,可以节省接口调用次数,实现接口调用效率的提升和接口成本的节约。32.第四方面,本技术提供一种数据存储方法,包括:向对象存储系统发送请求信息,所述请求信息用于请求下载m个文件,其中,m为大于1的正整数;接收来自所述对象存储系统的文件信息,所述文件信息包括第一信息和第二信息,所述第一信息包括所述m个文件中每个文件的数据,所述第二信息用于指示所述m个文件中每个文件的数据在所述第一信息中的位置;根据所述第二信息从所述第一信息中确定所述m个文件中每个文件的数据。33.可选的,第一信息中第i个文件的数据为第i个文件中的用户数据。i为小于或等于m的正整数。34.可选的,所述文件信息或所述第一信息为单个消息或承载于单个消息中。35.可选的,所述单个消息为应用层的单个消息,所述应用层为网络四层协议模型或网络七层协议模型中的应用层。36.可选的,所述请求信息为所述应用服务器单次调用接口生成的消息,所述接口用于指示所述应用服务器下载一个或多个文件。37.第三方面和第四方面所提供的方法中,请求信息、应用服务器、第一信息和第二信息可以分别参考本技术图4对应的示例中的第二请求信息、第二应用服务器、第三信息和第四信息进行理解,38.本技术还提供一种装置,包括一个或多个模块,一个或多个模块用于实现如第一方面~第四方面中任一方面或任一方面任一可能实现方式所述的方法。例如,该装置可以参考第五~第八方面中任一方面所述的装置。该装置可以包括通信模块和处理模块中的至少一个模块。39.第五方面,本技术提供一种装置,包括通信模块和处理模块。通信模块用于接收来自第一应用服务器的第一请求信息,所述第一请求信息包括第一信息和第二信息,所述第一信息包括n个文件,所述第二信息用于指示所述n个文件中每个文件在所述第一信息中的位置,其中,n为大于1的正整数。处理模块用于根据所述第一请求信息分别存储n个对象,所述n个对象中的第i个对象包括所述n个文件中第i个文件中的数据,i为小于或等于n的正整数。40.第六方面,本技术提供一种装置,包括通信模块。通信模块用于向第一对象存储系统发送第一请求信息,所述第一请求信息包括第一信息和第二信息,所述第一信息包括n个文件,所述第二信息指示所述n个文件中每个文件在所述第一信息中的位置,所述第一请求信息用于请求所述第一对象存储系统分别存储n个对象,所述n个对象中的第i个对象包括所述n个文件中第i个文件中的用户数据,其中,n为大于1的正整数,i为小于或等于n的正整数。41.第七方面,本技术提供一种装置,包括通信模块。通信模块用于接收来自应用服务器的请求信息,所述请求信息用于请求下载m个文件,其中,m为大于1的正整数;通信模块用于根据所述请求信息向所述应用服务器发送文件信息,所述文件信息包括第一信息和第二信息,所述第一信息包括所述m个文件中每个文件的数据,所述第二信息用于指示所述m个文件中每个文件的数据在所述第一信息中的位置。42.第八方面,本技术提供一种装置,包括通信模块和处理模块。通信模块用于向对象存储系统发送请求信息,所述请求信息用于请求下载m个文件,其中,m为大于1的正整数;通信模块还用于接收来自所述对象存储系统的文件信息,所述文件信息包括第一信息和第二信息,所述第一信息包括所述m个文件中每个文件的数据,所述第二信息用于指示所述m个文件中每个文件的数据在所述第一信息中的位置;处理模块用于根据所述第二信息从所述第一信息中确定所述m个文件中每个文件的数据。43.第五方面~第八方面中任一方面的可能实现方式可以参考相应方法示例中的可能实现方式,此处不再赘述。44.第九方面,本技术提供一种计算设备集群,包括至少一个计算设备,每个所述计算设备包括存储器和处理器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如第一方面~第四方面中任一方面或任一方面任一可能实现方式所述的方法所描述的方法。45.第十方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,所述处理器执行如第一方面~第四方面中任一方面或任一方面任一可能实现方式所述的方法所描述的方法。46.第十一方面,本技术提供了一种芯片系统,该芯片系统包括处理器和接口电路,该处理器通过该接口电路与存储器耦合,该处理器用于执行该存储器中的程序代码,以执行如第一方面~第四方面中任一方面或任一方面任一可能实现方式所述的方法所描述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。47.第十二方面,本技术提供一种计算机程序产品,该计算机程序产品包含的程序代码被计算机设备执行时,以实现如本技术能够执行如第一方面~第四方面中任一方面或任一方面任一可能实现方式所述的方法所描述的方法。48.由于本技术提供的各装置可用于执行前述对应的方法,因此本技术各装置所能获得到的技术效果可参考前述对应的方法所获得的技术效果,此处不再赘述。附图说明49.图1示意性示出本技术适用的一种系统架构;50.图2示意性示出单个存储节点的结构;51.图3-1和图3-2分别示意性示出对象存储系统上传数据和下载数据的可能过程;52.图4~图8示意性示出本技术数据存储方法可能的流程;53.图9示意性示出本技术提供的装置一种可能的结构;54.图10示意性示出计算设备一种可能的结构;55.图11示意性示出计算设备集群一种可能的结构;56.图12示意性示出计算设备集群中的连接方式。具体实施方式57.以下,首先解释本技术涉及的关键术语。58.对象存储服务(object storage service,obs),是一个基于对象的存储服务,提供了基于桶和对象的扁平化存储方式,为用户提供海量、安全、高可靠、低成本的数据存储能力。59.桶(bucket),是obs中存储对象的容器,对象存储桶(即桶)中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。60.对象(object),是obs中数据存储的基本单位,用户上传至obs的数据以对象的形式保存在桶中。一个对象可以包括用户数据、相关的元数据(如大小、日期、所有者等)以及数据的其他属性(如访问特点等)。61.数据(data),或称用户数据,为文件中的数据内容。62.元数据(metadata),即对象的描述信息,包括系统元数据和用户元数据,这些元数据以关键字-值(key-value)的形式被上传到obs中。系统元数据由obs自动产生,在处理对象数据时使用,包括日期(date),大小(content-length),最后修改时间(last-modify),实体标签(entity-tag,etag)等。用户元数据由用户在上传对象时指定,是用户自定义的对象描述信息。63.对象的关键字,或称对象的身份标识(identity document,id),为对象的唯一标识。一般使用专用算法(如数据的哈希值)生成对象的id,以保证每个对象的id是唯一的。例如,对象的id为经过utf-8编码的长度大于0且不超过1024的字符序列。64.图1示意性示出本技术适用的一种系统架构。参考图1,该系统包括对象存储系统1、对象存储系统2、应用服务器1和应用服务器2。应用服务器1分别与对象存储系统1和对象存储系统2通信相连,应用服务器2分别与对象存储系统1和对象存储系统2通信相连。本技术不限定应用服务器和对象存储系统之间的通信方式,例如,应用服务器和对象存储系统之间可以通过交换机通信。65.对象存储系统1和对象存储系统2分别用于提供对象存储服务。用户通过应用服务器1或应用服务器2中运行的应用程序来触发读数据请求/写数据请求,向对象存储系统中读取数据或写入数据。66.图1所示系统可以包括更多或更少应用服务器。本技术不限定系统中应用服务器的类型。例如,应用服务器可以是物理机,也可以是虚拟机。物理机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。本技术不限定应用服务器的运行环境。例如,应用服务器可以但不限于运行在云环境、边缘环境或应用服务器环境。67.图1所示系统可以包括更多或更少对象存储系统。本技术不限定系统中对象存储系统的硬件结构。对象存储系统可以为集中式存储系统或分布式存储系统。可选的,对象存储系统可以包括一个或多个存储节点。图1以对象存储系统1和对象存储系统2分别包括1个存储节点和2个存储节点为例,本技术不限定对象存储系统中存储节点的数目。68.图2示意性示出单个存储节点的结构。参考图2,存储节点可以包括对象存储设备(object-based storage devices,osd)节点和与osd节点相连的存储设备。可选的,该osd节点可以为任一类型的计算设备(例如服务器)。osd节点用于运行对象存储(object-based storage devices,osd)操作系统、提供数据存储、获取和管理服务。osd节点有两个主要服务:元数据服务和存储服务。它还负责维护对象id与文件系统命名空间的映射。存储服务管理存储用户数据的多个硬盘。元数据服务通常位于应用服务器或者一个专门的服务器上,也可以位于用于存储数据的任意一个服务器上。osd节点可以包括一台或多台物理服务器或虚拟服务器(例如云服务器)。69.对象存储系统中的存储节点通常使用成本低且高密度的一个或多个存储设备(例如硬盘),osd节点可以基于一个或多个存储设备创建多个桶。图2以存储节点包括一个存储设备为例,本技术不限定存储节点中存储设备的数目。70.下面结合图3-1和图3-2,分别举例介绍对象存储系统中上传数据(或称存储数据)和下载数据(或称获取数据)的可能过程。71.如图3-1所示,对象存储系统中上传数据的可能过程包括如下步骤1~6。72.步骤1、应用服务器将文件发送给osd节点,请求存储该文件。73.步骤2、osd节点将此文件分成两部分:用户数据和元数据。74.步骤3、osd节点应用专用算法生成对象id,该算法基于用户数据的内容生成一个唯一的对象id。75.步骤4、为了方便后续的访问,osd节点使用元数据服务存储元数据和对象id。76.步骤5、osd节点使用存储服务将用户数据(对象)存储在存储设备中。77.步骤6、向应用服务器发送确认,表明对象已经存储。78.一个对象在对象存储系统中存储成功后,就可以被访问了。用户使用相同的文件名访问存储在osd节点中的数据。应用服务器使用对象id获取存储的内容。这个过程对于用户是透明的。79.如图3-2所示,对象存储系统中下载数据的可能过程包括如下步骤1~6。80.步骤1、应用服务器向对象存储系统发送读取请求。81.步骤2、元数据服务取出被请求的文件的对象id。82.步骤3、元数据服务将对象id发送给应用服务器。83.步骤4、应用服务器将对象id发送给osd存储服务,用于获取数据。84.步骤5、osd存储服务从存储设备中获取对象。85.步骤6、osd存储设备将文件发送给应用服务器。86.用户在使用对象存储服务的过程中会遇到一种使用场景,即,需要上传或下载海量的小文件(例如几十亿个几kb的文件,总量不到1tb)。在这种场景中,用户需要逐个的上传或下载文件,耗时长,费用高。87.为了解决上述问题,本技术提供一种数据存储方法。图4示意性示出该方法一种可能的流程。参考图4,该方法可以包括步骤s401~s405。88.s401、第一应用服务器向对象存储系统发送第一请求信息;89.第一应用服务器向对象存储系统发送第一请求信息,相应的,对象存储系统接收来自第一应用服务器的第一请求信息。90.第一请求信息包括第一信息和第二信息,第一信息包括n个文件,第二信息用于指示n个文件中每个文件在第一信息中的位置,其中,n为大于1的正整数。91.可选的,第二信息包括连续的n个字段(称作n个数据字段),第i个数据字段为n个文件中的第i个文件。i为小于或等于n的正整数。由于不同文件的大小一般不同,因此,不同数据字段的长度可以不同。92.本技术不限定第二信息的具体内容,例如,第二信息包括n个位置信息,第i个位置信息指示第i个文件在第一信息中的位置。例如,第i个位置信息包括第i个数据字段在第二信息中的起始位置和大小,或者,第i个位置信息包括第i个数据字段在第二信息中的起始位置和终止位置。93.可选的,第一请求信息为单个消息或承载于单个消息中。或者,可选的,第一信息为单个消息或承载于单个消息中。这样,在海量对象上传的场景下,可以节省封装消息的次数,实现传输效率的提升。94.本技术不限定上述单个消息的类型,例如,该单个消息可以为应用层的单个消息,该应用层可以为网络四层协议模型或网络七层协议模型中的应用层。95.在一些示例中,对象存储系统可以提供一个或多个接口(称作第一接口),该第一接口用于指示应用服务器上传一个或多个文件。第一应用服务器可以通过单次调用该第一接口生成上述单个消息。例如,第一应用服务器通过单次调用该第一接口生成上述第一请求信息或上述第一信息。这样,在海量对象上传的场景下,可以节省接口调用次数,实现接口调用效率的提升和接口成本的节约。96.当第一信息为单个消息时,第二信息可以承载于第一信息中,或者,承载于第一信息以外的其他消息中,或者,第二信息可以为第一信息以外的其他消息。97.当第一信息承载于单个消息中时,第二信息可以为该消息以外的其他消息,或者,承载于该消息或该消息以外的其他消息中。98.s402、对象存储系统根据第一请求信息分别存储n个对象;99.对象存储系统接收来自第一应用服务器的第一请求信息后,可以根据第一请求信息分别存储n个对象。其中,n个对象中的第i个对象包括n个文件中第i个文件中的数据,i为小于或等于n的正整数。n个对象中的每个对象对应于n个文件中的一个文件,并且,不同文件对应于不同对象,不同对象的对象id不同。100.对象存储系统接收到第一请求信息后,可以根据第二信息确定第i个文件在第一信息中的位置,之后根据第i个文件在第一信息中的位置从第一信息中获取第i个文件,并基于第i个文件存储相应的对象。第i个对象中的数据可以包括第i个文件中的全部或一部分数据,例如,第i个对象包括第i个文件中的用户数据。101.本技术不限定对象存储系统的结构和存储对象的具体过程。例如,对象存储系统为图1所示系统中的任一对象存储系统。例如,参考图3-1所示的流程,对象存储系统中的存储节点在获取第i个文件后,可以将第i个文件拆分为用户数据i和元数据i,生成用户数据i的对象id,之后使用存储服务将用户数据i(即第i个对象)存储在桶中。为了方便后续的访问,存储节点使用元数据服务关联存储元数据i和对象id。102.s403、第二应用服务器向对象存储系统发送第二请求信息;103.第二应用服务器向对象存储系统发送第二请求信息,相应的,对象存储系统接收来自第二应用服务器的第二请求信息。其中,第二请求信息用于请求下载m个文件,m为大于1的正整数。104.可选的,第二请求信息为单个消息或承载于单个消息中。该单个消息可以为应用层的单个消息,该应用层为网络四层协议模型或网络七层协议模型中的应用层。这样,在海量对象下载的场景下,可以节省封装消息的次数,实现传输效率的提升。105.在一些示例中,对象存储系统可以提供一个或多个接口(称作第二接口),该第二接口用于指示应用服务器上传一个或多个文件。第二应用服务器可以通过单次调用该第二接口生成上述单个消息。例如,第二应用服务器通过单次调用该第二接口生成上述第二请求信息。这样,在海量对象上传的场景下,可以节省接口调用次数,实现接口调用效率的提升和接口成本的节约。106.s404、对象存储系统根据第二请求信息向第二应用服务器发送文件信息;107.对象存储系统接收来自第二应用服务器的第二请求信息后,可以根据第二请求信息向第二应用服务器发送文件信息。相应的,第二应用服务器可以接收来自对象存储系统的文件信息。其中,文件信息包括第三信息和第四信息,第三信息包括m个文件中每个文件的数据,第四信息用于指示m个文件中每个文件的数据在第一信息中的位置。108.对象存储系统接收到第二请求信息后,可以根据第二请求信息从存储设备的一个或多个桶中获取m个文件的数据。本技术不限定第二请求信息的内容,只要能够指示对象存储系统从桶中获取m个文件的数据即可。可选的,第二请求信息包括每个文件的标识,本技术不限定文件的标识的类型,例如,文件的标识可以为文件的对象id,或者,文件的标识可以为文件的描述信息(例如文件名),对象存储系统根据文件的描述信息确定相应的对象id。109.本技术不限定第二请求信息所请求获取的文件的数据的类型,例如,第三信息中第j个文件的数据为第j个文件的元数据或者第j个文件的用户数据。其中,j为小于或等于m的正整数。申请不限定对象存储系统读取文件的数据的具体过程,例如,该过程可以如图3-2所示。110.对象存储系统获取m个文件的数据后,可以将m个文件的数据拼接为第三信息中的一个数据块。可选的,该数据块包括连续的m个字段(称作m个数据字段),第j个数据字段为m个文件中的第j个文件。j为小于或等于n的正整数。由于不同文件的大小一般不同,因此,不同数据字段的长度可以不同。111.本技术不限定第四信息的具体内容,例如,第四信息包括m个位置信息,第j个位置信息指示第j个文件在第三信息中的位置。例如,第j个位置信息包括m个字段中第j个数据字段在第三信息中的起始位置和大小,或者,第j个位置信息包括第j个数据字段在第三信息中的起始位置和终止位置。112.可选的,文件信息为单个消息或承载于单个消息中。或者,可选的,第三信息为单个消息或承载于单个消息中。这样,在海量对象下载的场景下,可以节省封装消息的次数,实现传输效率的提升。113.本技术不限定上述单个消息的类型,例如,该单个消息可以为应用层的单个消息,该应用层可以为网络四层协议模型或网络七层协议模型中的应用层。114.当第三信息为单个消息时,第四信息可以承载于第三信息中,或者,承载于第三信息以外的其他消息中,或者,第四信息可以为第三信息以外的其他消息。115.当第三信息承载于单个消息中时,第四信息可以为该消息以外的其他消息,或者,承载于该消息或该消息以外的其他消息中。116.s405、第二应用服务器根据第四信息从第三信息中确定m个文件中每个文件的数据。117.第二应用服务器接收来自对象存储系统的文件信息后,可以根据第四信息从第三信息中确定m个文件中每个文件的数据。例如,第二应用服务器可以根据第四信息确定m个文件中第j个文件在第三信息中的位置,之后根据第j个文件在第三信息中的位置从第三信息中获取第j个文件。其中,j为小于或等于m的正整数。118.在一些示例中,图4所示方法可以不包括步骤s401和s402。或者,在一些示例中,图4所示方法可以不包括步骤s403~s405。119.在图4所示的方法中,对象存储系统可以为图1所示系统中的任一对象存储系统,或者,可以将对象存储系统替换为其他装置。本技术不限定该其他装置的类型,只要该其他装置可以用于执行图4所示方法中对象存储系统执行的步骤即可。例如,该其他装置可以为对象存储系统中的一个或多个存储节点,或者,该其他装置可以为存储节点中的服务器或osd节点。120.在图4所示的方法中,第一应用服务器和第二应用服务器可以为图1所示系统中的任意两个应用服务器,或者,第一应用服务器和第二应用服务器可以为图1所示系统中的同一应用服务器,或者,可以将第一应用服务器和/或第二应用服务器替换为其他装置。本技术不限定该其他装置的类型,只要该其他装置可以用于执行图4所示方法中相应的应用服务器执行的步骤即可。121.在一些示例中,对象存储系统可以向应用服务器提供一个或多个接口,以获取应用服务器的上述请求信息。本技术不限定接口的类型,例如,对象存储系统提供的接口包括但不限于包括浏览器页面(或配置界面)、应用程序接口(application programming interface,api)、输入模板和命令行参数中的一种或多种。122.下面举例介绍对象存储系统向应用服务器提供对象存储服务的可能过程。由于应用服务器用于调用对象存储服务,因此,也可以将应用服务器称作调用方。123.图5示意性示出调用方从对象存储系统的桶(称作a桶)中批量下载元数据的可能流程。参考图5,该流程可以包括s501-s502。124.s501、调用方向对象存储系统发送请求消息1;125.调用方向接口1输入多个文件的标识后,可以向对象存储系统发送请求消息1,请求消息1用于请求获取多个文件中每个文件的元数据。126.可选的,请求消息1可以参考图4对应的示例中的第二请求信息进行理解,文件的标识可以参考s404中的相关内容进行理解。127.s502、对象存储系统向调用方发送响应消息1;128.对象存储系统接收到请求消息1后,可以根据每个文件的标识从存储设备中获取相应文件的元数据,将多个文件的元数据信息首尾相接得到数据块1,将数据块1承载于请求消息1的响应消息1中,发送给调用方。其中,每个文件的元数据信息可以包括相应文件的标识(例如对象id1)和元数据1。可选的,每个文件的元数据信息的大小为固定的。调用方接收到响应消息1后,可以从中确定每个文件的元数据信息。图5示意性示出部分文件的元数据信息,参考图5,多个文件的标识分别为对象id1、对象id2、对象id3、……。129.图6示意性示出调用方从对象存储系统的桶(称作a桶)中批量下载用户数据的可能流程。参考图6,该流程可以包括s601-s604。130.s601、调用方向对象存储系统发送请求消息2-1;131.调用方向接口2-1输入多个文件的标识(例如对象id)后,可以向对象存储系统发送请求消息2-1,请求消息2-1用于请求获取多个文件中每个文件的用户数据(或称对象)。132.可选的,请求消息2-1可以参考图4对应的示例中的第二请求信息进行理解,文件的标识可以参考s404中的相关内容进行理解。133.s602、对象存储系统向调用方发送响应消息2-1;134.对象存储系统接收到请求消息2-1后,可以根据每个对象id从存储设备中获取相应对象,将多个对象首尾相接得到数据块2,将下载任务的标识(记为批量下载任务id)和每个对象的位置信息,承载于请求消息2-1的响应消息2-1中,发送给调用方。其中,对象的位置信息指示对象在数据块2中的位置。响应消息2-1可以参考图4对应的示例中的第四信息进行理解,对象的位置信息可以参考图4对应的示例中的位置信息进行理解。调用方接收到响应消息2-1后,可以从中确定每个对象的位置信息文件的用户数据。135.图6示意性示出接口2-1的可能界面,参考图6,用户向接口2-1的输入框中输入多个对象id(即对象id1、对象id2、……)后,调用方基于响应消息2-1在接口2-1的输出框中显示批量下载任务id和每个对象的位置信息(即位置信息1、位置信息2、……)。136.s603、调用方向对象存储系统发送请求消息2-2;137.调用方向接口2-2输入批量下载任务id后,可以向对象存储系统发送请求消息2-2,请求消息2-2携带批量下载任务id。138.s604、对象存储系统向调用方发送响应消息2-2;139.对象存储系统接收到请求消息2-2后,可以根据批量下载任务id将数据块2承载于请求消息2-2的响应消息2-2中,发送给调用方。响应消息2-2可以参考图4对应的示例中的第三信息进行理解。调用方接收到响应消息2-2后,可以根据每个对象的位置信息从数据块2中确定每个对象(例如多个文件中每个文件的用户数据)。140.图7示意性示出调用方向对象存储系统的桶(称作b桶)中批量上传文件的可能流程。参考图7,该流程可以包括s701-s704。141.s701、调用方向对象存储系统发送请求消息3-1;142.用户向接口3-1输入每个文件的标识后,调用方获取待上传的多个文件,将多个文件首尾相接得到数据块3,将每个文件的位置信息承载于请求消息3-1中,发送给对象存储系统。每个文件的位置信息指示相应文件在数据块3中的位置。143.可选的,请求消息3-1可以参考图4对应的示例中的第二信息进行理解。可选的,调用方在接口3-1的输入框中输入多个文件的位置信息(即文件1的位置信息1、文件2的位置信息2、……)。144.s702、对象存储系统向调用方发送响应消息3-1;145.对象存储系统接收到请求消息3-1后,可以将批量上传任务id承载于向调用方发送的响应消息3-1中。可选的,用户可以通过接口3-1的输出框中看到批量上传任务id。146.可选的,调用方在拼接数据块3之前,根据每个文件的大小和每个文件的发送次序确定相应文件的位置(例如起始位置和终止位置),从而发送请求消息3-1。调用方在接收到响应消息3-1后,按照每个文件的发送次序,将多个文件拼接为上述数据块3。147.s703、调用向对象存储系统发送请求消息3-2;148.调用方调用接口3-2,将批量上传任务id和数据块3承载于请求消息3-2中,发送给对象存储系统。可选的,请求消息3-2参考图4对应的示例中的第一信息进行理解,数据块3参考图4对应的示例中的n个文件进行理解。可选的,请求消息3-2可以参考图4对应的示例中的第一信息进行理解。149.s704、对象存储系统向调用方发送响应消息3-2。150.对象存储系统接收到请求消息3-2后,可以根据请求消息3-1从请求消息3-2所携带的数据块3中分别获取多个文件(即文件1、文件2、文件3、……),基于多个文件在b桶中存储多个对象(即对象1、对象2、……)。之后,对象存储系统可以向调用方发送响应消息3-2,该响应消息3-2用于通知调用方存储结果(例如存储成功或存储失败)。151.图8示意性示出调用方向将a桶中的多个对象迁移至b桶的可能流程。a桶和b桶可以为不同或相同对象存储系统中的存储桶。以下,以a桶代表a桶所在的对象存储系统,以b桶代表b桶所在的对象存储系统,介绍该流程。结合图8,该流程可以包括s801-s804。152.s801、调用方分别从a桶和b桶批量下载n个对象的元数据和m个对象的元数据;153.调用方缓存有待迁移对象列表,待迁移列表包括对象id序列(例如对象id1、对象id2、……),调用方需要按次序将待迁移对象列表所指示的每个对象从a桶迁移至b桶。154.调用方可以分别从a桶和b桶批量请求下载n个对象的元数据。在实际应用中,a桶和/或b桶可能存储有n个对象中的全部或一部分对象。以a桶存储有全部对象,b桶存储有n个对象中的m个对象为例,调用方可以分别从a桶和b桶批量下载n个对象的元数据和m个对象的元数据。其中,m为小于或等n的正整数。155.s801的具体实现方式可以参考图4或图5对应的示例,此处不再展开介绍。本技术不限定n的数目,例如,n为1000。156.s802、调用方确定待迁移的p个对象;157.假设调用方从a桶批量下载n个对象的元数据,从b桶批量下载m个对象的元数据,并且,m个对象的元数据分别与n个对象中的m个对象的元数据相同,那么,调用方可以确定b桶已存有该m个对象,无需再次迁移,只需迁移n个对象中除m个对象以外的其他对象(例如p个对象)。158.s803、调用方从a桶批量下载p个对象;159.p个对象被拼接为数据块4,a桶将数据块4下发给调用方。在一些示例中,s801和s802为可选步骤,调用方可以从a桶批量下载n个对象。s803的具体实现方式可以参考图4或图6对应的示例,此处不再展开介绍。160.s804、调用方向b桶批量上传p个对象;161.p个对象被拼接为数据块4,调用方将数据块4上传至b桶。其中,s804的具体实现方式可以参考图4或图7对应的示例,此处不再展开介绍。162.s805、调用方分别从a桶和b桶批量下载n个对象的元数据;163.其中,s805的具体实现方式可以参考图4或图5对应的示例,此处不再展开介绍。164.s806、调用方对比n个对象的元数据。165.假设调用方从a桶批量下载的n个对象的元数据与从b桶批量下载的n个对象的元数据相同,那么,调用方可以确定已成功将a桶的n个对象迁移值b桶。166.和每迁移一个对象之后便对比一次相比,图8对应的示例中,调用方每迁移多个对象后对比一次,有利于减少对比次数。并且,和每成功迁移一个对象至少需要6次交互相比,图8对应的示例中,调用方通过6次交互可以成功迁移多个对象,有利于减少调用方与对象存储系统之间的交互次数。167.本技术还提供一种装置,图9示意性示出该装置9一种可能的结构。参考图9,装置9可以包括通信模块901和处理模块902。168.可选的,该装置9可以用于执行上述方法中对象存储系统所执行的方法。相应的,通信模块901用于执行s401、和/或s403、和/或s404中对象存储系统所执行的步骤。处理模块902用于执行s402中对象存储系统所执行的步骤。可选的,通信模块901用于执行s501和/或s502中对象存储系统所执行的步骤。可选的,通信模块901用于执行s601~s604中对象存储系统所执行的步骤。可选的,通信模块901用于执行s701~s704中对象存储系统所执行的步骤。169.可选的,该装置9可以用于执行上述方法中应用服务器或调用方所执行的方法。相应的,通信模块901用于执行s401、和/或s403、和/或s404中应用服务器所执行的步骤。处理模块902用于执行s405中应用服务器所执行的步骤。可选的,通信模块901用于执行s501和/或s502中调用方所执行的步骤。可选的,通信模块901用于执行s701~s704中调用方所执行的步骤。170.关于装置9中任一模块的可能实现方式及有益效果可以参考相应方法示例的相关内容,此处不再赘述。171.需要说明的是,上述装置的结构仅仅作为一种示例,不应构成具体限定,可以根据需要对装置中的各个模块进行增加、减少或合并。此外,该装置中的各个模块的操作和/或功能是为了实现上述方法的相应流程,为了简洁,在此不再赘述。172.参见图10,图10是本技术示例提供的一种计算设备的结构示意图。如图10所示,该计算设备10包括:处理器101、通信接口102以及存储器103,处理器101、通信接口102和存储器103之间通过总线104通信。计算设备10可以例如是图1所示的任一应用服务器或对象存储系统中的存储节点或osd节点。应理解,本技术不限定计算设备10中的处理器、存储器的个数。173.总线104可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线104可包括在计算设备10各个部件(例如,存储器103、处理器101、通信接口102)之间传送信息的通路。174.处理器101可以包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。175.存储器103可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。处理器101还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。176.存储器103中存储有可执行的程序代码,处理器101执行该可执行的程序代码以分别实现前述装置的功能。177.通信接口103使用例如但不限于网卡或收发器一类的收发模块,来实现计算设备10与其他设备或通信网络之间的通信。178.本技术实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。179.如图11所示,计算设备集群包括至少一个计算设备10。计算设备集群可以用于搭建一个或多个云平台或存储系统。计算设备集群中的一个或多个计算设备10中的存储器103中可以存有相同的用于实现上述装置功能的指令,以执行上述任一方法示例中应用服务器或对象存储系统所执行的步骤。180.在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备10的存储器103中也可以分别存有用于执行上述方法的指令。换言之,一个或多个计算设备10的组合可以共同执行上述方法的指令。181.需要说明的是,计算设备集群中的不同的计算设备10中的存储器103可以存储不同的指令,分别用于执行装置的部分功能。也即,不同的计算设备10中的存储器103存储的指令可以用于共同执行上述方法。182.在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,网络可以是广域网或局域网等等。图12示出了一种可能的实现方式。如图12所示,两个计算设备10a和10b之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与网络进行连接。183.应理解,图12中示出的计算设备10a的功能也可以由多个计算设备10完成。同样,计算设备10b的功能也可以由多个计算设备10完成。184.本技术不限定用于部署前文介绍的装置9的设备,在一些示例中,装置9可以部署在基础设施中的一个或多个设备中,或者,运行在基础设施以外的一个或多个设备中。可选的,用于部署装置9的设备如图10或图11或图12所示。185.本技术还提供了一种包含指令的计算机程序产品。计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述方法示例中任一种中的全部或一部分步骤。186.本技术实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,指令指示计算设备执行上述方法示例中任一种中的全部或一部分步骤。187.在上述示例中,对各个示例的描述都各有侧重,某个示例中没有详述的部分,可以参见其它示例的相关描述。需要说明的是,对于前述的各方法示例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的示例均属于优选示例,所涉及的动作和模块并不一定是本技术所必须的。188.在本技术所提供的几个示例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置示例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。189.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本示例方案的目的。190.本技术的说明书和权利要求书及上述附图中的术语“第一”、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。本技术实施例中出现的术语“多个”指两个或两个以上。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。191.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部