CN104537076B - 一种文件读写方法及装置 - Google Patents
一种文件读写方法及装置 Download PDFInfo
- Publication number
- CN104537076B CN104537076B CN201410850652.4A CN201410850652A CN104537076B CN 104537076 B CN104537076 B CN 104537076B CN 201410850652 A CN201410850652 A CN 201410850652A CN 104537076 B CN104537076 B CN 104537076B
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- stored
- store path
- memory cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件读写方法及装置,一种文件存储方法,包括以下步骤:接收客户机发送的针对待存储文件的存储请求;从一个或多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径;构建所述待存储文件的标准格式存储路径信息;将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机;一种文件读写方法,包括以下步骤:获得文件读写指令;将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;根据转换结果对目标文件进行相应处理。应用本发明实施例所提供的技术方案,可以减少开发人员的工作量,提高工作效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种文件读写方法及装置。
背景技术
随着计算机技术的快速发展,分布式存储***的应用越来越广泛,比如,应用于视频网站中。视频网站的编辑或者外部用户上传的视频源文件,会经过如签名、反显、转码、截图、添加字幕、编辑、安检审核等一系列视频生产过程之后,才能生成可供用户浏览访问的视频文件。视频生产的每一步操作都由相应的客户机完成。在视频生产过程中,视频源文件、生产过程产生的中间文件和最后生成的视频文件的数量多、体积大,这就要求用于视频生产的存储***有足够大的容量并且容易扩展,通常需要使用各类分布式存储***。另外,这些文件类型多样、大小差异较大,单一的分布式存储***往往无法同时满足不同文件的存储需求,需要针对不同文件使用不同类型的分布式存储***。
不同类型的分布式存储***通常会提供不同的访问接口,不同访问接口对应不同存储路径格式。比如,有些分布式存储***(如OpenStack Swift、Amazon S3等)提供HTTP接口,其文件的存储路径通常是用HTTP URL格式来表示;有些分布式存储***(如NFS、GlusterFs、Luster等)提供标准POSIX访问接口,其文件的存储路径通常是用层级存储目录格式来表示。
目前,如果视频网站使用不同类型的分布式存储***,需要开发人员根据不同类型的分布式存储***的不同存储路径格式编写客户机程序,且如果所使用的存储***的类型发生改变,需要对客户机程序做较大改动,工作量较大,工作效率较低。
发明内容
为解决上述问题,本发明实施例公开了一种文件读写方法及装置。技术方案如下:
一种文件存储方法,应用于数据存储***中的管理服务器,所述数据存储***至少包含一台管理服务器和一个存储集群,所述方法包括:
接收客户机发送的针对待存储文件的存储请求;
根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径;
根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
在本发明的一种具体实施方式中,所述存储请求携带有所述待存储文件大小信息,所述根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,包括:
根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;
如果是,则从适合大文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
否则,从适合小文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
在本发明的一种具体实施方式中,所述存储请求携带有与所述待存储文件相关联文件的存储路径信息,所述根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,包括:
根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;
将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
在本发明的一种具体实施方式中,在所述进一步确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,还包括:
判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录;
如果否,则根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
一种文件读写方法,应用于与存储单元进行交互的客户机,所述方法包括:
获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
在本发明的一种具体实施方式中,所述将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,包括:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTPURL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
一种文件存储装置,应用于数据存储***中的管理服务器,所述数据存储***至少包含一台管理服务器和一个存储集群,所述装置包括:
存储请求接收模块,用于接收客户机发送的针对待存储文件的存储请求;
存储单元选择模块,用于根据所述存储请求,从一个或多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
存储路径确定模块,用于进一步确定所述待存储文件在所述存储单元中的存储路径;
存储路径信息构建模块,用于根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
存储路径信息返回模块,用于将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
在本发明的一种具体实施方式中,所述存储请求接收模块接收到的存储请求携带有所述待存储文件大小信息,所述存储单元选择模块,具体用于:
根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;
如果是,则从适合大文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
否则,从适合小文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
在本发明的一种具体实施方式中,所述存储请求接收模块接收到的存储请求携带有与所述待存储文件相关联文件的存储路径信息,所述存储单元选择模块,具体用于:
根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;
将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
在本发明的一种具体实施方式中,还包括:
判断模块,用于在进一步确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录,如果否,则触发存储目录创建模块;
存储目录创建模块,用于在所述判断模块判断结果为否的情况下,根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
一种文件读写装置,应用于与存储单元进行交互的客户机,所述装置包括:
读写指令获得模块,用于获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
存储路径信息转换模块,用于将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
目标文件存储模块,用于在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
目标文件读取模块,用于在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
在本发明的一种具体实施方式中,所述存储路径信息转换模块,具体用于:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTPURL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
应用本发明实施例所提供的技术方案,针对不同类型的存储单元,客户机使用标准格式的存储路径信息,在文件读写操作中,将所使用的标准格式存储路径信息转换为具有相应存储单元类型相对应格式的存储路径信息。开发人员可以根据存储路径信息的标准格式编写客户机程序,不需要针对不同存储单元类型区别处理,即使存储单元类型发生改变,修改标准格式与存储单元类型对应格式的转换关系即可,可以减少开发人员的工作量,提高工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种文件存储方法的实施流程图;
图2为本发明实施例中视频生产***的结构示意图;
图3为本发明实施例中一种文件读写方法的实施流程图;
图4为本发明实施例中一种文件存储装置的结构示意图;
图5为本发明实施例中一种文件读写装置的结构示意图。
具体实施方式
首先对本发明实施例所提供的一种文件存储方法进行说明,该方法应用于数据存储***中的管理服务器,该数据存储***至少包含一台管理服务器和一个存储集群,该方法可以包括以下步骤:
接收客户机发送的针对待存储文件的存储请求;
根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径;
根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
上述步骤的执行主体为数据存储***中的管理服务器。客户机需要存储文件时,与数据存储***进行交互,在数据存储***中,管理服务器可以构建待存储文件的标准格式存储路径信息,客户机根据该标准格式存储路径信息,将待存储文件存储至相应的存储单元中。
本发明实施例还提供了一种文件读写方法,应用于与存储单元进行交互的客户机,该方法可以包括以下步骤:
获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
上述步骤的执行主体为与存储单元进行交互的客户机。在实际应用中,存储单元可能具有不同类型,如需要在客户端进行挂载使用的POSIX类分布式存储集群中的存储单元,或者通过HTTP请求访问的分布式存储集群中的存储单元。客户机获得文件读写指令后,需要将目标文件的标准格式存储路径信息转换为各存储单元类型对应格式的存储路径信息,再根据转换结果存储或访问目标文件。
应用本发明实施例所提供的技术方案,针对不同类型的存储单元,客户机使用标准格式的存储路径信息,在文件读写操作中,将所使用的标准格式存储路径信息转换为具有相应存储单元类型相对应格式的存储路径信息。开发人员可以根据存储路径信息的标准格式编写客户机程序,不需要针对不同存储单元类型区别处理,即使存储单元类型发生改变,修改标准格式与存储单元类型对应格式的转换关系即可,可以减少开发人员的工作量,提高工作效率。
为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例提供的一种文件存储方法的实施流程图,该方法应用于数据存储***中的管理服务器,该数据存储***至少包含一台管理服务器和一个存储集群,该方法可以包括以下步骤:
S110:接收客户机发送的针对待存储文件的存储请求;
本发明实施例所提供的技术方案可以应用于基于混合使用多种类型的分布式存储***工作流或流水线的服务或网站中,如视频网站。为方便理解,以下均以视频网站的视频生产***为例对本发明实施例各步骤进行说明。
视频生产过程,是对视频源文件进行签名、反显、转码、截图、审核等操作的过程,视频生产的每一步操作都由相应的客户机完成。视频生产***中的数据存储***可以包含多种类型的分布式存储***集群,包括但不限于两大类:需要在客户机端进行挂载使用的POSIX类分布式存储***(如GlusterFs、NFS、CIFS等)、通过HTTP请求访问的分布式存储***(如OpenStack Swift、Amazon S3、Rackspace CloudFiles等)。每一种类型的分布式存储***可以包含多个存储集群。如,使用多个GlusterFS存储集群做视频大文件存储,使用一个或多个Openstack Swift集群做图片、日志、字幕、文档等小文件存储。每个存储集群由多台存储服务器构成,每个存储集群可以提供多个虚拟逻辑存储单元,同一个存储集群中的逻辑存储单元类型相同。存储单元是逻辑概念,表明存储集群对外提供的满足指定存储策略的存储能力,通常具有以下特性:限制存储空间大小、限制存储访问方式和接口、限制存储访问权限以及其他和存储管理以及存储能力有关的特性。例如,GlusterFS中的一个卷(volume)即为一个存储单元,NFS中的一个共享目录(export)即为一个存储单元,Swift中的一个租户(tenant)即为一个存储单元。
在视频生产过程中,针对每个客户机而言,客户机需要对待处理文件进行处理,并输出已处理文件,待处理文件即为该客户机的输入文件,已处理文件即为该客户机的输出文件。因为视频生产过程为流水线式的过程,前一客户机需要告知后一客户机其输出文件在数据存储***中的具体存放位置,以便后一客户机访问,并进行下一步处理操作。所以,这里待存储文件可以理解为当前客户机的输出文件,当前客户机需要向数据存储***的管理服务器发送针对待存储文件的存储请求,以便由管理服务器为其分配待存储文件的具体存放位置。
管理服务器接收到客户机发送的针对待存储文件的存储请求后,继续执行步骤S120的操作。
S120:根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径;
在实际应用中,数据存储***的管理服务器可以包含多种服务,以便对存储集群及其提供的存储单元进行管理和维护,如图2所示的视频生产***结构示意图中,客户机与数据存储***进行交互,数据存储***中的管理服务器可以包含业务存储配置服务(BSCS:Business Storage Configuration Service)、存储质量监控服务(SSQM:Storage ServiceQuality Monitor)、文件存储位置服务(FSLS:File Storage Location Service)。
其中,业务存储配置服务(BSCS)为每一个业务设置所需要使用的所有存储单元列表。可以理解的是,在实际的视频生产过程中,工作流或者流水线可能不只一条,往往是不同业务的视频生产因为涉及到的处理步骤不同,所使用工作流或者流水线也会不同,此外,不同业务的视频生产其涉及的文件大小和文件类型也会有不一样,而且文件归档和清除策略都会不一致,对存储容量的需求,以及归档备份的需求都会有不同,因此,使用的存储类型、存储单元的数目和使用时间都会有差异。业务存储配置服务(BSCS)为每一个业务设置所需要使用的所有存储单元列表,该列表包括但不限于以下信息:
存储单元的状态(线上活动状态还是故障运维下线状态);
存储单元的挂载参数信息(针对于需要在客户机上进行挂载的存储单元);
多个存储单元的使用比例权重。
另外,业务存储配置服务(BSCS)还可以设置加入每一个业务的客户机IP列表,只有这个IP列表内的客户机才可以从业务存储配置服务(BSCS)中获取加入的业务的相应存储配置。
当然,业务存储配置服务(BSCS)还可以配置关注业务的客户机列表,当有任何相关报警都会发往关注业务的客户机。
存储质量监控服务(SSQM)用于监控数据存储***中每个存储单元的容量、性能指标和故障,可以对每个存储单元给出服务质量分值,具体的评分算法可以根据不同类型存储***采用不同的服务质量评估算法,本发明对具体的评估算法不做限制,但所得到的服务质量分值必须满足以下条件:
第一个条件:处于故障阶段的存储单元的服务质量分值直接为最低分值;
第二个条件:剩余容量和性能必须体现在服务质量分值上,剩余容量越大,服务质量分值越高,性能越好服务质量分值越高。
这些服务质量分值可以反馈回业务存储配置服务(BSCS)调整存储单元的使用比例权重,自动上线新的存储单元或者下线服务质量分值低于一定阈值的存储单元,从而实现存储***的弹性扩展。
当接收到客户机针对待存储文件的存储请求之后,管理服务器可以通过文件存储位置服务(FSLS)根据该存储请求,从至少一个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径。
具体的,存储请求中可以携带如下信息:客户机所在的业务信息、客户机在该业务中的角色、待存储文件大小(可以是预估的大小)、待存储文件类型等信息,文件存储位置服务(FSLS)根据存储请求中的这些信息,并结合业务存储配置服务(BSCS)提供的业务存储配置信息(如该业务使用的存储单元、存储单元使用比例权重等信息),从处于线上活动状态的存储单元中选择合适的存储单元作为待存储文件的存储单元,并进一步确定待存储文件在存储单元中的存储路径。
在本发明的一种具体实施方式中,如果存储请求携带有所述待存储文件大小信息,则可以根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;如果是,则从适合大文件存储的存储集群类型(如GlusterFS)对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;否则,从适合小文件存储的存储集群类型(如Openstack Swift)对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
在本发明的另一种具体实施方式中,如果存储请求携带有与所述待存储文件相关联文件的存储路径信息,则可以根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
比如,如果待存储文件是由某些输入文件经过当前客户机的生产后生成的输出文件,则客户机在发送的存储请求中可以携带输入文件的存储路径信息,这样,文件存储位置服务(FSLS)可以根据亲缘性策略,为待存储文件默认选用和输入文件相同的存储单元。
S130:根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息;
所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径。
所谓标准格式存储路径,可以用统一资源标识符(URI,Uniform ResourceIdentifier)来表示。
具体的,标准格式存储路径可以是具有以下组成格式的存储路径:
{协议}://{入口}/{业务}/{存储单元标识}/{文件在存储单元中的存储路径}
其中,
协议:为存储单元类型表示符号,如gluster表示GlusterFS分布式存储***、swift表示Swift分布式存储***、nfs表示NFS分布式存储***等;
入口:指存储的方式入口,如对GlusterFS集群的代号,swift集群的proxy-server的入口服务器IP;
业务:指该URI可用于哪个业务,例如用ugc表示UGC生产业务;
存储单元标识:比如sh-ugc1是shdx1这个GlusterFS集群提供的一个存储卷;
文件在存储单元中的存储路径:用于表示文件在指定的存储单元内的存储路径。
在整个视频生产类的流水线中可以用同一个URI找到指定的文件。比如,gluster://shdx1/ugc/sh-ugc1/2014/01/01/aa/bb/cc/aabbcc.jpb,表明aabbcc.jpb文件存储于GlusterFS分布式存储***中的sh-ugc1存储单元中,在该存储单元中的具体存储路径为2014/01/01/aa/bb/cc/。
S140:将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储路径信息将所述待存储文件存储至相应存储单元。
管理服务器根据客户机的存储请求,为待存储文件分配存储位置后,将构建的待存储文件的标准格式存储路径信息返回给客户机,客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。如果存储集群中包含多个逻辑存储单元,因为同一个存储集群的逻辑存储单元类型相同,所以同一个存储集群中的不同逻辑存储单元具有相同格式的存储路径信息,可以直接根据存储单元的类型确定存储路径信息的转换方式。客户机根据转换后的存储路径信息可以访问相应的逻辑存储单元。
在本发明的另一个实施例中,确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,还包括:
判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录;
如果否,则根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
参见图3所示,本发明实施例还提供了一种文件读写方法,应用于与存储单元进行交互的客户机,该方法可以包括以下步骤:
S210:获得文件读写指令;
为方便理解,以下仍以视频网站的视频生产***为例对本发明实施例各步骤进行说明。
在视频生产过程中,客户机需要读取待处理文件,并将已处理文件存储至相应存储单元。其所获得的文件读写指令中,至少携带目标文件的标准格式存储路径信息,在标准格式存储路径信息中至少携带存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径。
S220:将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
可以理解的是,视频生产的存储***可能包含不同类型的分布式存储***,如图2所示的,需要在客户机端进行挂载使用的POSIX类分布式存储***(如GlusterFs、NFS、CIFS等)、通过HTTP请求访问的分布式存储***(如OpenStack Swift、Amazon S3、RackspaceCloudFiles等)等。
客户机根据所获得的文件读写指令中所携带的相关信息,确定目标文件的实际存储单元、该存储单元类型和在该存储单元中的存储路径,将标准格式存储路径信息转换为具有与该存储单元类型相对应格式的存储路径信息。
以需要在客户机端挂载的存储单元类型为例,客户机的本地挂载点和标准格式存储路径信息保持一一对应关系,如,客户机获得的目标文件的标准格式存储路径信息为:gluster://shdx1/ugc/test_volume,其在客户机上对应的挂载点可以是/mnt/gluster/shdx1/ugc/test_volume。
在本发明的一种具体实施方式中,所述将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,包括:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTPURL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
S230:在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
客户机将目标文件的标准格式存储路径信息转换为具有与该存储单元类型相对应格式的存储路径信息之后,如果步骤S210接收到的文件读写指令为写指令,则可以根据转换结果将目标文件存储至相应存储单元。
S240:在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
客户机将目标文件的标准格式存储路径信息转换为具有与该存储单元类型相对应格式的存储路径信息之后,如果步骤S210接收到的文件读写指令为读指令,则可以根据转换结果从相应存储单元中读取目标文件。
应用本发明实施例所提供的技术方案,针对不同类型的存储单元,客户机使用标准格式的存储路径信息,在文件读写操作中,将所使用的标准格式存储路径信息转换为具有相应存储单元类型相对应格式的存储路径信息。开发人员可以根据存储路径信息的标准格式编写客户机程序,不需要针对不同存储单元类型区别处理,即使存储单元类型发生改变,修改标准格式与存储单元类型对应格式的转换关系即可,可以减少开发人员的工作量,提高工作效率。
相应于上面的一种文件存储方法实施例,本发明实施例还提供了一种文件存储装置,应用于数据存储***中的管理服务器,所述数据存储***至少包含一台管理服务器和一个存储集群,该装置可以包括以下模块,参见图4所示:
存储请求接收模块310,用于接收客户机发送的针对待存储文件的存储请求;
存储单元选择模块320,用于根据所述存储请求,从一个或多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
存储路径确定模块330,用于进一步确定所述待存储文件在所述存储单元中的存储路径;
存储路径信息构建模块340,用于根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
存储路径信息返回模块350,用于将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
在本发明的一种具体实施方式中,所述存储请求接收模块310接收到的存储请求携带有所述待存储文件大小信息,所述存储单元选择模块320,具体用于:
根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;
如果是,则从适合大文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
否则,从适合小文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
在本发明的一种具体实施方式中,所述存储请求接收模块接收到的存储请求携带有与所述待存储文件相关联文件的存储路径信息,所述存储单元选择模块320,具体用于:
根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;
将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
在本发明的一个实施例中,该装置还可以包括以下模块:
判断模块,用于进一步确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录,如果否,则触发存储目录创建模块;
存储目录创建模块,用于在所述判断模块判断结果为否的情况下,根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
相应于上面的一种文件读写方法实施例,本发明实施例还提供了一种文件读写装置,应用于与存储单元进行交互的客户机,该装置可以包括以下模块,参见图5所示:
读写指令获得模块410,用于获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
存储路径信息转换模块420,用于将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
目标文件存储模块430,用于在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
目标文件读取模块440,用于在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
在本发明的一种具体实施方式中,所述存储路径信息转换模块420,具体用于:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTPURL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
应用本发明实施例所提供的装置,针对不同类型的存储单元,客户机使用标准格式的存储路径信息,在文件读写操作中,将所使用的标准格式存储路径信息转换为具有相应存储单元类型相对应格式的存储路径信息。开发人员可以根据存储路径信息的标准格式编写客户机程序,不需要针对不同存储单元类型区别处理,即使存储单元类型发生改变,修改标准格式与存储单元类型对应格式的转换关系即可,可以减少开发人员的工作量,提高工作效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种文件存储方法,其特征在于,应用于数据存储***中的管理服务器,所述数据存储***至少包含一台管理服务器和一个存储集群,所述方法包括:
接收客户机发送的针对待存储文件的存储请求;
根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,进一步确定所述待存储文件在所述存储单元中的存储路径;
根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
2.根据权利要求1所述的方法,其特征在于,所述存储请求携带有所述待存储文件大小信息,所述根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,包括:
根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;
如果是,则从适合大文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
否则,从适合小文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
3.根据权利要求1所述的方法,其特征在于,所述存储请求携带有与所述待存储文件相关联文件的存储路径信息,所述根据所述存储请求,从一个或者多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元,包括:
根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;
将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
4.根据权利要求1所述的方法,其特征在于,在所述进一步确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,还包括:
判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录;
如果否,则根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
5.一种文件读写方法,其特征在于,应用于与存储单元进行交互的客户机,所述方法包括:
获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
6.根据权利要求5所述的方法,其特征在于,所述将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,包括:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTP URL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
7.一种文件存储装置,其特征在于,应用于数据存储***中的管理服务器,所述数据存储***至少包含一台管理服务器和一个存储集群,所述装置包括:
存储请求接收模块,用于接收客户机发送的针对待存储文件的存储请求;
存储单元选择模块,用于根据所述存储请求,从一个或多个存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
存储路径确定模块,用于进一步确定所述待存储文件在所述存储单元中的存储路径;
存储路径信息构建模块,用于根据所确定的存储路径,构建所述待存储文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及待存储文件在存储单元中的存储路径;
存储路径信息返回模块,用于将所构建的所述待存储文件的标准格式存储路径信息返回给所述客户机,以由所述客户机根据所述存储单元的类型,将所述待存储文件的标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息,并根据转换结果将所述待存储文件存储至所述存储单元。
8.根据权利要求7所述的装置,其特征在于,所述存储请求接收模块接收到的存储请求携带有所述待存储文件大小信息,所述存储单元选择模块,具体用于:
根据所述待存储文件大小信息,判断所述待存储文件是否为大文件;
如果是,则从适合大文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元;
否则,从适合小文件存储的存储集群类型对应的存储集群中选择一个存储集群提供的逻辑存储单元作为所述待存储文件的存储单元。
9.根据权利要求7所述的装置,其特征在于,所述存储请求接收模块接收到的存储请求携带有与所述待存储文件相关联文件的存储路径信息,所述存储单元选择模块,具体用于:
根据与所述待存储文件相关联文件的存储路径信息,确定与所述待存储文件相关联文件的当前的存储单元;
将确定的与所述待存储文件相关联文件的当前的存储单元作为所述待存储文件的存储单元。
10.根据权利要求7所述的装置,其特征在于,还包括:
判断模块,用于在进一步确定所述待存储文件在所述存储单元中的存储路径之后、所述客户机根据转换结果将所述待存储文件存储至所述存储单元之前,判断所确定的所述待存储文件在所述存储单元中的存储路径在所述存储单元中是否有相对应的存储目录,如果否,则触发存储目录创建模块;
存储目录创建模块,用于在所述判断模块判断结果为否的情况下,根据所确定的存储路径,在所述存储单元中创建相对应的存储目录。
11.一种文件读写装置,其特征在于,应用于与存储单元进行交互的客户机,所述装置包括:
读写指令获得模块,用于获得文件读写指令,所述文件读写指令中携带:目标文件的标准格式存储路径信息,所述标准格式存储路径信息中携带:存储单元类型、存储单元标识以及目标文件在存储单元中的存储路径;
存储路径信息转换模块,用于将所述标准格式存储路径信息转换为:具有与该存储单元类型相对应格式的存储路径信息;
目标文件存储模块,用于在所述文件读写指令为写指令的情况下,根据转换结果将所述目标文件存储至所述存储单元;
目标文件读取模块,用于在所述文件读写指令为读指令的情况下,根据转换结果从所述存储单元中读取所述目标文件。
12.根据权利要求11所述的装置,其特征在于,所述存储路径信息转换模块,具体用于:
从所述标准格式存储路径信息中提取存储单元类型信息;
在存储单元类型为第一类型的情况下,将所述标准格式存储路径信息转换为HTTP URL格式的存储路径信息,所述第一类型的存储单元具有HTTP接口;
在存储单元类型为第二类型的情况下,将所述标准格式存储路径信息转换为层级存储目录格式的存储路径信息,所述第二类型的存储单元具有POSIX接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850652.4A CN104537076B (zh) | 2014-12-31 | 2014-12-31 | 一种文件读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850652.4A CN104537076B (zh) | 2014-12-31 | 2014-12-31 | 一种文件读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104537076A CN104537076A (zh) | 2015-04-22 |
CN104537076B true CN104537076B (zh) | 2017-12-08 |
Family
ID=52852604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410850652.4A Active CN104537076B (zh) | 2014-12-31 | 2014-12-31 | 一种文件读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104537076B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778016B (zh) * | 2015-04-23 | 2018-06-22 | 深圳市美贝壳科技有限公司 | 一种多存储设备环境下的自动存储控制方法 |
CN105426117B (zh) * | 2015-10-27 | 2018-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种***性能优化方法及装置 |
CN107085546B (zh) * | 2016-02-16 | 2020-05-01 | 深信服科技股份有限公司 | 基于故障域技术的数据管理方法和装置 |
CN107800751A (zh) * | 2016-09-07 | 2018-03-13 | 比亚迪股份有限公司 | 车载存储***和方法 |
CN107273423B (zh) * | 2017-05-15 | 2019-04-12 | ***通信集团湖北有限公司 | 多媒体消息数据处理方法、装置和*** |
CN108959300B (zh) * | 2017-05-19 | 2022-07-22 | 华为技术有限公司 | 文件存储方法和存储装置 |
CN107357524B (zh) * | 2017-06-30 | 2021-02-09 | 四川九洲电器集团有限责任公司 | 存储文件的方法、读取文件的方法、电子设备 |
CN107577420B (zh) * | 2017-07-26 | 2021-02-23 | 创新先进技术有限公司 | 文件处理方法和装置、服务器 |
CN107645499A (zh) * | 2017-09-15 | 2018-01-30 | 龙存(苏州)科技有限公司 | 一种分布式存储***的后端框架及其协议实现方法 |
US10866750B2 (en) * | 2018-01-10 | 2020-12-15 | EMC IP Holding Company LLC | System and method for predicting data storage characteristics |
CN108595537A (zh) * | 2018-03-30 | 2018-09-28 | 重庆小雨点小额贷款有限公司 | 一种文件处理方法、装置及对象存储中间件 |
CN108491549B (zh) * | 2018-04-09 | 2022-02-01 | 深圳市茁壮网络股份有限公司 | 一种分布式存储***中文件目录的创建方法及装置 |
CN108965378B (zh) * | 2018-05-29 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种io模式识别方法、***、设备及计算机存储介质 |
CN108924186A (zh) * | 2018-06-04 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种云管平台中文件存储的创建方法和*** |
CN109388613B (zh) * | 2018-09-30 | 2022-04-22 | 联想(北京)有限公司 | 一种文件管理方法和电子设备 |
CN109542861B (zh) * | 2018-11-08 | 2023-06-09 | 浪潮软件集团有限公司 | 一种文件管理方法、装置和*** |
CN112162707A (zh) * | 2020-10-15 | 2021-01-01 | 科大讯飞股份有限公司 | 用于分布式存储***的存储方法、电子设备及存储介质 |
CN115174550B (zh) * | 2022-05-30 | 2024-03-29 | 交通银行股份有限公司 | 一种多标准数据交换*** |
CN117591038B (zh) * | 2024-01-18 | 2024-06-11 | 济南浪潮数据技术有限公司 | 一种数据访问方法、装置、分布式存储***及设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327052A (zh) * | 2012-03-22 | 2013-09-25 | 深圳市腾讯计算机***有限公司 | 数据存储方法和***以及数据访问方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255420B2 (en) * | 2006-05-23 | 2012-08-28 | Noryan Holding Corporation | Distributed storage |
-
2014
- 2014-12-31 CN CN201410850652.4A patent/CN104537076B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327052A (zh) * | 2012-03-22 | 2013-09-25 | 深圳市腾讯计算机***有限公司 | 数据存储方法和***以及数据访问方法和*** |
Non-Patent Citations (2)
Title |
---|
Using the Gfarm File System as a POSIX compatible storage platform for Hadoop MapReduce applications;Shunsuke Mikami 等;《International Conference on Grid Computing》;20111231;第181页-189页 * |
基于分布式索引和目录聚合的海量小文件存储研究;马灿 等;《高技术通讯》;20121231;第22卷(第10期);第1035-1040页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104537076A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104537076B (zh) | 一种文件读写方法及装置 | |
EP3047376B1 (en) | Type-to-type analysis for cloud computing technical components | |
EP3959842A1 (en) | Extracting data from a blockchain network | |
AU2015204742B2 (en) | Methods for generating an activity stream | |
CN104050216B (zh) | 用于定制化资源分配的文件***管理器 | |
JP2019517043A (ja) | ハイブリッドアプリケーションの自動更新 | |
CN106506587A (zh) | 一种基于分布式存储的Docker镜像下载方法 | |
US20190140902A1 (en) | Centralized configuration data in a distributed file system | |
CN104516724A (zh) | 对于复制的数据表的表属性管理 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN103562926B (zh) | 隔离应用的被代理项目访问 | |
US11811839B2 (en) | Managed distribution of data stream contents | |
CN108932257A (zh) | 多维度数据的查询方法及装置 | |
CN112860777B (zh) | 数据处理方法、装置及设备 | |
CN102609446A (zh) | 一种分布式Bloom过滤***及其使用方法 | |
CA2682944A1 (en) | Enhanced database scheme to support advanced media production and distribution | |
EP3042316B1 (en) | Music identification | |
CN105812432A (zh) | 云文档处理方法及装置 | |
US20170235755A1 (en) | Replication of data in a distributed file system using an arbiter | |
US7703106B2 (en) | Discovering and monitoring process executions | |
CN107547607A (zh) | 一种集群迁移方法及装置 | |
CN110188111A (zh) | 一种离线数据批量更新方法、装置和分布式存储*** | |
CN117113313B (zh) | 权限管理方法及装置 | |
CN110019296A (zh) | 数据库查询脚本的生成方法、装置、存储介质及处理器 | |
US20220374810A1 (en) | Accelerating outlier prediction of performance metrics in performance managers deployed in new computing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |