一种元数据读取限制方法、装置、电子设备及介质与流程

文档序号:25542471发布日期:2021-06-18 20:39阅读:90来源:国知局
一种元数据读取限制方法、装置、电子设备及介质与流程

本申请涉及云技术领域,尤其涉及一种元数据读取限制方法、装置、电子设备及介质。



背景技术:

随着存储技术的发展,分布式存储系统得到广泛应用,可以存储大量的数据和元数据等等,并可基于各种数据操作命令读取数据或元数据。在执行一些数据操作命令时,可能会在短时间内读取大量的元数据,容易导致元数据服务器过载及客户端崩溃。发明人在研究过程中发现,目前可以通过增加服务器节点数并提高元数据缓存的性能来防止元数据服务器过载,但是这种方法会增加成本,且无法防止客户端请求读取海量文件时自身崩溃;或者,还可以通过压缩打包海量小文件,实现文件合并,以减少元数据的存储数量,进而减少客户端对元数据的访问,但这种方式打包海量文件耗时长,且读取文件需要进行解压缩操作,增加了计算量。由此可见,如何更好地防止元数据服务器过载和客户端崩溃成为亟待解决的问题。



技术实现要素:

本申请实施例提供了一种元数据读取限制方法、装置、电子设备及介质,有助于防止元数据服务器过载和客户端崩溃。

一方面,本申请实施例提供了一种元数据读取限制方法,该方法包括:

接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

获取所述数据操作命令对应的目标路径的路径信息;

根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

另一方面,本申请实施例提供了一种元数据读取限制装置,该装置包括:

获取模块,用于接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

所述获取模块,还用于获取所述数据操作命令对应的目标路径的路径信息;

处理模块,用于根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

再一方面,本申请实施例提供了一种电子设备,其特征在于,所述电子设备包括处理器和存储装置,所述处理器与所述存储装置相互连接,其中,所述存储装置用于存储计算机程序指令,所述处理器被配置用于执行如下步骤:

接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

获取所述数据操作命令对应的目标路径的路径信息;

根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如下步骤:

接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

获取所述数据操作命令对应的目标路径的路径信息;

根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

本申请实施例在接收到关联元数据读取操作的数据操作命令时,能够通过获取该数据操作命令对应的目标路径的路径信息,进而根据该路径信息确定是否针对该元数据读取操作进行限制处理,从而能够实现限制部分元数据的读取操作,有助于防止元数据服务器过载和客户端崩溃,且无需增加额外成本和计算量,增强了用户体验。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是本发明实施例提供的一种计算平台的结构示意图;

图1b是本发明实施例提供的一种分布式存储系统的结构示意图;

图2是本发明实施例提供的一种元数据读取限制方法的流程示意图;

图3a是本发明实施例提供的另一种元数据读取限制方法流程示意图;

图3b是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图4a是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图4b是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图5a是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图5b是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图6是本发明实施例提供的再一种元数据读取限制方法流程示意图;

图7是本申请实施例提供的一种元数据读取限制装置的结构示意图;

图8是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

本申请提供了一种元数据读取限制方案,能够在接收到数据操作命令时,确定是否针对数据操作命令关联的元数据读取操作进行限制处理。由此可以实现限制至少部分元数据读取操作,有助于防止元数据服务器过载和客户端崩溃。

可以理解,本申请的技术方案可应用于云技术领域,如可涉及云计算和/或云存储技术,并可具体应用于在电子设备中,该电子设备可以是终端,也可以是服务器。此外,本申请涉及的元数据可存储于一个或多个服务器中,如通过分布式存储系统存储。

可选的,在本申请中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。也就是说,本申请可以应用于多个物理服务器构成的服务器集群或者分布式系统中。例如,该多个物理服务器构成的服务器集群或者分布式系统可以部署于一种计算平台(如云计算平台)中,比如可以是机器学习计算平台、人工智能计算平台等等,此处不一一列举。

