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

数据处理方法、装置、电子设备和计算机存储介质与流程

2021-12-17 18:23:00 来源:中国专利 TAG:


1.本发明涉及云计算领域,尤其涉及一种数据处理方法、装置、电子设备和计算机存储介质。


背景技术:

2.在相关的容器镜像仓库系统中,镜像的命令格式通常为hub.com/test/nginx:latest;其中hub.com表示镜像仓库的域名;test通常为镜像空间的名字,或称为镜像组织,本质上就是一个标签,表示一组镜像的集合;nginx表示镜像的名称;latest表示镜像的具体版本。
3.对镜像仓库中的容量监控方案可以包括对仓库系统的整体监控方案,对仓库系统的整体监控方案主要用于实现对镜像仓库存储磁盘的监控,如此,可以查询出当前镜像仓库的总容量,以及当前磁盘的使用量。同时,由于镜像的基本单元是版本号,因此,也可以查询到仓库中具体一个镜像版本的大小;在镜像仓库中,镜像存储的粒度为镜像层,相同镜像的多个版本可能存在着很多重复的镜像层;发明人发现:如果直接将镜像多个版本的大小进行简单的求和,所计算出来的数据量比实际占用空间要大;同时由于镜像层数据在整个镜像仓库中共享,因此,无法基于镜像仓库的镜像空间实现存储的镜像数据的隔离,在多个镜像空间中经常存在着重复的镜像层数据,从而,无法基于镜像参考的每个镜像空间计算镜像数据的实际占用空间。
4.但是在实际应用场景中,一个镜像仓库需要分配给很多用户或很多组织来使用,每个用户或每个组织可以使用镜像仓库中的一个镜像空间,仓库管理员通常无法获知每个用户或组织对镜像空间的使用量情况。可能导致一个用户或一个组织过度使用镜像仓库中的镜像空间,导致其他组织没有足够的空间在存储自己的镜像;从而管理员无法对镜像仓库的使用进行有效的管理控制,以及对超量使用的用户进行相关的限制。
5.综上,在相关的镜像数据存储技术中,发明人发现:不同镜像空间中的镜像存在着大量镜像层的重复,同一镜像的不同版本间存在着大量的镜像层重复,导致难以统计出每个镜像的实际占用空间大小。另外,当基于用户指令向镜像仓库推送镜像时,如何实时地感知镜像仓库的镜像数据变化,并能够实时对推送镜像的实际占用大小进行精确统计,也是亟待解决的技术问题。


技术实现要素:

6.本发明期望提供数据处理的技术方案,可以解决相关技术中不能对每个镜像的实际占用空间大小进行精确统计的问题。
7.本发明提供了一种数据处理方法,所述方法包括:
8.对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量;
9.将所述每个镜像的空间使用量确定为:所述每个镜像的实际使用数据的占用空间
量。
10.可选地,所述对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量,包括:
11.对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据;
12.根据底层镜像层信息,确定所述每个镜像的实际使用数据的占用空间量。
13.可选地,所述镜像仓库包括至少两个镜像空间,每个镜像空间包括至少一个镜像;
14.所述方法还包括:确定每个镜像空间的所有镜像的空间使用量。
15.可选地,所述方法还包括:
16.接收上传至所述镜像仓库中的新镜像;
17.确定所述新镜像的空间使用量;
18.根据所述新镜像的空间使用量,更新镜像仓库中每个镜像的空间使用量。
19.可选地,所述确定所述新镜像的空间使用量,包括:
20.对所述新镜像的各版本去除重复的镜像层数据,得到所述新镜像的实际使用数据的占用空间量;
21.将所述新镜像的空间使用量确定为:所述新镜像的实际使用数据的占用空间量。
22.可选地,所述接收上传至所述镜像仓库中的新镜像,包括:
23.接收到所述镜像仓库的网络钩子webhook通知后,根据所述webhook通知中的数据,得到上传至所述镜像仓库中的新镜像。
24.可选地,所述方法还包括:
25.通过新增的网络web接口,接收所述镜像仓库的webhook通知。
26.可选地,所述方法还包括:
27.通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正。
28.可选地,所述通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正,包括:
29.在定时时间到达时,通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正;
30.或者,在接收到针对所述至少一个镜像的空间使用量的校正请求时,通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正。
31.本发明还提供了一种数据处理装置,所述装置包括:第一处理模块和第二处理模块,其中,
32.第一处理模块,用于对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量;
33.第二处理模块,用于将所述每个镜像的空间使用量确定为:所述每个镜像的实际使用数据的占用空间量。
34.可选地,所述装置集成部署于容器或容器集群中。
35.本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处
理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种数据处理方法。
36.本发明还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被终端的处理器执行时实现上述任意一种数据处理方法。
37.本发明提出的数据处理方法、装置、终端和计算机存储介质中,对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量;将所述每个镜像的空间使用量确定为:所述每个镜像的实际使用数据的占用空间量。可见,本发明中,可以针对每个镜像的各版本,进行去除重复数据的处理,有利于准确地确定出每个镜像的实际占用空间大小。
38.进一步地,还可以按照镜像空间,对每个镜像空间的所有镜像的空间使用量进行统计,可以准确获知每个镜像空间的使用量情况,有利于根据每个镜像空间的使用量情况对每个镜像空间的使用进行管理。
39.进一步地,本发明还能够感知镜像仓库的镜像数据变化,并能够实时对推送镜像的实际占用大小进行精确统计。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。
41.图1为本发明的数据处理方法的流程图;
42.图2为本发明的一种数据处理装置的组成结构示意图;
43.图3为本发明的另一种数据处理装置的组成结构示意图;
44.图4为本发明中空间使用量初始化模块的工作流程示意图;
45.图5为本发明中空间使用量初始化模块计算单个镜像的空间使用量的流程示意图;
46.图6为本发明中使用量增量更新模块的工作流程示意图;
47.图7为本发明中使用量校正模块的工作流程示意图;
48.图8为本发明的另一种数据处理装置在kubernetes集群中部署的示意图;
49.图9为本发明中电子设备的结构示意图。
具体实施方式
50.针对上述技术问题,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
51.需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
52.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
53.例如,本发明实施例提供的数据处理方法包含了一系列的步骤,但是本发明实施例提供的数据处理方法不限于所记载的步骤,同样地,本发明实施例提供的数据处理装置包括了一系列模块,但是本发明实施例提供的数据处理装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
54.本发明实施例可以基于电子设备实现,这里,电子设备可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。
55.电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统可以在分布式云计算环境中实施,在分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
56.基于上述记载的应用场景,提出以下各实施例。
57.本发明实施例提出了一种数据处理方法,可以应用于云计算、镜像仓库监控等场景。
58.图1为本发明的数据处理方法的流程图,如图1所示,该流程可以包括:
59.步骤101:对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量。
60.本发明实施例中,并不对镜像仓库的种类进行限定,例如,镜像仓库可以是registry、harbor等镜像仓库;在实际应用中,每个镜像仓库中的镜像可以有多个版本,每个镜像的不同版本之间存在着镜像层数据重复。
61.对于本步骤的实现方式,示例性地,可以对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据;然后,根据底层镜像层信息,确定每个镜像的实际使用数据的占用空间量。
62.这里,底层镜像层信息包括每个镜像的数据量大小;在实际应用中,可以通过对镜像进行底层数据抓取,得到对应镜像的底层镜像层信息,从而计算出对应镜像在底层的实际占用空间量。
63.步骤102:将所述每个镜像的空间使用量确定为:所述每个镜像的实际使用数据的占用空间量。
64.可选地,在确定每个镜像的空间使用量后,还可以存储每个镜像的空间使用量,示例性地,可以将每个镜像的空间使用量存储到第三方数据库中;在一个具体的示例中,第三方数据库可以是mysql数据库或其它类型的数据库。
65.在实际应用中,步骤101至步骤102可以基于电子设备的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号
处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
66.可见,本发明实施例中,可以针对每个镜像的各版本,进行去除重复的镜像层数据的处理,有利于准确地确定出每个镜像的实际占用空间大小。
67.另外,本发明实施例的实现方式,可充分利用现有技术,费用低,并且可通过多实例部署,有利于提高统计每个镜像的实际占用空间大小的准确率和效率。
68.可选地,上述镜像仓库可以包括至少两个镜像空间,每个镜像空间包括至少一个镜像;相应地,可以基于步骤101至步骤102,确定每个镜像空间的所有镜像的空间使用量。
69.在实际应用中,可以基于镜像仓库的当前配置文件对镜像仓库进行扫描,获取镜像仓库中的镜像空间列表,该镜像空间列表包括至少两个镜像空间;作为一种实现方式,可以将获取的镜像空间列表存储在镜像仓库内置的数据结构中。
70.在一种实施方式中,可以针对镜像空间列表中的每一个镜像空间,调用镜像仓库的应用程序编程接口(application programming interface,api)进行深度查询,获取到每个镜像空间中的镜像列表;可选地,还可以将每个镜像空间中的镜像列表存储在镜像仓库内置的数据结构中。
71.在一种实施方式中,还可以对每个镜像空间的所有镜像的空间使用量进行汇总处理,并按照不同的镜像空间进行标记,统计出仓库中每个镜像空间的所有镜像的空间使用量;可选地,还可以将每个镜像空间的所有镜像的空间使用量存储到上述第三方数据库中。
72.可以看出,本发明实施例中可以按照镜像空间,对每个镜像空间的所有镜像的空间使用量进行统计,可以准确获知每个镜像空间的使用量情况,有利于根据每个镜像空间的使用量情况对每个镜像空间的使用进行管理。
73.在一种实施方式中,还可以接收上传至所述镜像仓库中的新镜像;然后,确定所述新镜像的空间使用量;根据所述新镜像的空间使用量,更新镜像仓库中每个镜像的空间使用量。
74.在实际应用中,上述新镜像可以是基于用户指令生成的镜像,在生成新镜像后,可以将新镜像推送至镜像仓库中;本发明实施例中,可以实时监测镜像仓库是否接收到新镜像,从而实现对推送的镜像的实时感知。
75.作为一种实施方式,还可以将更新后的镜像仓库中每个镜像的空间使用量进行存储,例如,将更新后的镜像仓库中每个镜像的空间使用量存储于上述第三方数据库中。
76.可以看出,本发明实施例能够感知镜像仓库的镜像数据变化,并能够实时对推送镜像的实际占用大小进行精确统计。
77.对于确定新镜像的空间使用量的实现方式,示例性地,可以参照上述步骤101至步骤102的实现方式,具体地,可以对新镜像的各版本去除重复的镜像层数据,得到新镜像的实际使用数据的占用空间量;将所述新镜像的空间使用量确定为:所述新镜像的实际使用数据的占用空间量。
78.对于接收上传至所述镜像仓库中的新镜像的实现方式,示例性地,可以在接收到所述镜像仓库的网络钩子(webhook)通知后,根据webhook通知中的数据,得到新上传至所
述镜像仓库中的新镜像。
79.在实际应用中,可以在接收到镜像仓库的webhook通知(notification)后,对webhook通知中所有的数据进行过滤和分析,得到实际上传的新镜像。
80.作为一种实施方式,可以新增一个接收镜像更新的网络(web)接口,然后,可以通过该web接口,接收镜像仓库的webhook通知;在一个示例中,可以基于镜像仓库的registry服务发送上述webhook通知。
81.在一种实施方式中,可以通过重新确定镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正。
82.这里,镜像仓库中至少一个镜像可以是镜像仓库中的一个或几个镜像,也可以是镜像仓库中的所有镜像。
83.可以理解地,在实际实施时,镜像仓库中镜像的空间使用量会因为一些客观因素产生变化,导致得到的镜像仓库中镜像的空间使用量会存在一定的误差,而在本发明实施例中,通过重新确定镜像仓库中镜像的空间使用量
84.对于对上述至少一个镜像的空间使用量进行校正的实现方式,在一个示例中,可以在在定时时间到达时,通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正;也就是说,可以通过设定定时任务,实现对至少一个镜像的空间使用量的定时校正。
85.对于对上述至少一个镜像的空间使用量进行校正的实现方式,在另一个示例中,可以在接收到针对上述至少一个镜像的空间使用量的校正请求时,通过重新确定镜像仓库中至少一个镜像的空间使用量,对至少一个镜像的空间使用量进行校正。这里,校正请求可以携带需要镜像的标识信息,如此,在接收到校正请求时,可以基于校正请求对对应的镜像的空间使用量进行校正,满足实际需求。
86.在前述实施例提出的数据处理方法的基础上,本发明实施例还提出了一种数据处理装置,可以应用于电子设备中。
87.图2为本发明的一种数据处理装置的组成结构示意图,如图2所示,该装置可以包括:第一处理模块201和第二处理模块202,其中,
88.第一处理模块201,用于对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量;
89.第二处理模块202,用于将所述每个镜像的空间使用量确定为:所述每个镜像的实际使用数据的占用空间量。
90.可选地,所述第一处理模块201,用于对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据的占用空间量,包括:
91.对镜像仓库中每个镜像的各版本去除重复的镜像层数据,得到所述每个镜像的实际使用数据;
92.根据底层镜像层信息,确定所述每个镜像的实际使用数据的占用空间量。
93.可选地,所述镜像仓库包括至少两个镜像空间,每个镜像空间包括至少一个镜像;所述第二处理模块202,还用于确定每个镜像空间的所有镜像的空间使用量。
94.可选地,所述第二处理模块202,还用于接收上传至所述镜像仓库中的新镜像;确定所述新镜像的空间使用量;根据所述新镜像的空间使用量,更新镜像仓库中每个镜像的
空间使用量。
95.可选地,所述第二处理模块202,用于确定所述新镜像的空间使用量,包括:
96.对所述新镜像的各版本去除重复的镜像层数据,得到所述新镜像的实际使用数据的占用空间量;将所述新镜像的空间使用量确定为:所述新镜像的实际使用数据的占用空间量。
97.可选地,所述第二处理模块202,用于接收上传至所述镜像仓库中的新镜像,包括:接收到所述镜像仓库的网络钩子webhook通知后,根据所述webhook通知中的数据,得到新上传至所述镜像仓库中的新镜像。
98.可选地,所述第二处理模块202,还用于通过新增的网络web接口,接收所述镜像仓库的webhook通知。
99.可选地,所述第二处理模块202,还用于通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正。
100.可选地,所述第二处理模块202,用于通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正,包括:
101.在定时时间到达时,通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正;
102.或者,在接收到针对所述至少一个镜像的空间使用量的校正请求时,通过重新确定所述镜像仓库中至少一个镜像的空间使用量,对所述至少一个镜像的空间使用量进行校正。
103.所述装置集成部署于容器或容器集群中;具体实现时,可以将上述装置打包成容器镜像,从而将上述装置集成部署于容器或容器集群中。
104.可以理解地,通过将上述数据处理装置集成部署于容器或容器集群中,可以实现对数据处理装置的一键自动化部署和大规模部署。
105.上述第一处理模块201和第二处理模块202均可由位于电子设备中的处理器实现,上述处理器为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
106.本发明实施例还提出了另一种数据处理装置,图3为本发明的另一种数据处理装置的组成结构示意图,如图3所示,该装置可以包括:空间使用量初始化模块301、使用量增量更新模块302、使用量校正模块303和数据存储模块304。
107.空间使用量初始化模块301,用于在上述另一种数据处理装置启动时,自动检测镜像仓库的镜像空间的信息,并对每个镜像空间的各镜像的实际使用量进行自动化统计并存储统计出的数据。
108.在一种实施方式中,空间使用量初始化模块301,可以在上述另一种数据处理装置启动时,根据镜像仓库的当前配置文件,对镜像仓库进行自动扫描,获取镜像仓库中的镜像空间列表,并将镜像空间列表保存在镜像仓库内置的数据结构中。
109.在一种实施方式中,空间使用量初始化模块301,可以对镜像空间列表进行进一步处理,具体地,可以对镜像空间列表中的每一个镜像空间调用镜像仓库api进行深度查询,从而获取每一个镜像空间中的镜像列表,并将每一个镜像空间中的镜像列表保存在镜像仓库内置的数据结构中。
110.在一种实施方式中,空间使用量初始化模块301,可以对每一个镜像空间中的镜像
列表进行进一步处理,具体地址,可以参照步骤101至步骤102,对每个镜像空间中的各镜像进行处理,得到每个镜像空间中的各镜像的空间使用量。
111.在一种实施方式中,空间使用量初始化模块301,可以对每个镜像空间的所有镜像的空间使用量进行汇总处理,并按照不同的镜像空间进行标记,统计出仓库中每个镜像空间的所有镜像的空间使用量;可选地,空间使用量初始化模块301,还可以将每个镜像空间的所有镜像的空间使用量存储到上述第三方数据库中。
112.可以看出,本发明实施例的空间使用量初始化模块301,可以在上述另一种数据处理装置启动时,自动对镜像仓库中的镜像空间的各个镜像的空间使用量进行计算,其中,每个镜像的空间使用量可以根据底层镜像层数据实时计算,如此,有利于降低同一镜像的不同版本存在镜像层数据重复对镜像的空间使用量统计的影响。
113.图4为本发明中空间使用量初始化模块的工作流程示意图,如图4所示,该工作流程可以包括获取配置文件中的镜像仓库信息、获取镜像仓库中的镜像空间列表、依次获取每个镜像空间中的镜像信息、依次计算每个镜像的空间使用量、数据汇总并更新数据库。
114.在实际应用中,在上述另一种数据处理装置启动前,可以编写另一种数据处理装置启动所需的配置文件,该配置文件可以包括目标镜像仓库的信息列表,该目标镜像仓库的信息列表具体包括镜像仓库的管理员用户名和认证密码、以及镜像仓库的服务地址和服务端口。空间使用量初始化模块301可以在上述另一种数据处理装置启动时,将配置文件挂载到镜像仓库的容器内部的指定目录,空间使用量初始化模块301可以自动检测配置文件中的镜像仓库信息,并将该镜像仓库数据转换为结构化数据以供其他模块使用。
115.进一步地,空间使用量初始化模块301可以根据配置文件中的镜像仓库信息,调用镜像仓库底层的服务接口,并进行身份认证,在通过身份认证后,可以向镜像仓库发送镜像空间列表获取请求,以获取镜像仓库中的镜像空间列表,然后,可以将镜像仓库中的镜像空间列表转换为结构化列表数据以供后续使用。
116.进一步地,空间使用量初始化模块301可以根据镜像仓库中的镜像空间列表,调用镜像仓库底层的服务接口,向镜像仓库发送镜像获取请求,以获取镜像空间的所有镜像列表,最后,可以汇总出所有镜像空间中的镜像列表信息,并可以将所有镜像空间中的镜像列表信息转换为结构化数据以供后续使用。
117.图5为本发明中空间使用量初始化模块计算单个镜像的空间使用量的流程示意图,如图5所示,针对单个镜像,空间使用量初始化模块301首先可以向镜像仓库中的registry服务发起令牌(token)请求,根据返回的token信息向registry服务发送获取镜像版本列表的请求,以获取registry服务返回的镜像版本列表;然后获取所有镜像版本的镜像层数据清单,即获取所有镜像版本的manifests文件;然后根据所有镜像版本的镜像层数据清单进行处理,即去掉重复的镜像层,统计出所有镜像版本实际占用空间的镜像层清单;根据清单到仓库底层registry服务中,抓取底层镜像层数据,将各个镜像版本实际占用空间进行求和,得到上述单个镜像的空间使用量。
118.图5中,v1和v2表示单个镜像的不同镜像版本,“aaaaaa”和“bbbbbb”表示v1中的镜像层数据,“aaaaaa”和“cccccc”表示v2中的镜像层数据,可见,“aaaaaa”为v1和v2中重复的数据,通过去除重复的镜像层数据,得到单个镜像的所有镜像版本实际占用空间的镜像层清单,单个镜像的所有镜像版本实际占用空间的镜像层清单包括“aaaaaa”、“bbbbbb”和

cccccc”;进而,通过抓取底层镜像层数据,得到单个镜像版本的空间使用量。
119.空间使用量初始化模块301进行数据汇总并更新数据库的实现方式为:空间使用量初始化模块301可以对每个镜像空间的所有镜像的空间使用量进行汇总处理,并按照不同的镜像空间进行标记,统计出仓库中每个镜像空间的所有镜像的空间使用量;还可以调用数据存储模块,将每个镜像空间的所有镜像的空间使用量存储到上述第三方数据库中。
120.使用量增量更新模块302,用于当镜像仓库接收到推送的新镜像时,实时监测该新镜像信息,并根据该新镜像信息动态计算新镜像的空间使用量,进一步地,可以根据新镜像的空间使用量更新上述第三方数据库中镜像仓库中每个镜像的空间使用量。
121.在一种实施方式中,使用量增量更新模块302,可以在空间使用量初始化模块301统计镜像仓库中镜像的空间使用量之后开始运行;使用量增量更新模块302,用于提供一个接收镜像更新的web接口,然后,可以通过该web接口,接收镜像仓库的registry服务发送的webhook通知。
122.在一种实施方式中,使用量增量更新模块302,可以在接收到webhook通知后,对对webhook通知中所有的数据进行过滤和分析,得到新镜像。
123.在一种实施方式中,使用量增量更新模块302,可以基于步骤101至步骤102,确定新镜像的空间使用量。
124.可见,本发明实施例可以能够对向镜像仓库推送的新镜像进行动态感知,通过拉取底层镜像层数据,可以对推送的新镜像的空间使用量进行统计。
125.图6为本发明中使用量增量更新模块的工作流程示意图,如图6所示,使用量增量更新模块302可以在空间使用量初始化模块301统计镜像仓库中镜像的空间使用量之后启动,此时,使用量增量更新模块302可以对镜像仓库暴露一个webhook地址,每当基于用户指令将新镜像推送至镜像仓库时,镜像仓库中的registry服务便会向使用量增量更新模块302发送webhook通知,
126.使用量增量更新模块302可以处理webhook通知,得到上传的新镜像信息,具体地,使用量增量更新模块302接收到webhook通知后,可以对webhook通知中的数据进行过滤和分析,根据新镜像的特征从webhook通知的数据中确定出新镜像推送的关键参数,新镜像推送的关键参数可以包括镜像仓库地址、镜像空间名、新镜像名称、新镜像版本名称等。
127.使用量增量更新模块302可以计算新镜像的空间使用量,具体地,可以首先获取新镜像的版本列表,根据版本列表判断推送的新镜像版本是否是唯一版本,如果是,则直接获取该镜像版本的manifests文件,根据manifests文件抓取该版本所有的镜像层数据,将抓取的该版本所有的镜像层数据的数据量进行求和,得到本次推送的新镜像的空间使用量;如果不是唯一版本,则先获取该镜像版本的manifests文件,再获取除该版本之外的其他版本的manifests文件,将该版本的manifests文件和其他所有manifests文件进行对比,去除重复的镜像层数据,计算出本次推送新镜像的空间使用量。
128.使用量增量更新模块302还可以根据镜像的空间使用量,更新上述第三方数据库。
129.使用量校正模块303,用于针对上述另一种数据处理装置使用中出现的数据误差情况,动态地对产生使用量误差的镜像空间使用量进行校正并更新上述第三方数据库。
130.在一种实施方式中,使用量校正模块303,可以对通过重新确定所述镜像仓库中镜像的空间使用量,对所述镜像的空间使用量进行校正。可选地,使用量校正模块303,可以对
外提供校正接口,利用该校正接口可以接收定时校正镜像的空间使用量的请求。
131.图7为本发明中使用量校正模块的工作流程示意图,上述另一种数据处理装置运行一段时间后,由于一些操作会导致镜像的空间使用量发生变化,例如,由于删除镜像版本等操作,导致无法通知上述装置更新镜像的空间使用量,从而会导致镜像的空间使用量出现错误;而在本发明实施例中,使用量校正模块303可以在空间使用量初始化模块301统计镜像仓库中镜像的空间使用量之后工作,使用量校正模块303可以对用户提供web api接口,接口符合restapi规范,便于和其他设备集成。
132.如图7所示,当当用户需要对其中一个镜像空间的镜像的空间使用量进行校正时,可以调用前端的接口向后端的使用量校正模块发送校正请求,触发镜像空间的镜像的空间使用量的校正流程。
133.使用量校正模块303,可以在接收到校正请求后,获取镜像空间中的镜像列表,然后,基于本发明前述实施例记载的方法依次计算每个镜像的空间使用量,最后,进行数据汇总并更新数据库;这里,数据汇总并更新数据库的流程与空间使用量初始化模块中数据汇总并更新数据库的流程相同,这里不再赘述。
134.数据存储模块304,用于存储镜像仓库中每个镜像空间中的各镜像的空间使用量,并通过对接上述第三方数据库实现,可以实现对第三方数据接口的统一封装;数据存储模块304,可以根据新镜像的空间使用量,更新上述第三方数据库中的空间使用量数据。
135.在一个具体的示例中,数据存储模块304,可以基于golang语言开发,并对接mysql数据库。
136.在一种实施方式中,空间使用量初始化模块301,可以在确定镜像仓库中每个镜像空间中的各镜像的空间使用量后,调用数据存储模块304,将镜像仓库中每个镜像空间中的各镜像的空间使用量输出至第三方数据库中。
137.在一种实施方式中,本发明实施例的另一种数据处理装置可以打包成镜像,支持容器一键部署,同时可基于kubernetes平台大规模部署,有助于自动化运维。本发明实施例的另一种数据处理装置可以基于通用的镜像仓库并进行二次开发,交付成果为容器镜像。该装置可基于docker容器一键部署,同时也可部署在kubernetes集群中,可以实现高可用和高性能。
138.图8为本发明的另一种数据处理装置在kubernetes集群中部署的示意图,如图8所示,在kubernetes集群中,数据处理装置可以采用多副本pod部署,然后可以通过负载均衡器ingress对外部提供镜像空间的空间使用量查询接口,当其中某些pod处于故障状态时,负载均衡器可以将来自空间使用量查询接口的空间使用量查询请求转发到其它正常的pod上,从而使kubernetes集群实现高可用;同时通过负载均衡器分发请求流量,提高性能。该数据处理装置可以实现对底层镜像仓库的统一操作,可以自动化地对底层镜像仓库中镜像的空间使用量进行统计;另外,通过kubernetes集群的服务(service)对镜像仓库暴露webhook端口,以接收镜像仓库的通知。当有新镜像上传至镜像仓库,或者从镜像仓库下载镜像时,通过对webhook端口的监控,可以实时触发该数据处理装置进行镜像的空间使用量的统计。
139.上述间使用量初始化模块301、使用量增量更新模块302、使用量校正模块303和数据存储模块304均可由位于电子设备中的处理器实现,上述处理器为asic、dsp、dspd、pld、
fpga、cpu、控制器、微控制器、微处理器中的至少一种。
140.另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
141.所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
142.具体来讲,本实施例中的一种数据处理方法对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与一种数据处理方法对应的计算机程序指令被一终端的处理器读取或被执行时,实现前述实施例的任意一种数据处理方法。
143.基于前述实施例相同的技术构思,参见图9,其示出了本发明提供的一种电子设备90,可以包括:存储器91、处理器92及存储在存储器91上并可在处理器92上运行的计算机程序;其中,
144.存储器91,用于存储计算机程序和数据;
145.处理器92,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种数据处理方法。
146.在实际应用中,上述存储器91可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器92提供指令和数据。
147.上述处理器92可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
148.在一些实施例中,本发明实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述
149.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述
150.本技术所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
151.本技术所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
152.本技术所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
153.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方
法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
154.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
再多了解一些

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

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

相关文献