掌桥专利:专业的专利平台
掌桥专利
首页

基于智慧校园中台的对象存储装置及方法

文献发布时间:2023-06-19 12:22:51


基于智慧校园中台的对象存储装置及方法

【技术领域】

本发明涉及大数据对象存储系统设计技术领域,具体地说,是一种基于智慧校园中台的对象存储装置及方法。

【背景技术】

智慧校园中台用于构建教育基础数据仓库,实现用户数据的采集和汇聚,集成电信的计费通道,实现对用户的统一计费管理,构建教育数据的互联互通体系,建设信息化基础支撑平台,以信息应用为导向,为整个教育信息化建设框架搭建提供支撑和服务,实现“统一用户认证,统一数据中心,第三方应用接入管理”。实现前端校园门户与后端智慧校园应用整合,实现应用的实施和计费管控。消除信息孤岛和应用空白,提高工作效率,提高管理效率,提高决策效率。其构建目标是:1)实现后台应用的接入和应用供应商及提供第三方应用的统一接入和管理;2)实现的统一校园用户数据规范,统一认证和应用授权,同时实现业务订单和电信商务领航平台数据同步;3)实现对翼校通等校园前台系统提供应用赋能,校园用户通过原有校园应用门户一次认证即可进入中台接入的应用功能界面;4)加快电信校园业务发展和运营的集约化管理,建设数据中心沉淀业务大数据,建设开放平台引入外部合作,发展智慧教育,促进信息技术与教育的深度融合,促进移动互联网背景下教育管理、教与学的深刻变革,服务于智慧城市、学习型城市建设和公众需求,实现优质教育资源广泛共享,提升教育公平水准,推动教育现代化发展。

智慧校园中台项目建设的数据中心系统,通过数据交换子系统实现从教育应用生态厂家汇聚教育教学过程化数据和教学资源文本类、视频类、文件类等非结构化数据,通过数据存储子系统提供的存储海量文件的分布式存储服务,实现数据的快速入仓和大小文件的随时访问。基于对象的存储系统(如阿里OSS,百度BOS,Amazon S3,OpenStack Swift等)因几乎无限的伸缩性和较高的经济效益,已成为大规模存储的重要解决方案。随着企业在对象存储系统中存入更多数据,对这些数据做大数据分析正日益重要。

分布式对象存储系统,提供了快速的读取、减少访问的时延,以满足项目的实际需求,同时由于其具有可伸缩性和低成本优势而成为一种有吸引力的存储解决方案,并且在项目建设中得到广泛的部署。为了分析保存在对象存储系统中的数据,同时避免把数据复制到分布式文件系统(例如HDFS)的昂贵过程,很自然地直接将它们用作数据并行分析框架(例如Spark或MapReduce)的存储后端。然而在对象存储上执行数据并行框架存在严重的性能问题:1.对象名称到存储结点的哈希映射过程,妨碍对象重命名时的文件写入,并增加了时延;2.与传统文件块相比,对象的粒度更粗,从而降低了读取期间的并行性。现有的解决方案试图通过避免昂贵的数据操作,特别是在避免重命名操作来解决数据并行分析工作中的写入性能问题,导致操作受限。

【发明内容】

本发明的目的是针对现有技术中的不足,提供一种基于智慧校园中台的对象存储装置及方法,通过构建一种位置感知写入机制,为对象存储系统提供放置控制,在对象存储系统中实现高效的对象重命名,解决了数据写入性能问题;同时通过在对象存储时将对象数据切块,然后在集群中的不同服务器上存储切块的多个副本,解决了数据读取性能问题。最终实现将存储结点和计算结点布署于同一集群上,无缝集成分析框架和对象存储系统而不会造成明显的性能损失,避免了远程数据读写的额外时延,从而达到最大的数据分析性能。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

第一方面,本发明提供了一种基于智慧校园中台的对象存储装置,所述对象存储装置设置于对象存储系统的代理服务器,所述代理服务器与用户终端通信连接,所述对象存储装置包括:

控制模块,布置于对象存储装置的客户端,用于指定存储对象文件的存储服务器;

切块模块,用于将所述存储对象文件切分成若干个数据子文件;

存储模块,用于创建有序列表文件,读取/写入所述数据子文件分割结点信息和存储结点信息。

优选的,所述控制模块包括:

解析单元,解析存储对象的有序列表文件,提取对象文件的切块数;

更新单元,通过一致性哈希算法更新存储对象的存储结点信息。

优选的,所述切块模块根据客户端指令将原始对象文件透明地切分成若干个任意固定大小的数据子文件。

