CN102790797B - 一种机群文件系统客户端存储资源延迟分配方法和系统 - Google Patents
一种机群文件系统客户端存储资源延迟分配方法和系统 Download PDFInfo
- Publication number
- CN102790797B CN102790797B CN201210160339.9A CN201210160339A CN102790797B CN 102790797 B CN102790797 B CN 102790797B CN 201210160339 A CN201210160339 A CN 201210160339A CN 102790797 B CN102790797 B CN 102790797B
- Authority
- CN
- China
- Prior art keywords
- client
- storage resources
- data server
- meta data
- file layout
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种机群文件系统客户端存储资源延迟分配方法和系统,该方法包括:步骤1,客户端根据文件布局操作情况,进行存储资源延迟分配;步骤2,在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;步骤3,对存储资源在客户端与元数据服务器之间的一致性进行维护。
Description
技术领域
本发明涉及机群文件系统存储资源分配技术,特别涉及一种机群文件系统基于客户端的存储资源延迟分配方法和系统。
背景技术
在大规模机群文件系统中,元数据与数据服务分离结构已经成为了一种趋势。元数据服务器负责维护文件系统全局命名空间,以及特别负责维护文件布局(layout)服务,管理文件逻辑地址与磁盘物理地址的映射关系,为文件分配物理存储资源。客户端文件数据访问采用带外方式直接访问存储设备,不必通过元数据服务器,从而获取较高的数据访问性能。客户端文件数据访问过程中,首先获取文件在全局命名空间中的逻辑位置,然后获取文件读写逻辑地址对应的磁盘物理地址,最后访问磁盘物理地址获取数据。
在目前机群文件系统中,客户端访问文件数据时,必须先通过网络交互同步获取文件逻辑地址对应的磁盘物理地址,即获取文件布局,才能够访问文件数据,这对于系统性能造成了很大影响。尤其在海量小文件应用环境中,数据访问比率减小,元数据访问比率增大,同步获取文件布局的访问开销增大。因此,尽量降低访问元数据的开销,减少获取文件布局服务网络交互次数,可以大幅提升海量小文件应用性能。此外,海量小文件应用环境中,虽然数据访问比率减少,但是海量小文件的文件布局分散,数据访问对物理磁盘具有很强的随机性,磁盘磁头需要频繁移动,导致性能降低。因此,缓解海量小文件之间数据访问的随机性对于性能提升也有很大的帮助。
针对减少获取文件布局服务网络交互次数问题,主要有文件布局预分配方法。文件布局预分配方法为文件预先分配一部分存储资源,减少了获取文件布局服务网络交互次数。但是该方法也存在一些问题:
存储资源预分配粒度确定存在困难。如果预分配存储资源粒度较大,无效的预分配存储资源还需要进行回收,增加了操作复杂性,更加重了系统开销;如果预分配粒度较小,则不能有效减少文件布局服务网络交互次数。
由于预分配针对单个文件,无法缓解海量小文件之间数据访问随机性。
针对缓解海量小文件之间数据访问随机性问题,主要有延迟分配方法。延迟分配方法在数据真正要写到磁盘时才进行存储资源的分配,但在大规模机群文件系统中,由于数据访问不通过元数据服务器,无法进行延迟分配。
针对现有技术的不足,本发明提出了一种机群文件系统基于客户端的存储资源延迟分配方法和分配系统,能够减少文件布局服务网络交互次数,并且缓解海量小文件之间数据访问随机性。
发明内容
本发明要解决的技术问题是在大规模机群文件系统中现有技术无法有效减少文件布局服务网络交互次数以及无法有效缓解海量小文件之间数据访问随机性的问题,提供了一种基于客户端的存储资源延迟分配方法和分配系统,以减少文件布局服务网络交互次数以及缓解海量小文件之间数据访问随机性。并且,提供了一种文件删除时存储资源回收方法。此外,提供一种异常宕机情况下的存储资源一致性保证方法,保证客户端或服务器异常宕机情况下的存储资源一致性,保证存储资源不丢失、不重用。
本发明公开一种机群文件系统客户端存储资源延迟分配方法,包括:
步骤1,客户端根据文件布局操作情况,进行存储资源延迟分配;
步骤2,在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
步骤3,对存储资源在客户端与元数据服务器之间的一致性进行维护。
所述的机群文件系统客户端存储资源延迟分配方法,步骤1包括:
步骤21,将存储资源在客户端进行预申请;
步骤22,写文件时客户端的存储资源延迟分配文件布局;
步骤23,异步提交文件布局。
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤21包括:
步骤31,客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;
步骤32,元数据服务器根据策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;
步骤33,客户端在内存中记录预申请获取的空闲存储资源。
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤22包括:
步骤41,写文件时,在客户端从预申请存储资源中分配空闲存储资源;
步骤42,在客户端内存中以文件布局格式记录分配的存储资源;
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤23包括:
步骤51,客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
步骤52,元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
步骤53,元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
所述的机群文件系统客户端存储资源延迟分配方法,步骤2包括:
步骤61,客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
步骤62,如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
步骤63,如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
所述的机群文件系统客户端存储资源延迟分配方法,步骤3包括:
步骤71,当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
步骤72,当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
步骤73,当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
本发明公开一种机群文件系统客户端存储资源延迟分配系统,包括:
延迟分配模块,用于客户端根据文件布局操作情况,进行存储资源延迟分配;
资源回收模块,用于在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
一致性维护模块,用于对存储资源在客户端与元数据服务器之间的一致性进行维护。
所述的机群文件系统客户端存储资源延迟分配系统,延迟分配模块包括:
预申请模块,用于将存储资源在客户端进行预申请;
文件布局模块,用于写文件时客户端的存储资源延迟分配文件布局;
异步提交模块,用于异步提交文件布局。
所述的机群文件系统客户端存储资源延迟分配系统,所述预申请模块包括:
申请空闲存储资源模块,用于客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;
分配存储资源模块,用于元数据服务器根据申请策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;
记录存储资源模块,用于客户端在内存中记录预申请获取的空闲存储资源。
所述的机群文件系统客户端存储资源延迟分配系统,所述文件布局模块包括:
申请资源模块,用于写文件时,在客户端从预申请存储资源中分配空闲存储资源;
记录资源模块,用于在客户端内存中以文件布局格式记录分配的存储资源;
所述的机群文件系统客户端存储资源延迟分配系统,所述异步提交模块包括:
异步提交模块,用于客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
记录布局模块,用于元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
设置状态模块,用于元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
所述的机群文件系统客户端存储资源延迟分配系统,资源回收模块包括:
接受删除文件模块,用于客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
存储资源回收模块,用于如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
清除记录模块,用于如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
所述的机群文件系统客户端存储资源延迟分配系统,一致性维护模块包括:
一致性模块,用于当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
建立预留资源模块,用于当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
资源丢失管理模块,用于当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
本发明的有益效果为:
通过采用基于客户端的延迟分配技术,有效避免了预分配技术中预分配粒度确定困难的问题,客户端在本地精确的延迟分配所需的存储资源,并且能够减少文件布局服务的交互次数;通过采用客户端延迟分配技术,每个客户端获取的预申请存储资源可以尽量分散在不同的存储设备,降低了客户端之间的相互干扰,有效缓解了海量小文件之间数据访问随机性。此外,采用基于客户端的存储资源分配方法,一部分存储资源管理开销转移到客户端,有效缓解了元数据服务器的负载压力。
附图说明
图1为本发明机群文件系统客户端存储资源延迟分配方法;
图2为本发明机群文件系统客户端存储资源延迟分配系统;
图3为本发明具体实施方式机群文件系统基于客户端的存储资源延迟分配系统示意图;
图4为本发明具体实施方式机群文件系统基于客户端的存储资源延迟分配系统示意图。
具体实施方式
下面给出本发明的具体实施方式,结合附图对本发明做出了详细描述。
本发明要解决的技术问题是在大规模机群文件系统中现有技术无法有效减少文件布局服务网络交互次数,以及无法有效缓解海量小文件之间数据访问随机性的问题,提供了一种基于客户端的存储资源延迟分配方法和分配系统,以减少文件布局服务网络交互次数以及缓解海量小文件之间数据访问随机性。并且,提供了一种文件删除时存储资源回收方法。此外,提供一种异常宕机情况下的存储资源一致性保证方法,保证客户端或服务器异常宕机情况下的存储资源一致性,保证存储资源不丢失、不重用。
为了达到以上目的,本发明采用一种基于客户端的存储资源延迟分配技术方案,
如图1所示,本发明公开一种机群文件系统客户端存储资源延迟分配方法,包括:
步骤1,客户端根据文件布局操作情况,进行存储资源延迟分配;
步骤2,在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
步骤3,对存储资源在客户端与元数据服务器之间的一致性进行维护。
所述的机群文件系统客户端存储资源延迟分配方法,步骤1包括:
步骤21,将存储资源在客户端进行预申请;
步骤22,写文件时客户端的存储资源延迟分配文件布局;
步骤23,异步提交文件布局。
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤21包括:
步骤31,客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;
步骤32,元数据服务器根据策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;
步骤33,客户端在内存中记录预申请获取的空闲存储资源。
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤22包括:
步骤41,写文件时,在客户端从预申请存储资源中分配空闲存储资源;
步骤42,在客户端内存中以文件布局格式记录分配的存储资源;
所述的机群文件系统客户端存储资源延迟分配方法,所述步骤23包括:
步骤51,客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
步骤52,元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
步骤53,元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
所述的机群文件系统客户端存储资源延迟分配方法,步骤2包括:
步骤61,客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
步骤62,如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
步骤63,如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
所述的机群文件系统客户端存储资源延迟分配方法,步骤3包括:
步骤71,当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
步骤72,当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
步骤73,当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
如图2所示,本发明公开一种机群文件系统客户端存储资源延迟分配系统,包括:
延迟分配模块10,用于客户端根据文件布局操作情况,进行存储资源延迟分配;
资源回收模块20,用于在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
一致性维护模块30,用于对存储资源在客户端与元数据服务器之间的一致性进行维护。
所述的机群文件系统客户端存储资源延迟分配系统,延迟分配模块包括:
预申请模块,用于将存储资源在客户端进行预申请;
文件布局模块,用于写文件时客户端的存储资源延迟分配文件布局;
异步提交模块,用于异步提交文件布局。
所述的机群文件系统客户端存储资源延迟分配系统,所述预申请模块包括:
申请空闲存储资源模块,用于客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;
分配存储资源模块,用于元数据服务器根据申请策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;
记录存储资源模块,用于客户端在内存中记录预申请获取的空闲存储资源。
所述的机群文件系统客户端存储资源延迟分配系统,所述文件布局模块包括:
申请资源模块,用于写文件时,在客户端从预申请存储资源中分配空闲存储资源;
记录资源模块,用于在客户端内存中以文件布局格式记录分配的存储资源;
所述的机群文件系统客户端存储资源延迟分配系统,所述异步提交模块包括:
异步提交模块,用于客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
记录布局模块,用于元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
设置状态模块,用于元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
所述的机群文件系统客户端存储资源延迟分配系统,资源回收模块包括:
接受删除文件模块,用于客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
存储资源回收模块,用于如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
清除记录模块,用于如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
所述的机群文件系统客户端存储资源延迟分配系统,一致性维护模块包括:
一致性模块,用于当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
建立预留资源模块,用于当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
资源丢失管理模块,用于当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
本发明采用基于客户端的存储资源延迟分配技术,一次预申请较多的存储资源,后续写文件时可以在客户端进行文件布局分配,有效减少了文件布局服务网络交互次数;预申请的存储资源连续性较好,有效缓解了海量小文件之间数据访问随机性问题。
如图3所示,一种客户端存储资源延迟分配系统,包括:
存储资源;元数据服务器存储资源管理装置;元数据服务器文件布局提交装置;客户端存储资源预申请装置;客户端写文件时的存储资源延迟分配装置;客户端文件布局提交装置;客户端删除文件时的存储资源回收装置;
在上述分配系统中,进一步地,所述存储资源是存储设备抽象成具有一定容量的线性数据块地址空间。
在上述分配系统中,进一步地,元数据服务器存储资源管理装置维护系统中数据存储资源,包括存储资源分配、回收、查询、预留等操作部件,具有接收客户端存储资源预申请与回收预申请存储资源的接口。
在上述分配系统中,进一步地,元数据服务器文件布局提交装置包括文件布局提交、存储资源状态更新等部件。其中,文件布局提交部件负责接收客户端文件布局提交请求,按照元数据服务器端的文件布局格式组装文件布局,并持久记录;存储资源状态更新部件负责把客户端提交的文件布局中包含的存储资源状态设置为已分配状态。
在上述分配系统中,进一步地,客户端存储资源预申请装置包括存储资源预申请、预申请存储资源记录、预申请存储资源查询、预申请存储资源分配、预申请存储资源回收等部件,具有接收客户端存储资源分配、回收的接口。
在上述分配系统中,进一步地,客户端写文件时的存储资源延迟分配装置包括组装文件布局、设置文件布局状态标识的部件。其中,组装文件布局部件负责把分配的存储资源按照客户端文件布局格式组装文件布局;设置文件布局状态标识部件设置文件布局状态为客户端还未提交到元数据服务器状态。
在上述分配系统中,进一步地,客户端文件布局提交装置包括提交文件布局、设置文件布局状态标识的部件。其中,提交文件布局负责按照与元数据服务器之间的交互协议组装待提交文件布局,并发送到元数据服务器;设置文件布局状态标识部件负责文件布局提交完成之后,设置文件布局状态标识为已经提交到元数据服务器状态。
在上述分配系统中,进一步地,客户端删除文件时的存储资源回收装置包括回收客户端文件布局、回收已提交文件布局的部件。其中,回收客户端文件布局部件负责回收未提交到元数据服务器的文件布局;回收已提交文件布局布局负责回收已经提交到元数据服务器的文件布局。
如图4所示,基于客户端的存储资源延迟分配系统,主要包括元数据服务器5和客户端15。
所述元数据服务器5具体包括:存储资源1;与所述存储资源1连接的存储资源管理装置2,具有接收客户端15预申请存储资源管理装置12的存储资源预申请的接口;与所述存储资源管理装置2连接的文件布局维护装置3,具有接收客户端15文件布局维护装置13的布局提交请求的接口;所述文件布局4,由文件布局维护装置3维护;
所述客户端15具体包括:预申请存储资源11;与所述预申请存储资源11连接的预申请存储资源管理装置12;与所述预申请存储资源管理装置12连接的文件布局维护装置13,所述文件布局维护装置具有接收待处理的文件布局14的接口;与所述文件布局维护装置13连接的写文件部件16;与所述文件布局维护装置13连接的删除文件部件17。
下面对各部分进行说明:
所述存储资源1是抽象化的具有一定容量的线性地址空间。该线性地址空间包含多个物理存储设备的存储资源,线性地址空间遵循如下的规律:对相距较近地址空间的访问性能优于距离较远的地址空间访问。该线性地址空间由元数据服务器存储资源管理装置2维护。
所述预申请存储资源11是客户端从元数据服务器存储资源管理装置2获取的预申请存储资源。
所述存储资源管理装置2是管理存储资源1的装置,对存储资源1的申请、回收、查询进行管理,为预申请存储资源管理装置12提供存储资源预留接口,为文件布局维护装置3提供存储资源分配、释放、查询接口。
所述预申请存储资源管理装置12,对预申请存储资源进行管理,为文件布局维护装置13提供存储资源分配、释放、查询接口。负责从存储资源管理装置2预申请存储资源,并记录在预申请存储资源11中。
所述文件布局维护装置3,对元数据服务器端的文件布局4进行维护,包括对文件布局4的创建、删除等,为文件布局维护装置13提供布局提交接口。
所述文件布局维护装置13,对客户端的文件布局14进行维护,提供在写文件部件中分配文件布局14的接口,在删除文件部件17中释放文件布局14的接口。负责接收写文件部件的布局分配请求,并从预申请存储资源管理装置12分配存储资源,创建文件布局14;负责接收删除文件布局部件17的布局释放请求,根据文件布局状态把文件布局14释放到预申请存储资源管理装置12中或者释放到文件布局维护装置3中。
所述写文件部件16完成文件写操作,在写操作过程中调用文件布局维护装置13的布局分配接口进行布局分配;所述删除文件部件17完成文件删除操作,在删除操作过程中调用文件布局维护装置13的释放文件布局接口完成文件布局释放。
具体实施方式中,基于客户端的存储资源延迟分配方法,包括如下步骤:
一、基于客户端的存储资源延迟分配的步骤
1.客户端存储资源预申请步骤
1.1客户端存储资源预申请
客户端根据历史的文件布局操作情况,如果涉及到大量的小文件布局操作,则认为需要进行基于客户端的存储资源延迟分配,并确定期望的预申请存储资源数量。之后,向元数据服务器发送请求以预申请存储资源,请求中包含期望的预申请空闲存储资源数量(Expect_Count)。
1.2元数据服务器分配预申请存储资源
元数据服务器接收到客户端发送的存储资源预申请请求后,启动分配预申请存储资源的过程。元数据服务器尽量为不同的客户端分配不同存储设备上的连续存储资源,以缓解多个客户端对同一存储设备的随机访问。在分配时,尽量满足客户端的Expect_count数量要求。在分配空闲存储资源之后,元数据服务器以存储资源预留的方式在内存中记录。针对每一个客户端设置一个链表记录预申请的存储资源。由于预申请的存储资源连续性较好,因此采用扩展extent方式进行记录,仅记录预申请的起始存储资源序号和预申请长度,即(res_start,res_count)。对存储资源的空闲与否状态不进行修改,仍然保持为空闲状态,以保证在异常宕机情况下的存储资源状态一致性。之后,向客户端返回预申请的存储资源,包括预申请存储资源的起始序号和实际分配到的存储资源数量(res_start,res_count)。
1.3客户端记录预申请存储资源
客户端从元数据服务器获取预申请存储资源后,采用extent链表方式记录在内存中,即(res_start,res_count)。
2.写文件时存储资源延迟分配文件布局步骤
2.1客户端写文件数据
客户端首先把数据内容拷贝到文件的页缓存中,此时还不必进行文件布局分配;然后,客户端异步批量提交页缓存,尝试持久提交到存储设备。页缓存能够包含多个文件的多个页,可以批量提交到存储设备。
2.2客户端分配文件布局
客户端批量提交页缓存时,触发客户端分配文件布局过程。如果页缓存所对应的文件布局已经存在,则直接使用已经存在的所述文件布局即可,不必进行文件布局分配;如果页缓存所对应的文件布局不存在,则需要分配。由客户端文件布局维护装置向客户端预申请存储资源管理装置调用存储资源分配接口,分配预申请存储资源。客户端文件布局维护装置分配到存储资源后,把分配到的存储资源按照客户端文件布局格式进行组装,并记录在内存中。之后,设置文件布局状态为未提交状态。
客户端文件布局格式可以采用extent格式,构成四元组(文件起始逻辑偏移、物理存储资源起始序号、布局长度、布局状态),表示从“文件起始逻辑偏移”开始并且长度为“布局长度”的文件内容存储到“物理存储资源起始序号”开始并且长度为“布局长度”的物理存储设备上。“布局状态”表示文件布局已经提交到元数据服务器或者未提交到元数据服务器的状态。
2.3客户端提交页缓存
客户端获取页缓存对应的文件布局后,把页缓存提交到对应物理存储设备的对应地址。
3.异步提交文件布局步骤
3.1客户端异步提交文件布局
客户端根据策略触发异步提交文件布局过程,比如当文件关闭后提交文件布局、当客户端内存存储资源紧张后选择性的提交文件布局、当超过一定时间后提交文件布局等策略。客户端文件布局维护装置把待提交文件布局按交互协议格式进行组装,发送提交文件布局请求到元数据服务器文件布局维护装置。
3.2元数据服务器提交文件布局
元数据服务器接收到客户端提交文件布局请求后,获取待提交的文件布局;然后,根据元数据服务器端的布局格式进行提交,并持久记录。作为一种示例,元数据服务器端的文件布局可以采用类似EXT3的三级间接地址方式。之后,修改提交文件布局包含的物理存储资源状态为已占用,保证服务器宕机情况下的存储资源状态一致。
3.3客户端修改文件布局状态
客户端接收到元数据服务器文件布局请求响应消息后,修改文件布局中的“布局状态”为已提交状态。
二、删除文件时存储资源回收步骤
1.客户端删除文件
客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收。如果文件布局“布局状态”为未提交状态,则进行客户端存储资源回收;如果文件布局“布局状态”为已提交状态,则发送请求到元数据服务器进行存储资源回收。
2.客户端存储资源回收
如果文件布局“布局状态”为未提交状态,则进行客户端存储资源回收。首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局。
3.元数据服务器存储资源回收
如果文件布局“布局状态”为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收。元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
三、异常宕机情况下的存储资源一致性保证步骤
1.仅客户端异常宕机恢复
客户端异常宕机后,还未分配的预申请存储资源以及已分配但是还未提交到元数据服务器的存储资源丢失,已经提交到元数据服务器的存储资源已经持久记录并且存储资源处于一致状态。因此,当客户端重新启动后,与元数据服务器进行交互,元数据服务器丢弃为该客户端预留的存储资源,即可达到存储资源一致状态。
2.仅元数据服务器异常宕机恢复
元数据服务器异常宕机后,客户端已经提交到元数据服务器的文件布局存储资源已经一致,需要保证客户端预申请存储资源与已分配但是还未提交到元数据服务器的存储资源状态一致。当元数据服务器重新启动后,客户端与元数据服务器通信,由元数据服务器重新构建客户端预申请存储资源和已分配但是还未提交的存储资源。具体步骤如下:
2.1元数据服务器宕机恢复
元数据服务器宕机恢复后,等待一段延时。在这段延时中客户端可以发现元数据服务器宕机重启,并进行存储资源重构操作。
2.2客户端发送存储资源重构请求
客户端检查到元数据服务器宕机重启后,把预申请存储资源以及已经分配但是还未提交的存储资源状态组织为待重构的存储资源状态,然后发送到元数据服务器。
2.3元数据服务器重构存储资源状态
元数据服务器接收到客户端发送的存储资源重构请求后,根据请求中包含的待重构的存储资源进行存储资源预留操作,并返回给客户端存储资源重构完成响应消息。
2.4客户端存储资源重构完成
客户端接收到元数据服务器返回的重构完成消息后,表示存储资源重构完成,存储资源处于一致状态,后续即可进行正常操作。
3.客户端和元数据服务器同时异常宕机
客户端和元数据服务器同时异常宕机后,客户端预申请存储资源以及已经分配但是还未提交的存储资源丢失,已经提交到元数据服务器的文件布局存储资源已经一致,元数据服务器的存储资源预留信息丢失。因此,存储资源状态已经处于一致状态,客户端和元数据服务器不必进行任何存储资源重构恢复操作。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (8)
1.一种机群文件系统客户端存储资源延迟分配方法,其特征在于,包括:
步骤1,客户端根据文件布局操作情况,进行存储资源延迟分配,其中该步骤1包括:
步骤21,将存储资源在客户端进行预申请,其中客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;元数据服务器根据策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;客户端在内存中记录预申请获取的空闲存储资源;
步骤22,写文件时客户端的存储资源延迟分配文件布局,其中写文件时,在客户端从预申请存储资源中分配空闲存储资源;在客户端内存中以文件布局格式记录分配的存储资源;
步骤23,异步提交文件布局,其中客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
步骤2,在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
步骤3,对存储资源在客户端与元数据服务器之间的一致性进行维护。
2.如权利要求1所述的机群文件系统客户端存储资源延迟分配方法,其特征在于,所述步骤23还包括:
步骤52,元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
步骤53,元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
3.如权利要求1所述的机群文件系统客户端存储资源延迟分配方法,其特征在于,步骤2包括:
步骤61,客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
步骤62,如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
步骤63,如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
4.如权利要求1所述的机群文件系统客户端存储资源延迟分配方法,其特征在于,步骤3包括:
步骤71,当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
步骤72,当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
步骤73,当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
5.一种机群文件系统客户端存储资源延迟分配系统,其特征在于,包括:
延迟分配模块,用于客户端根据文件布局操作情况,进行存储资源延迟分配,其中该延迟分配模块包括:
预申请模块,用于将存储资源在客户端进行预申请,其中所述预申请模块包括申请空闲存储资源模块,用于客户端根据申请策略向元数据服务器预申请一定数量的空闲存储资源;分配存储资源模块,用于元数据服务器根据申请策略为所述客户端采用存储资源预留方式预分配一定数量的空闲存储资源;记录存储资源模块,用于客户端在内存中记录预申请获取的空闲存储资源;
文件布局模块,用于写文件时客户端的存储资源延迟分配文件布局,其中所述文件布局模块包括申请资源模块,用于写文件时,在客户端从预申请存储资源中分配空闲存储资源;记录资源模块,用于在客户端内存中以文件布局格式记录分配的存储资源;
异步提交模块,用于异步提交文件布局,其中所述异步提交模块包括异步提交子模块,用于客户端根据异步提交策略,通过与元数据服务器网络交互,异步提交在客户端内存中记录的文件布局;
资源回收模块,用于在文件删除时对存储资源回收,处理客户端延迟分配的存储资源回收;
一致性维护模块,用于对存储资源在客户端与元数据服务器之间的一致性进行维护。
6.如权利要求5所述的机群文件系统客户端存储资源延迟分配系统,其特征在于,所述异步提交模块还包括:
记录布局模块,用于元数据服务器把提交的文件布局按照元数据服务器文件布局格式进行记录;
设置状态模块,用于元数据服务器把已经提交的文件布局中包含的存储资源状态设置为已经分配状态。
7.如权利要求5所述的机群文件系统客户端存储资源延迟分配系统,其特征在于,资源回收模块包括:
接受删除文件模块,用于客户端接收应用程序的删除文件请求,对文件布局包含的存储资源进行回收;如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;如果文件布局的布局状态为已提交状态,则发送请求到元数据服务器进行存储资源回收;
存储资源回收模块,用于如果文件布局的布局状态为未提交状态,则进行客户端存储资源回收;首先,调用客户端预申请存储资源管理装置的存储资源回收接口,把所述文件布局包含的存储资源回收到客户端预申请存储资源中;然后,清除文件布局;
清除记录模块,用于如果文件布局的布局状态为已经提交状态,则客户端清除缓存中的文件布局记录,并发送请求到元数据服务器进行存储资源回收;元数据服务器接收到文件布局回收请求后,清除元数据服务器文件布局,并且把被清除文件布局包含的存储资源状态设置为空闲。
8.如权利要求5所述的机群文件系统客户端存储资源延迟分配系统,其特征在于,一致性维护模块包括:
一致性模块,用于当客户端异常宕机重启后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,已经提交的文件布局包含存储资源已经在元数据服务器端一致;重启后,客户端与元数据服务器进行交互,元数据服务器清除该客户端预留存储资源记录,达到存储资源一致状态;
建立预留资源模块,用于当元数据服务器宕机重启后,客户端与元数据服务器交互,元数据服务器根据客户端当前的预申请存储资源记录重新为该客户端建立预留存储资源,达到存储资源一致状态;
资源丢失管理模块,用于当客户端和元数据服务器同时宕机后,在客户端内存中记录的未分配的预申请存储资源丢失,在客户端内存中记录的未提交的文件布局丢失,在元数据服务器记录的该客户端的预留记录丢失,客户端已经提交的文件布局相关存储资源已经在元数据服务器端一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210160339.9A CN102790797B (zh) | 2012-05-22 | 2012-05-22 | 一种机群文件系统客户端存储资源延迟分配方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210160339.9A CN102790797B (zh) | 2012-05-22 | 2012-05-22 | 一种机群文件系统客户端存储资源延迟分配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102790797A CN102790797A (zh) | 2012-11-21 |
CN102790797B true CN102790797B (zh) | 2015-05-06 |
Family
ID=47156095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210160339.9A Expired - Fee Related CN102790797B (zh) | 2012-05-22 | 2012-05-22 | 一种机群文件系统客户端存储资源延迟分配方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102790797B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245617A (zh) * | 2015-10-27 | 2016-01-13 | 江苏电力信息技术有限公司 | 一种基于容器的服务器资源供给方法 |
US9886449B1 (en) | 2016-07-22 | 2018-02-06 | Red Hat, Inc. | Delayed allocation for data object creation |
US9588976B1 (en) | 2016-07-22 | 2017-03-07 | Red Hat, Inc. | Delayed allocation for a direct access non-volatile file system |
CN110011984B (zh) * | 2019-03-19 | 2021-07-06 | 西安微电子技术研究所 | 一种基于rest和rpc的分布式集群系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073739A (zh) * | 2011-01-25 | 2011-05-25 | 中国科学院计算技术研究所 | 带有快照功能的分布式文件系统中的数据读与数据写方法 |
CN102158546A (zh) * | 2011-02-28 | 2011-08-17 | 中国科学院计算技术研究所 | 一种集群文件系统及其文件服务方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260609A1 (en) * | 2005-11-28 | 2007-11-08 | Akhil Tulyani | System and method for high throughput with remote storage servers |
-
2012
- 2012-05-22 CN CN201210160339.9A patent/CN102790797B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073739A (zh) * | 2011-01-25 | 2011-05-25 | 中国科学院计算技术研究所 | 带有快照功能的分布式文件系统中的数据读与数据写方法 |
CN102158546A (zh) * | 2011-02-28 | 2011-08-17 | 中国科学院计算技术研究所 | 一种集群文件系统及其文件服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102790797A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
US10198356B2 (en) | Distributed cache nodes to send redo log records and receive acknowledgments to satisfy a write quorum requirement | |
JP6522812B2 (ja) | 分散型データベースシステム用高速クラッシュ回復 | |
US10331655B2 (en) | System-wide checkpoint avoidance for distributed database systems | |
CA2906415C (en) | Database system with database engine and separate distributed storage service | |
CN103179185B (zh) | 一种分布式文件系统客户端缓存中文件创建方法及其系统 | |
US9507843B1 (en) | Efficient replication of distributed storage changes for read-only nodes of a distributed database | |
US9460008B1 (en) | Efficient garbage collection for a log-structured data store | |
CN102790797B (zh) | 一种机群文件系统客户端存储资源延迟分配方法和系统 | |
CN105407044A (zh) | 一种基于nfs的云存储网关系统的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150506 |