其中,云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas(infrastructureasaservice,基础设施即服务)层上可以部署paas(platformasaservice,平台即服务)层,paas层之上再部署saas(softwareasaservice,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。例如,上述的电子设备可以为计算设备,

在一种可能的实施方式中,请参见图1a,图1a是本申请实施例提供的一种云计算平台的示意图。如图1a所示,该云计算平台包括分布式存储系统,以及,一个或多个电子设备,该分布式存储系统可包括多个数据服务器和多个元数据服务器。其中,该多个数据服务器可用于分布式存储数据,该多个元数据服务器可用于存储数据关联的元数据。该一个或多个电子设备中可部署有用户容器和分布式存储系统客户端,容器启动后,可执行各种操作命令,可能会从分布式存储系统中读取元数据。

可选的,本申请实施例涉及的分布式存储系统可以是分布式云存储系统,云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。

例如,该分布式存储系统可以是ceph分布式存储系统,该元数据服务器可以是ceph元数据服务器(metadataserver,mds),该分布式存储系统客户端可以是cephfs客户端。其中,ceph分布式存储系统是一种被广泛使用的分布式存储系统,专为对象存储和云基础架构而设计;mds是ceph集群中存储文件元数据的模块;cephfs是一种posix兼容的文件系统,使用ceph存储集群来存储数据,通过cephfs可以像访问本地硬盘一样直接访问ceph文件(数据);cephfs客户端可用于与mds进行交互,获取ceph文件的元数据信息,比如cephfs客户端在访问ceph内的文件时,会请求mds得到文件的元数据信息。

以本申请应用于一种机器学习计算平台为例,该机器学习计算平台包括多个数据服务器和多个元数据服务器,以及电子设备,该电子设备包括分布式存储系统客户端或与该客户端连接。在通过该机器学习计算平台进行模型训练时可能会涉及大量数据的读取,如计算机视觉方向需要用到上亿级别的文件进行模型训练。可选的,在训练时可以采用多机多卡分布式训练的方式,该多机多卡分布式训练可以通过多台电子设备多个图形处理器(gpu)进行训练,训练的文件可以存放在分布式存储系统如云端ceph中。在进行模型训练时,在每台电子设备中创建容器(或称为用户容器),容器是一种轻量级、灵活的虚拟化处理方式,容器启动后,可以在容器中输入数据操作命令,分布式存储系统的客户端如cephfs客户端可以根据该数据操作命令,从元数据服务器如mds读取元数据。若该数据操作命令执行时需要对大量的文件进行元数据读取操作,可能会引发元数据服务器过载和客户端崩溃的情况,导致训练失败。比如mds中存储了海量的文件元数据信息,cephfs客户端执行某些命令时可能会短时读取所有的文件元数据信息,这会导致mds负载突升,影响集群稳定性能,且cephfs客户端执行某些命令时可能会短时读取大量的文件信息,导致cephfs客户端崩溃,用户无法正常使用ceph。而本申请能够通过对数据操作命令关联的元数据读取操作进行限制来防止元数据服务器过载和客户端崩溃,比如能够限制短时导致读取大量元数据信息的操作,防止mds过载并保证了ceph集群的稳定性,有助于防止cephfs客户端崩溃,防止故障发生。而且,本申请无需打包海量元数据,通用性较好。

在一种可能的实施方式中,本申请可以通过安全机制对数据操作命令进行限制处理,如linux内核的安全机制seccomp,通过限制容器内进程对系统调用的访问,从而限制数据操作命令的执行。由于数据操作命令执行时关联的元数据读取操作基本上都是通过函数库(如glibc)的读取目录项接口(如readdir接口),调用函数(如getdents)执行系统调用命令。由此,可通过安全机制禁用系统调用的命令,如禁用getdents系统调用命令,实现对上述数据操作命令的使用进行限制,从而可以防止元数据服务器过载和客户端崩溃。由于该方案快速有效,但限制是整个容器内全局生效的,无法只针对部分路径如ceph目录进行限制,可能会会对用户使用造成不便。由此,可选的,可以是在某些特殊场景下,可以采用这种方式,比如,存储的数据具有机密性(如携带机密标签,或者机密等级高于预设等级,或者由用户指定,等等),需要限制用户读取;又如,存储的数据的数据量大,且仅需要存储,不需要用户获取,以增强用户体验。

在一种可能的实施方式中,本申请可以接收输入的数据操作命令,并获取数据操作命令对应的目标路径的路径信息,进而可根据路径信息,确定是否针对数据操作命令关联的元数据读取操作进行限制处理。由此可以有助于防止元数据服务器过载和客户端崩溃。

在一种可能的实施方式中,本方案还可以将上述通过安全机制对数据操作命令进行限制处理与根据路径信息确定是否对数据操作命令进行限制处理两种方法进行结合,基于一些判断机制确定采用何种方案。例如,先采用根据路径信息确定是否对数据操作命令进行限制处理的方案,当检测到在用户容器中输入的数据操作命令关联的元数据读取操作的限制处理超过阈值(如90%),或者,接收到用户的切换指令且确定该用户具有切换权限时,则可切换为通过安全机制对数据操作命令进行限制处理,禁用相关系统调用,如禁用getdents系统调用命令。又如,在采用通过安全机制对数据操作命令进行限制处理的方案时,检测到在用户容器中输入的数据操作命令的次数达到某一数目阈值,则表示用户有极大需求进行数据操作,则可以输出提示消息提示用户对元数据读取限制方案进行切换/修改,比如取消对相关系统调用如getdents系统调用命令的禁用,在检测到执行用户的具有切换权限时,则切换为根据路径信息确定是否对数据操作命令进行限制处理,等等,此处不一一列举。

可选的,本申请实施例涉及的数据可保存于区块链上,例如,该分布式存储系统中的多个服务器可组成为一区块链,而服务器为区块链上的节点。请参见图1b,图1b是本发明实施例提供的一种基于区块链的分布式存储系统的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、终端)形成,并和客户端连接,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。参见图1b示出的区块链系统中各节点的功能,涉及的功能包括:路由,节点具有的基本功能,用于支持节点之间的通信;应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中;区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。

本申请提出的元数据在一些场景中也可以被称为中介数据、中继数据等等,本申请不做限定。其中,元数据可包括描述数据属性的信息,可用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。可选的,该数据操作命令还可称为文件元数据操作命令、元数据操作命令或者其余名称,本申请不做限定。

可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

基于上述的描述,本申请实施例提出一种元数据读取限制方法,下面针对根据路径信息确定是否对数据操作命令关联的元数据读取操作进行限制处理的方案进行详细阐述。

请参见图2,是本申请实施例提供的一种元数据读取限制方法的流程示意图。如图2所示,该元数据读取限制方法可以包括步骤201-203。

201、接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作。

其中,该数据操作命令可以是关联元数据读取操作的命令,即执行过程中涉及元数据读取。例如,该数据操作命令可以是获取文件列表的命令,也可以是计算文件大小的命令,还可以是查找目标文件的命令,还可以是查找指定内容的命令,等等,此处不一一列举。具体的,获取文件列表的命令可以用于列出目标路径下的所有文件名,并用颜色区分文件的类别(如用绿色代表可执行文件,红色代表压缩文件等等),例如该获取文件列表的命令可以为linux的ls命令;计算文件大小的命令可以用于列出目标路径下所有文件和文件夹的大小信息,例如该计算文件大小的命令可以为linux的du命令;查找目标文件的命令可以用于在目标路径下查找目标文件,该目标文件可以在输入数据操作命令时设置目标文件的检索条件,如该查找目标文件的命令可以为linux的find命令;查找指定内容的命令可以用于在目标路径下读取所有文件的所有信息并查找文件里的指定内容,该指定内容可以是文件里符合条件的字符串,可以在输入数据操作命令时进行设置,如该查找指定内容的命令可以为linux的grep命令。可选的,该数据操作命令可以是在容器启动后获取。也就是说,用户的容器启动后,如果执行上述数据操作命令,可能会读取大量ceph文件的元数据。

在本申请中,该数据操作命令在执行时,会通过读取元数据来实现数据操作命令对应的操作,也即,本申请涉及的数据操作命令在执行时关联元数据读取操作。例如,在执行获取文件列表的命令时,需要通过元数据的读取来实现文件列表的获取。

202、获取所述数据操作命令对应的目标路径的路径信息。

其中,本申请涉及的路径信息可以包括以下任一项或多项:指示目标路径是否为分布式存储系统(如ceph)的内部路径的信息,指示目标路径是否指示文件夹的信息,指示目标路径内文件数量是否超过阈值的信息,指示目标路径是否为输入该数据操作命令时的路径的信息,指示目标路径是否为该数据操作命令指示/包括的路径的信息,指示该数据操作命令是否包括递归参数的信息,等等。其中,目标路径为分布式存储系统的内部路径可以是指,目标路径属于用于分布式存储系统进行存储的文件夹中的路径,如ceph内部路径。目标路径是否指示文件夹的信息可以是指,目标路径指示的对象是否为文件夹,例如一个目标路径为:/file_list1,由于在file_list1是一个文件夹,则该路径信息指示目标路径为文件夹,若一个目标路径:/file_list1/file.txt,由于file.txt是一个txt文件,则该路径信息指示目标路径不为文件夹。目标路径内文件数量是否超过阈值可以是指,目标路径下的文件,若目标路径下还包括一个或多个文件夹,则该一个或多个文件夹里的文件也算作目标路径内的文件数量。

可选的,数据操作命令对应的目标路径可以是该数据操作命令指示的路径,也可以是输入该数据操作命令时的路径,即当前路径或称为默认路径等等。

例如,输入获取文件列表的命令为:ls/file_list1,则该获取文件列表的命令对应的目标路径为/file_list1,该获取文件列表的命令表示获取/file_list1路径下的所有文件。又如,输入获取文件列表的命令为:ls,则数据操作命令对应的目标路径为输入该获取文件列表的命令时的路径,该命令表示获取输入该数据操作命令时的路径下的所有文件,若输入该数据操作命令时的路径为/file_list2,则表示获取/file_list2目标路径下的所有文件。

203、根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

其中,可以根据路径信息是否满足限制条件来确定是否针对该数据操作命令关联的元数据读取操作进行限制处理,该限制条件可以是一下任一项或多项:第一条件、数据操作命令包括递归参数、第二条件。该第一条件可以是指目标路径为分布式存储系统的内部路径,目标路径指示文件夹,和/或,目标路径内文件数量超过阈值。该第二条件可以是指目标路径为分布式存储系统的内部路径,和/或,目标路径内文件数量超过阈值。由此可以在路径信息满足限制条件时实现对该命令关联的数据读取操作进行限制处理。

可选的,该限制处理可以是禁止原数据操作命令中的部分或全部操作,如禁止执行颜色区分操作,又如禁止数据操作命令关联的元数据读取的所有操作,即不再触发进行相关元数据读取。进一步可选的,还可以返回提示消息,该提示消息可用于指示数据操作命令未被执行的信息。例如,可以输出该数据操作命令未被执行;和/或,返回文件数量;和/或,提示用户文件数量过多,可能存在过载或崩溃风险;和/或,返回错误,等等,本申请不做限定。

请结合图2,一并参见图3a,是本申请实施例提供的另一种元数据读取限制方法的流程示意图。在本实施例中,该数据操作命令可以为获取文件列表的命令,该获取文件列表的命令可以用于列出目标路径下的所有文件名,并用颜色区分文件的类别,如用绿色代表可执行文件,红色代表压缩文件等等,例如可以为linux的ls命令。如图3a所示,该元数据读取限制方法可以包括步骤3101-3104。

3101、接收输入的获取文件列表的命令。

3102、路径信息是否满足第一条件。若是,则可执行步骤3103,否则,可执行步骤3104。

在接收到获取文件列表的命令之后,可根据该命令对应的路径信息是否满足第一条件,来确定是否对该命令对应的元数据读取操作进行限制。该第一条件包括:目标路径为分布式存储系统如ceph的内部路径,目标路径指示文件夹,且目标路径内文件数量超过阈值,如100个。

3103、针对该获取文件列表的命令关联的元数据读取操作进行限制处理。

3104、根据该获取文件列表的命令执行元数据读取操作。

当路径信息满足第一条件时,可执行步骤3103,针对该获取文件列表的命令关联的元数据读取操作进行限制处理。由于原来的获取文件列表的命令在执行时,会列出目标路径下的所有文件名及文件对应的颜色,直接禁用该数据操作命令会影响用户正常使用,则针对获取文件列表的命令关联的元数据读取操作进行限制处理可以为禁止该获取文件列表的命令关联的文件颜色显示操作(比如将该命令中的指定参数color=never),并从元数据服务器读取元数据,执行该获取文件列表的命令对应的数据操作。其中,该文件颜色显示操作可用于区别不同文件类别,使得不同类别的文件的显示颜色不同。可选的,当路径信息不满足第一条件时,比如不是ceph内部路径,或者不是文件夹,或者未超过阈值,则可执行步骤3104,根据该获取文件列表的命令执行对应的元数据读取操作,并获取目标路径下的文件列表,用颜色区分文件类别,即正常执行该获取文件列表的命令。由于去除了颜色显示,此时能够避免读取大量元数据信息如避免读取大量mds的元数据信息,从而大大减少mds的访问。

可选的,为了减少计算量,更快判断是否针对该数据操作命令关联的元数据读取操作进行限制处理,请一并参见图3b,是本申请实施例提供的再一种元数据读取限制方法的流程示意图。在本实施例中,以分布式存储系统为ceph为例进行说明。如图3b所示,该元数据读取限制方法可以包括步骤3201-3206。

3201、接收输入的获取文件列表的命令。

3202、目标路径是否为ceph内部路径。若是,则可执行步骤3203,否则,可执行步骤3206。

3203、目标路径是否指示文件夹。若是,则可执行步骤3204,否则,可执行步骤3206。

3204、目标路径内文件数量是否超过阈值。若是,则可执行步骤3205,否则,可执行步骤3206。

3205、针对该获取文件列表的命令关联的元数据读取操作进行限制处理。

3206、根据该获取文件列表的命令执行元数据读取操作。

也就是说,在判断是否满足第一条件时,可以先执行步骤3202,判断目标是否为ceph内部路径,若否,则直接执行步骤3206,根据该获取文件列表的命令执行所述元数据读取操作,不再进行其余判断;若为ceph内部路径,则再执行步骤3203,判断目标路径是否为文件夹,若不为文件夹,则可直接执行步骤3206,根据该获取文件列表的命令执行对应的元数据读取操作;若为文件夹,则再执行步骤3204,判断目标路径内文件个数是否超过阈值,若不超过阈值,则可执行步骤3206,根据该获取文件列表的命令执行对应的元数据读取操作;若超过阈值,则执行步骤3205,对元数据读取操作进行限制处理,如禁止该获取文件列表的命令关联的文件颜色显示操作。由此可以减少计算量,有助于提升确定是否对元数据读取操作进行限制处理的效率。

请结合图2,一并参见图4a,是本申请实施例提供的再一种元数据读取限制方法的流程示意图。在本实施例中,该数据操作命令可以为计算文件大小的命令或查找目标文件的命令,该计算文件大小的命令可以用于列出目标路径下所有文件和文件夹的大小信息,例如linux的du命令;查找目标文件的命令可以用于在目标路径下查找目标文件,如linux的find命令,该目标文件可以在输入数据操作命令时设置目标文件的检索条件,执行find命令则会在目标路径下查找所有符合条件的文件名。如图4a所示,该元数据读取限制方法可以包括步骤4101-4104。

4101、接收输入的计算文件大小的命令或查找目标文件的命令。

4102、路径信息是否满足第一条件。若是,则可执行步骤4103,否则,可执行步骤4104。

在接收到计算文件大小的命令或查找目标文件的命令之后,可根据命令对应的路径信息是否满足第一条件,来确定是否对该命令对应的元数据读取操作进行限制。该第一条件包括:目标路径为分布式存储系统如ceph的内部路径,目标路径指示文件夹,且目标路径内文件数量超过阈值。

4103、针对该计算文件大小的命令或查找目标文件的命令关联的元数据读取操作进行限制处理。

4104、根据该计算文件大小的命令或查找目标文件的命令执行元数据读取操作。

可选的,当路径信息满足第一条件时,执行步骤4103,针对计算文件大小的命令或查找目标文件的命令关联的元数据读取操作进行限制处理。

