CN111209259B - Nas分布式文件系统及数据处理方法 - Google Patents
Nas分布式文件系统及数据处理方法 Download PDFInfo
- Publication number
- CN111209259B CN111209259B CN201811401493.4A CN201811401493A CN111209259B CN 111209259 B CN111209259 B CN 111209259B CN 201811401493 A CN201811401493 A CN 201811401493A CN 111209259 B CN111209259 B CN 111209259B
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- database
- nas
- target
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了NAS分布式文件系统及数据处理方法,应用于数据存储技术领域,该系统包括:NAS集群、目录数据库及文件数据库,NAS集群包括多个NAS节点,目录数据库及文件数据库分布式部署在每个NAS节点上;目录数据库:用于存储目录元数据;文件数据库:用于存储文件元数据;NAS节点:用于针对目录数据库及文件数据库执行指定的数据操作。在本发明实施例的NAS分布式文件系统中,目录数据库及文件数据库分布式部署在每个NAS节点上,方便NAS节点对目录数据库及文件数据库进行数据操作,减少跨NAS节点进行数据操作的情况,增强了系统的可用性。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及NAS分布式文件系统及数据处理方法。
背景技术
传统NAS(Network Attached Storage,网络附属存储)存储都是单机非集群的,每台NAS机头及其所管理的存储设备和空间是彼此独立的,使用的文件系统为本地文件系统,在文件的命名空间上也都是彼此孤立的。所以,传统的NAS设备在存储空间和性能上扩展都受到了极大限制。
随着数据时代的来临,文件数据海量存储对传统存储模式造成了冲击,大容量、高性能集群NAS成为主要研究方向。现有NAS集群如图1所示,通过在客户端与NAS设备之间增加一层管理层,利用管理层对多个独立的NAS设备进行管理维护来说实现NAS集群的效果。
但是采用上述方法,利用管理层实现对多个独立的NAS设备进行管理,在数据操作的过程中,可能会存在跨NAS设备(节点)进行数据查询和目录迁移等数据操作的情况,导致数据操作效率低。
发明内容
本发明实施例的目的在于提供一种NAS分布式文件系统及数据处理方法,以实现增加数据操作效率。具体技术方案如下:
第一方面,本发明实施例提供了一种网络附属存储NAS分布式文件系统,所述系统包括:
NAS集群、目录数据库及文件数据库,所述NAS集群包括多个NAS节点,所述目录数据库及所述文件数据库分布式部署在每个所述NAS节点上;
所述目录数据库:用于存储目录元数据;
所述文件数据库:用于存储文件元数据,其中,所述文件元数据包括存储文件的地址信息;
所述NAS节点:用于针对所述目录数据库及所述文件数据库执行指定的数据操作。
可选的,所述NAS节点包括NAS文件系统模块及数据管理模块;
所述NAS文件系统模块:用于将接收到的数据操作请求转化为预设类型的目标操作请求,并向所述数据管理模块发送所述目标操作请求;
所述数据管理模块:用于按照所述NAS文件系统模块的目标操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作。
可选的,所述目录数据库包括主目录表及子目录表,所述文件数据库包括文件表,所述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,所述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,所述文件表中包括文件的地址信息。
可选的,所述NAS节点用于:获取请求目录路径,根据所述请求目录路径查找所述主目录表,确定所述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录标识,按照所述目标主目录的文件数据库标识及文件表标识确定目标文件表,在所述目标文件表中读取所述目标主目录下的文件的元数据,按照所述目标主目录的子目录标识确定目标子目录,获取所述目标子目录的元数据,返回所述目标主目录下的文件的元数据及所述目标子目录的元数据。
可选的,所述NAS节点用于:获取目录创建信息,根据所述目录创建信息创建待插入主目录,按照所述目录创建信息在所述目录数据库中创建新的子目录表;确定所述待插入主目录对应的文件数据库及文件表,按照对应关系,更新所述待插入主目录及所述新的子目录表;将更新后的所述待插入主目录插入到所述主目录表中。
可选的,所述NAS节点用于:获取目标文件的目标地址信息,按照所述目标地址信息查询所述主目录表、所述子目录表及所述文件表,确定包含所述目标地址信息的文件表,在包含所述目标地址信息的文件表中添加所述目标文件的元数据。
可选的,所述NAS节点用于:获取待查询文件的标识,按照所述待查询文件的标识查询所述目录数据库,确定所述待查询文件对应的文件表;在所述待查询文件对应的文件表中读取所述待查询文件的地址信息,按照所述待查询文件的地址信息获取所述待查询文件。
第二方面,本发明实施例提供了一种数据处理方法,应用于网络附属存储NAS分布式文件系统,所述NAS分布式文件系统包括:NAS集群、目录数据库及文件数据库,所述NAS集群包括多个NAS节点,所述目录数据库及所述文件数据库分布式部署在每个所述NAS节点上,所述方法包括:
所述NAS节点获取数据操作请求;
所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作。
可选的,所述NAS节点包括NAS文件系统模块及数据管理模块,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS文件系统模块将接收到的数据操作请求转化为预设类型的目标操作请求,并向所述数据管理模块发送所述目标操作请求;
所述数据管理模块按照所述NAS文件系统模块的目标操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作。
可选的,所述目录数据库包括主目录表及子目录表,所述文件数据库包括文件表,所述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,所述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,所述文件表中包括文件的地址信息。
可选的,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取请求目录路径,根据所述请求目录路径查找所述主目录表,确定所述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录标识,按照所述目标主目录的文件数据库标识及文件表标识确定目标文件表,在所述目标文件表中读取所述目标主目录下的文件的元数据,按照所述目标主目录的子目录标识确定目标子目录,获取所述目标子目录的元数据,返回所述目标主目录下的文件的元数据及所述目标子目录的元数据。
可选的,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取目录创建信息,根据所述目录创建信息创建待插入主目录,按照所述目录创建信息在所述目录数据库中创建新的子目录表;确定所述待插入主目录对应的文件数据库及文件表,按照对应关系,更新所述待插入主目录及所述新的子目录表;将更新后的所述待插入主目录插入到所述主目录表中。
可选的,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取目标文件的目标地址信息,按照所述目标地址信息查询所述主目录表、所述子目录表及所述文件表,确定包含所述目标地址信息的文件表,在包含所述目标地址信息的文件表中添加所述目标文件的元数据。
可选的,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点用于:获取待查询文件的标识,按照所述待查询文件的标识查询所述目录数据库,确定所述待查询文件对应的文件表;在所述待查询文件对应的文件表中读取所述待查询文件的地址信息,按照所述待查询文件的地址信息获取所述待查询文件。
本发明实施例提供的NAS分布式文件系统及数据处理方法,包括:NAS集群、目录数据库及文件数据库,NAS集群包括多个NAS节点,目录数据库及文件数据库分布式部署在每个NAS节点上;目录数据库:用于存储目录元数据;文件数据库:用于存储文件元数据;NAS节点:用于针对目录数据库及文件数据库执行指定的数据操作。目录数据库及文件数据库分布式部署在每个NAS节点上,方便NAS节点对目录数据库及文件数据库进行数据操作,减少跨NAS节点进行数据操作的情况,增强了系统的可用性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的NAS集群的一种示意图;
图2为本发明实施例的NAS分布式文件系统的应用场景的一种示意图;
图3为本发明实施例的NAS分布式文件系统的一种示意图;
图4为本发明实施例的NAS分布式文件系统的另一种示意图;
图5为本发明实施例的主目录表、子目录表及文件表的一种示意图;
图6为本发明实施例的NAS分布式文件系统的工作流程的第一种示意图;
图7为本发明实施例的NAS分布式文件系统的工作流程的第二种示意图;
图8为本发明实施例的NAS分布式文件系统的工作流程的第三种示意图;
图9为本发明实施例的NAS分布式文件系统的工作流程的第四种示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明实施例中的名词进行解释:
分布式文件系统:是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式,一个典型的网络可能包括多个供多用户访问的服务器。
NAS(Network Attached Storage,网络附属存储):简单说就是连接在网络上,具备资料存储功能的装置,也称为“网络存储器”。
NFS(Network File System,网络文件系统):它允许网络中的计算机之间通过TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,互联网协议)网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
CIFS(Common Internet File System,通用种网络文件系统):和NFS功能十分类似。主要用于windows客户端共享访问Linux服务器上的文件数据。
VFS(Virtual File System,虚拟文件系统):即为各类文件系统提供了一个统一的操作界面和应用编程接口,任何要使用文件系统的程序都必须经由这层接口来使用它。
Metadata(元数据),又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
传统NAS存储都是单机非集群的,每台NAS机头及其所管理的存储设备和空间是彼此独立的,使用的文件系统为本地文件系统,在文件的命名空间上也都是彼此孤立的。所以,传统的NAS设备在存储空间和性能上扩展都受到了极大限制。随着文件数据海量存储强烈需求的到来,大容量,高性能集群NAS受到青睐。目前很多集群NAS都是通过增加一层对多个独立的NAS设备进行管理维护的管理层来说实现NAS集群的效果。该实现方式往往存在以下几点不足:
首先,上述方案缺乏一个真正的分布式文件系统来管理分散在各个NAS设备节点中的目录和文件,在面对海量数据存储的时候,可能部分NAS节点空间存在不足,而部分NAS节点空间十分空闲,总体的存储空间不能够被充分利用的问题;其次,面对海量文件数据,文件操作的效率是一个巨大的考验。集群NAS本质上还是以网络文件系统(NFS/CIFS)的方式来存储文件数据。在操作过程中经常会进行目录的查询、遍历、目录和文件的重命名等操作,随着数据量的递增,这些操作的耗时也会逐渐增加;同时还可能存在跨NAS节点进行数据查询和目录迁移等过程,那么用户操作的效率将会更低,甚至不可用;最后,整个系统的稳定性缺乏保障。当其中一个NAS节点宕机不可用的时候,就会导致用户文件写入或查询等操作的失败。
有鉴于此,本发明实施例提供了NAS分布式文件系统,其应用场景如图2所示,NAS分布式文件系统上层连接客户端,底层存储基于云存储,以提供面向海量文件数据的存储和高效操作。NAS分布式文件系统通过NFS/CIFS等协议与用户端通信,云存储可以采用现有技术中任一云存储技术。
本发明实施例的NAS分布式文件系统如图3所示,包括:
NAS集群301、目录数据库302及文件数据库303,上述NAS集群301包括多个NAS节点3011,上述目录数据库302及上述文件数据库303分布式部署在每个上述NAS节点3011上;
上述目录数据库302:用于存储目录元数据;
上述文件数据库303:用于存储文件元数据,其中,所述文件元数据包括存储文件的地址信息;
上述NAS节点3011:用于针对上述目录数据库302及上述文件数据库303执行指定的数据操作。
在本发明实施例中,目录数据库及文件数据库分布式部署在每个NAS节点上,方便NAS节点对目录数据库及文件数据库进行数据操作,减少跨NAS节点进行数据操作的情况,增强了系统的可用性。
可选的,上述NAS节点3011包括NAS文件系统模块及数据管理模块;
上述NAS文件系统模块:用于将接收到的数据操作请求转化为预设类型的目标操作请求,并向上述数据管理模块发送上述目标操作请求。
上述数据管理模块:用于按照上述NAS文件系统模块的目标操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作。
NAS文件系统模块实现了一套VFS的文件系统接口,使得通用文件操作open(打开)、read(读取)、write(写入)、close(关闭)等可以都转化为对NAS文件系统模块的操作,NAS文件系统模块接收到这些文件操作请求后,经过目录层级解析和处理,向元数据管理模块查询、修改、删除目录或文件的元数据,从而实现了对通用文件操作的处理和响应。
可选的,NAS节点3011用于实现两个主要功能:NAS服务(CIFS/NFS)和文件数据的元数据分布式存储。例如图4所示,其中通过NAS文件系统模块和数据管理模块实现文件数据的元数据分布式存储。每个NAS节点上都会部署NAS文件系统模块,但不必每个NAS节点均部署数据管理模块。目录数据库和文件数据库分布式部署在每个NAS节点上。
VFS为各类文件系统提供了一个统一的操作界面和应用编程接口,任何要使用文件系统的程序都必须经由这层接口来使用它。VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层。NAS文件系统模块实现了一套VFS的文件系统接口,使得应用程序的通用文件操作open(打开)、read(读取)、write(写入)、close(关闭)等可以都转化为对NAS文件系统模块的操作,NAS文件系统模块接收到这些文件操作请求后,经过目录层级解析和处理,向元数据管理模块查询、修改、删除目录或文件的元数据,从而实现了对应用程序的通用文件操作的处理和响应。
相比传统的文件系统将元数据作inode存储在磁盘上不同,在本发明实施例中将元数据存储在数据库中。数据管理模块维护管理着一个目录数据库和多个文件数据库,其中,目录的元数据信息存在目录数据库中,而文件元数据存储在这多个文件数据库中。在面向海量文件存储的时候,往往一个库是无法满足存储,为了方便管理和扩容,需要将目录和文件分开管理,因此将目录元数据和文件元数据分为不同的库进行存储。同时考虑到目录相对较少,而文件数据量十分巨大,因此可以仅包括一个目录数据库,当文件数据库存满时,可以通过扩容方式增加新的文件数据库,并且支持文件库的扩容和增加。
可选的,上述目录数据库302包括主目录表及子目录表,上述文件数据库303包括文件表,上述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,上述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,上述文件表中包括文件的地址信息。
主目录表中可以包括多个主目录,子主目录表中可以包括多个子目录。本发明实施例中的标识可以为ID或名称等,例如,子目录表的标识可以为子目录表的ID或名称,文件表的标识可以文件表的ID或名称等。NAS节点3011,具体的可以为NAS节点3011中的数据管理模块,通过查询主目录表、子目录表及文件表,可以获取文件数据的地址信息,进而按照地址信息从云存储中获取文件数据。地址信息可以为文件数据在云存储中的key值或URL(Uniform Resource Locator,统一资源定位符)等。文件表中除了保存文件的地址信息外,还可以保存文件的名称、大小、及创建时间等属性信息。
可选的,主目录表、子目录表及文件表的字段及各字段的含义依次如表1-3所示。
表1:主目录表
表2:子目录表
表3:文件表
字段 | 描述 |
parent_dir_id | 父目录ID |
file_id | 文件ID |
file_name | 文件名 |
file_size | 文件大小 |
cloud_key | 文件数据存储在云存储中的key值或URL |
file_ctime | 文件创建时间 |
在本发明实施中目录和文件按照目录层级的树形结构进行组织和管理,而主目录表、子目录表及文件表通过关联,可以比较好的反应出这种层级关系。例如:路径信息为/my_pic/2018_06/show.jpg和/my_pic/Sum.jpg的文件数据的元数据信息在目录数据库和文件数据库中的具体表现如图5所示。主目录中的subdir_table_name确定了主目录的子目录元数据所在的子目录表,字段file_db_name和file_table_name确定了目录中子文件元数据所在的文件数据库和对应库中那张数据表。同时限制了一个目录中的文件数据只会存储在某一个文件数据库的某一张文件表中,能够避免在对目录查询和遍历的时候存在跨表查询的问题,有效提高了目录查询的效率。
可选的,上述NAS节点3011用于:获取请求目录路径,根据上述请求目录路径查找上述主目录表,确定上述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录表标识,按照上述目标主目录的文件数据库标识及文件表标识确定目标文件表,在上述目标文件表中读取上述目标主目录下的文件的元数据,按照上述目标主目录下的子目录标识确定目标子目录,获取上述目标子目录的元数据,返回所述目标主目录下的文件的元数据及所述目标子目录的元数据。
NAS节点3011可以通过用户端请求的文件数据的请求目录路径,来进行目录查询,例如,在NAS节点3011包括NAS文件系统模块及数据管理模块时,目标查询流程可以如图6所示。NAS文件系统模块解析请求目录路径,并向数据管理模块发送解析后的请求目录路径。数据管理模块按照请求目录路径中的主目录名查找主目录表。在主目录表查找成功时,即查找到主目录名与请求目录路径中的主目录名相同的主目录时,按照该主目录中file_db_id和file_table_name字段,定位文件数据库和文件表,并根据parent_dir_id字段查询该主目录中文件的元数据。根据该主目录的subdir_table_name字段定位子目录表,并查询该子目录表中的子目录的元数据。记录数据管理模块汇总查询到的文件和子目录的元数据,返回给NAS文件系统模块。
可选的,上述NAS节点3011用于:获取目录创建信息,根据上述目录创建信息创建待插入主目录,按照上述目录创建信息在上述目录数据库中创建新的子目录表;确定上述待插入主目录对应的文件数据库及文件表,按照对应关系,更新上述待插入主目录及上述新的子目录表;将更新后的上述待插入主目录插入到上述主目录表中。
在主目录表中创建一个主目录的时候,会对应的创建一个该主目录对应的子目录表,同时确定该主目录对应的文件数据库及文件表,例如,按照各文件数据库和各文件表的负载情况为该主目录分配用于存储文件数据的文件数据库和文件表。可选的,在NAS节点3011包括NAS文件系统模块及数据管理模块时,主目录创建过程可以如图7所示。数据管理模块建立一个新的主目录条目,并在目录数据库中建立一个新的子目录表。数据管理模块按照各文件数据库和各文件表的负载情况,为该新的主目录分配对应的、用于存储文件数据的文件数据库和文件表,例如,选取负载小于负载阈值的文件数据库和文件表,作为新的主目录对应的文件数据库和文件表。数据管理模块按照对应的文件数据库和文件表的元数据,更新上述新的主目录及新的子目录表,并将更新后的新的主目录添加到主目录表中。其他目录的创建过程相似或相同,此处不再重复描述。
可选的,上述NAS节点3011用于:获取目标文件的目标地址信息,按照上述目标地址信息查询上述主目录表、上述子目录表及上述文件表,确定包含上述目标地址信息的文件表,在包含上述目标地址信息的文件表中添加上述目标文件的元数据。
文件数据的元数据写入过程主要分为两部分,首先将待存储的目标文件数据上传到云存储中,并获取目标文件数据在云存储中的地址信息,例如key值或URL。其次根据目标文件数据的路径信息,逐层找到对应的目录,并最终定位到文件数据库和文件表,并写入目标文件数据的元数据。可选的,在NAS节点3011包括NAS文件系统模块及数据管理模块时,文件数据的元数据写入过程可以如图8所示。NAS文件系统模块接收写入的文件数据,并将该文件数据上传到云存储中。若上传到云存储失败,则返回错误码。若上传到云存储成功NAS文件系统获取该文件数据在云存储中的key值或URL,向数据管理模块发送该文件数据的key值或URL。数据管理模块按照文件数据的key值或URL查找目录数据库及文件数据库,从主目录开始逐层查找各目录中的元数据信息。若查找到与上述文件数据的key值或URL相同的元数据信息则判定查找成功,否则返回错误码。若查找成功,定位记录的key值或URL与上述文件数据的key值或URL相同的文件表,在定位的文件表中写入上述文件数据的元数据记录项,例如,文件数据的名称及大小等。
可选的,上述NAS节点301用于:获取待查询文件的标识,按照上述待查询文件的标识查询上述目录数据库,确定上述待查询文件对应的文件表;在上述待查询文件对应的文件表中读取上述待查询文件的地址信息,按照上述待查询文件的地址信息获取上述待查询文件。
在读取文件数据的过程中,首先需要根据待查询文件的路径信息定位到文件数据库和文件表,查询该文件表,获取文件数据的元数据,然后根据元数据中的cloud_key字段信息从云存储中下载文件数据。逐层解析待查询文件的路径,查询目录数据库,以确定待查询文件对应的文件数据库标识及文件表标识。若待查询文件在主目录表下,从主目录表中读取待查询文件对应的文件数据库的标识,及待查询文件对应的文件表的标识。并按照该文件数据库的标识,查找到文件数据库,按照该文件表的标识,在文件数据库中查找到对应的文件表,从对应的文件表中读取待查询文件的地址信息。以便后续按照待查询文件的地址信息,获取待查询文件并向用户端返回待查询文件。
可选的,在NAS节点3011包括NAS文件系统模块及数据管理模块时,文件数据的读取过程可以如图9所示。用户端发送文件数据读取请求,读取请求中包括文件数据的元数据信息,例如文件数据的名称或路径信息等。NAS文件系统模块获取文件数据读取请求,解析出文件数据的元数据信息,向数据管理模块发送文件数据的元数据信息。数据管理模块从主目录开始,逐层查找目标中是否包含该文件数据的元数据信息,定位该文件数据的元数据所在的文件数据库及文件表。若定位失败,返回错误码,包括数据管理模块向NAS文件系统模块返回错误码,NAS文件系统模块接收到错误码后向用户端返回错误码。若定位成功,数据管理模块在文件表中读取该文件数据的元数据信息,包括文件数据的大小及文件数据在云存储中的key值或URL等。若获取失败,返回错误码。若获取成功,数据管理模块向NAS文件系统模块返回包括key值或URL的元数据信息。NAS文件系统模块按照key值或URL在云存储中下载文件数据,并将下载的文件数据返回给用户端。
本发明实施例的NAS分布式文件系统,在面对海量文件存储时,能够轻松实现容量规划。根据容量可以合理的规划出需要多少个文件数据库,每个数据库如何在多集群NAS节点上进行合理部署。同时,在后期存在容量扩容需求时,该NAS分布式文件系统可以通过增加新的文件数据库,并注册登记到数据管理模块,新的容量空间便可以加入到负载均衡分配中,新写入的文件的元数据将会写入到新的扩容文件数据库中,从而实现系统扩容,在此过程中没有复杂的关系型数据库的扩容和数据迁移过程,整个NAS分布式文件系统的扩容过程方便简单。
本发明实施例提供了一种数据处理方法,应用于网络附属存储NAS分布式文件系统,上述NAS分布式文件系统包括:NAS集群、目录数据库及文件数据库,上述NAS集群包括多个NAS节点,上述目录数据库及上述文件数据库分布式部署在每个上述NAS节点上,该方法包括:
上述NAS节点获取数据操作请求;
上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作。
可选的,上述NAS节点包括NAS文件系统模块及数据管理模块,上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作,包括:
上述NAS文件系统模块将接收到的数据操作请求转化为预设类型的目标操作请求,并向上述数据管理模块发送上述目标操作请求;
上述数据管理模块按照上述NAS文件系统模块的目标操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作。
可选的,上述目录数据库包括主目录表及子目录表,上述文件数据库包括文件表,上述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,上述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,上述文件表中包括文件的地址信息。
可选的,上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作,包括:
上述NAS节点获取请求目录路径,根据上述请求目录路径查找上述主目录表,确定上述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录标识,按照上述目标主目录的文件数据库标识及文件表标识确定目标文件表,在上述目标文件表中读取上述目标主目录下的文件的元数据,按照上述目标主目录的子目录标识确定目标子目录,获取上述目标子目录的元数据,返回上述目标主目录下的文件的元数据及上述目标子目录的元数据。
可选的,上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作,包括:
上述NAS节点获取目录创建信息,根据上述目录创建信息创建待插入主目录,按照上述目录创建信息在上述目录数据库中创建新的子目录表;确定上述待插入主目录对应的文件数据库及文件表,按照对应关系,更新上述待插入主目录及上述新的子目录表;将更新后的上述待插入主目录插入到上述主目录表中。
可选的,上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作,包括:
上述NAS节点获取目标文件的目标地址信息,按照上述目标地址信息查询上述主目录表、上述子目录表及上述文件表,确定包含上述目标地址信息的文件表,在包含上述目标地址信息的文件表中添加上述目标文件的元数据。
可选的,上述NAS节点按照上述数据操作请求,针对上述目录数据库及上述文件数据库执行指定的数据操作,包括:
上述NAS节点用于:获取待查询文件的标识,按照上述待查询文件的标识查询上述目录数据库,确定上述待查询文件对应的文件表;在上述待查询文件对应的文件表中读取上述待查询文件的地址信息,按照上述待查询文件的地址信息获取上述待查询文件。
在本发明实施例中,目录数据库及文件数据库分布式部署在每个NAS节点上,方便NAS节点对目录数据库及文件数据库进行数据操作,减少跨NAS节点进行数据操作的情况,增强了系统的可用性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种网络附属存储NAS分布式文件系统,其特征在于,所述系统包括:
NAS集群、目录数据库及文件数据库,所述NAS集群包括多个NAS节点,所述目录数据库及所述文件数据库分布式部署在每个所述NAS节点上;
所述目录数据库:用于存储目录元数据;
所述文件数据库:用于存储文件元数据;
所述NAS节点:用于针对所述目录数据库及所述文件数据库执行指定的数据操作;
所述目录数据库包括主目录表及子目录表,所述文件数据库包括文件表,所述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,所述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,所述文件表中包括文件的地址信息。
2.根据权利要求1所述的系统,其特征在于,所述NAS节点包括NAS文件系统模块及数据管理模块;
所述NAS文件系统模块:用于将接收到的数据操作请求转化为预设类型的目标操作请求,并向所述数据管理模块发送所述目标操作请求;
所述数据管理模块:用于按照所述NAS文件系统模块的目标操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作。
3.根据权利要求1所述的系统,其特征在于,所述NAS节点用于:获取请求目录路径,根据所述请求目录路径查找所述主目录表,确定所述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录标识,按照所述目标主目录的文件数据库标识及文件表标识确定目标文件表,在所述目标文件表中读取所述目标主目录下的文件的元数据,按照所述目标主目录的子目录标识确定目标子目录,获取所述目标子目录的元数据,返回所述目标主目录下的文件的元数据及所述目标子目录的元数据。
4.根据权利要求1所述的系统,其特征在于,所述NAS节点用于:获取目录创建信息,根据所述目录创建信息创建待插入主目录,按照所述目录创建信息在所述目录数据库中创建新的子目录表;确定所述待插入主目录对应的文件数据库及文件表,按照对应关系,更新所述待插入主目录及所述新的子目录表;将更新后的所述待插入主目录插入到所述主目录表中。
5.根据权利要求1所述的系统,其特征在于,所述NAS节点用于:获取目标文件的目标地址信息,按照所述目标地址信息查询所述主目录表、所述子目录表及所述文件表,确定包含所述目标地址信息的文件表,在包含所述目标地址信息的文件表中添加所述目标文件的元数据。
6.根据权利要求1所述的系统,其特征在于,所述NAS节点用于:获取待查询文件的标识,按照所述待查询文件的标识查询所述目录数据库,确定所述待查询文件对应的文件表;在所述待查询文件对应的文件表中读取所述待查询文件的地址信息,按照所述待查询文件的地址信息获取所述待查询文件。
7.一种数据处理方法,其特征在于,应用于网络附属存储NAS分布式文件系统,所述NAS分布式文件系统包括:NAS集群、目录数据库及文件数据库,所述NAS集群包括多个NAS节点,所述目录数据库及所述文件数据库分布式部署在每个所述NAS节点上,所述方法包括:
所述NAS节点获取数据操作请求;
所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作;
所述目录数据库包括主目录表及子目录表,所述文件数据库包括文件表,所述主目录表中包括主目录,针对每个主目录,该主目录中包括该主目录的子目录表的标识、该主目录的文件对应的文件数据库的标识及该主目录的文件对应的文件表的标识,所述子目录表包括子目录,针对每个子目录,该子目录中包括该子目录的文件对应的文件数据库的标识及该子目录对应的文件表的标识,所述文件表中包括文件的地址信息。
8.根据权利要求7所述的方法,其特征在于,所述NAS节点包括NAS文件系统模块及数据管理模块,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS文件系统模块将接收到的数据操作请求转化为预设类型的目标操作请求,并向所述数据管理模块发送所述目标操作请求;
所述数据管理模块按照所述NAS文件系统模块的目标操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作。
9.根据权利要求7所述的方法,其特征在于,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取请求目录路径,根据所述请求目录路径查找所述主目录表,确定所述请求目录路径指向的目标主目录的文件数据库标识、文件表标识及子目录标识,按照所述目标主目录的文件数据库标识及文件表标识确定目标文件表,在所述目标文件表中读取所述目标主目录下的文件的元数据,按照所述目标主目录的子目录标识确定目标子目录,获取所述目标子目录的元数据,返回所述目标主目录下的文件的元数据及所述目标子目录的元数据。
10.根据权利要求7所述的方法,其特征在于,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取目录创建信息,根据所述目录创建信息创建待插入主目录,按照所述目录创建信息在所述目录数据库中创建新的子目录表;确定所述待插入主目录对应的文件数据库及文件表,按照对应关系,更新所述待插入主目录及所述新的子目录表;将更新后的所述待插入主目录插入到所述主目录表中。
11.根据权利要求7所述的方法,其特征在于,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点获取目标文件的目标地址信息,按照所述目标地址信息查询所述主目录表、所述子目录表及所述文件表,确定包含所述目标地址信息的文件表,在包含所述目标地址信息的文件表中添加所述目标文件的元数据。
12.根据权利要求7所述的方法,其特征在于,所述NAS节点按照所述数据操作请求,针对所述目录数据库及所述文件数据库执行指定的数据操作,包括:
所述NAS节点用于:获取待查询文件的标识,按照所述待查询文件的标识查询所述目录数据库,确定所述待查询文件对应的文件表;在所述待查询文件对应的文件表中读取所述待查询文件的地址信息,按照所述待查询文件的地址信息获取所述待查询文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811401493.4A CN111209259B (zh) | 2018-11-22 | 2018-11-22 | Nas分布式文件系统及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811401493.4A CN111209259B (zh) | 2018-11-22 | 2018-11-22 | Nas分布式文件系统及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209259A CN111209259A (zh) | 2020-05-29 |
CN111209259B true CN111209259B (zh) | 2023-09-05 |
Family
ID=70784084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811401493.4A Active CN111209259B (zh) | 2018-11-22 | 2018-11-22 | Nas分布式文件系统及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209259B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760856A (zh) * | 2020-06-05 | 2021-12-07 | 京东数字科技控股有限公司 | 数据库管理方法及装置、计算机可读存储介质、电子设备 |
CN111782886A (zh) * | 2020-06-28 | 2020-10-16 | 杭州海康威视数字技术股份有限公司 | 元数据管理的方法和装置 |
CN112083886B (zh) * | 2020-09-09 | 2022-11-25 | 杭州海康威视系统技术有限公司 | 一种nas设备的存储管理方法、系统及装置 |
CN113296714B (zh) * | 2021-06-17 | 2022-03-04 | 杭州海康威视系统技术有限公司 | 一种基于nas协议的数据存储系统 |
CN117280333A (zh) * | 2021-11-19 | 2023-12-22 | 华为技术有限公司 | 一种目录读取系统 |
CN114415971B (zh) * | 2022-03-25 | 2022-09-23 | 阿里云计算有限公司 | 数据处理方法以及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164161A (zh) * | 2011-01-10 | 2011-08-24 | 清华大学 | 一种对并行文件系统进行文件布局提取的方法和装置 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
US8595237B1 (en) * | 2010-02-17 | 2013-11-26 | Netapp, Inc. | Method and system for managing metadata in a storage environment |
US8600998B1 (en) * | 2010-02-17 | 2013-12-03 | Netapp, Inc. | Method and system for managing metadata in a cluster based storage environment |
CN104539659A (zh) * | 2014-12-09 | 2015-04-22 | 华迪计算机集团有限公司 | 基于nas存储的多用户文件交换共享方法和装置 |
CN105867836A (zh) * | 2015-01-23 | 2016-08-17 | 中兴通讯股份有限公司 | 存储管理方法、装置及流媒体系统 |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229985B2 (en) * | 2005-02-07 | 2012-07-24 | Cisco Technology, Inc. | Arrangement for a distributed file system having data objects mapped independent of any data object attribute |
-
2018
- 2018-11-22 CN CN201811401493.4A patent/CN111209259B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595237B1 (en) * | 2010-02-17 | 2013-11-26 | Netapp, Inc. | Method and system for managing metadata in a storage environment |
US8600998B1 (en) * | 2010-02-17 | 2013-12-03 | Netapp, Inc. | Method and system for managing metadata in a cluster based storage environment |
CN102164161A (zh) * | 2011-01-10 | 2011-08-24 | 清华大学 | 一种对并行文件系统进行文件布局提取的方法和装置 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
CN104539659A (zh) * | 2014-12-09 | 2015-04-22 | 华迪计算机集团有限公司 | 基于nas存储的多用户文件交换共享方法和装置 |
CN105867836A (zh) * | 2015-01-23 | 2016-08-17 | 中兴通讯股份有限公司 | 存储管理方法、装置及流媒体系统 |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
Non-Patent Citations (1)
Title |
---|
潘磊颖.多元数据服务器环境下的元数据管理研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2009,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111209259A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209259B (zh) | Nas分布式文件系统及数据处理方法 | |
JP4648723B2 (ja) | データ価値に基づく階層型ストレージ管理の為の方法と装置 | |
US8560569B2 (en) | Method and apparatus for performing bulk file system attribute retrieval | |
US6922761B2 (en) | Method and system for migrating data | |
US8595237B1 (en) | Method and system for managing metadata in a storage environment | |
CN103077199B (zh) | 一种文件资源查找定位方法及装置 | |
CN108491549B (zh) | 一种分布式存储系统中文件目录的创建方法及装置 | |
US7783615B1 (en) | Apparatus and method for building a file system index | |
US8543596B1 (en) | Assigning blocks of a file of a distributed file system to processing units of a parallel database management system | |
US20030220985A1 (en) | System and method for virtualizing network storages into a single file system view | |
CN106874383A (zh) | 一种分布式文件系统元数据的解耦合分布方法 | |
US11151095B2 (en) | Cloud-scale file-based filesystem for hybrid cloud storage | |
KR101689782B1 (ko) | 메타 데이터에 따라 파일 시스템의 파일들을 액세스하는 방법 및 상기 방법을 구현하는 디바이스 | |
CN113010486B (zh) | 用于无中心分布式文件系统的元数据分层缓存方法及装置 | |
JP5557824B2 (ja) | 階層ファイルストレージに対する差分インデクシング方法 | |
US9824104B2 (en) | System and method for content storage | |
CN100498766C (zh) | 基于数据库的海量文件管理系统与方法 | |
KR20090063733A (ko) | 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법 | |
US7080102B2 (en) | Method and system for migrating data while maintaining hard links | |
JP5241298B2 (ja) | 履歴上のファイル名およびロケーションをインデックス付きにすることによりファイル・サーチおよびファイル操作を支援するためのシステムおよび方法 | |
US7373393B2 (en) | File system | |
US9727588B1 (en) | Applying XAM processes | |
US6952699B2 (en) | Method and system for migrating data while maintaining access to data with use of the same pathname | |
KR20070038665A (ko) | 분산 파일 시스템 및 그 운용 방법 | |
CN103902577B (zh) | 一种资源查找定位的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |