一种基于CEPH集群CAP机制统计配额系统及方法与流程

文档序号:11254070阅读:1147来源:国知局
一种基于CEPH集群CAP机制统计配额系统及方法与流程

本发明涉及分布式存储软件领域,尤其涉及一种基于ceph集群cap机制统计配额系统及方法。



背景技术:

在如今的多媒体存储中,数据量呈几何级增长,存储数据的磁盘空间逐渐加大,由以前的gb提升到现在的tb以至pb级别,如何避免用户对磁盘空间的滥用,造成其他用户无法使用磁盘空间是当前丞待解决的技术问题。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种基于ceph集群cap机制统计配额系统,包括:多个客户端和mds数据端;mds数据端分别与每个客户端通信连接;

mds数据端用于设置客户端配额,配额以字节为单位,客户端和mds数据端均设有配额量,客户端的配额量以mds数据端设置为准;当客户端需要数据操作时,客户端向mds数据端申请cap授权及配额量,当mds数据端设有配额用量时,将cap授权及配额量更新到所述客户端。

优选地,cap授权包括:读权限、写权限、追加写和更新权限。

一种基于ceph集群cap机制统计配额方法,配额方法包括:

当客户端有新文件写入或追加写已存在的文件时,所述客户端向mds数据端发送对所述文件的写cap授权并申请配额量;

mds数据端接收到所述客户端发送的写cap授权请求后,查询所述客户端对所述文件是否写cap授权,再查询mds数据端是否有剩余配额量;

若所述客户端具有对所述文件的写权限,且mds数据端设有所述客户端申请的配额量;

mds数据端向所述客户端发送写cap授权并更新所述客户端的配额量。

优选地,配额方法包括:

若所述客户端具有对所述文件的写权限,且mds数据端无所述客户端申请的配额量;

mds数据端获取所述客户端已有的剩余配额量是否满足本次写cap授权;

当所述客户端已有的剩余配额量满足本次写cap授权,则mds数据端向所述客户端发送写cap授权;

当所述客户端已有的剩余配额量不满足本次写cap授权,则mds数据端向所述客户端发送配额量已超额,收回写cap授权。

优选地,配额方法包括:

当客户端减小文件大小时,记录配额减小值;

客户端向mds数据端发送cap配额减小申请,并发送配额减小值;

mds数据端接收到所述客户端发送的cap更新文件大小申请,并更新mds数据端的配额剩余值,配额剩余值为当前配额剩余值与所述客户端的配额减小值之和;

mds数据端更新配额剩余值,将所述客户端的配额更新值返回;

所述客户端更新本地配额值。

优选地,配额方法包括:

客户端删除本地文件或目录时,记录本次删除文件或目录的总大小;

客户端向mds数据端发送删除目录或文件申请,并附带删除目录或文件的大小;

mds数据端接收到所述客户端发送的删除目录或文件申请,并更新mds数据端的配额剩余值,配额剩余值为当前配额剩余值与所述客户端删除目录或文件大小之和;

mds数据端更新配额剩余值,将所述客户端的配额更新值返回;

所述客户端更新本地配额值。

优选地,配额方法包括:

当有新客户端接入mds数据端时,mds数据端扩容总配额值;

mds数据端对新接入客户端分配预设配额值;

mds数据端实时扫描每个客户端,当客户端不存在或客户端不需要设置配额时,mds数据端回收所述客户端的配额,删除所述客户端的配额量;

将所述客户端增加至mds数据端的配额剩余值上。

优选地,mds数据端通过比较每个客户端与系统平均配额量的方差d来衡量当前系统中分配的配额量是否平衡,通过公式1.1计算来该平衡度;n为系统设有n个客户端,pave表示系统平均配额量,pi表示第i个客户端的配额量;

从以上技术方案可以看出,本发明具有以下优点:

利用ceph的cap权限控制机制统计基于客户端的配额,减少客户端与mds数据端通信消息类型,实现基于文件的配额统计,使配额统计更精准和高效。mds数据端对客户端设置配额,为客户端划分磁配额量,提高客户端和mds数据端的储存空间利用率。

附图说明

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

图1为基于ceph集群cap机制统计配额系统示意图;

图2为基于ceph集群cap机制统计配额方法实施例流程图;

图3为基于ceph集群cap机制统计配额方法另一实施例流程图;

图4为基于ceph集群cap机制统计配额方法另一实施例流程图;

图5为基于ceph集群cap机制统计配额方法另一实施例流程图;

图6为基于ceph集群cap机制统计配额方法另一实施例流程图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本实施例提供一种基于ceph集群cap机制统计配额系统,如图1所示,包括:多个客户端2和mds数据端1;mds数据端1分别与每个客户端1通信连接;

mds数据端1用于设置客户端2配额,配额以字节为单位,客户端2和mds数据端1均设有配额量,客户端的配额量以mds数据端设置为准;当客户端2需要数据操作时,客户端2向mds数据端1申请cap授权及配额量,当mds数据端1设有配额用量时,将cap授权及配额量更新到所述客户端1;这样减少客户端和mds数据端1交互,减轻mds数据端1数据处理压力。

