CN105069139B - 文件访问方法和文件访问装置以及服务器 - Google Patents

文件访问方法和文件访问装置以及服务器 Download PDF

Info

Publication number
CN105069139B
CN105069139B CN201510511062.3A CN201510511062A CN105069139B CN 105069139 B CN105069139 B CN 105069139B CN 201510511062 A CN201510511062 A CN 201510511062A CN 105069139 B CN105069139 B CN 105069139B
Authority
CN
China
Prior art keywords
file
block
server
file block
accessed
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
Application number
CN201510511062.3A
Other languages
English (en)
Other versions
CN105069139A (zh
Inventor
潘洪安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Antutu Technology Co ltd
Beijing Kingsoft Internet Security Software Co Ltd
Original Assignee
Beijing Antutu Technology Co ltd
Beijing Kingsoft Internet Security Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Antutu Technology Co ltd, Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Antutu Technology Co ltd
Priority to CN201510511062.3A priority Critical patent/CN105069139B/zh
Publication of CN105069139A publication Critical patent/CN105069139A/zh
Application granted granted Critical
Publication of CN105069139B publication Critical patent/CN105069139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种文件访问方法和文件访问装置以及服务器,该文件访问方法包括接收文件访问请求,并根据所述文件访问请求确定要访问的文件;根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。该方法能够提高文件并发访问的性能,保证服务器端为用户提供稳定的服务。

Description

文件访问方法和文件访问装置以及服务器
技术领域
本发明涉及计算机应用系统技术领域,尤其涉及一种文件访问方法和文件访问装置以及服务器。
背景技术
随着互联网用户爆发式地增长,提供网络服务的服务器也面临着性能考验。千万级别甚至是超亿用户同时访问服务器端的文件数据是常见的场景,如视频网站。对于每个文件来说,服务器操作系统单位时间内能同时打开该文件的句柄数是有限个,远低于用户并发访问数,这就是服务器并发访问的性能瓶颈所在。因此,如何提高服务器端文件数据并发访问的性能,是一个值得研究的问题。
目前服务器端文件数据一般采用多点备份的方法来分散文件服务器的访问压力,当文件服务器规模不能得到保证的情况下,仅对文件进行多点备份的方法容易触发并发访问的性能瓶颈,不足以保证服务器端为用户提供稳定的服务。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种文件访问方法,该方法可以提高文件并发访问的性能,保证服务器端为用户提供稳定的服务。
本发明的另一个目的在于提出一种文件访问装置。
本发明的另一个目的在于提出一种服务器。
为达到上述目的,本发明第一方面实施例提出的文件访问方法,包括:接收文件访问请求,并根据所述文件访问请求确定要访问的文件;根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
本发明第一方面实施例提出的文件访问方法,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。
为达到上述目的,本发明第二方面实施例提出的文件访问装置,包括:接收模块,用于接收文件访问请求,并根据所述文件访问请求确定要访问的文件;确定模块,用于根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;获取模块,用于根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
本发明第二方面实施例提出的文件访问装置,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。
为达到上述目的,本发明第三方面实施例提出的服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为客户端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:接收文件访问请求,并根据所述文件访问请求确定要访问的文件;根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
本发明第三方面实施例提出的服务器,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的文件访问方法的流程示意图;
图2是本发明另一实施例提出的文件访问方法的流程示意图;
图3是本发明实施例中并发访问文件的结构示意图;
图4是本发明另一实施例提出的文件访问装置的结构示意图;
图5是本发明另一实施例提出的文件访问装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的文件访问方法的流程示意图,该方法包括:
S11:接收文件访问请求,并根据所述文件访问请求确定要访问的文件。
当用户要访问一个文件时,例如,用户要观看一个视频文件时,用户使用的客户端可以向服务器发送文件访问请求。
本实施例可以特别针对多用户并发访问场景,因此,该文件访问请求可以是多用户并发访问中的文件访问请求。
以每个文件访问请求为例,文件访问请求中可以携带文件标识,以便根据文件标识确定要访问的文件,文件标识(id)例如为统一资源定位符(Uniform Resource Locator,URL)或者文件编号等。
当服务器接收到文件访问请求后,服务器可以从文件访问请求中解析出标识信息,另外,服务器中还可以预先保存标识信息与文件的对应关系,从而确定出要访问的文件,例如,当文件访问请求中携带id1,且id1对应第一文件时,则要访问的文件是第一文件。
S12:根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块。
其中,文件与文件分块的映射关系可以是一对一的关系,或者,一对多的关系。
例如,文件与文件分块的映射关系是:第一文件对应第一分块,第二分块,第三分块。
因此,通过该映射分析,可以确定第一文件包括的文件分块是:第一分块,第二分块和第三分块。
S13:根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
其中,文件分块与文件服务器的映射关系是一对多的关系。
例如,第一分块对应第一文件服务器和第二文件服务器。
由于保存一个文件分块的文件服务器是多个,在获取一个文件分块时,可以只从其中一个文件服务器获取,例如,要获取第一分块时,可以从第一文件服务器或第二文件服务器中获取第一文件分块。
可选的,所述从所述文件服务器中获取所述文件分块,包括:
从所述文件服务器中随机选择一个文件服务器;
从选择的文件服务器中,获取所述文件分块。
例如,假设对应一个文件分块,保存该文件分块的文件服务器的个数是n个,则可以采用随机方式从n个文件服务器中随机选择出一个文件服务器,之后,从随机选择出的一个文件服务器中获取该文件分块。
可以理解的是,文件分块不限于从一个文件服务器中获取,也可以从多个文件服务器中获取,当从多个文件服务器中获取时,例如可以通过比较,验证,去重等方式,提高文件分块的数据准确度。
另外,当从多个文件服务器中选择一个文件服务器时,也不限于采用随机方式,例如还可以根据文件服务器的负载情况,选择负载较轻的文件服务器等。
因此,具体的从哪些文件服务器获取,以及,如何选择这些文件服务器的方式都可以通过设置确定。
另外,对应不同的文件分块,可以采用并行的方式进行获取。
可选的,当所述要访问的文件包括的文件分块为至少两个时,所述从所述文件服务器中获取所述文件分块,包括:
采用并行方式,从保存不同的文件分块的文件服务器中,获取不同的文件分块。
假设,要访问的文件包括第一文件分块和第二文件分块,则需要获取第一文件分块和第二文件分块,本实施例中,在获取第一文件分块和第二文件分块时可以采用并行方式获取。
例如,应用服务器确定文件包括的文件分块,并选择每个文件分块对应的文件服务器,假设应用服务器选择出的保存第一文件分块的文件服务器是第一文件服务器,选择出的保存第二文件分块的文件服务器是第二文件服务器,则应用服务器可以同时向第一文件服务器和第二文件服务器发送获取请求,以并行获取第一文件分块和第二文件分块。可以理解的是,“同时”的含义不限于时间完全一致,还包括在误差范围内的一致。
另一实施例中,上述的文件与文件分块的映射关系,以及,文件分块与文件服务器的映射关系可以是由应用服务器在用户访问文件之前建立并记录的。
参见图2,另一实施例中,该文件访问方法还包括:
S21:确定所述文件分块的大小。
由于当文件分块的个数较多时,可能存在如下问题:
第一,用户连续访问文件时,需要不断地切换访问多个文件分块,过于频繁地切换访问会造成过多地将时间耗费在打开/关闭文件分块上面,这个过程也使得单位时间内传输的用户数据减少了。
第二,对于单台文件服务器来说,M过大导致每台文件服务器上的文件分块过多,容易出现并发访问不同文件分块时打开的句柄数过多,占用过多内存资源,反而导致文件服务器性能降低。
为此,确定的文件分块的大小通常为大于预设值,从而避免文件分块的个数较多。
可选的,所述确定所述文件分块的大小,包括:
根据所述要访问的文件的业务场景,确定所述文件分块的大小。
具体的,可以根据业务场景合理地确定文件分块的大小,既保证文件服务单位时间内的访问性能最佳,又保证单位时间内的用户数据传输最大化从而保证用户体验。
例如,假设网速是A(m/s),每次的读写指令需要的时间是t(s),则可以设置每个文件分块的大小是A*t。
S22:按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;
在确定出文件分块的大小后,可以按照该大小对文件进行划分。
例如,一个文件是100G,假设文件分块的大小是10G,则可以划分为10个文件分块。
可以理解的是,如果一个文件不能被文件分块的大小整除,则可以划分出一个小于预设大小的分块,例如,一个文件是105G,假设文件分块的大小是10G,则可以划分为10个10G大小的文件分块,以及一个5G大小的文件分块。
S23:记录所述文件与所述文件分块的映射关系。
其中,每个文件会包含一个标识信息,标识信息例如为文件编号,对一个文件进行划分得到文件分块后,可以为每个文件分块分配编号,通过记录编号之间的映射关系,实现记录文件与文件分块的映射关系。
例如,第一文件的编号是N1,对第一文件进行划分后得到的文件分块分别是第一文件分块,第二文件分块和第三文件分块,相应的文件分块的编号是:N11,N12,N13,则可以记录N1与N11,N12,N13的映射关系,从而实现记录第一文件与第一文件分块,第二文件分块,第三文件分块的映射关系。
另一实施例中,参见图2,该文件访问方法还包括:
S24:将每个文件分块保存到至少两个文件服务器中,其中,每个文件服务器保存一份所述文件分块,以便所述文件分块被备份保存。
在对文件进行划分得到文件分块后,可以对每个文件分块进行备份保存,备份保存是指一个文件分块至少被保存两份。
可选的,所述每个文件分块被预先备份保存,包括:
对应每个文件分块,每个已有的文件服务器中保存一份;或者,
对应每个文件分块,每个需要保存的文件服务器中保存一份,其中,所述需要保存的文件服务器是已有的文件服务器中的部分文件服务器。
例如,假设已有的文件服务器是S个,则每个文件分块被保存了S份;或者,
可以对应一个文件分块,从已有的S个文件服务器中选择出L个,采用这L个文件服务器保存L份的该文件分块。其中,从S个文件服务器中选择出L个文件服务器可以采用随机选择,或者根据负载情况选择等。
本实施例以每个文件分块在每个已有的文件服务器中保存一份为例。假设一个文件被分为了M个文件分块,已有的文件服务器是S个,用户的个数是N个,参见图3,每个文件分块在每个已有的文件服务器上被保存了一份。
如图3所示,多用户并发访问文件的场景下,用户向应用服务器发送访问请求(S31),应用服务器确定出多用户要访问的一个文件(S32),确定文件包括的文件分块(S33),以及,从文件服务器上获取文件分块(S34)。
在图3所示的场景下,对应一个文件服务器,单位时间内的访问压力P是:
P=N/(M*S),其中*表示相乘运算;
而如果不对文件进行分块,则对应一个文件服务器,单位时间内的访问压力P是:
P=N/S。
通过上述两个访问压力的公式可以看出,本实施例通过文件分块的方式,可以线性减少服务器的访问压力。
S25:记录所述文件分块与所述文件服务器的映射关系。
类似记录文件与文件分块的映射关系,当把文件分块保存到文件服务器上时,则可以通过记录文件分块的编号与文件服务器的编号的映射关系,实现记录文件分块与文件服务器的映射关系。例如,记录N11对应D1,D2,…DS,记录N12对应D1,D2,…DS,其中,N11和N12是文件分块的编号,D1,D2,…DS分别是每个文件服务器的编号。
在通过上述的映射关系可以获取各文件分块,之后可以由获取的文件分块组成要访问的文件。其中,每个文件分块中可以包含标识信息,根据标识信息组成文件。例如,在将文件分为文件分块时,可以按照先后顺序进行编号,之后获取文件分块后,可以根据文件分块的编号先后进行组合,获取与分块前一致的文件。
本实施例中,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。另一实施例中,通过根据业务场景确定文件分块的大小,可以实现合理的确定文件分块的大小,实现服务器的性能和用户访问数据的效果的最优化。
图4是本发明另一实施例提出的文件访问装置的结构示意图,该装置可以位于服务器中,该装置40包括:接收模块41,确定模块42和获取模块43。
接收模块41,用于接收文件访问请求,并根据所述文件访问请求确定要访问的文件;
当用户要访问一个文件时,例如,用户要观看一个视频文件时,用户使用的客户端可以向服务器发送文件访问请求。
本实施例可以特别针对多用户并发访问场景,因此,所述文件访问请求是多用户并发访问时的文件访问请求。
可选的,所述接收模块41用于根据所述文件访问请求确定要访问的文件,包括:
根据所述文件访问请求中包含的文件标识,将所述文件标识对应的文件,确定为要访问的文件。
以每个文件访问请求为例,文件访问请求中可以携带文件标识,以便根据文件标识确定要访问的文件,文件标识(id)例如为统一资源定位符(Uniform Resource Locator,URL)或者文件编号等。
当服务器接收到文件访问请求后,服务器可以从文件访问请求中解析出标识信息,另外,服务器中还可以预先保存标识信息与文件的对应关系,从而确定出要访问的文件,例如,当文件访问请求中携带id1,且id1对应第一文件时,则要访问的文件是第一文件。
确定模块43,用于根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;
其中,文件与文件分块的映射关系可以是一对一的关系,或者,一对多的关系。
例如,文件与文件分块的映射关系是:第一文件对应第一分块,第二分块,第三分块。
因此,通过该映射分析,可以确定第一文件包括的文件分块是:第一分块,第二分块和第三分块。
获取模块43,用于根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
其中,文件分块与文件服务器的映射关系是一对多的关系。
例如,第一分块对应第一文件服务器和第二文件服务器。
由于保存一个文件分块的文件服务器是多个,在获取一个文件分块时,可以只从其中一个文件服务器获取,例如,要获取第一分块时,可以从第一文件服务器或第二文件服务器中获取第一文件分块。
可选的,所述获取模块42用于从所述文件服务器中获取所述文件分块,包括:
从所述文件服务器中随机选择一个文件服务器;
从选择的文件服务器中,获取所述文件分块。
例如,假设对应一个文件分块,保存该文件分块的文件服务器的个数是n个,则可以采用随机方式从n个文件服务器中随机选择出一个文件服务器,之后,从随机选择出的一个文件服务器中获取该文件分块。
可以理解的是,文件分块不限于从一个文件服务器中获取,也可以从多个文件服务器中获取,当从多个文件服务器中获取时,例如可以通过比较,验证,去重等方式,提高文件分块的数据准确度。
另外,当从多个文件服务器中选择一个文件服务器时,也不限于采用随机方式,例如还可以根据文件服务器的负载情况,选择负载较轻的文件服务器等。
因此,具体的从哪些文件服务器获取,以及,如何选择这些文件服务器的方式都可以通过设置确定。
可选的,当所述要访问的文件包括的文件分块为至少两个时,所述获取模块用于从所述文件服务器中获取所述文件分块,包括:
采用并行方式,从保存不同的文件分块的文件服务器中,获取不同的文件分块。
假设,要访问的文件包括第一文件分块和第二文件分块,则需要获取第一文件分块和第二文件分块,本实施例中,在获取第一文件分块和第二文件分块时可以采用并行方式获取。
例如,应用服务器确定文件包括的文件分块,并选择每个文件分块对应的文件服务器,假设应用服务器选择出的保存第一文件分块的文件服务器是第一文件服务器,选择出的保存第二文件分块的文件服务器是第二文件服务器,则应用服务器可以同时向第一文件服务器和第二文件服务器发送获取请求,以并行获取第一文件分块和第二文件分块。可以理解的是,“同时”的含义不限于时间完全一致,还包括在误差范围内的一致。
另一实施例中,参见图5,该装置40还包括:
第一映射模块44,用于确定所述文件分块的大小;按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;记录所述文件与所述文件分块的映射关系。
可选的,所述第一映射模块44用于确定所述文件分块的大小,包括:
根据所述要访问的文件的业务场景,确定所述文件分块的大小。
具体的,可以根据业务场景合理地确定文件分块的大小,既保证文件服务单位时间内的访问性能最佳,又保证单位时间内的用户数据传输最大化从而保证用户体验。
例如,假设网速是A(m/s),每次的读写指令需要的时间是t(s),则可以设置每个文件分块的大小是A*t。
在确定出文件分块的大小后,可以按照该大小对文件进行划分。
例如,一个文件是100G,假设文件分块的大小是10G,则可以划分为10个文件分块。
可以理解的是,如果一个文件不能被文件分块的大小整除,则可以划分出一个小于预设大小的分块,例如,一个文件是105G,假设文件分块的大小是10G,则可以划分为10个10G大小的文件分块,以及一个5G大小的文件分块。
其中,每个文件会包含一个标识信息,标识信息例如为文件编号,对一个文件进行划分得到文件分块后,可以为每个文件分块分配编号,通过记录编号之间的映射关系,实现记录文件与文件分块的映射关系。
例如,第一文件的编号是N1,对第一文件进行划分后得到的文件分块分别是第一文件分块,第二文件分块和第三文件分块,相应的文件分块的编号是:N11,N12,N13,则可以记录N1与N11,N12,N13的映射关系,从而实现记录第一文件与第一文件分块,第二文件分块,第三文件分块的映射关系。
可选的,参见图5,该装置40还包括:
第二映射模块45,用于将每个文件分块保存到至少两个文件服务器中,其中,每个文件服务器保存一份所述文件分块,以便所述文件分块被备份保存;记录所述文件分块与所述文件服务器的映射关系。
在对文件进行划分得到文件分块后,可以对每个文件分块进行备份保存,备份保存是指一个文件分块至少被保存两份。
可选的,所述每个文件分块被预先备份保存,包括:
对应每个文件分块,每个已有的文件服务器中保存一份;或者,
对应每个文件分块,每个需要保存的文件服务器中保存一份,其中,所述需要保存的文件服务器是已有的文件服务器中的部分文件服务器。
所述需要保存的文件服务器是:在所述已有的文件服务器中随机选择得到的部分文件服务器。
例如,假设已有的文件服务器是S个,则每个文件分块被保存了S份;或者,
可以对应一个文件分块,从已有的S个文件服务器中选择出L个,采用这L个文件服务器保存L份的该文件分块。其中,从S个文件服务器中选择出L个文件服务器可以采用随机选择,或者根据负载情况选择等。
本实施例以每个文件分块在每个已有的文件服务器中保存一份为例。假设一个文件被分为了M个文件分块,已有的文件服务器是S个,用户的个数是N个,参见图3,每个文件分块在每个已有的文件服务器上被保存了一份。
在图3所示的场景下,对应一个文件服务器,单位时间内的访问压力P是:
P=N/(M*S),其中*表示相乘运算;
而如果不对文件进行分块,则对应一个文件服务器,单位时间内的访问压力P是:
P=N/S。
通过上述两个访问压力的公式可以看出,本实施例通过文件分块的方式,可以线性减少服务器的访问压力。
类似记录文件与文件分块的映射关系,当把文件分块保存到文件服务器上时,则可以通过记录文件分块的编号与文件服务器的编号的映射关系,实现记录文件分块与文件服务器的映射关系。例如,记录N11对应D1,D2,…DS,记录N12对应D1,D2,…DS,其中,N11和N12是文件分块的编号,D1,D2,…DS分别是每个文件服务器的编号。
在通过上述的映射关系可以获取各文件分块,之后可以由获取的文件分块组成要访问的文件。其中,每个文件分块中可以包含标识信息,根据标识信息组成文件。例如,在将文件分为文件分块时,可以按照先后顺序进行编号,之后获取文件分块后,可以根据文件分块的编号先后进行组合,获取与分块前一致的文件。
本实施例中,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。另一实施例中,通过根据业务场景确定文件分块的大小,可以实现合理的确定文件分块的大小,实现服务器的性能和用户访问数据的效果的最优化。
本发明实施例还提供了一种服务器,该服务器包括壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为客户端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
S11’:接收文件访问请求,并根据所述文件访问请求确定要访问的文件:。
当用户要访问一个文件时,例如,用户要观看一个视频文件时,用户使用的客户端可以向服务器发送文件访问请求。
本实施例可以特别针对多用户并发访问场景,因此,该文件访问请求可以是多用户并发访问中的文件访问请求。
以每个文件访问请求为例,文件访问请求中可以携带文件标识,以便根据文件标识确定要访问的文件,文件标识(id)例如为统一资源定位符(Uniform Resource Locator,URL)或者文件编号等。
当服务器接收到文件访问请求后,服务器可以从文件访问请求中解析出标识信息,另外,服务器中还可以预先保存标识信息与文件的对应关系,从而确定出要访问的文件,例如,当文件访问请求中携带id1,且id1对应第一文件时,则要访问的文件是第一文件。
S12’:根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块。
其中,文件与文件分块的映射关系可以是一对一的关系,或者,一对多的关系。
例如,文件与文件分块的映射关系是:第一文件对应第一分块,第二分块,第三分块。
因此,通过该映射分析,可以确定第一文件包括的文件分块是:第一分块,第二分块和第三分块。
S13’:根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
其中,文件分块与文件服务器的映射关系是一对多的关系。
例如,第一分块对应第一文件服务器和第二文件服务器。
由于保存一个文件分块的文件服务器是多个,在获取一个文件分块时,可以只从其中一个文件服务器获取,例如,要获取第一分块时,可以从第一文件服务器或第二文件服务器中获取第一文件分块。
可选的,所述从所述文件服务器中获取所述文件分块,包括:
从所述文件服务器中随机选择一个文件服务器;
从选择的文件服务器中,获取所述文件分块。
例如,假设对应一个文件分块,保存该文件分块的文件服务器的个数是n个,则可以采用随机方式从n个文件服务器中随机选择出一个文件服务器,之后,从随机选择出的一个文件服务器中获取该文件分块。
可以理解的是,文件分块不限于从一个文件服务器中获取,也可以从多个文件服务器中获取,当从多个文件服务器中获取时,例如可以通过比较,验证,去重等方式,提高文件分块的数据准确度。
另外,当从多个文件服务器中选择一个文件服务器时,也不限于采用随机方式,例如还可以根据文件服务器的负载情况,选择负载较轻的文件服务器等。
因此,具体的从哪些文件服务器获取,以及,如何选择这些文件服务器的方式都可以通过设置确定。
另外,对应不同的文件分块,可以采用并行的方式进行获取。
可选的,当所述要访问的文件包括的文件分块为至少两个时,所述从所述文件服务器中获取所述文件分块,包括:
采用并行方式,从保存不同的文件分块的文件服务器中,获取不同的文件分块。
假设,要访问的文件包括第一文件分块和第二文件分块,则需要获取第一文件分块和第二文件分块,本实施例中,在获取第一文件分块和第二文件分块时可以采用并行方式获取。
例如,应用服务器确定文件包括的文件分块,并选择每个文件分块对应的文件服务器,假设应用服务器选择出的保存第一文件分块的文件服务器是第一文件服务器,选择出的保存第二文件分块的文件服务器是第二文件服务器,则应用服务器可以同时向第一文件服务器和第二文件服务器发送获取请求,以并行获取第一文件分块和第二文件分块。可以理解的是,“同时”的含义不限于时间完全一致,还包括在误差范围内的一致。
另一实施例中,上述的文件与文件分块的映射关系,以及,文件分块与文件服务器的映射关系可以是由应用服务器在用户访问文件之前建立并记录的。
另一实施例中,处理器还执行如下步骤:
S21’:确定所述文件分块的大小。
由于当文件分块的个数较多时,可能存在如下问题:
第一,用户连续访问文件时,需要不断地切换访问多个文件分块,过于频繁地切换访问会造成过多地将时间耗费在打开/关闭文件分块上面,这个过程也使得单位时间内传输的用户数据减少了。
第二,对于单台文件服务器来说,M过大导致每台文件服务器上的文件分块过多,容易出现并发访问不同文件分块时打开的句柄数过多,占用过多内存资源,反而导致文件服务器性能降低。
为此,确定的文件分块的大小通常为大于预设值,从而避免文件分块的个数较多。
可选的,所述确定所述文件分块的大小,包括:
根据所述要访问的文件的业务场景,确定所述文件分块的大小。
具体的,可以根据业务场景合理地确定文件分块的大小,既保证文件服务单位时间内的访问性能最佳,又保证单位时间内的用户数据传输最大化从而保证用户体验。
例如,假设网速是A(m/s),每次的读写指令需要的时间是t(s),则可以设置每个文件分块的大小是A*t。
S22’:按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;
在确定出文件分块的大小后,可以按照该大小对文件进行划分。
例如,一个文件是100G,假设文件分块的大小是10G,则可以划分为10个文件分块。
可以理解的是,如果一个文件不能被文件分块的大小整除,则可以划分出一个小于预设大小的分块,例如,一个文件是105G,假设文件分块的大小是10G,则可以划分为10个10G大小的文件分块,以及一个5G大小的文件分块。
S23’:记录所述文件与所述文件分块的映射关系。
其中,每个文件会包含一个标识信息,标识信息例如为文件编号,对一个文件进行划分得到文件分块后,可以为每个文件分块分配编号,通过记录编号之间的映射关系,实现记录文件与文件分块的映射关系。
例如,第一文件的编号是N1,对第一文件进行划分后得到的文件分块分别是第一文件分块,第二文件分块和第三文件分块,相应的文件分块的编号是:N11,N12,N13,则可以记录N1与N11,N12,N13的映射关系,从而实现记录第一文件与第一文件分块,第二文件分块,第三文件分块的映射关系。
另一实施例中,处理器还执行如下步骤:
S24’:将每个文件分块保存到至少两个文件服务器中,其中,每个文件服务器保存一份所述文件分块,以便所述文件分块被备份保存。
在对文件进行划分得到文件分块后,可以对每个文件分块进行备份保存,备份保存是指一个文件分块至少被保存两份。
可选的,所述每个文件分块被预先备份保存,包括:
对应每个文件分块,每个已有的文件服务器中保存一份;或者,
对应每个文件分块,每个需要保存的文件服务器中保存一份,其中,所述需要保存的文件服务器是已有的文件服务器中的部分文件服务器。
例如,假设已有的文件服务器是S个,则每个文件分块被保存了S份;或者,
可以对应一个文件分块,从已有的S个文件服务器中选择出L个,采用这L个文件服务器保存L份的该文件分块。其中,从S个文件服务器中选择出L个文件服务器可以采用随机选择,或者根据负载情况选择等。
本实施例以每个文件分块在每个已有的文件服务器中保存一份为例。假设一个文件被分为了M个文件分块,已有的文件服务器是S个,用户的个数是N个,参见图3,每个文件分块在每个已有的文件服务器上被保存了一份。
在图3所示的场景下,对应一个文件服务器,单位时间内的访问压力P是:
P=N/(M*S),其中*表示相乘运算;
而如果不对文件进行分块,则对应一个文件服务器,单位时间内的访问压力P是:
P=N/S。
通过上述两个访问压力的公式可以看出,本实施例通过文件分块的方式,可以线性减少服务器的访问压力。
S25:记录所述文件分块与所述文件服务器的映射关系。
类似记录文件与文件分块的映射关系,当把文件分块保存到文件服务器上时,则可以通过记录文件分块的编号与文件服务器的编号的映射关系,实现记录文件分块与文件服务器的映射关系。例如,记录N11对应D1,D2,…DS,记录N12对应D1,D2,…DS,其中,N11和N12是文件分块的编号,D1,D2,…DS分别是每个文件服务器的编号。
在通过上述的映射关系可以获取各文件分块,之后可以由获取的文件分块组成要访问的文件。其中,每个文件分块中可以包含标识信息,根据标识信息组成文件。例如,在将文件分为文件分块时,可以按照先后顺序进行编号,之后获取文件分块后,可以根据文件分块的编号先后进行组合,获取与分块前一致的文件。
本实施例中,通过将文件分成了文件分块,以及,备份保存文件分块,可以实现文件分块与多点备份相结合,可以提高服务器端的文件并发访问的性能,保证服务器端为用户提供稳定的服务。另一实施例中,通过根据业务场景确定文件分块的大小,可以实现合理的确定文件分块的大小,实现服务器的性能和用户访问数据的效果的最优化。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (17)

1.一种文件访问方法,其特征在于,包括:
接收文件访问请求,并根据所述文件访问请求确定要访问的文件;
根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;
根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存;
在接收文件访问请求之前,根据所述要访问的文件的业务场景,确定所述文件分块的大小,所述业务场景包括网速和每次的读写指令需要的时间;按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;记录所述文件与所述文件分块的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述从所述文件服务器中获取所述文件分块,包括:
从所述文件服务器中随机选择一个文件服务器;
从选择的文件服务器中,获取所述文件分块。
3.根据权利要求1所述的方法,其特征在于,当所述要访问的文件包括的文件分块为至少两个时,所述从所述文件服务器中获取所述文件分块,包括:
采用并行方式,从保存不同的文件分块的文件服务器中,获取不同的文件分块。
4.根据权利要求1所述的方法,其特征在于,所述接收文件访问请求之前,所述方法还包括:
将每个文件分块保存到至少两个文件服务器中,其中,每个文件服务器保存一份所述文件分块,以便所述文件分块被备份保存;
记录所述文件分块与所述文件服务器的映射关系。
5.根据权利要求1所述的方法,其特征在于,所述每个文件分块被预先备份保存,包括:
对应每个文件分块,每个已有的文件服务器中保存一份;或者,
对应每个文件分块,每个需要保存的文件服务器中保存一份,其中,所述需要保存的文件服务器是已有的文件服务器中的部分文件服务器。
6.根据权利要求5所述的方法,其特征在于,所述需要保存的文件服务器是:在所述已有的文件服务器中随机选择得到的部分文件服务器。
7.根据权利要求1所述的方法,其特征在于,所述根据所述文件访问请求确定要访问的文件,包括:
根据所述文件访问请求中包含的文件标识,将所述文件标识对应的文件,确定为要访问的文件。
8.根据权利要求1所述的方法,其特征在于,所述文件访问请求是多用户并发访问时的文件访问请求。
9.一种文件访问装置,其特征在于,包括:
第一映射模块,用于根据要访问的文件的业务场景,确定所述文件分块的大小,所述业务场景包括网速和每次的读写指令需要的时间;按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;记录所述文件与所述文件分块的映射关系;
接收模块,用于接收文件访问请求,并根据所述文件访问请求确定要访问的文件;
确定模块,用于根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;
获取模块,用于根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存。
10.根据权利要求9所述的装置,其特征在于,所述获取模块用于从所述文件服务器中获取所述文件分块,包括:
从所述文件服务器中随机选择一个文件服务器;
从选择的文件服务器中,获取所述文件分块。
11.根据权利要求9所述的装置,其特征在于,当所述要访问的文件包括的文件分块为至少两个时,所述获取模块用于从所述文件服务器中获取所述文件分块,包括:
采用并行方式,从保存不同的文件分块的文件服务器中,获取不同的文件分块。
12.根据权利要求9所述的装置,其特征在于,还包括:
第二映射模块,用于将每个文件分块保存到至少两个文件服务器中,其中,每个文件服务器保存一份所述文件分块,以便所述文件分块被备份保存;记录所述文件分块与所述文件服务器的映射关系。
13.根据权利要求9所述的装置,其特征在于,所述每个文件分块被预先备份保存,包括:
对应每个文件分块,每个已有的文件服务器中保存一份;或者,
对应每个文件分块,每个需要保存的文件服务器中保存一份,其中,所述需要保存的文件服务器是已有的文件服务器中的部分文件服务器。
14.根据权利要求13所述的装置,其特征在于,所述需要保存的文件服务器是:在所述已有的文件服务器中随机选择得到的部分文件服务器。
15.根据权利要求9所述的装置,其特征在于,所述接收模块用于根据所述文件访问请求确定要访问的文件,包括:
根据所述文件访问请求中包含的文件标识,将所述文件标识对应的文件,确定为要访问的文件。
16.根据权利要求9所述的装置,其特征在于,所述文件访问请求是多用户并发访问时的文件访问请求。
17.一种服务器,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为客户端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
接收文件访问请求,并根据所述文件访问请求确定要访问的文件;
根据预先记录的文件与文件分块的映射关系,确定所述要访问的文件包括的文件分块;
根据预先记录的文件分块与文件服务器的映射关系,确定保存所述文件分块的文件服务器,并从所述文件服务器中获取所述文件分块,其中,每个文件分块被预先备份保存;
在接收文件访问请求之前,根据所述要访问的文件的业务场景,确定所述文件分块的大小,所述业务场景包括网速和每次的读写指令需要的时间;按照所述文件分块的大小,对所述要访问的文件进行划分,得到所述文件分块;记录所述文件与所述文件分块的映射关系。
CN201510511062.3A 2015-08-19 2015-08-19 文件访问方法和文件访问装置以及服务器 Active CN105069139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510511062.3A CN105069139B (zh) 2015-08-19 2015-08-19 文件访问方法和文件访问装置以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510511062.3A CN105069139B (zh) 2015-08-19 2015-08-19 文件访问方法和文件访问装置以及服务器

Publications (2)

Publication Number Publication Date
CN105069139A CN105069139A (zh) 2015-11-18
CN105069139B true CN105069139B (zh) 2018-09-14

Family

ID=54498508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510511062.3A Active CN105069139B (zh) 2015-08-19 2015-08-19 文件访问方法和文件访问装置以及服务器

Country Status (1)

Country Link
CN (1) CN105069139B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737473B (zh) * 2017-04-20 2019-12-20 贵州白山云科技股份有限公司 一种数据处理方法、装置及系统
CN107609898A (zh) * 2017-08-24 2018-01-19 天脉聚源(北京)科技有限公司 一种智能应对高访问量的广告信息投放的方法及装置
CN107609140A (zh) * 2017-09-20 2018-01-19 郑州云海信息技术有限公司 一种分布式文件系统目录文件访问的方法及装置
CN109118461A (zh) * 2018-07-06 2019-01-01 航天星图科技(北京)有限公司 一种基于分布式框架的his融合方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法
CN103220367A (zh) * 2013-05-13 2013-07-24 深圳市中博科创信息技术有限公司 数据复制方法及数据存储系统
CN103399941A (zh) * 2013-08-13 2013-11-20 广州中国科学院软件应用技术研究所 一种分布式文件处理方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635184B2 (en) * 2009-06-25 2014-01-21 Emc Corporation System and method for providing long-term storage for data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法
CN103220367A (zh) * 2013-05-13 2013-07-24 深圳市中博科创信息技术有限公司 数据复制方法及数据存储系统
CN103399941A (zh) * 2013-08-13 2013-11-20 广州中国科学院软件应用技术研究所 一种分布式文件处理方法、装置及系统

Also Published As

Publication number Publication date
CN105069139A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
US20220188028A1 (en) Computational data storage systems
CN105069139B (zh) 文件访问方法和文件访问装置以及服务器
US8760956B1 (en) Data processing method and apparatus
CN105404469B (zh) 一种视频数据的存储方法和系统
CN105550229B (zh) 分布式存储系统数据修复的方法和装置
WO2015168262A2 (en) Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof
CN104598168B (zh) 一种数据恢复方法及对象存储设备
CN105117351A (zh) 向缓存写入数据的方法及装置
CN111291079A (zh) 一种数据的查询方法和装置
CN109710572A (zh) 一种基于HBase的文件分片方法
CN104794228A (zh) 一种搜索结果提供方法及装置
CN109597903B (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN109144406A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
CN104965835B (zh) 一种分布式文件系统的文件读写方法及装置
CN104050103A (zh) 一种用于数据恢复的缓存替换方法与系统
CN106933747A (zh) 基于多流的数据存储系统和数据存储方法
CN105930537A (zh) 一种页面保存的方法及电子设备
CN105138284A (zh) 虚拟机磁盘镜像同步操作优化的系统及方法
CN110008197A (zh) 一种数据处理方法、系统及电子设备和存储介质
CN108304142A (zh) 一种数据管理方法和装置
CN105550230B (zh) 分布式存储系统节点故障的侦测方法和装置
US20150370794A1 (en) Hash based read and write operations in a storage system
CN106899558B (zh) 访问请求的处理方法、装置和存储介质
CN107423425A (zh) 一种对k/v格式的数据快速存储和查询方法
CN111488293A (zh) 多核系统中数据访问者目录的访问方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant