基于ZooKeeper的Lunmap管理方法与流程

文档序号:20917639发布日期:2020-05-29 13:44阅读:406来源:国知局
基于ZooKeeper的Lunmap管理方法与流程

本申请涉及分布式存储管理技术领域,具体来说,涉及一种基于zookeeper的lunmap管理方法。



背景技术:

随着分布式技术和san(storageareanetwork,存储区域网络)存储技术的飞速发展,存储系统资源的量级有了巨大的提升。然而,面对如此巨额的资源,如何高效高可靠地进行管理显得尤为重要。为了能向用户提供高效高可靠的san服务,一种基于zookeeper的lunmap管理方法应运而生。zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供配置维护、域名服务、分布式同步、组服务等功能。zookeeper保证了分布式环境中数据的强一致性,可以解决很多分布式问题。目前hadoop、hbase、kafka、storm都使用zookeeper作为自己的核心管理组件。

lunmap代表了用户与可访问存储资源的对应关系,通过lunmap,存储系统可以为不同用户提供不同的存储资源。但是随着存储系统规模的日益庞大,lunmap的管理方式将变得越来越重要。

现有技术存在的问题:

在传统的分布式存储系统中,普遍做法是会将lunmap关系记载到配置文件中,通过rsync+keepalived的方式,将lunmap的配置文件同步到不同的节点,这种方式无法保证集群配置的一致性,当某个节点故障或者恢复的时候,集群不能及时感知到,并且当集群的节点数量越来越多的时候,这种方式将难以满足高效性、高可靠性合实时性。



技术实现要素:

针对相关技术中的上述问题,本申请提出一种基于zookeeper的lunmap管理方法,至少能够显著减少集群管理中数据不一致且有效提高存储效率和可靠性。

本申请的技术方案是这样实现的:

提供了一种基于zookeeper的lunmap管理方法,包括:

用户将所要保存的lunmap数据,通过zookeeper客户端(client)发送lunmap数据请求到zookeeper服务端(server),zookeeper的服务端(server)保存并同步数据;

lunmap包括lun(logicalunitnumber,逻辑单元号)、target和initiator三要素,将lun作为lunmap存储主体,构建lunmap存储结构。

根据本申请的实施例,客户端包括第一客户端和第二客户端,服务端包括第一客户端和第二服务端,lunmap包括第一lunmap和第二lunmap。

根据本申请的实施例,服务端保存并同步数据,包括:

第一服务端将第一客户端的第一lunmap数据请求交由领导者(leader)决策数据读写操作;

第一服务端将第一lunmap数据请求发送给第二服务端。

根据本申请的实施例,服务端保存并同步数据,还包括:

第一服务端和第二服务端执行数据读写操作后通知领导者;

领导者收到通知并判断执行结果并把执行结果返回客户端。

根据本申请的实施例,存储主体是指按照lun至少分为第一lun和第二lun。

根据本申请的实施例,第一lun下,对应多个lunmap三要素组且lun都是第一lun,至少包括:

第一lun、target和第一initiator;

第一lun、target和第二initiator。

根据本申请的实施例,第二lun下,对应多个lunmap三要素组且lun都是第二lun,至少包括:

第二lun、target和第一initiator;

第二lun、target和第二initiator。

本申请的有益技术效果在于:

使用zookeeper作为集群配置管理软件,并结合精炼的lunmap存储结构可以有效提高集群的效率和可靠性。相对于传统的方式,本方法可以显著减少集群管理中数据不一致的问题,降低管理的繁琐度。同时也会减少集群管理可能存在的隐患。

附图说明

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

图1是应用根据本申请实施例的基于zookeeper的lunmap管理方法示意图;

图2是应用根据本申请实施例的基于zookeeper的lunmap管理方法习用lunmap存储结构图;

图3是应用根据本申请实施例的基于zookeeper的lunmap管理方法本发明lunmap存储结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。