可选的,针对该计算文件大小的命令或查找目标文件的命令关联的元数据读取操作进行限制处理可以为:禁止执行该计算文件大小的命令或查找目标文件的命令,并输出提示消息,该提示消息用于指示所述数据操作命令未被执行。例如,该提示消息可以是输出目标路径下的文件个数,提示用户目标路径下文件数量超过阈值,该数据操作命令未执行,也可以是直接输出该数据操作命令执行失败或执行错误,此处不做限制。

可选的,当路径信息不满足第一条件时,可执行步骤4104,根据接收的命令执行对应的元数据读取操作。进一步可选的,如果为计算文件大小的命令,还可列出目标路径下所有文件和文件夹的大小信息,或者,如果为查找目标文件的命令,还可列出目标路径下目标文件的文件名,等等。

可选的,为了减少计算量,更快判断是否针对该计算文件大小的命令或查找目标文件的命令关联的元数据读取操作进行限制处理,请参见图4b,是本申请实施例提供的再一种元数据读取限制方法的流程示意图。在本实施例中,以分布式存储系统为ceph为例进行说明。如图4b所示,该元数据读取限制方法可以包括步骤4201-4206。

4201、接收输入的计算文件大小的命令或查找目标文件的命令。

4202、目标路径是否为ceph内部路径。若是,则可执行步骤4203,否则,可执行步骤4206。

4203、目标路径是否指示文件夹。若是,则可执行步骤4204,否则,可执行步骤4206。

4204、目标路径内文件数量是否超过阈值。若是,则可执行步骤4205,否则,可执行步骤4206。

4205、针对该计算文件大小的命令或查找目标文件的命令关联的元数据读取操作进行限制处理。

4206、根据该计算文件大小的命令或查找目标文件的命令执行元数据读取操作。

也就是说,在判断是否满足第一条件时,可以先执行步骤4202,判断目标是否为ceph内部路径(因如果目标路径在cephfs目录内,可能会造成短时大量的ceph元数据请求),若否,则直接执行步骤4206,根据该计算文件大小的命令或查找目标文件的命令执行对应的元数据读取操作,不再进行其余判断;若为ceph内部路径,则再执行步骤4203,判断目标路径是否为文件夹,若不为文件夹,则直接执行步骤4206,根据该计算文件大小的命令或查找目标文件的命令执行元数据读取操作;若为文件夹,则再执行步骤4204,判断目标路径内文件个数是否超过阈值(如200、500或1000个),若不超过阈值,则执行步骤4206,根据该计算文件大小的命令或查找目标文件的命令执行元数据读取操作;若超过阈值,则执行步骤4205,对元数据读取操作进行限制处理,如禁止执行该计算文件大小的命令或查找目标文件的命令,并输出提示消息。由此可以减少计算量,提升确定是否对元数据读取操作进行限制处理的效率。

请结合图2,一并参见图5a,是本申请实施例提供的再一种元数据读取限制方法的流程示意图。在本实施例中,该数据操作命令可以为查找指定内容的命令,如linux的grep命令,该查找指定内容的命令可以用于在目标路径下读取所有文件的所有信息并查找文件里的指定内容,例如该指定内容可以是文件里符合条件的字符串,并可以在输入数据操作命令时进行设置。对于该命令的操作,如果目标路径在cephfs目录内,可能会造成短时大量的ceph元数据请求。但同时,grep命令还可能从标准输入读取数据,因此直接禁止会使用户无法正常使用。由此,对于grep命令需要进行额外的判断。如图5a所示,该元数据读取限制方法可以包括步骤5101-5108。

5101、接收输入的查找指定内容的命令。

5102、目标路径为输入该查找指定内容的命令时的路径。

5103、该查找指定内容的命令是否含有递归参数。若是,则可执行步骤5104,否则,可执行步骤5105。

当接收到查找指定内容的命令时,在查找指定内容的命令对应的目标路径为输入该查找指定内容的命令时的路径的情况下,可执行步骤5103,检测该查找指定内容的命令是否包括递归参数(如recursive参数)。可选的,该递归参数是指查找指定内容的命令中指示递归操作的语句,例如一个查找指定内容的命令:grep-r"import"/home/,表示在目标路径/home下搜索具有字符串“import”的文件,-r则为递归参数。

进一步的,若不包括递归参数,则可执行步骤5105,根据该查找指定内容的命令执行元数据读取操作;若包括递归参数,则可执行5104。

5104、路径信息是否满足第二条件。若是,则可执行步骤5108,否则,可执行步骤5105。

其中,第二条件可包括:目标路径为分布式存储系统如ceph的内部路径和目标路径内文件数量超过阈值。

当路径信息满足第二条件时,执行步骤5108,针对该查找指定内容的命令关联的元数据读取操作进行限制处理。例如,该限制处理可以是指禁止执行该查找指定内容的命令,并输出提示消息,该提示消息用于指示该查找指定内容的命令未被执行。当路径信息不满足第二条件时,可执行步骤5105,根据该查找指定内容的命令执行元数据读取操作。

5105、根据该查找指定内容的命令执行元数据读取操作。

5106、目标路径为该查找指定内容的命令指示的路径。

