CN115408345A - 应用于并行文件系统的数据存储方法及装置 - Google Patents
应用于并行文件系统的数据存储方法及装置 Download PDFInfo
- Publication number
- CN115408345A CN115408345A CN202110586412.8A CN202110586412A CN115408345A CN 115408345 A CN115408345 A CN 115408345A CN 202110586412 A CN202110586412 A CN 202110586412A CN 115408345 A CN115408345 A CN 115408345A
- Authority
- CN
- China
- Prior art keywords
- metadata
- data
- fragments
- file system
- data storage
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种应用于并行文件系统的数据存储方法及装置,包括:接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。本发明提供的数据存储方法及装置,将分布式命名空间与纠删码方法相结合,实现了并行文件系统的本地存储架构的高可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用于并行文件系统的数据存储方法及装置。
背景技术
并行文件系统(Lustre系统)的本地存储架构,是基于x86多节点服务器平台设计的,具有性能高、架构简单的特点。
目前,应用于Lustre系统的数据存储方法,是将元数据存储在MDT上,由于Lustre系统的本地存储架构暂不提供数据冗余,因此元数据的数据分布(layout)模式一般采用立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的方式进行,如:磁盘镜像模式(RAID-1)、磁盘等量模式(RAID-0)或磁盘镜像等量组合模式(RAID-10)。
根据现有的数据存储方法,磁盘RAID模式能够在元数据的Server节点内进行数据冗余保护,使得元数据在单个物理节点范围内具备一定程度的可靠性保证。但是,从Lustre系统的整体架构上看,由于存储元数据的Server节点仅依赖于磁盘RAID模式,如果存储元数据的Server节点出现故障,那么整个Lustre系统的数据将丢失,无法读取。
发明内容
本发明提供一种应用于并行文件系统的数据存储方法及装置,用以解决现有技术中数据存储安全性差的缺陷,实现数据的存储的安全存储。
第一方面,本发明提供一种应用于并行文件系统的数据存储方法,包括:接收由并行文件系统构架的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
在一个实施例中,所述基于纠删码方法,生成与所述目录元数据对应的多个元数据分片,包括:根据所述目录元数据的目录数属性,将所述目录元数据切分为多个所述元数据源分片;基于EC技术,根据所述元数据源分片生成所述多个元数据校验分片。
在一个实施例中,在所述将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中之前,还包括:在所述并行文件系统构架的每个第一数据Server节点上,选择至少一块固态硬盘作为所述元数据目标;将每个所述固态硬盘分别作为一个独立的元数据存储空间,挂载至对应的元数据目标。
在一个实施例中,在将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标之后,还包括:接收所述客户端的第一读文件请求;在确定与所述第一读文件请求相关的任一第一数据Server节点故障的情况下,基于所述纠删码方法,在新的第一数据Server节点中重构所述任一第一数据Server节点中的元数据分片;响应于所述第一读文件请求。
在一个实施例中,所述数据存储方法,还包括:读取对象数据;基于纠删码方法,生成与所述对象元数据对应的多个对象数据分片;所述多个对象数据分片包括多个对象数据源分片以及多个对象数据校验分片;将每个所述对象数据分片分发至不同的第二数据Server节点的对象存储目标中。
在一个实施例中,所述第一数据Server节点与所述第二数据Server节点相同或不同。
在一个实施例中,在将每个所述对象数据分片分发至不同的第二数据Server节点的对象存储目标中之后,还包括:接收所述客户端的第二读文件请求;在所述确定与所述第二读文件请求相关的任一第二数据Server节点故障的情况下,基于所述纠删码方法,在新的第二数据Server节点中重构所述任一第二数据Server节点中的元数据分片;响应于所述第二读文件请求。
第二方面,本发明还提供一种应用于并行文件系统的数据存储装置,包括:接收单元用于接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;纠删单元用于基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;分发单元用于将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
第三方面,本发明提供一种电子设备,包括存储器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述应用于并行文件系统的数据存储方法的步骤。
第四方面,本发明提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行第一方面所述应用于并行文件系统的数据存储方法的步骤。
本发明提供的应用于并行文件系统的数据存储方法及装置,将分布式命名空间与纠删码方法相结合,实现了并行文件系统的本地存储架构的高可靠性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1现有的并行文件系统的构架图;
图2是现有技术中采用的RAID-1模式进行数据存储的示意图;
图3是现有技术中采用的RAID-0模式进行数据存储的示意图;
图4是现有技术中采用的RAID-10模式进行数据存储的示意图;
图5是本发明提供的应用于并行文件系统的数据存储方法的流程示意图之一;
图6是本发明提供的元数据文件的数据分布式存储示意图;
图7是本发明提供的应用于并行文件系统的数据存储方法的流程示意图之二;
图8是本发明提供的并行文件系统数据存储优化示意图;
图9是本发明提供的应用于并行文件系统的数据存储装置的结构示意图;
图10是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
Lustre系统,是面向集群的存储架构,它是基于Linux平台的开源集群(并行)文件系统,提供与可移植操作系统接口(Portable Operating System Interface,POSIX)兼容的文件系统接口。
图1现有的Lustre系统的构架图,如图1所示,Lustre系统主要由三个关键部分组成:元数据子系统、对象存储子系统(对象数据)和用来访问和操作数据的计算客户端。
其中,元数据子系统由元数据目标(Metadata Target,MDT)、管理目标(MGT)和元数据服务器(Metadata Server,MDS)组成。
MDT主要用于存储Lustre系统中的所有元数据,包括:文件名、权限、时间戳和对象数据在对象存储子系统中的位置等。MGT主要用于存储管理数据,包括配置信息和注册表等。MDS则是用于管理MDT的专用服务器。
对象存储子系统一般由一个或多个对象存储目标(Object Storage Target,OST)和一个或多个对象存储服务器(Object Storage Service,简称OSS)组成。
OST主要用于存储对象数据,而每个OSS则管理一个或多个OST。在Lustre系统中,可以通过增加OSS和相关OST的数量来提高数据存储量和数据吞吐容量,每增加一个一个OSS都会提高现有的数据吞吐量,而每增加一个OST都增加数据存储容量。
计算客户端则是Lustre系统中高性能计算机群(High Performance Computing,HPC机群)的计算节点。
目前,在Lustre系统中,元数据存储在MDT上,由于Lustre系统暂不提供数据冗余,因此元数据的layout模式一般采用RAID方式。
图2是现有技术中采用的RAID-1模式进行数据存储的示意图,如图2所示,其存储方式主要包括:通过在Server节点完整备份两块磁盘(Disk),并保持始终同步。采用这一模式,Lustre系统的读性能会略有提升,但写性能会下降,同时具备一定的冗余能力,能防止因任一Disk的物理损坏,造成数据的丢失。
图3是现有技术中采用的RAID-0模式进行数据存储的示意图,如图3所示,其存储方式主要包括:当有数据要写入RAID时,会先将其切分成多个小区块数据,然后再依据预设的存储顺序,一个个的存储至不同的磁盘中。由于待存储的数据已经被预先切分、且依序存储至不同的Disk中,因此每个Disk中所负责的数据量降低了。采用这一存储模式,能一定程度上引起读写性能的提升,且利用率也有所提高。但这一存储模式的缺点是尤为突出的:任一Disk的损坏,则会导致所有Disk整列的失效,同时也就会导致数据的损坏。
图4是现有技术中采用的RAID-10模式进行数据存储的示意图,如图4所示,是由RAID-0与RAID-1的组合,最少需要用到四块Disk。其优点是RAID-0与RAID-1的优点组合,但同样存在数据损坏、丢失的风险。
根据现有的Lustre系统的元数据分布方式,采用RAID模式能够在Server节点内进行数据冗余保护,使得元数据在单个物理节点范围内具备一定程度的可靠性保证,但是,从Lustre系统的整体架构上看,如果存储元数据的Server节点出现故障,那么将会导致该Server节点相关的所有数据将丢失,无法读取。
有鉴于此,亟需改进现有的关于Lustre系统的数据存储方式,以切实的保障数据的安全性。下面结合图1-图9描述本发明实施例所提供的应用于并行文件系统的数据存储方法和装置。
图5是本发明提供的应用于并行文件系统的数据存储方法的流程示意图之一,如图5所示,包括但不限于以下步骤:
步骤501:接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间(Distributed Name Space,DNE)下的目录元数据;
步骤502:基于纠删码(Erasure Code,EC)技术,生成与目录元数据对应的多个元数据分片;上述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;
步骤503:将每个元数据分片分发至不同的第一数据Server节点的元数据目标中。
需要说明的是,在本发明提供的应用于并行文件系统的数据存储方法中,主要是针对元数据的分发存储方法。
其中,DNE功能允许将单个目录的数据文件分发到多个MDT节点,分布在多个MDT上的目录称为条带目录。在条带目录下的文件数据,将各自的元数据存在不同的MDT上。
由此,条带目录中的文件的元数据请求(如写文件请求、读文件请求等)由多个MDT共同提供服务,并且MDS的负载分布在服务给定的条带目录的所有MDT上。故采用DNE。通过在多个MDT上分发MDS的负载,能够超越单个MDT性能的限制,提高整体性能。
EC方法是一种前向错误纠正技术(Forward Error Correction,FEC),一般是应用于网络传输中避免包的丢失。
本发明提供的数据存储方法,将其应用于数据的分发存储,能够有效地提高Lustre系统的存储可靠性。相对于RAID-0模式等现有的多副本复制模式(简单的对待存储数据进行复制,并分别存储至不同的Disk)而言,EC技术能够以更小的数据冗余度,获得更高的数据可靠性,
本发明提供的应用于Lustre系统的数据存储方法,是基于DNE以及EC技术相结合来实现数据文件的分发以及存储的,通过将元数据分发存储到Lustre系统的多个Server节点上,以解决Lustre系统的本地存储架构下,由于存储元数据Server节点仅依赖于RAID模式,在Server节点发生故障后,导致数据无法正常恢复,从而致使整个系统数据丢失的严重问题。
在步骤501中,在服务器(Server)接收到客户端在DNE目录下发起的写文件请求,会生成对应的目录元数据。
基于DNE技术,Server能够将单个的目录元数据分发到多个MDT节点,分布在多个MDT上的目录称为条带目录。在条带目录下的文件数据,将各自的元数据存在不同的MDT上。
不同的是,在步骤502中本发明在获取到目录元数据之后,结合EC技术,首先设置冗余级别为m+n;然后,将待存储的目录元数据切分成m个元数据源分片;再从m个元数据源分片中计算出n个元数据校验分片,并将m+n个元数据分片分别存储至不同的Server节点,本发明将单独存储元数据分片的Server节点称作第一数据Server节点。
其中,m和n均为大于1的正整数,如:在m=4,n=2的情况下,冗余级别为4+2,则步骤502实现了根据一个目录元数据,生成与之对应的6个元数据分片(包括4个元数据源分片和2个元数据校验分片)的目的。
在步骤503中,采用DNE技术,将上一步中所获取的所有元数据分片分别存储至不同的第一数据Server节点(每个Server节点的Disk可以被作为一个MDT)中。最后,所有的元数据分片均被存储至多个MDT中。
一般来说是将m个元数据源分片和n个元数据校验分片分别存至不同的Server节点,以确保在任一Server节点发生Disk硬件故障时,能够根据其他的Server节点的Disk所存储的元数据分片,对损坏的数据进行恢复。
但需要说明的是,由于EC技术的限制,要求在不大于n个Server节点发生Disk硬件故障的情况下,均可以通过EC技术,实现数据的恢复。
本发明提供的应用于并行文件系统的数据存储方法,将分布式命名空间与纠删码方法相结合,实现了并行文件系统的本地存储架构的高可靠性。
基于上述实施例的内容,作为一种可选实施例,步骤502中所述基于EC技术,生成与目录元数据对应的多个元数据分片,主要包括:根据目录元数据的目录数属性,将目录元数据切分为多个元数据源分片;基于EC方法,根据元数据源分片生成多个元数据校验分片。
目录元数据主要包括:引节点(inode)、文件类型、权限属性、链接数、所归属的用户和用户组、最近修改时间等相关内容。本发明根据目录元数据的目录数属性,可以视作根据目录元数据所包含的属性数据、各个属性数据的存储空间需求、属性数据的数量等,确定冗余级别,以保证将元数据进行分片之后,能够确保件整个元数据分发至整个Lustre系统的各Server节点,并能够确保在小于n个Server节点发生Disk硬件故障时,能够快速的实现元数据的恢复。
其中,采用EC技术的编码方法,根据m个元数据源分片生成n个元数据校验分片的方法;如将元数据源分片所对应的数据矩阵乘以编码矩阵,以生成新的矩阵;进而根据新的矩阵获取一个元数据校验分片。
在确定任一(或几个)元数据分片(可能是元数据源分片也可能是元数据校验分片)丢失的情况下,还能够通过与所述编码方法相对应的解码方法,即将所有未丢失的元数据分片乘以逆矩阵则可以还原所丢失的元数据分片。
本发明提供的应用于并行文件系统的数据存储方法,通过采用EC技术能够在有效地提高数据安全性的基础上,相较于传统的副本备份的方法,大大地节省了存储空间。
基于上述实施例的内容,作为一种可选实施例,在执行步骤503所述的将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中之前,还可以包括:在Lustre系统构架的每个第一数据Server节点上,选择至少一块固态硬盘(Solid StateDisk,SSD)作为MDT;将每个SSD分别作为一个独立的元数据存储空间,挂载至对应的MDT。
图6是本发明提供的元数据文件的数据分布式存储示意图,如图6所示,在将目录元数据切分成m+n个元数据分片之后,需要采用DNE技术,将所有元数据分片分发至各个MDT中保证在有限数量的MDT发生数据丢失的情况,能根据其它正常的元数据分片对其进行恢复。
图7是本发明提供的应用于并行文件系统的数据存储方法的流程示意图之二,如图7所示,本发明提供的数据存储的执行步骤可以是:
步骤(1),在每个Server节点上通过命令mkfs.lustre,定义Lustre系统中的MDT,在HPC机群中,每个Server节点上选择一块(或者多块)基于非易失性内存管理主机系统控制器通过接口技术规范(Non-Volatile Memory express,NVMe)的SSD作为MDT,其用户操作指令为:
mds10mkfs.lustre--fsname=hpdsV7--mdt--mgs--index=0--reformat/dev/nvme0n1
其中,NVMe是为PCI-E制定的标准接口协议,解除了旧标准施放在SSD上的各种限制,而且支持所有常见的操作系统,具有良好的可拓展性,还具有低延迟,低能耗,高性能等优点。
步骤(2),在每个Server节点上通过命令mount.lustre,挂载元数据存储空间到对应的MDT上,其用户操作指令为:
mds10 mount.lustre/dev/nvme1n1/mnt/mdt
步骤(3),在Lustre系统中设置冗余属性(m+n),即在每个节点上通过命令lfsmkdir,设置参数mdt_count(m,n),指定元数据在MDT上的Layout,其用户操作指令为:
client10 lfs mkdir-c*mdt_count**/mount_point/new_directory*
这样在接收到用户从客户端于目录下发起的写文件请求后,则按上述方式对元数据进行分配存储。
本发明提供的数据存储方法及装置,将分布式命名空间与纠删码方法相结合,实现了并行文件系统的本地存储架构的高可靠性。
基于上述实施例的内容,作为一种可选实施例,在执行完步骤503,即将每个元数据分片分发至不同的第一数据Server节点的元数据目标之后,还可以包括:
接收所述客户端的第一读文件请求;在确定与第一读文件请求相关的任一第一数据Server节点故障的情况下,基于EC方法,在新的第一数据Server节点中重构任一第一数据Server节点中的元数据分片;响应于所述第一读文件请求。
如图7所示,在接收到用户从客户端的目录下的第一读文件请求之后,则需响应第一读文件请求,从各个第一数据Server节点中的各个MDT中,分别提取出相关的元数据以供用户从客户端读取。
在此过程中,若未发生Server节点故障,即与所述第一读文件请求相关的所有元数据均正常存储时,直接将所有相关的元数据提供给客户端读取。
在此过程中,若确定发生了Server节点故障(如某些Server节点出现了Disk故障或通信故障),则需进一步确定发生故障的Server节点的数量。
在确定发生故障的Server节点的数量不至于影响各发生故障的Server节点中所存储的元数据分片的恢复的情况下,基于EC技术,对丢失的元数据进行恢复(可以存储至新的Server节点),并响应于客户端目标下的第一读文件请求,以供其读取。
在此过程中,若确定发生故障的Server节点的数量严重影响各发生故障的Server节点中所存储的元数据分片的恢复,则会导致客户端目录下的读文件失败。
本发明提供的数据存储方法,将分布式命名空间与纠删码方法相结合,实现了并行文件系统的本地存储架构的高可靠性。
图8是本发明提供的Lustre系统数据存储优化示意图,如图8所示,在上述实施例的基础上,本发明提供的另一种应用于Lustre系统的数据存储方法。
本发明提供的数据存储方法,进一步优化Lustre系统的本地存储架构,不仅仅是针对元数据的分发存储,还可以同时针对对象数据的分发存储。
将MDS、OSS组件分别部署在模块化的Server节点上,每个Server节点中的本地NVME SSD作为OST和/或MDT的数据高速存储介质。
如图8中的左框中所示,现有的Lustre系统的本地存储架构所采用的,将MDS、OSS等相关组件分别部署在模块化的Server节点上,但OST和MDT分别占用独立的Server节点。元数据对存储空间要求不高(仅占整个系统的1%-2%容量),只需要足够大的CPU功率,足够大的内存,快速数据存储介质。如果MDT独占Server节点,必将会带来节点资源浪费,增加系统的总体拥有成本(Total Cost of Ownership,TCO)。
如图8中的右框中所示,本发明提供的数据分发存储方法,MDT将不再使用独立的Server节点,而是与OST共同使用Server节点,即在每个Server节点都可以同时提供OST、MDT存储空间。
作为一种可选实施例,本发明提供的数据存储方法,还包括:读取对象数据;基于EC技术,生成与所述对象元数据对应的多个对象数据分片;所述多个对象数据分片包括多个对象数据源分片以及多个对象数据校验分片;将每个所述对象数据分片分发至不同的第二数据Server节点的中OST。
针对对象数据的存储方法,包括:在接受到用户的写操作请求后,确定对应的对象数据(称作目标对象数据);然后,采用EC技术,对目标对象数据进行切分,并根据切分后获取到的多个对象数据源分片,生成相应数量的对象数据校验分片。
同样地,采用DNE技术,对每个对象数据分片进行分发,以将每个对象数据分片分别存储至不同的第二数据Server节点(设置有OST的Server节点称作第二数据Server节点)中的OST。
本发明所采用基于EC技术以及DNE技术对目标对象数据进行分发存储的方法,可以借鉴上述实施例中对元数据进行处理的步骤,在此不作一一赘述。
需要说明的是,上述用于存储元数据分片的第一数据Server节点(其上设置有用作MDT的Disk)与用于存储对象数据分片的第二数据Server节点(上设置有用作OST的Disk)可以是相同或不同的Server节点。
具体地,本发明可以将任一个Server节点的全部Disk作为MDT,以单独存储元数据分片;也可以将任一个Server节点全部Disk作为OST,以单独存储对象数据分片;也可以将任一个Server节点中的部分Disk作为MDT,而将部分Disk作为OST。
即本发明提供的数据存储方法,不对单一的Server节点的存储方式作具体地限定,但在实际运用过程中,每个Server节点均可以同时实现元数据分片以及对象数据分片。这样,能够在确保整个Lustre系统的数据安全性的基础上,有效地降低相关Server节点的空间资源的浪费,进而降低系统的TCO。
基于上述实施例的内容,作为一种可选实施例,在将每个所述对象数据分片分发至不同的第二数据Server节点的对象存储目标中之后,还包括:接收所述客户端的第二读文件请求;在所述确定与所述第二读文件请求相关的任一第二数据Server节点故障的情况下,基于所述纠删码方法,在新的第二数据Server节点中重构所述任一第二数据Server节点中的元数据分片;响应于所述第二读文件请求。
具体来说,在接收到用户从客户端目录下的第二读文件请求(将读取对象数据的文件请求称作第二读文件请求)之后,则需响应第二读文件请求,从各个相关的第二数据Server节点中的各个OST中,分别提取出相关的对象数据分片以供用户从客户端读取。
在此过程中,若未发生Server节点故障,即与所述第一读文件请求相关的所有元数据均正常存储时,直接将所有相关的元数据提供给客户端读取。
在此过程中,若确定发生了Server节点故障(如某些Server节点出现了Disk故障或通信故障),则需进一步确定发生故障的第二Server节点的数量。
在确定发生故障的Server节点的数量不至于影响各发生故障的Server节点中所存储的对象数据分片的恢复的情况下,基于EC技术,对丢失的对象数据分片进行恢复,并响应于客户端目标下的第二读文件请求,以供其读取。
在此过程中,若确定发生故障的Server节点的数量严重影响各发生故障的Server节点中所存储的对象数据分片的恢复,则会导致客户端目录下的读文件失败。
本发明提供的数据存储方法,将分布式命名空间与纠删码技术相结合,实现了并行文件系统的本地存储架构的高可靠性。
图9是本发明提供的应用于并行文件系统的数据存储装置的结构示意图,如图9所示,该数据存储装置主要包括:
接收单元901主要用于接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;
纠删单元902主要用于基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;
分发单元903主要用于将每个元数据分片分发至不同的第一数据Server节点的元数据目标中。
具体地,接收单元901、纠删单元902和分发单元903,可视为Lustre系统的服务器(Server)的一部分。
在接收单元901接收到客户端在DNE目录下发起的写文件请求,会生成对应的目录元数据。纠删单元902是主要用于运行EC技术的模块,包括:在获取到目录元数据之后,结合EC技术,首先设置冗余级别为m+n;然后,将待存储的目录元数据切分成m个元数据源分片,再从m个元数据源分片中计算出n个元数据校验分片,以供分发单元903基于DNE技术,将m+n个元数据分片分别分发并存储至不同的Server节点。最后,所有的元数据分片均被存储至不同的第一数据Server节点的多个MDT中。
本发明提供的应用于并行文件系统的数据存储方法及装置,将分布式命名空间与纠删码技术相结合,实现了并行文件系统的本地存储架构的高可靠性。
需要说明的是,本发明实施例提供的应用于并行文件系统的数据存储装置,在具体运行时,可用于执行上述任一实施例所述的应用于并行文件系统的数据存储方法,对此本实施例不作赘述。
图10是本发明提供的电子设备的结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行应用于并行文件系统的数据存储方法,该方法包括:接收由并行文件系统的客户端上传的写文件请求,读取分布式命名空间下的目录元数据;基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的应用于并行文件系统的数据存储方法,该方法包括:接收由并行文件系统的客户端上传的写文件请求,读取分布式命名空间下的目录元数据;基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的应用于并行文件系统的数据存储方法,该方法包括:接收由并行文件系统的客户端上传的写文件请求,读取分布式命名空间下的目录元数据;基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种应用于并行文件系统的数据存储方法,其特征在于,包括:
接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;
基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;
将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
2.根据权利要求1所述的应用于并行文件系统的数据存储方法,其特征在于,所述基于纠删码方法,生成与所述目录元数据对应的多个元数据分片,包括:
根据所述目录元数据的目录数属性,将所述目录元数据切分为多个所述元数据源分片;
基于纠删码方法,根据所述元数据源分片生成所述多个元数据校验分片。
3.根据权利要求1所述的应用于并行文件系统的数据存储方法,其特征在于,在所述将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中之前,还包括:
在所述并行文件系统构架的每个第一数据Server节点上,选择至少一块固态硬盘作为所述元数据目标;
将每个所述固态硬盘分别作为一个独立的元数据存储空间,挂载至对应的元数据目标。
4.根据权利要求1-3任一所述的应用于并行文件系统的数据存储方法,其特征在于,在将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标之后,还包括:
接收所述客户端的第一读文件请求;
在确定与所述第一读文件请求相关的任一第一数据Server节点故障的情况下,基于所述纠删码方法,在新的第一数据Server节点中重构所述任一第一数据Server节点中的元数据分片;
响应于所述第一读文件请求。
5.根据权利要求1-3任一所述的应用于并行文件系统的数据存储方法,其特征在于,所述数据存储方法,还包括:
读取对象数据;
基于纠删码方法,生成与所述对象元数据对应的多个对象数据分片;所述多个对象数据分片包括多个对象数据源分片以及多个对象数据校验分片;
将每个所述对象数据分片分发至不同的第二数据Server节点的对象存储目标中。
6.根据权利要求5所述的应用于并行文件系统的数据存储方法,其特征在于,所述第一数据Server节点与所述第二数据Server节点相同或不同。
7.根据权利要求5所述的应用于并行文件系统的数据存储方法,其特征在于,在将每个所述对象数据分片分发至不同的第二数据Server节点的对象存储目标中之后,还包括:
接收所述客户端的第二读文件请求;
在所述确定与所述第二读文件请求相关的任一第二数据Server节点故障的情况下,基于所述纠删码方法,在新的第二数据Server节点中重构所述任一第二数据Server节点中的元数据分片;
响应于所述第二读文件请求。
8.一种应用于并行文件系统的数据存储装置,其特征在于,包括:
接收单元,用于接收由并行文件系统的客户端发送的写文件请求,读取分布式命名空间下的目录元数据;
纠删单元,用于基于纠删码方法,生成与所述目录元数据对应的多个元数据分片;所述多个元数据分片包括多个元数据源分片以及多个元数据校验分片;
分发单元,用于将每个所述元数据分片分发至不同的第一数据Server节点的元数据目标中。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述应用于并行文件系统的数据存储方法的步骤。
10.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行权利要求1至7任一项所述应用于并行文件系统的数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110586412.8A CN115408345A (zh) | 2021-05-27 | 2021-05-27 | 应用于并行文件系统的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110586412.8A CN115408345A (zh) | 2021-05-27 | 2021-05-27 | 应用于并行文件系统的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115408345A true CN115408345A (zh) | 2022-11-29 |
Family
ID=84155738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110586412.8A Pending CN115408345A (zh) | 2021-05-27 | 2021-05-27 | 应用于并行文件系统的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115408345A (zh) |
-
2021
- 2021-05-27 CN CN202110586412.8A patent/CN115408345A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086740B2 (en) | Maintaining storage array online | |
US10810083B1 (en) | Decreasing parity overhead in a storage system | |
US11132256B2 (en) | RAID storage system with logical data group rebuild | |
JP6294518B2 (ja) | 不揮発性メモリシステムにおける同期ミラーリング | |
EP3230870B1 (en) | Elastic metadata and multiple tray allocation | |
US11687259B2 (en) | Reconfiguring a storage system based on resource availability | |
US10467246B2 (en) | Content-based replication of data in scale out system | |
US10001947B1 (en) | Systems, methods and devices for performing efficient patrol read operations in a storage system | |
US11074129B2 (en) | Erasure coded data shards containing multiple data objects | |
US20180024964A1 (en) | Disaggregated compute resources and storage resources in a storage system | |
EP2799973B1 (en) | A method for layered storage of enterprise data | |
US9367395B1 (en) | Managing data inconsistencies in storage systems | |
US6795895B2 (en) | Dual axis RAID systems for enhanced bandwidth and reliability | |
US8082231B1 (en) | Techniques using identifiers and signatures with data operations | |
EP2250563B1 (en) | Storage redundant array of independent drives | |
US9846706B1 (en) | Managing mounting of file systems | |
US20160246676A1 (en) | Methods for policy-based hierarchical data protection and devices thereof | |
US10838834B1 (en) | Managing read and write requests targeting a failed storage region in a storage system | |
CN109117292B (zh) | 一种集群存储的方法和装置及集群存储系统 | |
WO2009070355A2 (en) | Systems and methods for providing redundant data storage | |
US10417094B1 (en) | Hyper storage cluster | |
CN115408345A (zh) | 应用于并行文件系统的数据存储方法及装置 | |
CN114415979B (zh) | 存储装置的处理方法、计算机设备及存储装置 | |
US11687426B1 (en) | Techniques for managing failed storage devices | |
US20230342080A1 (en) | Storage management system and method |
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 |