用于文件系统虚拟化的方法和设备、用于文件系统虚拟化的数据存储系统、以及用于数据...的制作方法

文档序号:9829886阅读:267来源:国知局
用于文件系统虚拟化的方法和设备、用于文件系统虚拟化的数据存储系统、以及用于数据 ...的制作方法
【技术领域】
[0001]本发明涉及一种用于文件系统虚拟化的方法、设备和数据存储系统、以及用于这种数据存储系统的文件服务器。
【背景技术】
[0002]在现有技术中,已知,例如如下结合图1A描述的数据存储系统,其中经由通信网络将多个客户端计算机与一个或多个文件服务器系统连接,该一个或多个文件服务器系统管理客户端计算机对一个或多个文件系统的I/O访问。
[0003]在某些时候,可能期望用新文件服务器来更换一个或多个(传统)文件服务器,以便提升整个数据存储系统的性能,这是因为例如较新的文件服务器可以配置为管理更多的文件系统或更大的文件系统(包括允许更大的数据存储空间和/或更大量的文件系统对象)、允许更有效的输入/输出(I/O)性能、允许使用更大的存储单元或包含更有效的存储装置技术的存储单元。但是,可能期望保持包括文件系统结构(例如现有文件树结构)和其用户数据(文件内容)的现有文件系统,同时原则上期望使用户能够无中断地或者至少具有尽可能短的一个中断来访问现有文件系统。在US 7,457,822B1中描述了基于硬件文件系统的设备和方法的示例,其通过引用合并于此。

【发明内容】