根据本申请的实施例,提供了一种基于zookeeper的lunmap管理方法。zookeeper是一个开放源码的分布式应用程序协调服务。lunmap代表用户与可访问存储资源的对应关系。图1示出了根据本申请实施例的基于zookeeper的lunmap管理方法示意图。参考图1所示,本发明的基于zookeeper的lunmap管理方法包括:用户将所要保存的lunmap数据,通过zookeeper客户端(client)发送lunmap数据请求到zookeeper服务端(server),zookeeper的服务端(server)保存并同步数据;lunmap包括lun(logicalunitnumber,逻辑单元号)、target(目标端)和initiator(启动端)三要素,将lun作为lunmap存储主体,构建lunmap存储结构。其中,zookeeper是一个开放源码的分布式应用程序协调服务,lunmap代表用户与可访问存储资源的对应关系。

本发明的上述技术方案,通过支持基于zookeeper的lunmap管理方法,能够显著减少集群管理中数据不一致且有效提高存储效率和可靠性。

如图1中zookeeper11、服务端12、lunmap13、客户端14处所示,lunmap数据与zookeeper的交互如下:

zookeeper11分为服务端12和客户端14,多个服务端只会有一个对外提供服务,即leader;并且11zookeeper便于横向扩展,服务端节点数量的增加不会影响整体的读写性能,理论上节点数量只受限于系统内存。11zookeeper为客户端提供了丰富的api,供客户端使用多种服务。

用户将所要保存的lunmap13的lunmap数据,通过客户端保存至zookeeper11的服务端。客户端14的每个client都会将数据发送给服务端12的某个server,该server会将数据交由leader,由leader决策数据的写入或者读取。客户端14的client1将写入lunmap1数据的请求发送给服务端12的server1,服务端12的server1将这个请求发送给各个server节点,server将数据写入本地并通知leader,当多于一半的节点写入完成过后,leader就认为写入成功,这时就会通知客户端14的client1写入成功,各个节点数据同步工作将在后台进行。通过这种方式,不但保证了数据的一致性,提高了高可靠性,而且能有效的提高系统响应速度

由于zookeeper每个节点所能保存的数据大小有限制,并且随着节点数据量的增大,zookeeper的读写性能会降低,所以如何提供一种数据结构,能够以尽可能小的数据量表示尽可能多的映射关系变得至关重要。本方法提供了一种数据结构可以达到这种效果。

如图2所示,lunmap的三要素是lun21、target22、initiator23。用户需要知道initiator(发起者)被授权给了哪个target下的哪个lun,这样才可以通过initiator读写相应的lun。那么初步看来lunmap的数据结构不能缺少这三项,如图2中24、25处示出了n和x,需要保存n*x的数据量。

但是考虑如下几种情况:(1)同一个lun有多个用户需要访问,(2)同一个用户可以访问多个lun。对于情况(1),从图2中可以看到,如果lun代表同一个lun,而initiator代表initiator1,initiator2.....initiatorn,那么将会多占用(n-1)*sizeof(lun)的大小,这样的空间使用占比为:

y=[n*x-(n-1)*sizeof(lun)]/(n*x)

对于情况(2),如果lun代表lun1,lun2.......lunn,而initiator代表同一个initiator,那么将会多占用(n-1)*sizeof(initiator)的大小,这样的空间使用占比为:

y=[n*x-(n-1)*sizeof(initiator)]/(n*x)

以上两种情况,当n趋于无限大的时候公式将进行如下转换:

y=1-m/x,m=sizeof(lun)或者m=sizeof(initiator)

y=1-m/[sizeof(lun)+sizeof(target)+sizeof(initiator)]

公式表明m越大,所需保存的数据量越小。

如图3所示,示出了lun31、target32和initiator33的存储结构。综合考虑权限管理问题,本方法将lun31作为存储主体,将initiator33作为附属对象,构建图3存储结构,可以看到这种方式可以有效减少数据量,并且便于后期对initiator进行权限管理。

根据本发明的实施例,还提供了一种基于zookeeper的lunmap管理系统,包括存储介质,该存储介质存储有程序,该程序被执行以实现权利要求上述的基于zookeeper的lunmap存储管理方法。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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