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

一种数据备份方法及装置、设备、存储介质与流程

2022-03-26 02:22:45 来源:中国专利 TAG:


1.本技术实施例涉及云存储技术领域,涉及但不限于一种数据备份方法及装置、设备、存储介质。


背景技术:

2.随着互联网行业的发展,大量的数据需要进行存储,而云存储能够通过集群应用、网格技术或分布式文件系统等功能将众多存储节点集合起来协同工作,并对外提供数据存储和业务访问。当集群中的单个存储节点的存储容量达到存储上限时,则需要对集群扩容,而单个存储节点上均衡后的存储空间在扩容后相对于扩容前降低,使得单个存储节点上部分存储时长没有达到存储期限的数据被删除,导致存储节点所存储的数据的留存期缩短。


技术实现要素:

3.有鉴于此,本技术实施例为解决相关技术中存在的至少一个问题而提供一种数据备份方法及装置、设备、存储介质,在集群扩容过程中,避免缩短数据的留存期,且不影响数据的实时读写。
4.本技术实施例的技术方案是这样实现的:
5.第一方面,本技术实施例提供一种数据备份方法,所述方法包括:在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上;在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群。
6.第二方面,本技术实施例提供一种数据备份装置,所述装置包括:迁移模块,用于在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上;添加模块,用于在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群。
7.第三方面,本技术实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据备份方法中的步骤。
8.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据备份方法中的步骤。
9.本技术实施例中,提供了一种数据备份方法,在对集群扩容之前,在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上,所述至少一个第一设备用于对所述集群进行扩容;在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群,从而在集群扩容前,将集群中已有设备的数据迁移至待加入至集群的设备中,并在迁移完成后将待加入的设备加入至集群中对集群扩容,保证集群中已有设备的数据的留存期不会因为集群的扩容而缩短,也不会占用集群调度的资源,从文件系统层面进行数据的迁移,实
现集群的业务层面的不感知,不影响集群的实时业务。
附图说明
10.图1为本技术实施例数据存储系统的可选地架构示意图;
11.图2为本技术实施例数据存储系统的可选地架构示意图;
12.图3为本技术实施例提供的数据备份方法的可选地流程示意图;
13.图4为本技术实施例提供的数据备份方法的可选地流程示意图;
14.图5为本技术实施例提供的数据备份方法的可选地流程示意图;
15.图6为本技术实施例提供的数据迁移方法的可选地流程示意图;
16.图7为本技术实施例提供的第一设备的可选地状态示意图;
17.图8为本技术实施例提供的数据存储系统的可选地流程示意图;
18.图9为本技术实施例提供的数据存储系统的可选地流程示意图;
19.图10为本技术实施例提供的数据存储系统的可选地流程示意图;
20.图11为本技术实施例提供的数据迁移过程的队列示意图;
21.图12为本技术实施例提供的数据存储系统的可选地流程示意图;
22.图13为本技术实施例提供的存储节点在扩容前的数据存储示意图;
23.图14为本技术实施例提供的存储节点在扩容前的数据存储示意图;
24.图15为本技术实施例提供的数据备份装置的可选地结构示意图;
25.图16为本技术实施例提供的计算机设备的一种硬件实体示意图。
具体实施方式
26.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。
27.为了更好地理解本技术,对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
28.1)集群,由一组存储节点组成的系统,能够作为一个整体向用户提供一组网络资源。对于用户而言,不会意识到集群底层的存储节点,而是认为集群为一个系统。一个或多个集群能够构成云存储系统。
29.2)存储节点,即第二设备,构成集群的单个计算机,能够接受集群调度服务器的调度,处理集群所接收到的业务。本技术实施例中,当一个设备用于对集群扩容,在加入集群之前为待加入设备即第一设备,在加入集群后成为存储节点。
30.3)资源节点,在第一设备中建立的逻辑资源空间,一个第一设备中可建立多个资源节点,且各资源节点在逻辑上相互独立。
31.本技术实施例可提供为数据备份方法及装置、设备和存储介质。实际应用中,数据备份方法可由数据备份装置实现,数据备份装置中的各功能实体可以由计算机设备(如服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。
32.本技术实施例的数据备份方法可应用于图1所示的数据存储系统,如图1所示,该数据存储系统包括客户端10和集群20;其中,客户端10中安装有能够访问集群20的访问app或提供访问页面的浏览器,用户可通过访问应用程序或浏览器提供的访问页面对集群20中的数据进行访问。集群20提供存储数据的资源,并向客户端提供服务。客户端10和集群20之间通过网络30进行交互。
33.这里,集群还可接收比如:摄像头、传感器等数据产生设备发送的业务并存储所接收的业务的数据。
34.集群20由多个第二设备201和调度服务器202构成,在一示例中,调度服务器202可实施为实现数据备份方法的数据备份装置。
35.基于图1所示的数据存储系统,在图2中,第一设备40为待加入集群20的设备,以对集群20进行扩容。在一示例中,第一设备40可实施为实现数据备份方法的数据备份装置。第一设备40中可创建能够写入数据的资源节点。
36.需要说明的是,本技术实施例中,对数据存储系统中第二设备201的数量和第一设备40的数量不进行任何的限定。
37.本技术实施例中,由调度设备将第二设备的数据迁移至待加入集群的第一设备的资源节点中。在一示例中,调度设备为调度服务器。在一示例中,调度设备为第一设备,此时,当待加入集群的第一设备包括多个第一设备,则将多个第一设备中的一个第一设备作为主设备来控制第二设备的数据向第一设备的迁移,其他第一设备作为受控于主设备的从设备。
38.在一示例中,调度服务器在对集群扩容之前,将所述集群中第二设备的数据迁移至待加入所述集群的第一设备的资源节点中;其中,所述第一设备用于对所述集群进行扩容;在所述数据迁移完成的情况下,将所述第一设备加入所述集群。第一设备在加入所述集群之前,创建资源节点;将所述集群中第二设备的数据迁入至所述资源节点;在所述数据迁入完成的情况下,加入所述集群。从而在第一设备加入集群之前,第二设备中的数据迁移至第二设备,在完成数据的迁移后,第一设备加入集群;此时,第一设备和第二设备中数据使用空间达到均衡,且第一设备能够接受调度服务器的调度,接受集群接收到的业务。
39.在一示例中,第一设备在加入所述集群之前,创建至少一个资源节点;将所述集群中第二设备的数据迁移至所述资源节点;在所述数据迁移完成的情况下,加入所述集群。另外,作为主设备的第一设备还控制所述集群中第二设备的数据迁移至待加入所述集群的第一设备的资源节点中。
40.结合图1和图2所示的应用场景示意图,本实施例提出一种数据备份方法,能够在不缩短集群中已有设备的数据的留存期的同时,对集群扩容。
41.下面,结合图1和图2所示的数据存储系统的示意图,对本技术实施例提供的数据备份方法、装置、设备和存储介质的各实施例进行说明。
42.本实施例提供一种数据备份方法,该方法应用于调度设备,调度设备可为调度服务器或第一设备,其中,调度服务器可为计算机设备或计算机设备组成的分布式网络,第一设备可为计算机设备。该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
43.图3为本技术实施例的一种数据备份方法的实现流程示意图,如图3所示,该方法可以包括如下步骤:
44.s301、在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;
45.其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上,所述至少一个第一设备用于对所述集群进行扩容。本技术实施例中,所述至少一个资源节点构成资源节点集合。
46.当一集群需要扩容时,第一设备加入该集群所在的云存储系统,而并不加入该集群。其中,第一设备的数量可为一个或多个。第一设备中创建有资源节点,用于第二设备已存储数据的迁移并存储。
47.调度设备确定设定容量,基于设定容量将第二设备中的数据迁移至第一设备的资源节点中。其中,第二设备将数据拷贝至第一设备的资源节点中,并在完成数据的拷贝后,将已经被拷贝过的数据从第二设备中删除。
48.本技术实施例中,设定容量可至少包括以下情况:
49.情况一、设定容量的大小为固定值;
50.情况二、设定容量占第一设备中已存储数据的固定比例;
51.情况三、设定容量占第一设备中已存储数据的目标比例,其中,目标比例的大小与第一设备的数量和第二设备的数量有关;在一示例中,第一设备的数量为n,第二设备的数量为m,目标比例p=n/(m n)。
52.在设定容量为上述情况一的情况下,调度设备可将设定容量分配至至少一个中每一第二设备,并指示各第二设备将所分配的容量的数据拷贝至第一设备。本技术实施例中,当第二设备的数量包括多个的情况下,则不同的第二设备迁出的数据的大小可相同也可不同。比如:设定容量为600兆(m),第二设备包括:设备1和设备2,则向设备1分配的容量为400m,向设备2分配的容量为200m。在一示例中,基于负载均衡,不同第二设备中存储的数据的大小相同,且从不同的第二设备迁移至第一设备中的数据的大小也相同。
53.在设定容量为上述情况二的情况下,调度设备可将设定比例发送至至少一个第二设备中的每一第二设备,由各第二设备分别根据设定比例和自身使用的容量来确定自身需要迁出的数据容量。
54.在设定容量为上述情况三的情况下,调度设备可将目标比例发送至至少一个每一第二设备,由各第二设备根据目标比例和自身使用的容量来确定自身需要迁出的数据容量。此时,所有第二设备所确定的数量容量的总和为设定容量。
55.本技术实施例中,在将第二设备的数据迁移至第一设备的资源节点的过程中,调度设备可监控每一第一设备的迁入状态,以监控每一第一设备迁入的数据容量,也可监控每一第二设备的迁出状态,以确定每一第二设备迁出的数据的容量。
56.在调度设备控制第一设备的迁入状态的情况下,调度设备向第一设备发送迁入状态查询消息,并接收第一设备响应迁入状态查询消息所返回的迁入状态,迁入状态可包括是否迁入完成标识、迁入量等信息。第一设备在完成数据的迁入后,可向调度设备上报迁入状态,以告知调度设备该第一设备完成数据迁入。
57.在调度设备控制第二设备的迁出状态的情况下,调度设备可向第二设备发送迁出
状态查询消息,并接收第二设备响应迁出状态查询消息所返回的迁出状态。其中,迁出状态可包括是否迁出完成标识、迁出量等信息。第二设备在完成向第一设备的数据迁出后,可向调度设备上报迁出状态,以告知调度设备该第二设备完成数据迁出。
58.s302、在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群。
59.在完成设定容量的数据从至少一个第二设备向第一设备的至少一个资源节点的迁移后,调度设备指示至少一个第一设备加入集群。
60.在一示例中,调度设备为调度服务器,调度服务器直接指示所有第一设备加入集群。在一示例中,调度设备为至少一个第一设备中的主设备,则主设备向调度服务器发送迁移完成通知,以告知调度服务器完成第二设备的数据向第一设备的迁移,调度服务器接收到迁移完成通知的情况下,指示所有的第一设备加入集群。
61.需要说明的是,第一设备在进入云存储系统,并未加入集群之前,不接受集群的调度服务器的业务调度,在加入集群后,与第二设备都属于该集群的存储节点,接受集群的调度服务器的业务调度,以执行业务的读写。
62.在完成第二设备的设定容量的数据至第一设备的资源节点的拷贝后,第一设备的状态从扩容状态切换为已完成状态,表征第一设备已完成进入集群的准备,可加入集群。
63.本技术实施例中,基于图2所示的数据存储系统,第一设备40在进入云存储系统后,并未立即加入集群20,调度服务器40不对第一设备进行业务调度,而控制第二设备202中的数据迁移至第一设备40,在第二设备202的数据迁移至第一设备的数据达到设定容量后,将第一设备40加入集群20,对集群20进行扩容,并开始对第一设备进行业务调度,从而在文件系统层面完成数据的迁移,业务层不感知,且数据的迁移过程不影响实时业务的写入。
64.本技术实施例中,调度服务器在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上,所述至少一个第一设备用于对所述集群进行扩容;在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群,从而在集群扩容前,将集群中已有设备的数据迁移至待加入至集群的设备中,并在迁移完成后将待加入的设备加入至集群中对集群扩容,保证集群中已有设备的数据的留存期不会因为集群的扩容而缩短,也不会占用集群调度的资源,从文件系统层面进行数据的迁移,实现集群的业务层面的不感知,不影响集群的实时业务。
65.在一些实施例中,在s301之前,所述方法还包括:根据所述第一设备的数量和所述第二设备的数量,确定待创建的资源节点的总数量;根据所述待创建的资源节点的总数量和所述第一设备的数量,确定在每一所述第一设备中创建资源节点的数量。
66.本技术实施例中,调度设备获取待加入集群的第一设备的数量和集群中第二设备的数量,根据第一设备的数量和第二设备的数量确定需要在所有的第一设备中建立的资源节点的总数量。
67.在一示例中,确定的总数量为第一设备的数量和第二设备的数量的公倍数。比如:第一设备的数量为1,第二设备的数量为3,待创建的资源节点的总数量为3;又比如:第一设备的数量为1,第二设备的数量为3,待创建的资源节点的总数量为6;再比如:第一设备的数量为2,第二设备的数量为3,待创建的资源节点的总数量为6。
68.在确定待创建的资源节点的总数量后,调度设备根据第一设备的数量确定在每一第一设备中创建的资源节点的数量。这里,当第一设备包括多个,在不同的第一设备中创建的资源节点的数量可不同也可相同。在一示例中,第一设备包括设备a和设备b,待创建的资源节点的总数量为6,在设备a中创建的资源节点的数量为4,在设备b中创建的资源节点的数量为2。在一示例中,第一设备包括设备a和设备b,待创建的资源节点的总数量为6,在设备a和设备b中创建的资源节点的数量均为3。
69.本技术实施例中,当在不同的第一设备建立的资源节点的数量相同时,在第一设备中建立的资源节点的数量可为第二设备的数量的整数倍。在一示例中,第一设备的数量为3,则在各第一设备中创建的资源节点的数量为3,即在每个第一设备中创建3个资源节点。在一示例中,第一设备的数量为3,则在各第一设备中创建的资源节点的数量为6,即在每个第一设备中创建6个资源节点。
70.需要说明的是,本技术实施例中,各第一设备的容量可与各第二设备的容量相同,即第一设备中所有资源节点的容量的总和与各第二设备的容量相等。
71.在一些实施例中,在s301之前,还包括:建立每一所述第二设备和每一所述资源节点的对应关系;根据所述对应关系,将所述至少一个资源节点划分为资源节点组,其中,一个资源节点组中的资源节点对应同一第二设备;将所述资源节点组中的资源节点,挂载至对应的第二设备上。
72.调度设备将创建的至少一个资源节点划分为至少一个资源节点组,也就是将资源节点集合划分为至少一个资源节点组,不同的资源节点组对应不同的第二设备,且不同的资源节点组中的资源节点的数量可相同也可不同。
73.这里,调度设备可根据至少一个资源节点中每一资源节点所在的第一设备和各第一设备上的资源节点的数量对每一资源节点进行标识,通过各资源节点的标识建立与第二设备的对应关系。这里,一个第二设备可至少对应一个资源节点,且不同的第二设备对应的资源节点的数量可相同,也可不同。
74.本技术实施例中,一个资源节点组中的资源节点可位于同一第一设备,也可位于多个第一设备,并且,一个第一设备中的资源节点可为多个资源节点组的资源节点。
75.在一示例中,第二设备包括:设备1、设备2和设备3,第一设备包括设备a和设备b,设备a中包括的资源节点包括资源节点a1和资源节点a2,设备b中包括的资源节点包括资源节点b1、资源节点b2、资源节点b3和资源节点b4,则建立的对应关系为:设备1对应资源节点a1和资源节点a2,设备2对应资源节点b1和资源节点b2,设备3对应资源节点b3和资源节点b4。
76.在一示例中,第二设备包括:设备1、设备2和设备3,第一设备包括设备a和设备b,设备a中包括的资源节点包括资源节点a1、资源节点a2和资源节点a3,设备b中包括的资源节点包括资源节点b1、资源节点b2和资源节点b3,则建立的对应关系为:设备1对应资源节点a1和资源节点a2,设备2对应资源节点a3和资源节点b1,设备3对应资源节点b2和资源节点b3。
77.在一示例中,第二设备包括:设备1、设备2和设备3,第一设备包括设备a,设备a中包括的资源节点包括资源节点a1、资源节点a2和资源节点a3,则建立的对应关系为:设备1对应资源节点a1,设备2对应资源节点a2,设备3对应资源节点a3。
78.调度设备在确定资源节点和第二设备的对应关系后,将对应同一第二设备的资源节点划分至同一资源节点组,作为对应该第二设备的资源节点组,从而将至少一个资源节点划分为至少一个资源节点组。
79.在一示例中,设备1对应资源节点a1和资源节点a2,设备2对应资源节点b1和资源节点b2,设备3对应资源节点b3和资源节点b4,则资源节点a1和资源节点a2构成对应设备1的资源节点组,资源节点b1和资源节点b2构成对应设备2的资源节点组,资源节点b3和资源节点b4构成对应设备3的资源节点组。
80.在一示例中,设备1对应资源节点a1和资源节点a2,设备2对应资源节点a3和资源节点b1,设备3对应资源节点b2和资源节点b3,则资源节点a1和资源节点a2构成对应设备1的资源节点组,资源节点a3和资源节点b1构成对应设备2的资源节点组,资源节点b2和资源节点b3构成对应设备3的资源节点组。
81.调度设备将同一资源节点组的所有资源节点挂载至该资源节点组对应的第二设备上。
82.在一示例中,资源节点a1和资源节点a2构成对应设备1的资源节点组,资源节点b1和资源节点b2构成对应设备2的资源节点组,资源节点b3和资源节点b4构成对应设备3的资源节点组,则调度节点将资源节点a1和资源节点a2挂载到设备1上,将资源节点b1和资源节点b2挂载到设备2上,将资源节点b3和资源节点b4挂载到设备3上。
83.在一示例中,资源节点a1和资源节点a2构成对应设备1的资源节点组,资源节点a3和资源节点b1构成对应设备2的资源节点组,资源节点b2和资源节点b3构成对应设备3的资源节点组,则调度节点将资源节点a1和资源节点a2挂载到设备1上,将资源节点a3和资源节点b1挂载到设备2上,将资源节点b2和资源节点b3挂载到设备3上。
84.这里,调度设备在每一第二设备和对应的资源节点组之间分别建立线程,从而在第二设备和资源节点之间建立多线程,以实现多线程拷贝,提高数据迁移速度。在实际应用中,一个第二设备的线程可建立在该第二设备和对应的资源节点组中的一个资源节点之间。
85.在一些实施例中,s301的实施包括:根据所述第一设备的数量和所述第二设备的数量,确定从所述至少一个第二设备上待迁出数据对应的迁出比例;根据所述迁出比例,从所述至少一个第二设备上迁出数据至所述至少一个资源节点中。
86.调度设备获取第一设备的数量和第二设备的数量后,可根据第一设备的数量和第二设备的数量确定迁出比例,此时,设定容量属于上述情况三,确定的迁出比例即为目标比例。
87.在一示例中,迁出比例p1=n/(m n),其中,m为第二设备的数量,n为第一设备的数量。本技术实施例中,所有第二设备中的数据的总容量为s,则整体迁移至第一设备的资源节点上的数据的总容量为sn/(m n),迁移完成后,第二设备的数据的总容量为sm/(m n)。在一示例中,当各第二设备上的容量均衡,则对于一个第二设备而言,迁移完成后,各第二设备的数据的容量为s/(m n)。
88.本技术实施例中,基于负载均衡,第二设备的数据的总容量为s,在扩容前,单台第二设备上存储的数据的容量为:s/m,扩容后,单台第二设备上存储的数据的容量为s/(m n),则一个第二设备待迁出数据的容量如公式(1)所示,
89.s/m-s/(m n)
ꢀꢀꢀ
公式(1);
90.待迁出数据占比扩容前的总数据量的比例即迁出比例如公式(2)所示:
91.(s/m-s/(m n))/(s/m)=n/(m n)
ꢀꢀꢀ
公式(2)。
92.当迁出比例根据第一设备的数量和第二设备的数量确定时,在进行数据迁移前后,能够有效满足负载均衡的要求。
93.调度设备确定迁出比例后,根据迁出比例对从第二设备上迁出的数据进行监控,以确定第二设备的数据是否迁出完全,当迁出的数据的容量与第二设备在迁移前的数据的容量的比例达到迁出比例,则表征第二设备的数据迁出完全。
94.在一些实施例中,所述根据所述迁出比例,从所述至少一个第二设备上迁出数据至所述至少一个资源节点中,包括:
95.分别对每一所述第二设备执行以下处理:获取从所述第二设备迁出的数据容量,以及当前从所述第二设备迁出的数据容量的第一比例,直至所述第一比例达到所述迁出比例;则,停止从所述第二设备迁出数据。
96.这里,调度设备分别对每一第二设备进行监控,对于一个第二设备,获取该第二设备迁出的数据容量,以及迁出的数据容量的第一比例,其中,迁出的数据容量的第一比例为迁出的数据容量与该第二设备的数据的容量的比例。当迁出的数据容量的第一比例达到迁出比例,则认为该第二设备的数据迁出完全,停止从该第二设备中迁出数据。当所有第二设备的数据完成迁出,则认为集群中第二设备的数据完成迁出,停止数据的迁出。
97.在实际应用中,调度设备可通过各第二设备的设备标识将第二设备加入数据源队列,并对应的记录数据源队列中各第二设备对应的第一比例,并将第一比例达到迁出比例的第二设备的标识从数据源队列中移出,当数据源队列中不存在设备标识,则确定集群中所有的第二设备完成数据迁出。
98.在一示例中,迁出比例为1/4,第二设备包括设备1、设备2和设备3,且设备1中的数据量为600m,设备2中的数据量为400m,设备3中的数据量为700m,则分别对设备1、设备2和设备3进行监控,当设备1迁出的数据的容量为100m,则第一比例为1/6,继续从设备1中迁出数据,直到迁出的数据量为150m,即第一比例为1/4,达到迁出比例,停止从设备1迁出数据;当设备2迁出的数据量为100m,即第一比例为1/4,达到迁出比例,停止从设备2迁出数据;当设备3迁出的数据量为150m,则第一比例为3/14,继续从设备3中迁出数据,直到迁出的数据量为175m,即第一比例为1/4,达到迁出比例,停止从设备3迁出数据。
99.在一示例中,迁出比例为1/4,第二设备包括设备1、设备2和设备3,且各第二设备中的数据量为600m,分别对设备1、设备2和设备3进行监控,当设备1迁出的数据量为100m,则第一比例为1/6,继续从设备1中迁出数据,直到迁出的数据量为150m,即第一比例为1/4,达到迁出比例,停止从设备1迁出数据;当设备2迁出的数据量为150m,即第一比例为1/4,达到迁出比例,停止从设备2迁出数据;当设备3迁出的数据量为60m,则第一比例为1/10,继续从设备3中迁出数据,直到迁出的数据量为150m,即第一比例为1/4,达到迁出比例,停止从设备3迁出数据。
100.本技术实施例中,通过迁出比例对每个第二设备进行监控,当从各第二设备迁出的数据容量的第一比例分别达到迁出比例,则从第二设备中迁出的数据的总容量与原有的数据的容量的比例达到迁出比例,从而简单有效地对第二设备的数据迁出过程进行监控。
101.在一些实施例中,所述获取从所述第二设备迁出的数据容量,以及当前从所述第二设备迁出的数据容量的第一比例,直至所述第一比例达到所述迁出比例,包括:对所述第二设备中的文件进行排序,并根据所述排序结果从所述第二设备中的文件中选取目标文件;获取从所述目标文件迁出的数据容量,以及当前从所述目标文件迁出的数据容量的第二比例;若所述第二比例达到所述迁出比例,则根据所述排序结果切换目标文件;并继续获取从切换后的目标文件迁出的数据容量,以及切换后的目标文件迁出的数据容量的第二比例,直至所有的文件分别作为目标文件。
102.本技术实施例中,对于一第二设备,该第二设备可根据该第二设备上的文件的先后顺序逐个将各文件的数据迁出,其中,文件的先后顺序可根据文件信息进行排序得到,文件信息可包括:时间信息、文件大小、文件标识等。本技术实施例对进行排序所依据的文件信息不进行任何的设定。
103.调度设备在监控至少一个第二设备的数据迁出时,针对一第二设备,可获取该第二设备中文件的文件信息,并根据文件信息对各文件进行排序,依据排序结果对各文件进行逐个监控。对于一文件,调度设备获取该文件迁出的数据容量,并获取从该文件迁出的数据容量与该文件的数据容量的比例即第二比例,若第二比例达到迁出比例,则认为该文件的数据拷贝完成,则将目标文件切换为下一文件,以从下一文件迁出数据。在一示例中,设备1中的文件的排序结果为文件1、文件2、文件3至文件10,根据排序结果将文件1作为目标文件,从文件1中的数据迁出,当从文件1中迁出的数据与文件1迁出数据前的容量的比例达到迁出比例,则停止从文件1中迁出数据,并将目标文件切换为文件2,继续从文件2中迁出数据;当从文件2中迁出的数据文件2迁出数据前的容量的比例达到迁出比例,则停止从文件2中迁出数据,并将目标文件切换为文件3,继续从文件3中迁出数据,以此类推,直到将文件10作为目标文件,并从文件10中迁出的数据文件10迁出数据前的容量的比例达到迁出比例,确定从设备1中迁出的数据的容量与设备1的数据的容量达到迁出比例,完成设备1的数据的迁出。
104.在实际应用中,对于一个第二设备,调度设备可将通过各文件的文件标识将文件加入该第二设备对应的文件队列,并对应的记录文件队列中各文件对应的第二比例,并将第二比例达到迁出比例的文件的标识从文件队列中移出,当文件队列中不存在文件标识,则确定该第二设备的完成数据迁出。
105.需要说明的是,本技术实施例中可将一个文件夹下的数据作为一个文件来进行拷贝。在一示例中,第二设备中存储摄像头从3月20号至5月20号采集的数据,且将每天的数据分别存储在一个文件夹中,此时,可以文件夹的时间先后顺序来拷贝各文件夹的顺序,当3月20号对应的文件夹中的数据完成拷贝后,拷贝3月21号对应的文件夹的数据,直到5月20号对应的文件夹的数据完成拷贝,完成该第二设备的数据的拷贝。当调度节点监控到3月20号的数据拷贝完全后,继续监控3月21号的数据的拷贝,直到5月20号的数据拷贝完全,则认为该第二设备的数据完成迁出,停止对该第二设备的监控。需要说明的是,对于每一天对应的文件夹,当从该文件夹中迁出的数据的容量与该文件夹的容量的比例达到迁出比例,则确定该文件夹的数据完成拷贝。
106.本技术实施例中,通过对第二设备中各文件夹的监控来确定各第二设备的数据是否完全,从而提高数据迁移效率的同时,提高监控精确度。
107.在一些实施例中,s301的实施包括:根据所述第一设备的数量和所述第二设备的数量,确定迁入至所述至少一个资源节点中的数据对应的迁入比例;根据所述迁入比例,将数据迁入至所述至少一个资源节点。
108.调度设备获取第一设备的数量和第二设备的数量后,可根据第一设备的数量和第二设备的数量来确定迁入比例,此时,设定容量属于上述情况三,迁入比例为设定容量与第一设备的容量的比例,即第二设备迁移设定容量后剩余的数据的容量与第二设备的容量的比例。
109.在一示例中,迁出比例p2=m/(m n),其中,m为第二设备的数量,n为第一设备的数量。本技术实施例中,第二设备中的数据的总容量为s,则迁入至第一设备的数据的容量为sn/(m n)。对于一个第一设备而言,迁入完成后,该第一设备的数据的容量为s/(m n),与迁出完成后的一个第二设备中的数据的容量相同,则在第一设备加入集群前,实现了负载均衡。
110.当迁入比例根据第一设备的数量和第二设备的数量确定时,集群中的设备在进行数据迁移前后,能够有效满足负载均衡的要求。
111.调度设备确定迁入比例后,根据迁入比例对从迁入至所有的第一设备的数据进行监控,以确定第一设备的数据是否迁入完全,当迁入的数据的容量与第一设备的容量的比例达到迁入比例,则表征第一设备的数据迁入完成。
112.在一些实施例中,所述根据所述迁入比例,将数据迁入至所述至少一个资源节点,包括:
113.分别对每一资源节点组执行以下处理:获取迁入至所述资源节点组的数据容量与所述资源节点组的容量的第三比例,直至所述第三比例达到所述迁入比例;停止向所述资源节点组迁入数据;其中,一个资源节点组中的资源节点对应同一第二设备。
114.这里,调度设备获取至少一个资源节点中每一资源节点组对应的第三比例,以分别对每一资源节点组进行监控。对于一个资源节点组,当迁入的数据的容量与该资源节点组的容量的比例即第三比例达到迁入比例,则认为该资源节点组的数据迁入完成,停止从向该资源节点组迁入数据。当每一资源节点组完成数据的迁入,停止第二设备与第一设备之间的数据迁移。
115.在实际应用中,调度设备可将通过各资源节点组的组标识将各资源节点组加入迁移队列,并对应的记录迁移队列中各资源节点组对应的第三比例,并将第三比例达到迁入比例的资源节点组的组标识从迁移队列中移出,当迁移队列中不存在组标识,则确定所有资源节点组的数据迁移完成。
116.在一示例中,迁入比例为1/4,资源节点组包括组a、组b和组c,且组a的容量为600m,组b的容量为400m,组c的容量为700m,则分别对组a、组b和组c进行监控,当组a迁入的数据量为100m,则第三比例为1/6,继续向组a迁入数据,直到迁入的数据量为150m,即第三比例为1/4,达到迁入比例,停止向组a迁入数据;当组b迁入数据量为100m,即第三比例为1/4,达到迁入比例,停止向组b迁入数据;当组c迁入的数据量为150m,则第三比例为3/14,继续向组c迁入数据,直到迁入的数据量为175m,即第三比例为1/4,达到迁入比例,停止向组c迁入数据。
117.在一示例中,迁入比例为1/4,资源节点组包括组a、组b和组c,且各资源节点组中
的数据量为600m,分别对组a、组b和组c进行监控,当组a迁出的数据量为100m,则第三比例为1/6,继续向组a迁入数据,直到迁入的数据量为150m,即第三比例为1/4,达到迁入比例,停止向组a迁入数据;当组b迁入的数据量为150m,即第三比例为1/4,达到迁入比例,停止向组b迁入数据;当组c迁入的数据量为60m,则第三比例为1/10,继续向组c迁入数据,直到迁入的数据量为150m,即第三比例为1/4,达到迁入比例,停止向组c迁入数据。
118.本技术实施例中,通过迁入比例对每个资源节点组进行监控,当各资源节点组迁入的数据分别达到迁入比例,则向资源节点组迁入的数据的总容量与资源节点组的总容量达到迁入比例,从而简单有效地对第一设备的数据迁入过程进行监控。
119.在一些实施例中,所述获取迁入至所述资源节点组的数据容量与所述资源节点组的容量的第三比例,直至所述第三比例达到所述迁入比例,包括:从所述资源节点组中选取目标资源节点;获取迁入至所述目标资源节点的数据的容量与所述目标资源节点的容量的第四比例;当所述第四比例达到所述迁入比例,切换所述资源节点组中另一资源节点作为目标资源节点,并继续获取迁入至切换后的目标资源节点的数据对应的第四比例,直至所有的资源节点分别作为目标资源节点。
120.本技术实施例中,对于一资源节点组,可根据该资源节点组中各资源节点的空间顺序逐个向各资源节点迁入数据。
121.调度设备在监控资源节点的数据迁入时,针对一资源节点组,可获取该资源节点组中的资源节点的节点信息,并根据各资源节点的空间顺序对各资源节点进行监控,当一资源节点所迁入的数据的容量与该资源节点的容量的比例即第四比例达到迁入比例,则认为该资源节点的数据迁入完成,则将数据迁入下一资源节点。
122.在实际应用中,对于一个资源节点组,调度设备可通过每一资源节点的节点标识将资源节点加入该资源节点组对应的节点队列,并对应的记录节点队列中各资源节点对应的第四比例,并将第四比例达到迁入比例的资源节点的节点标识从设备队列中移出,当节点队列中不存在资源节点的节点标识,则确定该资源节点组的数据迁入完成。
123.在一示例中,资源节点组中的资源节点包括:节点1、节点2、节点3直至节点20,当调度节点监控到节点1的数据迁入完成后,继续监控节点2的数据迁入,直到节点20的数据迁入完成,则认为该资源节点组的数据迁入完成,停止对该资源节点组的监控。
124.本技术实施例中,通过对第一设备中各资源节点的监控来确定各资源节点组的数据的迁入是否完成,从而提高数据迁入效率的同时,提高监控精确度。
125.在实际应用中,存在不同的第二设备中存储的数据的容量不均衡的问题,当一个资源节点组对应的第二设备的数据未迁出完成,但该资源节点组完成迁入的情况下,可等待其他资源节点是否存在空闲资源。当一个资源节点组对应的第二设备的数据迁出完成,但该资源节点组未完成数据迁入的情况下,可将该资源节点组的空闲资源用于其他第二设备的数据的迁入。
126.本技术实施例提供一种数据备份方法,该方法应用于第一设备,其中,第一设备可为计算机设备。该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
127.图4为本技术实施例的一种数据备份方法的实现流程示意图,如图4所示,该方法
可以包括如下步骤:
128.s401、在加入集群之前,创建至少一个资源节点。
129.当一集群需要扩容时,第一设备加入该集群所在的云存储系统,而并不加入该集群。其中,第一设备的数量可为一个或多个。其中,所述第一设备用于对所述集群进行扩容。第一设备中创建有资源节点,以迁移第二设备已存储的数据。
130.当待加入集群的第一设备的数量为多个时,各第一设备中创建的资源节点的数量可相同也可不同。
131.本技术实施例中,所有第一设备中创建的资源节点的总数量可为第二设备的数量的整数倍。在一示例中,各第一设备中创建的资源节点的数量相同,且为第二设备的数量的整数倍。
132.在一示例中,当第一设备的数量为多个,可将多个第一设备中的任一个第一设备作为调度节点,这里,将作为调度节点的第一设备称为主设备,将其他第一设备称为从设备。主设备确定在每一第一设备上创建的资源节点的数量,并在本地创建资源节点的同时,指示从设备创建资源节点。其中,从设备在完成资源节点的创建后,可向主设备发送资源节点创建完成消息。
133.在一示例中,第一设备可接收调度服务器或主设备的指示第一设备建立资源节点的资源创建消息其中,资源创建消息中可携带资源节点数量、大小等控制资源节点的创建的创建参数。第一设备在完成资源节点的创建后,可向调度服务器发送资源节点创建完成通知,指示资源节点创建完成。
134.在本技术实施例中,第一设备可在待加入状态下创建资源节点。第一设备在加入云存储系统之后,在创建资源节点之前,处于进行容量检查的初始化状态。当容量检查完成后,确定其自身的容量能够满足集群的扩容需求后,从初始化状态切换至待加入状态。在一实施例中,第一设备的容量与第二设备的容量相同,以实现负载均衡。
135.s402、将所述集群中至少一个第二设备的数据迁入至所述至少一个资源节点。
136.第一设备将至少一个第二设备中部分第二设备或全部第二设备的数据迁入至自身所创建的至少一个资源节点中。
137.本技术实施例中,迁入待加入集群的所有的第一设备的数据的总和为设定容量。
138.本技术实施例中,第一设备在迁移第二设备的数据至在第一设备所创建的资源节点的过程中,可监控自身的迁入状态,以监控迁入的数据的容量。在第一设备为主设备的情况下,第一设备监控自身的数据迁入状态,并监控其他第一设备的数据迁入状态。在第一设备为从设备的情况下,第一设备接收主设备发送迁入状态查询消息,并返回迁入状态至主设备以响应迁入状态查询消息。
139.本技术实施例中,在第一设备中完成资源节点的创建后,第一设备的状态从待写入状态切换为扩容状态,并在扩容状态下接收第二设备所拷贝的数据的迁入。
140.s403、在所述数据迁入完成的情况下,加入所述集群。
141.需要说明的是,第一设备在进入云存储系统,并未加入集群之前,不接受集群的调度服务器的业务调度,在加入集群后,与第二设备处于同等地位,接受集群的调度服务器的业务调度,以执行业务的读写。
142.在完成第二设备的设定容量的数据至第一设备的迁移后,第一设备的状态从扩容
状态切换为已完成状态,表征第一设备已完成进入集群的准备,可加入集群。
143.本技术实施例中,第一设备的数量为多个时,可在所有的第一设备均完成数据的迁入后,可发送迁移完成通知,以通知调度服务器完成数据迁移。调度服务器在接收到迁移完成通知后,向所有的第一设备发送加入集群的指示,第一设备基于接收到的指示加入集群。
144.本技术实施例中,第一设备在加入所述集群之前,创建资源节点;将所述集群中第二设备的数据迁入至所述资源节点;在所述数据迁入完成的情况下,加入所述集群,从而在集群扩容前,将集群中已有设备的数据迁移至待加入至集群的设备中,并在迁移完成后将待加入的设备加入至集群中对集群扩容,保证集群中已有设备的数据的留存期不会因为集群的扩容而缩短,也不会占用集群调度的资源,从文件系统层面进行数据的迁移,实现集群的业务层面的不感知,不影响集群的实时业务。
145.在一些实施例中,在s402之前,所述方法还包括:确定每一所述资源节点所对应的第二设备;将每一所述资源节点挂载至对应的第二设备。
146.第一设备从调度服务器接收器该第一设备上的各资源节点对应的第二设备的设备标识,并根据接收到的设备标识将各资源节点挂载至对应的第二设备上。
147.这里,当第一设备为主设备,第一设备可建立所述集群中每一所述第二设备和每一所述资源节点的对应关系;根据所述对应关系将至少一个资源节点划分为资源节点组,其中,一个资源节点组中的资源节点对应同一所述第二设备;将所述资源节点组中的资源节点挂载至对应的第二设备上。
148.在一些实施例中,s402的实施包括:确定与所述第二设备的数量和待加入所述集群的第一设备的数量有关的迁入比例;根据所述迁入比例,将数据迁入至所述至少一个资源节点。
149.这里,第一设备可接收调度服务器或其他第一设备发送的迁入比例,也可根据待加入所述集群的所述第一设备的数量和所述集群中所述第二设备的数量确定迁入比例,这里,主设备根据待加入所述集群的所述第一设备的数量和所述集群中所述第二设备的数量确定迁入比例的描述参见调度服务器根据待加入所述集群的所述第一设备的数量和所述集群中所述第二设备的数量确定迁入比例的描述,这里不再赘述。
150.在一些实施例中,在s401之前,还包括:根据待加入所述集群的第一设备的数量和所述第二设备的数量,确定待创建的资源节点的总数量;根据所述总数量和所述第一设备的数量,确定在每一所述第一设备中创建资源节点的数量。
151.此时,第一设备作为主设备,获取待加入集群的第一设备的数量和集群中第二设备的数量,根据第一设备的数量和第二设备的数量确定需要在所有的第一设备中建立的资源节点的总数量。
152.当主设备确定在各第一设备上建立的资源节点的数量后,将其他第一设备对应的数量发送至对应的第一设备,以指示其他第一设备创建资源节点。
153.在一些实施例中,图4所示的数据备份方法还包括:确定与所述第二设备的数量和待加入所述集群的第一设备的数量有关的迁出比例;根据所述迁出比例,从所述至少一个第二设备上迁出数据至所述至少一个资源节点中。
154.此时,第一设备为主设备,第一设备根据待加入所述集群的所述第一设备的数量
和所述第二设备的数量确定迁出比例,根据所述迁出比例,控制从所述至少一个第二设备迁出的数据。
155.这里,第一设备根据迁入比例控制迁入至第一设备的数据,以及根据根据迁出比例控制第二设备迁出的数据的描述参见调度设备的描述,这里不再赘述。
156.在一些实施例中,当第一设备为主设备,第一设备建立每一所述第二设备和每一资源节点的对应关系;根据所述对应关系将所述至少一个资源节点划分为资源节点组,其中,一个资源节点组中的资源节点对应同一所述第二设备;将所述资源节点组中的资源节点挂载至对应的第二设备上。
157.本技术实施例提供的数据备份方法,第一设备在监控自身迁入数据的同时,还能够监控其他第一设备的迁入状态和第二设备的迁出状态,此时,由第一设备控制第二设备向第一设备迁移数据的过程,从而不额外占用集群中调度服务器的资源,从而提高数据迁移效率。
158.下面,以存储的数据为视频数据为例,对本技术实施例提供的数据备份方法进行举例说明。
159.相关技术中,为了避免集群扩容带来的留存期缩短的问题,采用的扩容方案可为:在扩容前,先通过数据拷贝的方式将历史数据进行备份,然后再对集群进行扩容操作,并在集群扩容成功后,将备份的历史数据拷贝回集群中。
160.但该方案存在以下问题:
161.问题一、除待扩容到集群中的设备外,还需提供额外的存储空间以拷贝历史数据,所需成本更高;
162.问题二、待扩容的设备在加入集群后,已经可以由集群分配实时数据读写任务,此时,集群内的设备会进行备份的历史数据的拷贝,无疑会增加存储节点的负担,导致占用带宽、读写性能跟不上等问题,造成数据丢失。
163.本技术实施例提供的数据备份方法能够在集群扩容过程中,避免已存储数据的存留期缩短的问题,同时,在不增加扩容成本的情况下,保证集群的实时业务的正常进行。
164.本技术实施例提供的数据备份方法,如图5所示,包括:
165.s501、调度设备获取集群中设备的个数和容量;
166.s502、调度设备根据集群中设备的个数和容量创建资源节点;
167.这里,一个待加入设备中资源节点的数量为集群中设备的个数的整数倍。其中,一个设备对应一组资源节点,一组资源节点中包括一个或多个资源节点。
168.s503、调度设备格式化资源节点;
169.这里,调度设备对资源节点进行格式化得到空白资源。
170.s504、调度设备将资源节点按照比例平均挂载到集群中的设备上,建立待加入设备与集群的设备之间的多线程;
171.s505、调度设备根据设定的规则将集群的设备上的数据分别拷贝到对应的资源节点。
172.s506、当集群中所有设备的数据拷贝完全,控制待加入设备加入集群。
173.本技术实施例中,对于集群中任意一个设备(称为目标设备)的数据迁出方法,如图6所示,包括:
174.s5051、调度设备将目标设备的文件夹进行排序,并根据排序结果确定目标文件夹;
175.根据时间先后顺序对目标设备中以天为单位的文件夹进行排序,并以时间最早的文件夹作为目标文件夹。这里,将一个文件夹作为一个文件,当文件夹一天为单位时,每一个文件夹中存储对应日期的数据。
176.s5052、调度设备计算目标文件夹的待拷贝数据空间;
177.s5053、调度设备指示目标设备执行目标文件夹的数据拷贝;
178.s5054、调度设备根据待拷贝数据空间判断当前目标文件夹的数据拷贝完全?
179.当拷贝完全,执行s5055,否则,执行s5053;
180.s5055、调度设备判断资源节点的使用空间与资源节点的容量的比例是否达到迁入比例;当达到迁入比例,则执行s5056,否则,执行s5057。
181.s5056、调度设备切换资源节点;在切换资源节点后,执行s5053。
182.s5057、调度设备切换资源节点调度设备判断目标设备数据拷贝是否完全;当未拷贝完全,执行s5058,当拷贝完全,执行s5059。
183.s5058、调度设备切换目标文件夹;
184.这里,调度设备切换目标设备中的另一文件夹作为目标文件夹,并执行s5053。
185.s5059、调度设备将资源节点与目标设备的连接断开,并清理线程。
186.需要说明的是,上述调度设备可为集群中的调度服务器,也可为待加入集群的设备,当待加入集群中的设备包括多个,则其中一个待加入集群的设备为调度设备。
187.当调度设备为待加入集群的设备即待加入设备,该待加入设备的状态如图7所示,包括:状态一、初始化状态701;状态二、待加入状态702;状态三、扩容状态703;状态四、已完成状态704。
188.状态一、初始化状态;
189.此时,待加入设备已加入集群所在的云存储系统,但尚未加入集群。待加入设备进行集群扩容前的容量检查,确定容量是否满足扩容需求。当容量检查能够满足扩容需求即合法后,将待加入设备的状态切换为待加入状态。
190.在一示例中,数据存储系统如图8所示,集群801中包括三个设备:云数据存储虚拟节点(cloud data storage virtual cloud,cdv)1、cdv2和cdv3。其中,cdv1的文件包括:res11、res12、res13和res14,cdv2的文件包括:res21、res22、res23和res24,cdv3的文件包括:res31、res31、res33和res34。待加入的设备为cdv4,cdv4在初始化状态下的中未创建资源节点。
191.状态二、待加入状态;
192.此时,待加入设备获取集群的资源信息,获取的资源信息包括:
193.(1)、集群中总的资源空间容量;
194.(2)、集群中所有资源的总使用空间;
195.(3)、集群中设备的数量;
196.(4)、集群中本次待加入设备的数量;
197.待加入设备根据待加入设备的数量和集群内设备个数的最小整倍数、单个设备上资源总容量在待加入设备上创建资源。
198.在待加入状态下,在cdv4中创建资源节点,如图9所示,在cdv4上创建六个资源节点:new1、new2至new6。
199.需要说明的是,当待加入设备包括多个时,作为调度设备的待加入设备确定需创建的资源节点的数量和容量,并通知其他待加入设备,从而在所有的待加入设备中创建资源节点。
200.此时,由于待加入设备尚未完全加入集群中,资源节点不接受集群的读写任务调度。
201.在创建资源节点后,待加入设备根据比例计算资源节点的允许拷贝空间。然后将资源节点按比例平均挂载到集群的设备上,从而将资源节点分配给集群的各设备,以进行数据拷贝。
202.这里,待加入设备在创建资源节点后,切换至扩容状态。
203.状态三、扩容状态;
204.在扩容状态下,从集群中的设备上进行数据的拷贝至待加入设备的资源节点上。这里,待加入设备可通过并列的线程拷贝集群中的设备上的数据,其中,集群中的每一设备和所挂载的资源节点之间建立一线程。
205.对于图8所示的集群801,资源节点和集群的设备上之间的多线程关系如图10所示,将cdv4上的资源节点new1、new2挂载到cdv1上,将cdv4上的资源节点new3、new4挂载到cdv2上,将cdv4上的资源节点new5、new6挂载到cdv3上,从而将资源节点按比例平均挂载到集群的设备。
206.在资源分配完成后,待加入设备根据设定数据拷贝规则从集群中扫描资源并拷贝数据到空白资源中。
207.设定数据拷贝规则可包括以下三个规则:规则一,待加入设备进行数据迁入的空间选择规则;规则二,集群中设备进行数据迁出的数据选择规则;规则三,数据拷贝的迁移规则。其中:
208.规则一,待加入设备进行数据迁入的空间选择规则如下:
209.已知集群下设备个数为m,待加入设备个数为n,当前所有数据使用总容量s,集群中单个设备的已使用空间为s’。
210.根据负载均衡原则,集群扩容前,单台设备上需要存储的数据的空间大小为:s/m,扩容后,单台设备上需要存储的数据的空间大小为s/(m n),对于已加入集群的设备,需要迁出的数据量如公式(1)所示,
211.s/m-s/(m n)
ꢀꢀꢀ
公式(1);
212.需要迁出的数据占比扩容前的总数据量的大小如公式(2)所示:
213.(s/m-s/(m n))/(s/m)=n/(m n)
ꢀꢀꢀ
公式(2);
214.即对于集群中设备的已使用资源,需要迁出的数据量占已使用空间的n/(m n)。
215.对于所有待加入设备的资源节点,整体需要拷贝的数据如公式(3)所示:
216.(s/m-s/(m n))*m=sn/(m n)
ꢀꢀꢀ
公式(3);
217.则单台待加入设备需要拷贝的数据如公式(4)所示:
218.(sn/(m n))/n=s/(m n)
ꢀꢀꢀ
公式(4)。
219.根据资源节点的资源容量按比例分配计算出允许拷贝空间,当资源节点的资源使
用空间达到允许拷贝空间时,认为当前资源节点已拷贝完成,需要切换资源节点进行数据拷贝。
220.规则二,集群中设备进行数据迁出的数据选择规则如下:
221.集群中设备扫描数据,对以天为单位的文件夹根据时间先后进行排序,每个文件夹录下移出当前文件夹下已使用空间大小为ns

/(m n)的数据,待加入集群的设备个数为n,因此需拷贝至每个待加入设备的数据的大小为s

/(m n)。
222.当一个文件夹中的数据完全拷贝至资源节点后,将已拷贝数据从集群的设备中删除,腾出空间。
223.规则三,数据拷贝的迁移规则,包括:
224.步骤一、调度设备获取待加入设备上属于一组资源节点组的资源节点的节点信息,加入空白资源队列即节点队列中。
225.步骤二、调度设备扫描该资源节点组对应的集群中设备上的所有文件,根据时间先后对所有文件进行排序,并将所有文件加入文件队列。对于一文件,记录当前文件所使用空间t。
226.步骤三、调度设备根据资源节点个数对文件夹进行分组,使得文件夹向指定资源节点同步数据,缩短数据同步时间。当拷贝的数据的容量达到t/(m n)时,将当前操作的文件移出文件队列,切换文件。
227.资源节点每次数据拷贝后都要进行容量校验。当资源节点的使用空间达到允许拷贝空间时,将当前资源节点移出节点队列,切换资源节点。若一资源节点组对应的设备的数据拷贝完全,资源节点组仍有容量剩余,则加入还在运行中的节点队列继续进行数据拷贝;若一设备的数据未拷贝完全,预分配的资源节点的空间已使用完全,死等空闲资源。
228.当资源节点均完成迁入,文件队列无节点残留,断开资源节点和集群内设备的连接,所有设备均完成数据拷贝,待加入设备进入已完成状态。
229.在一示例中,如图11所示,集群的一个设备中的文件包括ipci/20200101、ipci/20200102、ipci/20200103、ipci/20200104、ipci/20200105、ipci/20200106,将这些文件的标识加入文件队列1110,且在各文件标识后对应当前的数据即已使用空间,其中,ipci/20200101的已使用空间为s1且已完成数据迁出,ipci/20200102的已使用空间为s2,ipci/20200103的已使用空间为s3,ipci/20200104的已使用空间为s4,ipci/20200105的已使用空间为s5,ipci/20200106的已使用空间为s6。
230.当ipci/20200101完成数据迁移后,将ipci/20200101加入已完成文件队列1111,将当前拷贝的文件切换文件至ipci/20200102,将ipci/20200102的数据拷贝至资源节点new1,并对ipci/20200102的数据迁出情况和new1的数据迁入情况进行监控。其中,在对ipci/20200102的数据迁出情况判断时,执行步骤1112判断当前文件迁出的数据是否达到目标容量,以判断当前文件ipci/20200102的数据是否迁移完成,其中,目标容量可为s'n/(m n),s'为ipci/20200102的数据容量,n为待加入的设备的数量,m为集群中设备的数量。如果达到,则执行s1113切换文件,如果未完成则执行s1114拷贝数据。在进行数据拷贝时,可执行s1115判断当前资源节点的已使用空间达到允许拷贝空间,以判断new1的使用空间是否达到允许拷贝空间,如果达到,则执行s1116切换资源节点,在切换资源节点时,将当前迁入数据的资源节点切换至空白资源队列1117中的资源节点,其中,空白资源队列1117中
的资源节点包括new2和new3。
231.状态四、已完成状态。
232.待数据拷贝完成后,待加入设备的设备状态更新为已完成状态,调度服务器允许待加入设备加入集群调度队列中,统一由集群进行读写调度,集群内包含新加入资源,且使用空间上达到负载均衡。
233.在一示例中,图8所示的集群在完成资源迁移后的资源状态如图12所示,其中,cdv1、cdv2、cdv3和cdv4中的1201所示的空间为空白空间,cdv1、cdv2和cdv3中的1201所示的空间为迁出数据后所腾出的空间,cdv4中的1201所示的空间为迁入数据后未占用的空间,因此,在通过cdv4对集群801进行扩容的过程中,实现了cdv1、cdv2、cdv3和cdv4之间的负载均衡,且未将cdv1、cdv2和cdv3中的数据丢失,避免了集群801原有数据的留存期的缩短。
234.下面,通过具体的示例对本发明实施例提供的数据备份方法进行进一步说明。其中,集群clu包含设备:cdv1、cdv2和cdv3,待扩容设备cdv4,集群中单个cdv总空间为1200千兆(g),已使用空间均为600g。
235.集群的已使用总空间为600*3=1800g。
236.当集群中加入1台设备后,根据容量均衡原则,每台设备上使用空间应为1800/4=450g。
237.对于单台设备而言,整体需要迁出的数据占比为(600-450)/600=1/4,每个天目录下需迁出的文件空间占比也是1/4。
238.待加入设备cdv4上创建3个大小相同的资源,大小均为1200/3=400g,名为res1、res2和res3,并格式化资源节点。
239.将资源节点分别挂载到已加入集群的设备中,其中,挂载关系为:cdv1-res1,cdv2-res2和cdv3-res3。
240.扫描出cdv1、cdv2和cdv3上所有的文件,并按照天目录从最老到最新进行排序逐个对天目录下文件进行迁移,要求迁移出的数据空间占比达到当前天目录下总空间的1/4,数据迁移后立即删除原cdv上数据,直至数据全部迁移完成。
241.其中,cdv1、cdv2、cdv3和cdv4的数据分布可如图13所示,cdv1的文件夹20200101中的数据包括:1、5、9、10、13、17、19、24、26、28、32、35,cdv2的文件夹20200101中的数据包括:2、6、7、12、15、16、20、23、25、30、31、36,cdv3的文件夹20200101中的数据包括:3、4、8、11、14、18、21、22、27、29、33、34。
242.将cdv1、cdv2、cdv3中的数据迁移至cdv4后,cdv1、cdv2、cdv3和cdv4的数据分布可如图14所示,cdv1的文件夹20200101中的迁出的数据包括:1、5、9,cdv2的文件夹20200101中的迁出的数据包括:12、15、16,cdv3的文件夹20200101中的迁出的数据包括:21、22、27,且将这些迁出的数据迁入cdv4的资源节点20200101中,使得cdv1、cdv2、cdv3和cdv4达到数据均衡。基于图13和图14可知,通过本发明实施例提供的数据备份方法,使得集群扩容后存在以下技术效果:
243.1、在满足集群负载均衡策略的前提下,扩容操作不会缩短录像留存期;
244.2、在文件系统层面进行数据迁移保障容量均衡,业务层不感知;
245.3、数据迁移的过程中不影响实时业务的写入。
246.基于前述的实施例,本技术实施例提供一种数据备份装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(micro control unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
247.图15为本技术实施例的一种数据备份装置的组成结构示意图,如图15所示,所述装置150包括:
248.迁移模块1501,用于在对集群扩容之前,将所述集群中至少一个第二设备的数据迁移至至少一个资源节点中;其中,所述至少一个资源节点位于待加入所述集群的至少一个第一设备上;
249.添加模块1502,用于在所述数据迁移完成的情况下,将所述至少一个第一设备加入所述集群。
250.在一些实施例中,装置150还包括:第一确定模块,用于在控制所述集群中第二设备的数据迁移至待加入所述集群的第一设备的资源节点中之前,根据所述第一设备的数量和所述第二设备的数量,确定待创建的资源节点的总数量;根据所述待创建的资源节点的总数量和所述第一设备的数量,确定在每一所述第一设备中创建资源节点的数量。
251.在一些实施例中,装置150还包括:第一挂载模块,用于在控制所述集群中第二设备的数据迁移至待加入所述集群的第一设备的资源节点中之前,建立所述每一所述第二设备和每一所述资源节点的对应关系;根据所述对应关系,将所述至少一个资源节点划分为资源节点组,其中,一个资源节点组中的资源节点对应同一第二设备;将所述资源节点组中的资源节点,挂载至对应的第二设备上。
252.在一些实施例中,迁移模块1501,还用于根据所述第一设备的数量和所述第二设备的数量,确定从所述至少一个第二设备上待迁出数据对应的迁出比例;根据所述迁出比例,从所述至少一个第二设备上迁出数据至所述至少一个资源节点中。
253.在一些实施例中,迁移模块1501,还用于分别对每一所述第二设备执行以下处理:获取从所述第二设备迁出的数据容量,以及当前从所述第二设备迁出的数据容量的第一比例,直至所述第一比例达到所述迁出比例;则停止从所述第二设备迁出数据。
254.在一些实施例中,迁移模块1501,还用于对所述第二设备中的文件进行排序,并根据所述排序结果从所述第二设备中的文件中选取确定目标文件;获取从所述目标文件迁出的数据容量,以及当前从所述目标文件迁出的数据容量的第二比例;若所述第二比例达到所述迁出比例,则根据所述排序结果切换目标文件;并继续获取从切换后的目标文件迁出的数据容量,以及切换后的目标文件迁出的数据容量的第二比例,直至所有的文件分别作为目标文件。
255.在一些实施例中,迁移模块1501,还用于根据所述第一设备的数量和所述第二设备的数量,确定迁入至所述至少一个资源节点中的数据对应的迁入比例;根据所述迁入比例,将数据迁入至所述至少一个资源节点。
256.在一些实施例中,迁移模块1501,还用于分别对每一资源节点组执行以下处理:获取迁入至所述资源节点组的数据容量与所述资源节点组的容量的第三比例,直至所述第三比例达到所述迁入比例;停止向所述资源节点组迁入数据;其中,一个资源节点组中的资源
节点对应同一第二设备。
257.在一些实施例中,迁移模块1501,还用于从所述资源节点组中选取目标资源节点;获取迁入至所述目标资源节点的数据的容量与所述目标资源节点的容量的第四比例;当所述第四比例达到所述迁入比例,切换所述资源节点组中另一资源节点作为目标资源节点,并继续获取迁入至切换后的目标资源节点的数据对应的第四比例,直至所有的资源节点分别作为目标资源节点。
258.对应地,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据备份方法中的步骤。
259.对应地,本技术实施例提供一种存储介质,也就是计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据备份方法中的步骤。
260.这里需要指出的是:以上装置、存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
261.需要说明的是,图16为本技术实施例计算机设备的一种硬件实体示意图,如图16所示,所述计算机设备1600包括:一个处理器1601、至少一个通信总线1602、至少一个外部通信接口1604和存储器1605。其中,通信总线1602配置为实现这些组件之间的连接通信。其中,所述计算机设备1600包括还可包括用户接口1603,用户接口1603可以包括显示屏,外部通信接口1604可以包括标准的有线接口和无线接口。
262.存储器1605配置为存储由处理器1601可执行的指令和应用,还可以缓存待处理器1601以及计算机设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
263.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
264.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
265.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或
可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
266.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
267.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
268.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
269.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
270.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献