5107、路径信息是否满足第一条件。若是,则可执行步骤5108,否则,可执行步骤5105。

5108、针对该查找指定内容的命令关联的元数据读取操作进行限制处理。

当接收到查找指定内容的命令时,在查找指定内容的命令对应的目标路径为该查找指定内容的命令指示的路径,且其路径信息满足第一条件时,可执行步骤5108,针对该查找指定内容的命令关联的元数据读取操作进行限制处理。可选的,该限制处理可以是指禁止执行该查找指定内容的命令,并输出提示消息,该提示消息用于指示该查找指定内容的命令未被执行。其中,第一条件包括:目标路径为分布式存储系统如ceph的内部路径,目标路径指示文件夹,并且目标路径内文件数量超过阈值。若路径信息不满足第一条件,则可执行步骤5105,根据该查找指定内容的命令执行元数据读取操作。

可选的,为了减少计算量,更快判断是否针对该查找指定内容的命令关联的元数据读取操作进行限制处理,请结合图5a,一并参照图5b,是本申请实施例提供的再一种元数据读取限制方法的流程示意图。在本实施例中,以分布式存储系统为ceph为例进行说明。如图5b所示,该元数据读取限制方法可以包括步骤5201-5209。

5201、接收输入的查找指定内容的命令。

5202、目标路径为输入该查找指定内容的命令时的路径。

5203、该查找指定内容的命令是否含有递归参数。若是,则可执行步骤5206,否则,可执行步骤5208。

5204、目标路径为该查找指定内容的命令指示的路径。

5205、目标路径是否指示文件夹。若是,则可执行步骤5206,否则,可执行步骤5208。

5206、目标路径是否为ceph内部路径。若是,则可执行步骤5207,否则,可执行步骤5208。

5207、目标路径内文件数量是否超过阈值。若是,则可执行步骤5209,否则,可执行步骤5208。

5208、根据该查找指定内容的命令执行元数据读取操作。

5209、针对该查找指定内容的命令关联的元数据读取操作进行限制处理。

也就是说,可以先判断目标路径的指示方法,若目标路径为该查找指定内容的命令指示的路径,则可以参照图4b对路径信息进行判断,确定是否对该查找指定内容的命令关联的元数据读取操作进行限制处理。若目标路径为输入该查找指定内容的命令时的路径,则执行步骤5203,判断该查找指定内容的命令是否包括递归参数,若不包括递归参数,则执行步骤5208,根据该查找指定内容的命令执行元数据读取操作;若包括递归参数,则执行步骤5206,判断目标路径是否为分布式存储系统的内部路径,若不为内部路径,则执行步骤5208,根据该查找指定内容的命令执行元数据读取操作;若为内部路径,则执行步骤5207,判断目标路径内文件数量是否超过阈值,若不超过阈值,则执行步骤5208,根据该查找指定内容的命令执行元数据读取操作;若超过阈值,则执行步骤5209,针对该查找指定内容的命令关联的元数据读取操作进行限制处理。由此可以减少计算量,有助于提升确定是否对元数据读取操作进行限制处理的效率。

本申请实施例在接收到关联元数据读取操作的数据操作命令时,能够通过获取该数据操作命令对应的目标路径的路径信息,进而根据该路径信息确定是否针对该元数据读取操作进行限制处理,从而能够实现限制部分元数据的读取操作。

采用本申请的技术方案,有助于防止元数据服务器如cephmds过载:当ceph中目标路径存储文件较多如数达到百万级别时,直接执行海量ceph元数据操作会造成大量mds请求,导致ceph集群mds过载,本申请能够从源头限制该情况的发生。此外,本申请还有助于防止用户的ceph客户端崩溃:因执行大量mds请求的同时也会给客户端带来很大的压力,直接导致ceph客户端程序崩溃,从而使得用户容器无法正常使用,本申请则有助于解决该崩溃问题。且无需增加额外成本和计算量,无需压缩文件,不受场景限制,增强了用户体验。此外,本申请中所有的限制程序均会判断用户执行命令的目标路径,并可通过限定目标路径为cephfs内目录且该目录内文件数达到一定阈值,才触发限制处理,比如返回文件数并提示用户不要对该目录执行海量ceph元数据操作,使得几乎不影响用户的正常使用,用户体验好。

请参见图6,是本发明实施例提供的另一种元数据读取限制方法的流程示意图。如图6所示,该元数据读取限制方法可包括以下步骤601-603:

601、启动用户容器,获取所述数据操作命令在所述用户容器中对应的原始命令文件。

其中,该用户容器一种灵活的虚拟化处理方式,用户可以通过用户容器运行程序。在本申请实施例中,用户可以通过用户容器输入数据操作命令,该数据操作命令可以是:获取文件列表的命令、计算文件大小的命令、查找目标文件的命令或查找指定内容的命令。启动用户容器可以是指用户提交用户容器创建请求进行用户容器创建,也可以是指用户启动已经创建完毕的用户容器,此处不做限制。该原始命令文件用于指示用户容器原来的针对数据操作命令的执行逻辑,不涉及对元数据操作的限制处理逻辑。

602、将所述原始命令文件替换为所述数据操作命令对应的目标命令文件。

其中,该目标命令文件用于确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,也可以说是,该目标命令文件可用于指示用户容器的原始命令文件后针对数据操作命令的执行逻辑。可选的,将原始命令文件替换为数据操作命令对应的目标命令文件,也可以是在原有的命令执行逻辑的基础上,增加根据路径信息的判断来确定对数据操作命令关联的元数据读取操作进行限制处理的执行逻辑。该数据操作命令对应的目标命令文件中,针对该数据操作命令的执行逻辑为步骤203阐述的执行逻辑。例如,数据操作命令为获取文件列表的命令,则将命令文件的执行逻辑修改为如图3a或3b所示的执行逻辑,其中,禁止目标路径下的文件颜色显示操作,可以通过修改针对获取文件列表的命令的原始命令文件中的颜色参数设置值来实现,如指定参数color=never。

可选的,在用目标命令文件替换原始命令文件后,可以修改命令文件的属性,以防止用户随意修改目标命令文件,或者绕过目标命令文件中针对数据操作命令关联的元数据读取操作进行限制处理的逻辑。

进一步的,在对用户容器的原始命令文件进行替换之后,可以将用户容器进行交付,从而可以使得接收到用户在用户容器中的输入数据操作命令时,执行目标命令文件指示的执行逻辑,即在检测到数据操作命令满足限制条件时,执行元数据读取限制操作。其中,将用户容器进行交付可以是指将用户容器交付给不同职能的工作人员,如将用户容器交付给测试人员进行测试,将用户容器交付给运维人员进行部署,并发布到生产环境,此处不做限制。

603、接收输入的数据操作命令,获取所述数据操作命令对应的目标路径的路径信息,根据所述路径信息及目标命令文件,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

例如,可以在用户容器启动时进行部署,以实现用户使用过程中进行ceph元数据操作命令的限制。具体的,可在容器启动时,将ceph元数据操作限制程序如上述的目标命令文件安装至容器内部,替换原始命令文件(包括原有的ls、du、find和grep命令等),实现限制效果。具体流程如下所示:a)用户提交创建容器请求;b)创建容器;c)安装并替换容器内操作系统默认的ls、du、find和grep命令文件;d)修改替换后命令文件的属性,防止用户修改或绕过元数据限制的命令(可选);e)容器交付;f)用户执行ceph元数据操作命令;g)触发ceph元数据操作限制程序。

其中,该步骤603可参考步骤201-203执行,此处不做赘述。由此可见,本申请可在容器内部替换系统自带的数据操作命令,限制用户对ceph内海量文件进行特定的元数据操作,从而防止cephfs客户端崩溃和cephmds过载。

本申请实施例可以启动用户容器,获取用户容器的原始命令文件,将数据操作命令对应的原始命令文件替换为包括限制元数据读取操作的执行逻辑的目标命令文件,进而根据路径信息和目标命令文件,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,从而能够实现限制部分元数据的读取操作,有助于防止元数据服务器过载和客户端崩溃。

基于上述元数据读取限制方法实施例的描述,本申请实施例还公开了一种元数据读取限制装置,该装置可以配置于上述的电子设备中,例如装置可以是运行于电子设备中的一个计算机程序(包括程序代码)。该元数据读取限制装置可以执行图2-6所示的方法。请参见图7,所述装置可以运行如下模块:

获取模块701,用于接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

所述获取模块701,还用于获取所述数据操作命令对应的目标路径的路径信息;

处理模块702,用于根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

在一种实施方式中,所述处理模块702还用于当所述路径信息满足第一条件时,针对所述数据操作命令关联的元数据读取操作进行限制处理;其中,所述第一条件包括:所述目标路径为分布式存储系统的内部路径,所述目标路径指示文件夹,且所述目标路径内文件数量超过阈值。

在一种实施方式中,所述数据操作命令为获取文件列表的命令,所述获取文件列表的命令关联文件颜色显示操作;所述处理模块702还用于禁止所述获取文件列表的命令关联的文件颜色显示操作,所述文件颜色显示操作用于区别不同文件类别。

在一种实施方式中,所述数据操作命令为查找指定内容的命令,所述处理模块702还用于当所述目标路径为输入所述查找指定内容的命令时的路径时,检测所述查找指定内容的命令是否包括递归参数;若不包括所述递归参数,则根据所述查找指定内容的命令执行所述元数据读取操作;若包括所述递归参数,则当所述路径信息满足第二条件时,针对所述查找指定内容的命令关联的元数据读取操作进行限制处理;所述第二条件包括:所述目标路径为分布式存储系统的内部路径和所述目标路径内文件数量超过阈值。

在一种实施方式中,所述处理模块702还用于当所述目标路径为所述查找指定内容的命令指示的路径,且所述路径信息满足第一条件时,针对所述查找指定内容的命令关联的元数据读取操作进行限制处理;

其中,所述第一条件包括:所述目标路径为分布式存储系统的内部路径,所述目标路径指示文件夹,并且所述目标路径内文件数量超过阈值。

在一种实施方式中,所述数据操作命令为计算文件大小的命令、查找目标文件的命令或查找指定内容的命令;所述处理模块702还用于禁止执行所述数据操作命令,并输出提示消息,所述提示消息用于指示所述数据操作命令未被执行。