基于ceph集群cap机制统计配额系统划分为clients:客户端(数据用户),mds:metadataservercluster,元数据服务器(缓存和同步分布式元数据)osd:objectstoragecluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)。mon:clustermonitors,集群监视器(执行监视功能),客户端通过posix接口存入数据到ceph系统中,通过其他三个部分之间的协作,实现数据的分布式存储、查看、修改和删除,这些操作原理对用户是透明的。

ceph分布式存储系统存储的数据以对象为单位,对上层用户(client)而言,是以文件为单位,进行数据的新建、更新和删除,ceph对文件设置了权限,不同的用户对相同的文件或目录享有的操作权限不相同,ceph需要一种机制来管理文件权限,这种机制就是cap(capability)机制,cap是mds分配给用户对文件/目录的操作能力权限,不同的客户端,或者同一客户端不同时刻,对同一文件/目录持有cap可能是不同的,cap权限总体上分三种:读权限、写权限和更新权限,mds通过cap对多个客户端操作同一个文件/目录进行权限管理,但ceph缺少对用户读写存储空间的限制,不能合理的利用存储空间,不能满足客户需求,本发明就是基于ceph的cap机制,为用户设置完配额,实现为各个用户划分各自的存储空间,在用户对文件或目录申请写权限或更新权限时进行配额检查,超过设置的配额值,用户不能写入数据,直到用户有剩余空间后,方可写入数据,达到定量管理,提高存储空间的利用率和系统的安全性。

本发明还提供一种基于ceph集群cap机制统计配额方法,如图2所示,配额方法包括:

s1、当客户端有新文件写入或追加写已存在的文件时,所述客户端向mds数据端发送对所述文件的写cap授权并申请配额量;

s2、mds数据端接收到所述客户端发送的写cap授权请求后,查询所述客户端对所述文件是否写cap授权,再查询mds数据端是否有剩余配额量;

s3、若所述客户端具有对所述文件的写权限,且mds数据端设有所述客户端申请的配额量;

s4、mds数据端向所述客户端发送写cap授权并更新所述客户端的配额量。

本实施例中,配额方法包括:如图3所示,

s11、若所述客户端具有对所述文件的写权限,且mds数据端无所述客户端申请的配额量;

s12、mds数据端获取所述客户端已有的剩余配额量是否满足本次写cap授权;

s13、当所述客户端已有的剩余配额量满足本次写cap授权,则mds数据端向所述客户端发送写cap授权;

s14、当所述客户端已有的剩余配额量不满足本次写cap授权,则mds数据端向所述客户端发送配额量已超额,收回写cap授权。

本实施例中,配额方法包括:如图4所示,

s21、当客户端减小文件大小时,记录配额减小值;

s22、客户端向mds数据端发送cap配额减小申请,并发送配额减小值;

s23、mds数据端接收到所述客户端发送的cap更新文件大小申请,并更新mds数据端的配额剩余值,配额剩余值为当前配额剩余值与所述客户端的配额减小值之和;

s24、mds数据端更新配额剩余值,将所述客户端的配额更新值返回;

s25、所述客户端更新本地配额值。

本实施例中,配额方法包括:如图5所示,

s31、客户端删除本地文件或目录时,记录本次删除文件或目录的总大小;

s32、客户端向mds数据端发送删除目录或文件申请,并附带删除目录或文件的大小;

s33、mds数据端接收到所述客户端发送的删除目录或文件申请,并更新mds数据端的配额剩余值,配额剩余值为当前配额剩余值与所述客户端删除目录或文件大小之和;

s34、mds数据端更新配额剩余值,将所述客户端的配额更新值返回;

s35、所述客户端更新本地配额值。

本实施例中,配额方法包括:如图6所示,

s41、当有新客户端接入mds数据端时,mds数据端扩容总配额值;

s42、mds数据端对新接入客户端分配预设配额值;

s43、mds数据端实时扫描每个客户端,当客户端不存在或客户端不需要设置配额时,mds数据端回收所述客户端的配额,删除所述客户端的配额量;

s44、将所述客户端增加至mds数据端的配额剩余值上。

本实施例中,mds数据端通过比较每个客户端与系统平均配额量的方差d来衡量当前系统中分配的配额量是否平衡,通过公式1.1计算来该平衡度;n为系统设有n个客户端,pave表示系统平均配额量,pi表示第i个客户端的配额量;

在初始工作或正常工作中,mds数据端通过计算平衡度,方差d来衡量当前系统中分配的配额量是否平衡,保证每个客户端的配额量均衡。当有客户端新申请配额量或减少配额量时依据上述方法执行。

在一些实施例中,所述设备中的一个或多个设备的部分或所有功能或处理由计算机程序实现或支持,计算机程序由计算机可读程序代码形成并且被包括在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(rom)、随机存取存储器(ram)、硬盘驱动器、光盘(cd)、数字视频盘(dvd)、或任何其他类型的存储器。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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