优选的,所述存储模块包括:

列表文件存储单元,用于存储以原始对象为名称的所述有序列表文件,

结点存储单元,用于存储所述数据子文件的分割结点信息和存储结点信息。

第二方面,本发明提供了一种基于智慧校园中台的对象存储方法,所述方法通过对象存储系统中客户端指定的代理服务器执行,所述代理服务器与用户终端通信连接,所述方法包括:

将接收到的存储对象文件切分成若干个数据子文件;

创建以原始对象文件为名称的有序列表文件;

获取所述数据子文件的分割结点信息和存储结点信息,并将所述分割结点信息和存储结点信息写入所述序列表文件中。

优选的,所述将接收到的原始对象文件切分成若干个数据子文件的步骤包括:

对指定的对象数据进行透明地切分成若干个任意固定大小的数据子文件;

根据所述数据子文件在集群中的位置分别对其进行独立命名。

优选的,获取所述数据子文件的存储结点信息的步骤包括:

分别对所述原始对象文件和所述数据子文件哈希得到其各自的哈希值;

根据所述哈希值,采用一致性哈希算法计算所述原始对象文件和所述数据子文件的存储结点。

优选的,所述将接收到的存储对象文件切分成若干个数据子文件的步骤之前还包括:

判断接收到的存储对象文件是否有保存记录,如果是,则所述存储对象文件即为原始对象文件,直接对其解析后重新获取所述数据子文件的分割结点信息和存储结点信息;

如果否,则哈希该存储对象文件名,根据哈希值创建以该存储对象文件为名称的有序列表文件。

第三方面,本发明提供了一种服务器,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现前述第一方面提供的任一项的对象存储方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行前述第一方面提供的任一项的对象存储方法的步骤。

本发明优点在于:

1、本发明的对象存储装置设置于对象存储系统的代理服务器,通过所述代理服务器与用户终端通信连接,实现分析框架和对象存储系统之间无缝集成,且能够避免明显的性能损失

2、本发明的对象存储装置通过控制模块和切块模块在客户端与代理服务器之间构建一种位置感知写入机制,为对象存储系统提供放置控制,控制对象存储位置,从而消除作业完成期间,重命名所导致的不必要的I/O操作,在不引入集中式组件的情况下,打破了对象名称与其哈希计算的位置之间的依赖关系,因此不会影响可伸缩性,提高作业分析速度

3、本发明方法通过切块模块在客户端与对象存储系统之间构建切块机制,透明地将存储对象文件切成小块,以改善数据局部性,然后在集群中的不同服务器上存储切块的多个副本,提高了读取速度。

4、本发明系统的对象存储装置设置于对象存储系统的代理服务器,将代理服务器作为群集的入口点,用户通过代理与集群交互,在多个任务并行读写的分析工作中,通过建立多个代理服务器副本,在群集中的每个结点上运行不同的代理服务器副本,通过其本地实例完成读取/写入任务,从而消除了代理服务器的性能瓶颈。

【附图说明】

为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

附图1是代理服务器、客户端与存储系统构成的对象存储系统体系结构示意图。

附图2是本发明基于智慧校园中台的对象存储装置的示意框图;

附图3是本发明一实施例提供的基于智慧校园中台的对象存储方法的流程示意图;

附图4是本发明一实施例中对象文件切块流程示意图;

附图5是本发明一实施例中代理服务器在对象存储方法中的处理过程示意图;

附图6是本发明一实施例中对象文件重命名流程示意图;

附图7为本发明实施例提供的一种服务器的结构示意图。。

【具体实施方式】

为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明基于智慧校园中台的对象存储装置是一种面向大数据分析框架的对象存储装置,该装置为数据并行分析框架(例如Spark和MapReduce)的有效存储层,是针对在对象存储系统上运行分析框架时所存在的性能问题,所提出的用于解决读取性能问题和写入性能问题的技术方案。其中,通过控制模块,在面向对象存储系统中构建位置感知写入机制,控制对象存储位置,从而消除作业完成期间,重命名所导致的不必要的I/O操作,提高作业分析速度;通过切块模块,提供了一种透明对象文件切块机制,将对象数据透明地切分成固定任意大小数据,然后在集群中的不同服务器上存储切块的多个副本,配合控制模块,提高对象数据的读取和写入性能,特定是通过位置感知写入,可以有效地引入放置控制,而不会破坏对象存储系统的分布式体系结构。

