System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于分层存储数据加载,尤其涉及一种改善lustre hsm分层存储元数据加载性能的方法。
技术介绍
1、lustre hsm 提供了将 lustre 与另外的存储整合提来提供分层存储的手段,标准的做法是 lustre作为 hsm 前端,另外的存储作为 hsm 的后端。当通过 hsm 从后端对象存储加载数据到 lustre 文件系统时,首先需要通过 hsm import 机制向 lustre 导入文件的元数据信息。然后加载数据,加载数据的方式包括hsm on demand 加载和hsmrestore 命令加载。hsm on demand 加载为当用户访问 import 的文件时(文件属性released),会触发按需加载,hsm coordiantor通知 hsm agent(copytool)从 hsm 后端加载文件数据。hsm restore 命令加载通过该命令,让 hsm coordiantor 通知 hsm agent(copytool)从 hsm 后端加载文件数据。上述两种方式要利用 hsm 加载数据,都首先要通过 hsm import 向 lustre 导入文件的元数据信息。例如lustre 高性能全闪文件系统,通过 hsm 和后端高性价比大容量的 hdd 对象存储构成的分层存储。对于 ai 训练这种典型应用场景,平常数据在容量层,使用之前才导入性能层。因此导入性能非常关键。
2、现有技术中的lustre hsm import 功能是通过客户端实现的,客户端通过向lustre mds 发送几个 r
3、因此,如何对lustre hsm import的文件元数据加载过程进行改进,提升其执行效率以及数据加载性能,是目前亟需解决的技术问题。
技术实现思路
1、本专利技术的目的在于提供一种改善lustre hsm分层存储元数据加载性能的方法,用以对lustre hsm import的文件元数据加载过程进行改进,提升其执行效率以及数据加载性能。
2、为解决上述技术问题,本专利技术采用的技术方案如下:
3、一种改善lustre hsm分层存储元数据加载性能的方法,包括以下步骤:
4、s1:基于命名空间分割获得导入元数据的集合;
5、s2:客户端让 mds 服务器验证导入 lustre的目标目录是否满足导入条件,若是,设置禁止随后的文件导入过程,再检查每个文件的目录是否满足导入条件,若是,执行步骤s3;
6、s3:客户端向 mds 服务器发送文件导入请求,客户基于命名空间分割的并行化元数据导入机制并行地通过 lustre hsm import api 执行批量文件导入;
7、s4:客户端重新使能文件导入过程检查文件的目录是否满足导入条件的功能,循环执行步骤s2-s3;
8、其中,步骤s1中的导入元数据的集合为待导入文件的名称和属性的集合;步骤s3中的lustree hsm import api为lustre提供的库函数llapi_hsm_import,用于根据文件名和文件属性,执行到目标目录的元数据导入操作。
9、优选的,在存储系统中设有导入目标验证函数以及打开/关闭mds服务器的导入目标验证逻辑的接口函数,包括need_check标志位、disable_check() 函数和enalble_check() 函数;
10、其中disable_check() 函数用于将所述need_check标志位设置为false,表示关闭mds服务器的导入目标验证逻辑,enalble_check() 函数用于将所述need_check标志位设置为true,表示打开mds服务器的导入目标验证逻辑。
11、优选的,存储系统中还设有parent_check() 函数、parent_lock() 函数和parent_unlock() 函数,所述parent_check() 函数用于验证文件要导入的目标目录是否满足导入条件;parent_lock() 函数用于对导入目标目录加锁;parent_unlock() 函数用于对导入目标目录解锁。
12、优选的,步骤s2为基于所述导入目标验证函数对文件所在的从hsm后端导入lustre的目标目录进行是否满足导入条件的验证,具体过程如下:
13、s21:调用parent_lock() 函数,对导入目标目录加锁;
14、s22:调用parent_check() 函数,验证文件要导入的目标目录是否满足导入条件;
15、s23:调用disable_check() 函数,将所述标志位设置为false,关闭mds服务器的导入目标验证逻辑;
16、s24:将文件导入目标目录;
17、s25:调用enalble_check() 函数,将所述标志位设置为true,打开mds服务器的导入目标验证逻辑;
18、s26:调用parent_unlock() 函数,对导入目标目录解锁。
19、优选的,步骤s3中的基于命名空间分割的并行化元数据导入机制包括以下具体过程:
20、s31:通过导入工具处理分割子集;
21、s32:在多个客户端针对不同的分割子集执行到同一个lustre目标文件系统的数据导入;
22、s33:利用数据分片sharding为每个节点分配不同的sharding_id;
23、s34:在进行文件导入时,自动跳过和自己sharding_id不匹配的导入文件实现并行化文件导入。
24、优选的,步骤s33中的数据分片sharding的实现过程为:
25、基于文件名字的所有字符进行求和,即得到文件名字本文档来自技高网...
【技术保护点】
1.一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,包括以下步骤:
2. 根据权利要求1所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,在存储系统中设有导入目标验证函数以及打开/关闭MDS服务器的导入目标验证逻辑的接口函数,包括need_check标志位、disable_check() 函数和enalble_check() 函数;
3.根据权利要求2所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,存储系统中还设有parent_check() 函数、parent_lock() 函数和parent_unlock() 函数,所述parent_check() 函数用于验证文件要导入的目标目录是否满足导入条件;parent_lock() 函数用于对导入目标目录加锁;parent_unlock() 函数用于对导入目标目录解锁。
4.根据权利要求3所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,步骤S2为基于所述导入目标验证函数对文件所在的从HSM后端导
5.根据权利要求1所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,步骤S3中的基于命名空间分割的并行化元数据导入机制包括以下具体过程:
6.根据权利要求5所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,步骤S33中的数据分片sharding的实现过程为:
7.根据权利要求6所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,数据分片sharding的实现过程中,基于文件名字的所有字符进行求和得到数字,令所述数字为N,其余数为0~N-1的数字,客户端节点获取该数字,与自身sharding_id进行对比,若余数与自身sharding_id相同,则对本客户端节点执行文件导入,若余数与自身sharding_id不同,则跳过执行。
8.根据权利要求7所述的一种改善Lustre HSM分层存储元数据加载性能的方法,其特征在于,基于命名空间分割的并行化元数据导入机制为基于客户度节点ID和待导入文件名称执行哈希函数的机制,所述函数满足客户端N个节点能完整分割整个命名空间,并且任意两个客户端节点上面不存在相同的文件名。
...【技术特征摘要】
1.一种改善lustre hsm分层存储元数据加载性能的方法,其特征在于,包括以下步骤:
2. 根据权利要求1所述的一种改善lustre hsm分层存储元数据加载性能的方法,其特征在于,在存储系统中设有导入目标验证函数以及打开/关闭mds服务器的导入目标验证逻辑的接口函数,包括need_check标志位、disable_check() 函数和enalble_check() 函数;
3.根据权利要求2所述的一种改善lustre hsm分层存储元数据加载性能的方法,其特征在于,存储系统中还设有parent_check() 函数、parent_lock() 函数和parent_unlock() 函数,所述parent_check() 函数用于验证文件要导入的目标目录是否满足导入条件;parent_lock() 函数用于对导入目标目录加锁;parent_unlock() 函数用于对导入目标目录解锁。
4.根据权利要求3所述的一种改善lustre hsm分层存储元数据加载性能的方法,其特征在于,步骤s2为基于所述导入目标验证函数对文件所在的从hsm后端导入lustre的目标目录进行是否满足导入条件的验证,具体过...
【专利技术属性】
技术研发人员:符青云,董博,王皓,钟吉林,杜小华,黄耀年,王志国,
申请(专利权)人:四川省华存智谷科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。