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

文件的存储方法、系统、计算设备及存储介质与流程

2022-02-22 02:48:13 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种文件的存储方法、系统、计算设备及存储介质。


背景技术:

2.目前计算机应用在超大规模数据存储的时候,需要使用分布式集群做文件存储。与分布式集群进行文件存储对应的是单机版文件系统,该系统一般是单机操作系统自带的,比如linux(操作系统)文件系统、windows(操作系统)文件系统。单机文件系统数据一般存储在计算机的磁盘或ssd(solid state disk,固态电子存储芯片阵列制成的硬盘)上,该文件系统只需要管理好这些设备的存储空间接即可。但这种方式由于受单机物理设备尺寸大小的限制,其所支持的存储空间大小也是有限的。


技术实现要素:

3.本技术的多个方面提供一种文件的存储方法、系统、计算设备及存储介质,能够更加灵活且便捷地进行文件存储。
4.本技术实施例提供一种文件的存储方法,包括:确定待存储文件所需的目标存储空间;根据所述目标存储空间,从多个存储设备提供的总存储空间中划分所述目标存储空间,将得到划分后的存储空间,作为所述目标存储空间;根据划分后的存储空间,将所述待存储文件存储至对应的存储设备。
5.本技术实施例还提供一种文件的存储系统,包括:第一集群和第二集群,所述第一集群包括多个物理机,所述第二集群包括多个用于存储文件的存储设备;所述物理机,确定待存储文件所需的目标存储空间;根据所述目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为所述目标存储空间;根据划分后的存储空间,将所述待存储文件存储至对应的存储设备;所述存储设备,存储待存储文件。
6.本技术实施例还提供一种计算设备,包括:存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:确定待存储文件所需的目标存储空间;根据所述目标存储空间,从多个存储设备提供的总存储空间中划分所述目标存储空间,将得到划分后的存储空间,作为所述目标存储空间;根据划分后的存储空间,将所述待存储文件存储至对应的存储设备。
7.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
8.本技术实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现上述方法中的步骤。
9.在本技术实施例中,确定待存储文件所需的目标存储空间;根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间;根据划分后的存储空间,将待存储文件存储至对应的存储设备。
10.其中,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间,从而存储至存储设备。使得对于单个文件而言,其不再受限于单独的存储设备的存储空间,文件可以通过多个存储设备提供的总存储空间进行目标存储空间的划分。由此可以灵活地且便捷地对文件的存储空间进行划分以及存储,提高了文件存储的稳定性以及文件存储的性能。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
12.图1为本技术一示例性实施例的文件的存储方法的流程示意图;
13.图2为本技术一示例性实施例的分布式文件系统的结构的示意图;
14.图3为本技术一示例性实施例的总存储空间的划分的示意图;
15.图4为本技术一示例性实施例的文件的存储系统的结构示意图;
16.图5为本技术一示例性实施例提供的文件的存储装置的结构示意图;
17.图6为本技术一示例性实施例提供的计算设备的结构示意图。
具体实施方式
18.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.根据前文所述可知,单机文件系统数据一般存储在计算机的磁盘或ssd(固态电子存储芯片阵列制成的硬盘)存储设备上,文件系统只需要管理好这些设备的存储空间。但这种方式由于受单机物理设备的尺寸大小的限制,其所支持的存储空间大小也是有限的。
20.此外,对于一些分布式文件系统,其单个文件的存储也是要受单个物理机的存储空间的限制,即在单个物理机的存储空间不能存储该文件时,存储就会失败。
21.基于此,本技术实施例提供了一种文件的存储方法、系统、计算设备及存储介质,能够更加灵活且便捷地进行文件存储,使得单个文件的存储不受单个物理机(即某一个物理机)的存储空间的限制。
22.下面结合方法实施例,针对文件的存储过程进行详细说明。
23.图1为本技术一示例性实施例的一种文件的存储方法的流程示意图。本技术实施例提供的该方法100由计算设备执行,如,物理机等。该方法100包括以下步骤:
24.101:确定待存储文件所需的目标存储空间。
25.102:根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间。
26.103:根据划分后的存储空间,将待存储文件存储至对应的存储设备。
27.需要说明的是,本方法100的执行主体的物理机的形态可以是智能终端中的电脑,也可以是服务器。此外,本技术实施例中可以由多个物理机组成一个集群,每个物理机上部署的服务是相同的,如可以部署分布式文件系统,此外还可以部署有与该系统对应的数据
库应用等。如图2所示,其示出了集群组成的文件存储系统200,在该文件存储系统200中包括实现层201以及存储层202。在实现层201中可以包括多个物理机2011,也可以称为计算机。在每个物理机2011中部署有分布式文件系统2013以及数据库应用2012。以下仅以该集群中的一台物理机为例进行说明,但每台物理机均可以实现本技术实施例中的实施方式。
28.以下针对上述步骤进行详细地阐述:
29.101:确定待存储文件所需的目标存储空间。
30.其中,待存储文件可以是指等待存储的文件,其可以是新创建的文件,文件的创建可以由用户触发来生成的,也可以由物理机自动生成。而待存储文件所需要的存储空间即是目标存储空间。
31.具体的,创建待存储文件的方式可以包括:接收文件的创建请求,根据请求创建对应的文件,作为待存储文件。
32.例如,根据前文所述,用户可以通过智能终端,如电脑,上安装的应用程序访问物理机上的数据库应用。电脑通过用户的指示,向物理机的数据库应用发送数据存储请求,数据库应用接收到该请求后,可以调用本地物理机上的分布式文件系统的接口,访问该分布式文件系统,如根据接收到的数据存储请求,通过该接口,向分布式文件系统发送文件创建请求或数据存储请求(无论是向分布式文件系统发送何种请求,其目的均是在于使得分布式文件系统进行待存储文件的创建,在为待存储文件分配了对应的存储空间后,还可以继续根据该请求进行数据的存储),分布式文件系统根据接收到创建请求或数据存储请求,创建对应的待存储文件。同时,分布式文件系统可以自身默认设置该待存储文件的存储空间的容量,确定对应的存储空间,或者,根据创建请求中携带的存储空间(可以是用户自主设定的,也可以是根据携带的写入数据来确定的)对应的容量,确定该待存储文件的存储空间。除此以外,也可以是分布式文件系统自身先预置好少量待存储文件,并提供给数据库应用,等待其被调用。
33.在设置或创建好待存储文件后,可以为待存储文件确定其所需的目标存储空间,根据前文所述可知,该目标存储空间可以是根据其所述需要存储的数据量而定的,也可以是预置好的。如,可以由数据库应用发送创建请求的时候,就携带有目标存储空间。
34.此外,在创建好待存储文件以及确定目标存储空间后,还可以将文件信息以及目标存储空间的信息发送至数据库应用,以使数据库应用进行记录以及向用户提供其数据所在的文件信息以及文件对应的目标存储空间。
35.还可以是用户通过电脑的应用程序,先向数据库应用发送文件创建请求,该请求中可以携带目标存储空间,然后数据库应用在接收到请求后,根据该请求调用访问接口向分布式文件系统发送文件创建请求,创建文件以及确定对应的目标存储空间。在分布式文件系统创建好待存储文件后以及确定了对应的存储空间,可以返回至数据库应用,以使数据库应用进行记录以及向用户提供其数据所在的文件信息以及文件对应的目标存储空间。然后用户可以基于此进行数据写入等。即用户可以再向数据库应用发送存储数据,进行数据存储。
36.102:根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间。
37.其中,存储设备是指用于进行文件存储的设备,该存储设备也可以是物理机,如电
脑等。多个存储设备是指存储设备具有一个对应的存储集群,在该存储集群中可以是由多个存储设备组成,每个存储设备由于具有一定的存储空间,且每个存储设备的存储空间可以是相同的,也可以是不同的,所以多个存储设备可提供总存储空间给分布式文件系统。如图2所示,根据前文所述,在存储层202包括多个存储设备2021,这多个存储设备2021与部署有分布式文件系统的物理机2011可以通过网络进行连接。每个物理机2011中部署的分布式文件系统可以对多个存储设备2021的物理机进行总存储空间的管理。
38.基于此,根据前文所述,物理机中的分布式文件系统在确定了待存储文件的目标存储空间后,可以从多个存储设备的物理机提供的总存储空间中划分出一部分存储空间,与目标存储空间相同,给待存储文件进行存储。
39.具体的,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,包括:基于总存储空间的均衡划分,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间。
40.其中,均衡划分可以是指以一个存储设备为单位,平摊到每个存储设备上。也可以以总存储空间上的局部存储空间为单位,在该总存储空间中可以具有多个局部存储空间,从而平摊到每个局部存储空间中。
41.例如,根据前文所述,物理机中的分布式文件系统在确定了待存储文件的目标存储空间后,可以根据当前每个存储设备的物理机中所剩存储空间,即可分配存储空间,进行均衡划分,如可以先选择可分配存储空间数量较多的几个物理机,即通过对可分配存储空间进行从大到小的排序,根据该顺序从头选择出几个物理机,然后可以针对选择出的这几个物理机的数量,对目标存储空间进行平均划分,将划分出来的子目标存储空间分摊给这几个物理机即可。
42.此外,其它均衡划分形式也可以,只要符合这个均衡划分的规则即可。
43.具体的,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,包括:确定目标存储空间所需存储单元的个数;从总存储空间中选择对应个数的存储单元,分配给目标存储空间。
44.其中,存储单元可以是指将目标存储空间按照预置空间,如4m兆,等分为多份,每一份就对应一个存储单元。
45.例如,根据前文所述,物理机中的分布式文件系统在确定了待存储文件的目标存储空间后,确定该待存储文件所需的存储单元的个数,如12m兆的文件需要3个存储单元(这里设定一个存储单元是4m兆)。然后,物理机中的分布式文件系统从总存储空间中选择可分配的3个存储单元,供给待存储文件进行存储。
46.具体的,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,包括:确定目标存储空间所需存储单元的个数;从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间,最多存储单元是指最多可分配的存储单元;重复执行从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间的步骤,直至分配给目标存储空间对应个数的存储单元。
47.其中,存储块可以是指目标存储空间按照预置空间,如10g千兆,等分为多份,每一份就对应一个存储块。
48.这里的存储单元可以是指将存储块按照预置空间,如4m兆,等分为多份,每一份就对应一个存储单元。应理解,此处的存储单元实际上也是对总存储空间进行了划分,只是多个存储单元可以组成一个存储块。
49.例如,根据前文所述,物理机中的分布式文件系统在确定了待存储文件的目标存储空间后,确定该待存储文件所需的存储单元的个数,如12m兆的文件需要3个存储单元(这里设定一个存储单元是4m兆)。然后,物理机中的分布式文件系统先开始分配一个存储单元,在这些多个存储块中寻找哪个存储块中具有最多可分配的存储单元,然后在这个存储块中分配一个存储单元给这个待存储文件,如查找发现第20个存储块中未分配的存储单元最多,就从第20个存储块中取一个存储单元给到这个待存储文件,如果分配存储单元数还没到3个,继续重复先开始分配一个存储单元,在这些多个存储块中寻找哪个存储块中具有最多可分配的存储单元,然后在这个存储块中分配一个存储单元给这个待存储文件这个步骤。直至分配够3个存储单元,供给待存储文件进行存储。
50.由此可以是的在为待存储文件划分目标存储空间的时候,可以实现天然的负载均衡存储。
51.基于此,需要先将总存储空间进行划分,具体的,该方法100还包括:根据第一预置空间,划分总存储空间成多个存储块;根据第二预置空间,划分存储块成多个存储单元。
52.其中,第一预置空间可以为10g千兆。
53.第二预置空间可以为4m兆。
54.例如,根据前文所述,如图3所示,示出了总存储空间的划分情况300。其中,总存储空间301是将每台存储设备的存储空间,拼接成一个连续的超大空间,如,每台计算机能提供2t万亿的存储空间,则存储层中10台计算机就能拼接成20t万亿(即20万亿字节)的连续存储空间。物理机上部署的分布式文件系统将这个连续的空间,如从0到20t万亿字节范围,划分成相同大小的存储块3011,如0字节到10g千兆字节、10g千兆字节到20g千兆字节等等,将总存储空间301划分成一系列小的范围段,每个存储块是10g千兆字节。物理机上部署的分布式文件系统再在每个范围段(即存储块3011)内划分存储最小单元,如每个存储块3011中10g千兆字节大小范围,按4m兆字节划分为2560个存储单元3021,每个存储单元是4m兆字节。然后物理机上部署的分布式文件系统就按照这些最小的存储单元3021进行总存储空间301的分配和读写。
55.根据前文所述,为待存储文件划分了对应的存储空间后,还需要对存储空间以及存储空间的存储顺序进行记录。
56.具体的,该方法100还包括:记录待存储文件所分配到的存储单元,以及所分配到的存储单元组成目标存储空间的存储顺序。
57.例如,根据前文所述,物理机中的分布式存储系统记录待存储文件对应的存储单元的信息,如文件id其对应的存储单元的id或者存储地址等,总之可以查找到该存储单元。以及记录存储单元的存储顺序,如划分给待存储文件的存储单元是存储单元a、b、c,这三个存储单元是按照abc的顺序组成目标存储空间,以供给待存储文件,这个存储顺序需要进行记录。
58.需要说明的是,上述存储顺序可以按照分配顺序,将存储单元顺次连接形成目标存储空间,供给待存储文件。
59.除此以外,对于其它的分配方式,如果存在是多个划分出来的存储空间,如存储单元,组成的目标存储空间,那么就需要记录这些划分出来的存储空间之间的存储顺序,就不再赘述了。
60.103:根据划分后的存储空间,将待存储文件存储至对应的存储设备。
61.例如,根据前文所述,物理机中的分布式存储系统将划分后的存储空间用于存储待存储文件,即将待存储文件通过网络连接存储至对应的存储设备中。
62.具体的,根据划分后的存储空间,将待存储文件存储至对应的存储设备,包括:根据通过存储顺序组成目标存储空间的存储单元,将待存储文件存储至对应的存储设备。
63.例如,根据前文所述,根据存储顺序组成目标存储空间的存储单元,物理机中的分布式存储系统将待存储文件通过网络连接存储至对应的存储设备中的存储单元中。
64.由于物理机存在于集群中,所以当本物理机记录了上述存储单元以及存储顺序后,也要同步到该集群中的其它物理机中,使得其它物理机可以根据这些记录信息,进行文件的读取、写入等操作。
65.具体的,该方法100还包括:将记录待存储文件所分配到的存储单元以及存储顺序,发送至集群中的其它物理机的文件存储服务中,进行所分配到的存储单元以及存储顺序的记录。
66.其中,文件存储服务可以是指分布式存储系统,也可以是其它文件系统。
67.例如,根据前文所述,物理机中的分布式存储系统将上述待存储文件的id、对应的存储单元的id或存储地址,以及存储顺序,发送至其集群中其它物理机中的分布式存储系统中,以进行存储和记录。
68.上述创建请求或数据存储请求可以携带写入数据,即存储数据。数据库应用接收到该请求后,调用接口访问分布式文件系统,向分布式文件系统发送该请求,分布式文件系统根据待存储文件对应的存储单元以及存储顺序,进行数据写入或者说是数据存储,至对应的存储单元。
69.需要说明的是,为待存储文件分配目标存储空间是分布式文件系统的最基本的操作,待存储文件的创建、存储、写操作等都涉及到这个基本操作。而其它的文件操作如读文件内容、删除文件等,都按这个文件存储结构为基础进行实现的。
70.以下针对上述文件操作进行详细的说明:
71.具体的,该方法100还包括:接收文件的写请求,根据写请求中的文件信息,查找用于存储文件的存储单元;根据文件对应的当前数据写入位置,从查找到的存储单元中确定进行写数据的存储单元;根据写请求中的写入数据,在确定的存储单元对应的写入范围内进行数据写入,从而完成文件的写入。
72.例如,根据前文所述,用户可以通过电脑上的应用程序向物理机中的数据库应用发送文件的写请求,该请求中可以携带文件信息,如该文件的id,以及写入数据。数据库应用接收到该请求后,调用接口访问分布式文件系统,向分布式文件系统发送该请求,分布式文件系统根据文件的id,确定对应的至少一个存储单元,从而查找到该存储单元,根据文件当前的数据偏移地址,确定对应的存储单元中的待写入存储单元,即当前的可继续写入数据的存储单元。然后根据数据偏移地址,在可继续写入数据的存储单元进行数据写入,并存储。如通过网络连接,发送数据写请求至对应的存储设备,该请求携带数据偏移地址、可继
续写入数据的存储单元以及写入数据,在存储设备接收到该请求后,根据数据偏移地址,在可继续写入数据的存储单元进行数据写入。
73.应理解,当文件中没有任何写入数据的时候,数据偏移地址可以为0,或者一个默认地址。此时,写入操作也可以视为是存储操作。就不再赘述了。
74.此外,用户可以通过数据库应用提供的文件信息来触发上述写入请求。就不再赘述了。
75.具体的,该方法100还包括:接收文件的读请求,根据读请求中的文件信息,查找用于存储文件的存储单元,以及存储单元的存储顺序;根据存储顺序以及读请求中的读取信息,读取存储单元中的存储数据,从而完成文件的读取。
76.例如,根据前文所述,用户通过电脑上的应用程序向物理机中的数据库应用发送文件的读请求,该请求中可以携带文件信息,如该文件的id。数据库应用接收到该请求后,调用接口访问分布式文件系统,向分布式文件系统发送该请求,分布式文件系统根据文件的id,确定对应的至少一个存储单元以及存储顺序,从而查找到该存储单元,根据存储顺序,顺序读取文件中的数据返回至数据库应用,以使数据库应用返回至用户的电脑。如,通过网络连接,发送数据读请求至对应的存储设备,或者,在存储设备接收到该请求后,该请求携带存储单元,使得存储设备从对应的存储单元进行数据读取,然后根据读取数据的顺序组成完成的读取数据,进行数据返回。
77.除此以外,还可以进行文件的删除以及更新,删除也可以是用户触发的删除,与前文相似的,可以通过删除请求中的文件信息,确定对应的存储单元,然后进行删除存储单元中存储的文件即可。就不再赘述了。
78.对于更新也是,也可以是用户触发的更新,与前文相似的,可以通过删除请求中的文件信息,确定对应的存储单元,与写请求相似的是,发送更新请求,其携带有更新数据,以及更新位置,如数据偏移位置等。就不再赘述了。
79.还需要说明的是,无论什么文件操作,用户都可以通过电脑先发送查询请求至数据库应用,以使数据库应用通过接口查询对应的存储单元,返回至用户的电脑。然后,用户在通过电脑发送要操作的数据至对应的存储设备进行存储单元中的数据写入,读取以及文件删除,以及数据更新等。
80.图4为本技术一示例性实施例提供的一种文件的存储系统的结构示意图。如图4所示,该系统400可以包括:第一集群和第二集群404,第一集群包括多个第二设备402(即物理机),第二集群404包括多个第三设备403(即用于存储文件的存储设备,也可以是物理机),此外,该系统400还包括第一设备401。
81.第二设备402是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行分布式文件存储的管理设备。在物理实现上,第二设备402可以是任何能够提供计算服务,响应服务请求,并进行数据处理的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等,其上构架有数据库。第二设备402的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
82.第三设备403是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行文件存储的存储设备。在物理实现上,第三设备403可以是任何能够提供计算服务,响应服务请求,并进行数据处理的设备,例如可以是云服务器、云主机、虚拟中心、常规
服务器等等,其上构架有数据库。第三设备403的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
83.其中,第一设备401可以是有一定计算能力的设备,可以实现向第二设备402发送数据的功能,也可以接收第二设备402发送的数据。第一设备401的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-only memory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operating system,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备401可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
84.具体的,第二设备402,确定待存储文件所需的目标存储空间;根据目标存储空间,从多个第三设备403提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间;根据划分后的存储空间,将待存储文件存储至对应的第三设备403。
85.具体的,第二设备402,基于总存储空间的均衡划分,根据目标存储空间,从多个第三设备403提供的总存储空间中划分目标存储空间。
86.具体的,第二设备402,确定目标存储空间所需存储单元的个数;从总存储空间中选择对应个数的存储单元,分配给目标存储空间。
87.具体的,第二设备402,确定目标存储空间所需存储单元的个数;从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间,最多存储单元是指最多可分配的存储单元;重复执行从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间的步骤,直至分配给目标存储空间对应个数的存储单元。
88.此外,第二设备402,根据第一预置空间,划分总存储空间成多个存储块;根据第二预置空间,划分存储块成多个存储单元。
89.此外,第二设备402,记录待存储文件所分配到的存储单元,以及所分配到的存储单元组成所述目标存储空间的存储顺序。
90.具体的,第二设备402,根据通过存储顺序组成目标存储空间的存储单元,将待存储文件存储至对应的第三设备403。
91.此外,第二设备402,将记录待存储文件所分配到的存储单元以及存储顺序,发送至集群中的其它物理机的文件存储服务中,进行所分配到的存储单元以及存储顺序的记录。
92.此外,第二设备402,接收文件的读请求,根据读请求中的文件信息,查找用于存储文件的存储单元,以及存储单元的存储顺序;根据存储顺序以及读请求中的读取信息,读取存储单元中的存储数据,从而完成文件的读取。
93.此外,第二设备402,接收文件的写请求,根据写请求中的文件信息,查找用于存储文件的存储单元;根据文件对应的当前数据写入位置,从查找到的存储单元中确定进行写数据的存储单元;根据写请求中的写入数据,在确定的存储单元对应的写入范围内进行数
据写入,从而完成文件的写入。
94.具体的,第一设备401,发送文件的写请求,或读请求,至第二设备402。
95.需要说明的是,在系统400中未能完全阐述的内容请参见前文方法100中的内容,其具体的实施方式也请参见前文所述的方法100的具体实施方式,此处就不再赘述。
96.在本技术实施例的数据库中的文件存储的场景中,如图4所示,用户可以通过第一设备401(如电脑)上的安装的应用程序访问第二设备402,如物理机,的数据库应用。电脑通过用户的指示,向物理机的数据库应用发送数据存储请求,即执行步骤411:发送数据存储请求,数据库应用接收到该请求后,可以调用本地物理机上的分布式文件系统的接口,访问该分布式文件系统,如根据接收到的数据存储请求,通过该接口,向分布式文件系统发送文件创建请求或者数据存储请求,分布式文件系统根据接收到创建请求或数据存储请求,创建对应的待存储文件。同时,分布式文件系统可以自身默认设置该待存储文件的存储空间的容量,确定对应的存储空间,或者,根据创建请求中携带的存储空间对应的容量,确定该待存储文件的存储空间。
97.物理机上部署的分布式文件系统将这个多个第三设备403(如存储设备)的总存储空间,如从0到20t万亿字节范围,划分成相同大小的存储块,如0字节到10g千兆字节、10g千兆字节到20g千兆字节等等,将总存储空间划分成一系列小的范围段,每个存储块是10g千兆。物理机上部署的分布式文件系统再在每个范围段(即存储块)内划分存储最小单元,如每个存储块中10g千兆字节大小范围,按4m兆字节划分为2560个存储单元,每个存储单元是4m兆。然后物理机上部署的分布式文件系统就按照这些最小的存储单元进行总存储空间的分配和读写。
98.物理机中的分布式文件系统在确定了待存储文件的目标存储空间后,确定该待存储文件所需的存储单元的个数,如12m兆的文件需要3个存储单元(这里设定一个存储单元是4m兆)。然后,物理机中的分布式文件系统先开始分配一个存储单元,在这些多个存储块中寻找哪个存储块中具有最多可分配的存储单元,然后在这个存储块中分配一个存储单元给这个待存储文件,如查找发现第20个存储块中未分配的存储单元最多,就从第20个存储块中取一个存储单元给到这个待存储文件,如果分配存储单元数还没到3个,继续重复先开始分配一个存储单元,在这些多个存储块中寻找哪个存储块中具有最多可分配的存储单元,然后在这个存储块中分配一个存储单元给这个待存储文件这个步骤。直至分配够3个存储单元,供给待存储文件进行存储。
99.物理机中的分布式存储系统记录待存储文件对应的存储单元的信息,如文件id其对应的存储单元的id或者存储地址等,总之可以查找到该存储单元。以及记录存储单元的存储顺序,如划分给待存储文件的存储单元是存储单元a、b、c,这三个存储单元是按照abc的顺序组成目标存储空间,以供给待存储文件,这个存储顺序需要进行记录。
100.上述创建请求或数据存储请求可以携带写入数据,即存储数据。数据库应用接收到该请求后,调用接口访问分布式文件系统,向分布式文件系统发送该请求,分布式文件系统根据待存储文件对应的3个存储单元以及存储顺序,进行数据写入或者说是数据存储,至对应的存储单元。如,分布式文件系统向对应的物理机发送数据存储请求,即执行步骤412:发送数据存储请求,该请求携带存储数据以及对应的存储单元,物理机接收到该请求后,进行数据存储。并执行步骤413:发送存储结果,如存储成功,至分布式文件系统,分布式文件
系统再将该存储结果返回至数据库应用,数据库应用执行步骤414:发送存储结果,如存储成功,至用户的电脑,进行展示。
101.此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
102.在上述本实施例中,第一设备401、第二设备402以及第三设备403进行网络连接。若第一设备401、第二设备402以及第三设备403是通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g (lte )、wimax、5g等中的任意一种。
103.图5为本技术一示例性实施例提供的一种文件的存储装置的结构框架示意图。该装置500可以应用于物理机,如计算机。该装置500包括:确定模块501、划分模块502以及存储模块503;以下针对各个模块的功能进行详细的阐述:
104.确定模块501,用于确定待存储文件所需的目标存储空间。
105.划分模块502,用于根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为所述目标存储空间。
106.存储模块503,用于根据划分后的存储空间,将待存储文件存储至对应的存储设备。
107.具体的,划分模块502,用于基于总存储空间的均衡划分,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间。
108.具体的,划分模块502,包括:第一确定单元,用于确定目标存储空间所需存储单元的个数;第一选择单元,用于从总存储空间中选择对应个数的存储单元,分配给目标存储空间。
109.具体的,划分模块502,包括:第二确定单元,用于确定目标存储空间所需存储单元的个数;第二选择单元,用于从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间,最多存储单元是指最多可分配的存储单元;重复执行第二选择单元中从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间的步骤,直至分配给目标存储空间对应个数的存储单元。
110.此外,划分模块502,用于根据第一预置空间,划分总存储空间成多个存储块;根据第二预置空间,划分存储块成多个存储单元。
111.此外,该装置500还包括:记录模块,用于记录待存储文件所分配到的存储单元,以及所分配到的存储单元组成目标存储空间的存储顺序。
112.具体的,存储模块503,用于根据通过存储顺序组成目标存储空间的存储单元,将待存储文件存储至对应的存储设备。
113.此外,该装置500还包括:同步模块,用于将记录待存储文件所分配到的存储单元以及所述存储顺序,发送至集群中的其它物理机的文件存储服务中,进行所分配到的存储单元以及存储顺序的记录。
114.此外,该装置500还包括:查找模块,用于接收文件的读请求,根据读请求中的文件信息,查找用于存储文件的存储单元,以及存储单元的存储顺序;读取模块,用于根据存储顺序以及读请求中的读取信息,读取存储单元中的存储数据,从而完成文件的读取。
115.此外,查找模块,还用于接收文件的写请求,根据写请求中的文件信息,查找用于
存储文件的存储单元;确定模块501,还用于根据文件对应的当前数据写入位置,从查找到的存储单元中确定进行写数据的存储单元;该装置500还包括:写入模块,用于根据写请求中的写入数据,在确定的存储单元对应的写入范围内进行数据写入,从而完成文件的写入。
116.本装置500中未能详尽的内容请参考前文所述,就不再赘述。
117.以上描述了图5所示的装置500的内部功能和结构,在一个可能的设计中,图5所示的装置500的结构可实现为计算设备,如,计算机。如图6所示,该设备600可以包括:存储器601、处理器602;
118.存储器601,用于存储计算机程序。
119.处理器602,用于执行计算机程序,以用于:确定待存储文件所需的目标存储空间;根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间,将得到划分后的存储空间,作为目标存储空间;根据划分后的存储空间,将待存储文件存储至对应的存储设备。
120.具体的,处理器602,具体用于:基于总存储空间的均衡划分,根据目标存储空间,从多个存储设备提供的总存储空间中划分目标存储空间。
121.具体的,处理器602,具体用于:确定目标存储空间所需存储单元的个数;第一选择单元,用于从总存储空间中选择对应个数的存储单元,分配给目标存储空间。
122.具体的,处理器602,具体用于:确定目标存储空间所需存储单元的个数;从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间,最多存储单元是指最多可分配的存储单元;重复执行从总存储空间中查找具有最多存储单元的存储块,并从最多存储块中选择一个存储单元,分配给目标存储空间的步骤,直至分配给目标存储空间对应个数的存储单元。
123.此外,处理器602,还用于:根据第一预置空间,划分总存储空间成多个存储块;根据第二预置空间,划分存储块成多个存储单元。
124.此外,处理器602,还用于:记录待存储文件所分配到的存储单元,以及所分配到的存储单元组成目标存储空间的存储顺序。
125.具体的,处理器602,具体用于:根据通过存储顺序组成目标存储空间的存储单元,将待存储文件存储至对应的存储设备。
126.此外,处理器602,还用于:将记录待存储文件所分配到的存储单元以及所述存储顺序,发送至集群中的其它物理机的文件存储服务中,进行所分配到的存储单元以及存储顺序的记录。
127.此外,处理器602,还用于:接收文件的读请求,根据读请求中的文件信息,查找用于存储文件的存储单元,以及存储单元的存储顺序;根据存储顺序以及读请求中的读取信息,读取存储单元中的存储数据,从而完成文件的读取。
128.此外,处理器602,还用于:接收文件的写请求,根据写请求中的文件信息,查找用于存储文件的存储单元;根据文件对应的当前数据写入位置,从查找到的存储单元中确定进行写数据的存储单元;根据写请求中的写入数据,在确定的存储单元对应的写入范围内进行数据写入,从而完成文件的写入。
129.另外,本发明实施例提供了一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现图1-3方法实施例中一种文件的存储方法
的步骤。就不再过多赘述了。
130.本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-3方法实施例中一种文件的存储方法的步骤。就不再过多赘述了。
131.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
132.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
133.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
134.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
135.这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
136.这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
137.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
138.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或
非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
139.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
140.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献