[0004]如下更详细描述的,本发明的实施例可以涉及一种数据存储系统及其部件,其中(新的)第一文件系统管理单元在多个客户端计算机与(传统)第二文件系统管理单元之间互连,其中(传统)第二文件系统管理单元管理通过客户端计算机可访问的一个或多个文件系统。
[0005]在互连(新的)第一个文件系统管理单元之后,通过(新的)第一个文件系统管理单元可以实现通过客户端计算机到(传统)第二文件系统管理单元的一个或多个文件系统的I/O访问。在被称为虚拟化的第一阶段中,可以由(新的)第一文件系统管理单元的一个或多个虚拟化文件系统来表示(传统)第二文件系统管理单元的一个或多个文件系统,其中在虚拟化阶段逐渐地建立虚拟化系统。在被称为迀移的第二阶段中(其可以与虚拟化阶段重叠),(传统)第二文件系统管理单元的一个或多个文件系统的用户数据可以被迀移至(新的)第一文件系统管理单元。
[0006]根据本发明,本发明的一个目的是提供一种用于建立和提供允许间接访问第二文件系统和允许客户端访问第二文件系统的虚拟化文件系统的方法、设备、数据存储系统和文件服务器。
[0007]根据一些实施例,可以提供一种提供允许间接访问数据存储系统中的第二文件系统的虚拟化文件系统的设备,所述数据存储系统包括多个客户端计算机、用于管理所述第二文件系统并且允许客户端访问所述第二文件系统的第二文件系统管理单元、以及在所述多个客户端计算机与所述第二文件系统管理单元之间互连的第一文件系统管理单元。
[0008]在一些实施例中,所述设备可以包括以如下方式配置的所述第一文件系统管理单元:在由所述第一文件系统管理单元管理的第一文件系统中创建第一目录;将所述第二文件系统的第一目录与所述第一文件系统的所述第一目录建立关联;基于在所述第一文件系统管理单元从所述客户端计算机接收到的客户端请求以及基于所述第一文件系统的所述第一目录与所述第二文件系统的所述第一目录之间的所述关联,允许通过所述第一文件系统管理单元对所述第二文件系统的按需虚拟化;以及/或者允许客户端通过所述第一文件系统间接访问所述第二文件系统。这具有以下优点:在互连所述第一文件系统管理单元之后,基本上能够立即允许客户端通过所述第一文件系统管理单元间接访问所述第二文件系统。
[0009]在一些实施例中,为了执行按需虚拟化,所述第一文件系统管理单元可以配置为:在关于所述第二文件系统的所述第一目录的第二路径位置,从客户端计算机接收针对所述第二文件系统的第二目录的访问请求;若接收到针对所述第二文件系统的所述第二目录的所述访问请求,则在关于所述第一文件系统的所述第一目录的所述第二路径位置,在所述第一文件系统中创建第二目录;以及/或者将所述第二文件系统的所述第二目录的元数据存储在所述第一文件系统中作为所述第一文件系统的所述第二目录的元数据。
[0010]在一些实施例中,所述第一文件系统管理单元可以配置为:当所述访问请求是用于修改所述第二文件系统的所述第二目录的请求时,根据所接收到的访问请求来修改所述第一文件系统的所述第二目录,向所述第二文件系统管理单元发送所述访问请求以便于根据所述第二文件系统管理单元所接收到的访问请求来修改所述第二文件系统的所述第二文件;以及/或者当所述访问请求是用于读取所述第二文件系统的所述第二目录的属性的请求时,基于所述第一文件系统的所述第二目录的元数据来返回所请求的所述第二文件系统的所述第二目录的属性。
[0011]在一些实施例中,为了执行按需虚拟化,所述第一文件系统管理单元可以配置为:在关于所述第二文件系统的所述第一目录的第一路径位置,从客户端计算机接收针对所述第二文件系统的第一文件的访问请求;若接收到针对所述第二文件系统的所述第一文件的所述访问请求,则在关于所述第一文件系统的所述第一目录的所述第一路径位置,在所述第一文件系统中创建第一外部链接对象;以及/或者将所述第二文件系统的所述第一文件的元数据存储在所述第一文件系统中作为所述第一文件系统的所述第一文件连同所述第一外部链接对象的元数据。
[0012]在一些实施例中,所述外部链接对象可以是所述第一文件系统的文件系统对象,表示在所述第一文件系统中的所述第二文件系统的所述第一文件并且允许访问所述第二文件系统的所述第一文件,所述第一外部链接对象包括链接数据,所述链接数据至少表示在所述第二文件系统中的所述第一文件的唯一对象ID和关于所述第二文件系统的所述第一目录的所述第一路径位置。
[0013]在一些实施例中,所述第一文件系统管理单元可以配置为:当所述访问请求是用于修改所述第二文件系统的所述第一文件的请求时,基于所述第一外部链接对象的所述链接数据向所述第二文件系统管理单元发送所述访问请求,以便于根据所述第二文件系统管理单元所接收到的访问请求来修改所述第二文件系统的所述第一文件;以及/或者当所述访问请求是用于读取所述第二文件系统的所述第一文件的属性的请求时,基于所述第一外部链接对象的元数据来返回所请求的所述第二文件系统的所述第一文件的属性。
[0014]在一些实施例中,所述第一文件系统管理单元可以配置为:不依赖于在所述第一文件系统管理单元从所述客户端计算机接收到的客户端请求,而是基于由所述第一文件系统管理单元管理的虚拟化管理信息且基于所述第一文件系统的所述第一目录与所述第二文件系统的所述第一目录之间的所述关联,允许通过所述第一文件系统管理单元对所述第二文件系统的自动虚拟化,所述虚拟化管理信息至少表示存在于所述第二文件系统中的所述第一目录。
[0015]在一些实施例中,为了执行自动虚拟化,所述第一文件系统管理单元可以配置为为了执行自动虚拟化,所述第一文件系统管理单元配置为:向所述第二文件系统管理单元发送针对在所述虚拟化管理信所表示的所述第二文件系统的目标目录的目录信息请求,以便于请求表示存在于所述第二文件系统的所述目标目录中的子对象的信息;响应所述目录信息请求,从所述第二文件系统管理单元接收表示存在于所述第二文件系统的所述目标目录中的子对象的信息;以及/或者基于所接收到的表示存在于所述第二文件系统的所述目标目录中的子对象的信息,来更新所述虚拟化管理信息。
[0016]在一些实施例中,为了执行自动虚拟化,所述第一文件系统管理单元可以配置为:针对在所述虚拟化管理信息中表示的存在于所述第二文件系统的所述目标目录中的每个子对象,在与关于所述第二文件系统的所述第一目录的所述相关的子对象的所述路径位置相对应的关于所述第一文件系统的所述第一目录的路径位置,在所述第一文件系统中创建相关文件系统。
[0017]在一些实施例中,针对所述第二文件系统的多个目标目录,通过所述第一文件系统管理单元自动反复发送所述目录信息请求,以及/或者针对在所述虚拟化管理信息中表示的存在于所述第二文件系统的所述目标目录中的每个子对象,可以通过所述第一文件系统管理单元针对所述多个目标目录中的每个在所述第一文件系统中反复创建相关的文件系统对象。
[0018]在一些实施例中,可以通过所述第一文件系统管理单元并行执行针对所述第二文件系统的多个目标目录反复发送所述目录信息请求,和针对所述多个目标目录的子目录的每个在所述第一文件系统中反复创建所述相关的文件系统对象。
[0019]在一些实施例中,可以基于所述第一文件系统管理单元的缓冲单元的存储占有率,通过所述第一文件系统管理单元控制针对所述第二文件系统的多个目标目录反复发送所述目录信息请求的每单位时间执行速率。
[0020]在一些实施例中,可以基于所述第一文件系统管理单元与第二文件系统管理单元之间的通信信道的可用率,通过所述第一文件系统管理单元控制针对所述第二文件系统的多个目标目录反复发送所述目录信息请求的每单位时间执行速率。
[0021]在一些实施例中,当相关的子对象是所述第二文件系统的第三目录时,所创建的文件系统对象可以是所述第一文件系统的第三目录。
[0022]在一些实施例中,为了执行自动虚拟化,所述第一文件系统管理单元还可以配置为:在所创建的所述第一文件系统的第三目录中创建自参考链接,基于在所述第二文件系统中相关的第三目录的子目录的个数,针对所创建的所述第一文件系统的第三目录计算假链接数,以及/或者将所计算出的假链接数存储在所创建的所述第一文件系统的第三目录的元数据中。
[0023]在一些实施例中,所述第一文件系统管理单元可以配置为:当自动创建与所述第二文件系统的所述第三目录的子目录相关联的所述第一文件系统的所述第三目录中的子目录时,减小在与所述第二文件系统中的所述第三目录相关联的所述第一文件系统的所述第三目录的所述元数据中存储的所述假链接数。
[0024]在一些实施例中,所述第一文件系统管理单元还可以配置为:从所述客户端计算机之一接收用于读取所述第二文件系统的所述第三目录的链接数的请求;通过将所述第一文件系统的所述第三目录的所述假链接数和所述第一文件系统的所述第三目录的真实链接数相加,来计算所述第二文件系统的所述第三目录的所述链接数;以及/或者响应于所述请求,将所计算出的链接数发送至所述客户端计算机。
[0025]在一些实施例中,当相应的子对象是所述第二文件系统的第二文件时,所创建的文件系统对象可以是第二外部链接对象,所述第二外部链接对象表示所述第一文件系统中的所述第二文件系统的所述第二文件并且允许访问所述第二文件系统的所述第二文件,所述第二外部链接对象包括链接数据,所述链接数据至少表示在所述第二文件系统中的所述第二文件的唯一对象ID和关于所述第二文件系统的所述第一目录的所述第二文件的路径位置。
[0026]在一些实施例中,所述第一文件系统管理单元还可以配置为将所述虚拟化管理信息划分为多个数据块,并且针对每个数据块反复生成所述虚拟化管理信息的每个所述数据块的备份副本。
[0027]在一些实施例中,所述多个数据库的第一数据块可以包括与所述第二文件系统的第四目录相关联的管理数据,以及一个或多个第二数据块可以包括与所述第二文件系统的所述第四目录的子目录相关联的管理数据,其中,所述第一文件系统管理单元还可以配置为在生成所述第一数据块的备份副本之前生成一个或多个第二数据块的每个的备份副本。
[0028]根据另一方面的一些实施例,可以提供一种提供允许间接访问数据存储系统中的第二文件系统的虚拟化文件系统的方法,所述数据存储系统包括多个客户端计算机、以及用于管理所述第二文件系统并且允许客户端访问所述第二文件系统的第二文件系统管理单元。
[0029]所述方法可以包括:在所述多个客户端计算机与所述第二文件系统管理单元之间互连第一文件系统管理单元;在由所述第一文件系统管理单元管理的第一文件系统中创建第一目录;将所述第二文件系统的第一目录与所述第一文件系统的所述第一目录相关联;基于在所述第一文件系统管理单元处从所述客户端计算机接收到的客户端请求以及基于所述第一文件系统的所述第一目录与所述第二文件系统的所述第一目录之间的所述关联,允许通过第一文件系统管理单元对所述第二文件系统的按需虚拟化;以及/和允许客户端通过所述第一文件系统间接访问所述第二文件系统。
[0030]在一些实施例中,按需虚拟化可以包括:在第一文件系统管理单元,在关于所述第二文件系统的所述第一目录的第二路径位置,接收针对所述第二文件系统的第二目录的访问请求;若接收到针对所述第二文件系统的所述第二目录的所述访问请求,则在关于所述第一文件系统的所述第一目录的所述第二路径位置,在所述第一文件系统中创建第二目录;以及/或者将所述第二文件系统的所述第二目录的元数据存储在所述第一文件系统中作为所述第一文件系统的所述第二目录的元数据。
[0031 ]在一些实施例中,当所述访问请求是用于修改所述第二文件系统的所述第二目录的请求时,所述方法还可以包括:根据所接收到的访问请求来修改所述第一文件系统的所述第二目录,向所述第二文件系统管理单元发送所述访问请求,以及根据所接收到的访问请求来修改所述第二文件系统的所述第二文件。
[0032]在一些实施例中,当所述访问请求是用于读取所述第二文件系统的所述第二目录的属性的请求时,所述方法还可以包括:基于所述第一文件系统的所述第二目录的元数据来返回所请求的所述第二文件系统的所述第二目录的属性。
[0033]在一些实施例中,按需虚拟化可以包括:在第一文件系统管理单元,在关于所述第二文件系统的所述第一目录的第一路径位置,接收针对所述第二文件系统的第一文件的访问请求;若接收到针对所述第二文件系统的所述第一文件的所述访问请求,则在关于所述第一文件系统的所述第一目录的所述第一路径位置,在所述第一文件系统中创建第一外部链接对象;以及/或者将所述第二文件系统的所述第一文件的元数据存储在所述第一文件系统中作为所述第一文件系统的所述第一文件连同所述第一外部链接对象的元数据。
[0034]所述外部链接对象可以是所述第一文件系统的文件系统对象,表示在所述第一文件系统中的所述第二文件系统的所述第一文件并且允许访问所述第二文件系统的所述第一文件,所述第一外部链接对象优选包括链接数据,所述链接数据至少表示在所述第二文件系统中的所述第一文件的唯一对象ID和关于所述第二文件系统的所述第一目录的所述第一路径位置。
[0035]在一些实施例中,当所述访问请求是用于修改所述第二文件系统的所述第一文件的请求时,所述方法还可以包括:基于所述第一外部链接对象的所述链接数据向所述第二文件系统管理单元发送所述访问请求,并且根据所接收到的访问请求来修改所述第二文件系统的所述第一文件。
[0036]在一些实施例中,当所述访问请求是用于读取所述第二文件系统的所述第一文件的属性的请求时,所述方法还可以包括:基于所述第一外部链接对象的元数据来返回所请求的所述第二文件系统的所述第一文件的属性。
[0037]在一些实施例中,所述方法还可以包括:不依赖于在所述第一文件系统管理单元从所述客户端计算机接收到的客户端请求,以及/或者基于由所述第一文件系统管理单元管理的虚拟化管理信息且基于所述第一文件系统的所述第一目录与所述第二文件系统的所述第一目录之间的所述关联,允许通过所述第一文件系统管理单元对所述第二文件系统的自动虚拟化,所述虚拟化管理信息优选至少表示存在于所述第二文件系统中的所述第一目录。
[0038]在一些实施例中,自动虚拟化可以包括:从所述第一文件系统管理单元向所述第二文件系统管理单元发送针对在所述虚拟化管理信所表示的所述第二文件系统的目标目录的目录信息请求,以便于请求表示存在于所述第二文件系统的所述目标目录中的子对象的信息;响应于所述目录信息请求,在所述第一文件系统管理单元从所述第二文件系统管理单元接收表示存在于所述第二文件系统的所述目标目录中的子对象的信息;以及/或者基于所接收到的表示存在于所述第二文件系统的所述目标目录中的子对象的信息,来更新所述虚拟化管理信息。
[0039]在一些实施例中,自动虚拟化还可以包括:针对在所述虚拟化管理信息中表示的存在于所述第二文件系统的所述目标目录中的每个子对象,在与关于所述第二文件系统的所述第一目录的所述相关的子对象的所述路径位置相对应的关于所述第一文件系统的所述第一目录的路径位置,在所述第一文件系统中创建相关文件系统。
[0040]在一些实施例中,针对所述第二文件系统的多个目标目录,自动反复发送所述目录信息请求,以及/或者针对在所述虚拟化管理信息中表示的存在于所述第二文件系统的所述目标目录中的每个子对象,针对所述多个目标目录中的每个在所述第一文件系统中反复创建相关的文件系统对象。
[0041]在一些实施例中,可以并行执行针对所述第二文件系统的多个目标目录反复发送所述目录信息请求,和针对所述多个目标目录的子目录的每个在所述第一文件系统中反复创建所述相关的文件系统对象。
[0042]在一些实施例中,可以基于所述第一文件系统管理单元的缓冲单元的存储占有率,控制针对所述第二文件系统的多个目标目录反复发送所述目录信息请求的每单位时间执行速率。
[0043]在一些实施例中,可以基于所述第一文件系统管理单元与第二文件系统管理单元之间通信信道的可用率,控制针对所述第二文件系统的多个目标目录反复发送所述目录信息请求的每单位时间执行速率。
[0044]在一些实施例中,当相关的子对象是所述第二文件系统的第三目录时,所创建的文件系统对象可以是所述第一文件系统的第三目录。
[0045]在一些实施例中,自动虚拟化还可以包括:在所创建的所述第一文件系统的第三目录中创建自参考链接,基于在所述第二文件系统中相关的第三目录的子目录的个数,针对所创建的所述第一文件系统的第三目录计算假链接数,以及/或者将所计算出的假链接数存储在所创建的所述第一文件系统的第三目录的元数据中。
[0046]在一些实施例中,所述方法还可以包括:当自动创建与所述第二文件系统的所述第三目录的子目录相关联的所述第一文件系统的所述第三目录中的子目录时,减小在与所述第二文件系统中的所述第三目录相关联的所述第一文件系统的所述第三目录的所述元数据中存储的所述假链接数。
[0047]在一些实施例中,所述方法还可以包括:在所述第一文件系统管理单元从所述客户端计算机之一接收用于读取所述第二文件系统的所述第三目录的链接数的请求;在所述第一文件系统管理单元通过将所述第一文件系统的所述第三目录的所述假链接数和所述第一文件系统的所述第三目录的真实链接数相加,来计算所述第二文件系统的所述第三目录的所述链接数;以及/或者响应于所述请求,将所计算的链接数发送到所述客户端计算机。
[0048]在一些实施例中,当相应的子对象是所述第二文件系统的第二文件时,所创建的文件系统对象可以是第二外部链接对象,所述第二外部链接对象优选表示所述第一文件系统中的所述第二文件系统的所述第二文件并且允许访问所述第二文件系统的所述第二文件,所述第二外部链接对象优选包括链接数据,所述链接数据至少表示在所述第二文件系统中的所述第二文件的唯一对象ID和关于所述第二文件系统的所述第一目录的所述第二文件的路径位置。
[0049]在一些实施例中,所述方法还可以包括:将所述虚拟化管理信息划分为多个数据块,并且针对每个数据块反复生成所述虚拟化管理信息的每个所述数据块的备份副本。
[0050]在一些实施例中,所述多个数据库的第一数据块包括与所述第二文件系统的第四目录相关联的管理数据,以及一个或多个第二数据块包括与所述第二文件系统的所述第四目录的子目录相关联的管理数据,其中所述方法优选还包括在生成所述第一数据块的备份副本之前生成一个或多个第二数据块的每个的备份副本。
[0051]根据另一方面,可以提供一种提供允许间接访问数据存储系统中的第二文件系统的虚拟化文件系统的设备,所述数据存储系统包括多个客户端计算机、用于管理所述第二文件系统并且允许客户端访问所述第二文件系统的第二文件系统管理单元、以及在所述多个客户端计算机与所述第二文件系统管理单元之间互连的第一文件系统管理单元。
[0052]所述设备可以包括以如下方式配置的所述第一文件系统管理单元:在由所述第一文件系统管理单元管理的第一文件系统中创建第一目录;将所述第二文件系统的第一目录与所述第一文件系统的所述第一目录建立关联;基于在所述第一文件系统管理单元从所述客户端计算机接收到的客户端请求以及基于所述第一文件系统的所述第一目录与所述第二文件系统的所述第一目录之间的所述关联,允许通过所述第一文件系统管理单元对所述第二文件系统的按需虚拟化;以及/或者允许客户端通过所述第一文件系统间接访问所述第二文件系统。
[0053]在一些实施例中,所述设备的所述第一文件系统管理单元还可以配置为执行关于如上说明的一些实施例的一个或多个方面的步骤。
[0054]根据另一个方面,可以提供一种提供允许间接访问数据存储系统中第二文件系统的虚拟化文件系统的数据存储系统,所述数据存储系统包括多个客户端计算机、用于管理所述第二文件系统并且允许对所述第二文件系统的客户端访问的第二文件系统管理单元、以及在所述多个客户端计算机与所述第二文件系统管理单元之间互连的第一文件系统管理单元,所述第一文件系统管理单元优选配置为:在由所述
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1