本技术涉及数据存储,具体地,涉及一种基于文件的数据存储方法、电子设备及计算机可读介质。
背景技术:
1、在个人/小型存储领域,一般会使用网络附加存储(network attached storage,nas)技术提供文件存储服务。nas技术对文件提供可靠性的其中一种方案是,将磁盘组成磁盘阵列(redundant arrays of independent disks,raid),再基于raid设备安装文件系统例如第四代扩展文件系统(fourth extended filesystem,ext4);nas技术对文件提供可靠性的另一种方案是,使用具有卷管理功能的文件系统,这类文件系统本身具有磁盘冗余功能,例如动态文件系统(zettabyte file system,zfs)可以构建磁盘池(zpool),磁盘池能够提供与raid类似的存储可靠性。
2、但是,上述两种方案均存在着实现难度较大、成本较高、不灵活等缺点。
技术实现思路
1、本技术旨在一定程度上解决相关技术中的技术问题之一。为此,本技术提供了一种基于文件的数据存储方法、电子设备及计算机可读介质。
2、作为本技术的第一个方面,提供一种基于文件的数据存储方法,所述方法包括:
3、获取待存储文件的目标存储策略;其中,所述目标存储策略从预设的存储模式策略中确定,所述预设的存储模式策略包括单副本存储策略、多副本存储策略、纠删码单次存储策略和纠删码多次存储策略,所述目标存储策略为以下任一或其组合:所述单副本存储策略和所述多副本存储策略的其中之一、所述纠删码单次存储策略和所述纠删码多次存储策略的其中之一;
4、根据所述目标存储策略,将所述待存储文件存储至目标存储模块中;
5、记录所述待存储文件的标识、所述目标存储策略以及所述目标存储模块的标识之间的对应关系。
6、可选地,所述预设的存储模式策略还包括分片策略;所述目标存储策略中包括有所述纠删码单次存储策略或者所述纠删码多次存储策略时,在所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤中,包括:
7、根据所述分片策略,将所述待存储文件划分为多个分片数据;
8、获取所述目标存储策略中包括的所述纠删码单次存储策略或者所述纠删码多次存储策略所配置的子数据数量、冗余数据数量以及冗余算法;
9、将每所述子数据量个的所述分片数据,划分至同一分片数据组中;
10、对于任一所述分片数据组,根据所述冗余算法和该分片数据组中的多个分片数据,计算出所述冗余数据数量个的冗余数据。
11、可选地,所述目标存储策略中包括所述纠删码单次存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,还包括:
12、对于任一所述分片数据组,从当前各存储模块中确定出与所述子数据数量以及冗余数据数量之和相匹配的存储模块,作为该分片数据组对应的目标存储模块;其中,存在两个所述分片数据组,其对应的目标存储模块并不完全相同;
13、对于任一所述分片数据组,将该分片数据组中的多个分片数据以及相应的冗余数据,一一对应地存储至该分片数据组对应的目标存储模块中。
14、可选地,所述目标存储策略中包括所述纠删码多次存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,还包括:
15、获取所述纠删码多次存储策略所配置的纠删码冗余数量;
16、根据所述子数据数量和所述冗余数据数量,从当前各存储模块中确定出多组目标存储模块;其中,所述多组目标存储模块的总组数与所述纠删码冗余数量相匹配,任意两组目标存储模块之间不存在交集;
17、对于任一所述分片数据组,将该分片数据组中的多个分片数据以及相应的冗余数据,一一对应地存储至每组目标存储模块的各存储模块中。
18、可选地,所述分片策略包括等分分片策略或数量分片策略,所述等分分片策略配置有等分数据大小,所述数量分片策略配置有分片数据数量。
19、可选地,所述目标存储策略中包括有所述单副本存储策略或所述多副本存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,包括:
20、获取所述目标存储策略中包括的所述单副本存储策略或所述多副本存储策略所配置的副本拷贝数量;
21、根据预设的存储模块选择策略,从当前各存储模块中确定出与所述副本拷贝数量相匹配的存储模块,作为目标存储模块;
22、将所述待存储文件,分别存储至各所述目标存储模块中。
23、可选地,所述方法还包括:
24、接收客户端发送的文件访问请求,获取其中携带的待访问文件标识、偏移量和访问长度;
25、根据所述待访问文件标识,查询本地记录的文件的标识、存储策略、存储模块的标识之间的对应关系,确定出所述待访问文件的目标存储策略以及待读取存储模块;
26、根据所述待访问文件的目标存储策略以及待读取存储模块,确定出待访问文件;
27、将所述待访问文件中与所述偏移量和所述访问长度相对应的数据返回给所述客户端。
28、可选地,所述获取待存储文件的目标存储策略,包括:
29、获取所述待存储文件的属性信息;
30、根据所述属性信息以及预先配置的存储模式策略使用规则,确定出所述待存储文件的目标存储策略;其中,所述存储模式策略使用规则包括属性信息条件与存储模式策略之间的对应关系,所述属性信息条件与以下任一属性信息或其组合相对应:文件大小信息、文件类型信息、文件子类型信息、文件用户标识、文件版权用户信息、文件设备来源信息、文件业务来源信息。
31、作为本技术的第二个方面,提供一种电子设备,其中,所述电子设备包括:
32、一个或多个处理器;
33、存储器,其上存储有一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本技术第一个方面所述的基于文件的数据存储方法。
34、作为本技术的第三个方面,提供一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本技术第一个方面所述的基于文件的数据存储方法。
35、在本技术实施例所提供的基于文件的数据存储方法中,获取待存储文件的目标存储策略;其中,所述目标存储策略从预设的存储模式策略中确定,所述预设的存储模式策略包括单副本存储策略、多副本存储策略、纠删码单次存储策略和纠删码多次存储策略,所述目标存储策略为以下任一或其组合:所述单副本存储策略和所述多副本存储策略的其中之一、所述纠删码单次存储策略和所述纠删码多次存储策略的其中之一;根据所述目标存储策略,将所述待存储文件存储至目标存储模块中;记录所述待存储文件的标识、所述目标存储策略以及所述目标存储模块的标识之间的对应关系。无需再将磁盘组成raid,不再以磁盘为粒度进行存储,而是以文件为粒度进行存储,减少用户决策行为,提升了存储模块的易用性;通过预设多种存储模式策略,将待存储文件异步写入存储模块,提升了可靠性,并且,具有不同可靠性需求的文件共用存储模块,避免了存储空间浪费和存储空间不足的问题,提升了存储空间的利用率以及数据存储的灵活性。
1.一种基于文件的数据存储方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设的存储模式策略还包括分片策略;所述目标存储策略中包括有所述纠删码单次存储策略或者所述纠删码多次存储策略时,在所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤中,包括:
3.根据权利要求2所述的方法,其特征在于,所述目标存储策略中包括所述纠删码单次存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,还包括:
4.根据权利要求2所述的方法,其特征在于,所述目标存储策略中包括所述纠删码多次存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,还包括:
5.根据权利要求2所述的方法,其特征在于,所述分片策略包括等分分片策略或数量分片策略,所述等分分片策略配置有等分数据大小,所述数量分片策略配置有分片数据数量。
6.根据权利要求1所述的方法,其特征在于,所述目标存储策略中包括有所述单副本存储策略或所述多副本存储策略时,所述根据所述目标存储策略,将所述待存储文件存储至目标存储模块中的步骤,包括:
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1-6中任一项所述的方法,其特征在于,所述获取待存储文件的目标存储策略,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1-8中任一项所述的基于文件的数据存储方法。