本发明涉及到数据中心新型存储,具体涉及到一种numa系统中持久化内存文件系统多节点元数据管理方法。
背景技术:
1、互联网和物联网应用的快速扩张导致全球数据呈爆炸式增长,这些数据需要高效地存储。构建可靠高效的数据存储系统成为亟待解决的问题。基于混合dram和持久性内存(persistent memory,pm)的异构存储新范式已被设计用于直接在存储设备内或附近进行数据处理以最大限度地减少数据移动并提高性能,例如,存内存储、存内计算等。许多基于持久化内存的文件系统被设计以利用持久化内存可字节寻址、持久性和高速性等特性,例如ext4-dax、scmfs、pmfs、nova、simfs、hinfs,这些持久化内存文件系统使用持久化内存作为数据存储设备,直接在应用程序用户缓缓冲区和持久化内存设备之间复制文件数据,避免了传统块设备文件系统经过操作系统缓存和i/o软件栈的软件开销,获得较好的性能提升。
2、为了实现计算机系统更大的吞吐率、可靠性和经济性,高性能计算和云计算数据中心服务器普遍采用的numa(non-uniform memory access)架构。numa架构系统将处理器和存储器划分为节点管理,避免了多个处理器寻址同一内存地址空间时内存访问冲突不断增加而导致的扩展性问题,具有更低的本地内存访问延迟和更好的扩展性。许多基础软件针对numa架构计算机系统进行了特殊的优化处理。例如,linux内核内存管理支持非一致性内存访问模型,调度器的负载平衡以numa节点作为管理域。同时,许多研究工作针对numa架构提出了数据分配策略机制。例如,jerifs重新设计了i/o堆栈以实现最佳线程和缓冲区亲和性。此外,企业针对numa架构对虚拟化平台进行了特殊的处理。例如,vmware设计numa感知的虚拟机i/o管理调度程序以从本地i/o设备获得最大效率。
3、许多研究面向numa架构设计高性能持久化内存文件系统。nthread提出了一种适用于持久化内存文件系统的numa感知线程迁移模块,该模块设计了一个无需迁移数据的numa感知线程迁移模块。j.h.kim等人将跨numa节点的持久化内存设备虚拟化为单一地址空间,并设计了本地写优先的内存分配策略以减少远程内存访问。hydrafs根据numa节点数将文件系统存储空间划分多个部分,并将线程调度到文件所在节点,以便线程能够从本地文件访问中获得最佳收益。
4、文件系统使用目录层次化结构管理文件数据,文件系统包含文件系统全局信息和文件,文件包含文件元数据和文件数据。文件系统全局信息用于描述文件系统全局特征,包括文件系统大小、文件系统读写时间、文件元数据inode总数、剩余文件元数据inode总数、总数据块数、已分配块数、剩余数据块数等。文件元数据用于描述文件特征,包括所有者、访问时间、权限、文件标识符等。文件数据访问是文件元数据和文件数据的混合过程,例如,在创建、删除文件的过程中,需要访问文件系统全局信息,以更新文件系统的访问时间、空闲数据块、空闲inode等;在文件读写过程中,需要遍历目录结构,查找文件名称对应的文件元数据inode结构,分配空间,拷贝数据,更新文件系统全局信息和文件元数据inode信息,完成文件的读写。在当前numa持久化内存文件系统设计中,文件数据访问过程中涉及有远程访问元数据的操作,导致文件读写性能下降。如何在多节点空间上高效管理元数据,减少文件元数据的远程访问是一个重要的挑战。
技术实现思路
1、针对现有技术中存在的问题,本发明提出一种numa系统中持久化内存文件系统多节点元数据管理方法,旨在优化numa系统中持久化内存文件系统元数据管理,减少跨节点元数据访问对文件数据访问性能的影响。
2、为此,本发明采用的技术方案是,一种numa系统中持久化内存文件系统多节点元数据管理方法,包括:
3、(1)基于访问频率的冗余动态属性元数据管理:管理numa持久化内存文件系统的文件系统全局信息和文件元数据,具体包括
4、(1.1)文件系统全局信息冗余动态属性管理机制,在多个numa节点上管理文件系统全局信息;
5、(1.2)文件系统全局信息冗余动态属性同步机制,通过主动访问同步和定时同步两种同步机制,在多个节点之间同步文件系统信息动态属性;
6、(1.3)文件元数据冗余动态属性管理机制,将文件系统中所有文件元数据分布在单一节点上,通过索引节点表管理所有文件的元数据属性;
7、(1.4)文件元数据冗余动态属性同步机制,通过主动访问同步机制在主节点和文件数据所在节点两个节点之间同步文件元数据动态属性;
8、(2)集中式目录管理:管理numa持久化内存文件系统中的目录结构,在单一节点上分配空间构造目录树,避免目录检索过程对远程持久内存的访问。
9、进一步,所述步骤(1.1)中,在节点0上管理文件系统全局信息中所有属性,根据文件系统信息中各个属性的访问频率,将文件系统全局信息属性分为静态属性和动态属性,将动态属性冗余存储在各个节点的起始位置,在文件访问过程中访问本地节点上的冗余文件系统全局信息动态属性,避免远程文件系统全局信息访问对文件数据访问性能的影响,在各个节点的文件系统全局信息结构中,增加了同步标志属性。
10、进一步,步骤(1.2)在结构体中增加了是否修改字段的同步标识,每当文件系统全局信息、修改后,就对同步标识字段进行置位,当存在对文件系统全局信息冗余动态属性的修改时,先保存在本地节点的冗余备份中,当用户主动访问文件系统全局信息、同步周期到达时再根据同步标识和修改时间修改顺序同步到节点0的文件系统全局信息中。
11、进一步,步骤(1.3)中为了快速定位到特定文件的文件元数据inode,索引节点表采用数组进行管理,数组中空闲索引节点通过链表进行链接,以实现快速的分配和回收;在文件数据所在节点预留了一段空间,用于冗余存储当前节点上文件的元数据动态属性;在文件读写访问过程中,通过本地节点上的冗余文件元数据动态属性完成读写,避免远程文件元数据访问对文件数据访问性能的影响。具体地,在节点0上管理所有文件的元数据属性,根据文件元数据中各个属性的访问频率,将文件元数据属性分为静态属性和动态属性,将文件访问过程中访问频率高的动态属性冗余存储到文件数据所在numa节点。
12、所述文件元数据冗余动态属性同步机制,通过主动访问同步机制在两个节点(主节点和文件数据所在节点)之间同步文件元数据动态属性。
13、进一步,多节点集中目录树管理机制,实现numa持久化内存文件系统中目录集中管理,避免纵向目录检索过程中时跨节点访问目录文件的问题。
14、所述集中目录树管理机制,将numa持久化内存文件系统中目录结构存访在节点0上;在创建目录时,从节点0分配目录元数据结构和目录数据块,在单一numa节点上构建树形目录层次化管理结构,避免在多个节点之间多次远程访问遍历目录。
15、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的numa系统中持久化内存文件系统多节点元数据管理方法的步骤。
16、本发明还提供了一种本发明管理方法的系统架构,包括文件系统全局信息冗余动态属性管理模块、文件系统全局信息冗余动态属性同步模块、文件元数据冗余动态属性管理模块、文件元数据冗余动态属性同步模块和多节点集中目录树管理模块,在numa架构服务器将处理器、dram、持久化内存划分为节点管理,节点之间通过高速互连总线连接,多个节点上的持久化内存作为持久内化内存文件系统的数据存储设备,持久化内存文件系统管理多节点持久化内存空间,将文件系统全局信息、文件元数据、文件数据存储在持久化内存中;所述文件系统全局信息冗余动态属性管理模块管理多个节点上冗余文件系统全局信息属性,所述文件系统全局信息冗余动态属性同步模块用于同步多个节点上的动态属性,所述文件元数据冗余动态属性管理模块用于管理多个numa节点上冗余文件元数据动态属性,所述文件元数据冗余动态属性同步模块用于同步节点0和文件所在节点上的动态属性,所述多节点集中目录树管理模块用于管理numa持久化内存文件系统中的目录和文件。
17、本发明提出的一种numa系统中持久化内存文件系统多节点元数据管理方法,通过基于访问频率的冗余动态属性元数据管理机制、多节点集中目录树管理机制,降低跨节点元数据访问对文件数据访问性能的影响,提升numa持久化内存文件系统元数据操作的并行性。