如附图1-2所示的实施例中,本发明提供了一种基于智慧校园中台的对象存储装置,所述对象存储装置设置于对象存储系统的代理服务器,所述代理服务器与用户终端通信连接,如附图1所示,对象存储体系中,文件系统以文件块为存储单元,在对象存储系统中,数据以BLOB粒度存储。BLOB可以是包含图像或文档在内的任何类型的数据。通过RESTful API与存储系统的交互,并通过对象的键值来存储(PUT),检索(GET)和删除(DELETE)对象。对象存储系统采用一种扁平的名称空间,其中键是对象的任意标识符,键可以是对象名称,也可以是其ID。存储系统还存储了一个数据的多个副本以确保可靠性。对象存储具有可伸缩性,通过以下两个特性使对象存储系统分布地存储元数据,避免单点故障和性能瓶颈:

1.由于使用一致性哈希算法定位对象,故无需设置集中式的元数据服务器。在一致性哈希算法中,存储结点在逻辑环结构中被随机分配位置。该环在最小和最大哈希值处闭合。系统通过对象做一致性哈希计算得到哈希ID,并将其分配给其位置最接近该对象在环上的哈希值的结点来确定对象的位置;

2.所有对象元数据(例如其创建时间或校验和)都与对象一起存储,而不是存储在单独的元数据服务器上。

基于以上两个特性所建立的对象存储系统体系结构,在进行检索作业时的流程参考附图1,具体包括:当客户端需要检索对象f时,它与代理服务器联系。代理服务器是存储集群的单个入口点,它是无状态的,因此可以任意扩展。代理服务器接收到客户端请求后,通过哈希算法确定对象的存储服务器,检索请求转发到该对象存储服务器,并将检索结果返回给客户端。

对象存储系统上运行分析框架时,对象存储系统使用代理服务器作为群集的入口点,用户通过代理与集群交互,分析框架在两个阶段与分布式存储进行交互:(1)读取输入数据时;(2)写入输出结果时,此时代理服务器会存在读取性能问题和写入性能问题为消除这两个性能问题,参照附图2本发明提供了一种基于智慧校园中台的对象存储装置,包括:控制模块,布置于对象存储装置的客户端,用于指定存储对象文件的存储服务器;切块模块,用于将所述存储对象文件切分成若干个数据子文件,对于原始对象文件所述切块模块根据客户端指令将其透明地切分成若干个任意固定大小的数据子文件;存储模块,用于创建有序列表文件,读取/写入所述数据子文件分割结点信息和存储结点信息。

特别的,针对对象存储系统中重命名所存在的问题,所述控制模块包括:解析单元,解析存储对象的有序列表文件,提取对象文件的切块数;更新单元,通过一致性哈希算法更新存储对象的存储结点信息。该方案通过解析存储对象的manifest文件对重命名的对象文件的存储节点进行更新,可以明确指定新的对象存储的对象服务器,以避免对象重命名导致的对象复制过程。

具体的,所述存储模块包括:列表文件存储单元,用于存储以原始对象为名称的所述有序列表文件,结点存储单元,用于存储所述数据子文件的分割结点信息和存储结点信息。该技术方案将切分后的数据子文件同时链接到以原始对象名称存储的manifest文件,该manifest文件中包含所有对象分块的有序列表,被分块的数据子文件不同部分根据它们在整个集群中的位置有不同的内部名称,通过一致性哈希算法可以找到各个文件的存储结点并被填入manifest文件中。

通过上述基于智慧校园中台的对象存储装置所实现的基于智慧校园中台的对象存储方法,其流程示意图参考附图3-6,所述方法通过对象存储系统中客户端指定的代理服务器执行,所述代理服务器与用户终端通信连接,包括以下步骤:

将接收到的存储对象文件切分成若干个数据子文件;

创建以原始对象文件为名称的有序列表文件;

获取所述数据子文件的分割结点信息和存储结点信息,并将所述分割结点信息和存储结点信息写入所述序列表文件中。

在上传对象文件时时,通过上述对象存储方法,客户端可以指定对对象进行分块,这将导致代理服务器将传入的数据切分成为多个部分,优选的可以切分成固定的任意大小数据子文件,例如HDFS中的128MB块。不同部分根据它们在整个集群中的位置有不同的内部名称。此过程中,代理服务器同时建立以原始对象为名称的manifest文件,其中包含所有对象分块的有序列表。通过这种存储方法,在收到客户端的GET请求以后,代理服务器将检索manifest文件,进行解析,然后将这些对象分块返回给客户端。

参照附图4,在一个优选的实施方案中,所述将接收到的原始对象文件切分成若干个数据子文件的步骤,具体包括:

对指定的对象数据进行透明地切分成若干个任意固定大小的数据子文件;

根据所述数据子文件在集群中的位置分别对其进行独立命名。

通过这种方式实现将各个对象分块都链接到以原始对象名称存储的manifest文件中,提高实现数据读取并行性,可以建立多个代理服务器副本,在群集中的每个结点上运行不同的代理服务器副本,通过其本地实例完成读取/写入任务,从而消除了代理服务器的性能瓶颈。

上述实施例中,获取所述数据子文件的存储结点信息的步骤包括:

分别对所述原始对象文件和所述数据子文件哈希得到其各自的哈希值;

根据所述哈希值,采用一致性哈希算法计算所述原始对象文件和所述数据子文件的存储结点。

在附图5所示出的上述对象文件切块的过程,代理服务器在对象存储方法中的处理过程如下:

步骤一,代理服务器从客户端接收到文件f以后,把文件分割成N个数据子文件;

步骤二,若N=3,则这几个数据子文件分别为f1/f2/f3;

步骤三,代理服务器对原始文件哈希后得到fm,对这三个数据了文件分别哈希得到h1/h2/h3;

步骤四,根据哈希值,代理服务器通过一致性哈希算法,以fm/h1/h2/h3为关键字搜索,可以找到各个文件的存储结点分别为nm/n1/n2/n3;

步骤五,代理服务器创建manifest文件f.manifest,在manifest文件中填入manifest文件及各数据子分割及存储结点信息;

步骤六,代理服务器把manfiest文件发给客户端。

需要说明的是,当晚餐依次原始对象文件存储之后,客户端保存manifest文件作为存根,并以manifest文件作为数据文件的访问索引。因此,在所述将接收到的存储对象文件切分成若干个数据子文件的步骤之前还包括:

判断接收到的存储对象文件是否有保存记录,如果是,则所述存储对象文件即为原始对象文件,直接对其解析后重新获取所述数据子文件的分割结点信息和存储结点信息;

如果否,则哈希该存储对象文件名,根据哈希值创建以该存储对象文件为名称的有序列表文件。

当客户端请求访问对象时,判断接收到的存储对象文件是否有保存记录即判断客户端是否保存了该对象的manifest文件,如果客户端保存了manifest文件,客户端可以直接把manifest文件交给代理服务器,代理服务器解析manfiest文件,提取文件切块数及各切块存储结点,获取各存储切块,然后返回给客户端;如果客户端没有保存manifest文件,客户端可把要请求的文件名提交给代理服务器,代理服务器哈希该文件名,根据哈希值获得manifest文件,然后进入上述步骤一获取文件并返回给客户端。

当需要重命名对象时,首先也需要进入上述存储对象文件是否有保存记录的判断步骤,对于重命名对象来说,通常,都能够得出客户端保存了该对象的manifest文件,所述存储对象文件即为原始对象文件,直接对其解析后重新获取所述数据子文件的分割结点信息和存储结点信息,得到更新的manifest文件后在由代理服务器发送给客户端。

举例说明,对于文件名为Data_object的对象文件在manifest文件Data_object.manifest。若Data_object重命名为Data_object_new_name。则客户端向代理服务器发送Put(f_new_name,Data_object_new_name.manifest)请求。具体参照附图6所示出的为本实施例中对象文件重命名流程示意图,代理服务器收到上述请求,并解析manifest文件以后,同时执行以下几步操作:

步骤一,从对象存储系统中删除Data_object.manifest;

步骤二,更新从客户端收到的manifest文件,具体更新过程包括:

a.“manifest_file.name”更新为“Data_object_new_name.manifest”;

b.manifest_file.hash_ID更新为新哈希值:hash(Data_object_new_name);

c.通过对象存储系统的一致性哈希算法搜索存储结点,并更新manifest_file.storage_node为该结点。

步骤三,上传新的manifest文件到更新后的manifest_file.storage_node结点;

步骤四,代理服务器给客户端发送更新后的manifest文件。

进一步,本发明的一实施例提供了一种服务器,该服务器包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现如上述实施方式的任一项的对象存储方法的步骤。

图7为本发明实施例提供的一种服务器的结构示意图,该服务器包括:处理器、存储器、总线和通信接口,其中处理器、通信接口和存储器通过总线连接;处理器用于执行存储器中存储的可执行模块,例如计算机程序。其中,存储器可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。存储器用于存储程序,处理器在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

本发明实施例所提供的文件存储方法、装置及服务器的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。

相关技术
  • 基于智慧校园中台的对象存储装置及方法
  • 对存储装置中的对象分组模式进行性能优化的方法和系统
技术分类

06120113270602