在一种实施方式中,在所述接收输入的数据操作命令之前,所述处理模块702还用于启动用户容器,获取所述数据操作命令在所述用户容器中对应的原始命令文件;将所述原始命令文件替换为所述数据操作命令对应的目标命令文件,所述目标命令文件用于确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理;

所述处理模块702根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于:

根据所述路径信息和所述目标命令文件,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

本申请实施例在接收到关联元数据读取操作的数据操作命令时,能够通过获取该数据操作命令对应的目标路径的路径信息,进而根据该路径信息确定是否针对该元数据读取操作进行限制处理,从而能够实现限制部分元数据的读取操作,有助于防止元数据服务器过载和客户端崩溃。

在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现,本申请不做限定。

再请参见图8,是本申请实施例的一种电子设备的结构示意图,本申请实施例的所述电子设备包括供电模块等结构,并包括处理器801以及存储装置802。可选的,该电子设备还可包括网络接口803。其中,所述处理器801、存储装置802以及网络接口803之间可以交互数据,网络接口803受所述处理器的控制用于收发消息,存储器802用于存储计算机程序,所述计算机程序包括程序指令,处理器801用于执行存储器802存储的程序指令。其中,处理器801被配置用于调用所述程序指令执行上述方法。

所述存储装置802可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储装置802也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),固态硬盘(solid-statedrive,ssd)等;所述存储装置802还可以包括上述种类的存储器的组合。

所述处理器801可以是中央处理器801(centralprocessingunit,cpu)。在一个实施例中,所述处理器801还可以是图形处理器801(graphicsprocessingunit,gpu)。所述处理器801也可以是由cpu和gpu的组合。

在一个实施例中,所述存储装置802用于存储程序指令。所述处理器801可以调用所述程序指令,执行以下步骤:

接收输入的数据操作命令,所述数据操作命令在执行时关联元数据读取操作;

获取所述数据操作命令对应的目标路径的路径信息;

根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

在一种实施方式中,所述处理器801根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于:

当所述路径信息满足第一条件时,针对所述数据操作命令关联的元数据读取操作进行限制处理;其中,所述第一条件包括:所述目标路径为分布式存储系统的内部路径,所述目标路径指示文件夹,且所述目标路径内文件数量超过阈值。

在一种实施方式中,所述数据操作命令为获取文件列表的命令,所述获取文件列表的命令关联文件颜色显示操作;

所述处理器801针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于执行:禁止所述获取文件列表的命令关联的文件颜色显示操作,所述文件颜色显示操作用于区别不同文件类别。

在一种实施方式中,所述数据操作命令为查找指定内容的命令,所述处理器801根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于执行:

当所述目标路径为输入所述查找指定内容的命令时的路径时,检测所述查找指定内容的命令是否包括递归参数;

若不包括所述递归参数,则根据所述查找指定内容的命令执行所述元数据读取操作;

若包括所述递归参数,则当所述路径信息满足第二条件时,针对所述查找指定内容的命令关联的元数据读取操作进行限制处理;所述第二条件包括:所述目标路径为分布式存储系统的内部路径和所述目标路径内文件数量超过阈值。

在一种实施方式中,所述处理器801根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,还可用于执行:

当所述目标路径为所述查找指定内容的命令指示的路径,且所述路径信息满足第一条件时,针对所述查找指定内容的命令关联的元数据读取操作进行限制处理;

其中,所述第一条件包括:所述目标路径为分布式存储系统的内部路径,所述目标路径指示文件夹,并且所述目标路径内文件数量超过阈值。

在一种实施方式中,所述数据操作命令为计算文件大小的命令、查找目标文件的命令或查找指定内容的命令;所述处理器801针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于执行:

禁止执行所述数据操作命令,并输出提示消息,所述提示消息用于指示所述数据操作命令未被执行。

在一种实施方式中,在所述接收输入的数据操作命令之前,所述处理器801还可用于执行:

启动用户容器,获取所述数据操作命令在所述用户容器中对应的原始命令文件;

将所述原始命令文件替换为所述数据操作命令对应的目标命令文件,所述目标命令文件用于确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理;

处理器801根据所述路径信息,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理,具体用于执行:

根据所述路径信息和所述目标命令文件,确定是否针对所述数据操作命令关联的元数据读取操作进行限制处理。

具体实现中,本申请实施例中所描述的装置、处理器801、存储装置802等可执行上述方法实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。

本申请实施例在接收到关联元数据读取操作的数据操作命令时,能够通过获取该数据操作命令对应的目标路径的路径信息,进而根据该路径信息确定是否针对该元数据读取操作进行限制处理,从而能够实现限制部分元数据的读取操作,有助于防止元数据服务器过载和客户端崩溃。

本申请实施例中还提供一种计算机(可读)存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可执行上述方法实施例中所执行的部分或全部步骤。可选的,该计算机存储介质可以是易失性的,也可以是非易失性的。

本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序指令,该程序指令可存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该程序指令,处理器执行该程序指令,使得该计算机执行上述数据展示方法中所执行的部分或全部步骤,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机存储介质中,该计算机存储介质可以为计算机可读存储介质,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1